@unbrained/pm-cli 2026.7.11 → 2026.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +36 -2
- package/README.md +0 -33
- package/dist/cli/commands/claim.d.ts +32 -1
- package/dist/cli/commands/claim.js +52 -15
- package/dist/cli/commands/claim.js.map +1 -1
- package/dist/cli/commands/completion.js +11 -2
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/create.js +4 -65
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -1
- package/dist/cli/commands/index.js +3 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init.js +18 -2
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/legacy-none-tokens.d.ts +49 -1
- package/dist/cli/commands/legacy-none-tokens.js +73 -2
- package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
- package/dist/cli/commands/next.d.ts +14 -2
- package/dist/cli/commands/next.js +39 -11
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/plan.d.ts +5 -0
- package/dist/cli/commands/plan.js +44 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/update.js +7 -67
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/extension-command-help.d.ts +13 -1
- package/dist/cli/extension-command-help.js +79 -5
- package/dist/cli/extension-command-help.js.map +1 -1
- package/dist/cli/main.js +9 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +3 -2
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +3 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.js +24 -3
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli-bundle/chunks/append-RH3G5RAV.js +11 -0
- package/dist/cli-bundle/chunks/{append-464PHZ65.js → append-T5DTS4NU.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-YMP6AKGU.js → chunk-2XWRFOPR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HT5P3WC6.js → chunk-2Z36LSAT.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-WQ5227PH.js → chunk-33O5P6KT.js} +135 -41
- package/dist/cli-bundle/chunks/chunk-33O5P6KT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DBV6QRYT.js → chunk-3KJ3FG5O.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AQLKMQQA.js → chunk-3M5BWYUA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GPBKJERW.js → chunk-3WASQS5G.js} +42 -6
- package/dist/cli-bundle/chunks/chunk-3WASQS5G.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-47CCRGRH.js → chunk-47TKJR3D.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-YCSDMIQW.js → chunk-4MO4PPR2.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-WCRAUCJO.js → chunk-546WPG33.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-RLOWK5EQ.js → chunk-5754C5XS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7U5INZ2C.js → chunk-5V746BN3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7324AI5M.js → chunk-66YL6RR5.js} +30 -20
- package/dist/cli-bundle/chunks/{chunk-7324AI5M.js.map → chunk-66YL6RR5.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZLQDOBZL.js → chunk-6OK5QSGH.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-ROH64TST.js → chunk-6XNMSLBT.js} +78 -72
- package/dist/cli-bundle/chunks/chunk-6XNMSLBT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2HNZKLHV.js → chunk-7SHFQB2A.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6APTSPP5.js → chunk-7SIWW7C3.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-7HQQT6AT.js → chunk-7TYZTBEV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VTOQH22Y.js → chunk-A2HZUSEA.js} +8 -6
- package/dist/cli-bundle/chunks/{chunk-VTOQH22Y.js.map → chunk-A2HZUSEA.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YCHJLOO2.js → chunk-A6AK7W5M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WBKZAO3P.js → chunk-A6AVSYRJ.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-L7C6RTGH.js → chunk-ACDIA6NP.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-AX3BJLPV.js → chunk-ACRC3HI4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QCKPSFII.js → chunk-AHIEDSW2.js} +30 -20
- package/dist/cli-bundle/chunks/{chunk-QCKPSFII.js.map → chunk-AHIEDSW2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-B6JBI7JX.js → chunk-ANLHBXAE.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-2KQG6L3J.js → chunk-AS62PEJE.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-OJ64VYGO.js → chunk-BAK2VLTQ.js} +62 -33
- package/dist/cli-bundle/chunks/chunk-BAK2VLTQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-J3EXRK2H.js → chunk-BLRO2POO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KDNZSVCK.js → chunk-CDR2A3VI.js} +15 -74
- package/dist/cli-bundle/chunks/chunk-CDR2A3VI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2WGV5WRW.js → chunk-DJI5IS46.js} +42 -20
- package/dist/cli-bundle/chunks/{chunk-2WGV5WRW.js.map → chunk-DJI5IS46.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-VOXOXART.js → chunk-DLZ3RXAL.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-H6YDNW46.js → chunk-DNH44IKP.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-QI5KTH6A.js → chunk-EBBROE54.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-GC5ME4ZU.js → chunk-FF523THY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5OBMSBWX.js → chunk-FIZUJWXQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HLBSL5KE.js → chunk-FVWQFTTW.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-YIWYD7TC.js → chunk-FVZEIWTL.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-E72ZO34Z.js → chunk-G6B5XGNV.js} +97 -32
- package/dist/cli-bundle/chunks/{chunk-E72ZO34Z.js.map → chunk-G6B5XGNV.js.map} +4 -4
- package/dist/cli-bundle/chunks/{chunk-4DC5XNMS.js → chunk-GFBV2254.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-OKZ35F3Y.js → chunk-GRB3TFOC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TZFULSN4.js → chunk-GVGFLZQS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RTG2LHQ7.js → chunk-HLZXQKGZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5F7UJHFY.js → chunk-HO6CDURZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MN2YMU55.js → chunk-HOE3UV3G.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XQLLRYOX.js → chunk-HRCJGQXL.js} +134 -40
- package/dist/cli-bundle/chunks/chunk-HRCJGQXL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-I535LTZ2.js → chunk-IS6M4ETF.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-K7HEURQ4.js → chunk-J2XEW4YL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GZNB5V5J.js → chunk-J2ZDZG4A.js} +44 -12
- package/dist/cli-bundle/chunks/chunk-J2ZDZG4A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-O2Q7YQGO.js → chunk-J7XSQCJO.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RA2LPP6E.js → chunk-JM4Z53DN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JR6FIX53.js → chunk-JNNPTGXR.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-I5VZGPS2.js → chunk-K7CGOZK5.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-B6OANV3G.js → chunk-KDH62ECD.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LIY2ILWI.js → chunk-KXFY6AI4.js} +41 -5
- package/dist/cli-bundle/chunks/chunk-KXFY6AI4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NR7PTIR7.js → chunk-L23NAJHL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-FCZ6WYSR.js → chunk-LEXFDABF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GP54I36Z.js → chunk-LNAGQRIL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DD2WZD6L.js → chunk-LU4Z7POS.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FEVEIX53.js → chunk-LX265XY7.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-NJABR6EB.js → chunk-MQAGSAMS.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MRMS62WQ.js → chunk-N4NKVLPY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-RY57ESL2.js → chunk-ND3MDD6L.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-Y476SA4V.js → chunk-NEJKKTCG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-Q3EW4RE5.js → chunk-NGL3X3XM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ENJDRDDP.js → chunk-NK54BSL7.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-KHQYX2QB.js → chunk-NN57FRRN.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-VNCQ7SSG.js → chunk-NNRXTZ7Y.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-KZQHMDS6.js → chunk-NOIIRLCO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CTAPVM6C.js → chunk-O5ELBOEJ.js} +14 -73
- package/dist/cli-bundle/chunks/chunk-O5ELBOEJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-K2PDZYUF.js → chunk-OC2CLNMS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SN7Q7M4U.js → chunk-OKUFGORG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZLWBLI5R.js → chunk-OOK6V7BF.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DDEYJ3BH.js → chunk-OUQ4I6HC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-C4FIA5U6.js → chunk-OYCZDDUC.js} +61 -32
- package/dist/cli-bundle/chunks/chunk-OYCZDDUC.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-X7ZXLB3C.js → chunk-PDOJRPYR.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-HDNEQAHV.js → chunk-PHQPQNAT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-FMFSUTTD.js → chunk-PTJ7NVUU.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5URFS7C4.js → chunk-PUMGO764.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-RPZ57GQ7.js → chunk-QFCCN4JO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RAC2UXLT.js → chunk-QPWXNK56.js} +43 -11
- package/dist/cli-bundle/chunks/chunk-QPWXNK56.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-35YNX7RQ.js → chunk-QYIDXRRX.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-ITIUEWD5.js → chunk-RFDT674H.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2BUNV627.js → chunk-SJ2DADDH.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-MSPZSUKQ.js → chunk-SV7PEWKW.js} +41 -19
- package/dist/cli-bundle/chunks/{chunk-MSPZSUKQ.js.map → chunk-SV7PEWKW.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZYDUOY54.js → chunk-TKD4NESJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BU2CV5ZU.js → chunk-TMNQV4EK.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GJNBKU6G.js → chunk-TWELUDDF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A3AIKEYC.js → chunk-TYCM65DJ.js} +78 -72
- package/dist/cli-bundle/chunks/chunk-TYCM65DJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Y5E6FCAL.js → chunk-U3S22BOJ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MORRAQXQ.js → chunk-UAZ6W3H3.js} +91 -33
- package/dist/cli-bundle/chunks/chunk-UAZ6W3H3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2BKRMFGK.js → chunk-UFY4ETU6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-EEUIIDWF.js → chunk-UGQENMKM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XK5CTXMB.js → chunk-UGSHP6SR.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-2JWIRG4V.js → chunk-VF24O6TV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-PZBRTJ3Y.js → chunk-VLVTXEGG.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-X6HT3FP3.js → chunk-VMGK6ESD.js} +7 -5
- package/dist/cli-bundle/chunks/{chunk-X6HT3FP3.js.map → chunk-VMGK6ESD.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NAGOH4YJ.js → chunk-VXUWCJS7.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ETGRUM64.js → chunk-WBMARQCV.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-L6C62S4V.js → chunk-WZDABROA.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-P63GUQK5.js → chunk-XG5GVZRX.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-6UWHAJEX.js → chunk-XGCPTS6L.js} +10 -10
- package/dist/cli-bundle/chunks/{chunk-XGUXU4IQ.js → chunk-Y44B5FBE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-C3QR2DPR.js → chunk-YP6DWEWQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-TB6364F7.js → chunk-Z7XTVIN5.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-XSJZF3TO.js → chunk-ZEKVLV6P.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SNFLSFFH.js → chunk-ZFPOBSPC.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RYASC6U3.js → chunk-ZUB725AA.js} +7 -7
- package/dist/cli-bundle/chunks/{close-A77IGXNC.js → close-CQHW3WMK.js} +5 -5
- package/dist/cli-bundle/chunks/close-ZZW5FLTB.js +12 -0
- package/dist/cli-bundle/chunks/{close-many-P2YOWN52.js → close-many-AR2YH3SJ.js} +12 -12
- package/dist/cli-bundle/chunks/close-many-IKCEGBLQ.js +21 -0
- package/dist/cli-bundle/chunks/comments-NV4SIY5Z.js +13 -0
- package/dist/cli-bundle/chunks/{comments-FNLKE3TW.js → comments-UV4HMI2K.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-U6H22S7E.js → copy-OUFWOHVG.js} +4 -4
- package/dist/cli-bundle/chunks/copy-X7HJFWIH.js +9 -0
- package/dist/cli-bundle/chunks/{create-HS64DHTL.js → create-QEDL4KKT.js} +9 -9
- package/dist/cli-bundle/chunks/create-R6MMMMJS.js +25 -0
- package/dist/cli-bundle/chunks/{delete-4XPF5XLP.js → delete-MJGZFDHZ.js} +4 -4
- package/dist/cli-bundle/chunks/delete-OOJRG4HF.js +10 -0
- package/dist/cli-bundle/chunks/{deps-TMOF765V.js → deps-4OP6Q76N.js} +4 -4
- package/dist/cli-bundle/chunks/{deps-R44LVZTU.js → deps-Y5X6NFT5.js} +4 -4
- package/dist/cli-bundle/chunks/docs-SILTBWSO.js +14 -0
- package/dist/cli-bundle/chunks/{docs-HN6QKGEU.js → docs-UKTQVUHS.js} +6 -6
- package/dist/cli-bundle/chunks/{files-RNFWG435.js → files-2QEI2V3C.js} +6 -6
- package/dist/cli-bundle/chunks/{files-NX4LNOPL.js → files-7OIKZPI3.js} +6 -6
- package/dist/cli-bundle/chunks/focus-3YC5LFCG.js +10 -0
- package/dist/cli-bundle/chunks/{focus-OBSDVVI7.js → focus-FFWH32BF.js} +5 -5
- package/dist/cli-bundle/chunks/{history-compact-RZMMFSTO.js → history-compact-AAA4W6LY.js} +8 -8
- package/dist/cli-bundle/chunks/{history-compact-CKNRN637.js → history-compact-PIURAPW5.js} +8 -8
- package/dist/cli-bundle/chunks/history-redact-KWZ7LKQB.js +16 -0
- package/dist/cli-bundle/chunks/{history-redact-W7TTAEX2.js → history-redact-NTO74EIV.js} +6 -6
- package/dist/cli-bundle/chunks/history-repair-QWZJYYOJ.js +18 -0
- package/dist/cli-bundle/chunks/{history-repair-RGAQBOIS.js → history-repair-ROV5TD3L.js} +8 -8
- package/dist/cli-bundle/chunks/learnings-25TJCVON.js +13 -0
- package/dist/cli-bundle/chunks/{learnings-VDRTXWTF.js → learnings-3WJFJT7E.js} +7 -7
- package/dist/cli-bundle/chunks/{notes-UXXTI3J5.js → notes-FM53JJ5C.js} +7 -7
- package/dist/cli-bundle/chunks/notes-IAHGNCYQ.js +13 -0
- package/dist/cli-bundle/chunks/{plan-H3OPE2RP.js → plan-EJ4USP2S.js} +10 -10
- package/dist/cli-bundle/chunks/plan-WHV4H2RW.js +24 -0
- package/dist/cli-bundle/chunks/{profile-PFNN3CBJ.js → profile-SZQVKHUQ.js} +9 -9
- package/dist/cli-bundle/chunks/{profile-FCZWT5LE.js → profile-TXE673DR.js} +9 -9
- package/dist/cli-bundle/chunks/{register-list-query-BGEGWQ6S.js → register-list-query-LSR2G2SJ.js} +16 -16
- package/dist/cli-bundle/chunks/{register-list-query-BGEGWQ6S.js.map → register-list-query-LSR2G2SJ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-ODDZVR6N.js → register-list-query-S6I73L5W.js} +15 -15
- package/dist/cli-bundle/chunks/{register-list-query-ODDZVR6N.js.map → register-list-query-S6I73L5W.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-OAJXSNWK.js → register-mutation-77GYER52.js} +32 -32
- package/dist/cli-bundle/chunks/{register-mutation-OAJXSNWK.js.map → register-mutation-77GYER52.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-mutation-2APBEHTJ.js → register-mutation-A2SC3K5G.js} +31 -31
- package/dist/cli-bundle/chunks/{register-mutation-2APBEHTJ.js.map → register-mutation-A2SC3K5G.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-3TYKCKEZ.js → register-operations-KSAIBSZH.js} +43 -33
- package/dist/cli-bundle/chunks/register-operations-KSAIBSZH.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-WKZSX4QP.js → register-operations-W6Z5LVI5.js} +42 -32
- package/dist/cli-bundle/chunks/register-operations-W6Z5LVI5.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-HSVJDV3R.js → register-setup-KB5U3RES.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-KE5L3H7U.js → register-setup-ZG7YXPHJ.js} +15 -15
- package/dist/cli-bundle/chunks/{restore-MDNVYUDD.js → restore-F5HPTRBR.js} +6 -6
- package/dist/cli-bundle/chunks/restore-LN57EB5H.js +14 -0
- package/dist/cli-bundle/chunks/{schema-AJCAANMB.js → schema-3DKXA4KR.js} +6 -6
- package/dist/cli-bundle/chunks/{schema-2B37DMM2.js → schema-QLTOK23S.js} +6 -6
- package/dist/cli-bundle/chunks/update-2T5EWMXD.js +21 -0
- package/dist/cli-bundle/chunks/{update-ZCDGTSNL.js → update-IKMNH3W4.js} +12 -12
- package/dist/cli-bundle/chunks/{update-many-6E2DDBE4.js → update-many-3Q6Z2Q4Y.js} +19 -19
- package/dist/cli-bundle/chunks/update-many-OTAS4BWH.js +30 -0
- package/dist/cli-bundle/main.js +75 -20
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +63 -52
- package/dist/cli-bundle/sdk-testing.js +6 -6
- package/dist/cli-bundle/sdk.js +63 -54
- package/dist/cli-bundle/sdk.js.map +2 -2
- package/dist/core/extensions/item-fields.js +3 -3
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.js +29 -20
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/schema/fields-file.js +5 -3
- package/dist/core/schema/fields-file.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.js +12 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +14 -2
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +18 -6
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/index.d.ts +3 -1
- package/dist/sdk/index.js +4 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime.d.ts +51 -1
- package/dist/sdk/runtime.js +91 -4
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/workspace.d.ts +15 -0
- package/dist/sdk/workspace.js +50 -0
- package/dist/sdk/workspace.js.map +1 -0
- package/docs/AGENT_GUIDE.md +1 -0
- package/docs/CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md +775 -0
- package/docs/CODEX_PLUGIN.md +11 -1
- package/docs/COMMANDS.md +3 -1
- package/docs/README.md +3 -0
- package/docs/SDK.md +204 -71
- package/marketplace.json +2 -2
- package/package.json +3 -2
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +3 -0
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/extensions/todos/runtime-loader.ts +3 -0
- package/packages/pm-todos/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/append-425YGJMY.js +0 -11
- package/dist/cli-bundle/chunks/chunk-A3AIKEYC.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-C4FIA5U6.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CTAPVM6C.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GPBKJERW.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GZNB5V5J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KDNZSVCK.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LIY2ILWI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MORRAQXQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OJ64VYGO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-RAC2UXLT.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ROH64TST.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WQ5227PH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XQLLRYOX.js.map +0 -1
- package/dist/cli-bundle/chunks/close-II7JKV32.js +0 -12
- package/dist/cli-bundle/chunks/close-many-FD46X4WK.js +0 -21
- package/dist/cli-bundle/chunks/comments-OAU2E7RK.js +0 -13
- package/dist/cli-bundle/chunks/copy-5MOERABQ.js +0 -9
- package/dist/cli-bundle/chunks/create-DOMKSBHN.js +0 -25
- package/dist/cli-bundle/chunks/delete-BMOQWZRQ.js +0 -10
- package/dist/cli-bundle/chunks/docs-J4OI4PWM.js +0 -14
- package/dist/cli-bundle/chunks/focus-7H5B4PKZ.js +0 -10
- package/dist/cli-bundle/chunks/history-redact-ZNS2QTMI.js +0 -16
- package/dist/cli-bundle/chunks/history-repair-LQ5IU4ZX.js +0 -18
- package/dist/cli-bundle/chunks/learnings-AHMJNIQZ.js +0 -13
- package/dist/cli-bundle/chunks/notes-GJI26GJR.js +0 -13
- package/dist/cli-bundle/chunks/plan-ZHJH6VMF.js +0 -24
- package/dist/cli-bundle/chunks/register-operations-3TYKCKEZ.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-WKZSX4QP.js.map +0 -7
- package/dist/cli-bundle/chunks/restore-AR77QSO6.js +0 -14
- package/dist/cli-bundle/chunks/update-D3ZZ2V7Z.js +0 -21
- package/dist/cli-bundle/chunks/update-many-2Q2PRSSB.js +0 -30
- /package/dist/cli-bundle/chunks/{append-425YGJMY.js.map → append-RH3G5RAV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-464PHZ65.js.map → append-T5DTS4NU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YMP6AKGU.js.map → chunk-2XWRFOPR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HT5P3WC6.js.map → chunk-2Z36LSAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DBV6QRYT.js.map → chunk-3KJ3FG5O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AQLKMQQA.js.map → chunk-3M5BWYUA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-47CCRGRH.js.map → chunk-47TKJR3D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCSDMIQW.js.map → chunk-4MO4PPR2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WCRAUCJO.js.map → chunk-546WPG33.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RLOWK5EQ.js.map → chunk-5754C5XS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7U5INZ2C.js.map → chunk-5V746BN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZLQDOBZL.js.map → chunk-6OK5QSGH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2HNZKLHV.js.map → chunk-7SHFQB2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6APTSPP5.js.map → chunk-7SIWW7C3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7HQQT6AT.js.map → chunk-7TYZTBEV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YCHJLOO2.js.map → chunk-A6AK7W5M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WBKZAO3P.js.map → chunk-A6AVSYRJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L7C6RTGH.js.map → chunk-ACDIA6NP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AX3BJLPV.js.map → chunk-ACRC3HI4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B6JBI7JX.js.map → chunk-ANLHBXAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2KQG6L3J.js.map → chunk-AS62PEJE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-J3EXRK2H.js.map → chunk-BLRO2POO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VOXOXART.js.map → chunk-DLZ3RXAL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H6YDNW46.js.map → chunk-DNH44IKP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QI5KTH6A.js.map → chunk-EBBROE54.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GC5ME4ZU.js.map → chunk-FF523THY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5OBMSBWX.js.map → chunk-FIZUJWXQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HLBSL5KE.js.map → chunk-FVWQFTTW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-YIWYD7TC.js.map → chunk-FVZEIWTL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4DC5XNMS.js.map → chunk-GFBV2254.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OKZ35F3Y.js.map → chunk-GRB3TFOC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TZFULSN4.js.map → chunk-GVGFLZQS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RTG2LHQ7.js.map → chunk-HLZXQKGZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5F7UJHFY.js.map → chunk-HO6CDURZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MN2YMU55.js.map → chunk-HOE3UV3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I535LTZ2.js.map → chunk-IS6M4ETF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K7HEURQ4.js.map → chunk-J2XEW4YL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O2Q7YQGO.js.map → chunk-J7XSQCJO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RA2LPP6E.js.map → chunk-JM4Z53DN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JR6FIX53.js.map → chunk-JNNPTGXR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I5VZGPS2.js.map → chunk-K7CGOZK5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B6OANV3G.js.map → chunk-KDH62ECD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NR7PTIR7.js.map → chunk-L23NAJHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FCZ6WYSR.js.map → chunk-LEXFDABF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GP54I36Z.js.map → chunk-LNAGQRIL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DD2WZD6L.js.map → chunk-LU4Z7POS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FEVEIX53.js.map → chunk-LX265XY7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NJABR6EB.js.map → chunk-MQAGSAMS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MRMS62WQ.js.map → chunk-N4NKVLPY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RY57ESL2.js.map → chunk-ND3MDD6L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y476SA4V.js.map → chunk-NEJKKTCG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Q3EW4RE5.js.map → chunk-NGL3X3XM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ENJDRDDP.js.map → chunk-NK54BSL7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KHQYX2QB.js.map → chunk-NN57FRRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VNCQ7SSG.js.map → chunk-NNRXTZ7Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KZQHMDS6.js.map → chunk-NOIIRLCO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K2PDZYUF.js.map → chunk-OC2CLNMS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SN7Q7M4U.js.map → chunk-OKUFGORG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZLWBLI5R.js.map → chunk-OOK6V7BF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DDEYJ3BH.js.map → chunk-OUQ4I6HC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X7ZXLB3C.js.map → chunk-PDOJRPYR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HDNEQAHV.js.map → chunk-PHQPQNAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FMFSUTTD.js.map → chunk-PTJ7NVUU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5URFS7C4.js.map → chunk-PUMGO764.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RPZ57GQ7.js.map → chunk-QFCCN4JO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-35YNX7RQ.js.map → chunk-QYIDXRRX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ITIUEWD5.js.map → chunk-RFDT674H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2BUNV627.js.map → chunk-SJ2DADDH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZYDUOY54.js.map → chunk-TKD4NESJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BU2CV5ZU.js.map → chunk-TMNQV4EK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GJNBKU6G.js.map → chunk-TWELUDDF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y5E6FCAL.js.map → chunk-U3S22BOJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2BKRMFGK.js.map → chunk-UFY4ETU6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EEUIIDWF.js.map → chunk-UGQENMKM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XK5CTXMB.js.map → chunk-UGSHP6SR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2JWIRG4V.js.map → chunk-VF24O6TV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-PZBRTJ3Y.js.map → chunk-VLVTXEGG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NAGOH4YJ.js.map → chunk-VXUWCJS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ETGRUM64.js.map → chunk-WBMARQCV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L6C62S4V.js.map → chunk-WZDABROA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P63GUQK5.js.map → chunk-XG5GVZRX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6UWHAJEX.js.map → chunk-XGCPTS6L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XGUXU4IQ.js.map → chunk-Y44B5FBE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-C3QR2DPR.js.map → chunk-YP6DWEWQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TB6364F7.js.map → chunk-Z7XTVIN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XSJZF3TO.js.map → chunk-ZEKVLV6P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SNFLSFFH.js.map → chunk-ZFPOBSPC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RYASC6U3.js.map → chunk-ZUB725AA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-A77IGXNC.js.map → close-CQHW3WMK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-II7JKV32.js.map → close-ZZW5FLTB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-P2YOWN52.js.map → close-many-AR2YH3SJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-FD46X4WK.js.map → close-many-IKCEGBLQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-OAU2E7RK.js.map → comments-NV4SIY5Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-FNLKE3TW.js.map → comments-UV4HMI2K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-U6H22S7E.js.map → copy-OUFWOHVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-5MOERABQ.js.map → copy-X7HJFWIH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-HS64DHTL.js.map → create-QEDL4KKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-DOMKSBHN.js.map → create-R6MMMMJS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-4XPF5XLP.js.map → delete-MJGZFDHZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-BMOQWZRQ.js.map → delete-OOJRG4HF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-TMOF765V.js.map → deps-4OP6Q76N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-R44LVZTU.js.map → deps-Y5X6NFT5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-J4OI4PWM.js.map → docs-SILTBWSO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-HN6QKGEU.js.map → docs-UKTQVUHS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-RNFWG435.js.map → files-2QEI2V3C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-NX4LNOPL.js.map → files-7OIKZPI3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-7H5B4PKZ.js.map → focus-3YC5LFCG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{focus-OBSDVVI7.js.map → focus-FFWH32BF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-RZMMFSTO.js.map → history-compact-AAA4W6LY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-CKNRN637.js.map → history-compact-PIURAPW5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-ZNS2QTMI.js.map → history-redact-KWZ7LKQB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-W7TTAEX2.js.map → history-redact-NTO74EIV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-LQ5IU4ZX.js.map → history-repair-QWZJYYOJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-RGAQBOIS.js.map → history-repair-ROV5TD3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-AHMJNIQZ.js.map → learnings-25TJCVON.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-VDRTXWTF.js.map → learnings-3WJFJT7E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-UXXTI3J5.js.map → notes-FM53JJ5C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-GJI26GJR.js.map → notes-IAHGNCYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-H3OPE2RP.js.map → plan-EJ4USP2S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-ZHJH6VMF.js.map → plan-WHV4H2RW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-PFNN3CBJ.js.map → profile-SZQVKHUQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-FCZWT5LE.js.map → profile-TXE673DR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-HSVJDV3R.js.map → register-setup-KB5U3RES.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-KE5L3H7U.js.map → register-setup-ZG7YXPHJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-MDNVYUDD.js.map → restore-F5HPTRBR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-AR77QSO6.js.map → restore-LN57EB5H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-AJCAANMB.js.map → schema-3DKXA4KR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-2B37DMM2.js.map → schema-QLTOK23S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-D3ZZ2V7Z.js.map → update-2T5EWMXD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-ZCDGTSNL.js.map → update-IKMNH3W4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-6E2DDBE4.js.map → update-many-3Q6Z2Q4Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-2Q2PRSSB.js.map → update-many-OTAS4BWH.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sources":["cli/commands/update.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/update\n *\n * Implements the pm update command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n COMMON_MUTATION_COMMAND_OPTION_KEYS,\n canonicalizeCommandOptionKey,\n commandOptionFlagLabel,\n resolveItemTypeRegistry,\n resolveCommandOptionPolicyState,\n resolveTypeDefinition,\n resolveTypeName,\n validateTypeOptions,\n} from \"../../core/item/type-registry.js\";\nimport { normalizeItemId } from \"../../core/item/id.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { buildInvalidTypeError } from \"../../core/schema/item-types-file.js\";\nimport {\n assertParentReferenceIsNotSelf,\n normalizeParentReferenceValue,\n validateMissingParentReference,\n} from \"../../core/item/parent-reference-policy.js\";\nimport { validateSprintOrReleaseValue } from \"../../core/item/sprint-release-format.js\";\nimport {\n applyTagRemovals,\n assertNoUnknownCsvKeys,\n createStdinTokenResolver,\n looksLikeGenericKeyValueEntry,\n mergeAdditiveTags,\n parseCsvKv,\n parseOptionalNumber,\n parseTags,\n} from \"../../core/item/parse.js\";\nimport { resolvePriority } from \"../../core/item/priority.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeUpdateFieldValues } from \"../../core/schema/runtime-field-values.js\";\nimport {\n resolveItemTypesFilePath,\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport {\n describeAllowedTransitions,\n evaluateTransition,\n resolveTypeWorkflows,\n type NormalizedTypeWorkflow,\n} from \"../../core/schema/type-workflows.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 { stableValueEquals } from \"../../core/shared/serialization.js\";\nimport { resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport {\n collectRegisteredItemFieldNames,\n applyRegisteredItemFieldDefaultsAndValidation,\n parseRegisteredItemFieldAssignments,\n} from \"../../core/extensions/item-fields.js\";\nimport {\n buildItemNotFoundError,\n locateItem,\n mutateItem,\n readLocatedItem,\n} from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose } from \"./close.js\";\nimport {\n normalizeRiskInput,\n normalizeSeverityInput,\n parseConfidenceInput,\n parseRegressionInput,\n} from \"./metadata-normalizers.js\";\nimport {\n applyLegacyNoneCollectionNormalizers,\n assertNoLegacyNoneToken,\n assertNoLegacyNoneTokens,\n isLegacyNoneToken,\n type LegacyNoneCollectionNormalizer,\n} from \"./legacy-none-tokens.js\";\nimport { ensureEnumValue as ensureEnum } from \"./recurrence-parsers.js\";\nimport {\n parseEventEntries,\n parseReminderEntries,\n parseTypeOptionEntries,\n} from \"./repeatable-metadata-parsers.js\";\nimport { assertValidBareDependencyFlagValue } from \"../../sdk/dependency-flag-validation.js\";\nimport type {\n Comment,\n Dependency,\n GovernanceWorkflowEnforcement,\n ItemFormat,\n ItemDocument,\n ItemFrontMatter,\n ItemStatus,\n LinkedDoc,\n LinkedFile,\n LinkedTest,\n LogNote,\n} from \"../../types/index.js\";\nimport {\n DEPENDENCY_KIND_VALUES,\n ISSUE_SEVERITY_VALUES,\n RISK_VALUES,\n} from \"../../types/index.js\";\nimport { parseDocs, parseFiles, parseLogSeed, parseTests } from \"./create.js\";\nimport {\n COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR,\n COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR,\n COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,\n parseCommandUnsetTargets,\n resolveRuntimeUnsetFieldDefinition,\n type CommandUnsetFieldDefinition,\n} from \"./shared-unset-fields.js\";\nimport type {\n MutationMetadataCommandOptions,\n SharedLinkedResourceClearOptions,\n SharedLinkedResourceOptions,\n} from \"./mutation-command-options.js\";\n\n/** Documents the update command options payload exchanged by command, SDK, and package integrations. */\nexport interface UpdateCommandOptions\n extends\n MutationMetadataCommandOptions,\n SharedLinkedResourceOptions,\n SharedLinkedResourceClearOptions {\n /** Value that configures or reports title for this contract. */\n title?: string;\n /** Value that configures or reports description for this contract. */\n description?: string;\n /** Value that configures or reports body for this contract. */\n body?: string;\n /** Lifecycle state reported for status. */\n status?: string;\n /** Value that configures or reports close reason for this contract. */\n closeReason?: string;\n /** Value that configures or reports priority for this contract. */\n priority?: string;\n /** Schema type that determines the shape and validation rules for this value. */\n type?: string;\n /** Value that configures or reports tags for this contract. */\n tags?: string;\n /** Value that configures or reports add tags for this contract. */\n addTags?: string[];\n /** Value that configures or reports remove tags for this contract. */\n removeTags?: string[];\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n /** Value that configures or reports allow audit update for this contract. */\n allowAuditUpdate?: boolean;\n /** Value that configures or reports allow audit dep update for this contract. */\n allowAuditDepUpdate?: boolean;\n /** Value that configures or reports dep remove for this contract. */\n depRemove?: string[];\n /** Value that configures or reports replace deps for this contract. */\n replaceDeps?: boolean;\n /** Value that configures or reports replace tests for this contract. */\n replaceTests?: boolean;\n /** Value that configures or reports runtime field commands for this contract. */\n runtimeFieldCommands?: Array<\"update\" | \"update_many\">;\n [key: string]: unknown;\n}\n\n/** Documents the update result payload exchanged by command, SDK, and package integrations. */\nexport interface UpdateResult {\n /** Value that configures or reports item for this contract. */\n item: Record<string, unknown>;\n /** Value that configures or reports changed fields for this contract. */\n changed_fields: string[];\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n /** Value that configures or reports audit update for this contract. */\n audit_update?: boolean;\n}\n\ninterface UpdateUnsetFieldDefinition {\n optionKey: string;\n frontMatterKey: string;\n}\n\nconst UPDATE_UNSET_FIELD_DEFINITIONS: readonly CommandUnsetFieldDefinition[] = [\n ...COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,\n {\n canonical: \"close-reason\",\n aliases: [\"close_reason\", \"close-reason\"],\n optionKey: \"closeReason\",\n frontMatterKey: \"close_reason\",\n },\n ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR,\n ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR,\n];\n\nconst UPDATE_UNSET_ALIAS_MAP: Map<string, UpdateUnsetFieldDefinition> = (() => {\n const map = new Map<string, UpdateUnsetFieldDefinition>();\n for (const definition of UPDATE_UNSET_FIELD_DEFINITIONS) {\n for (const alias of definition.aliases) {\n map.set(alias, {\n optionKey: definition.optionKey,\n frontMatterKey: definition.frontMatterKey,\n });\n }\n }\n return map;\n})();\n\nconst UPDATE_OPTION_KEY_TO_UNSET_CANONICAL = new Map<string, string>(\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => [\n definition.optionKey,\n definition.canonical,\n ]),\n);\n\nconst UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS =\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => definition.canonical)\n .sort((left, right) => left.localeCompare(right))\n .join(\", \");\n\nconst AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS = new Set<string>([\n \"close_reason\",\n \"assignee\",\n \"parent\",\n \"blocked_by\",\n \"blocked_reason\",\n \"unblock_note\",\n \"dependencies\",\n \"comments\",\n \"notes\",\n \"learnings\",\n \"files\",\n \"tests\",\n \"docs\",\n \"reminders\",\n \"events\",\n]);\n\nfunction toAuthor(\n candidate: string | undefined,\n defaultAuthor: string,\n): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\nconst UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS: ReadonlyArray<\n LegacyNoneCollectionNormalizer<UpdateCommandOptions>\n> = [\n {\n optionKey: \"dep\",\n clearFlagKey: \"clearDeps\",\n valueFlag: \"--dep\",\n clearFlag: \"--clear-deps\",\n disableFlagKey: \"replaceDeps\",\n },\n {\n optionKey: \"comment\",\n clearFlagKey: \"clearComments\",\n valueFlag: \"--comment\",\n clearFlag: \"--clear-comments\",\n },\n {\n optionKey: \"note\",\n clearFlagKey: \"clearNotes\",\n valueFlag: \"--note\",\n clearFlag: \"--clear-notes\",\n },\n {\n optionKey: \"learning\",\n clearFlagKey: \"clearLearnings\",\n valueFlag: \"--learning\",\n clearFlag: \"--clear-learnings\",\n },\n {\n optionKey: \"file\",\n clearFlagKey: \"clearFiles\",\n valueFlag: \"--file\",\n clearFlag: \"--clear-files\",\n },\n {\n optionKey: \"test\",\n clearFlagKey: \"clearTests\",\n valueFlag: \"--test\",\n clearFlag: \"--clear-tests\",\n disableFlagKey: \"replaceTests\",\n },\n {\n optionKey: \"doc\",\n clearFlagKey: \"clearDocs\",\n valueFlag: \"--doc\",\n clearFlag: \"--clear-docs\",\n },\n {\n optionKey: \"reminder\",\n clearFlagKey: \"clearReminders\",\n valueFlag: \"--reminder\",\n clearFlag: \"--clear-reminders\",\n },\n {\n optionKey: \"event\",\n clearFlagKey: \"clearEvents\",\n valueFlag: \"--event\",\n clearFlag: \"--clear-events\",\n },\n {\n optionKey: \"typeOption\",\n clearFlagKey: \"clearTypeOptions\",\n valueFlag: \"--type-option\",\n clearFlag: \"--clear-type-options\",\n },\n];\n\nfunction normalizeLegacyNoneUpdateOptions(\n options: UpdateCommandOptions,\n): UpdateCommandOptions {\n const normalized: UpdateCommandOptions = {\n ...options,\n unset: options.unset ? [...options.unset] : undefined,\n };\n /* c8 ignore start -- unset dedupe helper branch permutations are covered by legacy option compatibility suites. */\n const appendUnsetTarget = (value: string): void => {\n const current = normalized.unset ? [...normalized.unset] : [];\n if (!current.includes(value)) {\n current.push(value);\n }\n normalized.unset = current;\n };\n /* c8 ignore stop */\n\n const scalarOptionKeys = new Set<string>([\n ...UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.keys(),\n \"rank\",\n ]);\n for (const optionKey of scalarOptionKeys) {\n const candidate = normalized[optionKey];\n if (typeof candidate !== \"string\" || !isLegacyNoneToken(candidate)) {\n continue;\n }\n /* c8 ignore start -- rank alias canonicalization is exercised in legacy-option compatibility tests. */\n const canonicalUnset =\n optionKey === \"rank\"\n ? \"order\"\n : (UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey);\n appendUnsetTarget(canonicalUnset);\n normalized[optionKey] = undefined;\n /* c8 ignore stop */\n }\n\n return applyLegacyNoneCollectionNormalizers(\n normalized,\n UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS,\n );\n}\n\nfunction parseUpdateUnsetTargets(\n raw: string[] | undefined,\n runtimeFieldRegistry?: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[] = [],\n): { frontMatterKeys: Set<string>; optionKeys: Set<string> } {\n return parseCommandUnsetTargets({\n raw,\n supportedFields: UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS,\n resolveDefinition: (trimmed) => {\n const extensionFieldName = extensionFieldNames.find((fieldName) => {\n const normalizedFieldName = fieldName.toLowerCase();\n return (\n normalizedFieldName === trimmed ||\n normalizedFieldName.replaceAll(\"_\", \"-\") === trimmed ||\n normalizedFieldName.replaceAll(\"-\", \"_\") === trimmed\n );\n });\n const definition =\n UPDATE_UNSET_ALIAS_MAP.get(trimmed) ??\n resolveRuntimeUnsetFieldDefinition(\n trimmed,\n \"update\",\n runtimeFieldRegistry,\n ) ??\n (extensionFieldName\n ? { optionKey: \"field\", frontMatterKey: extensionFieldName }\n : undefined);\n return definition;\n },\n });\n}\n\n// Restricted append-style flags have dedicated commands with their own\n// audit/override semantics; map each one to its exact replacement invocation so\n// audit-scope errors tell the agent how to retry instead of dead-ending. The\n// evidence append flags are allowed by --allow-audit-update, but still used by\n// narrower scopes such as --allow-audit-dep-update.\nconst AUDIT_RESTRICTED_FLAG_REPLACEMENTS: ReadonlyMap<\n string,\n (id: string) => string\n> = new Map([\n [\n \"--comment\",\n (id: string) => `pm comments ${id} --add \"<text>\" --allow-audit-comment`,\n ],\n [\n \"--file\",\n (id: string) =>\n `pm files ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`,\n ],\n [\n \"--doc\",\n (id: string) =>\n `pm docs ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`,\n ],\n]);\n\nfunction buildAuditScopeRestrictedOptionsError(params: {\n id: string;\n code: string;\n message: string;\n required: string;\n why: string;\n disallowedFlags: string[];\n}): PmCliError {\n // Only surface replacement commands for restricted flags the caller actually\n // passed, so the guidance is an exact retry path.\n const replacementCommands = params.disallowedFlags.flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement ? [replacement(params.id)] : [];\n });\n const replacementSteps = params.disallowedFlags.flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement\n ? [`Replace ${flag} with: ${replacement(params.id)}`]\n : [];\n });\n return new PmCliError(params.message, EXIT_CODE.USAGE, {\n code: params.code,\n required: params.required,\n why: params.why,\n ...(replacementCommands.length > 0\n ? { examples: replacementCommands }\n : {}),\n nextSteps: [\n `Re-run without: ${params.disallowedFlags.join(\", \")}`,\n ...replacementSteps,\n ],\n });\n}\n\nfunction enforceAllowAuditUpdateScope(\n id: string,\n options: UpdateCommandOptions,\n clearFrontMatterKeys: Set<string>,\n): void {\n const allowAuditUpdate = options.allowAuditUpdate === true;\n const allowAuditDepUpdate = options.allowAuditDepUpdate === true;\n if (!allowAuditUpdate && !allowAuditDepUpdate) {\n return;\n }\n if (allowAuditUpdate && allowAuditDepUpdate) {\n throw new PmCliError(\n \"Choose either --allow-audit-update or --allow-audit-dep-update; these override modes are mutually exclusive.\",\n EXIT_CODE.USAGE,\n );\n }\n const pushIf = (condition: boolean, flag: string, list: string[]): void => {\n if (condition) {\n list.push(flag);\n }\n };\n if (allowAuditDepUpdate) {\n const disallowedFlags: string[] = [];\n pushIf(options.title !== undefined, \"--title\", disallowedFlags);\n pushIf(options.description !== undefined, \"--description\", disallowedFlags);\n pushIf(options.body !== undefined, \"--body\", disallowedFlags);\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(\n options.closeReason !== undefined,\n \"--close-reason\",\n disallowedFlags,\n );\n pushIf(options.priority !== undefined, \"--priority\", disallowedFlags);\n pushIf(options.type !== undefined, \"--type\", disallowedFlags);\n pushIf(options.tags !== undefined, \"--tags\", disallowedFlags);\n pushIf(\n Array.isArray(options.addTags) && options.addTags.length > 0,\n \"--add-tags\",\n disallowedFlags,\n );\n pushIf(\n Array.isArray(options.removeTags) && options.removeTags.length > 0,\n \"--remove-tags\",\n disallowedFlags,\n );\n pushIf(options.deadline !== undefined, \"--deadline\", disallowedFlags);\n pushIf(\n options.estimatedMinutes !== undefined,\n \"--estimate\",\n disallowedFlags,\n );\n pushIf(\n options.acceptanceCriteria !== undefined,\n \"--acceptance-criteria\",\n disallowedFlags,\n );\n pushIf(\n options.definitionOfReady !== undefined,\n \"--definition-of-ready\",\n disallowedFlags,\n );\n pushIf(\n options.order !== undefined || options.rank !== undefined,\n \"--order/--rank\",\n disallowedFlags,\n );\n pushIf(options.goal !== undefined, \"--goal\", disallowedFlags);\n pushIf(options.objective !== undefined, \"--objective\", disallowedFlags);\n pushIf(options.value !== undefined, \"--value\", disallowedFlags);\n pushIf(options.impact !== undefined, \"--impact\", disallowedFlags);\n pushIf(options.outcome !== undefined, \"--outcome\", disallowedFlags);\n pushIf(options.whyNow !== undefined, \"--why-now\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.reviewer !== undefined, \"--reviewer\", disallowedFlags);\n pushIf(options.risk !== undefined, \"--risk\", disallowedFlags);\n pushIf(options.confidence !== undefined, \"--confidence\", disallowedFlags);\n pushIf(options.sprint !== undefined, \"--sprint\", disallowedFlags);\n pushIf(options.release !== undefined, \"--release\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(\n options.blockedReason !== undefined,\n \"--blocked-reason\",\n disallowedFlags,\n );\n pushIf(\n options.unblockNote !== undefined,\n \"--unblock-note\",\n disallowedFlags,\n );\n pushIf(options.reporter !== undefined, \"--reporter\", disallowedFlags);\n pushIf(options.severity !== undefined, \"--severity\", disallowedFlags);\n pushIf(options.environment !== undefined, \"--environment\", disallowedFlags);\n pushIf(options.reproSteps !== undefined, \"--repro-steps\", disallowedFlags);\n pushIf(options.resolution !== undefined, \"--resolution\", disallowedFlags);\n pushIf(\n options.expectedResult !== undefined,\n \"--expected-result\",\n disallowedFlags,\n );\n pushIf(\n options.actualResult !== undefined,\n \"--actual-result\",\n disallowedFlags,\n );\n pushIf(\n options.affectedVersion !== undefined,\n \"--affected-version\",\n disallowedFlags,\n );\n pushIf(\n options.fixedVersion !== undefined,\n \"--fixed-version\",\n disallowedFlags,\n );\n pushIf(options.component !== undefined, \"--component\", disallowedFlags);\n pushIf(options.regression !== undefined, \"--regression\", disallowedFlags);\n pushIf(\n options.customerImpact !== undefined,\n \"--customer-impact\",\n disallowedFlags,\n );\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.comment !== undefined, \"--comment\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.file !== undefined, \"--file\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.doc !== undefined, \"--doc\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.typeOption !== undefined, \"--type-option\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(\n options.clearLearnings === true,\n \"--clear-learnings\",\n disallowedFlags,\n );\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(\n options.clearReminders === true,\n \"--clear-reminders\",\n disallowedFlags,\n );\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n pushIf(\n options.clearTypeOptions === true,\n \"--clear-type-options\",\n disallowedFlags,\n );\n pushIf(options.force === true, \"--force\", disallowedFlags);\n pushIf(clearFrontMatterKeys.size > 0, \"--unset\", disallowedFlags);\n if (options.dep === undefined || options.dep.length === 0) {\n throw new PmCliError(\n \"--allow-audit-dep-update requires at least one --dep value\",\n EXIT_CODE.USAGE,\n );\n }\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_dep_update_restricted_options\",\n message: `--allow-audit-dep-update supports append-only dependency additions via --dep. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required:\n \"Pass only --dep additions (plus --message/--author) when using --allow-audit-dep-update.\",\n why: \"--allow-audit-dep-update is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.\",\n disallowedFlags,\n });\n }\n return;\n }\n\n const disallowedFlags: string[] = [];\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(options.closeReason !== undefined, \"--close-reason\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(\n options.blockedReason !== undefined,\n \"--blocked-reason\",\n disallowedFlags,\n );\n pushIf(options.unblockNote !== undefined, \"--unblock-note\", disallowedFlags);\n pushIf(options.dep !== undefined, \"--dep\", disallowedFlags);\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(options.clearLearnings === true, \"--clear-learnings\", disallowedFlags);\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(options.clearReminders === true, \"--clear-reminders\", disallowedFlags);\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n\n /* c8 ignore start -- audit unset ordering fallback is validated by audit-governance integration coverage. */\n const disallowedUnset = [...clearFrontMatterKeys]\n .filter((field) =>\n AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS.has(field),\n )\n .sort((left, right) => left.localeCompare(right))\n .map((field) => `--unset ${field.replaceAll(\"_\", \"-\")}`);\n /* c8 ignore stop */\n disallowedFlags.push(...disallowedUnset);\n\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_update_restricted_options\",\n message: `--allow-audit-update only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required:\n \"Limit --allow-audit-update to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.\",\n why: \"--allow-audit-update is a non-owner override scoped to metadata audits and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.\",\n disallowedFlags,\n });\n }\n}\n\n/* c8 ignore start -- lifecycle/dependency edge branches are exercised by dedicated update workflow integration tests. */\nfunction parseStatus(\n value: string,\n statusRegistry: RuntimeStatusRegistry,\n): ItemStatus {\n const normalized = normalizeStatusInput(value, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map(\n (definition) => definition.id,\n );\n throw new PmCliError(\n `Invalid --status value \"${value}\". Allowed: ${allowedStatuses.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\n/** Enforce per-type allowed-transition rules (governance.workflow_enforcement). `off` (default) or an unrestricted type is a no-op. `strict` throws on a disallowed transition; `warn` returns a warning string surfaced on the update result. The target status is the raw `--status` value (resolved case-insensitively through the registry inside evaluateTransition). */\nfunction enforceTypeWorkflowTransition(params: {\n enforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeName: string;\n fromStatus: string;\n toStatus: string;\n}): string | undefined {\n if (params.enforcement === \"off\" || params.typeWorkflows.length === 0) {\n return undefined;\n }\n const result = evaluateTransition({\n typeName: params.typeName,\n fromStatus: params.fromStatus,\n toStatus: params.toStatus,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n });\n if (!result.hasRule || result.allowed) {\n return undefined;\n }\n const normalizedFrom =\n normalizeStatusInput(params.fromStatus, params.statusRegistry) ??\n params.fromStatus;\n const normalizedTo =\n normalizeStatusInput(params.toStatus, params.statusRegistry) ??\n params.toStatus;\n const message =\n `Disallowed transition for type \"${params.typeName}\": ${normalizedFrom} -> ${normalizedTo}. ` +\n `Allowed transitions: ${describeAllowedTransitions(result.allowedTransitions)}.`;\n if (params.enforcement === \"strict\") {\n throw new PmCliError(message, EXIT_CODE.USAGE);\n }\n return `workflow_transition_not_allowed: ${message}`;\n}\n\ninterface ParsedDependencyUpdates {\n additions: Dependency[];\n}\n\ninterface DependencyRemovalSelector {\n id: string;\n kind?: (typeof DEPENDENCY_KIND_VALUES)[number];\n source_kind?: string;\n}\n\nfunction parseDependencyCreatedAt(\n value: string | undefined,\n currentIso: string,\n): string {\n if (!value || value.trim() === \"\" || value.trim().toLowerCase() === \"now\") {\n return currentIso;\n }\n const parsed = Date.parse(value);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(\n `Invalid dependency created_at timestamp \"${value}\"`,\n EXIT_CODE.USAGE,\n );\n }\n return new Date(parsed).toISOString();\n}\n\nfunction parseOptionalDependencyString(\n value: string | undefined,\n): string | undefined {\n if (value === undefined) return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\n/** Allowed CSV/markdown keys for the update `--dep` addition seed (GH-258). */\nconst DEP_ADDITION_KEYS = [\n \"id\",\n \"kind\",\n \"type\",\n \"author\",\n \"created_at\",\n \"source_kind\",\n] as const;\n/** Allowed CSV/markdown keys for the `--dep-remove` selector (GH-258). */\nconst DEP_REMOVE_KEYS = [\"id\", \"kind\", \"type\", \"source_kind\"] as const;\n\nfunction looksLikeStructuredDependencyEntry(raw: string): boolean {\n if (raw.startsWith(\"```\") || raw.includes(\"\\n\")) {\n return true;\n }\n if (\n /^(?:[-*+]\\s+)?(?:id|kind|type|author|created_at|source_kind)\\s*[:=]/i.test(\n raw,\n )\n ) {\n return true;\n }\n // A first-key typo (e.g. `bogus=v,id=pm-2`) must still be parsed so the unknown\n // key is rejected rather than swallowed as a bare item id (GH-258).\n return looksLikeGenericKeyValueEntry(raw);\n}\n\n// pm-fl0c #4 (2026-05-28): `pm plan` accepts `depends_on` as a link kind\n// (`PLAN_STEP_LINK_KIND_VALUES`) but `pm update --dep kind=depends_on` rejected\n// it because `DEPENDENCY_KIND_VALUES` only lists `blocked_by`. The two terms\n// are semantically identical from this side (\"X depends on Y\" === \"X blocked\n// by Y\"), so we normalize input here rather than expanding the persisted enum\n// — the stored kind stays canonical (`blocked_by`) and downstream consumers\n// (closing logic, dependency graphs, blockers views) keep working unchanged.\nconst DEPENDENCY_KIND_INPUT_ALIASES: Readonly<Record<string, string>> = {\n \"blocked-by\": \"blocked_by\",\n depends_on: \"blocked_by\",\n \"depends-on\": \"blocked_by\",\n};\n\nfunction normalizeDependencyKindInput(\n raw: string | undefined,\n): string | undefined {\n if (typeof raw !== \"string\") {\n return raw;\n }\n const trimmed = raw.trim();\n const alias = DEPENDENCY_KIND_INPUT_ALIASES[trimmed.toLowerCase()];\n return alias ?? trimmed;\n}\n\nfunction parseDependencyAdditions(\n raw: string[] | undefined,\n prefix: string,\n nowIso: string,\n): ParsedDependencyUpdates {\n if (!raw) {\n return { additions: [] };\n }\n assertNoLegacyNoneTokens(\n raw,\n \"--dep\",\n \"Use --clear-deps to clear dependencies.\",\n );\n const additions: Dependency[] = raw.map((entry) => {\n const trimmedEntry = entry.trim();\n const isStructured = looksLikeStructuredDependencyEntry(trimmedEntry);\n assertValidBareDependencyFlagValue(trimmedEntry, isStructured);\n const kv = isStructured\n ? parseCsvKv(entry, \"--dep\")\n : { id: trimmedEntry, kind: \"related\" };\n if (isStructured) {\n assertNoUnknownCsvKeys(kv, \"--dep\", DEP_ADDITION_KEYS);\n }\n const id = kv.id?.trim();\n const kind = normalizeDependencyKindInput((kv.kind ?? kv.type)?.trim());\n if (!id || !kind) {\n throw new PmCliError(\n \"--dep requires id and kind, or a bare item id to add a related dependency\",\n EXIT_CODE.USAGE,\n );\n }\n if (id.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep id must not use placeholder token \"${id}\". Use --clear-deps to clear dependencies.`,\n EXIT_CODE.USAGE,\n );\n }\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(id, prefix),\n kind: ensureEnum(kind, DEPENDENCY_KIND_VALUES, \"dependency kind\"),\n created_at: parseDependencyCreatedAt(kv.created_at, nowIso),\n author: parseOptionalDependencyString(kv.author),\n source_kind: sourceKind,\n };\n });\n return { additions };\n}\n\nfunction parseDependencyRemovals(\n raw: string[] | undefined,\n prefix: string,\n): DependencyRemovalSelector[] {\n if (!raw) {\n return [];\n }\n assertNoLegacyNoneTokens(raw, \"--dep-remove\");\n return raw.map((entry) => {\n const trimmed = entry.trim();\n if (!trimmed) {\n throw new PmCliError(\n \"--dep-remove requires id or key/value selectors\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n trimmed.includes(\"=\") ||\n /^(?:[-*+]\\s+)?(?:id|kind|type|source_kind)\\s*[:=]/i.test(trimmed) ||\n trimmed.startsWith(\"```\")\n ) {\n const kv = parseCsvKv(trimmed, \"--dep-remove\");\n assertNoUnknownCsvKeys(kv, \"--dep-remove\", DEP_REMOVE_KEYS);\n const idRaw = kv.id?.trim();\n if (!idRaw) {\n throw new PmCliError(\n \"--dep-remove key/value form requires id=<value>\",\n EXIT_CODE.USAGE,\n );\n }\n if (idRaw.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep-remove id must not use placeholder token \"${idRaw}\"`,\n EXIT_CODE.USAGE,\n );\n }\n const kindRaw = normalizeDependencyKindInput(\n parseOptionalDependencyString(kv.kind ?? kv.type),\n );\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(idRaw, prefix),\n kind: kindRaw\n ? ensureEnum(kindRaw, DEPENDENCY_KIND_VALUES, \"dependency kind\")\n : undefined,\n source_kind: sourceKind,\n };\n }\n if (trimmed.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep-remove id must not use placeholder token \"${trimmed}\"`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n id: normalizeItemId(trimmed, prefix),\n };\n });\n}\n\nfunction dependencyKey(\n value: Pick<Dependency, \"id\" | \"kind\" | \"source_kind\">,\n): string {\n return `${value.id}::${value.kind}::${value.source_kind ?? \"\"}`;\n}\n\n// pm-kyd6: `--blocked-by` writes the `blocked_by` scalar, but the dependency\n// graph (`pm deps`) is built only from the `dependencies` array. Mirror the\n// behaviour create.ts already has so the metadata and the graph agree: a\n// resolvable blocker also gets a `blocked_by` dependency edge. Repeated\n// `--blocked-by` updates preserve prior blocker edges because the graph is the\n// full dependency record; the scalar remains the latest primary blocker for\n// backward compatibility. Clearing the scalar removes all derived blocker edges.\nfunction reconcileBlockedByDependency(\n current: Dependency[] | undefined,\n nextBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n): { dependencies: Dependency[] | undefined; changed: boolean } {\n let next = [...(current ?? [])];\n let changed = false;\n if (nextBlockedById === undefined) {\n const filtered = next.filter((dep) => dep.kind !== \"blocked_by\");\n if (filtered.length !== next.length) {\n next = filtered;\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n }\n if (\n !next.some((dep) => dep.kind === \"blocked_by\" && dep.id === nextBlockedById)\n ) {\n next.push({\n id: nextBlockedById,\n kind: \"blocked_by\",\n created_at: nowIsoValue,\n author,\n });\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n}\n\n// pm-kyd6: resolve the --blocked-by target before the synchronous mutate\n// callback so a real blocker can also become a `blocked_by` dependency edge.\n// `id` is set when the target resolves; `unresolved` carries the raw value when\n// --blocked-by points at an item that does not exist (the scalar is still set,\n// mirroring create.ts and the never-block missing-parent behaviour, but the\n// caller surfaces a warning so the metadata/graph mismatch is visible).\nasync function resolveBlockedByDependencyTarget(\n blockedByOption: string | undefined,\n blockedByCleared: boolean,\n pmRoot: string,\n idPrefix: string,\n itemFormat: ItemFormat,\n typeToFolder: Record<string, string>,\n): Promise<{ id?: string; unresolved?: string }> {\n if (blockedByOption === undefined || blockedByCleared) {\n return {};\n }\n const blockedByValue = blockedByOption.trim();\n if (blockedByValue.length === 0) {\n return {};\n }\n const located = await locateItem(\n pmRoot,\n normalizeItemId(blockedByValue, idPrefix),\n idPrefix,\n itemFormat,\n typeToFolder,\n );\n return located ? { id: located.id } : { unresolved: blockedByValue };\n}\n\n// pm-kyd6: apply the reconciled blocked_by dependency edge to the item metadata\n// and record the `dependencies` change. Kept out of the mutate callback so the\n// large runUpdate function stays under the static-quality complexity budget.\nfunction applyBlockedByDependencyEdge(\n metadata: ItemFrontMatter,\n resolvedBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n changedFields: string[],\n): void {\n const reconciled = reconcileBlockedByDependency(\n metadata.dependencies,\n resolvedBlockedById,\n nowIsoValue,\n author,\n );\n if (!reconciled.changed) {\n return;\n }\n if (reconciled.dependencies === undefined) {\n delete metadata.dependencies;\n } else {\n metadata.dependencies = reconciled.dependencies;\n }\n if (!changedFields.includes(\"dependencies\")) {\n changedFields.push(\"dependencies\");\n }\n}\n\nfunction fileKey(value: Pick<LinkedFile, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction docKey(value: Pick<LinkedDoc, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction testKey(\n value: Pick<LinkedTest, \"command\" | \"path\" | \"scope\" | \"pm_context_mode\">,\n): string {\n return `${value.command}::${value.path ?? \"\"}::${value.scope}::${value.pm_context_mode ?? \"\"}`;\n}\n\nfunction matchesDependencySelector(\n value: Dependency,\n selector: DependencyRemovalSelector,\n): boolean {\n if (value.id !== selector.id) {\n return false;\n }\n if (selector.kind && value.kind !== selector.kind) {\n return false;\n }\n if (\n selector.source_kind !== undefined &&\n (value.source_kind ?? undefined) !== selector.source_kind\n ) {\n return false;\n }\n return true;\n}\n\nfunction ensurePriority(raw: string | number): 0 | 1 | 2 | 3 | 4 {\n return resolvePriority(raw);\n}\n\nfunction normalizeUpdatePolicyOptionKey(raw: string, typeName: string): string {\n const canonical = canonicalizeCommandOptionKey(\"update\", raw);\n if (!canonical) {\n throw new PmCliError(\n `Unsupported command_option_policies option \"${raw}\" for update command on type \"${typeName}\"`,\n EXIT_CODE.CONFLICT,\n );\n }\n return canonical;\n}\n\nfunction collectProvidedUpdatePolicyOptions(\n options: UpdateCommandOptions,\n runtimeFieldRegistry: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[],\n): Set<string> {\n const provided = new Set<string>();\n const mark = (optionKey: string, isProvided: boolean): void => {\n if (isProvided) {\n provided.add(optionKey);\n }\n };\n mark(\"title\", options.title !== undefined);\n mark(\"description\", options.description !== undefined);\n mark(\"body\", options.body !== undefined);\n mark(\"status\", options.status !== undefined);\n mark(\"closeReason\", options.closeReason !== undefined);\n mark(\"priority\", options.priority !== undefined);\n mark(\"type\", options.type !== undefined);\n // `--add-tags` / `--remove-tags` mutate the same `tags` field as `--tags`, so\n // they count toward the `tags` command_option_policy (disabled + required).\n mark(\n \"tags\",\n options.tags !== undefined ||\n (Array.isArray(options.addTags) && options.addTags.length > 0) ||\n (Array.isArray(options.removeTags) && options.removeTags.length > 0),\n );\n mark(\"deadline\", options.deadline !== undefined);\n mark(\"estimatedMinutes\", options.estimatedMinutes !== undefined);\n mark(\"acceptanceCriteria\", options.acceptanceCriteria !== undefined);\n mark(\"definitionOfReady\", options.definitionOfReady !== undefined);\n mark(\"order\", options.order !== undefined || options.rank !== undefined);\n mark(\"goal\", options.goal !== undefined);\n mark(\"objective\", options.objective !== undefined);\n mark(\"value\", options.value !== undefined);\n mark(\"impact\", options.impact !== undefined);\n mark(\"outcome\", options.outcome !== undefined);\n mark(\"whyNow\", options.whyNow !== undefined);\n mark(\"author\", options.author !== undefined);\n mark(\"message\", options.message !== undefined);\n mark(\"assignee\", options.assignee !== undefined);\n mark(\"parent\", options.parent !== undefined);\n mark(\"reviewer\", options.reviewer !== undefined);\n mark(\"risk\", options.risk !== undefined);\n mark(\"confidence\", options.confidence !== undefined);\n mark(\"sprint\", options.sprint !== undefined);\n mark(\"release\", options.release !== undefined);\n mark(\"blockedBy\", options.blockedBy !== undefined);\n mark(\"blockedReason\", options.blockedReason !== undefined);\n mark(\"unblockNote\", options.unblockNote !== undefined);\n mark(\"reporter\", options.reporter !== undefined);\n mark(\"severity\", options.severity !== undefined);\n mark(\"environment\", options.environment !== undefined);\n mark(\"reproSteps\", options.reproSteps !== undefined);\n mark(\"resolution\", options.resolution !== undefined);\n mark(\"expectedResult\", options.expectedResult !== undefined);\n mark(\"actualResult\", options.actualResult !== undefined);\n mark(\"affectedVersion\", options.affectedVersion !== undefined);\n mark(\"fixedVersion\", options.fixedVersion !== undefined);\n mark(\"component\", options.component !== undefined);\n mark(\"regression\", options.regression !== undefined);\n mark(\"customerImpact\", options.customerImpact !== undefined);\n mark(\"dep\", options.dep !== undefined);\n mark(\"depRemove\", options.depRemove !== undefined);\n mark(\"dep\", options.replaceDeps === true);\n mark(\"comment\", options.comment !== undefined);\n mark(\"note\", options.note !== undefined);\n mark(\"learning\", options.learning !== undefined);\n mark(\"file\", options.file !== undefined);\n mark(\"test\", options.test !== undefined);\n mark(\"test\", options.replaceTests === true);\n mark(\"doc\", options.doc !== undefined);\n mark(\"reminder\", options.reminder !== undefined);\n mark(\"event\", options.event !== undefined);\n mark(\"typeOption\", options.typeOption !== undefined);\n mark(\"field\", options.field !== undefined);\n mark(\"force\", options.force === true);\n mark(\"allowAuditUpdate\", options.allowAuditUpdate === true);\n mark(\"dep\", options.clearDeps === true);\n mark(\"comment\", options.clearComments === true);\n mark(\"note\", options.clearNotes === true);\n mark(\"learning\", options.clearLearnings === true);\n mark(\"file\", options.clearFiles === true);\n mark(\"test\", options.clearTests === true);\n mark(\"doc\", options.clearDocs === true);\n mark(\"reminder\", options.clearReminders === true);\n mark(\"event\", options.clearEvents === true);\n mark(\"typeOption\", options.clearTypeOptions === true);\n if (options.unset && options.unset.length > 0) {\n const unsetTargets = parseUpdateUnsetTargets(\n options.unset,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n for (const optionKey of unsetTargets.optionKeys) {\n mark(optionKey, true);\n }\n }\n return provided;\n}\n\nfunction enforceUpdateOptionsByType(\n typeName: string,\n options: UpdateCommandOptions,\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n runtimeFieldRegistry: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[],\n): void {\n const typeDefinition = resolveTypeDefinition(typeName, typeRegistry);\n if (!typeDefinition) {\n throw new PmCliError(`Invalid type value \"${typeName}\"`, EXIT_CODE.USAGE);\n }\n const policyState = resolveCommandOptionPolicyState(\n typeDefinition,\n \"update\",\n [],\n );\n if (policyState.errors.length > 0) {\n throw new PmCliError(policyState.errors.join(\"; \"), EXIT_CODE.CONFLICT);\n }\n\n const provided = collectProvidedUpdatePolicyOptions(\n options,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n for (const disabled of policyState.disabled) {\n if (provided.has(normalizeUpdatePolicyOptionKey(disabled, typeName))) {\n throw new PmCliError(\n `Option ${commandOptionFlagLabel(\"update\", disabled)} is disabled for type \"${typeName}\" by command_option_policies`,\n EXIT_CODE.USAGE,\n );\n }\n }\n\n for (const required of policyState.required) {\n if (!provided.has(normalizeUpdatePolicyOptionKey(required, typeName))) {\n throw new PmCliError(\n `Missing required option ${commandOptionFlagLabel(\"update\", required)} for type \"${typeName}\"`,\n EXIT_CODE.USAGE,\n );\n }\n }\n}\n\ninterface UpdateScalarMutationContext {\n metadataRecord: Record<string, unknown>;\n clearFrontMatterKeys: ReadonlySet<string>;\n changedFields: string[];\n nowValue: Date;\n}\n\ninterface UpdateScalarMutationDefinition {\n optionKey: keyof UpdateCommandOptions;\n metadataKey: string;\n transform?: (value: string, context: UpdateScalarMutationContext) => unknown;\n}\n\ninterface UpdateClearCollectionDefinition {\n enabled: boolean | undefined;\n optionKey: string;\n clearFlag: string;\n valueFlag: string;\n values: string[] | undefined;\n frontMatterKey: string;\n}\n\ninterface UpdateMutationContext {\n options: UpdateCommandOptions;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n statusRegistry: RuntimeStatusRegistry;\n runtimeFieldRegistry: RuntimeFieldRegistry;\n extensionRegistrations: ReturnType<typeof getActiveExtensionRegistrations>;\n extensionFieldNames: readonly string[];\n clearFrontMatterKeys: ReadonlySet<string>;\n dependencyUpdates: ParsedDependencyUpdates;\n dependencyRemovals: DependencyRemovalSelector[];\n commentUpdates: ReturnType<typeof parseLogSeed>;\n noteUpdates: ReturnType<typeof parseLogSeed>;\n learningUpdates: ReturnType<typeof parseLogSeed>;\n fileUpdates: ReturnType<typeof parseFiles>;\n testUpdates: ReturnType<typeof parseTests>;\n docUpdates: ReturnType<typeof parseDocs>;\n resolvedParentValue: string | undefined;\n resolvedBlockedByDependencyId: string | undefined;\n runtimeFieldUpdates: Record<string, unknown>;\n nowValue: Date;\n nowIso: string;\n author: string;\n pmRoot: string;\n}\n\ninterface CloseRouteContext {\n options: UpdateCommandOptions;\n fieldFlags: Record<string, boolean>;\n statusRegistry: RuntimeStatusRegistry;\n workflowTransitionWarnings: readonly string[];\n global: GlobalOptions;\n id: string;\n}\n\n// `rank` is a legacy alias for `order`; keep it out of the scalar loop if the\n// shared mutation key list ever grows to include that alias.\nconst UPDATE_LEGACY_COMMON_SCALAR_OPTION_EXCLUSIONS = new Set<string>([\n \"order\",\n \"rank\",\n]);\nconst UPDATE_LEGACY_COMMON_SCALAR_OPTION_KEYS =\n COMMON_MUTATION_COMMAND_OPTION_KEYS.filter(\n (key) => !UPDATE_LEGACY_COMMON_SCALAR_OPTION_EXCLUSIONS.has(key),\n ) as readonly (keyof UpdateCommandOptions)[];\n\nconst UPDATE_LEGACY_SCALAR_OPTION_KEYS: readonly (keyof UpdateCommandOptions)[] =\n [\"tags\", \"closeReason\", ...UPDATE_LEGACY_COMMON_SCALAR_OPTION_KEYS];\n\nconst UPDATE_SIMPLE_FIELD_FLAG_KEYS: readonly (keyof UpdateCommandOptions)[] = [\n \"title\",\n \"description\",\n \"body\",\n \"status\",\n \"closeReason\",\n \"priority\",\n \"type\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"dep\",\n \"depRemove\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n];\n\nconst UPDATE_POST_TAG_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n {\n optionKey: \"deadline\",\n metadataKey: \"deadline\",\n transform: (value, context) =>\n resolveIsoOrRelative(value, context.nowValue, \"deadline\"),\n },\n {\n optionKey: \"estimatedMinutes\",\n metadataKey: \"estimated_minutes\",\n transform: (value) => parseOptionalNumber(value, \"estimated-minutes\"),\n },\n {\n optionKey: \"acceptanceCriteria\",\n metadataKey: \"acceptance_criteria\",\n transform: (value) => value,\n },\n { optionKey: \"definitionOfReady\", metadataKey: \"definition_of_ready\" },\n { optionKey: \"goal\", metadataKey: \"goal\" },\n { optionKey: \"objective\", metadataKey: \"objective\" },\n { optionKey: \"value\", metadataKey: \"value\" },\n { optionKey: \"impact\", metadataKey: \"impact\" },\n { optionKey: \"outcome\", metadataKey: \"outcome\" },\n { optionKey: \"whyNow\", metadataKey: \"why_now\" },\n ];\n\nconst UPDATE_STAKEHOLDER_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n { optionKey: \"reviewer\", metadataKey: \"reviewer\" },\n {\n optionKey: \"risk\",\n metadataKey: \"risk\",\n transform: (value) =>\n ensureEnum(normalizeRiskInput(value), RISK_VALUES, \"risk\"),\n },\n {\n optionKey: \"confidence\",\n metadataKey: \"confidence\",\n transform: (value) => parseConfidenceInput(value),\n },\n ];\n\nconst UPDATE_ISSUE_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n { optionKey: \"blockedReason\", metadataKey: \"blocked_reason\" },\n { optionKey: \"unblockNote\", metadataKey: \"unblock_note\" },\n { optionKey: \"reporter\", metadataKey: \"reporter\" },\n {\n optionKey: \"severity\",\n metadataKey: \"severity\",\n transform: (value) =>\n ensureEnum(\n normalizeSeverityInput(value),\n ISSUE_SEVERITY_VALUES,\n \"severity\",\n ),\n },\n { optionKey: \"environment\", metadataKey: \"environment\" },\n { optionKey: \"reproSteps\", metadataKey: \"repro_steps\" },\n { optionKey: \"resolution\", metadataKey: \"resolution\" },\n { optionKey: \"expectedResult\", metadataKey: \"expected_result\" },\n { optionKey: \"actualResult\", metadataKey: \"actual_result\" },\n { optionKey: \"affectedVersion\", metadataKey: \"affected_version\" },\n { optionKey: \"fixedVersion\", metadataKey: \"fixed_version\" },\n { optionKey: \"component\", metadataKey: \"component\" },\n {\n optionKey: \"regression\",\n metadataKey: \"regression\",\n transform: (value) => parseRegressionInput(value),\n },\n { optionKey: \"customerImpact\", metadataKey: \"customer_impact\" },\n ];\n\nfunction applyUpdateScalarMutations(\n definitions: ReadonlyArray<UpdateScalarMutationDefinition>,\n options: UpdateCommandOptions,\n context: UpdateScalarMutationContext,\n): void {\n for (const definition of definitions) {\n const optionValue = options[definition.optionKey];\n const shouldClear = context.clearFrontMatterKeys.has(\n definition.metadataKey,\n );\n if (optionValue === undefined && !shouldClear) {\n continue;\n }\n if (shouldClear) {\n delete context.metadataRecord[definition.metadataKey];\n context.changedFields.push(definition.metadataKey);\n continue;\n }\n if (typeof optionValue !== \"string\") {\n throw new PmCliError(\n `${commandOptionFlagLabel(\"update\", String(definition.optionKey))} must be a string value`,\n EXIT_CODE.USAGE,\n );\n }\n context.metadataRecord[definition.metadataKey] = definition.transform\n ? definition.transform(optionValue, context)\n : optionValue.trim();\n context.changedFields.push(definition.metadataKey);\n }\n}\n\nasync function resolveStdinUpdateOptions(\n options: UpdateCommandOptions,\n): Promise<UpdateCommandOptions> {\n const stdinResolver = createStdinTokenResolver();\n return normalizeLegacyNoneUpdateOptions({\n ...options,\n body: await stdinResolver.resolveValue(options.body, \"--body\"),\n dep: await stdinResolver.resolveList(options.dep, \"--dep\"),\n depRemove: await stdinResolver.resolveList(\n options.depRemove,\n \"--dep-remove\",\n ),\n comment: await stdinResolver.resolveList(options.comment, \"--comment\"),\n note: await stdinResolver.resolveList(options.note, \"--note\"),\n learning: await stdinResolver.resolveList(options.learning, \"--learning\"),\n file: await stdinResolver.resolveList(options.file, \"--file\"),\n test: await stdinResolver.resolveList(options.test, \"--test\"),\n doc: await stdinResolver.resolveList(options.doc, \"--doc\"),\n reminder: await stdinResolver.resolveList(options.reminder, \"--reminder\"),\n event: await stdinResolver.resolveList(options.event, \"--event\"),\n typeOption: await stdinResolver.resolveList(\n options.typeOption,\n \"--type-option\",\n ),\n field: await stdinResolver.resolveList(options.field, \"--field\"),\n });\n}\n\nfunction buildClearCollectionDefinitions(\n options: UpdateCommandOptions,\n): readonly UpdateClearCollectionDefinition[] {\n return [\n {\n enabled: options.clearDeps || options.replaceDeps,\n optionKey: \"dep\",\n clearFlag: \"--clear-deps\",\n valueFlag: \"--dep\",\n values: options.dep,\n frontMatterKey: \"dependencies\",\n },\n {\n enabled: options.clearComments,\n optionKey: \"comment\",\n clearFlag: \"--clear-comments\",\n valueFlag: \"--comment\",\n values: options.comment,\n frontMatterKey: \"comments\",\n },\n {\n enabled: options.clearNotes,\n optionKey: \"note\",\n clearFlag: \"--clear-notes\",\n valueFlag: \"--note\",\n values: options.note,\n frontMatterKey: \"notes\",\n },\n {\n enabled: options.clearLearnings,\n optionKey: \"learning\",\n clearFlag: \"--clear-learnings\",\n valueFlag: \"--learning\",\n values: options.learning,\n frontMatterKey: \"learnings\",\n },\n {\n enabled: options.clearFiles,\n optionKey: \"file\",\n clearFlag: \"--clear-files\",\n valueFlag: \"--file\",\n values: options.file,\n frontMatterKey: \"files\",\n },\n {\n enabled: options.clearTests || options.replaceTests,\n optionKey: \"test\",\n clearFlag: \"--clear-tests\",\n valueFlag: \"--test\",\n values: options.test,\n frontMatterKey: \"tests\",\n },\n {\n enabled: options.clearDocs,\n optionKey: \"doc\",\n clearFlag: \"--clear-docs\",\n valueFlag: \"--doc\",\n values: options.doc,\n frontMatterKey: \"docs\",\n },\n {\n enabled: options.clearReminders,\n optionKey: \"reminder\",\n clearFlag: \"--clear-reminders\",\n valueFlag: \"--reminder\",\n values: options.reminder,\n frontMatterKey: \"reminders\",\n },\n {\n enabled: options.clearEvents,\n optionKey: \"event\",\n clearFlag: \"--clear-events\",\n valueFlag: \"--event\",\n values: options.event,\n frontMatterKey: \"events\",\n },\n {\n enabled: options.clearTypeOptions,\n optionKey: \"typeOption\",\n clearFlag: \"--clear-type-options\",\n valueFlag: \"--type-option\",\n values: options.typeOption,\n frontMatterKey: \"type_options\",\n },\n ];\n}\n\nfunction validateReplaceOptions(options: UpdateCommandOptions): void {\n if (\n options.replaceDeps === true &&\n (options.dep === undefined || options.dep.length === 0)\n ) {\n throw new PmCliError(\n \"--replace-deps requires at least one --dep entry\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n options.replaceDeps === true &&\n options.depRemove !== undefined &&\n options.depRemove.length > 0\n ) {\n throw new PmCliError(\n \"--replace-deps cannot be combined with --dep-remove\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n options.replaceTests === true &&\n (options.test === undefined || options.test.length === 0)\n ) {\n throw new PmCliError(\n \"--replace-tests requires at least one --test entry\",\n EXIT_CODE.USAGE,\n );\n }\n if (options.replaceTests === true && options.clearTests === true) {\n throw new PmCliError(\n \"--replace-tests cannot be combined with --clear-tests\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nfunction applyClearCollectionDefinitions(params: {\n definitions: readonly UpdateClearCollectionDefinition[];\n options: UpdateCommandOptions;\n clearOptionKeys: Set<string>;\n clearFrontMatterKeys: Set<string>;\n}): void {\n for (const definition of params.definitions) {\n if (!definition.enabled) {\n continue;\n }\n const isReplacement =\n (definition.optionKey === \"dep\" && params.options.replaceDeps === true) ||\n (definition.optionKey === \"test\" && params.options.replaceTests === true);\n if (definition.values && definition.values.length > 0 && !isReplacement) {\n throw new PmCliError(\n `Cannot combine ${definition.clearFlag} with ${definition.valueFlag}`,\n EXIT_CODE.USAGE,\n );\n }\n params.clearOptionKeys.add(definition.optionKey);\n params.clearFrontMatterKeys.add(definition.frontMatterKey);\n }\n}\n\nfunction buildScalarOptionPresence(\n options: UpdateCommandOptions,\n): Record<string, boolean> {\n const presence: Record<string, boolean> = {};\n for (const key of UPDATE_LEGACY_SCALAR_OPTION_KEYS) {\n presence[String(key)] = options[key] !== undefined;\n }\n presence.order = options.order !== undefined || options.rank !== undefined;\n return presence;\n}\n\nfunction rejectUnsetScalarConflicts(\n options: UpdateCommandOptions,\n unsetTargets: { optionKeys: Set<string>; frontMatterKeys: Set<string> },\n): void {\n const scalarOptionPresence = buildScalarOptionPresence(options);\n for (const [optionKey, hasValue] of Object.entries(scalarOptionPresence)) {\n if (!hasValue || !unsetTargets.optionKeys.has(optionKey)) {\n continue;\n }\n const unsetField =\n UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;\n throw new PmCliError(\n `Cannot combine --unset ${unsetField} with ${commandOptionFlagLabel(\"update\", optionKey)}`,\n EXIT_CODE.USAGE,\n );\n }\n if (!unsetTargets.frontMatterKeys.has(\"tags\")) {\n return;\n }\n if (Array.isArray(options.addTags) && options.addTags.length > 0) {\n throw new PmCliError(\n \"Cannot combine --unset tags with --add-tags\",\n EXIT_CODE.USAGE,\n );\n }\n if (Array.isArray(options.removeTags) && options.removeTags.length > 0) {\n throw new PmCliError(\n \"Cannot combine --unset tags with --remove-tags\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nfunction rejectLegacyScalarTokens(options: UpdateCommandOptions): void {\n const assertNoLegacyScalarToken = (\n value: string | undefined,\n optionKey: string,\n ): void => {\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey);\n const hint = unsetField\n ? `Use --unset ${unsetField} to clear this field.`\n : undefined;\n assertNoLegacyNoneToken(\n value,\n commandOptionFlagLabel(\"update\", optionKey),\n hint,\n );\n };\n for (const key of UPDATE_LEGACY_SCALAR_OPTION_KEYS) {\n assertNoLegacyScalarToken(options[key] as string | undefined, String(key));\n }\n assertNoLegacyScalarToken(options.order ?? options.rank, \"order\");\n assertNoLegacyNoneTokens(\n options.reminder,\n \"--reminder\",\n \"Use --clear-reminders to clear reminders.\",\n );\n assertNoLegacyNoneTokens(\n options.event,\n \"--event\",\n \"Use --clear-events to clear linked events.\",\n );\n}\n\nfunction buildUpdateFieldFlags(\n options: UpdateCommandOptions,\n runtimeFieldUpdates: Record<string, unknown>,\n): Record<string, boolean> {\n const flags: Record<string, boolean> = {};\n for (const key of UPDATE_SIMPLE_FIELD_FLAG_KEYS) {\n flags[String(key)] = options[key] !== undefined;\n }\n flags.tags = options.tags !== undefined;\n flags.addTags = Array.isArray(options.addTags) && options.addTags.length > 0;\n flags.removeTags =\n Array.isArray(options.removeTags) && options.removeTags.length > 0;\n flags.order = options.order !== undefined;\n flags.rank = options.rank !== undefined;\n flags.replaceDeps = options.replaceDeps === true;\n flags.replaceTests = options.replaceTests === true;\n flags.unset = options.unset !== undefined && options.unset.length > 0;\n flags.clearDeps = options.clearDeps === true;\n flags.clearComments = options.clearComments === true;\n flags.clearNotes = options.clearNotes === true;\n flags.clearLearnings = options.clearLearnings === true;\n flags.clearFiles = options.clearFiles === true;\n flags.clearTests = options.clearTests === true;\n flags.clearDocs = options.clearDocs === true;\n flags.clearReminders = options.clearReminders === true;\n flags.clearEvents = options.clearEvents === true;\n flags.clearTypeOptions = options.clearTypeOptions === true;\n flags.runtimeFields = Object.keys(runtimeFieldUpdates).length > 0;\n return flags;\n}\n\nasync function buildNoopUpdateResult(params: {\n pmRoot: string;\n id: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n}): Promise<UpdateResult> {\n const located = await locateItem(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.typeRegistry.type_to_folder,\n );\n }\n const { document } = await readLocatedItem(located, {\n schema: params.settings.schema,\n });\n return {\n item: toItemRecord(document.metadata),\n changed_fields: [],\n warnings: [\"noop_no_update_fields\"],\n };\n}\n\nasync function assertUpdateTrackerInitialized(pmRoot: string): Promise<void> {\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n}\n\nfunction assertMatchingOrderRank(options: UpdateCommandOptions): void {\n if (\n options.order !== undefined &&\n options.rank !== undefined &&\n options.order !== options.rank\n ) {\n throw new PmCliError(\n \"--order and --rank must match when both are provided\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nasync function resolveParentReferenceForUpdate(params: {\n id: string;\n options: UpdateCommandOptions;\n unsetTargets: { frontMatterKeys: Set<string> };\n pmRoot: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n parentReferencePolicy: Awaited<\n ReturnType<typeof readSettings>\n >[\"validation\"][\"parent_reference\"];\n}): Promise<{ resolvedParentValue: string | undefined; warnings: string[] }> {\n if (\n params.options.parent === undefined ||\n params.unsetTargets.frontMatterKeys.has(\"parent\")\n ) {\n return { resolvedParentValue: undefined, warnings: [] };\n }\n const resolvedParentValue = normalizeParentReferenceValue(\n params.options.parent,\n );\n assertParentReferenceIsNotSelf(\n params.id,\n resolvedParentValue,\n params.settings.id_prefix,\n );\n const parentLocated = await locateItem(\n params.pmRoot,\n resolvedParentValue,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (parentLocated) {\n return { resolvedParentValue, warnings: [] };\n }\n const normalizedParentId = normalizeItemId(\n resolvedParentValue,\n params.settings.id_prefix,\n );\n return {\n resolvedParentValue,\n warnings: validateMissingParentReference(\n normalizedParentId,\n params.parentReferencePolicy,\n ).warnings,\n };\n}\n\nfunction blockedByResolutionWarnings(resolution: {\n unresolved?: string;\n}): string[] {\n return resolution.unresolved === undefined\n ? []\n : [`blocked_by_unresolved:${resolution.unresolved}`];\n}\n\nasync function collectWorkflowTransitionWarnings(params: {\n options: UpdateCommandOptions;\n fieldFlags: Record<string, boolean>;\n workflowEnforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n pmRoot: string;\n id: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n}): Promise<string[]> {\n if (\n params.workflowEnforcement === \"off\" ||\n params.typeWorkflows.length === 0 ||\n !params.fieldFlags.status ||\n params.options.status === undefined\n ) {\n return [];\n }\n const located = await locateItem(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.typeRegistry.type_to_folder,\n );\n }\n const { document } = await readLocatedItem(located, {\n schema: params.settings.schema,\n });\n const effectiveType =\n params.options.type !== undefined\n ? (resolveTypeName(params.options.type, params.typeRegistry) ??\n params.options.type)\n : (document.metadata?.type ?? \"\");\n const warning = enforceTypeWorkflowTransition({\n enforcement: params.workflowEnforcement,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n typeName: effectiveType,\n fromStatus: document.metadata?.status ?? \"\",\n toStatus: params.options.status,\n });\n return warning ? [warning] : [];\n}\n\nasync function routeCloseStatusUpdate(\n context: CloseRouteContext,\n): Promise<UpdateResult | undefined> {\n if (!context.fieldFlags.status) {\n return undefined;\n }\n const targetStatus = normalizeStatusInput(\n context.options.status as ItemStatus,\n context.statusRegistry,\n );\n if (targetStatus !== context.statusRegistry.close_status) {\n return undefined;\n }\n\n const otherFieldKeys = Object.entries(context.fieldFlags)\n .filter(\n ([key, value]) => value && key !== \"status\" && key !== \"closeReason\",\n )\n .map(([key]) => key);\n const routeWarnings: string[] = [];\n let preChangedFields: string[] = [];\n if (otherFieldKeys.length > 0) {\n const preUpdate = await runUpdate(\n context.id,\n {\n ...context.options,\n status: undefined,\n closeReason: undefined,\n message: undefined,\n },\n context.global,\n );\n preChangedFields = preUpdate.changed_fields;\n routeWarnings.push(...preUpdate.warnings);\n }\n\n const explicitReason =\n typeof context.options.closeReason === \"string\"\n ? context.options.closeReason.trim()\n : \"\";\n const fallbackMessage =\n typeof context.options.message === \"string\"\n ? context.options.message.trim()\n : \"\";\n const closeReason =\n explicitReason || fallbackMessage || \"Closed via pm update\";\n const closeResult = await runClose(\n context.id,\n closeReason,\n {\n author: context.options.author,\n message: context.options.message,\n force: context.options.force,\n },\n context.global,\n );\n\n const warnings = [\n ...context.workflowTransitionWarnings,\n ...routeWarnings,\n ...closeResult.warnings,\n \"auto_routed_from_update_to_close\",\n ];\n if (explicitReason.length === 0 && fallbackMessage.length === 0) {\n warnings.push(\"close_reason_defaulted\");\n }\n return {\n item: closeResult.item,\n changed_fields: [...preChangedFields, ...closeResult.changed_fields],\n warnings,\n };\n}\n\nfunction applySimpleItemMutations(\n document: ItemDocument,\n options: UpdateCommandOptions,\n statusRegistry: RuntimeStatusRegistry,\n changedFields: string[],\n): string {\n if (options.title !== undefined) {\n document.metadata.title = options.title;\n changedFields.push(\"title\");\n }\n if (options.description !== undefined) {\n document.metadata.description = options.description;\n changedFields.push(\"description\");\n }\n if (options.body !== undefined) {\n document.body = options.body;\n changedFields.push(\"body\");\n }\n return (\n normalizeStatusInput(document.metadata.status, statusRegistry) ??\n document.metadata.status\n );\n}\n\nfunction hasClosedAt(metadata: ItemDocument[\"metadata\"]): boolean {\n return metadata.closed_at !== undefined && metadata.closed_at !== null;\n}\n\nfunction hasClosedAtProperty(metadata: ItemDocument[\"metadata\"]): boolean {\n return metadata.closed_at !== undefined;\n}\n\nfunction applyStatusAndCloseReasonMutations(\n document: ItemDocument,\n context: Pick<\n UpdateMutationContext,\n \"options\" | \"statusRegistry\" | \"clearFrontMatterKeys\" | \"nowIso\"\n >,\n previousStatusNormalized: string,\n changedFields: string[],\n): void {\n if (context.options.status !== undefined) {\n const status = parseStatus(context.options.status, context.statusRegistry);\n document.metadata.status = status;\n changedFields.push(\"status\");\n if (\n status === context.statusRegistry.close_status &&\n !hasClosedAt(document.metadata)\n ) {\n document.metadata.closed_at = context.nowIso;\n changedFields.push(\"closed_at\");\n } else if (\n previousStatusNormalized === context.statusRegistry.close_status &&\n status !== context.statusRegistry.close_status &&\n hasClosedAtProperty(document.metadata)\n ) {\n delete document.metadata.closed_at;\n changedFields.push(\"closed_at\");\n }\n }\n if (\n context.options.closeReason !== undefined ||\n context.clearFrontMatterKeys.has(\"close_reason\")\n ) {\n if (context.clearFrontMatterKeys.has(\"close_reason\")) {\n delete document.metadata.close_reason;\n } else {\n const closeReason = context.options.closeReason?.trim() ?? \"\";\n if (closeReason.length === 0) {\n throw new PmCliError(\n \"--close-reason must not be empty\",\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.close_reason = closeReason;\n }\n changedFields.push(\"close_reason\");\n return;\n }\n if (\n context.options.status !== undefined &&\n previousStatusNormalized === context.statusRegistry.close_status &&\n document.metadata.status !== context.statusRegistry.canceled_status &&\n document.metadata.close_reason !== undefined\n ) {\n delete document.metadata.close_reason;\n changedFields.push(\"close_reason\");\n }\n}\n\nfunction applyPriorityTypeAndOptions(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): string {\n let activeTypeName =\n resolveTypeName(document.metadata.type, context.typeRegistry) ??\n document.metadata.type;\n if (context.options.priority !== undefined) {\n document.metadata.priority = ensurePriority(context.options.priority);\n changedFields.push(\"priority\");\n }\n if (context.options.type !== undefined) {\n const resolvedTypeName = resolveTypeName(\n context.options.type,\n context.typeRegistry,\n );\n if (!resolvedTypeName) {\n throw new PmCliError(\n buildInvalidTypeError(\n context.options.type,\n context.typeRegistry.types,\n resolveItemTypesFilePath(context.pmRoot, context.settings.schema),\n ),\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type = resolvedTypeName;\n activeTypeName = resolvedTypeName;\n changedFields.push(\"type\");\n }\n enforceUpdateOptionsByType(\n activeTypeName,\n context.options,\n context.typeRegistry,\n context.runtimeFieldRegistry,\n context.extensionFieldNames,\n );\n applyTypeOptionMutation(document, context, activeTypeName, changedFields);\n return activeTypeName;\n}\n\nfunction applyTypeOptionMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n activeTypeName: string,\n changedFields: string[],\n): void {\n if (\n context.options.typeOption !== undefined ||\n context.clearFrontMatterKeys.has(\"type_options\")\n ) {\n if (context.clearFrontMatterKeys.has(\"type_options\")) {\n delete document.metadata.type_options;\n } else {\n const parsedTypeOptions = parseTypeOptionEntries(\n context.options.typeOption ?? [],\n );\n const validation = validateTypeOptions(\n activeTypeName,\n parsedTypeOptions,\n context.typeRegistry,\n );\n if (validation.errors.length > 0) {\n throw new PmCliError(validation.errors.join(\"; \"), EXIT_CODE.USAGE);\n }\n document.metadata.type_options = validation.normalized;\n }\n changedFields.push(\"type_options\");\n return;\n }\n if (\n context.options.type === undefined ||\n document.metadata.type_options === undefined\n ) {\n return;\n }\n const validation = validateTypeOptions(\n activeTypeName,\n document.metadata.type_options,\n context.typeRegistry,\n );\n if (validation.errors.length > 0) {\n throw new PmCliError(\n `Current type options are incompatible with type \"${activeTypeName}\". ${validation.errors.join(\"; \")}. Use --clear-type-options to clear them.`,\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type_options = validation.normalized;\n}\n\nfunction applyDependencyMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.dep === undefined &&\n context.options.depRemove === undefined &&\n !context.clearFrontMatterKeys.has(\"dependencies\")\n ) {\n return;\n }\n let nextDependencies = context.clearFrontMatterKeys.has(\"dependencies\")\n ? []\n : [...(document.metadata.dependencies ?? [])];\n if (context.dependencyUpdates.additions.length > 0) {\n const seen = new Set(nextDependencies.map((entry) => dependencyKey(entry)));\n for (const addition of context.dependencyUpdates.additions) {\n const key = dependencyKey(addition);\n if (!seen.has(key)) {\n nextDependencies.push(addition);\n seen.add(key);\n }\n }\n }\n if (context.dependencyRemovals.length > 0) {\n nextDependencies = nextDependencies.filter(\n (entry) =>\n !context.dependencyRemovals.some((selector) =>\n matchesDependencySelector(entry, selector),\n ),\n );\n }\n if (nextDependencies.length === 0) {\n delete document.metadata.dependencies;\n } else {\n document.metadata.dependencies = nextDependencies;\n }\n changedFields.push(\"dependencies\");\n}\n\nfunction applyLogCollectionMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n applyLogCollectionMutation(\n document,\n \"comments\",\n context.options.comment,\n context.commentUpdates.values as Comment[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyLogCollectionMutation(\n document,\n \"notes\",\n context.options.note,\n context.noteUpdates.values as LogNote[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyLogCollectionMutation(\n document,\n \"learnings\",\n context.options.learning,\n context.learningUpdates.values as LogNote[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n}\n\nfunction applyLogCollectionMutation(\n document: ItemDocument,\n key: \"comments\" | \"notes\" | \"learnings\",\n optionValue: string[] | undefined,\n values: Comment[] | LogNote[] | undefined,\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n if (optionValue === undefined && !clearFrontMatterKeys.has(key)) {\n return;\n }\n if (clearFrontMatterKeys.has(key) || !values || values.length === 0) {\n delete document.metadata[key];\n } else {\n document.metadata[key] = [\n ...(document.metadata[key] ?? []),\n ...values,\n ] as never;\n }\n changedFields.push(key);\n}\n\nfunction applyEvidenceCollectionMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n applyUniqueLinkedCollectionMutation(\n document,\n \"files\",\n context.options.file,\n context.fileUpdates.values,\n fileKey,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyTestCollectionMutation(document, context, changedFields);\n applyUniqueLinkedCollectionMutation(\n document,\n \"docs\",\n context.options.doc,\n context.docUpdates.values,\n docKey,\n context.clearFrontMatterKeys,\n changedFields,\n );\n}\n\nfunction applyUniqueLinkedCollectionMutation<T extends LinkedFile | LinkedDoc>(\n document: ItemDocument,\n key: \"files\" | \"docs\",\n optionValue: string[] | undefined,\n values: T[] | undefined,\n keyOf: (value: T) => string,\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n if (optionValue === undefined && !clearFrontMatterKeys.has(key)) {\n return;\n }\n if (clearFrontMatterKeys.has(key) || !values || values.length === 0) {\n delete document.metadata[key];\n } else {\n const next = [...((document.metadata[key] as T[] | undefined) ?? [])];\n const seen = new Set(next.map((entry) => keyOf(entry)));\n for (const entry of values) {\n const keyValue = keyOf(entry);\n if (!seen.has(keyValue)) {\n next.push(entry);\n seen.add(keyValue);\n }\n }\n document.metadata[key] = next as never;\n }\n changedFields.push(key);\n}\n\nfunction applyTestCollectionMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.test === undefined &&\n !context.clearFrontMatterKeys.has(\"tests\")\n ) {\n return;\n }\n if (\n context.clearFrontMatterKeys.has(\"tests\") &&\n context.options.replaceTests === true\n ) {\n document.metadata.tests =\n dedupeLinkedTests(context.testUpdates.values) ?? [];\n } else if (\n context.clearFrontMatterKeys.has(\"tests\") ||\n !context.testUpdates.values ||\n context.testUpdates.values.length === 0\n ) {\n delete document.metadata.tests;\n } else {\n document.metadata.tests = dedupeLinkedTests([\n ...(document.metadata.tests ?? []),\n ...context.testUpdates.values,\n ]);\n }\n if (\n document.metadata.tests !== undefined &&\n document.metadata.tests.length === 0\n ) {\n delete document.metadata.tests;\n }\n changedFields.push(\"tests\");\n}\n\nfunction dedupeLinkedTests(\n values: LinkedTest[] | undefined,\n): LinkedTest[] | undefined {\n if (!values || values.length === 0) {\n return undefined;\n }\n const next: LinkedTest[] = [];\n const seen = new Set<string>();\n for (const entry of values) {\n const key = testKey(entry);\n if (!seen.has(key)) {\n next.push(entry);\n seen.add(key);\n }\n }\n return next;\n}\n\nfunction applyTagsAndPlanningMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n scalarMutationContext: UpdateScalarMutationContext,\n): void {\n const addTagsValues = context.options.addTags;\n const removeTagsValues = context.options.removeTags;\n const hasAdditiveTagMutation =\n (Array.isArray(addTagsValues) && addTagsValues.length > 0) ||\n (Array.isArray(removeTagsValues) && removeTagsValues.length > 0);\n if (\n context.options.tags !== undefined ||\n context.clearFrontMatterKeys.has(\"tags\") ||\n hasAdditiveTagMutation\n ) {\n const baseTags = context.clearFrontMatterKeys.has(\"tags\")\n ? []\n : context.options.tags !== undefined\n ? parseTags(context.options.tags)\n : Array.isArray(document.metadata.tags)\n ? [...(document.metadata.tags as string[])]\n : [];\n document.metadata.tags = applyTagRemovals(\n mergeAdditiveTags(baseTags, addTagsValues),\n removeTagsValues,\n );\n scalarMutationContext.changedFields.push(\"tags\");\n }\n applyUpdateScalarMutations(\n UPDATE_POST_TAG_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n applyOrderMutation(document, context, scalarMutationContext.changedFields);\n}\n\nfunction applyOrderMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n const orderRaw = context.options.order ?? context.options.rank;\n if (orderRaw === undefined && !context.clearFrontMatterKeys.has(\"order\")) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"order\")) {\n delete document.metadata.order;\n } else {\n const parsedOrder = parseOptionalNumber(orderRaw ?? \"\", \"order\");\n if (!Number.isInteger(parsedOrder)) {\n throw new PmCliError(\"Order must be an integer\", EXIT_CODE.USAGE);\n }\n document.metadata.order = parsedOrder;\n }\n changedFields.push(\"order\");\n}\n\nfunction applyOwnershipAndIssueMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n scalarMutationContext: UpdateScalarMutationContext,\n warnings: string[],\n): void {\n applyAssigneeMutation(document, context, scalarMutationContext.changedFields);\n applyParentMutation(document, context, scalarMutationContext.changedFields);\n applyUpdateScalarMutations(\n UPDATE_STAKEHOLDER_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n applySprintReleaseMutation(\n document,\n context,\n \"sprint\",\n warnings,\n scalarMutationContext.changedFields,\n );\n applySprintReleaseMutation(\n document,\n context,\n \"release\",\n warnings,\n scalarMutationContext.changedFields,\n );\n applyBlockedByMutation(\n document,\n context,\n scalarMutationContext.changedFields,\n );\n applyUpdateScalarMutations(\n UPDATE_ISSUE_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n}\n\nfunction applyAssigneeMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.assignee === undefined &&\n !context.clearFrontMatterKeys.has(\"assignee\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"assignee\")) {\n delete document.metadata.assignee;\n } else {\n const assignee = context.options.assignee?.trim() ?? \"\";\n if (assignee === \"\") {\n throw new PmCliError(\n \"--assignee must not be empty. Use --unset assignee to clear it.\",\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.assignee = assignee;\n }\n changedFields.push(\"assignee\");\n}\n\nfunction applyParentMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.parent === undefined &&\n !context.clearFrontMatterKeys.has(\"parent\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"parent\")) {\n delete document.metadata.parent;\n } else {\n document.metadata.parent = context.resolvedParentValue ?? \"\";\n }\n changedFields.push(\"parent\");\n}\n\nfunction applySprintReleaseMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n key: \"sprint\" | \"release\",\n warnings: string[],\n changedFields: string[],\n): void {\n if (\n context.options[key] === undefined &&\n !context.clearFrontMatterKeys.has(key)\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(key)) {\n delete document.metadata[key];\n } else {\n const validation = validateSprintOrReleaseValue(\n key,\n context.options[key] ?? \"\",\n context.settings.validation.sprint_release_format,\n );\n document.metadata[key] = validation.value;\n warnings.push(...validation.warnings);\n }\n changedFields.push(key);\n}\n\nfunction applyBlockedByMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.blockedBy === undefined &&\n !context.clearFrontMatterKeys.has(\"blocked_by\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"blocked_by\")) {\n delete document.metadata.blocked_by;\n } else {\n document.metadata.blocked_by = context.options.blockedBy?.trim() ?? \"\";\n }\n changedFields.push(\"blocked_by\");\n if (\n context.clearFrontMatterKeys.has(\"blocked_by\") ||\n context.resolvedBlockedByDependencyId !== undefined\n ) {\n applyBlockedByDependencyEdge(\n document.metadata,\n context.resolvedBlockedByDependencyId,\n context.nowIso,\n context.author,\n changedFields,\n );\n }\n}\n\nfunction applyScheduleMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.reminder !== undefined ||\n context.clearFrontMatterKeys.has(\"reminders\")\n ) {\n if (context.clearFrontMatterKeys.has(\"reminders\")) {\n delete document.metadata.reminders;\n } else {\n document.metadata.reminders = parseReminderEntries(\n context.options.reminder ?? [],\n context.nowValue,\n { valueMode: \"trimmed\" },\n );\n }\n changedFields.push(\"reminders\");\n }\n if (\n context.options.event !== undefined ||\n context.clearFrontMatterKeys.has(\"events\")\n ) {\n if (context.clearFrontMatterKeys.has(\"events\")) {\n delete document.metadata.events;\n } else {\n document.metadata.events = parseEventEntries(\n context.options.event ?? [],\n context.nowValue,\n {\n allDayEmptyGuard: \"truthy\",\n recurrenceEmptyNumericGuard: \"truthy\",\n },\n );\n }\n changedFields.push(\"events\");\n }\n}\n\nfunction applyRuntimeAndRegisteredFieldMutations(\n metadataRecord: Record<string, unknown>,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n clearDynamicFields(\n metadataRecord,\n context.runtimeFieldRegistry.definitions.map(\n (definition) => definition.metadata_key,\n ),\n context.clearFrontMatterKeys,\n changedFields,\n );\n clearDynamicFields(\n metadataRecord,\n context.extensionFieldNames,\n context.clearFrontMatterKeys,\n changedFields,\n );\n for (const [fieldKey, fieldValue] of Object.entries(\n context.runtimeFieldUpdates,\n )) {\n if (context.clearFrontMatterKeys.has(fieldKey)) {\n const fieldFlag = fieldKey.replaceAll(\"_\", \"-\");\n const definition = context.runtimeFieldRegistry.definitions.find(\n (candidate) => candidate.metadata_key === fieldKey,\n );\n const updateFlag = definition?.cli_flag ?? fieldFlag;\n throw new PmCliError(\n `Cannot combine --unset ${fieldFlag} with --${updateFlag}`,\n EXIT_CODE.USAGE,\n );\n }\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n const registeredItemFieldUpdates = parseRegisteredItemFieldAssignments(\n context.options.field,\n context.extensionRegistrations,\n );\n for (const fieldKey of Object.keys(registeredItemFieldUpdates)) {\n if (context.clearFrontMatterKeys.has(fieldKey)) {\n throw new PmCliError(\n `Cannot combine --unset ${fieldKey.replaceAll(\"_\", \"-\")} with --field ${fieldKey}=...`,\n EXIT_CODE.USAGE,\n );\n }\n }\n for (const [fieldKey, fieldValue] of Object.entries(\n registeredItemFieldUpdates,\n )) {\n if (!stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n }\n}\n\nfunction clearDynamicFields(\n metadataRecord: Record<string, unknown>,\n fieldKeys: readonly string[],\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n for (const fieldKey of fieldKeys) {\n if (\n !clearFrontMatterKeys.has(fieldKey) ||\n metadataRecord[fieldKey] === undefined\n ) {\n continue;\n }\n delete metadataRecord[fieldKey];\n changedFields.push(fieldKey);\n }\n}\n\nfunction mutateUpdateDocument(\n document: ItemDocument,\n context: UpdateMutationContext,\n): { changedFields: string[]; warnings: string[] } {\n const changedFields: string[] = [];\n const warnings: string[] = [];\n const previousStatusNormalized = applySimpleItemMutations(\n document,\n context.options,\n context.statusRegistry,\n changedFields,\n );\n const metadataRecord = toItemRecord(document.metadata);\n const scalarMutationContext: UpdateScalarMutationContext = {\n metadataRecord,\n clearFrontMatterKeys: context.clearFrontMatterKeys,\n changedFields,\n nowValue: context.nowValue,\n };\n\n applyStatusAndCloseReasonMutations(\n document,\n context,\n previousStatusNormalized,\n changedFields,\n );\n applyPriorityTypeAndOptions(document, context, changedFields);\n applyDependencyMutations(document, context, changedFields);\n applyLogCollectionMutations(document, context, changedFields);\n applyEvidenceCollectionMutations(document, context, changedFields);\n applyTagsAndPlanningMutations(document, context, scalarMutationContext);\n applyOwnershipAndIssueMutations(\n document,\n context,\n scalarMutationContext,\n warnings,\n );\n if (\n normalizeStatusInput(document.metadata.status, context.statusRegistry) ===\n context.statusRegistry.canceled_status &&\n document.metadata.assignee !== undefined\n ) {\n delete document.metadata.assignee;\n if (!changedFields.includes(\"assignee\")) {\n changedFields.push(\"assignee\");\n }\n }\n applyScheduleMutations(document, context, changedFields);\n applyRuntimeAndRegisteredFieldMutations(\n metadataRecord,\n context,\n changedFields,\n );\n try {\n applyRegisteredItemFieldDefaultsAndValidation(\n metadataRecord,\n context.extensionRegistrations,\n { skipDefaultFields: context.clearFrontMatterKeys },\n );\n } catch (error: unknown) {\n throw new PmCliError(\n error instanceof Error\n ? error.message\n : \"Invalid extension item field values\",\n EXIT_CODE.USAGE,\n );\n }\n return { changedFields, warnings };\n}\n\n/** Implements run update for the public runtime surface of this module. */\nexport async function runUpdate(\n id: string,\n options: UpdateCommandOptions,\n global: GlobalOptions,\n): Promise<UpdateResult> {\n options = await resolveStdinUpdateOptions(options);\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n await assertUpdateTrackerInitialized(pmRoot);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const extensionRegistrations = getActiveExtensionRegistrations();\n const extensionFieldNames = collectRegisteredItemFieldNames(\n extensionRegistrations,\n );\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n extensionRegistrations,\n );\n // Per-type allowed-transition enforcement is read RAW (not preset-derived) so\n // existing projects are unaffected when unset; defaults to \"off\".\n const workflowEnforcement: GovernanceWorkflowEnforcement =\n settings.governance.workflow_enforcement ?? \"off\";\n const typeWorkflows =\n workflowEnforcement === \"off\" ? [] : resolveTypeWorkflows(settings.schema);\n const parentReferencePolicy = settings.validation.parent_reference;\n const unsetTargets = parseUpdateUnsetTargets(\n options.unset,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n const clearOptionKeys = new Set<string>(unsetTargets.optionKeys);\n const clearFrontMatterKeys = new Set<string>(unsetTargets.frontMatterKeys);\n\n validateReplaceOptions(options);\n applyClearCollectionDefinitions({\n definitions: buildClearCollectionDefinitions(options),\n options,\n clearOptionKeys,\n clearFrontMatterKeys,\n });\n enforceAllowAuditUpdateScope(id, options, clearFrontMatterKeys);\n\n rejectUnsetScalarConflicts(options, unsetTargets);\n rejectLegacyScalarTokens(options);\n\n const author = toAuthor(options.author, settings.author_default);\n const nowValue = new Date();\n const nowIso = nowValue.toISOString();\n const dependencyUpdates = parseDependencyAdditions(\n options.dep,\n settings.id_prefix,\n nowIso,\n );\n const dependencyRemovals = parseDependencyRemovals(\n options.depRemove,\n settings.id_prefix,\n );\n const parsedCommentUpdates = parseLogSeed(\n \"--comment\",\n options.comment,\n nowIso,\n author,\n );\n const commentUpdates =\n options.allowAuditUpdate === true && parsedCommentUpdates.values\n ? {\n ...parsedCommentUpdates,\n values: parsedCommentUpdates.values.map((entry) => ({\n ...entry,\n author,\n })),\n }\n : parsedCommentUpdates;\n const noteUpdates = parseLogSeed(\"--note\", options.note, nowIso, author);\n const learningUpdates = parseLogSeed(\n \"--learning\",\n options.learning,\n nowIso,\n author,\n );\n const fileUpdates = parseFiles(options.file);\n const testUpdates = parseTests(options.test);\n const docUpdates = parseDocs(options.doc);\n const workflowTransitionWarnings: string[] = [];\n const parentReference = await resolveParentReferenceForUpdate({\n id,\n options,\n unsetTargets,\n pmRoot,\n settings,\n typeRegistry,\n parentReferencePolicy,\n });\n\n // pm-kyd6: resolve the --blocked-by target up front (async) so the sync\n // mutate callback can mirror create.ts and add a `blocked_by` dependency edge.\n const blockedByResolution = await resolveBlockedByDependencyTarget(\n options.blockedBy,\n clearFrontMatterKeys.has(\"blocked_by\"),\n pmRoot,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n const resolvedBlockedByDependencyId = blockedByResolution.id;\n const parentReferenceWarnings = [\n ...parentReference.warnings,\n ...blockedByResolutionWarnings(blockedByResolution),\n ];\n\n const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(\n options as Record<string, unknown>,\n runtimeFieldRegistry,\n options.runtimeFieldCommands,\n );\n const fieldFlags = buildUpdateFieldFlags(options, runtimeFieldUpdates);\n const changedFlags = Object.values(fieldFlags).some(Boolean);\n\n if (!changedFlags) {\n return buildNoopUpdateResult({ pmRoot, id, settings, typeRegistry });\n }\n\n workflowTransitionWarnings.push(\n ...(await collectWorkflowTransitionWarnings({\n options,\n fieldFlags,\n workflowEnforcement,\n typeWorkflows,\n statusRegistry,\n typeRegistry,\n pmRoot,\n id,\n settings,\n })),\n );\n const routedClose = await routeCloseStatusUpdate({\n options,\n fieldFlags,\n statusRegistry,\n workflowTransitionWarnings,\n global,\n id,\n });\n if (routedClose) {\n return routedClose;\n }\n assertMatchingOrderRank(options);\n\n const result = await mutateItem({\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n id,\n op:\n options.allowAuditUpdate === true || options.allowAuditDepUpdate === true\n ? \"update_audit\"\n : \"update\",\n author,\n message: options.message,\n force: options.force,\n bypassAssigneeConflict:\n options.allowAuditUpdate === true || options.allowAuditDepUpdate === true,\n extensionFieldNames,\n mutate(document) {\n return mutateUpdateDocument(document, {\n options,\n settings,\n typeRegistry,\n statusRegistry,\n runtimeFieldRegistry,\n extensionRegistrations,\n extensionFieldNames,\n clearFrontMatterKeys,\n dependencyUpdates,\n dependencyRemovals,\n commentUpdates,\n noteUpdates,\n learningUpdates,\n fileUpdates,\n testUpdates,\n docUpdates,\n resolvedParentValue: parentReference.resolvedParentValue,\n resolvedBlockedByDependencyId,\n runtimeFieldUpdates,\n nowValue,\n nowIso,\n author,\n pmRoot,\n });\n },\n });\n\n return {\n item: toItemRecord(result.item),\n changed_fields: result.changedFields,\n warnings: [\n ...workflowTransitionWarnings,\n ...parentReferenceWarnings,\n ...result.warnings,\n ],\n ...(options.allowAuditUpdate === true ||\n options.allowAuditDepUpdate === true\n ? { audit_update: true }\n : {}),\n };\n}\n\n/* c8 ignore stop */\n/** Public contract for test only update command, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyUpdateCommand = {\n applyStatusAndCloseReasonMutations,\n collectProvidedUpdatePolicyOptions,\n buildAuditScopeRestrictedOptionsError,\n enforceAllowAuditUpdateScope,\n enforceTypeWorkflowTransition,\n matchesDependencySelector,\n normalizeLegacyNoneUpdateOptions,\n normalizeUpdatePolicyOptionKey,\n parseDependencyAdditions,\n parseDependencyRemovals,\n parseUpdateUnsetTargets,\n reconcileBlockedByDependency,\n resolveRuntimeUnsetDefinition: (\n token: string,\n registry: RuntimeFieldRegistry | undefined,\n ) => resolveRuntimeUnsetFieldDefinition(token, \"update\", registry),\n};\n"],"names":[],"mappings":"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","debugId":"90f9cda0-260d-5ea7-9172-a7bea2a3cb49"}
|
|
1
|
+
{"version":3,"file":"update.js","sources":["cli/commands/update.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/update\n *\n * Implements the pm update command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n COMMON_MUTATION_COMMAND_OPTION_KEYS,\n canonicalizeCommandOptionKey,\n commandOptionFlagLabel,\n resolveItemTypeRegistry,\n resolveCommandOptionPolicyState,\n resolveTypeDefinition,\n resolveTypeName,\n validateTypeOptions,\n} from \"../../core/item/type-registry.js\";\nimport { normalizeItemId } from \"../../core/item/id.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { buildInvalidTypeError } from \"../../core/schema/item-types-file.js\";\nimport {\n assertParentReferenceIsNotSelf,\n normalizeParentReferenceValue,\n validateMissingParentReference,\n} from \"../../core/item/parent-reference-policy.js\";\nimport { validateSprintOrReleaseValue } from \"../../core/item/sprint-release-format.js\";\nimport {\n applyTagRemovals,\n assertNoUnknownCsvKeys,\n createStdinTokenResolver,\n looksLikeGenericKeyValueEntry,\n mergeAdditiveTags,\n parseCsvKv,\n parseOptionalNumber,\n parseTags,\n} from \"../../core/item/parse.js\";\nimport { resolvePriority } from \"../../core/item/priority.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeUpdateFieldValues } from \"../../core/schema/runtime-field-values.js\";\nimport {\n resolveItemTypesFilePath,\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport {\n describeAllowedTransitions,\n evaluateTransition,\n resolveTypeWorkflows,\n type NormalizedTypeWorkflow,\n} from \"../../core/schema/type-workflows.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 { stableValueEquals } from \"../../core/shared/serialization.js\";\nimport { resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport {\n collectRegisteredItemFieldNames,\n applyRegisteredItemFieldDefaultsAndValidation,\n parseRegisteredItemFieldAssignments,\n} from \"../../core/extensions/item-fields.js\";\nimport {\n buildItemNotFoundError,\n locateItem,\n mutateItem,\n readLocatedItem,\n} from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose } from \"./close.js\";\nimport {\n normalizeRiskInput,\n normalizeSeverityInput,\n parseConfidenceInput,\n parseRegressionInput,\n} from \"./metadata-normalizers.js\";\nimport {\n applyLegacyNoneCollectionNormalizers,\n createLegacyNoneCollectionNormalizers,\n assertNoLegacyNoneToken,\n assertNoLegacyNoneTokens,\n isLegacyNoneToken,\n} from \"./legacy-none-tokens.js\";\nimport { ensureEnumValue as ensureEnum } from \"./recurrence-parsers.js\";\nimport {\n parseEventEntries,\n parseReminderEntries,\n parseTypeOptionEntries,\n} from \"./repeatable-metadata-parsers.js\";\nimport { assertValidBareDependencyFlagValue } from \"../../sdk/dependency-flag-validation.js\";\nimport type {\n Comment,\n Dependency,\n GovernanceWorkflowEnforcement,\n ItemFormat,\n ItemDocument,\n ItemFrontMatter,\n ItemStatus,\n LinkedDoc,\n LinkedFile,\n LinkedTest,\n LogNote,\n} from \"../../types/index.js\";\nimport {\n DEPENDENCY_KIND_VALUES,\n ISSUE_SEVERITY_VALUES,\n RISK_VALUES,\n} from \"../../types/index.js\";\nimport { parseDocs, parseFiles, parseLogSeed, parseTests } from \"./create.js\";\nimport {\n COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR,\n COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR,\n COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,\n parseCommandUnsetTargets,\n resolveRuntimeUnsetFieldDefinition,\n type CommandUnsetFieldDefinition,\n} from \"./shared-unset-fields.js\";\nimport type {\n MutationMetadataCommandOptions,\n SharedLinkedResourceClearOptions,\n SharedLinkedResourceOptions,\n} from \"./mutation-command-options.js\";\n\n/** Documents the update command options payload exchanged by command, SDK, and package integrations. */\nexport interface UpdateCommandOptions\n extends\n MutationMetadataCommandOptions,\n SharedLinkedResourceOptions,\n SharedLinkedResourceClearOptions {\n /** Value that configures or reports title for this contract. */\n title?: string;\n /** Value that configures or reports description for this contract. */\n description?: string;\n /** Value that configures or reports body for this contract. */\n body?: string;\n /** Lifecycle state reported for status. */\n status?: string;\n /** Value that configures or reports close reason for this contract. */\n closeReason?: string;\n /** Value that configures or reports priority for this contract. */\n priority?: string;\n /** Schema type that determines the shape and validation rules for this value. */\n type?: string;\n /** Value that configures or reports tags for this contract. */\n tags?: string;\n /** Value that configures or reports add tags for this contract. */\n addTags?: string[];\n /** Value that configures or reports remove tags for this contract. */\n removeTags?: string[];\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n /** Value that configures or reports allow audit update for this contract. */\n allowAuditUpdate?: boolean;\n /** Value that configures or reports allow audit dep update for this contract. */\n allowAuditDepUpdate?: boolean;\n /** Value that configures or reports dep remove for this contract. */\n depRemove?: string[];\n /** Value that configures or reports replace deps for this contract. */\n replaceDeps?: boolean;\n /** Value that configures or reports replace tests for this contract. */\n replaceTests?: boolean;\n /** Value that configures or reports runtime field commands for this contract. */\n runtimeFieldCommands?: Array<\"update\" | \"update_many\">;\n [key: string]: unknown;\n}\n\n/** Documents the update result payload exchanged by command, SDK, and package integrations. */\nexport interface UpdateResult {\n /** Value that configures or reports item for this contract. */\n item: Record<string, unknown>;\n /** Value that configures or reports changed fields for this contract. */\n changed_fields: string[];\n /** Value that configures or reports warnings for this contract. */\n warnings: string[];\n /** Value that configures or reports audit update for this contract. */\n audit_update?: boolean;\n}\n\ninterface UpdateUnsetFieldDefinition {\n optionKey: string;\n frontMatterKey: string;\n}\n\nconst UPDATE_UNSET_FIELD_DEFINITIONS: readonly CommandUnsetFieldDefinition[] = [\n ...COMMON_UNSET_FIELD_DEFINITIONS_BEFORE_CLOSE_REASON,\n {\n canonical: \"close-reason\",\n aliases: [\"close_reason\", \"close-reason\"],\n optionKey: \"closeReason\",\n frontMatterKey: \"close_reason\",\n },\n ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_CLOSE_REASON_BEFORE_AUTHOR,\n ...COMMON_UNSET_FIELD_DEFINITIONS_AFTER_AUTHOR,\n];\n\nconst UPDATE_UNSET_ALIAS_MAP: Map<string, UpdateUnsetFieldDefinition> = (() => {\n const map = new Map<string, UpdateUnsetFieldDefinition>();\n for (const definition of UPDATE_UNSET_FIELD_DEFINITIONS) {\n for (const alias of definition.aliases) {\n map.set(alias, {\n optionKey: definition.optionKey,\n frontMatterKey: definition.frontMatterKey,\n });\n }\n }\n return map;\n})();\n\nconst UPDATE_OPTION_KEY_TO_UNSET_CANONICAL = new Map<string, string>(\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => [\n definition.optionKey,\n definition.canonical,\n ]),\n);\n\nconst UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS =\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => definition.canonical)\n .sort((left, right) => left.localeCompare(right))\n .join(\", \");\n\nconst AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS = new Set<string>([\n \"close_reason\",\n \"assignee\",\n \"parent\",\n \"blocked_by\",\n \"blocked_reason\",\n \"unblock_note\",\n \"dependencies\",\n \"comments\",\n \"notes\",\n \"learnings\",\n \"files\",\n \"tests\",\n \"docs\",\n \"reminders\",\n \"events\",\n]);\n\nfunction toAuthor(\n candidate: string | undefined,\n defaultAuthor: string,\n): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\nconst UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS =\n createLegacyNoneCollectionNormalizers<UpdateCommandOptions>({\n depDisableFlagKey: \"replaceDeps\",\n testDisableFlagKey: \"replaceTests\",\n });\n\nfunction normalizeLegacyNoneUpdateOptions(\n options: UpdateCommandOptions,\n): UpdateCommandOptions {\n const normalized: UpdateCommandOptions = {\n ...options,\n unset: options.unset ? [...options.unset] : undefined,\n };\n /* c8 ignore start -- unset dedupe helper branch permutations are covered by legacy option compatibility suites. */\n const appendUnsetTarget = (value: string): void => {\n const current = normalized.unset ? [...normalized.unset] : [];\n if (!current.includes(value)) {\n current.push(value);\n }\n normalized.unset = current;\n };\n /* c8 ignore stop */\n\n const scalarOptionKeys = new Set<string>([\n ...UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.keys(),\n \"rank\",\n ]);\n for (const optionKey of scalarOptionKeys) {\n const candidate = normalized[optionKey];\n if (typeof candidate !== \"string\" || !isLegacyNoneToken(candidate)) {\n continue;\n }\n /* c8 ignore start -- rank alias canonicalization is exercised in legacy-option compatibility tests. */\n const canonicalUnset =\n optionKey === \"rank\"\n ? \"order\"\n : (UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey);\n appendUnsetTarget(canonicalUnset);\n normalized[optionKey] = undefined;\n /* c8 ignore stop */\n }\n\n return applyLegacyNoneCollectionNormalizers(\n normalized,\n UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS,\n );\n}\n\nfunction parseUpdateUnsetTargets(\n raw: string[] | undefined,\n runtimeFieldRegistry?: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[] = [],\n): { frontMatterKeys: Set<string>; optionKeys: Set<string> } {\n return parseCommandUnsetTargets({\n raw,\n supportedFields: UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS,\n resolveDefinition: (trimmed) => {\n const extensionFieldName = extensionFieldNames.find((fieldName) => {\n const normalizedFieldName = fieldName.toLowerCase();\n return (\n normalizedFieldName === trimmed ||\n normalizedFieldName.replaceAll(\"_\", \"-\") === trimmed ||\n normalizedFieldName.replaceAll(\"-\", \"_\") === trimmed\n );\n });\n const definition =\n UPDATE_UNSET_ALIAS_MAP.get(trimmed) ??\n resolveRuntimeUnsetFieldDefinition(\n trimmed,\n \"update\",\n runtimeFieldRegistry,\n ) ??\n (extensionFieldName\n ? { optionKey: \"field\", frontMatterKey: extensionFieldName }\n : undefined);\n return definition;\n },\n });\n}\n\n// Restricted append-style flags have dedicated commands with their own\n// audit/override semantics; map each one to its exact replacement invocation so\n// audit-scope errors tell the agent how to retry instead of dead-ending. The\n// evidence append flags are allowed by --allow-audit-update, but still used by\n// narrower scopes such as --allow-audit-dep-update.\nconst AUDIT_RESTRICTED_FLAG_REPLACEMENTS: ReadonlyMap<\n string,\n (id: string) => string\n> = new Map([\n [\n \"--comment\",\n (id: string) => `pm comments ${id} --add \"<text>\" --allow-audit-comment`,\n ],\n [\n \"--file\",\n (id: string) =>\n `pm files ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`,\n ],\n [\n \"--doc\",\n (id: string) =>\n `pm docs ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`,\n ],\n]);\n\nfunction buildAuditScopeRestrictedOptionsError(params: {\n id: string;\n code: string;\n message: string;\n required: string;\n why: string;\n disallowedFlags: string[];\n}): PmCliError {\n // Only surface replacement commands for restricted flags the caller actually\n // passed, so the guidance is an exact retry path.\n const replacementCommands = params.disallowedFlags.flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement ? [replacement(params.id)] : [];\n });\n const replacementSteps = params.disallowedFlags.flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement\n ? [`Replace ${flag} with: ${replacement(params.id)}`]\n : [];\n });\n return new PmCliError(params.message, EXIT_CODE.USAGE, {\n code: params.code,\n required: params.required,\n why: params.why,\n ...(replacementCommands.length > 0\n ? { examples: replacementCommands }\n : {}),\n nextSteps: [\n `Re-run without: ${params.disallowedFlags.join(\", \")}`,\n ...replacementSteps,\n ],\n });\n}\n\nfunction enforceAllowAuditUpdateScope(\n id: string,\n options: UpdateCommandOptions,\n clearFrontMatterKeys: Set<string>,\n): void {\n const allowAuditUpdate = options.allowAuditUpdate === true;\n const allowAuditDepUpdate = options.allowAuditDepUpdate === true;\n if (!allowAuditUpdate && !allowAuditDepUpdate) {\n return;\n }\n if (allowAuditUpdate && allowAuditDepUpdate) {\n throw new PmCliError(\n \"Choose either --allow-audit-update or --allow-audit-dep-update; these override modes are mutually exclusive.\",\n EXIT_CODE.USAGE,\n );\n }\n const pushIf = (condition: boolean, flag: string, list: string[]): void => {\n if (condition) {\n list.push(flag);\n }\n };\n if (allowAuditDepUpdate) {\n const disallowedFlags: string[] = [];\n pushIf(options.title !== undefined, \"--title\", disallowedFlags);\n pushIf(options.description !== undefined, \"--description\", disallowedFlags);\n pushIf(options.body !== undefined, \"--body\", disallowedFlags);\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(\n options.closeReason !== undefined,\n \"--close-reason\",\n disallowedFlags,\n );\n pushIf(options.priority !== undefined, \"--priority\", disallowedFlags);\n pushIf(options.type !== undefined, \"--type\", disallowedFlags);\n pushIf(options.tags !== undefined, \"--tags\", disallowedFlags);\n pushIf(\n Array.isArray(options.addTags) && options.addTags.length > 0,\n \"--add-tags\",\n disallowedFlags,\n );\n pushIf(\n Array.isArray(options.removeTags) && options.removeTags.length > 0,\n \"--remove-tags\",\n disallowedFlags,\n );\n pushIf(options.deadline !== undefined, \"--deadline\", disallowedFlags);\n pushIf(\n options.estimatedMinutes !== undefined,\n \"--estimate\",\n disallowedFlags,\n );\n pushIf(\n options.acceptanceCriteria !== undefined,\n \"--acceptance-criteria\",\n disallowedFlags,\n );\n pushIf(\n options.definitionOfReady !== undefined,\n \"--definition-of-ready\",\n disallowedFlags,\n );\n pushIf(\n options.order !== undefined || options.rank !== undefined,\n \"--order/--rank\",\n disallowedFlags,\n );\n pushIf(options.goal !== undefined, \"--goal\", disallowedFlags);\n pushIf(options.objective !== undefined, \"--objective\", disallowedFlags);\n pushIf(options.value !== undefined, \"--value\", disallowedFlags);\n pushIf(options.impact !== undefined, \"--impact\", disallowedFlags);\n pushIf(options.outcome !== undefined, \"--outcome\", disallowedFlags);\n pushIf(options.whyNow !== undefined, \"--why-now\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.reviewer !== undefined, \"--reviewer\", disallowedFlags);\n pushIf(options.risk !== undefined, \"--risk\", disallowedFlags);\n pushIf(options.confidence !== undefined, \"--confidence\", disallowedFlags);\n pushIf(options.sprint !== undefined, \"--sprint\", disallowedFlags);\n pushIf(options.release !== undefined, \"--release\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(\n options.blockedReason !== undefined,\n \"--blocked-reason\",\n disallowedFlags,\n );\n pushIf(\n options.unblockNote !== undefined,\n \"--unblock-note\",\n disallowedFlags,\n );\n pushIf(options.reporter !== undefined, \"--reporter\", disallowedFlags);\n pushIf(options.severity !== undefined, \"--severity\", disallowedFlags);\n pushIf(options.environment !== undefined, \"--environment\", disallowedFlags);\n pushIf(options.reproSteps !== undefined, \"--repro-steps\", disallowedFlags);\n pushIf(options.resolution !== undefined, \"--resolution\", disallowedFlags);\n pushIf(\n options.expectedResult !== undefined,\n \"--expected-result\",\n disallowedFlags,\n );\n pushIf(\n options.actualResult !== undefined,\n \"--actual-result\",\n disallowedFlags,\n );\n pushIf(\n options.affectedVersion !== undefined,\n \"--affected-version\",\n disallowedFlags,\n );\n pushIf(\n options.fixedVersion !== undefined,\n \"--fixed-version\",\n disallowedFlags,\n );\n pushIf(options.component !== undefined, \"--component\", disallowedFlags);\n pushIf(options.regression !== undefined, \"--regression\", disallowedFlags);\n pushIf(\n options.customerImpact !== undefined,\n \"--customer-impact\",\n disallowedFlags,\n );\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.comment !== undefined, \"--comment\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.file !== undefined, \"--file\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.doc !== undefined, \"--doc\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.typeOption !== undefined, \"--type-option\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(\n options.clearLearnings === true,\n \"--clear-learnings\",\n disallowedFlags,\n );\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(\n options.clearReminders === true,\n \"--clear-reminders\",\n disallowedFlags,\n );\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n pushIf(\n options.clearTypeOptions === true,\n \"--clear-type-options\",\n disallowedFlags,\n );\n pushIf(options.force === true, \"--force\", disallowedFlags);\n pushIf(clearFrontMatterKeys.size > 0, \"--unset\", disallowedFlags);\n if (options.dep === undefined || options.dep.length === 0) {\n throw new PmCliError(\n \"--allow-audit-dep-update requires at least one --dep value\",\n EXIT_CODE.USAGE,\n );\n }\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_dep_update_restricted_options\",\n message: `--allow-audit-dep-update supports append-only dependency additions via --dep. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required:\n \"Pass only --dep additions (plus --message/--author) when using --allow-audit-dep-update.\",\n why: \"--allow-audit-dep-update is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.\",\n disallowedFlags,\n });\n }\n return;\n }\n\n const disallowedFlags: string[] = [];\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(options.closeReason !== undefined, \"--close-reason\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(\n options.blockedReason !== undefined,\n \"--blocked-reason\",\n disallowedFlags,\n );\n pushIf(options.unblockNote !== undefined, \"--unblock-note\", disallowedFlags);\n pushIf(options.dep !== undefined, \"--dep\", disallowedFlags);\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(options.clearLearnings === true, \"--clear-learnings\", disallowedFlags);\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(options.clearReminders === true, \"--clear-reminders\", disallowedFlags);\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n\n /* c8 ignore start -- audit unset ordering fallback is validated by audit-governance integration coverage. */\n const disallowedUnset = [...clearFrontMatterKeys]\n .filter((field) =>\n AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS.has(field),\n )\n .sort((left, right) => left.localeCompare(right))\n .map((field) => `--unset ${field.replaceAll(\"_\", \"-\")}`);\n /* c8 ignore stop */\n disallowedFlags.push(...disallowedUnset);\n\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_update_restricted_options\",\n message: `--allow-audit-update only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required:\n \"Limit --allow-audit-update to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.\",\n why: \"--allow-audit-update is a non-owner override scoped to metadata audits and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.\",\n disallowedFlags,\n });\n }\n}\n\n/* c8 ignore start -- lifecycle/dependency edge branches are exercised by dedicated update workflow integration tests. */\nfunction parseStatus(\n value: string,\n statusRegistry: RuntimeStatusRegistry,\n): ItemStatus {\n const normalized = normalizeStatusInput(value, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map(\n (definition) => definition.id,\n );\n throw new PmCliError(\n `Invalid --status value \"${value}\". Allowed: ${allowedStatuses.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized;\n}\n\n/** Enforce per-type allowed-transition rules (governance.workflow_enforcement). `off` (default) or an unrestricted type is a no-op. `strict` throws on a disallowed transition; `warn` returns a warning string surfaced on the update result. The target status is the raw `--status` value (resolved case-insensitively through the registry inside evaluateTransition). */\nfunction enforceTypeWorkflowTransition(params: {\n enforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeName: string;\n fromStatus: string;\n toStatus: string;\n}): string | undefined {\n if (params.enforcement === \"off\" || params.typeWorkflows.length === 0) {\n return undefined;\n }\n const result = evaluateTransition({\n typeName: params.typeName,\n fromStatus: params.fromStatus,\n toStatus: params.toStatus,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n });\n if (!result.hasRule || result.allowed) {\n return undefined;\n }\n const normalizedFrom =\n normalizeStatusInput(params.fromStatus, params.statusRegistry) ??\n params.fromStatus;\n const normalizedTo =\n normalizeStatusInput(params.toStatus, params.statusRegistry) ??\n params.toStatus;\n const message =\n `Disallowed transition for type \"${params.typeName}\": ${normalizedFrom} -> ${normalizedTo}. ` +\n `Allowed transitions: ${describeAllowedTransitions(result.allowedTransitions)}.`;\n if (params.enforcement === \"strict\") {\n throw new PmCliError(message, EXIT_CODE.USAGE);\n }\n return `workflow_transition_not_allowed: ${message}`;\n}\n\ninterface ParsedDependencyUpdates {\n additions: Dependency[];\n}\n\ninterface DependencyRemovalSelector {\n id: string;\n kind?: (typeof DEPENDENCY_KIND_VALUES)[number];\n source_kind?: string;\n}\n\nfunction parseDependencyCreatedAt(\n value: string | undefined,\n currentIso: string,\n): string {\n if (!value || value.trim() === \"\" || value.trim().toLowerCase() === \"now\") {\n return currentIso;\n }\n const parsed = Date.parse(value);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(\n `Invalid dependency created_at timestamp \"${value}\"`,\n EXIT_CODE.USAGE,\n );\n }\n return new Date(parsed).toISOString();\n}\n\nfunction parseOptionalDependencyString(\n value: string | undefined,\n): string | undefined {\n if (value === undefined) return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\n/** Allowed CSV/markdown keys for the update `--dep` addition seed (GH-258). */\nconst DEP_ADDITION_KEYS = [\n \"id\",\n \"kind\",\n \"type\",\n \"author\",\n \"created_at\",\n \"source_kind\",\n] as const;\n/** Allowed CSV/markdown keys for the `--dep-remove` selector (GH-258). */\nconst DEP_REMOVE_KEYS = [\"id\", \"kind\", \"type\", \"source_kind\"] as const;\n\nfunction looksLikeStructuredDependencyEntry(raw: string): boolean {\n if (raw.startsWith(\"```\") || raw.includes(\"\\n\")) {\n return true;\n }\n if (\n /^(?:[-*+]\\s+)?(?:id|kind|type|author|created_at|source_kind)\\s*[:=]/i.test(\n raw,\n )\n ) {\n return true;\n }\n // A first-key typo (e.g. `bogus=v,id=pm-2`) must still be parsed so the unknown\n // key is rejected rather than swallowed as a bare item id (GH-258).\n return looksLikeGenericKeyValueEntry(raw);\n}\n\n// pm-fl0c #4 (2026-05-28): `pm plan` accepts `depends_on` as a link kind\n// (`PLAN_STEP_LINK_KIND_VALUES`) but `pm update --dep kind=depends_on` rejected\n// it because `DEPENDENCY_KIND_VALUES` only lists `blocked_by`. The two terms\n// are semantically identical from this side (\"X depends on Y\" === \"X blocked\n// by Y\"), so we normalize input here rather than expanding the persisted enum\n// — the stored kind stays canonical (`blocked_by`) and downstream consumers\n// (closing logic, dependency graphs, blockers views) keep working unchanged.\nconst DEPENDENCY_KIND_INPUT_ALIASES: Readonly<Record<string, string>> = {\n \"blocked-by\": \"blocked_by\",\n depends_on: \"blocked_by\",\n \"depends-on\": \"blocked_by\",\n};\n\nfunction normalizeDependencyKindInput(\n raw: string | undefined,\n): string | undefined {\n if (typeof raw !== \"string\") {\n return raw;\n }\n const trimmed = raw.trim();\n const alias = DEPENDENCY_KIND_INPUT_ALIASES[trimmed.toLowerCase()];\n return alias ?? trimmed;\n}\n\nfunction parseDependencyAdditions(\n raw: string[] | undefined,\n prefix: string,\n nowIso: string,\n): ParsedDependencyUpdates {\n if (!raw) {\n return { additions: [] };\n }\n assertNoLegacyNoneTokens(\n raw,\n \"--dep\",\n \"Use --clear-deps to clear dependencies.\",\n );\n const additions: Dependency[] = raw.map((entry) => {\n const trimmedEntry = entry.trim();\n const isStructured = looksLikeStructuredDependencyEntry(trimmedEntry);\n assertValidBareDependencyFlagValue(trimmedEntry, isStructured);\n const kv = isStructured\n ? parseCsvKv(entry, \"--dep\")\n : { id: trimmedEntry, kind: \"related\" };\n if (isStructured) {\n assertNoUnknownCsvKeys(kv, \"--dep\", DEP_ADDITION_KEYS);\n }\n const id = kv.id?.trim();\n const kind = normalizeDependencyKindInput((kv.kind ?? kv.type)?.trim());\n if (!id || !kind) {\n throw new PmCliError(\n \"--dep requires id and kind, or a bare item id to add a related dependency\",\n EXIT_CODE.USAGE,\n );\n }\n if (id.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep id must not use placeholder token \"${id}\". Use --clear-deps to clear dependencies.`,\n EXIT_CODE.USAGE,\n );\n }\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(id, prefix),\n kind: ensureEnum(kind, DEPENDENCY_KIND_VALUES, \"dependency kind\"),\n created_at: parseDependencyCreatedAt(kv.created_at, nowIso),\n author: parseOptionalDependencyString(kv.author),\n source_kind: sourceKind,\n };\n });\n return { additions };\n}\n\nfunction parseDependencyRemovals(\n raw: string[] | undefined,\n prefix: string,\n): DependencyRemovalSelector[] {\n if (!raw) {\n return [];\n }\n assertNoLegacyNoneTokens(raw, \"--dep-remove\");\n return raw.map((entry) => {\n const trimmed = entry.trim();\n if (!trimmed) {\n throw new PmCliError(\n \"--dep-remove requires id or key/value selectors\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n trimmed.includes(\"=\") ||\n /^(?:[-*+]\\s+)?(?:id|kind|type|source_kind)\\s*[:=]/i.test(trimmed) ||\n trimmed.startsWith(\"```\")\n ) {\n const kv = parseCsvKv(trimmed, \"--dep-remove\");\n assertNoUnknownCsvKeys(kv, \"--dep-remove\", DEP_REMOVE_KEYS);\n const idRaw = kv.id?.trim();\n if (!idRaw) {\n throw new PmCliError(\n \"--dep-remove key/value form requires id=<value>\",\n EXIT_CODE.USAGE,\n );\n }\n if (idRaw.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep-remove id must not use placeholder token \"${idRaw}\"`,\n EXIT_CODE.USAGE,\n );\n }\n const kindRaw = normalizeDependencyKindInput(\n parseOptionalDependencyString(kv.kind ?? kv.type),\n );\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(idRaw, prefix),\n kind: kindRaw\n ? ensureEnum(kindRaw, DEPENDENCY_KIND_VALUES, \"dependency kind\")\n : undefined,\n source_kind: sourceKind,\n };\n }\n if (trimmed.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep-remove id must not use placeholder token \"${trimmed}\"`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n id: normalizeItemId(trimmed, prefix),\n };\n });\n}\n\nfunction dependencyKey(\n value: Pick<Dependency, \"id\" | \"kind\" | \"source_kind\">,\n): string {\n return `${value.id}::${value.kind}::${value.source_kind ?? \"\"}`;\n}\n\n// pm-kyd6: `--blocked-by` writes the `blocked_by` scalar, but the dependency\n// graph (`pm deps`) is built only from the `dependencies` array. Mirror the\n// behaviour create.ts already has so the metadata and the graph agree: a\n// resolvable blocker also gets a `blocked_by` dependency edge. Repeated\n// `--blocked-by` updates preserve prior blocker edges because the graph is the\n// full dependency record; the scalar remains the latest primary blocker for\n// backward compatibility. Clearing the scalar removes all derived blocker edges.\nfunction reconcileBlockedByDependency(\n current: Dependency[] | undefined,\n nextBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n): { dependencies: Dependency[] | undefined; changed: boolean } {\n let next = [...(current ?? [])];\n let changed = false;\n if (nextBlockedById === undefined) {\n const filtered = next.filter((dep) => dep.kind !== \"blocked_by\");\n if (filtered.length !== next.length) {\n next = filtered;\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n }\n if (\n !next.some((dep) => dep.kind === \"blocked_by\" && dep.id === nextBlockedById)\n ) {\n next.push({\n id: nextBlockedById,\n kind: \"blocked_by\",\n created_at: nowIsoValue,\n author,\n });\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n}\n\n// pm-kyd6: resolve the --blocked-by target before the synchronous mutate\n// callback so a real blocker can also become a `blocked_by` dependency edge.\n// `id` is set when the target resolves; `unresolved` carries the raw value when\n// --blocked-by points at an item that does not exist (the scalar is still set,\n// mirroring create.ts and the never-block missing-parent behaviour, but the\n// caller surfaces a warning so the metadata/graph mismatch is visible).\nasync function resolveBlockedByDependencyTarget(\n blockedByOption: string | undefined,\n blockedByCleared: boolean,\n pmRoot: string,\n idPrefix: string,\n itemFormat: ItemFormat,\n typeToFolder: Record<string, string>,\n): Promise<{ id?: string; unresolved?: string }> {\n if (blockedByOption === undefined || blockedByCleared) {\n return {};\n }\n const blockedByValue = blockedByOption.trim();\n if (blockedByValue.length === 0) {\n return {};\n }\n const located = await locateItem(\n pmRoot,\n normalizeItemId(blockedByValue, idPrefix),\n idPrefix,\n itemFormat,\n typeToFolder,\n );\n return located ? { id: located.id } : { unresolved: blockedByValue };\n}\n\n// pm-kyd6: apply the reconciled blocked_by dependency edge to the item metadata\n// and record the `dependencies` change. Kept out of the mutate callback so the\n// large runUpdate function stays under the static-quality complexity budget.\nfunction applyBlockedByDependencyEdge(\n metadata: ItemFrontMatter,\n resolvedBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n changedFields: string[],\n): void {\n const reconciled = reconcileBlockedByDependency(\n metadata.dependencies,\n resolvedBlockedById,\n nowIsoValue,\n author,\n );\n if (!reconciled.changed) {\n return;\n }\n if (reconciled.dependencies === undefined) {\n delete metadata.dependencies;\n } else {\n metadata.dependencies = reconciled.dependencies;\n }\n if (!changedFields.includes(\"dependencies\")) {\n changedFields.push(\"dependencies\");\n }\n}\n\nfunction fileKey(value: Pick<LinkedFile, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction docKey(value: Pick<LinkedDoc, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction testKey(\n value: Pick<LinkedTest, \"command\" | \"path\" | \"scope\" | \"pm_context_mode\">,\n): string {\n return `${value.command}::${value.path ?? \"\"}::${value.scope}::${value.pm_context_mode ?? \"\"}`;\n}\n\nfunction matchesDependencySelector(\n value: Dependency,\n selector: DependencyRemovalSelector,\n): boolean {\n if (value.id !== selector.id) {\n return false;\n }\n if (selector.kind && value.kind !== selector.kind) {\n return false;\n }\n if (\n selector.source_kind !== undefined &&\n (value.source_kind ?? undefined) !== selector.source_kind\n ) {\n return false;\n }\n return true;\n}\n\nfunction ensurePriority(raw: string | number): 0 | 1 | 2 | 3 | 4 {\n return resolvePriority(raw);\n}\n\nfunction normalizeUpdatePolicyOptionKey(raw: string, typeName: string): string {\n const canonical = canonicalizeCommandOptionKey(\"update\", raw);\n if (!canonical) {\n throw new PmCliError(\n `Unsupported command_option_policies option \"${raw}\" for update command on type \"${typeName}\"`,\n EXIT_CODE.CONFLICT,\n );\n }\n return canonical;\n}\n\nfunction collectProvidedUpdatePolicyOptions(\n options: UpdateCommandOptions,\n runtimeFieldRegistry: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[],\n): Set<string> {\n const provided = new Set<string>();\n const mark = (optionKey: string, isProvided: boolean): void => {\n if (isProvided) {\n provided.add(optionKey);\n }\n };\n mark(\"title\", options.title !== undefined);\n mark(\"description\", options.description !== undefined);\n mark(\"body\", options.body !== undefined);\n mark(\"status\", options.status !== undefined);\n mark(\"closeReason\", options.closeReason !== undefined);\n mark(\"priority\", options.priority !== undefined);\n mark(\"type\", options.type !== undefined);\n // `--add-tags` / `--remove-tags` mutate the same `tags` field as `--tags`, so\n // they count toward the `tags` command_option_policy (disabled + required).\n mark(\n \"tags\",\n options.tags !== undefined ||\n (Array.isArray(options.addTags) && options.addTags.length > 0) ||\n (Array.isArray(options.removeTags) && options.removeTags.length > 0),\n );\n mark(\"deadline\", options.deadline !== undefined);\n mark(\"estimatedMinutes\", options.estimatedMinutes !== undefined);\n mark(\"acceptanceCriteria\", options.acceptanceCriteria !== undefined);\n mark(\"definitionOfReady\", options.definitionOfReady !== undefined);\n mark(\"order\", options.order !== undefined || options.rank !== undefined);\n mark(\"goal\", options.goal !== undefined);\n mark(\"objective\", options.objective !== undefined);\n mark(\"value\", options.value !== undefined);\n mark(\"impact\", options.impact !== undefined);\n mark(\"outcome\", options.outcome !== undefined);\n mark(\"whyNow\", options.whyNow !== undefined);\n mark(\"author\", options.author !== undefined);\n mark(\"message\", options.message !== undefined);\n mark(\"assignee\", options.assignee !== undefined);\n mark(\"parent\", options.parent !== undefined);\n mark(\"reviewer\", options.reviewer !== undefined);\n mark(\"risk\", options.risk !== undefined);\n mark(\"confidence\", options.confidence !== undefined);\n mark(\"sprint\", options.sprint !== undefined);\n mark(\"release\", options.release !== undefined);\n mark(\"blockedBy\", options.blockedBy !== undefined);\n mark(\"blockedReason\", options.blockedReason !== undefined);\n mark(\"unblockNote\", options.unblockNote !== undefined);\n mark(\"reporter\", options.reporter !== undefined);\n mark(\"severity\", options.severity !== undefined);\n mark(\"environment\", options.environment !== undefined);\n mark(\"reproSteps\", options.reproSteps !== undefined);\n mark(\"resolution\", options.resolution !== undefined);\n mark(\"expectedResult\", options.expectedResult !== undefined);\n mark(\"actualResult\", options.actualResult !== undefined);\n mark(\"affectedVersion\", options.affectedVersion !== undefined);\n mark(\"fixedVersion\", options.fixedVersion !== undefined);\n mark(\"component\", options.component !== undefined);\n mark(\"regression\", options.regression !== undefined);\n mark(\"customerImpact\", options.customerImpact !== undefined);\n mark(\"dep\", options.dep !== undefined);\n mark(\"depRemove\", options.depRemove !== undefined);\n mark(\"dep\", options.replaceDeps === true);\n mark(\"comment\", options.comment !== undefined);\n mark(\"note\", options.note !== undefined);\n mark(\"learning\", options.learning !== undefined);\n mark(\"file\", options.file !== undefined);\n mark(\"test\", options.test !== undefined);\n mark(\"test\", options.replaceTests === true);\n mark(\"doc\", options.doc !== undefined);\n mark(\"reminder\", options.reminder !== undefined);\n mark(\"event\", options.event !== undefined);\n mark(\"typeOption\", options.typeOption !== undefined);\n mark(\"field\", options.field !== undefined);\n mark(\"force\", options.force === true);\n mark(\"allowAuditUpdate\", options.allowAuditUpdate === true);\n mark(\"dep\", options.clearDeps === true);\n mark(\"comment\", options.clearComments === true);\n mark(\"note\", options.clearNotes === true);\n mark(\"learning\", options.clearLearnings === true);\n mark(\"file\", options.clearFiles === true);\n mark(\"test\", options.clearTests === true);\n mark(\"doc\", options.clearDocs === true);\n mark(\"reminder\", options.clearReminders === true);\n mark(\"event\", options.clearEvents === true);\n mark(\"typeOption\", options.clearTypeOptions === true);\n if (options.unset && options.unset.length > 0) {\n const unsetTargets = parseUpdateUnsetTargets(\n options.unset,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n for (const optionKey of unsetTargets.optionKeys) {\n mark(optionKey, true);\n }\n }\n return provided;\n}\n\nfunction enforceUpdateOptionsByType(\n typeName: string,\n options: UpdateCommandOptions,\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n runtimeFieldRegistry: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[],\n): void {\n const typeDefinition = resolveTypeDefinition(typeName, typeRegistry);\n if (!typeDefinition) {\n throw new PmCliError(`Invalid type value \"${typeName}\"`, EXIT_CODE.USAGE);\n }\n const policyState = resolveCommandOptionPolicyState(\n typeDefinition,\n \"update\",\n [],\n );\n if (policyState.errors.length > 0) {\n throw new PmCliError(policyState.errors.join(\"; \"), EXIT_CODE.CONFLICT);\n }\n\n const provided = collectProvidedUpdatePolicyOptions(\n options,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n for (const disabled of policyState.disabled) {\n if (provided.has(normalizeUpdatePolicyOptionKey(disabled, typeName))) {\n throw new PmCliError(\n `Option ${commandOptionFlagLabel(\"update\", disabled)} is disabled for type \"${typeName}\" by command_option_policies`,\n EXIT_CODE.USAGE,\n );\n }\n }\n\n for (const required of policyState.required) {\n if (!provided.has(normalizeUpdatePolicyOptionKey(required, typeName))) {\n throw new PmCliError(\n `Missing required option ${commandOptionFlagLabel(\"update\", required)} for type \"${typeName}\"`,\n EXIT_CODE.USAGE,\n );\n }\n }\n}\n\ninterface UpdateScalarMutationContext {\n metadataRecord: Record<string, unknown>;\n clearFrontMatterKeys: ReadonlySet<string>;\n changedFields: string[];\n nowValue: Date;\n}\n\ninterface UpdateScalarMutationDefinition {\n optionKey: keyof UpdateCommandOptions;\n metadataKey: string;\n transform?: (value: string, context: UpdateScalarMutationContext) => unknown;\n}\n\ninterface UpdateClearCollectionDefinition {\n enabled: boolean | undefined;\n optionKey: string;\n clearFlag: string;\n valueFlag: string;\n values: string[] | undefined;\n frontMatterKey: string;\n}\n\ninterface UpdateMutationContext {\n options: UpdateCommandOptions;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n statusRegistry: RuntimeStatusRegistry;\n runtimeFieldRegistry: RuntimeFieldRegistry;\n extensionRegistrations: ReturnType<typeof getActiveExtensionRegistrations>;\n extensionFieldNames: readonly string[];\n clearFrontMatterKeys: ReadonlySet<string>;\n dependencyUpdates: ParsedDependencyUpdates;\n dependencyRemovals: DependencyRemovalSelector[];\n commentUpdates: ReturnType<typeof parseLogSeed>;\n noteUpdates: ReturnType<typeof parseLogSeed>;\n learningUpdates: ReturnType<typeof parseLogSeed>;\n fileUpdates: ReturnType<typeof parseFiles>;\n testUpdates: ReturnType<typeof parseTests>;\n docUpdates: ReturnType<typeof parseDocs>;\n resolvedParentValue: string | undefined;\n resolvedBlockedByDependencyId: string | undefined;\n runtimeFieldUpdates: Record<string, unknown>;\n nowValue: Date;\n nowIso: string;\n author: string;\n pmRoot: string;\n}\n\ninterface CloseRouteContext {\n options: UpdateCommandOptions;\n fieldFlags: Record<string, boolean>;\n statusRegistry: RuntimeStatusRegistry;\n workflowTransitionWarnings: readonly string[];\n global: GlobalOptions;\n id: string;\n}\n\n// `rank` is a legacy alias for `order`; keep it out of the scalar loop if the\n// shared mutation key list ever grows to include that alias.\nconst UPDATE_LEGACY_COMMON_SCALAR_OPTION_EXCLUSIONS = new Set<string>([\n \"order\",\n \"rank\",\n]);\nconst UPDATE_LEGACY_COMMON_SCALAR_OPTION_KEYS =\n COMMON_MUTATION_COMMAND_OPTION_KEYS.filter(\n (key) => !UPDATE_LEGACY_COMMON_SCALAR_OPTION_EXCLUSIONS.has(key),\n ) as readonly (keyof UpdateCommandOptions)[];\n\nconst UPDATE_LEGACY_SCALAR_OPTION_KEYS: readonly (keyof UpdateCommandOptions)[] =\n [\"tags\", \"closeReason\", ...UPDATE_LEGACY_COMMON_SCALAR_OPTION_KEYS];\n\nconst UPDATE_SIMPLE_FIELD_FLAG_KEYS: readonly (keyof UpdateCommandOptions)[] = [\n \"title\",\n \"description\",\n \"body\",\n \"status\",\n \"closeReason\",\n \"priority\",\n \"type\",\n ...COMMON_MUTATION_COMMAND_OPTION_KEYS,\n \"dep\",\n \"depRemove\",\n \"comment\",\n \"note\",\n \"learning\",\n \"file\",\n \"test\",\n \"doc\",\n \"reminder\",\n \"event\",\n \"typeOption\",\n \"field\",\n];\n\nconst UPDATE_POST_TAG_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n {\n optionKey: \"deadline\",\n metadataKey: \"deadline\",\n transform: (value, context) =>\n resolveIsoOrRelative(value, context.nowValue, \"deadline\"),\n },\n {\n optionKey: \"estimatedMinutes\",\n metadataKey: \"estimated_minutes\",\n transform: (value) => parseOptionalNumber(value, \"estimated-minutes\"),\n },\n {\n optionKey: \"acceptanceCriteria\",\n metadataKey: \"acceptance_criteria\",\n transform: (value) => value,\n },\n { optionKey: \"definitionOfReady\", metadataKey: \"definition_of_ready\" },\n { optionKey: \"goal\", metadataKey: \"goal\" },\n { optionKey: \"objective\", metadataKey: \"objective\" },\n { optionKey: \"value\", metadataKey: \"value\" },\n { optionKey: \"impact\", metadataKey: \"impact\" },\n { optionKey: \"outcome\", metadataKey: \"outcome\" },\n { optionKey: \"whyNow\", metadataKey: \"why_now\" },\n ];\n\nconst UPDATE_STAKEHOLDER_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n { optionKey: \"reviewer\", metadataKey: \"reviewer\" },\n {\n optionKey: \"risk\",\n metadataKey: \"risk\",\n transform: (value) =>\n ensureEnum(normalizeRiskInput(value), RISK_VALUES, \"risk\"),\n },\n {\n optionKey: \"confidence\",\n metadataKey: \"confidence\",\n transform: (value) => parseConfidenceInput(value),\n },\n ];\n\nconst UPDATE_ISSUE_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> =\n [\n { optionKey: \"blockedReason\", metadataKey: \"blocked_reason\" },\n { optionKey: \"unblockNote\", metadataKey: \"unblock_note\" },\n { optionKey: \"reporter\", metadataKey: \"reporter\" },\n {\n optionKey: \"severity\",\n metadataKey: \"severity\",\n transform: (value) =>\n ensureEnum(\n normalizeSeverityInput(value),\n ISSUE_SEVERITY_VALUES,\n \"severity\",\n ),\n },\n { optionKey: \"environment\", metadataKey: \"environment\" },\n { optionKey: \"reproSteps\", metadataKey: \"repro_steps\" },\n { optionKey: \"resolution\", metadataKey: \"resolution\" },\n { optionKey: \"expectedResult\", metadataKey: \"expected_result\" },\n { optionKey: \"actualResult\", metadataKey: \"actual_result\" },\n { optionKey: \"affectedVersion\", metadataKey: \"affected_version\" },\n { optionKey: \"fixedVersion\", metadataKey: \"fixed_version\" },\n { optionKey: \"component\", metadataKey: \"component\" },\n {\n optionKey: \"regression\",\n metadataKey: \"regression\",\n transform: (value) => parseRegressionInput(value),\n },\n { optionKey: \"customerImpact\", metadataKey: \"customer_impact\" },\n ];\n\nfunction applyUpdateScalarMutations(\n definitions: ReadonlyArray<UpdateScalarMutationDefinition>,\n options: UpdateCommandOptions,\n context: UpdateScalarMutationContext,\n): void {\n for (const definition of definitions) {\n const optionValue = options[definition.optionKey];\n const shouldClear = context.clearFrontMatterKeys.has(\n definition.metadataKey,\n );\n if (optionValue === undefined && !shouldClear) {\n continue;\n }\n if (shouldClear) {\n delete context.metadataRecord[definition.metadataKey];\n context.changedFields.push(definition.metadataKey);\n continue;\n }\n if (typeof optionValue !== \"string\") {\n throw new PmCliError(\n `${commandOptionFlagLabel(\"update\", String(definition.optionKey))} must be a string value`,\n EXIT_CODE.USAGE,\n );\n }\n context.metadataRecord[definition.metadataKey] = definition.transform\n ? definition.transform(optionValue, context)\n : optionValue.trim();\n context.changedFields.push(definition.metadataKey);\n }\n}\n\nasync function resolveStdinUpdateOptions(\n options: UpdateCommandOptions,\n): Promise<UpdateCommandOptions> {\n const stdinResolver = createStdinTokenResolver();\n return normalizeLegacyNoneUpdateOptions({\n ...options,\n body: await stdinResolver.resolveValue(options.body, \"--body\"),\n dep: await stdinResolver.resolveList(options.dep, \"--dep\"),\n depRemove: await stdinResolver.resolveList(\n options.depRemove,\n \"--dep-remove\",\n ),\n comment: await stdinResolver.resolveList(options.comment, \"--comment\"),\n note: await stdinResolver.resolveList(options.note, \"--note\"),\n learning: await stdinResolver.resolveList(options.learning, \"--learning\"),\n file: await stdinResolver.resolveList(options.file, \"--file\"),\n test: await stdinResolver.resolveList(options.test, \"--test\"),\n doc: await stdinResolver.resolveList(options.doc, \"--doc\"),\n reminder: await stdinResolver.resolveList(options.reminder, \"--reminder\"),\n event: await stdinResolver.resolveList(options.event, \"--event\"),\n typeOption: await stdinResolver.resolveList(\n options.typeOption,\n \"--type-option\",\n ),\n field: await stdinResolver.resolveList(options.field, \"--field\"),\n });\n}\n\nfunction buildClearCollectionDefinitions(\n options: UpdateCommandOptions,\n): readonly UpdateClearCollectionDefinition[] {\n return [\n {\n enabled: options.clearDeps || options.replaceDeps,\n optionKey: \"dep\",\n clearFlag: \"--clear-deps\",\n valueFlag: \"--dep\",\n values: options.dep,\n frontMatterKey: \"dependencies\",\n },\n {\n enabled: options.clearComments,\n optionKey: \"comment\",\n clearFlag: \"--clear-comments\",\n valueFlag: \"--comment\",\n values: options.comment,\n frontMatterKey: \"comments\",\n },\n {\n enabled: options.clearNotes,\n optionKey: \"note\",\n clearFlag: \"--clear-notes\",\n valueFlag: \"--note\",\n values: options.note,\n frontMatterKey: \"notes\",\n },\n {\n enabled: options.clearLearnings,\n optionKey: \"learning\",\n clearFlag: \"--clear-learnings\",\n valueFlag: \"--learning\",\n values: options.learning,\n frontMatterKey: \"learnings\",\n },\n {\n enabled: options.clearFiles,\n optionKey: \"file\",\n clearFlag: \"--clear-files\",\n valueFlag: \"--file\",\n values: options.file,\n frontMatterKey: \"files\",\n },\n {\n enabled: options.clearTests || options.replaceTests,\n optionKey: \"test\",\n clearFlag: \"--clear-tests\",\n valueFlag: \"--test\",\n values: options.test,\n frontMatterKey: \"tests\",\n },\n {\n enabled: options.clearDocs,\n optionKey: \"doc\",\n clearFlag: \"--clear-docs\",\n valueFlag: \"--doc\",\n values: options.doc,\n frontMatterKey: \"docs\",\n },\n {\n enabled: options.clearReminders,\n optionKey: \"reminder\",\n clearFlag: \"--clear-reminders\",\n valueFlag: \"--reminder\",\n values: options.reminder,\n frontMatterKey: \"reminders\",\n },\n {\n enabled: options.clearEvents,\n optionKey: \"event\",\n clearFlag: \"--clear-events\",\n valueFlag: \"--event\",\n values: options.event,\n frontMatterKey: \"events\",\n },\n {\n enabled: options.clearTypeOptions,\n optionKey: \"typeOption\",\n clearFlag: \"--clear-type-options\",\n valueFlag: \"--type-option\",\n values: options.typeOption,\n frontMatterKey: \"type_options\",\n },\n ];\n}\n\nfunction validateReplaceOptions(options: UpdateCommandOptions): void {\n if (\n options.replaceDeps === true &&\n (options.dep === undefined || options.dep.length === 0)\n ) {\n throw new PmCliError(\n \"--replace-deps requires at least one --dep entry\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n options.replaceDeps === true &&\n options.depRemove !== undefined &&\n options.depRemove.length > 0\n ) {\n throw new PmCliError(\n \"--replace-deps cannot be combined with --dep-remove\",\n EXIT_CODE.USAGE,\n );\n }\n if (\n options.replaceTests === true &&\n (options.test === undefined || options.test.length === 0)\n ) {\n throw new PmCliError(\n \"--replace-tests requires at least one --test entry\",\n EXIT_CODE.USAGE,\n );\n }\n if (options.replaceTests === true && options.clearTests === true) {\n throw new PmCliError(\n \"--replace-tests cannot be combined with --clear-tests\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nfunction applyClearCollectionDefinitions(params: {\n definitions: readonly UpdateClearCollectionDefinition[];\n options: UpdateCommandOptions;\n clearOptionKeys: Set<string>;\n clearFrontMatterKeys: Set<string>;\n}): void {\n for (const definition of params.definitions) {\n if (!definition.enabled) {\n continue;\n }\n const isReplacement =\n (definition.optionKey === \"dep\" && params.options.replaceDeps === true) ||\n (definition.optionKey === \"test\" && params.options.replaceTests === true);\n if (definition.values && definition.values.length > 0 && !isReplacement) {\n throw new PmCliError(\n `Cannot combine ${definition.clearFlag} with ${definition.valueFlag}`,\n EXIT_CODE.USAGE,\n );\n }\n params.clearOptionKeys.add(definition.optionKey);\n params.clearFrontMatterKeys.add(definition.frontMatterKey);\n }\n}\n\nfunction buildScalarOptionPresence(\n options: UpdateCommandOptions,\n): Record<string, boolean> {\n const presence: Record<string, boolean> = {};\n for (const key of UPDATE_LEGACY_SCALAR_OPTION_KEYS) {\n presence[String(key)] = options[key] !== undefined;\n }\n presence.order = options.order !== undefined || options.rank !== undefined;\n return presence;\n}\n\nfunction rejectUnsetScalarConflicts(\n options: UpdateCommandOptions,\n unsetTargets: { optionKeys: Set<string>; frontMatterKeys: Set<string> },\n): void {\n const scalarOptionPresence = buildScalarOptionPresence(options);\n for (const [optionKey, hasValue] of Object.entries(scalarOptionPresence)) {\n if (!hasValue || !unsetTargets.optionKeys.has(optionKey)) {\n continue;\n }\n const unsetField =\n UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;\n throw new PmCliError(\n `Cannot combine --unset ${unsetField} with ${commandOptionFlagLabel(\"update\", optionKey)}`,\n EXIT_CODE.USAGE,\n );\n }\n if (!unsetTargets.frontMatterKeys.has(\"tags\")) {\n return;\n }\n if (Array.isArray(options.addTags) && options.addTags.length > 0) {\n throw new PmCliError(\n \"Cannot combine --unset tags with --add-tags\",\n EXIT_CODE.USAGE,\n );\n }\n if (Array.isArray(options.removeTags) && options.removeTags.length > 0) {\n throw new PmCliError(\n \"Cannot combine --unset tags with --remove-tags\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nfunction rejectLegacyScalarTokens(options: UpdateCommandOptions): void {\n const assertNoLegacyScalarToken = (\n value: string | undefined,\n optionKey: string,\n ): void => {\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey);\n const hint = unsetField\n ? `Use --unset ${unsetField} to clear this field.`\n : undefined;\n assertNoLegacyNoneToken(\n value,\n commandOptionFlagLabel(\"update\", optionKey),\n hint,\n );\n };\n for (const key of UPDATE_LEGACY_SCALAR_OPTION_KEYS) {\n assertNoLegacyScalarToken(options[key] as string | undefined, String(key));\n }\n assertNoLegacyScalarToken(options.order ?? options.rank, \"order\");\n assertNoLegacyNoneTokens(\n options.reminder,\n \"--reminder\",\n \"Use --clear-reminders to clear reminders.\",\n );\n assertNoLegacyNoneTokens(\n options.event,\n \"--event\",\n \"Use --clear-events to clear linked events.\",\n );\n}\n\nfunction buildUpdateFieldFlags(\n options: UpdateCommandOptions,\n runtimeFieldUpdates: Record<string, unknown>,\n): Record<string, boolean> {\n const flags: Record<string, boolean> = {};\n for (const key of UPDATE_SIMPLE_FIELD_FLAG_KEYS) {\n flags[String(key)] = options[key] !== undefined;\n }\n flags.tags = options.tags !== undefined;\n flags.addTags = Array.isArray(options.addTags) && options.addTags.length > 0;\n flags.removeTags =\n Array.isArray(options.removeTags) && options.removeTags.length > 0;\n flags.order = options.order !== undefined;\n flags.rank = options.rank !== undefined;\n flags.replaceDeps = options.replaceDeps === true;\n flags.replaceTests = options.replaceTests === true;\n flags.unset = options.unset !== undefined && options.unset.length > 0;\n flags.clearDeps = options.clearDeps === true;\n flags.clearComments = options.clearComments === true;\n flags.clearNotes = options.clearNotes === true;\n flags.clearLearnings = options.clearLearnings === true;\n flags.clearFiles = options.clearFiles === true;\n flags.clearTests = options.clearTests === true;\n flags.clearDocs = options.clearDocs === true;\n flags.clearReminders = options.clearReminders === true;\n flags.clearEvents = options.clearEvents === true;\n flags.clearTypeOptions = options.clearTypeOptions === true;\n flags.runtimeFields = Object.keys(runtimeFieldUpdates).length > 0;\n return flags;\n}\n\nasync function buildNoopUpdateResult(params: {\n pmRoot: string;\n id: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n}): Promise<UpdateResult> {\n const located = await locateItem(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.typeRegistry.type_to_folder,\n );\n }\n const { document } = await readLocatedItem(located, {\n schema: params.settings.schema,\n });\n return {\n item: toItemRecord(document.metadata),\n changed_fields: [],\n warnings: [\"noop_no_update_fields\"],\n };\n}\n\nasync function assertUpdateTrackerInitialized(pmRoot: string): Promise<void> {\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(\n `Tracker is not initialized at ${pmRoot}. Run pm init first.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n}\n\nfunction assertMatchingOrderRank(options: UpdateCommandOptions): void {\n if (\n options.order !== undefined &&\n options.rank !== undefined &&\n options.order !== options.rank\n ) {\n throw new PmCliError(\n \"--order and --rank must match when both are provided\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\nasync function resolveParentReferenceForUpdate(params: {\n id: string;\n options: UpdateCommandOptions;\n unsetTargets: { frontMatterKeys: Set<string> };\n pmRoot: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n parentReferencePolicy: Awaited<\n ReturnType<typeof readSettings>\n >[\"validation\"][\"parent_reference\"];\n}): Promise<{ resolvedParentValue: string | undefined; warnings: string[] }> {\n if (\n params.options.parent === undefined ||\n params.unsetTargets.frontMatterKeys.has(\"parent\")\n ) {\n return { resolvedParentValue: undefined, warnings: [] };\n }\n const resolvedParentValue = normalizeParentReferenceValue(\n params.options.parent,\n );\n assertParentReferenceIsNotSelf(\n params.id,\n resolvedParentValue,\n params.settings.id_prefix,\n );\n const parentLocated = await locateItem(\n params.pmRoot,\n resolvedParentValue,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (parentLocated) {\n return { resolvedParentValue, warnings: [] };\n }\n const normalizedParentId = normalizeItemId(\n resolvedParentValue,\n params.settings.id_prefix,\n );\n return {\n resolvedParentValue,\n warnings: validateMissingParentReference(\n normalizedParentId,\n params.parentReferencePolicy,\n ).warnings,\n };\n}\n\nfunction blockedByResolutionWarnings(resolution: {\n unresolved?: string;\n}): string[] {\n return resolution.unresolved === undefined\n ? []\n : [`blocked_by_unresolved:${resolution.unresolved}`];\n}\n\nasync function collectWorkflowTransitionWarnings(params: {\n options: UpdateCommandOptions;\n fieldFlags: Record<string, boolean>;\n workflowEnforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>;\n pmRoot: string;\n id: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n}): Promise<string[]> {\n if (\n params.workflowEnforcement === \"off\" ||\n params.typeWorkflows.length === 0 ||\n !params.fieldFlags.status ||\n params.options.status === undefined\n ) {\n return [];\n }\n const located = await locateItem(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(\n params.pmRoot,\n params.id,\n params.settings.id_prefix,\n params.typeRegistry.type_to_folder,\n );\n }\n const { document } = await readLocatedItem(located, {\n schema: params.settings.schema,\n });\n const effectiveType =\n params.options.type !== undefined\n ? (resolveTypeName(params.options.type, params.typeRegistry) ??\n params.options.type)\n : (document.metadata?.type ?? \"\");\n const warning = enforceTypeWorkflowTransition({\n enforcement: params.workflowEnforcement,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n typeName: effectiveType,\n fromStatus: document.metadata?.status ?? \"\",\n toStatus: params.options.status,\n });\n return warning ? [warning] : [];\n}\n\nasync function routeCloseStatusUpdate(\n context: CloseRouteContext,\n): Promise<UpdateResult | undefined> {\n if (!context.fieldFlags.status) {\n return undefined;\n }\n const targetStatus = normalizeStatusInput(\n context.options.status as ItemStatus,\n context.statusRegistry,\n );\n if (targetStatus !== context.statusRegistry.close_status) {\n return undefined;\n }\n\n const otherFieldKeys = Object.entries(context.fieldFlags)\n .filter(\n ([key, value]) => value && key !== \"status\" && key !== \"closeReason\",\n )\n .map(([key]) => key);\n const routeWarnings: string[] = [];\n let preChangedFields: string[] = [];\n if (otherFieldKeys.length > 0) {\n const preUpdate = await runUpdate(\n context.id,\n {\n ...context.options,\n status: undefined,\n closeReason: undefined,\n message: undefined,\n },\n context.global,\n );\n preChangedFields = preUpdate.changed_fields;\n routeWarnings.push(...preUpdate.warnings);\n }\n\n const explicitReason =\n typeof context.options.closeReason === \"string\"\n ? context.options.closeReason.trim()\n : \"\";\n const fallbackMessage =\n typeof context.options.message === \"string\"\n ? context.options.message.trim()\n : \"\";\n const closeReason =\n explicitReason || fallbackMessage || \"Closed via pm update\";\n const closeResult = await runClose(\n context.id,\n closeReason,\n {\n author: context.options.author,\n message: context.options.message,\n force: context.options.force,\n },\n context.global,\n );\n\n const warnings = [\n ...context.workflowTransitionWarnings,\n ...routeWarnings,\n ...closeResult.warnings,\n \"auto_routed_from_update_to_close\",\n ];\n if (explicitReason.length === 0 && fallbackMessage.length === 0) {\n warnings.push(\"close_reason_defaulted\");\n }\n return {\n item: closeResult.item,\n changed_fields: [...preChangedFields, ...closeResult.changed_fields],\n warnings,\n };\n}\n\nfunction applySimpleItemMutations(\n document: ItemDocument,\n options: UpdateCommandOptions,\n statusRegistry: RuntimeStatusRegistry,\n changedFields: string[],\n): string {\n if (options.title !== undefined) {\n document.metadata.title = options.title;\n changedFields.push(\"title\");\n }\n if (options.description !== undefined) {\n document.metadata.description = options.description;\n changedFields.push(\"description\");\n }\n if (options.body !== undefined) {\n document.body = options.body;\n changedFields.push(\"body\");\n }\n return (\n normalizeStatusInput(document.metadata.status, statusRegistry) ??\n document.metadata.status\n );\n}\n\nfunction hasClosedAt(metadata: ItemDocument[\"metadata\"]): boolean {\n return metadata.closed_at !== undefined && metadata.closed_at !== null;\n}\n\nfunction hasClosedAtProperty(metadata: ItemDocument[\"metadata\"]): boolean {\n return metadata.closed_at !== undefined;\n}\n\nfunction applyStatusAndCloseReasonMutations(\n document: ItemDocument,\n context: Pick<\n UpdateMutationContext,\n \"options\" | \"statusRegistry\" | \"clearFrontMatterKeys\" | \"nowIso\"\n >,\n previousStatusNormalized: string,\n changedFields: string[],\n): void {\n if (context.options.status !== undefined) {\n const status = parseStatus(context.options.status, context.statusRegistry);\n document.metadata.status = status;\n changedFields.push(\"status\");\n if (\n status === context.statusRegistry.close_status &&\n !hasClosedAt(document.metadata)\n ) {\n document.metadata.closed_at = context.nowIso;\n changedFields.push(\"closed_at\");\n } else if (\n previousStatusNormalized === context.statusRegistry.close_status &&\n status !== context.statusRegistry.close_status &&\n hasClosedAtProperty(document.metadata)\n ) {\n delete document.metadata.closed_at;\n changedFields.push(\"closed_at\");\n }\n }\n if (\n context.options.closeReason !== undefined ||\n context.clearFrontMatterKeys.has(\"close_reason\")\n ) {\n if (context.clearFrontMatterKeys.has(\"close_reason\")) {\n delete document.metadata.close_reason;\n } else {\n const closeReason = context.options.closeReason?.trim() ?? \"\";\n if (closeReason.length === 0) {\n throw new PmCliError(\n \"--close-reason must not be empty\",\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.close_reason = closeReason;\n }\n changedFields.push(\"close_reason\");\n return;\n }\n if (\n context.options.status !== undefined &&\n previousStatusNormalized === context.statusRegistry.close_status &&\n document.metadata.status !== context.statusRegistry.canceled_status &&\n document.metadata.close_reason !== undefined\n ) {\n delete document.metadata.close_reason;\n changedFields.push(\"close_reason\");\n }\n}\n\nfunction applyPriorityTypeAndOptions(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): string {\n let activeTypeName =\n resolveTypeName(document.metadata.type, context.typeRegistry) ??\n document.metadata.type;\n if (context.options.priority !== undefined) {\n document.metadata.priority = ensurePriority(context.options.priority);\n changedFields.push(\"priority\");\n }\n if (context.options.type !== undefined) {\n const resolvedTypeName = resolveTypeName(\n context.options.type,\n context.typeRegistry,\n );\n if (!resolvedTypeName) {\n throw new PmCliError(\n buildInvalidTypeError(\n context.options.type,\n context.typeRegistry.types,\n resolveItemTypesFilePath(context.pmRoot, context.settings.schema),\n ),\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type = resolvedTypeName;\n activeTypeName = resolvedTypeName;\n changedFields.push(\"type\");\n }\n enforceUpdateOptionsByType(\n activeTypeName,\n context.options,\n context.typeRegistry,\n context.runtimeFieldRegistry,\n context.extensionFieldNames,\n );\n applyTypeOptionMutation(document, context, activeTypeName, changedFields);\n return activeTypeName;\n}\n\nfunction applyTypeOptionMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n activeTypeName: string,\n changedFields: string[],\n): void {\n if (\n context.options.typeOption !== undefined ||\n context.clearFrontMatterKeys.has(\"type_options\")\n ) {\n if (context.clearFrontMatterKeys.has(\"type_options\")) {\n delete document.metadata.type_options;\n } else {\n const parsedTypeOptions = parseTypeOptionEntries(\n context.options.typeOption ?? [],\n );\n const validation = validateTypeOptions(\n activeTypeName,\n parsedTypeOptions,\n context.typeRegistry,\n );\n if (validation.errors.length > 0) {\n throw new PmCliError(validation.errors.join(\"; \"), EXIT_CODE.USAGE);\n }\n document.metadata.type_options = validation.normalized;\n }\n changedFields.push(\"type_options\");\n return;\n }\n if (\n context.options.type === undefined ||\n document.metadata.type_options === undefined\n ) {\n return;\n }\n const validation = validateTypeOptions(\n activeTypeName,\n document.metadata.type_options,\n context.typeRegistry,\n );\n if (validation.errors.length > 0) {\n throw new PmCliError(\n `Current type options are incompatible with type \"${activeTypeName}\". ${validation.errors.join(\"; \")}. Use --clear-type-options to clear them.`,\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type_options = validation.normalized;\n}\n\nfunction applyDependencyMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.dep === undefined &&\n context.options.depRemove === undefined &&\n !context.clearFrontMatterKeys.has(\"dependencies\")\n ) {\n return;\n }\n let nextDependencies = context.clearFrontMatterKeys.has(\"dependencies\")\n ? []\n : [...(document.metadata.dependencies ?? [])];\n if (context.dependencyUpdates.additions.length > 0) {\n const seen = new Set(nextDependencies.map((entry) => dependencyKey(entry)));\n for (const addition of context.dependencyUpdates.additions) {\n const key = dependencyKey(addition);\n if (!seen.has(key)) {\n nextDependencies.push(addition);\n seen.add(key);\n }\n }\n }\n if (context.dependencyRemovals.length > 0) {\n nextDependencies = nextDependencies.filter(\n (entry) =>\n !context.dependencyRemovals.some((selector) =>\n matchesDependencySelector(entry, selector),\n ),\n );\n }\n if (nextDependencies.length === 0) {\n delete document.metadata.dependencies;\n } else {\n document.metadata.dependencies = nextDependencies;\n }\n changedFields.push(\"dependencies\");\n}\n\nfunction applyLogCollectionMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n applyLogCollectionMutation(\n document,\n \"comments\",\n context.options.comment,\n context.commentUpdates.values as Comment[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyLogCollectionMutation(\n document,\n \"notes\",\n context.options.note,\n context.noteUpdates.values as LogNote[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyLogCollectionMutation(\n document,\n \"learnings\",\n context.options.learning,\n context.learningUpdates.values as LogNote[] | undefined,\n context.clearFrontMatterKeys,\n changedFields,\n );\n}\n\nfunction applyLogCollectionMutation(\n document: ItemDocument,\n key: \"comments\" | \"notes\" | \"learnings\",\n optionValue: string[] | undefined,\n values: Comment[] | LogNote[] | undefined,\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n if (optionValue === undefined && !clearFrontMatterKeys.has(key)) {\n return;\n }\n if (clearFrontMatterKeys.has(key) || !values || values.length === 0) {\n delete document.metadata[key];\n } else {\n document.metadata[key] = [\n ...(document.metadata[key] ?? []),\n ...values,\n ] as never;\n }\n changedFields.push(key);\n}\n\nfunction applyEvidenceCollectionMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n applyUniqueLinkedCollectionMutation(\n document,\n \"files\",\n context.options.file,\n context.fileUpdates.values,\n fileKey,\n context.clearFrontMatterKeys,\n changedFields,\n );\n applyTestCollectionMutation(document, context, changedFields);\n applyUniqueLinkedCollectionMutation(\n document,\n \"docs\",\n context.options.doc,\n context.docUpdates.values,\n docKey,\n context.clearFrontMatterKeys,\n changedFields,\n );\n}\n\nfunction applyUniqueLinkedCollectionMutation<T extends LinkedFile | LinkedDoc>(\n document: ItemDocument,\n key: \"files\" | \"docs\",\n optionValue: string[] | undefined,\n values: T[] | undefined,\n keyOf: (value: T) => string,\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n if (optionValue === undefined && !clearFrontMatterKeys.has(key)) {\n return;\n }\n if (clearFrontMatterKeys.has(key) || !values || values.length === 0) {\n delete document.metadata[key];\n } else {\n const next = [...((document.metadata[key] as T[] | undefined) ?? [])];\n const seen = new Set(next.map((entry) => keyOf(entry)));\n for (const entry of values) {\n const keyValue = keyOf(entry);\n if (!seen.has(keyValue)) {\n next.push(entry);\n seen.add(keyValue);\n }\n }\n document.metadata[key] = next as never;\n }\n changedFields.push(key);\n}\n\nfunction applyTestCollectionMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.test === undefined &&\n !context.clearFrontMatterKeys.has(\"tests\")\n ) {\n return;\n }\n if (\n context.clearFrontMatterKeys.has(\"tests\") &&\n context.options.replaceTests === true\n ) {\n document.metadata.tests =\n dedupeLinkedTests(context.testUpdates.values) ?? [];\n } else if (\n context.clearFrontMatterKeys.has(\"tests\") ||\n !context.testUpdates.values ||\n context.testUpdates.values.length === 0\n ) {\n delete document.metadata.tests;\n } else {\n document.metadata.tests = dedupeLinkedTests([\n ...(document.metadata.tests ?? []),\n ...context.testUpdates.values,\n ]);\n }\n if (\n document.metadata.tests !== undefined &&\n document.metadata.tests.length === 0\n ) {\n delete document.metadata.tests;\n }\n changedFields.push(\"tests\");\n}\n\nfunction dedupeLinkedTests(\n values: LinkedTest[] | undefined,\n): LinkedTest[] | undefined {\n if (!values || values.length === 0) {\n return undefined;\n }\n const next: LinkedTest[] = [];\n const seen = new Set<string>();\n for (const entry of values) {\n const key = testKey(entry);\n if (!seen.has(key)) {\n next.push(entry);\n seen.add(key);\n }\n }\n return next;\n}\n\nfunction applyTagsAndPlanningMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n scalarMutationContext: UpdateScalarMutationContext,\n): void {\n const addTagsValues = context.options.addTags;\n const removeTagsValues = context.options.removeTags;\n const hasAdditiveTagMutation =\n (Array.isArray(addTagsValues) && addTagsValues.length > 0) ||\n (Array.isArray(removeTagsValues) && removeTagsValues.length > 0);\n if (\n context.options.tags !== undefined ||\n context.clearFrontMatterKeys.has(\"tags\") ||\n hasAdditiveTagMutation\n ) {\n const baseTags = context.clearFrontMatterKeys.has(\"tags\")\n ? []\n : context.options.tags !== undefined\n ? parseTags(context.options.tags)\n : Array.isArray(document.metadata.tags)\n ? [...(document.metadata.tags as string[])]\n : [];\n document.metadata.tags = applyTagRemovals(\n mergeAdditiveTags(baseTags, addTagsValues),\n removeTagsValues,\n );\n scalarMutationContext.changedFields.push(\"tags\");\n }\n applyUpdateScalarMutations(\n UPDATE_POST_TAG_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n applyOrderMutation(document, context, scalarMutationContext.changedFields);\n}\n\nfunction applyOrderMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n const orderRaw = context.options.order ?? context.options.rank;\n if (orderRaw === undefined && !context.clearFrontMatterKeys.has(\"order\")) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"order\")) {\n delete document.metadata.order;\n } else {\n const parsedOrder = parseOptionalNumber(orderRaw ?? \"\", \"order\");\n if (!Number.isInteger(parsedOrder)) {\n throw new PmCliError(\"Order must be an integer\", EXIT_CODE.USAGE);\n }\n document.metadata.order = parsedOrder;\n }\n changedFields.push(\"order\");\n}\n\nfunction applyOwnershipAndIssueMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n scalarMutationContext: UpdateScalarMutationContext,\n warnings: string[],\n): void {\n applyAssigneeMutation(document, context, scalarMutationContext.changedFields);\n applyParentMutation(document, context, scalarMutationContext.changedFields);\n applyUpdateScalarMutations(\n UPDATE_STAKEHOLDER_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n applySprintReleaseMutation(\n document,\n context,\n \"sprint\",\n warnings,\n scalarMutationContext.changedFields,\n );\n applySprintReleaseMutation(\n document,\n context,\n \"release\",\n warnings,\n scalarMutationContext.changedFields,\n );\n applyBlockedByMutation(\n document,\n context,\n scalarMutationContext.changedFields,\n );\n applyUpdateScalarMutations(\n UPDATE_ISSUE_SCALAR_MUTATIONS,\n context.options,\n scalarMutationContext,\n );\n}\n\nfunction applyAssigneeMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.assignee === undefined &&\n !context.clearFrontMatterKeys.has(\"assignee\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"assignee\")) {\n delete document.metadata.assignee;\n } else {\n const assignee = context.options.assignee?.trim() ?? \"\";\n if (assignee === \"\") {\n throw new PmCliError(\n \"--assignee must not be empty. Use --unset assignee to clear it.\",\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.assignee = assignee;\n }\n changedFields.push(\"assignee\");\n}\n\nfunction applyParentMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.parent === undefined &&\n !context.clearFrontMatterKeys.has(\"parent\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"parent\")) {\n delete document.metadata.parent;\n } else {\n document.metadata.parent = context.resolvedParentValue ?? \"\";\n }\n changedFields.push(\"parent\");\n}\n\nfunction applySprintReleaseMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n key: \"sprint\" | \"release\",\n warnings: string[],\n changedFields: string[],\n): void {\n if (\n context.options[key] === undefined &&\n !context.clearFrontMatterKeys.has(key)\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(key)) {\n delete document.metadata[key];\n } else {\n const validation = validateSprintOrReleaseValue(\n key,\n context.options[key] ?? \"\",\n context.settings.validation.sprint_release_format,\n );\n document.metadata[key] = validation.value;\n warnings.push(...validation.warnings);\n }\n changedFields.push(key);\n}\n\nfunction applyBlockedByMutation(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.blockedBy === undefined &&\n !context.clearFrontMatterKeys.has(\"blocked_by\")\n ) {\n return;\n }\n if (context.clearFrontMatterKeys.has(\"blocked_by\")) {\n delete document.metadata.blocked_by;\n } else {\n document.metadata.blocked_by = context.options.blockedBy?.trim() ?? \"\";\n }\n changedFields.push(\"blocked_by\");\n if (\n context.clearFrontMatterKeys.has(\"blocked_by\") ||\n context.resolvedBlockedByDependencyId !== undefined\n ) {\n applyBlockedByDependencyEdge(\n document.metadata,\n context.resolvedBlockedByDependencyId,\n context.nowIso,\n context.author,\n changedFields,\n );\n }\n}\n\nfunction applyScheduleMutations(\n document: ItemDocument,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n if (\n context.options.reminder !== undefined ||\n context.clearFrontMatterKeys.has(\"reminders\")\n ) {\n if (context.clearFrontMatterKeys.has(\"reminders\")) {\n delete document.metadata.reminders;\n } else {\n document.metadata.reminders = parseReminderEntries(\n context.options.reminder ?? [],\n context.nowValue,\n { valueMode: \"trimmed\" },\n );\n }\n changedFields.push(\"reminders\");\n }\n if (\n context.options.event !== undefined ||\n context.clearFrontMatterKeys.has(\"events\")\n ) {\n if (context.clearFrontMatterKeys.has(\"events\")) {\n delete document.metadata.events;\n } else {\n document.metadata.events = parseEventEntries(\n context.options.event ?? [],\n context.nowValue,\n {\n allDayEmptyGuard: \"truthy\",\n recurrenceEmptyNumericGuard: \"truthy\",\n },\n );\n }\n changedFields.push(\"events\");\n }\n}\n\nfunction applyRuntimeAndRegisteredFieldMutations(\n metadataRecord: Record<string, unknown>,\n context: UpdateMutationContext,\n changedFields: string[],\n): void {\n clearDynamicFields(\n metadataRecord,\n context.runtimeFieldRegistry.definitions.map(\n (definition) => definition.metadata_key,\n ),\n context.clearFrontMatterKeys,\n changedFields,\n );\n clearDynamicFields(\n metadataRecord,\n context.extensionFieldNames,\n context.clearFrontMatterKeys,\n changedFields,\n );\n for (const [fieldKey, fieldValue] of Object.entries(\n context.runtimeFieldUpdates,\n )) {\n if (context.clearFrontMatterKeys.has(fieldKey)) {\n const fieldFlag = fieldKey.replaceAll(\"_\", \"-\");\n const definition = context.runtimeFieldRegistry.definitions.find(\n (candidate) => candidate.metadata_key === fieldKey,\n );\n const updateFlag = definition?.cli_flag ?? fieldFlag;\n throw new PmCliError(\n `Cannot combine --unset ${fieldFlag} with --${updateFlag}`,\n EXIT_CODE.USAGE,\n );\n }\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n const registeredItemFieldUpdates = parseRegisteredItemFieldAssignments(\n context.options.field,\n context.extensionRegistrations,\n );\n for (const fieldKey of Object.keys(registeredItemFieldUpdates)) {\n if (context.clearFrontMatterKeys.has(fieldKey)) {\n throw new PmCliError(\n `Cannot combine --unset ${fieldKey.replaceAll(\"_\", \"-\")} with --field ${fieldKey}=...`,\n EXIT_CODE.USAGE,\n );\n }\n }\n for (const [fieldKey, fieldValue] of Object.entries(\n registeredItemFieldUpdates,\n )) {\n if (!stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n }\n}\n\nfunction clearDynamicFields(\n metadataRecord: Record<string, unknown>,\n fieldKeys: readonly string[],\n clearFrontMatterKeys: ReadonlySet<string>,\n changedFields: string[],\n): void {\n for (const fieldKey of fieldKeys) {\n if (\n !clearFrontMatterKeys.has(fieldKey) ||\n metadataRecord[fieldKey] === undefined\n ) {\n continue;\n }\n delete metadataRecord[fieldKey];\n changedFields.push(fieldKey);\n }\n}\n\nfunction mutateUpdateDocument(\n document: ItemDocument,\n context: UpdateMutationContext,\n): { changedFields: string[]; warnings: string[] } {\n const changedFields: string[] = [];\n const warnings: string[] = [];\n const previousStatusNormalized = applySimpleItemMutations(\n document,\n context.options,\n context.statusRegistry,\n changedFields,\n );\n const metadataRecord = toItemRecord(document.metadata);\n const scalarMutationContext: UpdateScalarMutationContext = {\n metadataRecord,\n clearFrontMatterKeys: context.clearFrontMatterKeys,\n changedFields,\n nowValue: context.nowValue,\n };\n\n applyStatusAndCloseReasonMutations(\n document,\n context,\n previousStatusNormalized,\n changedFields,\n );\n applyPriorityTypeAndOptions(document, context, changedFields);\n applyDependencyMutations(document, context, changedFields);\n applyLogCollectionMutations(document, context, changedFields);\n applyEvidenceCollectionMutations(document, context, changedFields);\n applyTagsAndPlanningMutations(document, context, scalarMutationContext);\n applyOwnershipAndIssueMutations(\n document,\n context,\n scalarMutationContext,\n warnings,\n );\n if (\n normalizeStatusInput(document.metadata.status, context.statusRegistry) ===\n context.statusRegistry.canceled_status &&\n document.metadata.assignee !== undefined\n ) {\n delete document.metadata.assignee;\n if (!changedFields.includes(\"assignee\")) {\n changedFields.push(\"assignee\");\n }\n }\n applyScheduleMutations(document, context, changedFields);\n applyRuntimeAndRegisteredFieldMutations(\n metadataRecord,\n context,\n changedFields,\n );\n try {\n applyRegisteredItemFieldDefaultsAndValidation(\n metadataRecord,\n context.extensionRegistrations,\n { skipDefaultFields: context.clearFrontMatterKeys },\n );\n } catch (error: unknown) {\n throw new PmCliError(\n error instanceof Error\n ? error.message\n : \"Invalid extension item field values\",\n EXIT_CODE.USAGE,\n );\n }\n return { changedFields, warnings };\n}\n\n/** Implements run update for the public runtime surface of this module. */\nexport async function runUpdate(\n id: string,\n options: UpdateCommandOptions,\n global: GlobalOptions,\n): Promise<UpdateResult> {\n options = await resolveStdinUpdateOptions(options);\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n await assertUpdateTrackerInitialized(pmRoot);\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const extensionRegistrations = getActiveExtensionRegistrations();\n const extensionFieldNames = collectRegisteredItemFieldNames(\n extensionRegistrations,\n );\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n extensionRegistrations,\n );\n // Per-type allowed-transition enforcement is read RAW (not preset-derived) so\n // existing projects are unaffected when unset; defaults to \"off\".\n const workflowEnforcement: GovernanceWorkflowEnforcement =\n settings.governance.workflow_enforcement ?? \"off\";\n const typeWorkflows =\n workflowEnforcement === \"off\" ? [] : resolveTypeWorkflows(settings.schema);\n const parentReferencePolicy = settings.validation.parent_reference;\n const unsetTargets = parseUpdateUnsetTargets(\n options.unset,\n runtimeFieldRegistry,\n extensionFieldNames,\n );\n const clearOptionKeys = new Set<string>(unsetTargets.optionKeys);\n const clearFrontMatterKeys = new Set<string>(unsetTargets.frontMatterKeys);\n\n validateReplaceOptions(options);\n applyClearCollectionDefinitions({\n definitions: buildClearCollectionDefinitions(options),\n options,\n clearOptionKeys,\n clearFrontMatterKeys,\n });\n enforceAllowAuditUpdateScope(id, options, clearFrontMatterKeys);\n\n rejectUnsetScalarConflicts(options, unsetTargets);\n rejectLegacyScalarTokens(options);\n\n const author = toAuthor(options.author, settings.author_default);\n const nowValue = new Date();\n const nowIso = nowValue.toISOString();\n const dependencyUpdates = parseDependencyAdditions(\n options.dep,\n settings.id_prefix,\n nowIso,\n );\n const dependencyRemovals = parseDependencyRemovals(\n options.depRemove,\n settings.id_prefix,\n );\n const parsedCommentUpdates = parseLogSeed(\n \"--comment\",\n options.comment,\n nowIso,\n author,\n );\n const commentUpdates =\n options.allowAuditUpdate === true && parsedCommentUpdates.values\n ? {\n ...parsedCommentUpdates,\n values: parsedCommentUpdates.values.map((entry) => ({\n ...entry,\n author,\n })),\n }\n : parsedCommentUpdates;\n const noteUpdates = parseLogSeed(\"--note\", options.note, nowIso, author);\n const learningUpdates = parseLogSeed(\n \"--learning\",\n options.learning,\n nowIso,\n author,\n );\n const fileUpdates = parseFiles(options.file);\n const testUpdates = parseTests(options.test);\n const docUpdates = parseDocs(options.doc);\n const workflowTransitionWarnings: string[] = [];\n const parentReference = await resolveParentReferenceForUpdate({\n id,\n options,\n unsetTargets,\n pmRoot,\n settings,\n typeRegistry,\n parentReferencePolicy,\n });\n\n // pm-kyd6: resolve the --blocked-by target up front (async) so the sync\n // mutate callback can mirror create.ts and add a `blocked_by` dependency edge.\n const blockedByResolution = await resolveBlockedByDependencyTarget(\n options.blockedBy,\n clearFrontMatterKeys.has(\"blocked_by\"),\n pmRoot,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n const resolvedBlockedByDependencyId = blockedByResolution.id;\n const parentReferenceWarnings = [\n ...parentReference.warnings,\n ...blockedByResolutionWarnings(blockedByResolution),\n ];\n\n const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(\n options as Record<string, unknown>,\n runtimeFieldRegistry,\n options.runtimeFieldCommands,\n );\n const fieldFlags = buildUpdateFieldFlags(options, runtimeFieldUpdates);\n const changedFlags = Object.values(fieldFlags).some(Boolean);\n\n if (!changedFlags) {\n return buildNoopUpdateResult({ pmRoot, id, settings, typeRegistry });\n }\n\n workflowTransitionWarnings.push(\n ...(await collectWorkflowTransitionWarnings({\n options,\n fieldFlags,\n workflowEnforcement,\n typeWorkflows,\n statusRegistry,\n typeRegistry,\n pmRoot,\n id,\n settings,\n })),\n );\n const routedClose = await routeCloseStatusUpdate({\n options,\n fieldFlags,\n statusRegistry,\n workflowTransitionWarnings,\n global,\n id,\n });\n if (routedClose) {\n return routedClose;\n }\n assertMatchingOrderRank(options);\n\n const result = await mutateItem({\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n id,\n op:\n options.allowAuditUpdate === true || options.allowAuditDepUpdate === true\n ? \"update_audit\"\n : \"update\",\n author,\n message: options.message,\n force: options.force,\n bypassAssigneeConflict:\n options.allowAuditUpdate === true || options.allowAuditDepUpdate === true,\n extensionFieldNames,\n mutate(document) {\n return mutateUpdateDocument(document, {\n options,\n settings,\n typeRegistry,\n statusRegistry,\n runtimeFieldRegistry,\n extensionRegistrations,\n extensionFieldNames,\n clearFrontMatterKeys,\n dependencyUpdates,\n dependencyRemovals,\n commentUpdates,\n noteUpdates,\n learningUpdates,\n fileUpdates,\n testUpdates,\n docUpdates,\n resolvedParentValue: parentReference.resolvedParentValue,\n resolvedBlockedByDependencyId,\n runtimeFieldUpdates,\n nowValue,\n nowIso,\n author,\n pmRoot,\n });\n },\n });\n\n return {\n item: toItemRecord(result.item),\n changed_fields: result.changedFields,\n warnings: [\n ...workflowTransitionWarnings,\n ...parentReferenceWarnings,\n ...result.warnings,\n ],\n ...(options.allowAuditUpdate === true ||\n options.allowAuditDepUpdate === true\n ? { audit_update: true }\n : {}),\n };\n}\n\n/* c8 ignore stop */\n/** Public contract for test only update command, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyUpdateCommand = {\n applyStatusAndCloseReasonMutations,\n collectProvidedUpdatePolicyOptions,\n buildAuditScopeRestrictedOptionsError,\n enforceAllowAuditUpdateScope,\n enforceTypeWorkflowTransition,\n matchesDependencySelector,\n normalizeLegacyNoneUpdateOptions,\n normalizeUpdatePolicyOptionKey,\n parseDependencyAdditions,\n parseDependencyRemovals,\n parseUpdateUnsetTargets,\n reconcileBlockedByDependency,\n resolveRuntimeUnsetDefinition: (\n token: string,\n registry: RuntimeFieldRegistry | undefined,\n ) => resolveRuntimeUnsetFieldDefinition(token, \"update\", registry),\n};\n"],"names":[],"mappings":"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","debugId":"056fdb6e-87cc-51d9-9c57-605d021f377d"}
|