@unbrained/pm-cli 2026.6.13 → 2026.6.16
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/CHANGELOG.md +84 -0
- package/README.md +1 -1
- package/dist/cli/bootstrap-args.d.ts +29 -0
- package/dist/cli/bootstrap-args.js +11 -4
- package/dist/cli/bootstrap-args.js.map +1 -1
- package/dist/cli/commander-usage.d.ts +12 -0
- package/dist/cli/commander-usage.js +18 -7
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/activity.d.ts +19 -0
- package/dist/cli/commands/activity.js +12 -2
- package/dist/cli/commands/activity.js.map +1 -1
- package/dist/cli/commands/aggregate.d.ts +58 -0
- package/dist/cli/commands/aggregate.js +48 -15
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/annotation-command.d.ts +6 -1
- package/dist/cli/commands/annotation-command.js +72 -2
- package/dist/cli/commands/annotation-command.js.map +1 -1
- package/dist/cli/commands/append.js +4 -3
- package/dist/cli/commands/append.js.map +1 -1
- package/dist/cli/commands/close-many.d.ts +20 -0
- package/dist/cli/commands/close-many.js +14 -23
- package/dist/cli/commands/close-many.js.map +1 -1
- package/dist/cli/commands/close.js +37 -4
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/comments-audit.js +3 -2
- package/dist/cli/commands/comments-audit.js.map +1 -1
- package/dist/cli/commands/comments.d.ts +2 -0
- package/dist/cli/commands/comments.js +49 -23
- package/dist/cli/commands/comments.js.map +1 -1
- package/dist/cli/commands/completion.js +269 -8
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +51 -1
- package/dist/cli/commands/config.js +50 -12
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.d.ts +79 -1
- package/dist/cli/commands/context.js +151 -25
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.d.ts +80 -1
- package/dist/cli/commands/contracts.js +54 -4
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.d.ts +49 -0
- package/dist/cli/commands/create.js +105 -7
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/dedupe-audit.d.ts +33 -0
- package/dist/cli/commands/dedupe-audit.js +18 -14
- package/dist/cli/commands/dedupe-audit.js.map +1 -1
- package/dist/cli/commands/deps.js +7 -4
- package/dist/cli/commands/deps.js.map +1 -1
- package/dist/cli/commands/event-validation-messages.js +3 -3
- package/dist/cli/commands/event-validation-messages.js.map +1 -1
- package/dist/cli/commands/extension/bundled-catalog.d.ts +7 -0
- package/dist/cli/commands/extension/bundled-catalog.js +19 -15
- package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.d.ts +41 -1
- package/dist/cli/commands/extension/install-sources.js +26 -8
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension/shared.d.ts +5 -0
- package/dist/cli/commands/extension/shared.js +9 -3
- package/dist/cli/commands/extension/shared.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +133 -1
- package/dist/cli/commands/extension.js +127 -9
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/files.d.ts +30 -1
- package/dist/cli/commands/files.js +21 -2
- package/dist/cli/commands/files.js.map +1 -1
- package/dist/cli/commands/focus.d.ts +11 -0
- package/dist/cli/commands/focus.js +86 -0
- package/dist/cli/commands/focus.js.map +1 -0
- package/dist/cli/commands/get.d.ts +9 -2
- package/dist/cli/commands/get.js +34 -6
- package/dist/cli/commands/get.js.map +1 -1
- package/dist/cli/commands/guide.d.ts +5 -0
- package/dist/cli/commands/guide.js +6 -3
- package/dist/cli/commands/guide.js.map +1 -1
- package/dist/cli/commands/health.d.ts +109 -0
- package/dist/cli/commands/health.js +87 -35
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history-compact.js +27 -36
- package/dist/cli/commands/history-compact.js.map +1 -1
- package/dist/cli/commands/history-redact.d.ts +46 -0
- package/dist/cli/commands/history-redact.js +99 -67
- package/dist/cli/commands/history-redact.js.map +1 -1
- package/dist/cli/commands/history-repair.js +34 -37
- package/dist/cli/commands/history-repair.js.map +1 -1
- package/dist/cli/commands/history.js +6 -2
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/init-agent-guidance.d.ts +54 -0
- package/dist/cli/commands/init-agent-guidance.js +31 -4
- package/dist/cli/commands/init-agent-guidance.js.map +1 -1
- package/dist/cli/commands/init.d.ts +36 -1
- package/dist/cli/commands/init.js +38 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/learnings.js +4 -3
- package/dist/cli/commands/learnings.js.map +1 -1
- package/dist/cli/commands/linked-test-parsers.d.ts +5 -0
- package/dist/cli/commands/linked-test-parsers.js +5 -2
- package/dist/cli/commands/linked-test-parsers.js.map +1 -1
- package/dist/cli/commands/list-filter-shared.d.ts +8 -0
- package/dist/cli/commands/list-filter-shared.js +70 -0
- package/dist/cli/commands/list-filter-shared.js.map +1 -0
- package/dist/cli/commands/list.d.ts +116 -0
- package/dist/cli/commands/list.js +194 -6
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/normalize.js +16 -2
- package/dist/cli/commands/normalize.js.map +1 -1
- package/dist/cli/commands/notes.js +4 -3
- package/dist/cli/commands/notes.js.map +1 -1
- package/dist/cli/commands/plan.js +3 -2
- package/dist/cli/commands/plan.js.map +1 -1
- package/dist/cli/commands/reindex.d.ts +83 -0
- package/dist/cli/commands/reindex.js +45 -10
- package/dist/cli/commands/reindex.js.map +1 -1
- package/dist/cli/commands/restore.d.ts +40 -1
- package/dist/cli/commands/restore.js +27 -2
- package/dist/cli/commands/restore.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +18 -0
- package/dist/cli/commands/schema.js +30 -3
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +289 -1
- package/dist/cli/commands/search.js +367 -60
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +38 -0
- package/dist/cli/commands/stats.js +38 -10
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/telemetry.js +5 -3
- package/dist/cli/commands/telemetry.js.map +1 -1
- package/dist/cli/commands/templates.d.ts +18 -0
- package/dist/cli/commands/templates.js +9 -2
- package/dist/cli/commands/templates.js.map +1 -1
- package/dist/cli/commands/test-all.d.ts +5 -0
- package/dist/cli/commands/test-all.js +9 -3
- package/dist/cli/commands/test-all.js.map +1 -1
- package/dist/cli/commands/test.d.ts +70 -1
- package/dist/cli/commands/test.js +84 -3
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update-many.d.ts +34 -1
- package/dist/cli/commands/update-many.js +60 -31
- package/dist/cli/commands/update-many.js.map +1 -1
- package/dist/cli/commands/update.d.ts +71 -0
- package/dist/cli/commands/update.js +74 -8
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/upgrade.d.ts +28 -1
- package/dist/cli/commands/upgrade.js +17 -4
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/commands/validate.d.ts +114 -0
- package/dist/cli/commands/validate.js +153 -8
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/error-guidance.d.ts +30 -0
- package/dist/cli/error-guidance.js +41 -6
- package/dist/cli/error-guidance.js.map +1 -1
- package/dist/cli/extension-command-options.js +9 -7
- package/dist/cli/extension-command-options.js.map +1 -1
- package/dist/cli/help-content.d.ts +8 -0
- package/dist/cli/help-content.js +30 -6
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/help-json-payload.d.ts +19 -1
- package/dist/cli/help-json-payload.js +16 -7
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.d.ts +223 -0
- package/dist/cli/main.js +203 -45
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +62 -5
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.d.ts +16 -0
- package/dist/cli/register-mutation.js +210 -40
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.d.ts +8 -0
- package/dist/cli/register-operations.js +33 -11
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli/register-setup.js +9 -6
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +4 -0
- package/dist/cli/registration-helpers.js +124 -38
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-5P2KQCTH.js +18 -0
- package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js → activity-MJGTX4LO.js} +13 -11
- package/dist/cli-bundle/chunks/{aggregate-XEBW22UQ.js → aggregate-MH3GROKB.js} +54 -25
- package/dist/cli-bundle/chunks/aggregate-MH3GROKB.js.map +7 -0
- package/dist/cli-bundle/chunks/{aggregate-IRHJWEKG.js → aggregate-OUGCDFNC.js} +55 -26
- package/dist/cli-bundle/chunks/aggregate-OUGCDFNC.js.map +1 -0
- package/dist/cli-bundle/chunks/{append-N2AWXKZC.js → append-2Q4BPUBW.js} +10 -10
- package/dist/cli-bundle/chunks/{append-N2AWXKZC.js.map → append-2Q4BPUBW.js.map} +2 -2
- package/dist/cli-bundle/chunks/{append-NL67JNJU.js → append-VCRUG2W6.js} +11 -11
- package/dist/cli-bundle/chunks/append-VCRUG2W6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js → chunk-2IUJBMKS.js} +10 -9
- package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js.map → chunk-2IUJBMKS.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js → chunk-2JEGCDYT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js → chunk-3WAULYOY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AGG32LKL.js → chunk-3XOXWOGA.js} +359 -19
- package/dist/cli-bundle/chunks/chunk-3XOXWOGA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XXLMJDUB.js → chunk-4KBK4BA3.js} +13 -15
- package/dist/cli-bundle/chunks/chunk-4KBK4BA3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UCVJP4JL.js → chunk-4VLB4JH2.js} +51 -8
- package/dist/cli-bundle/chunks/chunk-4VLB4JH2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-BVL5KGVA.js → chunk-656HPQPO.js} +27 -12
- package/dist/cli-bundle/chunks/chunk-656HPQPO.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LYNQ3NGI.js → chunk-667XI4UJ.js} +309 -20
- package/dist/cli-bundle/chunks/chunk-667XI4UJ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W6KNFAMZ.js → chunk-6BV7ENQL.js} +9 -8
- package/dist/cli-bundle/chunks/chunk-6BV7ENQL.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-6EFCFPNE.js +35 -0
- package/dist/cli-bundle/chunks/chunk-6EFCFPNE.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7SM7VA5I.js → chunk-6NQXMGYU.js} +19 -8
- package/dist/cli-bundle/chunks/chunk-6NQXMGYU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AAUYXSFF.js → chunk-764O7EUA.js} +223 -50
- package/dist/cli-bundle/chunks/chunk-764O7EUA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js → chunk-7AGIXLNK.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-7EILPFMA.js +404 -0
- package/dist/cli-bundle/chunks/chunk-7EILPFMA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-L6YQONLM.js → chunk-7K2MXFMX.js} +11 -13
- package/dist/cli-bundle/chunks/chunk-7K2MXFMX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HZOX5BYD.js → chunk-7L5VOUYP.js} +6 -17
- package/dist/cli-bundle/chunks/chunk-7L5VOUYP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-7ZGKNHUL.js +61 -0
- package/dist/cli-bundle/chunks/chunk-7ZGKNHUL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TOX7YQ7X.js → chunk-A576QZDL.js} +223 -50
- package/dist/cli-bundle/chunks/chunk-A576QZDL.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RFR2YQGO.js → chunk-AERT7KT3.js} +5 -5
- package/dist/cli-bundle/chunks/chunk-ASM4DVRW.js +58 -0
- package/dist/cli-bundle/chunks/chunk-ASM4DVRW.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SQDKAEKG.js → chunk-B5Q7XC4K.js} +117 -37
- package/dist/cli-bundle/chunks/chunk-B5Q7XC4K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-RHYBR6G7.js → chunk-BJWTFOZM.js} +74 -14
- package/dist/cli-bundle/chunks/chunk-BJWTFOZM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4ZKKZMLH.js → chunk-CBMETQ2U.js} +104 -30
- package/dist/cli-bundle/chunks/chunk-CBMETQ2U.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js → chunk-E6J2PEK6.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js → chunk-F2GC6L3N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-3VULHQNS.js → chunk-F7WSO5UX.js} +7 -18
- package/dist/cli-bundle/chunks/chunk-F7WSO5UX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js → chunk-FTAZLAR7.js} +8 -5
- package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js.map → chunk-FTAZLAR7.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-AUDDXKNX.js → chunk-FXNT5LPX.js} +77 -9
- package/dist/cli-bundle/chunks/chunk-FXNT5LPX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IZHCCG4S.js → chunk-G2YVUY7I.js} +14 -9
- package/dist/cli-bundle/chunks/chunk-G2YVUY7I.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5HSAHRYA.js → chunk-G3CEIXTV.js} +68 -19
- package/dist/cli-bundle/chunks/chunk-G3CEIXTV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QQG4HEX7.js → chunk-GAVE4MYM.js} +37 -63
- package/dist/cli-bundle/chunks/chunk-GAVE4MYM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js → chunk-GQ4JKNMV.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js.map → chunk-GQ4JKNMV.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MACCNKSZ.js → chunk-GYMG7AG6.js} +36 -62
- package/dist/cli-bundle/chunks/chunk-GYMG7AG6.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7CRFV6JR.js → chunk-H6EH6ENJ.js} +362 -22
- package/dist/cli-bundle/chunks/chunk-H6EH6ENJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2J2AH4V5.js → chunk-HDIDUME4.js} +45 -13
- package/dist/cli-bundle/chunks/chunk-HDIDUME4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2ANTZBYF.js → chunk-HPELHUTG.js} +122 -45
- package/dist/cli-bundle/chunks/chunk-HPELHUTG.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-VNC2HBL4.js → chunk-II7OGE3V.js} +20 -9
- package/dist/cli-bundle/chunks/chunk-II7OGE3V.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js → chunk-ILHLIA47.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js.map → chunk-ILHLIA47.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-4TPFXE2R.js → chunk-IMQG4VR3.js} +118 -74
- package/dist/cli-bundle/chunks/chunk-IMQG4VR3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-MGAQ6KZG.js → chunk-IQVB3YDD.js} +82 -21
- package/dist/cli-bundle/chunks/chunk-IQVB3YDD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WLH7X4RN.js → chunk-KQ3LAMDO.js} +45 -13
- package/dist/cli-bundle/chunks/chunk-KQ3LAMDO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-S2CDTRJ6.js → chunk-KTVETP66.js} +379 -271
- package/dist/cli-bundle/chunks/chunk-KTVETP66.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-36BCSMKP.js → chunk-KZYVTOG5.js} +26 -11
- package/dist/cli-bundle/chunks/chunk-KZYVTOG5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js → chunk-L6FJPOT4.js} +11 -10
- package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js.map → chunk-L6FJPOT4.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-LFW5NQUP.js → chunk-LV5FFQ7M.js} +405 -290
- package/dist/cli-bundle/chunks/chunk-LV5FFQ7M.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PNYAAB4S.js → chunk-LWGMDLQ6.js} +8 -3
- package/dist/cli-bundle/chunks/chunk-LWGMDLQ6.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js → chunk-M23HXJL3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js → chunk-MJZUZ2QE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js → chunk-NCIBNERT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js.map → chunk-NCIBNERT.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-6TBR5AZ2.js → chunk-NIQHNDBZ.js} +76 -8
- package/dist/cli-bundle/chunks/chunk-NIQHNDBZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js → chunk-O46LTCXQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-GFBEXDCQ.js → chunk-OCTQJP42.js} +19 -8
- package/dist/cli-bundle/chunks/{chunk-GFBEXDCQ.js.map → chunk-OCTQJP42.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HLEGAQXT.js → chunk-OLTYNVJR.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-IXVSSHGV.js → chunk-OY3P2I6B.js} +13 -8
- package/dist/cli-bundle/chunks/chunk-OY3P2I6B.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KHGTYCJ6.js → chunk-PZD7WPUC.js} +69 -20
- package/dist/cli-bundle/chunks/chunk-PZD7WPUC.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4FHLNNW7.js → chunk-Q5RLUCP3.js} +74 -14
- package/dist/cli-bundle/chunks/chunk-Q5RLUCP3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SOHXUA2Q.js → chunk-RKKIH2ZQ.js} +116 -36
- package/dist/cli-bundle/chunks/chunk-RKKIH2ZQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js → chunk-SPYPC5CB.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js.map → chunk-SPYPC5CB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SGMGMCIF.js → chunk-SY4GKIWT.js} +82 -21
- package/dist/cli-bundle/chunks/chunk-SY4GKIWT.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js → chunk-SY4PZWIZ.js} +7 -4
- package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js.map → chunk-SY4PZWIZ.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HWHONML5.js → chunk-T5VU7ROQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-JWXTOYBI.js → chunk-TIRZIQRP.js} +121 -44
- package/dist/cli-bundle/chunks/chunk-TIRZIQRP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PEH7SZD2.js → chunk-TUB3DZAZ.js} +105 -31
- package/dist/cli-bundle/chunks/chunk-TUB3DZAZ.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-UAR2VNCK.js +394 -0
- package/dist/cli-bundle/chunks/chunk-UAR2VNCK.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js → chunk-UBMCSJXX.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js → chunk-UUKORJSN.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-R4VWYWRN.js → chunk-W3HFLORZ.js} +7 -2
- package/dist/cli-bundle/chunks/chunk-W3HFLORZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js → chunk-WZCQVABQ.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-X3W5ESZQ.js +32 -0
- package/dist/cli-bundle/chunks/chunk-X3W5ESZQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-M3SI2REU.js → chunk-XLNNCKTN.js} +322 -19
- package/dist/cli-bundle/chunks/chunk-XLNNCKTN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4JHJ7YG2.js → chunk-XNOY7TCB.js} +118 -74
- package/dist/cli-bundle/chunks/chunk-XNOY7TCB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js → chunk-YGRPBFMA.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JW7D6437.js → chunk-YXTLI4XP.js} +20 -9
- package/dist/cli-bundle/chunks/chunk-YXTLI4XP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-TSXWFN3L.js → chunk-Z3MUNQRV.js} +52 -9
- package/dist/cli-bundle/chunks/chunk-Z3MUNQRV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js → chunk-ZJRDVYZI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-32XSW44C.js → chunk-ZONXMSVB.js} +10 -9
- package/dist/cli-bundle/chunks/chunk-ZONXMSVB.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js → claim-4APLUXJW.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js → claim-NEO7AGWH.js} +10 -10
- package/dist/cli-bundle/chunks/{close-SPUFW5QR.js → close-3QABBNGU.js} +8 -8
- package/dist/cli-bundle/chunks/close-ILMZR3D7.js +13 -0
- package/dist/cli-bundle/chunks/{close-many-GKAJX54X.js → close-many-MIZLTYGL.js} +32 -20
- package/dist/cli-bundle/chunks/close-many-MIZLTYGL.js.map +1 -0
- package/dist/cli-bundle/chunks/{close-many-GL6NRUU5.js → close-many-Q7Y5AHQI.js} +31 -19
- package/dist/cli-bundle/chunks/close-many-Q7Y5AHQI.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-5FPT6L7N.js → comments-DAIQPOMU.js} +55 -31
- package/dist/cli-bundle/chunks/comments-DAIQPOMU.js.map +1 -0
- package/dist/cli-bundle/chunks/{comments-TOLOYWNI.js → comments-IWFSVM4P.js} +54 -30
- package/dist/cli-bundle/chunks/comments-IWFSVM4P.js.map +7 -0
- package/dist/cli-bundle/chunks/{config-4MN45TIH.js → config-IOJELD6O.js} +45 -19
- package/dist/cli-bundle/chunks/config-IOJELD6O.js.map +1 -0
- package/dist/cli-bundle/chunks/{config-7N6D7YJE.js → config-PXTMAYV3.js} +44 -18
- package/dist/cli-bundle/chunks/config-PXTMAYV3.js.map +7 -0
- package/dist/cli-bundle/chunks/{context-AQSLE7DZ.js → context-QHJSCJW4.js} +128 -39
- package/dist/cli-bundle/chunks/context-QHJSCJW4.js.map +1 -0
- package/dist/cli-bundle/chunks/{context-U3PUJMVN.js → context-XZS2VFKU.js} +127 -38
- package/dist/cli-bundle/chunks/context-XZS2VFKU.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-ITSJXO3O.js → contracts-B7U4OJTV.js} +54 -10
- package/dist/cli-bundle/chunks/contracts-B7U4OJTV.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-H7KCQXLY.js → contracts-NSBVLXQ3.js} +54 -10
- package/dist/cli-bundle/chunks/contracts-NSBVLXQ3.js.map +7 -0
- package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js → copy-Q64T5FD4.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-C4W522JM.js → copy-SG34LCMU.js} +7 -7
- package/dist/cli-bundle/chunks/create-F5HZX2S4.js +30 -0
- package/dist/cli-bundle/chunks/{create-4EQNELMY.js → create-IPAX2SNL.js} +16 -13
- package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js → delete-TLXR7LJ2.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js → delete-VH3L7DZ6.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js → deps-J3HBBLDB.js} +9 -10
- package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js.map → deps-J3HBBLDB.js.map} +2 -2
- package/dist/cli-bundle/chunks/{deps-HV2C2L46.js → deps-XV6JJ6IN.js} +10 -11
- package/dist/cli-bundle/chunks/deps-XV6JJ6IN.js.map +1 -0
- package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js → docs-GWDEB7JH.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-RJQPLROO.js → docs-RCLNSKID.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js → extension-5RN65LHT.js} +7 -5
- package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js → extension-7KO2NX2A.js} +7 -5
- package/dist/cli-bundle/chunks/{files-OIFN3DQX.js → files-3TCQHUHA.js} +25 -11
- package/dist/cli-bundle/chunks/files-3TCQHUHA.js.map +1 -0
- package/dist/cli-bundle/chunks/{files-LIFDKNCN.js → files-5FDUPSEA.js} +24 -10
- package/dist/cli-bundle/chunks/files-5FDUPSEA.js.map +7 -0
- package/dist/cli-bundle/chunks/focus-7AQMNRSU.js +109 -0
- package/dist/cli-bundle/chunks/focus-7AQMNRSU.js.map +7 -0
- package/dist/cli-bundle/chunks/focus-HQXBYPKM.js +106 -0
- package/dist/cli-bundle/chunks/focus-HQXBYPKM.js.map +1 -0
- package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js → gc-2FGKYRJ4.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js → gc-5B6ABL3Z.js} +3 -3
- package/dist/cli-bundle/chunks/{get-SAB7CRBG.js → get-FUMVOJQD.js} +43 -16
- package/dist/cli-bundle/chunks/get-FUMVOJQD.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-K7UULTQF.js → get-H5BZTW4A.js} +42 -15
- package/dist/cli-bundle/chunks/get-H5BZTW4A.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-NUVZYIEV.js → health-JSVOR6B4.js} +75 -49
- package/dist/cli-bundle/chunks/health-JSVOR6B4.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-VJWH3ZFK.js → health-LE2ZQGSM.js} +74 -48
- package/dist/cli-bundle/chunks/health-LE2ZQGSM.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-GYFD2DJW.js → history-QO4JVJJP.js} +10 -10
- package/dist/cli-bundle/chunks/history-SSXGGTVZ.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-WQZQ6KXM.js → history-compact-ID74DOUI.js} +37 -46
- package/dist/cli-bundle/chunks/history-compact-ID74DOUI.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-compact-SLL6ESXH.js → history-compact-SDFRPZ4V.js} +38 -47
- package/dist/cli-bundle/chunks/history-compact-SDFRPZ4V.js.map +1 -0
- package/dist/cli-bundle/chunks/history-redact-VBH44Y7F.js +21 -0
- package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js → history-redact-Z4P5MM3G.js} +13 -11
- package/dist/cli-bundle/chunks/{history-repair-UCYS55ZX.js → history-repair-ANHEYWKF.js} +43 -48
- package/dist/cli-bundle/chunks/history-repair-ANHEYWKF.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-repair-BJCGM6Q3.js → history-repair-CKE7GLZR.js} +44 -49
- package/dist/cli-bundle/chunks/history-repair-CKE7GLZR.js.map +1 -0
- package/dist/cli-bundle/chunks/init-7FBQO77A.js +19 -0
- package/dist/cli-bundle/chunks/{init-MXV57LKL.js → init-K6MSMB37.js} +11 -9
- package/dist/cli-bundle/chunks/{learnings-QKJOKEAO.js → learnings-VIS3NOQV.js} +13 -12
- package/dist/cli-bundle/chunks/learnings-VIS3NOQV.js.map +7 -0
- package/dist/cli-bundle/chunks/{learnings-L6KTZGOT.js → learnings-YYNB64GN.js} +14 -13
- package/dist/cli-bundle/chunks/learnings-YYNB64GN.js.map +1 -0
- package/dist/cli-bundle/chunks/list-7UE44A2R.js +29 -0
- package/dist/cli-bundle/chunks/list-UHMA3N2K.js +33 -0
- package/dist/cli-bundle/chunks/{notes-3NLK7WTZ.js → notes-2HRMV67I.js} +14 -13
- package/dist/cli-bundle/chunks/notes-2HRMV67I.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-HMCB7TK6.js → notes-IN3UMA7W.js} +13 -12
- package/dist/cli-bundle/chunks/notes-IN3UMA7W.js.map +7 -0
- package/dist/cli-bundle/chunks/{plan-DWBYI5C6.js → plan-I3SVH7FV.js} +16 -15
- package/dist/cli-bundle/chunks/plan-I3SVH7FV.js.map +1 -0
- package/dist/cli-bundle/chunks/{plan-NANUWH4T.js → plan-PAWCCAPW.js} +15 -14
- package/dist/cli-bundle/chunks/plan-PAWCCAPW.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-PWQ5F2VI.js → register-list-query-N7Z7RTDM.js} +31 -22
- package/dist/cli-bundle/chunks/register-list-query-N7Z7RTDM.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-SMMMLSWW.js → register-list-query-OTIK4DVA.js} +32 -23
- package/dist/cli-bundle/chunks/register-list-query-OTIK4DVA.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-QKFPTIZG.js → register-mutation-UFZK6Q57.js} +216 -66
- package/dist/cli-bundle/chunks/register-mutation-UFZK6Q57.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-ZYJQ4DVP.js → register-mutation-XFORLS6D.js} +210 -67
- package/dist/cli-bundle/chunks/register-mutation-XFORLS6D.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-2FMZ6WEF.js → register-operations-6ZCLKRBG.js} +53 -39
- package/dist/cli-bundle/chunks/register-operations-6ZCLKRBG.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-BAFQURZG.js → register-operations-ITE7JTH3.js} +54 -40
- package/dist/cli-bundle/chunks/register-operations-ITE7JTH3.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-QN2XV7UL.js → register-setup-7RKGE4BQ.js} +18 -21
- package/dist/cli-bundle/chunks/register-setup-7RKGE4BQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-DQEIKBIP.js → register-setup-7UKEFKT6.js} +17 -20
- package/dist/cli-bundle/chunks/register-setup-7UKEFKT6.js.map +7 -0
- package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js → restore-NNVPBBVJ.js} +13 -11
- package/dist/cli-bundle/chunks/restore-XXXLQ2XC.js +19 -0
- package/dist/cli-bundle/chunks/{schema-RNVJ55V2.js → schema-3HCLXCFX.js} +27 -9
- package/dist/cli-bundle/chunks/schema-3HCLXCFX.js.map +7 -0
- package/dist/cli-bundle/chunks/{schema-ZZ7ZDM2X.js → schema-3YKCQ3VO.js} +28 -10
- package/dist/cli-bundle/chunks/schema-3YKCQ3VO.js.map +1 -0
- package/dist/cli-bundle/chunks/{search-BJ457C2A.js → search-NQ42NC6A.js} +328 -71
- package/dist/cli-bundle/chunks/search-NQ42NC6A.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-FQDZXX7P.js → search-V7PZ2ICH.js} +328 -71
- package/dist/cli-bundle/chunks/search-V7PZ2ICH.js.map +1 -0
- package/dist/cli-bundle/chunks/{stats-DUQWCVOS.js → stats-7KD4PJC5.js} +41 -16
- package/dist/cli-bundle/chunks/stats-7KD4PJC5.js.map +7 -0
- package/dist/cli-bundle/chunks/{stats-CUG3ZHOI.js → stats-GRHO6RFB.js} +42 -17
- package/dist/cli-bundle/chunks/stats-GRHO6RFB.js.map +1 -0
- package/dist/cli-bundle/chunks/{telemetry-33MRGX4Z.js → telemetry-H5GLXNG5.js} +6 -6
- package/dist/cli-bundle/chunks/telemetry-H5GLXNG5.js.map +7 -0
- package/dist/cli-bundle/chunks/{telemetry-RK2VX75A.js → telemetry-TRRYZXWT.js} +7 -7
- package/dist/cli-bundle/chunks/telemetry-TRRYZXWT.js.map +1 -0
- package/dist/cli-bundle/chunks/test-6CZNIIGA.js +34 -0
- package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js → test-7GVQ3VMN.js} +16 -14
- package/dist/cli-bundle/chunks/{test-all-ANYQ33O2.js → test-all-3LF2OZD2.js} +23 -16
- package/dist/cli-bundle/chunks/test-all-3LF2OZD2.js.map +7 -0
- package/dist/cli-bundle/chunks/{test-all-ARSMX33Q.js → test-all-ODVADHV6.js} +24 -17
- package/dist/cli-bundle/chunks/test-all-ODVADHV6.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-5URSD34O.js → test-runs-LYT6ZTNQ.js} +62 -65
- package/dist/cli-bundle/chunks/test-runs-LYT6ZTNQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-XNACGSNQ.js → test-runs-RVP6VWN7.js} +61 -64
- package/dist/cli-bundle/chunks/test-runs-RVP6VWN7.js.map +7 -0
- package/dist/cli-bundle/chunks/update-MPGM6SBE.js +28 -0
- package/dist/cli-bundle/chunks/update-UN75XW3C.js +24 -0
- package/dist/cli-bundle/chunks/{update-many-6B7PJ33I.js → update-many-FCU6RKTO.js} +80 -34
- package/dist/cli-bundle/chunks/update-many-FCU6RKTO.js.map +1 -0
- package/dist/cli-bundle/chunks/{update-many-724JCVDE.js → update-many-XSEQJ24X.js} +79 -33
- package/dist/cli-bundle/chunks/update-many-XSEQJ24X.js.map +7 -0
- package/dist/cli-bundle/chunks/{upgrade-ALBEZAI7.js → upgrade-A6TL3INC.js} +22 -8
- package/dist/cli-bundle/chunks/upgrade-A6TL3INC.js.map +7 -0
- package/dist/cli-bundle/chunks/{upgrade-QHRGDBSA.js → upgrade-FOB5LHO5.js} +23 -9
- package/dist/cli-bundle/chunks/upgrade-FOB5LHO5.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-IQRYFXIV.js → validate-7BLDG3AT.js} +221 -30
- package/dist/cli-bundle/chunks/validate-7BLDG3AT.js.map +1 -0
- package/dist/cli-bundle/chunks/{validate-UY6DRCG5.js → validate-EHL3MI2V.js} +235 -30
- package/dist/cli-bundle/chunks/validate-EHL3MI2V.js.map +7 -0
- package/dist/cli-bundle/main.js +270 -139
- package/dist/cli-bundle/main.js.map +3 -3
- package/dist/cli.d.ts +10 -0
- package/dist/cli.js +21 -8
- package/dist/cli.js.map +1 -1
- package/dist/core/diagnostics/remediation.js +7 -2
- package/dist/core/diagnostics/remediation.js.map +1 -1
- package/dist/core/extensions/extension-policy.js +14 -15
- package/dist/core/extensions/extension-policy.js.map +1 -1
- package/dist/core/extensions/item-fields.js +4 -5
- package/dist/core/extensions/item-fields.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +75 -1
- package/dist/core/extensions/loader.js +56 -32
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/governance/content-fields.d.ts +84 -0
- package/dist/core/governance/content-fields.js +182 -0
- package/dist/core/governance/content-fields.js.map +1 -0
- package/dist/core/governance/issue-codes.d.ts +51 -0
- package/dist/core/governance/issue-codes.js +95 -0
- package/dist/core/governance/issue-codes.js.map +1 -0
- package/dist/core/governance/metadata-coverage.d.ts +168 -0
- package/dist/core/governance/metadata-coverage.js +362 -0
- package/dist/core/governance/metadata-coverage.js.map +1 -0
- package/dist/core/history/history-rewrite.d.ts +22 -0
- package/dist/core/history/history-rewrite.js +38 -2
- package/dist/core/history/history-rewrite.js.map +1 -1
- package/dist/core/history/history.d.ts +7 -0
- package/dist/core/history/history.js +6 -2
- package/dist/core/history/history.js.map +1 -1
- package/dist/core/io/body-file.d.ts +14 -0
- package/dist/core/io/body-file.js +47 -0
- package/dist/core/io/body-file.js.map +1 -0
- package/dist/core/item/item-format.d.ts +46 -1
- package/dist/core/item/item-format.js +51 -60
- package/dist/core/item/item-format.js.map +1 -1
- package/dist/core/item/parse.d.ts +9 -0
- package/dist/core/item/parse.js +10 -16
- package/dist/core/item/parse.js.map +1 -1
- package/dist/core/item/type-registry.d.ts +1 -0
- package/dist/core/item/type-registry.js +8 -10
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/lock/lock.d.ts +26 -0
- package/dist/core/lock/lock.js +10 -2
- package/dist/core/lock/lock.js.map +1 -1
- package/dist/core/output/output.d.ts +7 -0
- package/dist/core/output/output.js +6 -2
- package/dist/core/output/output.js.map +1 -1
- package/dist/core/schema/item-types-file.d.ts +25 -2
- package/dist/core/schema/item-types-file.js +78 -6
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-schema.d.ts +7 -0
- package/dist/core/schema/runtime-schema.js +23 -16
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/search/cache.d.ts +19 -1
- package/dist/core/search/cache.js +11 -3
- package/dist/core/search/cache.js.map +1 -1
- package/dist/core/search/corpus.d.ts +36 -2
- package/dist/core/search/corpus.js +120 -24
- package/dist/core/search/corpus.js.map +1 -1
- package/dist/core/search/providers.d.ts +19 -0
- package/dist/core/search/providers.js +19 -2
- package/dist/core/search/providers.js.map +1 -1
- package/dist/core/sentry/instrument.d.ts +1 -0
- package/dist/core/sentry/instrument.js +6 -2
- package/dist/core/sentry/instrument.js.map +1 -1
- package/dist/core/session/session-state.d.ts +16 -0
- package/dist/core/session/session-state.js +48 -0
- package/dist/core/session/session-state.js.map +1 -0
- package/dist/core/shared/constants.d.ts +8 -0
- package/dist/core/shared/constants.js +11 -2
- package/dist/core/shared/constants.js.map +1 -1
- package/dist/core/shared/text-normalization.js +4 -3
- package/dist/core/shared/text-normalization.js.map +1 -1
- package/dist/core/shared/time.d.ts +13 -0
- package/dist/core/shared/time.js +19 -7
- package/dist/core/shared/time.js.map +1 -1
- package/dist/core/store/item-store.d.ts +11 -0
- package/dist/core/store/item-store.js +12 -3
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/settings-validator.d.ts +2 -0
- package/dist/core/store/settings-validator.js +25 -2
- package/dist/core/store/settings-validator.js.map +1 -1
- package/dist/core/store/settings.d.ts +60 -1
- package/dist/core/store/settings.js +100 -46
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/observability.js +10 -8
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.d.ts +272 -1
- package/dist/core/telemetry/runtime.js +358 -37
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/background-runs.d.ts +35 -0
- package/dist/core/test/background-runs.js +72 -61
- package/dist/core/test/background-runs.js.map +1 -1
- package/dist/core/test/run-selectors.js +5 -4
- package/dist/core/test/run-selectors.js.map +1 -1
- package/dist/core/validate/estimate-defaults.d.ts +39 -0
- package/dist/core/validate/estimate-defaults.js +117 -0
- package/dist/core/validate/estimate-defaults.js.map +1 -0
- package/dist/core/validate/fix-planning.d.ts +21 -3
- package/dist/core/validate/fix-planning.js +31 -4
- package/dist/core/validate/fix-planning.js.map +1 -1
- package/dist/core/validate/missing-link-owners.d.ts +64 -0
- package/dist/core/validate/missing-link-owners.js +98 -0
- package/dist/core/validate/missing-link-owners.js.map +1 -0
- package/dist/mcp/server.d.ts +61 -0
- package/dist/mcp/server.js +50 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +17 -4
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.js +13 -2
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +4 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +110 -2
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +83 -8
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +28 -0
- package/dist/sdk/cli-contracts.js +164 -11
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/types.d.ts +17 -1
- package/dist/types.js +3 -3
- package/dist/types.js.map +1 -1
- package/docs/AGENT_GUIDE.md +15 -3
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +136 -7
- package/docs/CONFIGURATION.md +52 -0
- package/docs/TESTING.md +6 -4
- package/package.json +6 -4
- package/packages/pm-calendar/extensions/calendar/runtime.js +6 -0
- package/packages/pm-calendar/extensions/calendar/runtime.ts +12 -0
- package/packages/pm-todos/extensions/todos/runtime.ts +5 -0
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +3 -3
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/plugins/pm-codex/README.md +1 -1
- package/scripts/bundle-cli.mjs +46 -37
- package/scripts/finalize-build.mjs +20 -9
- package/scripts/prepare-build-cache.mjs +27 -16
- package/dist/cli-bundle/chunks/activity-XIOTGZMU.js +0 -16
- package/dist/cli-bundle/chunks/aggregate-IRHJWEKG.js.map +0 -1
- package/dist/cli-bundle/chunks/aggregate-XEBW22UQ.js.map +0 -7
- package/dist/cli-bundle/chunks/append-NL67JNJU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2ANTZBYF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2J2AH4V5.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-32XSW44C.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-36BCSMKP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-3VULHQNS.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4FHLNNW7.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4JHJ7YG2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-4TPFXE2R.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-4ZKKZMLH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-5HSAHRYA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-6TBR5AZ2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7CRFV6JR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7SM7VA5I.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AAUYXSFF.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-AGG32LKL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AUDDXKNX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-BVL5KGVA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-C24PWDFG.js +0 -138
- package/dist/cli-bundle/chunks/chunk-C24PWDFG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-HZOX5BYD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IXVSSHGV.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IZHCCG4S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JW7D6437.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-JWXTOYBI.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KHGTYCJ6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-L6YQONLM.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-LFW5NQUP.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-LYNQ3NGI.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-M3SI2REU.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MACCNKSZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MGAQ6KZG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-PEH7SZD2.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-PNYAAB4S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QQG4HEX7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-R4VWYWRN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-RHYBR6G7.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-S2CDTRJ6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SGMGMCIF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SOHXUA2Q.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SQDKAEKG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-TOX7YQ7X.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-TSXWFN3L.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-UCVJP4JL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-V4KP3TCN.js +0 -128
- package/dist/cli-bundle/chunks/chunk-V4KP3TCN.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VNC2HBL4.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-W6KNFAMZ.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-WLH7X4RN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-XXLMJDUB.js.map +0 -7
- package/dist/cli-bundle/chunks/close-WOG5WTMZ.js +0 -13
- package/dist/cli-bundle/chunks/close-many-GKAJX54X.js.map +0 -1
- package/dist/cli-bundle/chunks/close-many-GL6NRUU5.js.map +0 -7
- package/dist/cli-bundle/chunks/comments-5FPT6L7N.js.map +0 -1
- package/dist/cli-bundle/chunks/comments-TOLOYWNI.js.map +0 -7
- package/dist/cli-bundle/chunks/config-4MN45TIH.js.map +0 -1
- package/dist/cli-bundle/chunks/config-7N6D7YJE.js.map +0 -7
- package/dist/cli-bundle/chunks/context-AQSLE7DZ.js.map +0 -1
- package/dist/cli-bundle/chunks/context-U3PUJMVN.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-H7KCQXLY.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-ITSJXO3O.js.map +0 -1
- package/dist/cli-bundle/chunks/create-NW3K7LVG.js +0 -27
- package/dist/cli-bundle/chunks/deps-HV2C2L46.js.map +0 -1
- package/dist/cli-bundle/chunks/files-LIFDKNCN.js.map +0 -7
- package/dist/cli-bundle/chunks/files-OIFN3DQX.js.map +0 -1
- package/dist/cli-bundle/chunks/get-K7UULTQF.js.map +0 -7
- package/dist/cli-bundle/chunks/get-SAB7CRBG.js.map +0 -1
- package/dist/cli-bundle/chunks/health-NUVZYIEV.js.map +0 -1
- package/dist/cli-bundle/chunks/health-VJWH3ZFK.js.map +0 -7
- package/dist/cli-bundle/chunks/history-IUVN4NTN.js +0 -20
- package/dist/cli-bundle/chunks/history-compact-SLL6ESXH.js.map +0 -1
- package/dist/cli-bundle/chunks/history-compact-WQZQ6KXM.js.map +0 -7
- package/dist/cli-bundle/chunks/history-redact-75KIIJUJ.js +0 -19
- package/dist/cli-bundle/chunks/history-repair-BJCGM6Q3.js.map +0 -1
- package/dist/cli-bundle/chunks/history-repair-UCYS55ZX.js.map +0 -7
- package/dist/cli-bundle/chunks/init-JJFYRUKG.js +0 -17
- package/dist/cli-bundle/chunks/learnings-L6KTZGOT.js.map +0 -1
- package/dist/cli-bundle/chunks/learnings-QKJOKEAO.js.map +0 -7
- package/dist/cli-bundle/chunks/list-GGVPXEV6.js +0 -23
- package/dist/cli-bundle/chunks/list-VOQDQHA4.js +0 -19
- package/dist/cli-bundle/chunks/notes-3NLK7WTZ.js.map +0 -1
- package/dist/cli-bundle/chunks/notes-HMCB7TK6.js.map +0 -7
- package/dist/cli-bundle/chunks/plan-DWBYI5C6.js.map +0 -1
- package/dist/cli-bundle/chunks/plan-NANUWH4T.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-PWQ5F2VI.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-SMMMLSWW.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-QKFPTIZG.js.map +0 -7
- package/dist/cli-bundle/chunks/register-mutation-ZYJQ4DVP.js.map +0 -1
- package/dist/cli-bundle/chunks/register-operations-2FMZ6WEF.js.map +0 -7
- package/dist/cli-bundle/chunks/register-operations-BAFQURZG.js.map +0 -1
- package/dist/cli-bundle/chunks/register-setup-DQEIKBIP.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-QN2XV7UL.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-DRBNXJJH.js +0 -17
- package/dist/cli-bundle/chunks/schema-RNVJ55V2.js.map +0 -7
- package/dist/cli-bundle/chunks/schema-ZZ7ZDM2X.js.map +0 -1
- package/dist/cli-bundle/chunks/search-BJ457C2A.js.map +0 -7
- package/dist/cli-bundle/chunks/search-FQDZXX7P.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-CUG3ZHOI.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-DUQWCVOS.js.map +0 -7
- package/dist/cli-bundle/chunks/telemetry-33MRGX4Z.js.map +0 -7
- package/dist/cli-bundle/chunks/telemetry-RK2VX75A.js.map +0 -1
- package/dist/cli-bundle/chunks/test-SDMYEQHH.js +0 -32
- package/dist/cli-bundle/chunks/test-all-ANYQ33O2.js.map +0 -7
- package/dist/cli-bundle/chunks/test-all-ARSMX33Q.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-5URSD34O.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-XNACGSNQ.js.map +0 -7
- package/dist/cli-bundle/chunks/update-PD46VOXI.js +0 -21
- package/dist/cli-bundle/chunks/update-U235A7WP.js +0 -25
- package/dist/cli-bundle/chunks/update-many-6B7PJ33I.js.map +0 -1
- package/dist/cli-bundle/chunks/update-many-724JCVDE.js.map +0 -7
- package/dist/cli-bundle/chunks/upgrade-ALBEZAI7.js.map +0 -7
- package/dist/cli-bundle/chunks/upgrade-QHRGDBSA.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-IQRYFXIV.js.map +0 -1
- package/dist/cli-bundle/chunks/validate-UY6DRCG5.js.map +0 -7
- /package/dist/cli-bundle/chunks/{activity-XIOTGZMU.js.map → activity-5P2KQCTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js.map → activity-MJGTX4LO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js.map → chunk-2JEGCDYT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js.map → chunk-3WAULYOY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js.map → chunk-7AGIXLNK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RFR2YQGO.js.map → chunk-AERT7KT3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js.map → chunk-E6J2PEK6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js.map → chunk-F2GC6L3N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js.map → chunk-M23HXJL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js.map → chunk-MJZUZ2QE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js.map → chunk-O46LTCXQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HLEGAQXT.js.map → chunk-OLTYNVJR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HWHONML5.js.map → chunk-T5VU7ROQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js.map → chunk-UBMCSJXX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js.map → chunk-UUKORJSN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js.map → chunk-WZCQVABQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js.map → chunk-YGRPBFMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js.map → chunk-ZJRDVYZI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js.map → claim-4APLUXJW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js.map → claim-NEO7AGWH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-SPUFW5QR.js.map → close-3QABBNGU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-WOG5WTMZ.js.map → close-ILMZR3D7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js.map → copy-Q64T5FD4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-C4W522JM.js.map → copy-SG34LCMU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-NW3K7LVG.js.map → create-F5HZX2S4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-4EQNELMY.js.map → create-IPAX2SNL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js.map → delete-TLXR7LJ2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js.map → delete-VH3L7DZ6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js.map → docs-GWDEB7JH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-RJQPLROO.js.map → docs-RCLNSKID.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js.map → extension-5RN65LHT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js.map → extension-7KO2NX2A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js.map → gc-2FGKYRJ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js.map → gc-5B6ABL3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-GYFD2DJW.js.map → history-QO4JVJJP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-IUVN4NTN.js.map → history-SSXGGTVZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-75KIIJUJ.js.map → history-redact-VBH44Y7F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js.map → history-redact-Z4P5MM3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-JJFYRUKG.js.map → init-7FBQO77A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-MXV57LKL.js.map → init-K6MSMB37.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-VOQDQHA4.js.map → list-7UE44A2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-GGVPXEV6.js.map → list-UHMA3N2K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js.map → restore-NNVPBBVJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-DRBNXJJH.js.map → restore-XXXLQ2XC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-SDMYEQHH.js.map → test-6CZNIIGA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js.map → test-7GVQ3VMN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-U235A7WP.js.map → update-MPGM6SBE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-PD46VOXI.js.map → update-UN75XW3C.js.map} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../cli/commands/close-many.ts"],
|
|
4
|
+
"sourcesContent": ["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n createCheckpointId,\n loadMutationCheckpoint,\n restoreCheckpointItems,\n writeMutationCheckpoint,\n type MutationCheckpointItem,\n} from \"../../core/checkpoint/mutation-checkpoint.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toErrorMessage } from \"../../core/shared/primitives.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { listAllFrontMatterLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose, type CloseCommandOptions } from \"./close.js\";\nimport { hasListFilters } from \"./list-filter-shared.js\";\nimport { runList, type ListOptions, type ListedItem } from \"./list.js\";\nimport { runRestore } from \"./restore.js\";\n\nconst CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;\nconst CLOSE_MANY_CHECKPOINT_SUBDIR = \"close-many\";\n\nconst CLOSE_MANY_FILTER_GUIDANCE = [\n \"--filter-status\",\n \"--filter-type\",\n \"--filter-tag\",\n \"--filter-priority\",\n \"--filter-sprint\",\n \"--filter-release\",\n \"--filter-parent\",\n \"--filter-assignee\",\n \"--filter-updated-before\",\n \"--ids\",\n].join(\", \");\n\nexport interface CloseManyCommandOptions {\n status?: string;\n list?: ListOptions;\n reason?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n validateClose?: string;\n author?: string;\n message?: string;\n force?: boolean;\n dryRun?: boolean;\n rollback?: string;\n checkpoint?: boolean;\n}\n\ninterface CloseManyPlanRow {\n id: string;\n title: string;\n status: string;\n action: \"close\" | \"skip\";\n skip_reason?: string;\n active_child_ids?: string[];\n}\n\ninterface CloseManyApplyRow {\n id: string;\n status: \"closed\" | \"skipped\" | \"failed\";\n skip_reason?: string;\n changed_fields?: string[];\n warnings?: string[];\n error?: string;\n}\n\nexport interface CloseManyResult {\n mode: \"dry_run\" | \"apply\" | \"rollback\";\n matched_count: number;\n dry_run: boolean;\n reason?: string;\n filters?: Record<string, unknown>;\n validate_close?: string;\n item_plans?: CloseManyPlanRow[];\n checkpoint?: {\n id: string;\n created_at: string;\n path: string;\n rollback_command: string;\n };\n closed_count?: number;\n skipped_count?: number;\n failed_count?: number;\n restored_count?: number;\n rollback_checkpoint_id?: string;\n rows?: CloseManyApplyRow[] | Array<{ id: string; status: \"restored\" | \"failed\"; changed_fields?: string[]; warnings?: string[]; error?: string }>;\n ids: string[];\n}\n\nfunction hasCloseManyFilters(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status, { includePagination: false });\n}\n\nfunction hasCloseManyRollbackConflicts(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status);\n}\n\nfunction rejectBlankIdsFilter(list: ListOptions | undefined): void {\n if (list?.ids != null && String(list.ids).trim().length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n}\n\nfunction activeListOptions(list: ListOptions | undefined): ListOptions {\n const active: ListOptions = {};\n if (!list) {\n return active;\n }\n for (const [key, value] of Object.entries(list) as Array<[keyof ListOptions, unknown]>) {\n if (value == null || (typeof value === \"string\" && !value.split(\",\").some((entry) => entry.trim().length > 0))) {\n continue;\n }\n (active as Record<string, unknown>)[key] = value;\n }\n return active;\n}\n\nfunction resolveReason(reason: unknown, required: boolean): string | undefined {\n const trimmed = String(reason ?? \"\").trim();\n if (trimmed.length > 0) {\n return trimmed;\n }\n if (required) {\n throw new PmCliError(\n \"pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.\",\n EXIT_CODE.USAGE,\n {\n code: \"close_reason_required\",\n required: \"Provide a shared closing summary via --reason for the whole batch.\",\n why: \"governance.require_close_reason is enabled, so every close must record why the items are done.\",\n examples: [\n 'pm close-many --filter-sprint S-12 --reason \"Sprint S-12 acceptance criteria met\"',\n 'pm close-many --ids pm-a,pm-b --reason \"Superseded by redesign\"',\n ],\n nextSteps: [\n \"Re-run with --reason describing the shared outcome.\",\n \"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled\",\n ],\n },\n );\n }\n return undefined;\n}\n\n// Build a parent -> non-terminal child id map in a single light scan so each\n// matched parent can be annotated with the active children that closing it\n// would orphan (the same signal runClose surfaces per item on apply).\nasync function buildActiveChildrenByParent(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n): Promise<{ childrenByParent: Map<string, string[]>; parentByChild: Map<string, string> }> {\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const childrenByParent = new Map<string, string[]>();\n const parentByChild = new Map<string, string>();\n for (const item of items) {\n if (typeof item.parent !== \"string\" || item.parent.length === 0) {\n continue;\n }\n parentByChild.set(item.id, item.parent);\n if (isTerminalStatus(item.status, statusRegistry)) {\n continue;\n }\n const existing = childrenByParent.get(item.parent);\n if (existing) {\n existing.push(item.id);\n } else {\n childrenByParent.set(item.parent, [item.id]);\n }\n }\n for (const ids of childrenByParent.values()) {\n ids.sort((left, right) => left.localeCompare(right));\n }\n return { childrenByParent, parentByChild };\n}\n\nfunction hierarchyDepth(id: string, parentByChild: Map<string, string>, cache?: Map<string, number>): number {\n const cached = cache?.get(id);\n if (cached !== undefined) {\n return cached;\n }\n let depth = 0;\n let current = parentByChild.get(id);\n const path: string[] = [];\n const visited = new Set<string>();\n let hasCycle = false;\n while (current !== undefined && !visited.has(current)) {\n const cachedCurrent = cache?.get(current);\n if (cachedCurrent !== undefined) {\n depth += cachedCurrent + 1;\n break;\n }\n visited.add(current);\n path.push(current);\n depth += 1;\n current = parentByChild.get(current);\n }\n if (current !== undefined && visited.has(current)) {\n hasCycle = true;\n }\n if (!hasCycle) {\n cache?.set(id, depth);\n for (const [index, ancestorId] of path.entries()) {\n cache?.set(ancestorId, depth - index - 1);\n }\n }\n return depth;\n}\n\nexport async function runCloseMany(options: CloseManyCommandOptions, global: GlobalOptions): Promise<CloseManyResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n\n const dryRun = options.dryRun === true;\n const rollbackId = typeof options.rollback === \"string\" ? options.rollback : undefined;\n rejectBlankIdsFilter(options.list);\n\n if (rollbackId) {\n if (dryRun) {\n throw new PmCliError(\"--dry-run cannot be combined with --rollback\", EXIT_CODE.USAGE);\n }\n if (hasCloseManyRollbackConflicts(options.list, options.status)) {\n throw new PmCliError(\"Rollback mode does not accept filter options\", EXIT_CODE.USAGE);\n }\n const checkpoint = await loadMutationCheckpoint(\n pmRoot,\n CLOSE_MANY_CHECKPOINT_SUBDIR,\n rollbackId,\n CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n );\n const restoreMessage = options.message ?? `Rollback close-many checkpoint ${checkpoint.id}`;\n const rollback = await restoreCheckpointItems(checkpoint.items, (id, targetUpdatedAt) =>\n runRestore(id, targetUpdatedAt, { author: options.author, message: restoreMessage, force: true }, global),\n );\n return {\n mode: \"rollback\",\n matched_count: checkpoint.items.length,\n dry_run: false,\n rollback_checkpoint_id: checkpoint.id,\n checkpoint: {\n id: checkpoint.id,\n created_at: checkpoint.created_at,\n path: checkpoint.path,\n rollback_command: `pm close-many --rollback ${checkpoint.id}`,\n },\n restored_count: rollback.restored_ids.length,\n failed_count: rollback.failed_count,\n rows: rollback.rows,\n ids: rollback.restored_ids,\n };\n }\n\n if (!hasCloseManyFilters(options.list, options.status)) {\n throw new PmCliError(\n `close-many requires at least one filter to scope the close (for example: ${CLOSE_MANY_FILTER_GUIDANCE}). Refusing to match every item.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const reason = resolveReason(options.reason, settings.governance.require_close_reason);\n const validateCloseMode = options.validateClose;\n const force = options.force === true;\n\n const listOptions = activeListOptions(options.list);\n const listed = await runList(options.status, listOptions, global);\n const { childrenByParent, parentByChild } = await buildActiveChildrenByParent(pmRoot, settings);\n const depthCache = new Map<string, number>();\n const matched = [...(listed.items as ListedItem[])].sort((left, right) => {\n const depthDelta = hierarchyDepth(right.id, parentByChild, depthCache) - hierarchyDepth(left.id, parentByChild, depthCache);\n return depthDelta !== 0 ? depthDelta : left.id.localeCompare(right.id);\n });\n const closePlannedIds = new Set(\n matched\n .filter((item) => force || !isTerminalStatus(item.status, statusRegistry))\n .map((item) => item.id),\n );\n\n const planRows: CloseManyPlanRow[] = matched.map((item) => {\n const alreadyTerminal = isTerminalStatus(item.status, statusRegistry);\n const activeChildIds = (childrenByParent.get(item.id) ?? []).filter((childId) => !closePlannedIds.has(childId));\n const willSkip = alreadyTerminal && !force;\n return {\n id: item.id,\n title: typeof item.title === \"string\" ? item.title : \"\",\n status: item.status,\n action: willSkip ? \"skip\" : \"close\",\n ...(willSkip ? { skip_reason: \"already_terminal\" } : {}),\n ...(activeChildIds.length > 0 ? { active_child_ids: activeChildIds } : {}),\n };\n });\n\n if (dryRun) {\n return {\n mode: \"dry_run\",\n matched_count: matched.length,\n dry_run: true,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n item_plans: planRows,\n ids: [],\n };\n }\n\n const closableIds = new Set(planRows.filter((row) => row.action === \"close\").map((row) => row.id));\n\n const nowValue = nowIso();\n const checkpointId = createCheckpointId(CLOSE_MANY_CHECKPOINT_SUBDIR, nowValue);\n const checkpointEnabled = options.checkpoint !== false;\n let checkpointInfo: CloseManyResult[\"checkpoint\"] | undefined;\n if (checkpointEnabled && closableIds.size > 0) {\n const checkpointItems: MutationCheckpointItem[] = matched\n .filter((item) => closableIds.has(item.id))\n .map((item) => ({ id: item.id, target_updated_at: item.updated_at }));\n const checkpointPath = await writeMutationCheckpoint(pmRoot, CLOSE_MANY_CHECKPOINT_SUBDIR, checkpointId, {\n schema_version: CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n id: checkpointId,\n created_at: nowValue,\n author: resolveAuthor(options.author, \"unknown\"),\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n items: checkpointItems,\n });\n checkpointInfo = {\n id: checkpointId,\n created_at: nowValue,\n path: checkpointPath,\n rollback_command: `pm close-many --rollback ${checkpointId}`,\n };\n }\n\n const closeOptions: CloseCommandOptions = {\n author: options.author,\n message: options.message ?? `close-many apply ${checkpointId}`,\n validateClose: validateCloseMode,\n force,\n resolution: options.resolution,\n expectedResult: options.expectedResult,\n actualResult: options.actualResult,\n };\n\n const rows: CloseManyApplyRow[] = [];\n const closedIds: string[] = [];\n for (const item of matched) {\n if (!closableIds.has(item.id)) {\n rows.push({ id: item.id, status: \"skipped\", skip_reason: \"already_terminal\" });\n continue;\n }\n try {\n const result = await runClose(item.id, reason, closeOptions, global);\n rows.push({\n id: item.id,\n status: \"closed\",\n changed_fields: result.changed_fields,\n ...(result.warnings && result.warnings.length > 0 ? { warnings: result.warnings } : {}),\n });\n closedIds.push(item.id);\n } catch (error: unknown) {\n rows.push({ id: item.id, status: \"failed\", error: toErrorMessage(error) });\n }\n }\n\n return {\n mode: \"apply\",\n matched_count: matched.length,\n dry_run: false,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n ...(checkpointInfo ? { checkpoint: checkpointInfo } : {}),\n closed_count: rows.filter((row) => row.status === \"closed\").length,\n skipped_count: rows.filter((row) => row.status === \"skipped\").length,\n failed_count: rows.filter((row) => row.status === \"failed\").length,\n rows,\n ids: closedIds,\n };\n}\n\nexport const _testOnly = {\n activeListOptions,\n buildActiveChildrenByParent,\n hasCloseManyFilters,\n hasCloseManyRollbackConflicts,\n hierarchyDepth,\n rejectBlankIdsFilter,\n resolveReason,\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["global"]
|
|
7
|
+
}
|
|
@@ -1,67 +1,55 @@
|
|
|
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]="76b2062c-7b84-5ee0-a057-b40e87320b47")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
parseAnnotationTextInput,
|
|
5
5
|
runAnnotationCommand
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FXNT5LPX.js";
|
|
7
7
|
import "./chunk-J27KIHTG.js";
|
|
8
8
|
import {
|
|
9
9
|
createStdinTokenResolver
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-F7WSO5UX.js";
|
|
11
|
+
import "./chunk-UBMCSJXX.js";
|
|
12
|
+
import "./chunk-7K2MXFMX.js";
|
|
13
|
+
import "./chunk-2JEGCDYT.js";
|
|
14
|
+
import "./chunk-GAVE4MYM.js";
|
|
15
|
+
import "./chunk-ZONXMSVB.js";
|
|
16
|
+
import "./chunk-G2YVUY7I.js";
|
|
17
17
|
import {
|
|
18
18
|
EXIT_CODE,
|
|
19
19
|
PmCliError
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-KTVETP66.js";
|
|
21
21
|
|
|
22
22
|
// dist/cli/commands/comments.js
|
|
23
23
|
import { readFile } from "node:fs/promises";
|
|
24
24
|
function isErrnoError(error) {
|
|
25
25
|
return typeof error === "object" && error !== null && "code" in error;
|
|
26
26
|
}
|
|
27
|
-
async function
|
|
27
|
+
async function resolveCommentTextSource(options, stdinResolver) {
|
|
28
28
|
const hasAdd = options.add !== void 0;
|
|
29
29
|
const hasStdin = options.stdin === true;
|
|
30
30
|
const hasFile = typeof options.file === "string";
|
|
31
31
|
const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);
|
|
32
32
|
if (sourceCount === 0) {
|
|
33
|
-
return
|
|
33
|
+
return void 0;
|
|
34
34
|
}
|
|
35
35
|
if (sourceCount > 1) {
|
|
36
36
|
throw new PmCliError("Specify comment text using only one input source: --add, --stdin, or --file", EXIT_CODE.USAGE);
|
|
37
37
|
}
|
|
38
38
|
if (hasAdd) {
|
|
39
39
|
const addInput = await stdinResolver.resolveValue(options.add, "--add");
|
|
40
|
-
return {
|
|
41
|
-
mode: "add",
|
|
42
|
-
value: addInput ?? "",
|
|
43
|
-
emptyFlag: "--add"
|
|
44
|
-
};
|
|
40
|
+
return { value: addInput ?? "", emptyFlag: "--add" };
|
|
45
41
|
}
|
|
46
42
|
if (hasStdin) {
|
|
47
43
|
const stdinInput = await stdinResolver.resolveValue("-", "--stdin");
|
|
48
|
-
return {
|
|
49
|
-
mode: "stdin",
|
|
50
|
-
value: stdinInput ?? "",
|
|
51
|
-
emptyFlag: "--stdin"
|
|
52
|
-
};
|
|
44
|
+
return { value: stdinInput ?? "", emptyFlag: "--stdin" };
|
|
53
45
|
}
|
|
54
|
-
const filePath = options.file
|
|
46
|
+
const filePath = options.file.trim();
|
|
55
47
|
if (!filePath) {
|
|
56
48
|
throw new PmCliError("--file path cannot be empty", EXIT_CODE.USAGE);
|
|
57
49
|
}
|
|
58
50
|
try {
|
|
59
51
|
const fileInput = await readFile(filePath, "utf8");
|
|
60
|
-
return {
|
|
61
|
-
mode: "file",
|
|
62
|
-
value: fileInput,
|
|
63
|
-
emptyFlag: "--file"
|
|
64
|
-
};
|
|
52
|
+
return { value: fileInput, emptyFlag: "--file" };
|
|
65
53
|
} catch (error) {
|
|
66
54
|
if (isErrnoError(error) && error.code === "ENOENT") {
|
|
67
55
|
throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);
|
|
@@ -70,16 +58,52 @@ async function resolveCommentInput(options, stdinResolver) {
|
|
|
70
58
|
throw new PmCliError(`Failed to read --file path "${filePath}": ${detail}`, EXIT_CODE.USAGE);
|
|
71
59
|
}
|
|
72
60
|
}
|
|
61
|
+
async function resolveCommentInput(options, stdinResolver) {
|
|
62
|
+
const hasEdit = options.edit !== void 0;
|
|
63
|
+
const hasDelete = options.delete !== void 0;
|
|
64
|
+
if (hasEdit && hasDelete) {
|
|
65
|
+
throw new PmCliError("Specify only one of --edit or --delete", EXIT_CODE.USAGE);
|
|
66
|
+
}
|
|
67
|
+
if (hasDelete) {
|
|
68
|
+
const textSource2 = await resolveCommentTextSource(options, stdinResolver);
|
|
69
|
+
if (textSource2 !== void 0) {
|
|
70
|
+
throw new PmCliError("--delete does not take comment text", EXIT_CODE.USAGE);
|
|
71
|
+
}
|
|
72
|
+
return { mode: "delete", index: options.delete };
|
|
73
|
+
}
|
|
74
|
+
if (hasEdit) {
|
|
75
|
+
const textSource2 = await resolveCommentTextSource(options, stdinResolver);
|
|
76
|
+
if (textSource2 === void 0) {
|
|
77
|
+
throw new PmCliError("--edit requires replacement text via positional [text], --add, --stdin, or --file", EXIT_CODE.USAGE);
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
mode: "edit",
|
|
81
|
+
index: options.edit,
|
|
82
|
+
value: textSource2.value,
|
|
83
|
+
emptyFlag: textSource2.emptyFlag
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const textSource = await resolveCommentTextSource(options, stdinResolver);
|
|
87
|
+
if (textSource === void 0) {
|
|
88
|
+
return { mode: "list" };
|
|
89
|
+
}
|
|
90
|
+
const mode = textSource.emptyFlag === "--add" ? "add" : textSource.emptyFlag === "--stdin" ? "stdin" : "file";
|
|
91
|
+
return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };
|
|
92
|
+
}
|
|
73
93
|
async function runComments(id, options, global) {
|
|
74
94
|
const stdinResolver = createStdinTokenResolver();
|
|
75
95
|
const commentInput = await resolveCommentInput(options, stdinResolver);
|
|
96
|
+
const shouldParseText = commentInput.mode === "add" || commentInput.mode === "edit";
|
|
97
|
+
const rawValue = commentInput.value ?? "";
|
|
76
98
|
return runAnnotationCommand(id, options, global, {
|
|
77
99
|
input: {
|
|
78
100
|
...commentInput,
|
|
79
|
-
value:
|
|
101
|
+
value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue
|
|
80
102
|
},
|
|
81
103
|
collectionKey: "comments",
|
|
82
104
|
op: "comment_add",
|
|
105
|
+
editOp: "comment_edit",
|
|
106
|
+
deleteOp: "comment_delete",
|
|
83
107
|
parseText: (raw) => raw,
|
|
84
108
|
allowAuditBypass: Boolean(options.allowAuditComment),
|
|
85
109
|
conflictGuidance: {
|
|
@@ -95,6 +119,6 @@ async function runComments(id, options, global) {
|
|
|
95
119
|
export {
|
|
96
120
|
runComments
|
|
97
121
|
};
|
|
98
|
-
//# sourceMappingURL=comments-
|
|
122
|
+
//# sourceMappingURL=comments-DAIQPOMU.js.map
|
|
99
123
|
|
|
100
|
-
//# debugId=
|
|
124
|
+
//# debugId=76b2062c-7b84-5ee0-a057-b40e87320b47
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../cli/commands/comments.ts"],"sourcesContent":["import { readFile } from \"node:fs/promises\";\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 { createStdinTokenResolver } from \"../../core/item/parse.js\";\nimport type { Comment } from \"../../types/index.js\";\nimport { parseAnnotationTextInput, runAnnotationCommand } from \"./annotation-command.js\";\n\nexport interface CommentsCommandOptions {\n add?: string;\n stdin?: boolean;\n file?: string;\n edit?: number;\n delete?: number;\n limit?: string;\n includeMeta?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditComment?: boolean;\n}\n\nexport interface CommentsResult {\n id: string;\n comments: Comment[];\n count: number;\n total_count?: number;\n returned_count?: number;\n has_more?: boolean;\n limit?: number;\n}\n\ninterface ResolvedCommentInput {\n mode: \"list\" | \"add\" | \"stdin\" | \"file\" | \"edit\" | \"delete\";\n value?: string;\n emptyFlag?: string;\n index?: number;\n}\n\nfunction isErrnoError(error: unknown): error is NodeJS.ErrnoException {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\n\nasync function resolveCommentTextSource(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<{ value: string; emptyFlag: string } | undefined> {\n const hasAdd = options.add !== undefined;\n const hasStdin = options.stdin === true;\n const hasFile = typeof options.file === \"string\";\n const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);\n if (sourceCount === 0) {\n return undefined;\n }\n if (sourceCount > 1) {\n throw new PmCliError(\"Specify comment text using only one input source: --add, --stdin, or --file\", EXIT_CODE.USAGE);\n }\n if (hasAdd) {\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n return { value: addInput ?? \"\", emptyFlag: \"--add\" };\n }\n if (hasStdin) {\n const stdinInput = await stdinResolver.resolveValue(\"-\", \"--stdin\");\n return { value: stdinInput ?? \"\", emptyFlag: \"--stdin\" };\n }\n const filePath = (options.file as string).trim();\n if (!filePath) {\n throw new PmCliError(\"--file path cannot be empty\", EXIT_CODE.USAGE);\n }\n try {\n const fileInput = await readFile(filePath, \"utf8\");\n return { value: fileInput, emptyFlag: \"--file\" };\n } catch (error: unknown) {\n if (isErrnoError(error) && error.code === \"ENOENT\") {\n throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);\n }\n const detail = error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Failed to read --file path \"${filePath}\": ${detail}`, EXIT_CODE.USAGE);\n }\n}\n\nasync function resolveCommentInput(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<ResolvedCommentInput> {\n const hasEdit = options.edit !== undefined;\n const hasDelete = options.delete !== undefined;\n if (hasEdit && hasDelete) {\n throw new PmCliError(\"Specify only one of --edit or --delete\", EXIT_CODE.USAGE);\n }\n\n if (hasDelete) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource !== undefined) {\n throw new PmCliError(\"--delete does not take comment text\", EXIT_CODE.USAGE);\n }\n return { mode: \"delete\", index: options.delete };\n }\n\n if (hasEdit) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n throw new PmCliError(\n \"--edit requires replacement text via positional [text], --add, --stdin, or --file\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n mode: \"edit\",\n index: options.edit,\n value: textSource.value,\n emptyFlag: textSource.emptyFlag,\n };\n }\n\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n return { mode: \"list\" };\n }\n // Map the single resolved input source back to its add/stdin/file mode so the\n // caller still knows whether to run plain-text markdown parsing (add-only).\n const mode = textSource.emptyFlag === \"--add\" ? \"add\" : textSource.emptyFlag === \"--stdin\" ? \"stdin\" : \"file\";\n return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };\n}\n\nexport async function runComments(id: string, options: CommentsCommandOptions, global: GlobalOptions): Promise<CommentsResult> {\n const stdinResolver = createStdinTokenResolver();\n const commentInput = await resolveCommentInput(options, stdinResolver);\n\n const shouldParseText = commentInput.mode === \"add\" || commentInput.mode === \"edit\";\n // list/delete carry no text (value undefined → \"\"); add/edit/stdin/file always\n // resolve to a string. Normalize once so neither branch below is unreachable.\n const rawValue = commentInput.value ?? \"\";\n return runAnnotationCommand<\"comments\", Comment>(id, options, global, {\n input: {\n ...commentInput,\n value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue,\n },\n collectionKey: \"comments\",\n op: \"comment_add\",\n editOp: \"comment_edit\",\n deleteOp: \"comment_delete\",\n parseText: (raw) => raw,\n allowAuditBypass: Boolean(options.allowAuditComment),\n conflictGuidance: {\n required:\n \"For append-only comment audits on another owner's item, prefer --allow-audit-comment before considering --force.\",\n examples: ['pm comments pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-comment'],\n nextSteps: [\n \"Retry with --allow-audit-comment for append-only audits that do not mutate item metadata beyond comments.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n },\n });\n}\n"],"names":["textSource"],"mappings":"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","debugId":"76b2062c-7b84-5ee0-a057-b40e87320b47"}
|
|
@@ -1,72 +1,60 @@
|
|
|
1
1
|
import {
|
|
2
2
|
parseAnnotationTextInput,
|
|
3
3
|
runAnnotationCommand
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-NIQHNDBZ.js";
|
|
5
5
|
import "./chunk-O7IWB35H.js";
|
|
6
6
|
import {
|
|
7
7
|
createStdinTokenResolver
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-7L5VOUYP.js";
|
|
9
|
+
import "./chunk-7AGIXLNK.js";
|
|
10
|
+
import "./chunk-4KBK4BA3.js";
|
|
11
|
+
import "./chunk-WZCQVABQ.js";
|
|
12
|
+
import "./chunk-GYMG7AG6.js";
|
|
13
|
+
import "./chunk-6BV7ENQL.js";
|
|
14
|
+
import "./chunk-OY3P2I6B.js";
|
|
15
15
|
import {
|
|
16
16
|
EXIT_CODE,
|
|
17
17
|
PmCliError
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-LV5FFQ7M.js";
|
|
19
19
|
|
|
20
20
|
// dist/cli/commands/comments.js
|
|
21
21
|
import { readFile } from "node:fs/promises";
|
|
22
22
|
!(function() {
|
|
23
23
|
try {
|
|
24
24
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
25
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
25
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "baf6821c-e093-56b4-ab21-828ddaeaa17b");
|
|
26
26
|
} catch (e2) {
|
|
27
27
|
}
|
|
28
28
|
})();
|
|
29
29
|
function isErrnoError(error) {
|
|
30
30
|
return typeof error === "object" && error !== null && "code" in error;
|
|
31
31
|
}
|
|
32
|
-
async function
|
|
32
|
+
async function resolveCommentTextSource(options, stdinResolver) {
|
|
33
33
|
const hasAdd = options.add !== void 0;
|
|
34
34
|
const hasStdin = options.stdin === true;
|
|
35
35
|
const hasFile = typeof options.file === "string";
|
|
36
36
|
const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);
|
|
37
37
|
if (sourceCount === 0) {
|
|
38
|
-
return
|
|
38
|
+
return void 0;
|
|
39
39
|
}
|
|
40
40
|
if (sourceCount > 1) {
|
|
41
41
|
throw new PmCliError("Specify comment text using only one input source: --add, --stdin, or --file", EXIT_CODE.USAGE);
|
|
42
42
|
}
|
|
43
43
|
if (hasAdd) {
|
|
44
44
|
const addInput = await stdinResolver.resolveValue(options.add, "--add");
|
|
45
|
-
return {
|
|
46
|
-
mode: "add",
|
|
47
|
-
value: addInput ?? "",
|
|
48
|
-
emptyFlag: "--add"
|
|
49
|
-
};
|
|
45
|
+
return { value: addInput ?? "", emptyFlag: "--add" };
|
|
50
46
|
}
|
|
51
47
|
if (hasStdin) {
|
|
52
48
|
const stdinInput = await stdinResolver.resolveValue("-", "--stdin");
|
|
53
|
-
return {
|
|
54
|
-
mode: "stdin",
|
|
55
|
-
value: stdinInput ?? "",
|
|
56
|
-
emptyFlag: "--stdin"
|
|
57
|
-
};
|
|
49
|
+
return { value: stdinInput ?? "", emptyFlag: "--stdin" };
|
|
58
50
|
}
|
|
59
|
-
const filePath = options.file
|
|
51
|
+
const filePath = options.file.trim();
|
|
60
52
|
if (!filePath) {
|
|
61
53
|
throw new PmCliError("--file path cannot be empty", EXIT_CODE.USAGE);
|
|
62
54
|
}
|
|
63
55
|
try {
|
|
64
56
|
const fileInput = await readFile(filePath, "utf8");
|
|
65
|
-
return {
|
|
66
|
-
mode: "file",
|
|
67
|
-
value: fileInput,
|
|
68
|
-
emptyFlag: "--file"
|
|
69
|
-
};
|
|
57
|
+
return { value: fileInput, emptyFlag: "--file" };
|
|
70
58
|
} catch (error) {
|
|
71
59
|
if (isErrnoError(error) && error.code === "ENOENT") {
|
|
72
60
|
throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);
|
|
@@ -75,16 +63,52 @@ async function resolveCommentInput(options, stdinResolver) {
|
|
|
75
63
|
throw new PmCliError(`Failed to read --file path "${filePath}": ${detail}`, EXIT_CODE.USAGE);
|
|
76
64
|
}
|
|
77
65
|
}
|
|
66
|
+
async function resolveCommentInput(options, stdinResolver) {
|
|
67
|
+
const hasEdit = options.edit !== void 0;
|
|
68
|
+
const hasDelete = options.delete !== void 0;
|
|
69
|
+
if (hasEdit && hasDelete) {
|
|
70
|
+
throw new PmCliError("Specify only one of --edit or --delete", EXIT_CODE.USAGE);
|
|
71
|
+
}
|
|
72
|
+
if (hasDelete) {
|
|
73
|
+
const textSource2 = await resolveCommentTextSource(options, stdinResolver);
|
|
74
|
+
if (textSource2 !== void 0) {
|
|
75
|
+
throw new PmCliError("--delete does not take comment text", EXIT_CODE.USAGE);
|
|
76
|
+
}
|
|
77
|
+
return { mode: "delete", index: options.delete };
|
|
78
|
+
}
|
|
79
|
+
if (hasEdit) {
|
|
80
|
+
const textSource2 = await resolveCommentTextSource(options, stdinResolver);
|
|
81
|
+
if (textSource2 === void 0) {
|
|
82
|
+
throw new PmCliError("--edit requires replacement text via positional [text], --add, --stdin, or --file", EXIT_CODE.USAGE);
|
|
83
|
+
}
|
|
84
|
+
return {
|
|
85
|
+
mode: "edit",
|
|
86
|
+
index: options.edit,
|
|
87
|
+
value: textSource2.value,
|
|
88
|
+
emptyFlag: textSource2.emptyFlag
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
const textSource = await resolveCommentTextSource(options, stdinResolver);
|
|
92
|
+
if (textSource === void 0) {
|
|
93
|
+
return { mode: "list" };
|
|
94
|
+
}
|
|
95
|
+
const mode = textSource.emptyFlag === "--add" ? "add" : textSource.emptyFlag === "--stdin" ? "stdin" : "file";
|
|
96
|
+
return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };
|
|
97
|
+
}
|
|
78
98
|
async function runComments(id, options, global2) {
|
|
79
99
|
const stdinResolver = createStdinTokenResolver();
|
|
80
100
|
const commentInput = await resolveCommentInput(options, stdinResolver);
|
|
101
|
+
const shouldParseText = commentInput.mode === "add" || commentInput.mode === "edit";
|
|
102
|
+
const rawValue = commentInput.value ?? "";
|
|
81
103
|
return runAnnotationCommand(id, options, global2, {
|
|
82
104
|
input: {
|
|
83
105
|
...commentInput,
|
|
84
|
-
value:
|
|
106
|
+
value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue
|
|
85
107
|
},
|
|
86
108
|
collectionKey: "comments",
|
|
87
109
|
op: "comment_add",
|
|
110
|
+
editOp: "comment_edit",
|
|
111
|
+
deleteOp: "comment_delete",
|
|
88
112
|
parseText: (raw) => raw,
|
|
89
113
|
allowAuditBypass: Boolean(options.allowAuditComment),
|
|
90
114
|
conflictGuidance: {
|
|
@@ -100,4 +124,4 @@ async function runComments(id, options, global2) {
|
|
|
100
124
|
export {
|
|
101
125
|
runComments
|
|
102
126
|
};
|
|
103
|
-
//# sourceMappingURL=comments-
|
|
127
|
+
//# sourceMappingURL=comments-IWFSVM4P.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../../../../cli/commands/comments.ts"],
|
|
4
|
+
"sourcesContent": ["import { readFile } from \"node:fs/promises\";\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 { createStdinTokenResolver } from \"../../core/item/parse.js\";\nimport type { Comment } from \"../../types/index.js\";\nimport { parseAnnotationTextInput, runAnnotationCommand } from \"./annotation-command.js\";\n\nexport interface CommentsCommandOptions {\n add?: string;\n stdin?: boolean;\n file?: string;\n edit?: number;\n delete?: number;\n limit?: string;\n includeMeta?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditComment?: boolean;\n}\n\nexport interface CommentsResult {\n id: string;\n comments: Comment[];\n count: number;\n total_count?: number;\n returned_count?: number;\n has_more?: boolean;\n limit?: number;\n}\n\ninterface ResolvedCommentInput {\n mode: \"list\" | \"add\" | \"stdin\" | \"file\" | \"edit\" | \"delete\";\n value?: string;\n emptyFlag?: string;\n index?: number;\n}\n\nfunction isErrnoError(error: unknown): error is NodeJS.ErrnoException {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\n\nasync function resolveCommentTextSource(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<{ value: string; emptyFlag: string } | undefined> {\n const hasAdd = options.add !== undefined;\n const hasStdin = options.stdin === true;\n const hasFile = typeof options.file === \"string\";\n const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);\n if (sourceCount === 0) {\n return undefined;\n }\n if (sourceCount > 1) {\n throw new PmCliError(\"Specify comment text using only one input source: --add, --stdin, or --file\", EXIT_CODE.USAGE);\n }\n if (hasAdd) {\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n return { value: addInput ?? \"\", emptyFlag: \"--add\" };\n }\n if (hasStdin) {\n const stdinInput = await stdinResolver.resolveValue(\"-\", \"--stdin\");\n return { value: stdinInput ?? \"\", emptyFlag: \"--stdin\" };\n }\n const filePath = (options.file as string).trim();\n if (!filePath) {\n throw new PmCliError(\"--file path cannot be empty\", EXIT_CODE.USAGE);\n }\n try {\n const fileInput = await readFile(filePath, \"utf8\");\n return { value: fileInput, emptyFlag: \"--file\" };\n } catch (error: unknown) {\n if (isErrnoError(error) && error.code === \"ENOENT\") {\n throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);\n }\n const detail = error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Failed to read --file path \"${filePath}\": ${detail}`, EXIT_CODE.USAGE);\n }\n}\n\nasync function resolveCommentInput(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<ResolvedCommentInput> {\n const hasEdit = options.edit !== undefined;\n const hasDelete = options.delete !== undefined;\n if (hasEdit && hasDelete) {\n throw new PmCliError(\"Specify only one of --edit or --delete\", EXIT_CODE.USAGE);\n }\n\n if (hasDelete) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource !== undefined) {\n throw new PmCliError(\"--delete does not take comment text\", EXIT_CODE.USAGE);\n }\n return { mode: \"delete\", index: options.delete };\n }\n\n if (hasEdit) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n throw new PmCliError(\n \"--edit requires replacement text via positional [text], --add, --stdin, or --file\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n mode: \"edit\",\n index: options.edit,\n value: textSource.value,\n emptyFlag: textSource.emptyFlag,\n };\n }\n\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n return { mode: \"list\" };\n }\n // Map the single resolved input source back to its add/stdin/file mode so the\n // caller still knows whether to run plain-text markdown parsing (add-only).\n const mode = textSource.emptyFlag === \"--add\" ? \"add\" : textSource.emptyFlag === \"--stdin\" ? \"stdin\" : \"file\";\n return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };\n}\n\nexport async function runComments(id: string, options: CommentsCommandOptions, global: GlobalOptions): Promise<CommentsResult> {\n const stdinResolver = createStdinTokenResolver();\n const commentInput = await resolveCommentInput(options, stdinResolver);\n\n const shouldParseText = commentInput.mode === \"add\" || commentInput.mode === \"edit\";\n // list/delete carry no text (value undefined → \"\"); add/edit/stdin/file always\n // resolve to a string. Normalize once so neither branch below is unreachable.\n const rawValue = commentInput.value ?? \"\";\n return runAnnotationCommand<\"comments\", Comment>(id, options, global, {\n input: {\n ...commentInput,\n value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue,\n },\n collectionKey: \"comments\",\n op: \"comment_add\",\n editOp: \"comment_edit\",\n deleteOp: \"comment_delete\",\n parseText: (raw) => raw,\n allowAuditBypass: Boolean(options.allowAuditComment),\n conflictGuidance: {\n required:\n \"For append-only comment audits on another owner's item, prefer --allow-audit-comment before considering --force.\",\n examples: ['pm comments pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-comment'],\n nextSteps: [\n \"Retry with --allow-audit-comment for append-only audits that do not mutate item metadata beyond comments.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n },\n });\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["textSource", "global"]
|
|
7
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
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]="7ab2e7eb-a596-54e7-ac3e-5470a82b80de")}catch(e){}}();
|
|
3
3
|
import {
|
|
4
4
|
normalizeParentReferencePolicy,
|
|
5
5
|
normalizeSprintReleaseFormatPolicy
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-YGRPBFMA.js";
|
|
7
7
|
import {
|
|
8
8
|
migrateItemFilesToFormat
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-E6J2PEK6.js";
|
|
10
10
|
import {
|
|
11
11
|
buildInvalidTypeError
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-Z3MUNQRV.js";
|
|
13
|
+
import "./chunk-GAVE4MYM.js";
|
|
14
14
|
import {
|
|
15
15
|
resolveItemTypeRegistry,
|
|
16
16
|
resolveTypeName
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-ZONXMSVB.js";
|
|
18
|
+
import "./chunk-G2YVUY7I.js";
|
|
19
19
|
import {
|
|
20
20
|
CONTEXT_DEPTH_VALUES,
|
|
21
21
|
EXIT_CODE,
|
|
@@ -25,9 +25,10 @@ import {
|
|
|
25
25
|
pathExists,
|
|
26
26
|
readSettingsWithMetadata,
|
|
27
27
|
resolveGlobalPmRoot,
|
|
28
|
+
resolveItemTypesFilePath,
|
|
28
29
|
resolvePmRoot,
|
|
29
30
|
writeSettings
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-KTVETP66.js";
|
|
31
32
|
|
|
32
33
|
// dist/core/config/positional-value.js
|
|
33
34
|
var FORMAT_KEYS = /* @__PURE__ */ new Set(["item_format"]);
|
|
@@ -829,6 +830,11 @@ function normalizeKeyForAction(action, value) {
|
|
|
829
830
|
}
|
|
830
831
|
return normalizeKey(value);
|
|
831
832
|
}
|
|
833
|
+
function assertConfigKeyDefined(key) {
|
|
834
|
+
if (!key) {
|
|
835
|
+
throw new PmCliError("Config action requires <key>", EXIT_CODE.USAGE);
|
|
836
|
+
}
|
|
837
|
+
}
|
|
832
838
|
function readConfigValue(settings, key) {
|
|
833
839
|
if (key === "item_format") {
|
|
834
840
|
return settings.item_format;
|
|
@@ -1017,9 +1023,10 @@ function applyPositionalValue(action, keyValue, normalizedKey, nestedSetting, va
|
|
|
1017
1023
|
if (options.value !== void 0 && valueValue !== void 0 && options.value !== valueValue) {
|
|
1018
1024
|
throw new PmCliError(`Config set ${keyValue} received both positional value "${valueValue}" and --value "${options.value}". Pass only one.`, EXIT_CODE.USAGE);
|
|
1019
1025
|
}
|
|
1020
|
-
return { ...options, value: valueValue
|
|
1026
|
+
return { ...options, value: valueValue };
|
|
1021
1027
|
}
|
|
1022
|
-
|
|
1028
|
+
assertConfigKeyDefined(normalizedKey);
|
|
1029
|
+
const routed = resolveConfigPositionalValue(normalizedKey, valueValue);
|
|
1023
1030
|
if (!routed.routable) {
|
|
1024
1031
|
throw new PmCliError(routed.reason, EXIT_CODE.USAGE);
|
|
1025
1032
|
}
|
|
@@ -1149,9 +1156,7 @@ async function runConfig(scopeValue, actionValue, keyValue, options, global, val
|
|
|
1149
1156
|
}, warnings);
|
|
1150
1157
|
}
|
|
1151
1158
|
if (action === "get") {
|
|
1152
|
-
|
|
1153
|
-
throw new PmCliError('Config action "get" requires <key>', EXIT_CODE.USAGE);
|
|
1154
|
-
}
|
|
1159
|
+
assertConfigKeyDefined(key);
|
|
1155
1160
|
if (key === "item_format") {
|
|
1156
1161
|
return withWarnings({
|
|
1157
1162
|
scope,
|
|
@@ -1373,9 +1378,7 @@ async function runConfig(scopeValue, actionValue, keyValue, options, global, val
|
|
|
1373
1378
|
changed: false
|
|
1374
1379
|
}, warnings);
|
|
1375
1380
|
}
|
|
1376
|
-
|
|
1377
|
-
throw new PmCliError('Config action "set" requires <key>', EXIT_CODE.USAGE);
|
|
1378
|
-
}
|
|
1381
|
+
assertConfigKeyDefined(key);
|
|
1379
1382
|
if (options.clearCriteria === true && !isCriteriaConfigKey(key)) {
|
|
1380
1383
|
throw new PmCliError("--clear-criteria is only supported with config set criteria-list keys", EXIT_CODE.USAGE);
|
|
1381
1384
|
}
|
|
@@ -1647,7 +1650,7 @@ async function runConfig(scopeValue, actionValue, keyValue, options, global, val
|
|
|
1647
1650
|
const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
1648
1651
|
const resolvedType = resolveTypeName(rawType, typeRegistry);
|
|
1649
1652
|
if (!resolvedType) {
|
|
1650
|
-
throw new PmCliError(buildInvalidTypeError(rawType, typeRegistry.types), EXIT_CODE.USAGE);
|
|
1653
|
+
throw new PmCliError(buildInvalidTypeError(rawType, typeRegistry.types, resolveItemTypesFilePath(target.pmRoot, settings.schema)), EXIT_CODE.USAGE);
|
|
1651
1654
|
}
|
|
1652
1655
|
const changed2 = settings.governance.create_default_type !== resolvedType;
|
|
1653
1656
|
settings.governance.create_default_type = resolvedType;
|
|
@@ -1778,9 +1781,32 @@ async function runConfig(scopeValue, actionValue, keyValue, options, global, val
|
|
|
1778
1781
|
changed
|
|
1779
1782
|
}, warnings);
|
|
1780
1783
|
}
|
|
1784
|
+
var _testOnlyConfigCommand = {
|
|
1785
|
+
applyPositionalValue,
|
|
1786
|
+
normalizeAction,
|
|
1787
|
+
normalizeCriteria,
|
|
1788
|
+
normalizeGovernanceCloseValidationDefault,
|
|
1789
|
+
normalizeGovernanceCreateModeDefault,
|
|
1790
|
+
normalizeGovernanceForceRequiredForStaleLockPolicy,
|
|
1791
|
+
normalizeGovernanceOwnershipEnforcement,
|
|
1792
|
+
normalizeGovernancePreset,
|
|
1793
|
+
normalizeGovernanceRequireCloseReasonPolicy,
|
|
1794
|
+
normalizeGovernanceWorkflowEnforcement,
|
|
1795
|
+
normalizeHistoryMissingStreamPolicy,
|
|
1796
|
+
normalizeItemFormat,
|
|
1797
|
+
normalizeKey,
|
|
1798
|
+
normalizeMetadataRequiredFields,
|
|
1799
|
+
normalizePolicyForConflict,
|
|
1800
|
+
normalizeScope,
|
|
1801
|
+
normalizeTelemetryTrackingPolicy,
|
|
1802
|
+
normalizeTestResultTrackingPolicy,
|
|
1803
|
+
normalizeValidateMetadataProfile,
|
|
1804
|
+
normalizeWarnings
|
|
1805
|
+
};
|
|
1781
1806
|
export {
|
|
1807
|
+
_testOnlyConfigCommand,
|
|
1782
1808
|
runConfig
|
|
1783
1809
|
};
|
|
1784
|
-
//# sourceMappingURL=config-
|
|
1810
|
+
//# sourceMappingURL=config-IOJELD6O.js.map
|
|
1785
1811
|
|
|
1786
|
-
//# debugId=
|
|
1812
|
+
//# debugId=7ab2e7eb-a596-54e7-ac3e-5470a82b80de
|