@unbrained/pm-cli 2026.7.20 → 2026.7.21
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 +11 -0
- package/dist/cli/commander-usage.d.ts +1 -1
- package/dist/cli/commander-usage.js +5 -5
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/completion.js +13 -5
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.js +4 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/error-guidance.d.ts +2 -0
- package/dist/cli/error-guidance.js +7 -2
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/main.d.ts +1 -5
- package/dist/cli/main.js +12 -50
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +13 -3
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +45 -3
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-structured-mutation.d.ts +14 -0
- package/dist/cli/register-structured-mutation.js +62 -0
- package/dist/cli/register-structured-mutation.js.map +1 -0
- package/dist/cli/registration-helpers.js +5 -3
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/bundle-manifest.json +280 -296
- package/dist/cli-bundle/chunks/{append-E6V54WOQ.js → append-7OVFYR3C.js} +3 -3
- package/dist/cli-bundle/chunks/{append-NNJ3EFIT.js → append-DFETHAZL.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-C3KD7U3T.js → chunk-2L6ZP22J.js} +241 -10
- package/dist/cli-bundle/chunks/chunk-2L6ZP22J.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KZEANWJS.js → chunk-4PUUNQDV.js} +98 -30
- package/dist/cli-bundle/chunks/chunk-4PUUNQDV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RDV4ZFYS.js → chunk-4QOB7L7I.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-RDV4ZFYS.js.map → chunk-4QOB7L7I.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-3LPFHE3P.js → chunk-4QSQ6XDK.js} +62 -20
- package/dist/cli-bundle/chunks/chunk-4QSQ6XDK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QJKL5PHS.js → chunk-7656MAUL.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3AO5VSDR.js → chunk-7RW4JCU2.js} +328 -6
- package/dist/cli-bundle/chunks/chunk-7RW4JCU2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-X6K5XTTN.js → chunk-7W2UAXXT.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-SSKOQNMS.js → chunk-ABWCF646.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-SSKOQNMS.js.map → chunk-ABWCF646.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WVA4DVNV.js → chunk-ADBTSVGK.js} +71 -33
- package/dist/cli-bundle/chunks/chunk-ADBTSVGK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-J4FBIFU6.js → chunk-AELMUANP.js} +12 -6
- package/dist/cli-bundle/chunks/chunk-AELMUANP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4F6BWJ4J.js → chunk-AMJPSANK.js} +57 -36
- package/dist/cli-bundle/chunks/chunk-AMJPSANK.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6VIJ7UA5.js → chunk-AS4SAZ5R.js} +850 -819
- package/dist/cli-bundle/chunks/chunk-AS4SAZ5R.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SG74J6MV.js → chunk-ATBCUC7Y.js} +574 -5
- package/dist/cli-bundle/chunks/chunk-ATBCUC7Y.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5OK4UGFV.js → chunk-BXNDKOR2.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-KSPWRNVP.js → chunk-CPX275C6.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JH2ZSLO3.js → chunk-DZRV2OPA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-L7BH7IWU.js → chunk-E5XMKOSB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-CQTQKUUV.js → chunk-EWJWSNRU.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-DAQ45GCS.js → chunk-F2LBF7XJ.js} +22 -15
- package/dist/cli-bundle/chunks/chunk-F2LBF7XJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-6XMUURSS.js → chunk-FJIFFBJX.js} +64 -33
- package/dist/cli-bundle/chunks/chunk-FJIFFBJX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-E7ICD63T.js → chunk-FO6OSVEN.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-E7ICD63T.js.map → chunk-FO6OSVEN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-3MCTMJXI.js → chunk-FPBMLYPI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UZDQXNUB.js → chunk-FSE2IKJQ.js} +46 -5
- package/dist/cli-bundle/chunks/chunk-FSE2IKJQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IX677TRO.js → chunk-GKX4NJ7U.js} +8 -10
- package/dist/cli-bundle/chunks/{chunk-IX677TRO.js.map → chunk-GKX4NJ7U.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-DVDBQA3B.js → chunk-GTK4DTEW.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-H7EAER5L.js +974 -0
- package/dist/cli-bundle/chunks/chunk-H7EAER5L.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5UX66S6U.js → chunk-ICDAQ4TD.js} +316 -8
- package/dist/cli-bundle/chunks/chunk-ICDAQ4TD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-YQQNAKW3.js → chunk-JFD5LPMI.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-YQQNAKW3.js.map → chunk-JFD5LPMI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-QANSTTC7.js → chunk-JXCW2TI2.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-QANSTTC7.js.map → chunk-JXCW2TI2.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GSJSM5BJ.js → chunk-K36WV5J6.js} +76 -13
- package/dist/cli-bundle/chunks/chunk-K36WV5J6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GVI6FAFG.js → chunk-K55VMLSS.js} +7 -5
- package/dist/cli-bundle/chunks/chunk-K55VMLSS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-GIQSU6S2.js → chunk-KBLZ3AA5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-XJF7CDNH.js → chunk-KH44WBAT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GV2262OF.js → chunk-LAV26CQG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VDO2JMD4.js → chunk-LVC72YRD.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3VY6MIEO.js → chunk-LZYP423P.js} +35 -6
- package/dist/cli-bundle/chunks/chunk-LZYP423P.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZYPFOO3L.js → chunk-MATHDCGG.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OV7MSW3I.js → chunk-MWQ2HC2A.js} +99 -31
- package/dist/cli-bundle/chunks/chunk-MWQ2HC2A.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NHT3F4WZ.js → chunk-NUF7ROFH.js} +840 -816
- package/dist/cli-bundle/chunks/chunk-NUF7ROFH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AOEOYL3S.js → chunk-O4BCOJTZ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-RJO3YAFM.js → chunk-OCUBRA6D.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-5IZJWSDB.js → chunk-OG5DVFMA.js} +22 -15
- package/dist/cli-bundle/chunks/chunk-OG5DVFMA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-I577UHC7.js → chunk-OR42SO64.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-ZOJ3LR7O.js → chunk-OY7DMU5P.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HEWM6CEN.js → chunk-P7MTHPJQ.js} +50 -9
- package/dist/cli-bundle/chunks/chunk-P7MTHPJQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2BO4CA46.js → chunk-PFNHX655.js} +236 -12
- package/dist/cli-bundle/chunks/{chunk-2BO4CA46.js.map → chunk-PFNHX655.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZV2NTVMJ.js → chunk-PONKZPCJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-THAOZG4U.js → chunk-PQSEQD6E.js} +8 -6
- package/dist/cli-bundle/chunks/chunk-PQSEQD6E.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-PWDEHT3L.js +991 -0
- package/dist/cli-bundle/chunks/chunk-PWDEHT3L.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UX6SSO2I.js → chunk-PZC2FUOQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WUVEBQW6.js → chunk-QG4GFLQ6.js} +3 -5
- package/dist/cli-bundle/chunks/{chunk-WUVEBQW6.js.map → chunk-QG4GFLQ6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-VQIHNHMJ.js → chunk-QIH77CAG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-R3EWPG4A.js → chunk-QJIKE24M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QLZ643FM.js → chunk-QOOTOD3W.js} +10 -12
- package/dist/cli-bundle/chunks/{chunk-QLZ643FM.js.map → chunk-QOOTOD3W.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MYSS5H2A.js → chunk-R3P6FZJW.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-MYSS5H2A.js.map → chunk-R3P6FZJW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-G3COA6GS.js → chunk-RNPZYNHS.js} +56 -35
- package/dist/cli-bundle/chunks/chunk-RNPZYNHS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T44FMVRL.js → chunk-RPESLSO5.js} +62 -20
- package/dist/cli-bundle/chunks/chunk-RPESLSO5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-INSTSQNZ.js → chunk-SY4SFZSD.js} +595 -3
- package/dist/cli-bundle/chunks/chunk-SY4SFZSD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HB3P4M52.js → chunk-TRSHFPRZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HRW7GF6T.js → chunk-UCBDQI5E.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4U4Z6AHI.js → chunk-V22ZPOKN.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JM6YAXTR.js → chunk-VHXHVTUU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LPEYZRUR.js → chunk-VJQG4BIM.js} +35 -6
- package/dist/cli-bundle/chunks/chunk-VJQG4BIM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-D6NXDNP3.js → chunk-VLRGDBLY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JAPE62Y5.js → chunk-VNTCM3VW.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-FDHPAVVB.js → chunk-VXOOB6YX.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GFQP7HAZ.js → chunk-VZIZB6QH.js} +3 -5
- package/dist/cli-bundle/chunks/{chunk-GFQP7HAZ.js.map → chunk-VZIZB6QH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-HQ3SB4CN.js → chunk-X3W65QK3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RZJLNXFG.js → chunk-XJTABV3X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GVT754PX.js → chunk-YCIUJJOD.js} +11 -5
- package/dist/cli-bundle/chunks/chunk-YCIUJJOD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IJNK6WW2.js → chunk-Z75ONV25.js} +75 -12
- package/dist/cli-bundle/chunks/chunk-Z75ONV25.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4L23AGQ7.js → chunk-Z7VWXXJM.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-4L23AGQ7.js.map → chunk-Z7VWXXJM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-YBT7O4KT.js → chunk-ZTVA4KLN.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-YBT7O4KT.js.map → chunk-ZTVA4KLN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-TYHJDFYW.js → chunk-ZVZGXPQ5.js} +2 -2
- package/dist/cli-bundle/chunks/{close-many-SDA426VT.js → close-many-5RZXVN4J.js} +5 -6
- package/dist/cli-bundle/chunks/{close-many-UTZANOCQ.js → close-many-RZVTUGBG.js} +5 -6
- package/dist/cli-bundle/chunks/{comments-LZN6FXXC.js → comments-TPU7QRBL.js} +4 -4
- package/dist/cli-bundle/chunks/{comments-VBQ345ND.js → comments-Z4KV6FU3.js} +4 -4
- package/dist/cli-bundle/chunks/{create-GG4RBCGC.js → create-EIFBIVNQ.js} +6 -6
- package/dist/cli-bundle/chunks/{create-JBC5KUW6.js → create-RGSPN5GD.js} +6 -6
- package/dist/cli-bundle/chunks/{deps-FI4O6NQS.js → deps-UH5EQQUY.js} +3 -3
- package/dist/cli-bundle/chunks/{deps-DELOO4TL.js → deps-YG7UF3VR.js} +3 -3
- package/dist/cli-bundle/chunks/{docs-6Z2MP526.js → docs-G32TK6XS.js} +4 -4
- package/dist/cli-bundle/chunks/{docs-2UYBP5D6.js → docs-JWWNRC27.js} +4 -4
- package/dist/cli-bundle/chunks/{files-HKEAN5MA.js → files-3H32UQ4K.js} +4 -4
- package/dist/cli-bundle/chunks/{files-HEUGSJZL.js → files-4ALMCSKB.js} +4 -4
- package/dist/cli-bundle/chunks/{history-compact-7NDVP3PT.js → history-compact-77BT2LUB.js} +3 -4
- package/dist/cli-bundle/chunks/{history-compact-65YVN5DB.js → history-compact-VCKGTX64.js} +3 -4
- package/dist/cli-bundle/chunks/{history-redact-7YBL4XSG.js → history-redact-LJPZPNFA.js} +2 -3
- package/dist/cli-bundle/chunks/{history-redact-IZGNJBU4.js → history-redact-PWTTJ3XS.js} +2 -3
- package/dist/cli-bundle/chunks/{history-repair-7M4PYQUH.js → history-repair-I7CBNCV3.js} +5 -6
- package/dist/cli-bundle/chunks/{history-repair-GNGETJLI.js → history-repair-YTDZRK5E.js} +5 -6
- package/dist/cli-bundle/chunks/{learnings-3YXDRWFT.js → learnings-CYNOICKR.js} +4 -4
- package/dist/cli-bundle/chunks/{learnings-ALC6IMNL.js → learnings-KTYW3AL7.js} +4 -4
- package/dist/cli-bundle/chunks/{notes-7JMLQ447.js → notes-FGO63FXL.js} +4 -4
- package/dist/cli-bundle/chunks/{notes-JFCLTC5C.js → notes-ZERD3KB2.js} +4 -4
- package/dist/cli-bundle/chunks/{plan-T3XB3WTK.js → plan-OFJUBIM5.js} +7 -7
- package/dist/cli-bundle/chunks/{plan-KOIPWVOZ.js → plan-SGCDDTYR.js} +7 -7
- package/dist/cli-bundle/chunks/{profile-OILJHKUW.js → profile-3THJPIQY.js} +4 -5
- package/dist/cli-bundle/chunks/{profile-RJXA7PGS.js → profile-XEZAMMBW.js} +4 -5
- package/dist/cli-bundle/chunks/{register-list-query-CFVG75P3.js → register-list-query-BR435Q2H.js} +19 -16
- package/dist/cli-bundle/chunks/register-list-query-BR435Q2H.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-E7UVY4TN.js → register-list-query-RWTWLOBE.js} +18 -15
- package/dist/cli-bundle/chunks/register-list-query-RWTWLOBE.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-IQ55E25C.js → register-mutation-HLWC2WNP.js} +167 -31
- package/dist/cli-bundle/chunks/register-mutation-HLWC2WNP.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-4VJTXBZW.js → register-mutation-ZJX5AZM5.js} +173 -30
- package/dist/cli-bundle/chunks/register-mutation-ZJX5AZM5.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-AR7RMX4W.js → register-operations-744YBJMV.js} +23 -25
- package/dist/cli-bundle/chunks/{register-operations-AR7RMX4W.js.map → register-operations-744YBJMV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-NOLZGORC.js → register-operations-UEBJH6AN.js} +21 -23
- package/dist/cli-bundle/chunks/{register-operations-NOLZGORC.js.map → register-operations-UEBJH6AN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-EYZ7VTPZ.js → register-setup-5DA4UZXI.js} +7 -8
- package/dist/cli-bundle/chunks/{register-setup-EYZ7VTPZ.js.map → register-setup-5DA4UZXI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-BB77VUEE.js → register-setup-6H25M3BH.js} +9 -10
- package/dist/cli-bundle/chunks/{register-setup-BB77VUEE.js.map → register-setup-6H25M3BH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{restore-ZH65GZFB.js → restore-6TDVSATY.js} +4 -5
- package/dist/cli-bundle/chunks/{restore-L6IAGOD7.js → restore-RSL7C7LO.js} +4 -5
- package/dist/cli-bundle/chunks/{schema-4ERWM5QJ.js → schema-HFXFSGPG.js} +2 -3
- package/dist/cli-bundle/chunks/{schema-55DL3Q52.js → schema-TPVTIJPO.js} +2 -3
- package/dist/cli-bundle/chunks/{update-FW6FKDOP.js → update-LJZCL5SI.js} +7 -7
- package/dist/cli-bundle/chunks/{update-TJHSPRPT.js → update-SIA7LH5Y.js} +7 -7
- package/dist/cli-bundle/chunks/{update-many-PWXX5WHO.js → update-many-BDBZVGQL.js} +11 -12
- package/dist/cli-bundle/chunks/{update-many-NNALYQCN.js → update-many-MOY3A5B3.js} +11 -12
- package/dist/cli-bundle/main.js +60 -85
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/cli-bundle/sdk-runtime.js +37 -37
- package/dist/cli-bundle/sdk.js +126 -291
- package/dist/cli-bundle/sdk.js.map +4 -4
- package/dist/core/item/parse.d.ts +1 -1
- package/dist/core/item/parse.js +13 -7
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/output/mutation-projection.d.ts +2 -0
- package/dist/core/output/mutation-projection.js +33 -2
- package/dist/core/output/mutation-projection.js.map +1 -1
- package/dist/core/output/output.d.ts +4 -0
- package/dist/core/output/output.js +18 -13
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/shared/command-types.d.ts +4 -0
- package/dist/core/shared/command-types.js +2 -2
- package/dist/core/shared/command-types.js.map +1 -1
- package/dist/mcp/server.js +39 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +45 -4
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/cli-bootstrap.d.ts +2 -0
- package/dist/sdk/cli-bootstrap.js +20 -27
- package/dist/sdk/cli-bootstrap.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +7 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +21 -2
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +10 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +16 -3
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.js +6 -2
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts.js +3 -3
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/cli-program.js +4 -2
- package/dist/sdk/cli-program.js.map +1 -1
- package/dist/sdk/dependencies.d.ts +3 -2
- package/dist/sdk/dependencies.js +13 -12
- package/dist/sdk/dependencies.js.map +1 -1
- package/dist/sdk/error-runtime.d.ts +10 -0
- package/dist/sdk/error-runtime.js +59 -0
- package/dist/sdk/error-runtime.js.map +1 -0
- package/dist/sdk/graph/analytics.d.ts +9 -0
- package/dist/sdk/graph/analytics.js +24 -13
- package/dist/sdk/graph/analytics.js.map +1 -1
- package/dist/sdk/graph/assembly.d.ts +39 -0
- package/dist/sdk/graph/assembly.js +92 -12
- package/dist/sdk/graph/assembly.js.map +1 -1
- package/dist/sdk/graph/cache.d.ts +4 -1
- package/dist/sdk/graph/cache.js +17 -4
- package/dist/sdk/graph/cache.js.map +1 -1
- package/dist/sdk/graph/centrality.d.ts +82 -0
- package/dist/sdk/graph/centrality.js +259 -0
- package/dist/sdk/graph/centrality.js.map +1 -0
- package/dist/sdk/graph/durable-cache.d.ts +71 -0
- package/dist/sdk/graph/durable-cache.js +205 -0
- package/dist/sdk/graph/durable-cache.js.map +1 -0
- package/dist/sdk/graph/governance.d.ts +69 -1
- package/dist/sdk/graph/governance.js +143 -35
- package/dist/sdk/graph/governance.js.map +1 -1
- package/dist/sdk/graph/index.d.ts +7 -4
- package/dist/sdk/graph/index.js +8 -5
- package/dist/sdk/graph/index.js.map +1 -1
- package/dist/sdk/graph/mutation-advisory.d.ts +35 -4
- package/dist/sdk/graph/mutation-advisory.js +124 -35
- package/dist/sdk/graph/mutation-advisory.js.map +1 -1
- package/dist/sdk/graph/remediation.js +12 -2
- package/dist/sdk/graph/remediation.js.map +1 -1
- package/dist/sdk/graph/run.d.ts +133 -2
- package/dist/sdk/graph/run.js +217 -8
- package/dist/sdk/graph/run.js.map +1 -1
- package/dist/sdk/graph/scheduling.d.ts +59 -0
- package/dist/sdk/graph/scheduling.js +125 -0
- package/dist/sdk/graph/scheduling.js.map +1 -0
- package/dist/sdk/graph/traversal.d.ts +11 -0
- package/dist/sdk/graph/traversal.js +16 -2
- package/dist/sdk/graph/traversal.js.map +1 -1
- package/dist/sdk/index.d.ts +4 -0
- package/dist/sdk/index.js +6 -2
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/runtime-input.js +7 -2
- package/dist/sdk/runtime-input.js.map +1 -1
- package/dist/sdk/runtime-primitives.d.ts +10 -0
- package/dist/sdk/runtime-primitives.js +14 -0
- package/dist/sdk/runtime-primitives.js.map +1 -0
- package/dist/sdk/runtime.d.ts +15 -0
- package/dist/sdk/runtime.js +16 -3
- package/dist/sdk/runtime.js.map +1 -1
- package/dist/sdk/structured-mutations.d.ts +21 -0
- package/dist/sdk/structured-mutations.js +375 -0
- package/dist/sdk/structured-mutations.js.map +1 -0
- package/docs/COMMANDS.md +85 -5
- package/docs/RELATIONSHIP_GRAPH.md +48 -7
- package/docs/SDK.md +78 -3
- package/marketplace.json +2 -2
- package/package.json +1 -1
- 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/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +5 -3
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-3AO5VSDR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3LPFHE3P.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-3VY6MIEO.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4F6BWJ4J.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5IZJWSDB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5UX66S6U.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6C2ZZX5Z.js +0 -286
- package/dist/cli-bundle/chunks/chunk-6C2ZZX5Z.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-6VIJ7UA5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6XMUURSS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-C3KD7U3T.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js +0 -334
- package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-DAQ45GCS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js +0 -249
- package/dist/cli-bundle/chunks/chunk-E6LEMURX.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-G3COA6GS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GSJSM5BJ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-GVI6FAFG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GVT754PX.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HEWM6CEN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IJNK6WW2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-J4FBIFU6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KZEANWJS.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LPEYZRUR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-NHT3F4WZ.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-OV7MSW3I.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js +0 -246
- package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js +0 -344
- package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SG74J6MV.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-T44FMVRL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-THAOZG4U.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UQLXSG72.js +0 -289
- package/dist/cli-bundle/chunks/chunk-UQLXSG72.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UZDQXNUB.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WVA4DVNV.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-CFVG75P3.js.map +0 -1
- package/dist/cli-bundle/chunks/register-list-query-E7UVY4TN.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-4VJTXBZW.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-IQ55E25C.js.map +0 -1
- /package/dist/cli-bundle/chunks/{append-E6V54WOQ.js.map → append-7OVFYR3C.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-NNJ3EFIT.js.map → append-DFETHAZL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QJKL5PHS.js.map → chunk-7656MAUL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-X6K5XTTN.js.map → chunk-7W2UAXXT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5OK4UGFV.js.map → chunk-BXNDKOR2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KSPWRNVP.js.map → chunk-CPX275C6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JH2ZSLO3.js.map → chunk-DZRV2OPA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-L7BH7IWU.js.map → chunk-E5XMKOSB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CQTQKUUV.js.map → chunk-EWJWSNRU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3MCTMJXI.js.map → chunk-FPBMLYPI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DVDBQA3B.js.map → chunk-GTK4DTEW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GIQSU6S2.js.map → chunk-KBLZ3AA5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XJF7CDNH.js.map → chunk-KH44WBAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GV2262OF.js.map → chunk-LAV26CQG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VDO2JMD4.js.map → chunk-LVC72YRD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZYPFOO3L.js.map → chunk-MATHDCGG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AOEOYL3S.js.map → chunk-O4BCOJTZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RJO3YAFM.js.map → chunk-OCUBRA6D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-I577UHC7.js.map → chunk-OR42SO64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZOJ3LR7O.js.map → chunk-OY7DMU5P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZV2NTVMJ.js.map → chunk-PONKZPCJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UX6SSO2I.js.map → chunk-PZC2FUOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VQIHNHMJ.js.map → chunk-QIH77CAG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-R3EWPG4A.js.map → chunk-QJIKE24M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HB3P4M52.js.map → chunk-TRSHFPRZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HRW7GF6T.js.map → chunk-UCBDQI5E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4U4Z6AHI.js.map → chunk-V22ZPOKN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JM6YAXTR.js.map → chunk-VHXHVTUU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D6NXDNP3.js.map → chunk-VLRGDBLY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JAPE62Y5.js.map → chunk-VNTCM3VW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FDHPAVVB.js.map → chunk-VXOOB6YX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HQ3SB4CN.js.map → chunk-X3W65QK3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RZJLNXFG.js.map → chunk-XJTABV3X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TYHJDFYW.js.map → chunk-ZVZGXPQ5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-SDA426VT.js.map → close-many-5RZXVN4J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-UTZANOCQ.js.map → close-many-RZVTUGBG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-LZN6FXXC.js.map → comments-TPU7QRBL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-VBQ345ND.js.map → comments-Z4KV6FU3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-GG4RBCGC.js.map → create-EIFBIVNQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-JBC5KUW6.js.map → create-RGSPN5GD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-FI4O6NQS.js.map → deps-UH5EQQUY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-DELOO4TL.js.map → deps-YG7UF3VR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-6Z2MP526.js.map → docs-G32TK6XS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-2UYBP5D6.js.map → docs-JWWNRC27.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-HKEAN5MA.js.map → files-3H32UQ4K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-HEUGSJZL.js.map → files-4ALMCSKB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-7NDVP3PT.js.map → history-compact-77BT2LUB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-compact-65YVN5DB.js.map → history-compact-VCKGTX64.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-7YBL4XSG.js.map → history-redact-LJPZPNFA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-IZGNJBU4.js.map → history-redact-PWTTJ3XS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-7M4PYQUH.js.map → history-repair-I7CBNCV3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-GNGETJLI.js.map → history-repair-YTDZRK5E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-3YXDRWFT.js.map → learnings-CYNOICKR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-ALC6IMNL.js.map → learnings-KTYW3AL7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-7JMLQ447.js.map → notes-FGO63FXL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-JFCLTC5C.js.map → notes-ZERD3KB2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-T3XB3WTK.js.map → plan-OFJUBIM5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-KOIPWVOZ.js.map → plan-SGCDDTYR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-OILJHKUW.js.map → profile-3THJPIQY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{profile-RJXA7PGS.js.map → profile-XEZAMMBW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-ZH65GZFB.js.map → restore-6TDVSATY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-L6IAGOD7.js.map → restore-RSL7C7LO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-4ERWM5QJ.js.map → schema-HFXFSGPG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-55DL3Q52.js.map → schema-TPVTIJPO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-FW6FKDOP.js.map → update-LJZCL5SI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-TJHSPRPT.js.map → update-SIA7LH5Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-PWXX5WHO.js.map → update-many-BDBZVGQL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-NNALYQCN.js.map → update-many-MOY3A5B3.js.map} +0 -0
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4ab4b144-7e4f-57e1-a531-93400c905393")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
applyHistoryPatch,
|
|
5
5
|
ensureMaterializedHistoryTarget,
|
|
6
6
|
extractPatchFailureContext,
|
|
7
7
|
readHistoryEntries,
|
|
8
8
|
replayHistoryToTarget,
|
|
9
|
-
resolveHistoryTarget
|
|
10
|
-
} from "./chunk-2BO4CA46.js";
|
|
11
|
-
import {
|
|
12
9
|
replayToCanonicalItemDocument,
|
|
13
10
|
replayToItemDocument,
|
|
11
|
+
resolveHistoryTarget,
|
|
14
12
|
toReplayDocument
|
|
15
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PFNHX655.js";
|
|
16
14
|
import {
|
|
17
15
|
resolveAuthor
|
|
18
16
|
} from "./chunk-CUFW7ITY.js";
|
|
@@ -312,6 +310,6 @@ export {
|
|
|
312
310
|
runRestore,
|
|
313
311
|
_testOnlyRestoreCommand
|
|
314
312
|
};
|
|
315
|
-
//# sourceMappingURL=chunk-
|
|
313
|
+
//# sourceMappingURL=chunk-R3P6FZJW.js.map
|
|
316
314
|
|
|
317
|
-
//# debugId=
|
|
315
|
+
//# debugId=4ab4b144-7e4f-57e1-a531-93400c905393
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../cli/commands/restore.ts"],"sourcesContent":["/**\n * @module cli/commands/restore\n *\n * Implements the pm restore command surface and its agent-facing runtime behavior.\n */\nimport jsonPatch from \"fast-json-patch\";\nimport fs from \"node:fs/promises\";\nimport {\n pathExists,\n readFileIfExists,\n writeFileAtomic,\n} from \"../../core/fs/fs-utils.js\";\nimport {\n appendHistoryEntry,\n createHistoryEntry,\n} from \"../../core/history/history.js\";\nimport {\n replayToCanonicalItemDocument,\n replayToItemDocument,\n toReplayDocument,\n} from \"../../core/history/replay.js\";\nimport {\n applyHistoryPatch,\n ensureMaterializedHistoryTarget as ensureMaterializedRestoreTarget,\n extractPatchFailureContext,\n readHistoryEntries,\n replayHistoryToTarget as replayToTarget,\n resolveHistoryTarget,\n} from \"../../sdk/history-read.js\";\nimport { enforceHistoryStreamPolicyForItem } from \"../../core/history/history-stream-policy.js\";\nimport { normalizeItemId, normalizeRawItemId } from \"../../core/item/id.js\";\nimport {\n canonicalDocument,\n serializeItemDocument,\n} from \"../../core/item/item-format.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { acquireLock } from \"../../core/lock/lock.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport {\n getActiveExtensionRegistrations,\n projectAfterCommandItemSnapshot,\n recordAfterCommandAffectedItem,\n runActiveOnWriteHooks,\n} from \"../../core/extensions/index.js\";\nimport { locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport {\n getHistoryPath,\n getItemPath,\n getSettingsPath,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport type {\n HistoryEntry,\n HistoryPatchOp,\n ItemDocument,\n ItemMetadata,\n} from \"../../types/index.js\";\n\ninterface ResolvedRestoreSubject {\n id: string;\n historyPath: string;\n located: Awaited<ReturnType<typeof locateItem>>;\n historyPolicyWarnings: string[];\n}\n\ninterface RestoreCurrentState {\n document: ItemDocument;\n originalRaw: string | null;\n}\n\n/** Documents the restore command options payload exchanged by command, SDK, and package integrations. */\nexport interface RestoreCommandOptions {\n /** Value that configures or reports author for this contract. */\n author?: string;\n /** Human-readable explanation suitable for logs and agent-facing output. */\n message?: string;\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n}\n\n/** Documents the restore result payload exchanged by command, SDK, and package integrations. */\nexport interface RestoreResult {\n /** Value that configures or reports item for this contract. */\n item: ItemMetadata;\n /** Value that configures or reports restored from for this contract. */\n restored_from: {\n kind: \"version\" | \"timestamp\";\n target: string;\n history_index: number;\n entry_ts: string;\n entry_op: string;\n };\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}\n\n/** Resolve restore targets with the command's established wording and at-or-before timestamp semantics. */\nfunction ensureReplayTarget(target: string, history: readonly HistoryEntry[]) {\n return resolveHistoryTarget(target, history, {\n errorSubject: \"restore\",\n allowFutureTimestamp: true,\n });\n}\n\nfunction replayCurrentDocument(history: HistoryEntry[]): ItemDocument {\n const currentReplay = replayToTarget(history, history.length - 1);\n if (Object.keys(currentReplay.metadata).length === 0) {\n return {\n metadata: {} as ItemMetadata,\n body: currentReplay.body,\n };\n }\n return canonicalDocument(replayToItemDocument(currentReplay));\n}\n\nasync function resolveRestoreSubject(\n pmRoot: string,\n id: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n typeToFolder: Record<string, string>,\n): Promise<ResolvedRestoreSubject> {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeToFolder,\n );\n if (located) {\n const historyPath = getHistoryPath(pmRoot, located.id);\n const historyPolicy = await enforceHistoryStreamPolicyForItem({\n pmRoot,\n settings,\n itemId: located.id,\n commandLabel: \"restore\",\n });\n return {\n id: located.id,\n historyPath,\n located,\n historyPolicyWarnings: historyPolicy.warnings,\n };\n }\n\n const normalizedId = normalizeItemId(id, settings.id_prefix);\n const rawNormalizedId = normalizeRawItemId(id);\n /* c8 ignore start -- raw-id fallback is covered by normalize-item-id utility tests. */\n const candidateIds =\n normalizedId === rawNormalizedId\n ? [normalizedId]\n : [normalizedId, rawNormalizedId];\n /* c8 ignore stop */\n for (const candidateId of candidateIds) {\n const historyPath = getHistoryPath(pmRoot, candidateId);\n if (await pathExists(historyPath)) {\n return {\n id: candidateId,\n historyPath,\n located: null,\n historyPolicyWarnings: [],\n };\n }\n }\n\n throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);\n}\n\nfunction changedFields(\n beforeDocument: ItemDocument,\n afterDocument: ItemDocument,\n): string[] {\n const beforeReplay = toReplayDocument(beforeDocument);\n const afterReplay = toReplayDocument(afterDocument);\n const patch = jsonPatch.compare(\n beforeReplay,\n afterReplay,\n ) as HistoryPatchOp[];\n const fields = new Set<string>();\n\n for (const op of patch) {\n if (op.path === \"/body\" || op.path.startsWith(\"/body/\")) {\n fields.add(\"body\");\n continue;\n }\n const segment = op.path\n .replace(/^\\/(?:metadata|front_matter)\\/?/, \"\")\n .split(\"/\")[0];\n fields.add(segment.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\"));\n }\n\n return Array.from(fields).sort((a, b) => a.localeCompare(b));\n}\n\nasync function loadRestoreStateUnderLock(params: {\n pmRoot: string;\n resolvedId: string;\n subject: ResolvedRestoreSubject;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeToFolder: Record<string, string>;\n historyRawBeforeLock: string | null;\n currentItemRawBeforeLock: string | null;\n}): Promise<{\n loadedItemUnderLock: Awaited<ReturnType<typeof readLocatedItem>> | null;\n existingItemPath: string | null;\n}> {\n const historyRawUnderLock = await readFileIfExists(\n params.subject.historyPath,\n );\n if (historyRawUnderLock !== params.historyRawBeforeLock) {\n throw new PmCliError(\n `History for ${params.resolvedId} changed while waiting for lock; retry restore.`,\n EXIT_CODE.CONFLICT,\n );\n }\n const locatedUnderLock = await locateItem(\n params.pmRoot,\n params.resolvedId,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeToFolder,\n );\n const loadedItemUnderLock = locatedUnderLock\n ? await readLocatedItem(locatedUnderLock, {\n schema: params.settings.schema,\n })\n : null;\n if ((loadedItemUnderLock?.raw ?? null) !== params.currentItemRawBeforeLock) {\n throw new PmCliError(\n `Item ${params.resolvedId} changed while waiting for lock; retry restore.`,\n EXIT_CODE.CONFLICT,\n );\n }\n return {\n loadedItemUnderLock,\n existingItemPath: locatedUnderLock?.itemPath ?? null,\n };\n}\n\nfunction resolveRestoreCurrentState(\n loadedItemUnderLock: Awaited<ReturnType<typeof readLocatedItem>> | null,\n history: HistoryEntry[],\n): RestoreCurrentState {\n if (loadedItemUnderLock) {\n return {\n document: loadedItemUnderLock.document,\n originalRaw: loadedItemUnderLock.raw,\n };\n }\n return { document: replayCurrentDocument(history), originalRaw: null };\n}\n\nfunction collectRestoreOwnershipWarnings(params: {\n document: ItemDocument;\n author: string;\n force: boolean | undefined;\n enforcement: \"strict\" | \"warn\" | \"none\";\n resolvedId: string;\n}): string[] {\n const assigned = params.document.metadata.assignee?.trim();\n const hasOwnershipConflict =\n assigned && assigned !== params.author && !params.force;\n if (!hasOwnershipConflict) {\n return [];\n }\n if (params.enforcement === \"strict\") {\n throw new PmCliError(\n `Item ${params.resolvedId} is assigned to ${assigned}. Use --force to override.`,\n EXIT_CODE.CONFLICT,\n );\n }\n return params.enforcement === \"warn\"\n ? [`ownership_warning:assignee_conflict:${params.resolvedId}:${assigned}`]\n : [];\n}\n\nasync function restorePreviousItemAfterHistoryFailure(params: {\n existingItemPath: string | null;\n resolvedOriginalRaw: string | null;\n restoredItemPath: string;\n}): Promise<void> {\n if (\n params.existingItemPath &&\n params.resolvedOriginalRaw !== null &&\n params.restoredItemPath !== params.existingItemPath\n ) {\n await writeFileAtomic(params.existingItemPath, params.resolvedOriginalRaw);\n await fs.rm(params.restoredItemPath, { force: true });\n return;\n }\n if (params.existingItemPath && params.resolvedOriginalRaw !== null) {\n await writeFileAtomic(params.existingItemPath, params.resolvedOriginalRaw);\n return;\n }\n await fs.rm(params.restoredItemPath, { force: true });\n}\n\nasync function runRestoreWriteHooks(params: {\n restoredItemPath: string;\n historyPath: string;\n before: ItemDocument;\n after: ItemDocument;\n}): Promise<string[]> {\n return [\n ...(await runActiveOnWriteHooks({\n path: params.restoredItemPath,\n scope: \"project\",\n op: \"restore\",\n item_id: params.after.metadata.id,\n item_type: params.after.metadata.type,\n before: params.before,\n after: params.after,\n changed_fields: [\"restored\"],\n })),\n ...(await runActiveOnWriteHooks({\n path: params.historyPath,\n scope: \"project\",\n op: \"restore:history\",\n item_id: params.after.metadata.id,\n item_type: params.after.metadata.type,\n before: params.before,\n after: params.after,\n changed_fields: [\"restored\"],\n })),\n ];\n}\n\n/** Implements run restore for the public runtime surface of this module. */\nexport async function runRestore(\n id: string,\n target: string,\n options: RestoreCommandOptions,\n global: GlobalOptions,\n): Promise<RestoreResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\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 const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const subject = await resolveRestoreSubject(\n pmRoot,\n id,\n settings,\n typeRegistry.type_to_folder,\n );\n const resolvedId = subject.id;\n const historyRawBeforeLock = await readFileIfExists(subject.historyPath);\n const history = await readHistoryEntries(subject.historyPath, resolvedId);\n if (history.length === 0) {\n throw new PmCliError(\n `No history exists for ${resolvedId}; restore is unavailable.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n\n const resolvedTarget = ensureReplayTarget(target, history);\n const replayDocument = ensureMaterializedRestoreTarget(\n replayToTarget(history, resolvedTarget.historyIndex),\n resolvedTarget,\n );\n const restoredDocument = replayToCanonicalItemDocument(replayDocument, {\n schema: settings.schema,\n });\n\n if (restoredDocument.metadata.id !== resolvedId) {\n throw new PmCliError(\n `Restore target resolved to item ${restoredDocument.metadata.id}, expected ${resolvedId}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const loadedItemBeforeLock = subject.located\n ? await readLocatedItem(subject.located, { schema: settings.schema })\n : null;\n const currentItemRawBeforeLock = loadedItemBeforeLock?.raw ?? null;\n\n const author = resolveAuthor(options.author, settings.author_default);\n const releaseLock = await acquireLock(\n pmRoot,\n resolvedId,\n settings.locks.ttl_seconds,\n author,\n Boolean(options.force),\n settings.governance.force_required_for_stale_lock,\n settings.locks.wait_ms,\n );\n\n try {\n const { loadedItemUnderLock, existingItemPath } =\n await loadRestoreStateUnderLock({\n pmRoot,\n resolvedId,\n subject,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n historyRawBeforeLock,\n currentItemRawBeforeLock,\n });\n const itemFormat = \"toon\";\n const currentState = resolveRestoreCurrentState(\n loadedItemUnderLock,\n history,\n );\n const ownershipWarnings = collectRestoreOwnershipWarnings({\n document: currentState.document,\n author,\n force: options.force,\n enforcement: settings.governance.ownership_enforcement,\n resolvedId,\n });\n\n const serializedRestore = serializeItemDocument(restoredDocument, {\n format: itemFormat,\n schema: settings.schema,\n });\n /* c8 ignore next -- restored item path typing is exercised in restore integration workflows. */\n const restoredItemPath = getItemPath(\n pmRoot,\n restoredDocument.metadata.type,\n resolvedId,\n itemFormat,\n typeRegistry.type_to_folder,\n );\n await writeFileAtomic(restoredItemPath, serializedRestore);\n if (existingItemPath && restoredItemPath !== existingItemPath) {\n await fs.rm(existingItemPath);\n }\n\n const historyEntry = createHistoryEntry({\n nowIso: nowIso(),\n author,\n op: \"restore\",\n before: currentState.document,\n after: restoredDocument,\n message: options.message,\n });\n\n try {\n await appendHistoryEntry(subject.historyPath, historyEntry);\n } catch (error: unknown) {\n await restorePreviousItemAfterHistoryFailure({\n existingItemPath,\n resolvedOriginalRaw: currentState.originalRaw,\n restoredItemPath,\n });\n throw error;\n }\n const restoreChangedFields = changedFields(\n currentState.document,\n restoredDocument,\n );\n const hookWarnings = await runRestoreWriteHooks({\n restoredItemPath,\n historyPath: subject.historyPath,\n before: currentState.document,\n after: restoredDocument,\n });\n recordAfterCommandAffectedItem({\n id: restoredDocument.metadata.id,\n op: \"restore\",\n item_type: restoredDocument.metadata.type,\n previous_status: currentState.document.metadata.status,\n status: restoredDocument.metadata.status,\n previous: projectAfterCommandItemSnapshot(\n currentState.document.metadata,\n restoreChangedFields,\n ),\n current: projectAfterCommandItemSnapshot(\n restoredDocument.metadata,\n restoreChangedFields,\n ),\n changed_fields: restoreChangedFields,\n });\n\n const targetEntry = history[resolvedTarget.historyIndex];\n return {\n item: restoredDocument.metadata,\n restored_from: {\n kind: resolvedTarget.kind,\n target: resolvedTarget.raw,\n history_index: resolvedTarget.historyIndex + 1,\n entry_ts: targetEntry.ts,\n entry_op: targetEntry.op,\n },\n changed_fields: restoreChangedFields,\n warnings: [\n ...subject.historyPolicyWarnings,\n ...ownershipWarnings,\n ...hookWarnings,\n ],\n };\n } finally {\n await releaseLock();\n }\n}\n\n/** Public contract for test only restore command, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyRestoreCommand = {\n applyHistoryPatch,\n changedFields,\n ensureMaterializedRestoreTarget,\n ensureReplayTarget,\n extractPatchFailureContext,\n replayCurrentDocument,\n replayToTarget,\n resolveRestoreSubject,\n};\n"],"names":[],"mappings":"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","debugId":"f3d599b5-bd0c-5d35-b8be-29098c6165a6"}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../cli/commands/restore.ts"],"sourcesContent":["/**\n * @module cli/commands/restore\n *\n * Implements the pm restore command surface and its agent-facing runtime behavior.\n */\nimport jsonPatch from \"fast-json-patch\";\nimport fs from \"node:fs/promises\";\nimport {\n pathExists,\n readFileIfExists,\n writeFileAtomic,\n} from \"../../core/fs/fs-utils.js\";\nimport {\n appendHistoryEntry,\n createHistoryEntry,\n} from \"../../core/history/history.js\";\nimport {\n replayToCanonicalItemDocument,\n replayToItemDocument,\n toReplayDocument,\n} from \"../../core/history/replay.js\";\nimport {\n applyHistoryPatch,\n ensureMaterializedHistoryTarget as ensureMaterializedRestoreTarget,\n extractPatchFailureContext,\n readHistoryEntries,\n replayHistoryToTarget as replayToTarget,\n resolveHistoryTarget,\n} from \"../../sdk/history-read.js\";\nimport { enforceHistoryStreamPolicyForItem } from \"../../core/history/history-stream-policy.js\";\nimport { normalizeItemId, normalizeRawItemId } from \"../../core/item/id.js\";\nimport {\n canonicalDocument,\n serializeItemDocument,\n} from \"../../core/item/item-format.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { acquireLock } from \"../../core/lock/lock.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport {\n getActiveExtensionRegistrations,\n projectAfterCommandItemSnapshot,\n recordAfterCommandAffectedItem,\n runActiveOnWriteHooks,\n} from \"../../core/extensions/index.js\";\nimport { locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport {\n getHistoryPath,\n getItemPath,\n getSettingsPath,\n resolvePmRoot,\n} from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport type {\n HistoryEntry,\n HistoryPatchOp,\n ItemDocument,\n ItemMetadata,\n} from \"../../types/index.js\";\n\ninterface ResolvedRestoreSubject {\n id: string;\n historyPath: string;\n located: Awaited<ReturnType<typeof locateItem>>;\n historyPolicyWarnings: string[];\n}\n\ninterface RestoreCurrentState {\n document: ItemDocument;\n originalRaw: string | null;\n}\n\n/** Documents the restore command options payload exchanged by command, SDK, and package integrations. */\nexport interface RestoreCommandOptions {\n /** Value that configures or reports author for this contract. */\n author?: string;\n /** Human-readable explanation suitable for logs and agent-facing output. */\n message?: string;\n /** Value that configures or reports force for this contract. */\n force?: boolean;\n}\n\n/** Documents the restore result payload exchanged by command, SDK, and package integrations. */\nexport interface RestoreResult {\n /** Value that configures or reports item for this contract. */\n item: ItemMetadata;\n /** Value that configures or reports restored from for this contract. */\n restored_from: {\n kind: \"version\" | \"timestamp\";\n target: string;\n history_index: number;\n entry_ts: string;\n entry_op: string;\n };\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}\n\n/** Resolve restore targets with the command's established wording and at-or-before timestamp semantics. */\nfunction ensureReplayTarget(target: string, history: readonly HistoryEntry[]) {\n return resolveHistoryTarget(target, history, {\n errorSubject: \"restore\",\n allowFutureTimestamp: true,\n });\n}\n\nfunction replayCurrentDocument(history: HistoryEntry[]): ItemDocument {\n const currentReplay = replayToTarget(history, history.length - 1);\n if (Object.keys(currentReplay.metadata).length === 0) {\n return {\n metadata: {} as ItemMetadata,\n body: currentReplay.body,\n };\n }\n return canonicalDocument(replayToItemDocument(currentReplay));\n}\n\nasync function resolveRestoreSubject(\n pmRoot: string,\n id: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n typeToFolder: Record<string, string>,\n): Promise<ResolvedRestoreSubject> {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeToFolder,\n );\n if (located) {\n const historyPath = getHistoryPath(pmRoot, located.id);\n const historyPolicy = await enforceHistoryStreamPolicyForItem({\n pmRoot,\n settings,\n itemId: located.id,\n commandLabel: \"restore\",\n });\n return {\n id: located.id,\n historyPath,\n located,\n historyPolicyWarnings: historyPolicy.warnings,\n };\n }\n\n const normalizedId = normalizeItemId(id, settings.id_prefix);\n const rawNormalizedId = normalizeRawItemId(id);\n /* c8 ignore start -- raw-id fallback is covered by normalize-item-id utility tests. */\n const candidateIds =\n normalizedId === rawNormalizedId\n ? [normalizedId]\n : [normalizedId, rawNormalizedId];\n /* c8 ignore stop */\n for (const candidateId of candidateIds) {\n const historyPath = getHistoryPath(pmRoot, candidateId);\n if (await pathExists(historyPath)) {\n return {\n id: candidateId,\n historyPath,\n located: null,\n historyPolicyWarnings: [],\n };\n }\n }\n\n throw new PmCliError(`Item ${id} not found`, EXIT_CODE.NOT_FOUND);\n}\n\nfunction changedFields(\n beforeDocument: ItemDocument,\n afterDocument: ItemDocument,\n): string[] {\n const beforeReplay = toReplayDocument(beforeDocument);\n const afterReplay = toReplayDocument(afterDocument);\n const patch = jsonPatch.compare(\n beforeReplay,\n afterReplay,\n ) as HistoryPatchOp[];\n const fields = new Set<string>();\n\n for (const op of patch) {\n if (op.path === \"/body\" || op.path.startsWith(\"/body/\")) {\n fields.add(\"body\");\n continue;\n }\n const segment = op.path\n .replace(/^\\/(?:metadata|front_matter)\\/?/, \"\")\n .split(\"/\")[0];\n fields.add(segment.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\"));\n }\n\n return Array.from(fields).sort((a, b) => a.localeCompare(b));\n}\n\nasync function loadRestoreStateUnderLock(params: {\n pmRoot: string;\n resolvedId: string;\n subject: ResolvedRestoreSubject;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeToFolder: Record<string, string>;\n historyRawBeforeLock: string | null;\n currentItemRawBeforeLock: string | null;\n}): Promise<{\n loadedItemUnderLock: Awaited<ReturnType<typeof readLocatedItem>> | null;\n existingItemPath: string | null;\n}> {\n const historyRawUnderLock = await readFileIfExists(\n params.subject.historyPath,\n );\n if (historyRawUnderLock !== params.historyRawBeforeLock) {\n throw new PmCliError(\n `History for ${params.resolvedId} changed while waiting for lock; retry restore.`,\n EXIT_CODE.CONFLICT,\n );\n }\n const locatedUnderLock = await locateItem(\n params.pmRoot,\n params.resolvedId,\n params.settings.id_prefix,\n params.settings.item_format,\n params.typeToFolder,\n );\n const loadedItemUnderLock = locatedUnderLock\n ? await readLocatedItem(locatedUnderLock, {\n schema: params.settings.schema,\n })\n : null;\n if ((loadedItemUnderLock?.raw ?? null) !== params.currentItemRawBeforeLock) {\n throw new PmCliError(\n `Item ${params.resolvedId} changed while waiting for lock; retry restore.`,\n EXIT_CODE.CONFLICT,\n );\n }\n return {\n loadedItemUnderLock,\n existingItemPath: locatedUnderLock?.itemPath ?? null,\n };\n}\n\nfunction resolveRestoreCurrentState(\n loadedItemUnderLock: Awaited<ReturnType<typeof readLocatedItem>> | null,\n history: HistoryEntry[],\n): RestoreCurrentState {\n if (loadedItemUnderLock) {\n return {\n document: loadedItemUnderLock.document,\n originalRaw: loadedItemUnderLock.raw,\n };\n }\n return { document: replayCurrentDocument(history), originalRaw: null };\n}\n\nfunction collectRestoreOwnershipWarnings(params: {\n document: ItemDocument;\n author: string;\n force: boolean | undefined;\n enforcement: \"strict\" | \"warn\" | \"none\";\n resolvedId: string;\n}): string[] {\n const assigned = params.document.metadata.assignee?.trim();\n const hasOwnershipConflict =\n assigned && assigned !== params.author && !params.force;\n if (!hasOwnershipConflict) {\n return [];\n }\n if (params.enforcement === \"strict\") {\n throw new PmCliError(\n `Item ${params.resolvedId} is assigned to ${assigned}. Use --force to override.`,\n EXIT_CODE.CONFLICT,\n );\n }\n return params.enforcement === \"warn\"\n ? [`ownership_warning:assignee_conflict:${params.resolvedId}:${assigned}`]\n : [];\n}\n\nasync function restorePreviousItemAfterHistoryFailure(params: {\n existingItemPath: string | null;\n resolvedOriginalRaw: string | null;\n restoredItemPath: string;\n}): Promise<void> {\n if (\n params.existingItemPath &&\n params.resolvedOriginalRaw !== null &&\n params.restoredItemPath !== params.existingItemPath\n ) {\n await writeFileAtomic(params.existingItemPath, params.resolvedOriginalRaw);\n await fs.rm(params.restoredItemPath, { force: true });\n return;\n }\n if (params.existingItemPath && params.resolvedOriginalRaw !== null) {\n await writeFileAtomic(params.existingItemPath, params.resolvedOriginalRaw);\n return;\n }\n await fs.rm(params.restoredItemPath, { force: true });\n}\n\nasync function runRestoreWriteHooks(params: {\n restoredItemPath: string;\n historyPath: string;\n before: ItemDocument;\n after: ItemDocument;\n}): Promise<string[]> {\n return [\n ...(await runActiveOnWriteHooks({\n path: params.restoredItemPath,\n scope: \"project\",\n op: \"restore\",\n item_id: params.after.metadata.id,\n item_type: params.after.metadata.type,\n before: params.before,\n after: params.after,\n changed_fields: [\"restored\"],\n })),\n ...(await runActiveOnWriteHooks({\n path: params.historyPath,\n scope: \"project\",\n op: \"restore:history\",\n item_id: params.after.metadata.id,\n item_type: params.after.metadata.type,\n before: params.before,\n after: params.after,\n changed_fields: [\"restored\"],\n })),\n ];\n}\n\n/** Implements run restore for the public runtime surface of this module. */\nexport async function runRestore(\n id: string,\n target: string,\n options: RestoreCommandOptions,\n global: GlobalOptions,\n): Promise<RestoreResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\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 const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(\n settings,\n getActiveExtensionRegistrations(),\n );\n const subject = await resolveRestoreSubject(\n pmRoot,\n id,\n settings,\n typeRegistry.type_to_folder,\n );\n const resolvedId = subject.id;\n const historyRawBeforeLock = await readFileIfExists(subject.historyPath);\n const history = await readHistoryEntries(subject.historyPath, resolvedId);\n if (history.length === 0) {\n throw new PmCliError(\n `No history exists for ${resolvedId}; restore is unavailable.`,\n EXIT_CODE.NOT_FOUND,\n );\n }\n\n const resolvedTarget = ensureReplayTarget(target, history);\n const replayDocument = ensureMaterializedRestoreTarget(\n replayToTarget(history, resolvedTarget.historyIndex),\n resolvedTarget,\n );\n const restoredDocument = replayToCanonicalItemDocument(replayDocument, {\n schema: settings.schema,\n });\n\n if (restoredDocument.metadata.id !== resolvedId) {\n throw new PmCliError(\n `Restore target resolved to item ${restoredDocument.metadata.id}, expected ${resolvedId}.`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n const loadedItemBeforeLock = subject.located\n ? await readLocatedItem(subject.located, { schema: settings.schema })\n : null;\n const currentItemRawBeforeLock = loadedItemBeforeLock?.raw ?? null;\n\n const author = resolveAuthor(options.author, settings.author_default);\n const releaseLock = await acquireLock(\n pmRoot,\n resolvedId,\n settings.locks.ttl_seconds,\n author,\n Boolean(options.force),\n settings.governance.force_required_for_stale_lock,\n settings.locks.wait_ms,\n );\n\n try {\n const { loadedItemUnderLock, existingItemPath } =\n await loadRestoreStateUnderLock({\n pmRoot,\n resolvedId,\n subject,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n historyRawBeforeLock,\n currentItemRawBeforeLock,\n });\n const itemFormat = \"toon\";\n const currentState = resolveRestoreCurrentState(\n loadedItemUnderLock,\n history,\n );\n const ownershipWarnings = collectRestoreOwnershipWarnings({\n document: currentState.document,\n author,\n force: options.force,\n enforcement: settings.governance.ownership_enforcement,\n resolvedId,\n });\n\n const serializedRestore = serializeItemDocument(restoredDocument, {\n format: itemFormat,\n schema: settings.schema,\n });\n /* c8 ignore next -- restored item path typing is exercised in restore integration workflows. */\n const restoredItemPath = getItemPath(\n pmRoot,\n restoredDocument.metadata.type,\n resolvedId,\n itemFormat,\n typeRegistry.type_to_folder,\n );\n await writeFileAtomic(restoredItemPath, serializedRestore);\n if (existingItemPath && restoredItemPath !== existingItemPath) {\n await fs.rm(existingItemPath);\n }\n\n const historyEntry = createHistoryEntry({\n nowIso: nowIso(),\n author,\n op: \"restore\",\n before: currentState.document,\n after: restoredDocument,\n message: options.message,\n });\n\n try {\n await appendHistoryEntry(subject.historyPath, historyEntry);\n } catch (error: unknown) {\n await restorePreviousItemAfterHistoryFailure({\n existingItemPath,\n resolvedOriginalRaw: currentState.originalRaw,\n restoredItemPath,\n });\n throw error;\n }\n const restoreChangedFields = changedFields(\n currentState.document,\n restoredDocument,\n );\n const hookWarnings = await runRestoreWriteHooks({\n restoredItemPath,\n historyPath: subject.historyPath,\n before: currentState.document,\n after: restoredDocument,\n });\n recordAfterCommandAffectedItem({\n id: restoredDocument.metadata.id,\n op: \"restore\",\n item_type: restoredDocument.metadata.type,\n previous_status: currentState.document.metadata.status,\n status: restoredDocument.metadata.status,\n previous: projectAfterCommandItemSnapshot(\n currentState.document.metadata,\n restoreChangedFields,\n ),\n current: projectAfterCommandItemSnapshot(\n restoredDocument.metadata,\n restoreChangedFields,\n ),\n changed_fields: restoreChangedFields,\n });\n\n const targetEntry = history[resolvedTarget.historyIndex];\n return {\n item: restoredDocument.metadata,\n restored_from: {\n kind: resolvedTarget.kind,\n target: resolvedTarget.raw,\n history_index: resolvedTarget.historyIndex + 1,\n entry_ts: targetEntry.ts,\n entry_op: targetEntry.op,\n },\n changed_fields: restoreChangedFields,\n warnings: [\n ...subject.historyPolicyWarnings,\n ...ownershipWarnings,\n ...hookWarnings,\n ],\n };\n } finally {\n await releaseLock();\n }\n}\n\n/** Public contract for test only restore command, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyRestoreCommand = {\n applyHistoryPatch,\n changedFields,\n ensureMaterializedRestoreTarget,\n ensureReplayTarget,\n extractPatchFailureContext,\n replayCurrentDocument,\n replayToTarget,\n resolveRestoreSubject,\n};\n"],"names":[],"mappings":"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","debugId":"4ab4b144-7e4f-57e1-a531-93400c905393"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="31d14e46-14c5-5aa7-9780-c47fb1333907")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
runUpdateMany
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GTK4DTEW.js";
|
|
6
6
|
import {
|
|
7
7
|
runConfig,
|
|
8
8
|
runUpgrade
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-CPX275C6.js";
|
|
10
10
|
import {
|
|
11
11
|
runAggregate,
|
|
12
12
|
runGet,
|
|
13
13
|
runGraph,
|
|
14
14
|
runSearch
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-NUF7ROFH.js";
|
|
16
16
|
import {
|
|
17
17
|
resolveStartTaskInProgressStatus,
|
|
18
18
|
runClaim,
|
|
@@ -26,21 +26,21 @@ import {
|
|
|
26
26
|
runTest,
|
|
27
27
|
runTestAll,
|
|
28
28
|
runValidate
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-4QSQ6XDK.js";
|
|
30
30
|
import {
|
|
31
31
|
runUpdate
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-XJTABV3X.js";
|
|
33
33
|
import {
|
|
34
34
|
SCAFFOLD_CAPABILITIES,
|
|
35
35
|
runExtension,
|
|
36
36
|
runInit
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-JXCW2TI2.js";
|
|
38
38
|
import {
|
|
39
39
|
runActivity,
|
|
40
40
|
runContext,
|
|
41
41
|
runHistory,
|
|
42
42
|
runNext
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-JFD5LPMI.js";
|
|
44
44
|
import {
|
|
45
45
|
REINDEX_LOCK_ID,
|
|
46
46
|
buildSearchCorpus,
|
|
@@ -63,32 +63,32 @@ import {
|
|
|
63
63
|
resolveSettingsWithSemanticRuntimeDefaults,
|
|
64
64
|
resolveVectorStores,
|
|
65
65
|
writeVectorizationStatusLedger
|
|
66
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-PQSEQD6E.js";
|
|
67
67
|
import {
|
|
68
68
|
assertHistoryCompactTarget,
|
|
69
69
|
runHistoryCompact,
|
|
70
70
|
runHistoryCompactBulk
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-ABWCF646.js";
|
|
72
72
|
import {
|
|
73
73
|
assertHistoryRepairTarget,
|
|
74
74
|
runHistoryRepair,
|
|
75
75
|
runHistoryRepairAll
|
|
76
|
-
} from "./chunk-
|
|
76
|
+
} from "./chunk-QOOTOD3W.js";
|
|
77
77
|
import {
|
|
78
78
|
runLearnings
|
|
79
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-7656MAUL.js";
|
|
80
80
|
import {
|
|
81
81
|
runNotes
|
|
82
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-QIH77CAG.js";
|
|
83
83
|
import {
|
|
84
84
|
runPlan
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-KBLZ3AA5.js";
|
|
86
86
|
import {
|
|
87
87
|
runProfileApply,
|
|
88
88
|
runProfileLint,
|
|
89
89
|
runProfileList,
|
|
90
90
|
runProfileShow
|
|
91
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-MATHDCGG.js";
|
|
92
92
|
import {
|
|
93
93
|
ACTIVITY_FLAG_CONTRACTS,
|
|
94
94
|
AGGREGATE_FLAG_CONTRACTS,
|
|
@@ -121,7 +121,7 @@ import {
|
|
|
121
121
|
UPDATE_FLAG_CONTRACTS,
|
|
122
122
|
UPDATE_MANY_FLAG_CONTRACTS,
|
|
123
123
|
toCompletionFlagString
|
|
124
|
-
} from "./chunk-
|
|
124
|
+
} from "./chunk-FSE2IKJQ.js";
|
|
125
125
|
import {
|
|
126
126
|
runSchemaAddField,
|
|
127
127
|
runSchemaAddStatus,
|
|
@@ -136,16 +136,16 @@ import {
|
|
|
136
136
|
runSchemaShow,
|
|
137
137
|
runSchemaShowField,
|
|
138
138
|
runSchemaShowStatus
|
|
139
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-ICDAQ4TD.js";
|
|
140
140
|
import {
|
|
141
141
|
runComments
|
|
142
|
-
} from "./chunk-
|
|
142
|
+
} from "./chunk-EWJWSNRU.js";
|
|
143
143
|
import {
|
|
144
144
|
runCreate
|
|
145
|
-
} from "./chunk-
|
|
145
|
+
} from "./chunk-MWQ2HC2A.js";
|
|
146
146
|
import {
|
|
147
147
|
projectMutationResult
|
|
148
|
-
} from "./chunk-
|
|
148
|
+
} from "./chunk-VJQG4BIM.js";
|
|
149
149
|
import {
|
|
150
150
|
runCopy
|
|
151
151
|
} from "./chunk-BKIAH72N.js";
|
|
@@ -157,27 +157,27 @@ import {
|
|
|
157
157
|
} from "./chunk-JGUKMMRS.js";
|
|
158
158
|
import {
|
|
159
159
|
runDeps
|
|
160
|
-
} from "./chunk-
|
|
160
|
+
} from "./chunk-OG5DVFMA.js";
|
|
161
161
|
import {
|
|
162
162
|
runDocs
|
|
163
|
-
} from "./chunk-
|
|
163
|
+
} from "./chunk-OY7DMU5P.js";
|
|
164
164
|
import {
|
|
165
165
|
runFiles,
|
|
166
166
|
runFilesDiscover
|
|
167
|
-
} from "./chunk-
|
|
167
|
+
} from "./chunk-FPBMLYPI.js";
|
|
168
168
|
import {
|
|
169
169
|
resolveRegisteredSearchProvider,
|
|
170
170
|
resolveRegisteredVectorStoreAdapter
|
|
171
171
|
} from "./chunk-M3JN6FPW.js";
|
|
172
172
|
import {
|
|
173
173
|
runAppend
|
|
174
|
-
} from "./chunk-
|
|
174
|
+
} from "./chunk-KH44WBAT.js";
|
|
175
175
|
import {
|
|
176
176
|
parseTags
|
|
177
|
-
} from "./chunk-
|
|
177
|
+
} from "./chunk-AELMUANP.js";
|
|
178
178
|
import {
|
|
179
179
|
runCloseMany
|
|
180
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-UCBDQI5E.js";
|
|
181
181
|
import {
|
|
182
182
|
runList
|
|
183
183
|
} from "./chunk-7DOJC3HS.js";
|
|
@@ -191,13 +191,13 @@ import {
|
|
|
191
191
|
} from "./chunk-OWXOPDHD.js";
|
|
192
192
|
import {
|
|
193
193
|
runRestore
|
|
194
|
-
} from "./chunk-
|
|
194
|
+
} from "./chunk-R3P6FZJW.js";
|
|
195
195
|
import {
|
|
196
196
|
getItemAt
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-Z7VWXXJM.js";
|
|
198
198
|
import {
|
|
199
199
|
runHistoryRedact
|
|
200
|
-
} from "./chunk-
|
|
200
|
+
} from "./chunk-PFNHX655.js";
|
|
201
201
|
import {
|
|
202
202
|
acquireLock,
|
|
203
203
|
appendHistoryEntry,
|
|
@@ -253,6 +253,7 @@ import {
|
|
|
253
253
|
} from "./chunk-HYW67VJ5.js";
|
|
254
254
|
|
|
255
255
|
// dist/sdk/runtime.js
|
|
256
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
256
257
|
import path5 from "node:path";
|
|
257
258
|
|
|
258
259
|
// dist/core/output/query-summary.js
|
|
@@ -1329,6 +1330,7 @@ function readGraphBoundOption(value) {
|
|
|
1329
1330
|
function graphOptionsFromFlat(options) {
|
|
1330
1331
|
const kind = readGraphIdListOption(options.kind);
|
|
1331
1332
|
const exemptIsolate = readGraphIdListOption(options.exemptIsolate);
|
|
1333
|
+
const exemptIsolateType = readGraphIdListOption(options.exemptIsolateType);
|
|
1332
1334
|
return {
|
|
1333
1335
|
...kind === void 0 ? {} : { kind },
|
|
1334
1336
|
maxDepth: readGraphBoundOption(options.maxDepth),
|
|
@@ -1338,6 +1340,10 @@ function graphOptionsFromFlat(options) {
|
|
|
1338
1340
|
maxPaths: readGraphBoundOption(options.maxPaths),
|
|
1339
1341
|
sample: readGraphBoundOption(options.sample),
|
|
1340
1342
|
...exemptIsolate === void 0 ? {} : { exemptIsolate },
|
|
1343
|
+
...exemptIsolateType === void 0 ? {} : { exemptIsolateType },
|
|
1344
|
+
saveBaseline: options.saveBaseline === true,
|
|
1345
|
+
rebuild: options.rebuild === true,
|
|
1346
|
+
clear: options.clear === true,
|
|
1341
1347
|
summary: options.summary === true
|
|
1342
1348
|
};
|
|
1343
1349
|
}
|
|
@@ -3117,7 +3123,7 @@ function generateBashScript(itemTypes = [], tags = [], eagerTagExpansion = false
|
|
|
3117
3123
|
` COMPREPLY=(${compgen(DEPS_FLAGS)})`,
|
|
3118
3124
|
" ;;",
|
|
3119
3125
|
" graph)",
|
|
3120
|
-
` COMPREPLY=(${compgen(`ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan ${GRAPH_FLAGS}`)})`,
|
|
3126
|
+
` COMPREPLY=(${compgen(`ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators slack centrality articulation plan index ${GRAPH_FLAGS}`)})`,
|
|
3121
3127
|
" ;;",
|
|
3122
3128
|
" test)",
|
|
3123
3129
|
` COMPREPLY=(${compgen("--add --add-json --remove --list --run --match --only-index --only-last --background --timeout --progress --env-set --env-clear --shared-host-safe --pm-context --override-linked-pm-context --fail-on-context-mismatch --fail-on-skipped --fail-on-empty-test-run --require-assertions-for-pm --check-context --auto-pm-context --author --message --force --json --quiet --no-changed-fields --pm-path --path --no-extensions --no-pager --profile --help")})`,
|
|
@@ -3839,7 +3845,7 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
|
|
|
3839
3845
|
;;
|
|
3840
3846
|
graph)
|
|
3841
3847
|
_arguments \\
|
|
3842
|
-
'1:subcommand:(ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan)' \\
|
|
3848
|
+
'1:subcommand:(ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators slack centrality articulation plan index)' \\
|
|
3843
3849
|
'--kind[Restrict traversal to registered relationship kinds]:kind' \\
|
|
3844
3850
|
'--max-depth[Maximum traversal depth]:depth' \\
|
|
3845
3851
|
'--limit[Maximum returned rows per bounded collection]:number' \\
|
|
@@ -3848,6 +3854,10 @@ ${zshSearchRuntimeFieldFlags} '--json[Output JSON]' \\
|
|
|
3848
3854
|
'--max-paths[Maximum enumerated paths]:number' \\
|
|
3849
3855
|
'--sample[Maximum evidence sample entries per audit finding]:number' \\
|
|
3850
3856
|
'--exempt-isolate[Item ids treated as explicitly valid isolates]:id' \\
|
|
3857
|
+
'--exempt-isolate-type[Item types whose active isolates are policy-valid]:type' \\
|
|
3858
|
+
'--save-baseline[Persist the audit census as the comparison baseline]' \\
|
|
3859
|
+
'--rebuild[Rebuild and warm the durable graph index]' \\
|
|
3860
|
+
'--clear[Delete the durable graph index]' \\
|
|
3851
3861
|
'--summary[Return counts-first envelopes without row collections]' \\
|
|
3852
3862
|
'--json[Output JSON]' \\
|
|
3853
3863
|
'--quiet[Suppress stdout]'
|
|
@@ -4726,7 +4736,7 @@ complete -c pm -n '__fish_seen_subcommand_from deps' -l token-budget -d 'Maximum
|
|
|
4726
4736
|
complete -c pm -n '__fish_seen_subcommand_from deps' -l cursor -d 'Continue an equivalent context query' -r
|
|
4727
4737
|
complete -c pm -n '__fish_seen_subcommand_from deps' -l direction -d 'Context traversal direction' -r -a 'outgoing incoming both'
|
|
4728
4738
|
complete -c pm -n '__fish_seen_subcommand_from deps' -l kind -d 'Restrict context traversal to relationship kinds' -r
|
|
4729
|
-
complete -c pm -n '__fish_seen_subcommand_from graph' -a 'ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators plan' -d 'Graph query'
|
|
4739
|
+
complete -c pm -n '__fish_seen_subcommand_from graph' -a 'ancestors descendants predecessors successors paths impact analyze audit communities redundancy dominators slack centrality articulation plan index' -d 'Graph query'
|
|
4730
4740
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l kind -d 'Restrict traversal to registered relationship kinds' -r
|
|
4731
4741
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l max-depth -d 'Maximum traversal depth' -r
|
|
4732
4742
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l limit -d 'Maximum returned rows per bounded collection' -r
|
|
@@ -4735,6 +4745,10 @@ complete -c pm -n '__fish_seen_subcommand_from graph' -l direction -d 'Edge orie
|
|
|
4735
4745
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l max-paths -d 'Maximum enumerated paths' -r
|
|
4736
4746
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l sample -d 'Maximum evidence sample entries per audit finding' -r
|
|
4737
4747
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l exempt-isolate -d 'Item ids treated as explicitly valid isolates' -r
|
|
4748
|
+
complete -c pm -n '__fish_seen_subcommand_from graph' -l exempt-isolate-type -d 'Item types whose active isolates are policy-valid' -r
|
|
4749
|
+
complete -c pm -n '__fish_seen_subcommand_from graph' -l save-baseline -d 'Persist the audit census as the comparison baseline'
|
|
4750
|
+
complete -c pm -n '__fish_seen_subcommand_from graph' -l rebuild -d 'Rebuild and warm the durable graph index'
|
|
4751
|
+
complete -c pm -n '__fish_seen_subcommand_from graph' -l clear -d 'Delete the durable graph index'
|
|
4738
4752
|
complete -c pm -n '__fish_seen_subcommand_from graph' -l summary -d 'Return counts-first envelopes without row collections'
|
|
4739
4753
|
|
|
4740
4754
|
# comments / notes / learnings flags
|
|
@@ -6518,6 +6532,7 @@ function readRequiredString(args, key) {
|
|
|
6518
6532
|
return value;
|
|
6519
6533
|
}
|
|
6520
6534
|
var extensionActivationQueue = createSerialQueue();
|
|
6535
|
+
var activeExtensionScope = new AsyncLocalStorage();
|
|
6521
6536
|
function resetActiveExtensionRegistries() {
|
|
6522
6537
|
setActiveExtensionHooks(createEmptyExtensionHookRegistry());
|
|
6523
6538
|
setActiveExtensionCommands(createEmptyExtensionCommandRegistry());
|
|
@@ -6530,6 +6545,11 @@ function resetActiveExtensionRegistries() {
|
|
|
6530
6545
|
async function withActiveExtensions(global, explicitCwd, resolutionCwd, run) {
|
|
6531
6546
|
return extensionActivationQueue.enqueue(async () => explicitCwd === void 0 ? await withActiveExtensionsExclusively(global, resolutionCwd, run) : await withCwd(explicitCwd, () => withActiveExtensionsExclusively(global, resolutionCwd, run)));
|
|
6532
6547
|
}
|
|
6548
|
+
async function runWithActiveExtensions(options, run) {
|
|
6549
|
+
const explicitCwd = options.cwd;
|
|
6550
|
+
const resolutionCwd = explicitCwd ?? process.cwd();
|
|
6551
|
+
return withActiveExtensions(actionGlobalOptions({ path: options.path, noExtensions: options.noExtensions }), explicitCwd, resolutionCwd, () => activeExtensionScope.run(true, run));
|
|
6552
|
+
}
|
|
6533
6553
|
async function withActiveExtensionsExclusively(global, cwd, run) {
|
|
6534
6554
|
if (global.noExtensions) {
|
|
6535
6555
|
resetActiveExtensionRegistries();
|
|
@@ -6766,7 +6786,7 @@ async function runAction(args) {
|
|
|
6766
6786
|
const explicitCwd = readRuntimeString(resolved.args, "cwd");
|
|
6767
6787
|
const resolutionCwd = explicitCwd ?? process.cwd();
|
|
6768
6788
|
try {
|
|
6769
|
-
if (args[ACTIVE_EXTENSION_HOST_CONTEXT] === true) {
|
|
6789
|
+
if (args[ACTIVE_EXTENSION_HOST_CONTEXT] === true || activeExtensionScope.getStore() === true) {
|
|
6770
6790
|
return await dispatchAction(resolved.action, resolved.args, global, null);
|
|
6771
6791
|
}
|
|
6772
6792
|
return await withActiveExtensions(global, explicitCwd, resolutionCwd, (activeExtensions) => dispatchAction(resolved.action, resolved.args, global, activeExtensions));
|
|
@@ -7344,8 +7364,9 @@ export {
|
|
|
7344
7364
|
getWorkspaceContracts,
|
|
7345
7365
|
getContracts,
|
|
7346
7366
|
readRequiredString,
|
|
7367
|
+
runWithActiveExtensions,
|
|
7347
7368
|
runAction
|
|
7348
7369
|
};
|
|
7349
|
-
//# sourceMappingURL=chunk-
|
|
7370
|
+
//# sourceMappingURL=chunk-RNPZYNHS.js.map
|
|
7350
7371
|
|
|
7351
|
-
//# debugId=
|
|
7372
|
+
//# debugId=31d14e46-14c5-5aa7-9780-c47fb1333907
|