@unbrained/pm-cli 2026.6.13 → 2026.6.17
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 +102 -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 +362 -15
- 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 +51 -0
- package/dist/cli/commands/create.js +137 -18
- 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 +4 -1
- package/dist/cli/commands/index.js +6 -3
- 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 +38 -2
- package/dist/cli/commands/init.js +50 -64
- 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/lifecycle-transitions.d.ts +23 -0
- package/dist/cli/commands/lifecycle-transitions.js +41 -0
- package/dist/cli/commands/lifecycle-transitions.js.map +1 -0
- package/dist/cli/commands/linked-artifacts.d.ts +5 -0
- package/dist/cli/commands/linked-artifacts.js +18 -4
- package/dist/cli/commands/linked-artifacts.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/recurrence-parsers.d.ts +9 -0
- package/dist/cli/commands/recurrence-parsers.js +19 -2
- package/dist/cli/commands/recurrence-parsers.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/repeatable-metadata-parsers.js +28 -4
- package/dist/cli/commands/repeatable-metadata-parsers.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/scheduling-shortcuts.d.ts +43 -0
- package/dist/cli/commands/scheduling-shortcuts.js +87 -0
- package/dist/cli/commands/scheduling-shortcuts.js.map +1 -0
- package/dist/cli/commands/schema.d.ts +152 -2
- package/dist/cli/commands/schema.js +510 -4
- 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 +91 -11
- 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 +54 -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 +242 -0
- package/dist/cli/main.js +241 -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 +376 -100
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-operations.d.ts +8 -0
- package/dist/cli/register-operations.js +134 -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-PZYSZA26.js +18 -0
- package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js → activity-SFM4THAU.js} +13 -11
- package/dist/cli-bundle/chunks/{aggregate-IRHJWEKG.js → aggregate-Y5ADDKBM.js} +55 -26
- package/dist/cli-bundle/chunks/aggregate-Y5ADDKBM.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-XEBW22UQ.js → aggregate-YTAUQLRW.js} +54 -25
- package/dist/cli-bundle/chunks/aggregate-YTAUQLRW.js.map +7 -0
- package/dist/cli-bundle/chunks/{append-NL67JNJU.js → append-4M7OVV7M.js} +11 -11
- package/dist/cli-bundle/chunks/append-4M7OVV7M.js.map +1 -0
- package/dist/cli-bundle/chunks/{append-N2AWXKZC.js → append-HSPK4L4V.js} +10 -10
- package/dist/cli-bundle/chunks/{append-N2AWXKZC.js.map → append-HSPK4L4V.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js → chunk-26BM6YLO.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js → chunk-2C6FU3D3.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-CEGUH2E5.js.map → chunk-2C6FU3D3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-SQDKAEKG.js → chunk-2OPYLXDO.js} +117 -37
- package/dist/cli-bundle/chunks/chunk-2OPYLXDO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4ZKKZMLH.js → chunk-2S46FKLB.js} +104 -30
- package/dist/cli-bundle/chunks/chunk-2S46FKLB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js → chunk-2TMKMTEI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js → chunk-2VH7DFSJ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RHYBR6G7.js → chunk-3ENF4NO4.js} +74 -14
- package/dist/cli-bundle/chunks/chunk-3ENF4NO4.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-3GR2HTYY.js +404 -0
- package/dist/cli-bundle/chunks/chunk-3GR2HTYY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AAUYXSFF.js → chunk-3R3FYCBV.js} +223 -50
- package/dist/cli-bundle/chunks/chunk-3R3FYCBV.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-5HSAHRYA.js → chunk-3UKJX3RP.js} +82 -21
- package/dist/cli-bundle/chunks/chunk-3UKJX3RP.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-4RTLBTYS.js +83 -0
- package/dist/cli-bundle/chunks/chunk-4RTLBTYS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-UCVJP4JL.js → chunk-5FDYWOJT.js} +52 -8
- package/dist/cli-bundle/chunks/chunk-5FDYWOJT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js → chunk-5XGWFUW2.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LYNQ3NGI.js → chunk-6BD77FGL.js} +309 -20
- package/dist/cli-bundle/chunks/chunk-6BD77FGL.js.map +1 -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-36BCSMKP.js → chunk-6HF6CIY2.js} +26 -11
- package/dist/cli-bundle/chunks/chunk-6HF6CIY2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-M3SI2REU.js → chunk-6PBPD4MN.js} +322 -19
- package/dist/cli-bundle/chunks/chunk-6PBPD4MN.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TSXWFN3L.js → chunk-6VFUEGOA.js} +53 -9
- package/dist/cli-bundle/chunks/chunk-6VFUEGOA.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2J2AH4V5.js → chunk-AAOXSPAE.js} +56 -72
- package/dist/cli-bundle/chunks/chunk-AAOXSPAE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js → chunk-AJCQ5GT6.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-ALTGYHN3.js +61 -0
- package/dist/cli-bundle/chunks/chunk-ALTGYHN3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KHGTYCJ6.js → chunk-AOJQL33L.js} +83 -22
- package/dist/cli-bundle/chunks/chunk-AOJQL33L.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js → chunk-AXLDUGXA.js} +7 -4
- package/dist/cli-bundle/chunks/{chunk-5LMF75Q7.js.map → chunk-AXLDUGXA.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js → chunk-BITCVGHT.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js → chunk-CGQTFWYI.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LFW5NQUP.js → chunk-CHM2VFVL.js} +407 -290
- package/dist/cli-bundle/chunks/chunk-CHM2VFVL.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js → chunk-COVLE33A.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SGMGMCIF.js → chunk-DDNBWH4W.js} +157 -25
- package/dist/cli-bundle/chunks/chunk-DDNBWH4W.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js → chunk-F5MSD5HE.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6TBR5AZ2.js → chunk-FAXB6F6R.js} +76 -8
- package/dist/cli-bundle/chunks/chunk-FAXB6F6R.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-L6YQONLM.js → chunk-FPDK5BZQ.js} +18 -19
- package/dist/cli-bundle/chunks/chunk-FPDK5BZQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AGG32LKL.js → chunk-FPY2TOFI.js} +480 -24
- package/dist/cli-bundle/chunks/chunk-FPY2TOFI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JWXTOYBI.js → chunk-G2MOUCTU.js} +121 -44
- package/dist/cli-bundle/chunks/chunk-G2MOUCTU.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3VULHQNS.js → chunk-G57RHEGP.js} +36 -18
- package/dist/cli-bundle/chunks/chunk-G57RHEGP.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-QQG4HEX7.js → chunk-IROHIK2T.js} +37 -63
- package/dist/cli-bundle/chunks/chunk-IROHIK2T.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js → chunk-JZHL4E3Q.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-XXLMJDUB.js → chunk-KA22USXD.js} +21 -22
- package/dist/cli-bundle/chunks/chunk-KA22USXD.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WLH7X4RN.js → chunk-KBC4O7SY.js} +56 -72
- package/dist/cli-bundle/chunks/chunk-KBC4O7SY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js → chunk-KCAGIH6K.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-BVL5KGVA.js → chunk-KO3VM5GS.js} +27 -12
- package/dist/cli-bundle/chunks/chunk-KO3VM5GS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-IXVSSHGV.js → chunk-LNH5Q32E.js} +13 -8
- package/dist/cli-bundle/chunks/chunk-LNH5Q32E.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js → chunk-LORM3M2I.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-3FMQMHAG.js.map → chunk-LORM3M2I.js.map} +1 -1
- 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-GFBEXDCQ.js → chunk-M4AVU7VC.js} +19 -8
- package/dist/cli-bundle/chunks/{chunk-GFBEXDCQ.js.map → chunk-M4AVU7VC.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js → chunk-MIBX6ZRN.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AUDDXKNX.js → chunk-MMF2E3FM.js} +77 -9
- package/dist/cli-bundle/chunks/chunk-MMF2E3FM.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-RFR2YQGO.js → chunk-MORZOR7W.js} +21 -8
- package/dist/cli-bundle/chunks/chunk-MORZOR7W.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4TPFXE2R.js → chunk-MUTUZ2HD.js} +118 -74
- package/dist/cli-bundle/chunks/chunk-MUTUZ2HD.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HZOX5BYD.js → chunk-OGXEBTX3.js} +35 -17
- package/dist/cli-bundle/chunks/chunk-OGXEBTX3.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js → chunk-OOIH6J5T.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-LOAR5TKX.js.map → chunk-OOIH6J5T.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-VNC2HBL4.js → chunk-OSBJPPX3.js} +20 -9
- package/dist/cli-bundle/chunks/chunk-OSBJPPX3.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2ANTZBYF.js → chunk-PJS3WDO2.js} +122 -45
- package/dist/cli-bundle/chunks/chunk-PJS3WDO2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7SM7VA5I.js → chunk-QGPE2H6Z.js} +19 -8
- package/dist/cli-bundle/chunks/chunk-QGPE2H6Z.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-QVTFFLR2.js +58 -0
- package/dist/cli-bundle/chunks/chunk-QVTFFLR2.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js → chunk-QW2F6ARZ.js} +8 -5
- package/dist/cli-bundle/chunks/{chunk-JCTZV7TO.js.map → chunk-QW2F6ARZ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-TOX7YQ7X.js → chunk-QXC3LWB7.js} +223 -50
- package/dist/cli-bundle/chunks/chunk-QXC3LWB7.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W6KNFAMZ.js → chunk-QXMXRPX5.js} +9 -8
- package/dist/cli-bundle/chunks/chunk-QXMXRPX5.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js → chunk-R4AKUPKI.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-O3YCJOVX.js.map → chunk-R4AKUPKI.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-RASR23HV.js +394 -0
- package/dist/cli-bundle/chunks/chunk-RASR23HV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JW7D6437.js → chunk-SCDCNGCV.js} +20 -9
- package/dist/cli-bundle/chunks/chunk-SCDCNGCV.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js → chunk-SCS5PVAA.js} +10 -9
- package/dist/cli-bundle/chunks/{chunk-GRZGHGRG.js.map → chunk-SCS5PVAA.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-S2CDTRJ6.js → chunk-SJCMTOEU.js} +381 -271
- package/dist/cli-bundle/chunks/chunk-SJCMTOEU.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js → chunk-SO2ES46D.js} +11 -10
- package/dist/cli-bundle/chunks/{chunk-XWDZVCBJ.js.map → chunk-SO2ES46D.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-MACCNKSZ.js → chunk-TBV33CB4.js} +36 -62
- package/dist/cli-bundle/chunks/chunk-TBV33CB4.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-TEFEXQWI.js +86 -0
- package/dist/cli-bundle/chunks/chunk-TEFEXQWI.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-HLEGAQXT.js → chunk-TWBDDVIF.js} +20 -7
- package/dist/cli-bundle/chunks/chunk-TWBDDVIF.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4JHJ7YG2.js → chunk-UGUJ2UOR.js} +118 -74
- package/dist/cli-bundle/chunks/chunk-UGUJ2UOR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js → chunk-UN6P3IJ4.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-32XSW44C.js → chunk-V2GYOMEX.js} +10 -9
- package/dist/cli-bundle/chunks/chunk-V2GYOMEX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-HWHONML5.js → chunk-VF3KQGNY.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-SOHXUA2Q.js → chunk-VHG6LUKR.js} +116 -36
- package/dist/cli-bundle/chunks/chunk-VHG6LUKR.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7CRFV6JR.js → chunk-VXHMQDXA.js} +483 -27
- package/dist/cli-bundle/chunks/chunk-VXHMQDXA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-IZHCCG4S.js → chunk-VXRFAE7W.js} +14 -9
- package/dist/cli-bundle/chunks/chunk-VXRFAE7W.js.map +1 -0
- 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-4FHLNNW7.js → chunk-WQRL4COW.js} +74 -14
- package/dist/cli-bundle/chunks/chunk-WQRL4COW.js.map +7 -0
- 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-MGAQ6KZG.js → chunk-XESAPVZ4.js} +166 -27
- package/dist/cli-bundle/chunks/chunk-XESAPVZ4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-PEH7SZD2.js → chunk-YLAW3FZN.js} +105 -31
- package/dist/cli-bundle/chunks/chunk-YLAW3FZN.js.map +7 -0
- package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js → claim-WGAWJCPY.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js → claim-ZI6P4LMU.js} +10 -10
- package/dist/cli-bundle/chunks/close-I7PRQ5G7.js +13 -0
- package/dist/cli-bundle/chunks/{close-SPUFW5QR.js → close-JMVVSIQE.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-GKAJX54X.js → close-many-IKPJXVOZ.js} +32 -20
- package/dist/cli-bundle/chunks/close-many-IKPJXVOZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{close-many-GL6NRUU5.js → close-many-TXABDCSJ.js} +31 -19
- package/dist/cli-bundle/chunks/close-many-TXABDCSJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{comments-5FPT6L7N.js → comments-RLWR2S7W.js} +55 -31
- package/dist/cli-bundle/chunks/comments-RLWR2S7W.js.map +1 -0
- package/dist/cli-bundle/chunks/{comments-TOLOYWNI.js → comments-YAMXKHUX.js} +54 -30
- package/dist/cli-bundle/chunks/comments-YAMXKHUX.js.map +7 -0
- package/dist/cli-bundle/chunks/{config-7N6D7YJE.js → config-7ICYC2WU.js} +83 -19
- package/dist/cli-bundle/chunks/config-7ICYC2WU.js.map +7 -0
- package/dist/cli-bundle/chunks/{config-4MN45TIH.js → config-NGWN3EXC.js} +83 -19
- package/dist/cli-bundle/chunks/config-NGWN3EXC.js.map +1 -0
- package/dist/cli-bundle/chunks/{context-AQSLE7DZ.js → context-K6QAHN5H.js} +128 -39
- package/dist/cli-bundle/chunks/context-K6QAHN5H.js.map +1 -0
- package/dist/cli-bundle/chunks/{context-U3PUJMVN.js → context-VGXOOAH2.js} +127 -38
- package/dist/cli-bundle/chunks/context-VGXOOAH2.js.map +7 -0
- package/dist/cli-bundle/chunks/{contracts-ITSJXO3O.js → contracts-KJGY2AQA.js} +99 -15
- package/dist/cli-bundle/chunks/contracts-KJGY2AQA.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-H7KCQXLY.js → contracts-KMA6OJY7.js} +99 -15
- package/dist/cli-bundle/chunks/contracts-KMA6OJY7.js.map +7 -0
- package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js → copy-Q2PPU4AY.js} +7 -7
- package/dist/cli-bundle/chunks/{copy-C4W522JM.js → copy-SC6UF3PI.js} +7 -7
- package/dist/cli-bundle/chunks/{create-4EQNELMY.js → create-76FE7JVF.js} +16 -13
- package/dist/cli-bundle/chunks/create-RTRFW6RE.js +30 -0
- package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js → delete-T6DJSUJI.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js → delete-XFUX533E.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js → deps-5GWMMS6D.js} +9 -10
- package/dist/cli-bundle/chunks/{deps-GPB3LGWN.js.map → deps-5GWMMS6D.js.map} +2 -2
- package/dist/cli-bundle/chunks/{deps-HV2C2L46.js → deps-MCCU633S.js} +10 -11
- package/dist/cli-bundle/chunks/deps-MCCU633S.js.map +1 -0
- package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js → docs-HE3HCQ4S.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-RJQPLROO.js → docs-SXMOABHR.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js → extension-E23K4QRR.js} +7 -5
- package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js → extension-PMD3XMLN.js} +7 -5
- package/dist/cli-bundle/chunks/{files-OIFN3DQX.js → files-2RSWGPEU.js} +25 -11
- package/dist/cli-bundle/chunks/files-2RSWGPEU.js.map +1 -0
- package/dist/cli-bundle/chunks/{files-LIFDKNCN.js → files-ZWFJFWBK.js} +24 -10
- package/dist/cli-bundle/chunks/files-ZWFJFWBK.js.map +7 -0
- package/dist/cli-bundle/chunks/focus-KTTB3P3F.js +106 -0
- package/dist/cli-bundle/chunks/focus-KTTB3P3F.js.map +1 -0
- package/dist/cli-bundle/chunks/focus-ZMDP4FEL.js +109 -0
- package/dist/cli-bundle/chunks/focus-ZMDP4FEL.js.map +7 -0
- package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js → gc-BXIAKLAH.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js → gc-C7K6JNUO.js} +3 -3
- package/dist/cli-bundle/chunks/{get-SAB7CRBG.js → get-AZQLC4NO.js} +43 -16
- package/dist/cli-bundle/chunks/get-AZQLC4NO.js.map +1 -0
- package/dist/cli-bundle/chunks/{get-K7UULTQF.js → get-I65HTAWO.js} +42 -15
- package/dist/cli-bundle/chunks/get-I65HTAWO.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-NUVZYIEV.js → health-3MFFPQVZ.js} +75 -49
- package/dist/cli-bundle/chunks/health-3MFFPQVZ.js.map +1 -0
- package/dist/cli-bundle/chunks/{health-VJWH3ZFK.js → health-MYZEOCLI.js} +74 -48
- package/dist/cli-bundle/chunks/health-MYZEOCLI.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-GYFD2DJW.js → history-73Z6OBFZ.js} +10 -10
- package/dist/cli-bundle/chunks/history-BIPHVUMF.js +20 -0
- package/dist/cli-bundle/chunks/{history-compact-WQZQ6KXM.js → history-compact-24VQ63A3.js} +37 -46
- package/dist/cli-bundle/chunks/history-compact-24VQ63A3.js.map +7 -0
- package/dist/cli-bundle/chunks/{history-compact-SLL6ESXH.js → history-compact-UIAR2OI4.js} +38 -47
- package/dist/cli-bundle/chunks/history-compact-UIAR2OI4.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js → history-redact-7YCXEWJD.js} +13 -11
- package/dist/cli-bundle/chunks/history-redact-WZZ6GZ2Z.js +21 -0
- package/dist/cli-bundle/chunks/{history-repair-BJCGM6Q3.js → history-repair-4NOFFG2W.js} +44 -49
- package/dist/cli-bundle/chunks/history-repair-4NOFFG2W.js.map +1 -0
- package/dist/cli-bundle/chunks/{history-repair-UCYS55ZX.js → history-repair-GQN2X4TR.js} +43 -48
- package/dist/cli-bundle/chunks/history-repair-GQN2X4TR.js.map +7 -0
- package/dist/cli-bundle/chunks/init-K34V4PZR.js +20 -0
- package/dist/cli-bundle/chunks/{init-MXV57LKL.js → init-TDEDNVMM.js} +12 -9
- package/dist/cli-bundle/chunks/{learnings-QKJOKEAO.js → learnings-TV2CTGJ3.js} +13 -12
- package/dist/cli-bundle/chunks/learnings-TV2CTGJ3.js.map +7 -0
- package/dist/cli-bundle/chunks/{learnings-L6KTZGOT.js → learnings-U67FTXPB.js} +14 -13
- package/dist/cli-bundle/chunks/learnings-U67FTXPB.js.map +1 -0
- package/dist/cli-bundle/chunks/list-MSHYOCFU.js +33 -0
- package/dist/cli-bundle/chunks/list-VV57WGUD.js +29 -0
- package/dist/cli-bundle/chunks/{notes-HMCB7TK6.js → notes-EUANWWKD.js} +13 -12
- package/dist/cli-bundle/chunks/notes-EUANWWKD.js.map +7 -0
- package/dist/cli-bundle/chunks/{notes-3NLK7WTZ.js → notes-GYVNDAL4.js} +14 -13
- package/dist/cli-bundle/chunks/notes-GYVNDAL4.js.map +1 -0
- package/dist/cli-bundle/chunks/{plan-NANUWH4T.js → plan-4LF4AV63.js} +15 -14
- package/dist/cli-bundle/chunks/plan-4LF4AV63.js.map +7 -0
- package/dist/cli-bundle/chunks/{plan-DWBYI5C6.js → plan-W27O6DBS.js} +16 -15
- package/dist/cli-bundle/chunks/plan-W27O6DBS.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-SMMMLSWW.js → register-list-query-BXLEHJ7L.js} +32 -23
- package/dist/cli-bundle/chunks/register-list-query-BXLEHJ7L.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-list-query-PWQ5F2VI.js → register-list-query-C2MS3BVQ.js} +31 -22
- package/dist/cli-bundle/chunks/register-list-query-C2MS3BVQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-QKFPTIZG.js → register-mutation-6UCOEQ6L.js} +361 -106
- package/dist/cli-bundle/chunks/register-mutation-6UCOEQ6L.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-ZYJQ4DVP.js → register-mutation-HE73PREP.js} +355 -107
- package/dist/cli-bundle/chunks/register-mutation-HE73PREP.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-2FMZ6WEF.js → register-operations-L6C32FDA.js} +111 -39
- package/dist/cli-bundle/chunks/register-operations-L6C32FDA.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-operations-BAFQURZG.js → register-operations-QQEHEX4P.js} +112 -40
- package/dist/cli-bundle/chunks/register-operations-QQEHEX4P.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-QN2XV7UL.js → register-setup-A7N4PNT3.js} +18 -21
- package/dist/cli-bundle/chunks/register-setup-A7N4PNT3.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-setup-DQEIKBIP.js → register-setup-WHG3NBP6.js} +17 -20
- package/dist/cli-bundle/chunks/register-setup-WHG3NBP6.js.map +7 -0
- package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js → restore-TSWSULYY.js} +13 -11
- package/dist/cli-bundle/chunks/restore-XQXICL3V.js +19 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-NC46K6BD.js +91 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-NC46K6BD.js.map +7 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-UGDPQALY.js +88 -0
- package/dist/cli-bundle/chunks/scheduling-shortcuts-UGDPQALY.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-ZZ7ZDM2X.js → schema-7U7JUYGK.js} +797 -10
- package/dist/cli-bundle/chunks/schema-7U7JUYGK.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-RNVJ55V2.js → schema-TSBYSEMW.js} +810 -9
- package/dist/cli-bundle/chunks/schema-TSBYSEMW.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-BJ457C2A.js → search-OXLSQKHP.js} +328 -71
- package/dist/cli-bundle/chunks/search-OXLSQKHP.js.map +7 -0
- package/dist/cli-bundle/chunks/{search-FQDZXX7P.js → search-T3TOFLOQ.js} +328 -71
- package/dist/cli-bundle/chunks/search-T3TOFLOQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{stats-DUQWCVOS.js → stats-5CLG22YZ.js} +41 -16
- package/dist/cli-bundle/chunks/stats-5CLG22YZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{stats-CUG3ZHOI.js → stats-XEMUXS42.js} +42 -17
- package/dist/cli-bundle/chunks/stats-XEMUXS42.js.map +1 -0
- package/dist/cli-bundle/chunks/{telemetry-RK2VX75A.js → telemetry-23OPBBZT.js} +7 -7
- package/dist/cli-bundle/chunks/telemetry-23OPBBZT.js.map +1 -0
- package/dist/cli-bundle/chunks/{telemetry-33MRGX4Z.js → telemetry-I3D7XZ55.js} +6 -6
- package/dist/cli-bundle/chunks/telemetry-I3D7XZ55.js.map +7 -0
- package/dist/cli-bundle/chunks/test-AROS3LIV.js +35 -0
- package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js → test-CECIMKOA.js} +17 -14
- package/dist/cli-bundle/chunks/{test-all-ARSMX33Q.js → test-all-4DEQPIXH.js} +25 -17
- package/dist/cli-bundle/chunks/test-all-4DEQPIXH.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-all-ANYQ33O2.js → test-all-6RO6X3SM.js} +24 -16
- package/dist/cli-bundle/chunks/test-all-6RO6X3SM.js.map +7 -0
- package/dist/cli-bundle/chunks/{test-runs-5URSD34O.js → test-runs-AAXVFWKH.js} +62 -65
- package/dist/cli-bundle/chunks/test-runs-AAXVFWKH.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-XNACGSNQ.js → test-runs-LYBQSYRC.js} +61 -64
- package/dist/cli-bundle/chunks/test-runs-LYBQSYRC.js.map +7 -0
- package/dist/cli-bundle/chunks/update-MIWEJC76.js +24 -0
- package/dist/cli-bundle/chunks/update-P7I5YSRB.js +28 -0
- package/dist/cli-bundle/chunks/{update-many-724JCVDE.js → update-many-5B4HLVBK.js} +79 -33
- package/dist/cli-bundle/chunks/update-many-5B4HLVBK.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-many-6B7PJ33I.js → update-many-G2QOVZSB.js} +80 -34
- package/dist/cli-bundle/chunks/update-many-G2QOVZSB.js.map +1 -0
- package/dist/cli-bundle/chunks/{upgrade-QHRGDBSA.js → upgrade-GFIDL62L.js} +23 -9
- package/dist/cli-bundle/chunks/upgrade-GFIDL62L.js.map +1 -0
- package/dist/cli-bundle/chunks/{upgrade-ALBEZAI7.js → upgrade-QUQYL7D3.js} +22 -8
- package/dist/cli-bundle/chunks/upgrade-QUQYL7D3.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-UY6DRCG5.js → validate-ADDZBMM3.js} +236 -30
- package/dist/cli-bundle/chunks/validate-ADDZBMM3.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-IQRYFXIV.js → validate-MAS3H6ZP.js} +222 -30
- package/dist/cli-bundle/chunks/validate-MAS3H6ZP.js.map +1 -0
- package/dist/cli-bundle/main.js +312 -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/config/nested-settings.js +40 -2
- package/dist/core/config/nested-settings.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 +41 -0
- package/dist/core/item/parse.js +69 -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/fields-file.d.ts +94 -0
- package/dist/core/schema/fields-file.js +317 -0
- package/dist/core/schema/fields-file.js.map +1 -0
- 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/schema/type-inference.d.ts +34 -0
- package/dist/core/schema/type-inference.js +97 -0
- package/dist/core/schema/type-inference.js.map +1 -0
- package/dist/core/schema/type-presets.d.ts +30 -0
- package/dist/core/schema/type-presets.js +96 -0
- package/dist/core/schema/type-presets.js.map +1 -0
- 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/front-matter-cache.d.ts +13 -0
- package/dist/core/store/front-matter-cache.js +21 -11
- package/dist/core/store/front-matter-cache.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 +98 -8
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +64 -10
- 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 +7 -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 +127 -11
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +31 -0
- package/dist/sdk/cli-contracts.js +238 -12
- 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 +171 -10
- package/docs/CONFIGURATION.md +135 -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-HLEGAQXT.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-RFR2YQGO.js.map +0 -1
- 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-PZYSZA26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-PPO7QWJF.js.map → activity-SFM4THAU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IIOIBAQW.js.map → chunk-26BM6YLO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LSSTKL3Y.js.map → chunk-2TMKMTEI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-QU3OPNVV.js.map → chunk-2VH7DFSJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LGOXXQUW.js.map → chunk-5XGWFUW2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Z647PYLD.js.map → chunk-AJCQ5GT6.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DWG4FHPY.js.map → chunk-BITCVGHT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JE5IZXDS.js.map → chunk-CGQTFWYI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VYZNX4C5.js.map → chunk-COVLE33A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-6ZFTM65G.js.map → chunk-F5MSD5HE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GOO4UXBI.js.map → chunk-JZHL4E3Q.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NN6RKGFW.js.map → chunk-KCAGIH6K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3CQPVBK3.js.map → chunk-MIBX6ZRN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XOYHMHFF.js.map → chunk-UN6P3IJ4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HWHONML5.js.map → chunk-VF3KQGNY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-HE6KEGJW.js.map → claim-WGAWJCPY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-QJOQBH7J.js.map → claim-ZI6P4LMU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-WOG5WTMZ.js.map → close-I7PRQ5G7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-SPUFW5QR.js.map → close-JMVVSIQE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-EB3MUCSW.js.map → copy-Q2PPU4AY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{copy-C4W522JM.js.map → copy-SC6UF3PI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-4EQNELMY.js.map → create-76FE7JVF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-NW3K7LVG.js.map → create-RTRFW6RE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-X5QLXIQX.js.map → delete-T6DJSUJI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZLGUYIXU.js.map → delete-XFUX533E.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-SRTLCQOL.js.map → docs-HE3HCQ4S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-RJQPLROO.js.map → docs-SXMOABHR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-WKPVPNCC.js.map → extension-E23K4QRR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-MM3TVWOO.js.map → extension-PMD3XMLN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-NRFHLVFT.js.map → gc-BXIAKLAH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-DL6AVOX5.js.map → gc-C7K6JNUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-GYFD2DJW.js.map → history-73Z6OBFZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-IUVN4NTN.js.map → history-BIPHVUMF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-SDTDR6WM.js.map → history-redact-7YCXEWJD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-75KIIJUJ.js.map → history-redact-WZZ6GZ2Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-JJFYRUKG.js.map → init-K34V4PZR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-MXV57LKL.js.map → init-TDEDNVMM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-GGVPXEV6.js.map → list-MSHYOCFU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-VOQDQHA4.js.map → list-VV57WGUD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-FJQWXMPY.js.map → restore-TSWSULYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-DRBNXJJH.js.map → restore-XQXICL3V.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-SDMYEQHH.js.map → test-AROS3LIV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-Y3CTFMEC.js.map → test-CECIMKOA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-PD46VOXI.js.map → update-MIWEJC76.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-U235A7WP.js.map → update-P7I5YSRB.js.map} +0 -0
|
@@ -1,30 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TYPE_PRESET_NAMES,
|
|
3
|
+
normalizeTypePresetName,
|
|
4
|
+
resolveTypePresetDefinitions
|
|
5
|
+
} from "./chunk-TEFEXQWI.js";
|
|
1
6
|
import {
|
|
2
7
|
assertAliasesAvailable,
|
|
8
|
+
assertTypeFolderAvailable,
|
|
3
9
|
buildInvalidTypeHint,
|
|
4
10
|
escapeForDoubleQuotes,
|
|
11
|
+
matchBuiltinTypeName,
|
|
5
12
|
normalizeAddTypeInput,
|
|
6
13
|
parseItemTypesFile,
|
|
7
14
|
removeItemType,
|
|
8
15
|
serializeItemTypesFile,
|
|
9
16
|
upsertItemType
|
|
10
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-5FDYWOJT.js";
|
|
11
18
|
import {
|
|
12
19
|
acquireLock,
|
|
13
20
|
listAllFrontMatterLight
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-KA22USXD.js";
|
|
22
|
+
import "./chunk-5XGWFUW2.js";
|
|
23
|
+
import "./chunk-TBV33CB4.js";
|
|
17
24
|
import {
|
|
18
25
|
resolveItemTypeRegistry
|
|
19
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-QXMXRPX5.js";
|
|
20
27
|
import {
|
|
21
28
|
nowIso
|
|
22
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-LNH5Q32E.js";
|
|
23
30
|
import {
|
|
24
31
|
DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,
|
|
25
32
|
DEFAULT_RUNTIME_STATUS_DEFINITIONS,
|
|
26
33
|
EXIT_CODE,
|
|
27
34
|
PmCliError,
|
|
35
|
+
RUNTIME_FIELD_COMMAND_VALUES,
|
|
36
|
+
RUNTIME_FIELD_TYPE_VALUES,
|
|
28
37
|
RUNTIME_STATUS_ROLE_VALUES,
|
|
29
38
|
filePathForSchemaSection,
|
|
30
39
|
getActiveExtensionRegistrations,
|
|
@@ -35,10 +44,11 @@ import {
|
|
|
35
44
|
readSettings,
|
|
36
45
|
resolveGovernanceKnobs,
|
|
37
46
|
resolvePmRoot,
|
|
47
|
+
resolveRuntimeFieldRegistry,
|
|
38
48
|
resolveRuntimeStatusRegistry,
|
|
39
49
|
runActiveOnWriteHooks,
|
|
40
50
|
writeFileAtomic
|
|
41
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-CHM2VFVL.js";
|
|
42
52
|
|
|
43
53
|
// dist/core/schema/status-defs-file.js
|
|
44
54
|
!(function() {
|
|
@@ -222,11 +232,321 @@ function assertStatusTokensAvailable(input, resolvedAliasToId) {
|
|
|
222
232
|
}
|
|
223
233
|
}
|
|
224
234
|
|
|
235
|
+
// dist/core/schema/fields-file.js
|
|
236
|
+
!(function() {
|
|
237
|
+
try {
|
|
238
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
239
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "01bca6b9-49d3-5785-9d18-8399a0aac293");
|
|
240
|
+
} catch (e2) {
|
|
241
|
+
}
|
|
242
|
+
})();
|
|
243
|
+
var RUNTIME_FIELD_TYPE_SET = new Set(RUNTIME_FIELD_TYPE_VALUES);
|
|
244
|
+
var RUNTIME_FIELD_COMMAND_SET = new Set(RUNTIME_FIELD_COMMAND_VALUES);
|
|
245
|
+
var BUILTIN_FIELD_KEYS = /* @__PURE__ */ new Set([
|
|
246
|
+
"id",
|
|
247
|
+
"title",
|
|
248
|
+
"type",
|
|
249
|
+
"status",
|
|
250
|
+
"priority",
|
|
251
|
+
"tags",
|
|
252
|
+
"assignee",
|
|
253
|
+
"parent",
|
|
254
|
+
"description",
|
|
255
|
+
"body",
|
|
256
|
+
"created_at",
|
|
257
|
+
"updated_at",
|
|
258
|
+
"closed_at",
|
|
259
|
+
"author",
|
|
260
|
+
"deadline",
|
|
261
|
+
"estimate",
|
|
262
|
+
"sprint",
|
|
263
|
+
"release",
|
|
264
|
+
"risk",
|
|
265
|
+
"confidence",
|
|
266
|
+
"reviewer",
|
|
267
|
+
"resolution",
|
|
268
|
+
"expected",
|
|
269
|
+
"actual"
|
|
270
|
+
]);
|
|
271
|
+
var DEFAULT_FIELD_COMMANDS = ["create", "update"];
|
|
272
|
+
function normalizeFieldKey(value) {
|
|
273
|
+
return typeof value === "string" ? value.trim().toLowerCase().replaceAll(/[\s-]+/g, "_") : "";
|
|
274
|
+
}
|
|
275
|
+
function normalizeCliToken(value) {
|
|
276
|
+
if (typeof value !== "string") {
|
|
277
|
+
return "";
|
|
278
|
+
}
|
|
279
|
+
const collapsed = value.trim().toLowerCase().replaceAll(/[\s_]+/g, "-");
|
|
280
|
+
return collapsed.startsWith("--") ? collapsed.slice(2) : collapsed;
|
|
281
|
+
}
|
|
282
|
+
function keyToDefaultCliFlag(key) {
|
|
283
|
+
return key.replaceAll("_", "-");
|
|
284
|
+
}
|
|
285
|
+
function dedupeCliTokens(values, exclude) {
|
|
286
|
+
const seen = /* @__PURE__ */ new Set();
|
|
287
|
+
for (const value of values) {
|
|
288
|
+
const token = normalizeCliToken(value);
|
|
289
|
+
if (token.length > 0 && token !== exclude) {
|
|
290
|
+
seen.add(token);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return [...seen].sort((left, right) => left.localeCompare(right));
|
|
294
|
+
}
|
|
295
|
+
function dedupeStringList(values) {
|
|
296
|
+
const seen = /* @__PURE__ */ new Set();
|
|
297
|
+
for (const value of values ?? []) {
|
|
298
|
+
const trimmed = value.trim();
|
|
299
|
+
if (trimmed.length > 0) {
|
|
300
|
+
seen.add(trimmed);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return [...seen].sort((left, right) => left.localeCompare(right));
|
|
304
|
+
}
|
|
305
|
+
function normalizeAddFieldInput(raw) {
|
|
306
|
+
const key = normalizeFieldKey(raw.key);
|
|
307
|
+
if (key.length === 0) {
|
|
308
|
+
throw new Error("Field key must not be empty.");
|
|
309
|
+
}
|
|
310
|
+
if (BUILTIN_FIELD_KEYS.has(key)) {
|
|
311
|
+
throw new Error(`Cannot define custom field "${key}": it shadows a built-in field. Built-in fields are reserved.`);
|
|
312
|
+
}
|
|
313
|
+
const typeCandidate = typeof raw.type === "string" && raw.type.trim().length > 0 ? raw.type.trim().toLowerCase() : "string";
|
|
314
|
+
if (!RUNTIME_FIELD_TYPE_SET.has(typeCandidate)) {
|
|
315
|
+
throw new Error(`Invalid field type "${raw.type}". Allowed: ${RUNTIME_FIELD_TYPE_VALUES.join(", ")}.`);
|
|
316
|
+
}
|
|
317
|
+
const type = typeCandidate;
|
|
318
|
+
let commands;
|
|
319
|
+
if (raw.commands === void 0) {
|
|
320
|
+
commands = [...DEFAULT_FIELD_COMMANDS];
|
|
321
|
+
} else {
|
|
322
|
+
const seen = /* @__PURE__ */ new Set();
|
|
323
|
+
const normalized = [];
|
|
324
|
+
for (const rawCommand of raw.commands) {
|
|
325
|
+
const command = rawCommand.trim().toLowerCase();
|
|
326
|
+
if (command.length === 0) {
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
if (!RUNTIME_FIELD_COMMAND_SET.has(command)) {
|
|
330
|
+
throw new Error(`Invalid field command "${rawCommand}". Allowed: ${RUNTIME_FIELD_COMMAND_VALUES.join(", ")}.`);
|
|
331
|
+
}
|
|
332
|
+
if (!seen.has(command)) {
|
|
333
|
+
seen.add(command);
|
|
334
|
+
normalized.push(command);
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
commands = normalized.length > 0 ? normalized : [...DEFAULT_FIELD_COMMANDS];
|
|
338
|
+
}
|
|
339
|
+
const cliFlagToken = normalizeCliToken(raw.cliFlag);
|
|
340
|
+
const cliFlag = cliFlagToken.length > 0 && cliFlagToken !== keyToDefaultCliFlag(key) ? cliFlagToken : void 0;
|
|
341
|
+
const effectiveFlag = cliFlag ?? keyToDefaultCliFlag(key);
|
|
342
|
+
const cliAliases = dedupeCliTokens(raw.aliases ?? [], effectiveFlag);
|
|
343
|
+
const description = raw.description?.trim();
|
|
344
|
+
return {
|
|
345
|
+
key,
|
|
346
|
+
type,
|
|
347
|
+
commands,
|
|
348
|
+
description: description && description.length > 0 ? description : void 0,
|
|
349
|
+
cliFlag,
|
|
350
|
+
cliAliases,
|
|
351
|
+
required: raw.required === true,
|
|
352
|
+
requiredOnCreate: raw.requiredOnCreate === true,
|
|
353
|
+
// allow_unset defaults to true (omitted) and is only persisted when an
|
|
354
|
+
// operator explicitly disables it with --no-allow-unset (allowUnset === false).
|
|
355
|
+
allowUnset: raw.allowUnset !== false,
|
|
356
|
+
requiredTypes: dedupeStringList(raw.requiredTypes)
|
|
357
|
+
};
|
|
358
|
+
}
|
|
359
|
+
function selectFieldsArray(parsed) {
|
|
360
|
+
if (Array.isArray(parsed)) {
|
|
361
|
+
return parsed;
|
|
362
|
+
}
|
|
363
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
364
|
+
return void 0;
|
|
365
|
+
}
|
|
366
|
+
const record = parsed;
|
|
367
|
+
if (Array.isArray(record.fields)) {
|
|
368
|
+
return record.fields;
|
|
369
|
+
}
|
|
370
|
+
if (Array.isArray(record.definitions)) {
|
|
371
|
+
return record.definitions;
|
|
372
|
+
}
|
|
373
|
+
return void 0;
|
|
374
|
+
}
|
|
375
|
+
function extractFieldDefinitions(parsed) {
|
|
376
|
+
const candidate = selectFieldsArray(parsed);
|
|
377
|
+
if (!candidate) {
|
|
378
|
+
return [];
|
|
379
|
+
}
|
|
380
|
+
const definitions = [];
|
|
381
|
+
for (const entry of candidate) {
|
|
382
|
+
if (typeof entry !== "object" || entry === null || Array.isArray(entry)) {
|
|
383
|
+
continue;
|
|
384
|
+
}
|
|
385
|
+
const record = entry;
|
|
386
|
+
if (typeof record.key !== "string" || record.key.trim().length === 0) {
|
|
387
|
+
continue;
|
|
388
|
+
}
|
|
389
|
+
definitions.push(record);
|
|
390
|
+
}
|
|
391
|
+
return definitions;
|
|
392
|
+
}
|
|
393
|
+
function parseFieldsFile(raw) {
|
|
394
|
+
if (raw === null || raw === void 0 || raw.trim().length === 0) {
|
|
395
|
+
return { fields: [] };
|
|
396
|
+
}
|
|
397
|
+
let parsed;
|
|
398
|
+
try {
|
|
399
|
+
parsed = JSON.parse(raw);
|
|
400
|
+
} catch {
|
|
401
|
+
throw new Error("schema/fields.json contains invalid JSON.");
|
|
402
|
+
}
|
|
403
|
+
return { fields: extractFieldDefinitions(parsed) };
|
|
404
|
+
}
|
|
405
|
+
function serializeFieldsFile(file) {
|
|
406
|
+
return `${JSON.stringify({ fields: file.fields }, null, 2)}
|
|
407
|
+
`;
|
|
408
|
+
}
|
|
409
|
+
function upsertField(file, input) {
|
|
410
|
+
const existing = file.fields.find((definition) => normalizeFieldKey(definition.key) === input.key);
|
|
411
|
+
const replaced = existing !== void 0;
|
|
412
|
+
const fields = file.fields.filter((definition) => normalizeFieldKey(definition.key) !== input.key);
|
|
413
|
+
const next = {
|
|
414
|
+
...existing ?? {},
|
|
415
|
+
key: input.key,
|
|
416
|
+
type: input.type,
|
|
417
|
+
commands: [...input.commands]
|
|
418
|
+
};
|
|
419
|
+
applyOptionalString(next, "description", input.description);
|
|
420
|
+
applyOptionalString(next, "cli_flag", input.cliFlag);
|
|
421
|
+
if (input.cliAliases.length > 0) {
|
|
422
|
+
next.cli_aliases = [...input.cliAliases];
|
|
423
|
+
} else {
|
|
424
|
+
delete next.cli_aliases;
|
|
425
|
+
}
|
|
426
|
+
applyBooleanFlag(next, "required", input.required);
|
|
427
|
+
applyBooleanFlag(next, "required_on_create", input.requiredOnCreate);
|
|
428
|
+
if (input.allowUnset === false) {
|
|
429
|
+
next.allow_unset = false;
|
|
430
|
+
} else {
|
|
431
|
+
delete next.allow_unset;
|
|
432
|
+
}
|
|
433
|
+
if (input.requiredTypes.length > 0) {
|
|
434
|
+
next.required_types = [...input.requiredTypes];
|
|
435
|
+
} else {
|
|
436
|
+
delete next.required_types;
|
|
437
|
+
}
|
|
438
|
+
fields.push(next);
|
|
439
|
+
fields.sort((left, right) => normalizeFieldKey(left.key).localeCompare(normalizeFieldKey(right.key)));
|
|
440
|
+
return {
|
|
441
|
+
file: { fields },
|
|
442
|
+
definition: next,
|
|
443
|
+
replaced
|
|
444
|
+
};
|
|
445
|
+
}
|
|
446
|
+
function removeField(file, key) {
|
|
447
|
+
const normalizedKey = normalizeFieldKey(key);
|
|
448
|
+
if (normalizedKey.length === 0) {
|
|
449
|
+
throw new Error("Field key must not be empty.");
|
|
450
|
+
}
|
|
451
|
+
const removed = [];
|
|
452
|
+
const fields = file.fields.filter((definition) => {
|
|
453
|
+
if (normalizeFieldKey(definition.key) === normalizedKey) {
|
|
454
|
+
removed.push(definition);
|
|
455
|
+
return false;
|
|
456
|
+
}
|
|
457
|
+
return true;
|
|
458
|
+
});
|
|
459
|
+
if (removed.length === 0) {
|
|
460
|
+
return { file: { fields }, removed: false };
|
|
461
|
+
}
|
|
462
|
+
return { file: { fields }, removed: true, definition: removed[0] };
|
|
463
|
+
}
|
|
464
|
+
function applyOptionalString(definition, key, value) {
|
|
465
|
+
const record = definition;
|
|
466
|
+
if (value !== void 0 && value.length > 0) {
|
|
467
|
+
record[key] = value;
|
|
468
|
+
} else {
|
|
469
|
+
delete record[key];
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
function applyBooleanFlag(definition, key, value) {
|
|
473
|
+
const record = definition;
|
|
474
|
+
if (value) {
|
|
475
|
+
record[key] = true;
|
|
476
|
+
} else {
|
|
477
|
+
delete record[key];
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// dist/core/schema/type-inference.js
|
|
482
|
+
!(function() {
|
|
483
|
+
try {
|
|
484
|
+
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
485
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7ded2b63-46ff-5a7e-a47f-5a4488da1cae");
|
|
486
|
+
} catch (e2) {
|
|
487
|
+
}
|
|
488
|
+
})();
|
|
489
|
+
var PREFIX_PATTERN = /^([A-Za-z][A-Za-z0-9_-]*?)\s*[-:]\s+\S/;
|
|
490
|
+
function extractTitlePrefix(title) {
|
|
491
|
+
const match = PREFIX_PATTERN.exec(title.trim());
|
|
492
|
+
if (!match) {
|
|
493
|
+
return void 0;
|
|
494
|
+
}
|
|
495
|
+
const token = match[1];
|
|
496
|
+
if (token.length < 2) {
|
|
497
|
+
return void 0;
|
|
498
|
+
}
|
|
499
|
+
if (/^[A-Za-z]\d+$/.test(token)) {
|
|
500
|
+
return void 0;
|
|
501
|
+
}
|
|
502
|
+
return token.toLowerCase();
|
|
503
|
+
}
|
|
504
|
+
function prefixToTypeName(prefix) {
|
|
505
|
+
return prefix.split(/[-_]+/).filter((segment) => segment.length > 0).map((segment) => `${segment.slice(0, 1).toUpperCase()}${segment.slice(1).toLowerCase()}`).join("");
|
|
506
|
+
}
|
|
507
|
+
function inferTypesFromTitles(titles, options = {}) {
|
|
508
|
+
const minCount = typeof options.minCount === "number" && options.minCount > 0 ? Math.trunc(options.minCount) : 10;
|
|
509
|
+
const maxExamples = typeof options.maxExamples === "number" && options.maxExamples > 0 ? Math.trunc(options.maxExamples) : 3;
|
|
510
|
+
const byPrefix = /* @__PURE__ */ new Map();
|
|
511
|
+
for (const rawTitle of titles) {
|
|
512
|
+
const title = typeof rawTitle === "string" ? rawTitle.trim() : "";
|
|
513
|
+
if (title.length === 0) {
|
|
514
|
+
continue;
|
|
515
|
+
}
|
|
516
|
+
const prefix = extractTitlePrefix(title);
|
|
517
|
+
if (prefix === void 0) {
|
|
518
|
+
continue;
|
|
519
|
+
}
|
|
520
|
+
const bucket = byPrefix.get(prefix) ?? { count: 0, examples: [] };
|
|
521
|
+
bucket.count += 1;
|
|
522
|
+
if (bucket.examples.length < maxExamples) {
|
|
523
|
+
bucket.examples.push(title);
|
|
524
|
+
}
|
|
525
|
+
byPrefix.set(prefix, bucket);
|
|
526
|
+
}
|
|
527
|
+
const candidates = [];
|
|
528
|
+
for (const [prefix, bucket] of byPrefix.entries()) {
|
|
529
|
+
if (bucket.count < minCount) {
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
const name = prefixToTypeName(prefix);
|
|
533
|
+
candidates.push({
|
|
534
|
+
name,
|
|
535
|
+
prefix,
|
|
536
|
+
count: bucket.count,
|
|
537
|
+
examples: bucket.examples,
|
|
538
|
+
shadows_builtin: matchBuiltinTypeName(name) !== void 0
|
|
539
|
+
});
|
|
540
|
+
}
|
|
541
|
+
candidates.sort((left, right) => right.count - left.count || left.name.localeCompare(right.name));
|
|
542
|
+
return candidates;
|
|
543
|
+
}
|
|
544
|
+
|
|
225
545
|
// dist/cli/commands/schema.js
|
|
226
546
|
!(function() {
|
|
227
547
|
try {
|
|
228
548
|
var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
|
|
229
|
-
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "
|
|
549
|
+
n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "09f8790c-5e80-5dab-92c7-b3cf333fcb58");
|
|
230
550
|
} catch (e2) {
|
|
231
551
|
}
|
|
232
552
|
})();
|
|
@@ -235,12 +555,18 @@ var SCHEMA_SUBCOMMANDS = [
|
|
|
235
555
|
"remove-type",
|
|
236
556
|
"add-status",
|
|
237
557
|
"remove-status",
|
|
558
|
+
"add-field",
|
|
559
|
+
"remove-field",
|
|
560
|
+
"list-fields",
|
|
561
|
+
"show-field",
|
|
562
|
+
"apply-preset",
|
|
238
563
|
"list",
|
|
239
564
|
"show",
|
|
240
565
|
"show-status"
|
|
241
566
|
];
|
|
242
567
|
var SCHEMA_TYPES_LOCK_ID = "schema-types";
|
|
243
568
|
var SCHEMA_STATUSES_LOCK_ID = "schema-statuses";
|
|
569
|
+
var SCHEMA_FIELDS_LOCK_ID = "schema-fields";
|
|
244
570
|
function toAuthor(candidate, defaultAuthor) {
|
|
245
571
|
const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;
|
|
246
572
|
const trimmed = resolved.trim();
|
|
@@ -281,10 +607,22 @@ async function runSchemaAddType(name, options, global2) {
|
|
|
281
607
|
}
|
|
282
608
|
try {
|
|
283
609
|
assertAliasesAvailable(normalized, parsed);
|
|
610
|
+
const reservedFolders = /* @__PURE__ */ new Map();
|
|
611
|
+
const resolvedRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
612
|
+
for (const [typeName, folder] of Object.entries(resolvedRegistry.type_to_folder)) {
|
|
613
|
+
const folderKey = folder.trim().toLowerCase();
|
|
614
|
+
if (folderKey.length > 0 && !reservedFolders.has(folderKey)) {
|
|
615
|
+
reservedFolders.set(folderKey, typeName);
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
assertTypeFolderAvailable(normalized, parsed, reservedFolders);
|
|
284
619
|
} catch (error) {
|
|
285
620
|
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.USAGE);
|
|
286
621
|
}
|
|
287
622
|
upsert = upsertItemType(parsed, normalized);
|
|
623
|
+
if (upsert.replaced && upsert.previousName !== void 0 && upsert.previousName !== upsert.definition.name) {
|
|
624
|
+
warnings.push(`type_recased:${upsert.previousName}->${upsert.definition.name}`);
|
|
625
|
+
}
|
|
288
626
|
await writeFileAtomic(typesPath, serializeItemTypesFile(upsert.file));
|
|
289
627
|
warnings.push(...await runActiveOnWriteHooks({
|
|
290
628
|
path: typesPath,
|
|
@@ -397,6 +735,26 @@ async function runSchemaRemoveType(name, options, global2) {
|
|
|
397
735
|
function statusesPathFor(pmRoot, schema) {
|
|
398
736
|
return filePathForSchemaSection(pmRoot, schema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses);
|
|
399
737
|
}
|
|
738
|
+
function fieldsPathFor(pmRoot, schema) {
|
|
739
|
+
return filePathForSchemaSection(pmRoot, schema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields);
|
|
740
|
+
}
|
|
741
|
+
function typesPathFor(pmRoot, schema) {
|
|
742
|
+
return filePathForSchemaSection(pmRoot, schema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types);
|
|
743
|
+
}
|
|
744
|
+
function toSchemaFieldSummary(field) {
|
|
745
|
+
return {
|
|
746
|
+
key: field.key,
|
|
747
|
+
type: field.type,
|
|
748
|
+
commands: [...field.commands],
|
|
749
|
+
cli_flag: `--${field.cli_flag}`,
|
|
750
|
+
cli_aliases: field.cli_aliases.map((alias) => `--${alias}`),
|
|
751
|
+
...field.description ? { description: field.description } : {},
|
|
752
|
+
required: field.required,
|
|
753
|
+
required_on_create: field.required_on_create,
|
|
754
|
+
allow_unset: field.allow_unset,
|
|
755
|
+
required_types: [...field.required_types]
|
|
756
|
+
};
|
|
757
|
+
}
|
|
400
758
|
async function runSchemaAddStatus(id, options, global2) {
|
|
401
759
|
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
402
760
|
await ensureInitialized(pmRoot);
|
|
@@ -632,6 +990,7 @@ async function loadSchemaInspectionContext(global2) {
|
|
|
632
990
|
const extensionProvenance = collectExtensionTypeProvenance();
|
|
633
991
|
const customNames = new Set((settings.item_types?.definitions ?? []).map((definition) => definition.name.trim().toLowerCase()).filter((name) => name.length > 0 && !extensionProvenance.has(name)));
|
|
634
992
|
return {
|
|
993
|
+
pmRoot,
|
|
635
994
|
typesPath,
|
|
636
995
|
statusesPath,
|
|
637
996
|
byType: registry.by_type,
|
|
@@ -657,6 +1016,7 @@ async function runSchemaList(global2) {
|
|
|
657
1016
|
}
|
|
658
1017
|
}
|
|
659
1018
|
const statusSummaries = buildSchemaStatusSummaries(context.schema);
|
|
1019
|
+
const fieldSummaries = resolveRuntimeFieldRegistry(context.schema).definitions.map(toSchemaFieldSummary);
|
|
660
1020
|
return {
|
|
661
1021
|
action: "list",
|
|
662
1022
|
builtin,
|
|
@@ -677,6 +1037,12 @@ async function runSchemaList(global2) {
|
|
|
677
1037
|
total: statusSummaries.builtin.length + statusSummaries.custom.length
|
|
678
1038
|
}
|
|
679
1039
|
},
|
|
1040
|
+
fields: {
|
|
1041
|
+
custom: fieldSummaries,
|
|
1042
|
+
counts: {
|
|
1043
|
+
total: fieldSummaries.length
|
|
1044
|
+
}
|
|
1045
|
+
},
|
|
680
1046
|
file: {
|
|
681
1047
|
path: context.typesPath
|
|
682
1048
|
},
|
|
@@ -723,6 +1089,331 @@ async function runSchemaShowStatus(id, global2) {
|
|
|
723
1089
|
generated_at: nowIso()
|
|
724
1090
|
};
|
|
725
1091
|
}
|
|
1092
|
+
async function runSchemaAddField(key, options, global2) {
|
|
1093
|
+
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1094
|
+
await ensureInitialized(pmRoot);
|
|
1095
|
+
let normalized;
|
|
1096
|
+
try {
|
|
1097
|
+
normalized = normalizeAddFieldInput({
|
|
1098
|
+
key,
|
|
1099
|
+
type: options.type,
|
|
1100
|
+
commands: options.commands,
|
|
1101
|
+
description: options.description,
|
|
1102
|
+
cliFlag: options.cliFlag,
|
|
1103
|
+
aliases: options.alias,
|
|
1104
|
+
required: options.required,
|
|
1105
|
+
requiredOnCreate: options.requiredOnCreate,
|
|
1106
|
+
allowUnset: options.allowUnset,
|
|
1107
|
+
requiredTypes: options.requiredTypes
|
|
1108
|
+
});
|
|
1109
|
+
} catch (error) {
|
|
1110
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.USAGE);
|
|
1111
|
+
}
|
|
1112
|
+
const settings = await readSettings(pmRoot);
|
|
1113
|
+
const schema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
1114
|
+
const fieldsPath = fieldsPathFor(pmRoot, schema);
|
|
1115
|
+
const warnings = [];
|
|
1116
|
+
const author = toAuthor(options.author, settings.author_default);
|
|
1117
|
+
const governance = resolveGovernanceKnobs(settings);
|
|
1118
|
+
const releaseLock = await acquireLock(pmRoot, SCHEMA_FIELDS_LOCK_ID, settings.locks.ttl_seconds, author, Boolean(options.force), governance.force_required_for_stale_lock);
|
|
1119
|
+
let upsert;
|
|
1120
|
+
try {
|
|
1121
|
+
const previousRaw = await readFileIfExists(fieldsPath);
|
|
1122
|
+
let parsed;
|
|
1123
|
+
try {
|
|
1124
|
+
parsed = parseFieldsFile(previousRaw);
|
|
1125
|
+
} catch (error) {
|
|
1126
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.GENERIC_FAILURE);
|
|
1127
|
+
}
|
|
1128
|
+
upsert = upsertField(parsed, normalized);
|
|
1129
|
+
await writeFileAtomic(fieldsPath, serializeFieldsFile(upsert.file));
|
|
1130
|
+
warnings.push(...await runActiveOnWriteHooks({
|
|
1131
|
+
path: fieldsPath,
|
|
1132
|
+
scope: "project",
|
|
1133
|
+
op: "schema:add-field"
|
|
1134
|
+
}));
|
|
1135
|
+
} finally {
|
|
1136
|
+
await releaseLock();
|
|
1137
|
+
}
|
|
1138
|
+
return {
|
|
1139
|
+
action: "add-field",
|
|
1140
|
+
registered: true,
|
|
1141
|
+
replaced: upsert.replaced,
|
|
1142
|
+
field: upsert.definition,
|
|
1143
|
+
file: {
|
|
1144
|
+
path: fieldsPath,
|
|
1145
|
+
fields: upsert.file.fields.length
|
|
1146
|
+
},
|
|
1147
|
+
warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),
|
|
1148
|
+
generated_at: nowIso()
|
|
1149
|
+
};
|
|
1150
|
+
}
|
|
1151
|
+
async function countItemsUsingField(pmRoot, settings, schema, metadataKey) {
|
|
1152
|
+
const registry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
1153
|
+
const items = await listAllFrontMatterLight(pmRoot, settings.item_format, registry.type_to_folder, [], schema);
|
|
1154
|
+
return items.filter((item) => {
|
|
1155
|
+
const value = item[metadataKey];
|
|
1156
|
+
if (value === void 0 || value === null) {
|
|
1157
|
+
return false;
|
|
1158
|
+
}
|
|
1159
|
+
if (Array.isArray(value)) {
|
|
1160
|
+
return value.length > 0;
|
|
1161
|
+
}
|
|
1162
|
+
if (typeof value === "string") {
|
|
1163
|
+
return value.trim().length > 0;
|
|
1164
|
+
}
|
|
1165
|
+
return true;
|
|
1166
|
+
}).length;
|
|
1167
|
+
}
|
|
1168
|
+
async function runSchemaRemoveField(key, options, global2) {
|
|
1169
|
+
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1170
|
+
await ensureInitialized(pmRoot);
|
|
1171
|
+
const settings = await readSettings(pmRoot);
|
|
1172
|
+
const schema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
1173
|
+
const fieldsPath = fieldsPathFor(pmRoot, schema);
|
|
1174
|
+
const warnings = [];
|
|
1175
|
+
const author = toAuthor(options.author, settings.author_default);
|
|
1176
|
+
const governance = resolveGovernanceKnobs(settings);
|
|
1177
|
+
const releaseLock = await acquireLock(pmRoot, SCHEMA_FIELDS_LOCK_ID, settings.locks.ttl_seconds, author, Boolean(options.force), governance.force_required_for_stale_lock);
|
|
1178
|
+
let removal;
|
|
1179
|
+
try {
|
|
1180
|
+
const previousRaw = await readFileIfExists(fieldsPath);
|
|
1181
|
+
let parsed;
|
|
1182
|
+
try {
|
|
1183
|
+
parsed = parseFieldsFile(previousRaw);
|
|
1184
|
+
} catch (error) {
|
|
1185
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.GENERIC_FAILURE);
|
|
1186
|
+
}
|
|
1187
|
+
try {
|
|
1188
|
+
removal = removeField(parsed, key);
|
|
1189
|
+
} catch (error) {
|
|
1190
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.USAGE);
|
|
1191
|
+
}
|
|
1192
|
+
if (removal.removed) {
|
|
1193
|
+
const removedKey = normalizeFieldKey(removal.definition?.key ?? key);
|
|
1194
|
+
const metadataKey = normalizeFieldKey(removal.definition?.metadata_key ?? removal.definition?.front_matter_key ?? removedKey);
|
|
1195
|
+
if (metadataKey.length > 0) {
|
|
1196
|
+
const usingField = await countItemsUsingField(pmRoot, settings, schema, metadataKey);
|
|
1197
|
+
if (usingField > 0) {
|
|
1198
|
+
warnings.push(`items_using_field:${usingField}`);
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
await writeFileAtomic(fieldsPath, serializeFieldsFile(removal.file));
|
|
1202
|
+
warnings.push(...await runActiveOnWriteHooks({
|
|
1203
|
+
path: fieldsPath,
|
|
1204
|
+
scope: "project",
|
|
1205
|
+
op: "schema:remove-field"
|
|
1206
|
+
}));
|
|
1207
|
+
}
|
|
1208
|
+
} finally {
|
|
1209
|
+
await releaseLock();
|
|
1210
|
+
}
|
|
1211
|
+
return {
|
|
1212
|
+
action: "remove-field",
|
|
1213
|
+
removed: removal.removed,
|
|
1214
|
+
...removal.definition ? { field: removal.definition } : {},
|
|
1215
|
+
file: {
|
|
1216
|
+
path: fieldsPath,
|
|
1217
|
+
fields: removal.file.fields.length
|
|
1218
|
+
},
|
|
1219
|
+
warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),
|
|
1220
|
+
generated_at: nowIso()
|
|
1221
|
+
};
|
|
1222
|
+
}
|
|
1223
|
+
async function runSchemaListFields(global2) {
|
|
1224
|
+
const context = await loadSchemaInspectionContext(global2);
|
|
1225
|
+
const fields = resolveRuntimeFieldRegistry(context.schema).definitions.map(toSchemaFieldSummary);
|
|
1226
|
+
return {
|
|
1227
|
+
action: "list-fields",
|
|
1228
|
+
fields,
|
|
1229
|
+
counts: {
|
|
1230
|
+
total: fields.length
|
|
1231
|
+
},
|
|
1232
|
+
file: {
|
|
1233
|
+
path: fieldsPathFor(context.pmRoot, context.schema)
|
|
1234
|
+
},
|
|
1235
|
+
generated_at: nowIso()
|
|
1236
|
+
};
|
|
1237
|
+
}
|
|
1238
|
+
async function runSchemaShowField(key, global2) {
|
|
1239
|
+
const fieldKey = normalizeFieldKey(key);
|
|
1240
|
+
if (fieldKey.length === 0) {
|
|
1241
|
+
throw new PmCliError("Field key must not be empty.", EXIT_CODE.USAGE);
|
|
1242
|
+
}
|
|
1243
|
+
const context = await loadSchemaInspectionContext(global2);
|
|
1244
|
+
const match = resolveRuntimeFieldRegistry(context.schema).by_key.get(fieldKey);
|
|
1245
|
+
if (!match) {
|
|
1246
|
+
throw new PmCliError(`Unknown custom field "${key}". Run pm schema list-fields to inspect registered fields, or pm schema add-field "${escapeForDoubleQuotes(key ?? "")}" to register it.`, EXIT_CODE.NOT_FOUND, { code: "unknown_field" });
|
|
1247
|
+
}
|
|
1248
|
+
return {
|
|
1249
|
+
action: "show-field",
|
|
1250
|
+
field: toSchemaFieldSummary(match),
|
|
1251
|
+
file: {
|
|
1252
|
+
path: fieldsPathFor(context.pmRoot, context.schema)
|
|
1253
|
+
},
|
|
1254
|
+
generated_at: nowIso()
|
|
1255
|
+
};
|
|
1256
|
+
}
|
|
1257
|
+
async function runSchemaApplyPreset(preset, options, global2) {
|
|
1258
|
+
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1259
|
+
await ensureInitialized(pmRoot);
|
|
1260
|
+
let presetName;
|
|
1261
|
+
try {
|
|
1262
|
+
const normalized = normalizeTypePresetName(preset);
|
|
1263
|
+
if (normalized === void 0) {
|
|
1264
|
+
throw new Error(`Type preset name is required. Allowed: ${TYPE_PRESET_NAMES.join(", ")}.`);
|
|
1265
|
+
}
|
|
1266
|
+
presetName = normalized;
|
|
1267
|
+
} catch (error) {
|
|
1268
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.USAGE);
|
|
1269
|
+
}
|
|
1270
|
+
const settings = await readSettings(pmRoot);
|
|
1271
|
+
const schema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
1272
|
+
const typesPath = typesPathFor(pmRoot, schema);
|
|
1273
|
+
const warnings = [];
|
|
1274
|
+
const author = toAuthor(options.author, settings.author_default);
|
|
1275
|
+
const governance = resolveGovernanceKnobs(settings);
|
|
1276
|
+
const registered = [];
|
|
1277
|
+
const replaced = [];
|
|
1278
|
+
let definitionsCount = 0;
|
|
1279
|
+
const releaseLock = await acquireLock(pmRoot, SCHEMA_TYPES_LOCK_ID, settings.locks.ttl_seconds, author, Boolean(options.force), governance.force_required_for_stale_lock);
|
|
1280
|
+
try {
|
|
1281
|
+
const previousRaw = await readFileIfExists(typesPath);
|
|
1282
|
+
let parsed;
|
|
1283
|
+
try {
|
|
1284
|
+
parsed = parseItemTypesFile(previousRaw);
|
|
1285
|
+
} catch (error) {
|
|
1286
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.GENERIC_FAILURE);
|
|
1287
|
+
}
|
|
1288
|
+
let nextFile = parsed;
|
|
1289
|
+
for (const normalized of resolveTypePresetDefinitions(presetName)) {
|
|
1290
|
+
const upsert = upsertItemType(nextFile, normalized);
|
|
1291
|
+
nextFile = upsert.file;
|
|
1292
|
+
(upsert.replaced ? replaced : registered).push(upsert.definition.name);
|
|
1293
|
+
}
|
|
1294
|
+
definitionsCount = nextFile.definitions.length;
|
|
1295
|
+
await writeFileAtomic(typesPath, serializeItemTypesFile(nextFile));
|
|
1296
|
+
warnings.push(...await runActiveOnWriteHooks({
|
|
1297
|
+
path: typesPath,
|
|
1298
|
+
scope: "project",
|
|
1299
|
+
op: "schema:apply-preset"
|
|
1300
|
+
}));
|
|
1301
|
+
} finally {
|
|
1302
|
+
await releaseLock();
|
|
1303
|
+
}
|
|
1304
|
+
return {
|
|
1305
|
+
action: "apply-preset",
|
|
1306
|
+
preset: presetName,
|
|
1307
|
+
registered,
|
|
1308
|
+
replaced,
|
|
1309
|
+
file: {
|
|
1310
|
+
path: typesPath,
|
|
1311
|
+
definitions: definitionsCount
|
|
1312
|
+
},
|
|
1313
|
+
warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),
|
|
1314
|
+
generated_at: nowIso()
|
|
1315
|
+
};
|
|
1316
|
+
}
|
|
1317
|
+
async function runSchemaInferTypes(options, global2) {
|
|
1318
|
+
const pmRoot = resolvePmRoot(process.cwd(), global2.path);
|
|
1319
|
+
await ensureInitialized(pmRoot);
|
|
1320
|
+
const settings = await readSettings(pmRoot);
|
|
1321
|
+
const schema = normalizeRuntimeSchemaSettings(settings.schema);
|
|
1322
|
+
const typesPath = typesPathFor(pmRoot, schema);
|
|
1323
|
+
let minCount = 10;
|
|
1324
|
+
if (options.minCount !== void 0) {
|
|
1325
|
+
if (!Number.isInteger(options.minCount) || options.minCount < 1) {
|
|
1326
|
+
throw new PmCliError("--min-count must be a positive integer (>= 1).", EXIT_CODE.USAGE);
|
|
1327
|
+
}
|
|
1328
|
+
minCount = options.minCount;
|
|
1329
|
+
}
|
|
1330
|
+
const registry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
|
|
1331
|
+
const items = await listAllFrontMatterLight(pmRoot, settings.item_format, registry.type_to_folder, [], schema);
|
|
1332
|
+
const titles = items.map((item) => typeof item.title === "string" ? item.title : "");
|
|
1333
|
+
const candidates = inferTypesFromTitles(titles, { minCount });
|
|
1334
|
+
const warnings = [];
|
|
1335
|
+
const registered = [];
|
|
1336
|
+
const replaced = [];
|
|
1337
|
+
const skipped = [];
|
|
1338
|
+
let definitionsCount;
|
|
1339
|
+
if (!options.apply) {
|
|
1340
|
+
let parsed;
|
|
1341
|
+
try {
|
|
1342
|
+
parsed = parseItemTypesFile(await readFileIfExists(typesPath));
|
|
1343
|
+
} catch (error) {
|
|
1344
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.GENERIC_FAILURE);
|
|
1345
|
+
}
|
|
1346
|
+
definitionsCount = parsed.definitions.length;
|
|
1347
|
+
return {
|
|
1348
|
+
action: "infer-types",
|
|
1349
|
+
applied: false,
|
|
1350
|
+
min_count: minCount,
|
|
1351
|
+
candidates,
|
|
1352
|
+
registered,
|
|
1353
|
+
replaced,
|
|
1354
|
+
skipped,
|
|
1355
|
+
file: {
|
|
1356
|
+
path: typesPath,
|
|
1357
|
+
definitions: definitionsCount
|
|
1358
|
+
},
|
|
1359
|
+
warnings,
|
|
1360
|
+
generated_at: nowIso()
|
|
1361
|
+
};
|
|
1362
|
+
}
|
|
1363
|
+
const author = toAuthor(options.author, settings.author_default);
|
|
1364
|
+
const governance = resolveGovernanceKnobs(settings);
|
|
1365
|
+
const releaseLock = await acquireLock(pmRoot, SCHEMA_TYPES_LOCK_ID, settings.locks.ttl_seconds, author, Boolean(options.force), governance.force_required_for_stale_lock);
|
|
1366
|
+
try {
|
|
1367
|
+
const previousRaw = await readFileIfExists(typesPath);
|
|
1368
|
+
let parsed;
|
|
1369
|
+
try {
|
|
1370
|
+
parsed = parseItemTypesFile(previousRaw);
|
|
1371
|
+
} catch (error) {
|
|
1372
|
+
throw new PmCliError(error instanceof Error ? error.message : String(error), EXIT_CODE.GENERIC_FAILURE);
|
|
1373
|
+
}
|
|
1374
|
+
let nextFile = parsed;
|
|
1375
|
+
for (const candidate of candidates) {
|
|
1376
|
+
if (candidate.shadows_builtin) {
|
|
1377
|
+
skipped.push({ name: candidate.name, reason: "shadows_builtin" });
|
|
1378
|
+
continue;
|
|
1379
|
+
}
|
|
1380
|
+
let normalized;
|
|
1381
|
+
try {
|
|
1382
|
+
normalized = normalizeAddTypeInput({ name: candidate.name });
|
|
1383
|
+
} catch {
|
|
1384
|
+
skipped.push({ name: candidate.name, reason: "invalid_type_token" });
|
|
1385
|
+
continue;
|
|
1386
|
+
}
|
|
1387
|
+
const upsert = upsertItemType(nextFile, normalized);
|
|
1388
|
+
nextFile = upsert.file;
|
|
1389
|
+
(upsert.replaced ? replaced : registered).push(upsert.definition.name);
|
|
1390
|
+
}
|
|
1391
|
+
definitionsCount = nextFile.definitions.length;
|
|
1392
|
+
await writeFileAtomic(typesPath, serializeItemTypesFile(nextFile));
|
|
1393
|
+
warnings.push(...await runActiveOnWriteHooks({
|
|
1394
|
+
path: typesPath,
|
|
1395
|
+
scope: "project",
|
|
1396
|
+
op: "schema:infer-types"
|
|
1397
|
+
}));
|
|
1398
|
+
} finally {
|
|
1399
|
+
await releaseLock();
|
|
1400
|
+
}
|
|
1401
|
+
return {
|
|
1402
|
+
action: "infer-types",
|
|
1403
|
+
applied: true,
|
|
1404
|
+
min_count: minCount,
|
|
1405
|
+
candidates,
|
|
1406
|
+
registered,
|
|
1407
|
+
replaced,
|
|
1408
|
+
skipped,
|
|
1409
|
+
file: {
|
|
1410
|
+
path: typesPath,
|
|
1411
|
+
definitions: definitionsCount
|
|
1412
|
+
},
|
|
1413
|
+
warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),
|
|
1414
|
+
generated_at: nowIso()
|
|
1415
|
+
};
|
|
1416
|
+
}
|
|
726
1417
|
function formatSchemaAddTypeHuman(result) {
|
|
727
1418
|
const verb = result.replaced ? "Updated" : "Registered";
|
|
728
1419
|
const aliasSuffix = result.type.aliases && result.type.aliases.length > 0 ? ` (aliases: ${result.type.aliases.join(", ")})` : "";
|
|
@@ -772,8 +1463,13 @@ function formatSchemaListHuman(result) {
|
|
|
772
1463
|
}
|
|
773
1464
|
lines.push(`${label}: ${entries.map((entry) => entry.id).join(", ")}`);
|
|
774
1465
|
}
|
|
1466
|
+
lines.push(`custom fields: ${result.fields.counts.total} total`);
|
|
1467
|
+
if (result.fields.custom.length > 0) {
|
|
1468
|
+
lines.push(`fields: ${result.fields.custom.map((field) => `${field.key} (${field.type}, ${field.cli_flag})`).join(", ")}`);
|
|
1469
|
+
}
|
|
775
1470
|
lines.push(`Inspect one: pm schema show <Type>`);
|
|
776
1471
|
lines.push(`Inspect one status: pm schema show-status <status>`);
|
|
1472
|
+
lines.push(`Inspect one field: pm schema show-field <key>`);
|
|
777
1473
|
return lines.join("\n");
|
|
778
1474
|
}
|
|
779
1475
|
function formatSchemaShowHuman(result) {
|
|
@@ -815,22 +1511,127 @@ function formatSchemaShowStatusHuman(result) {
|
|
|
815
1511
|
}
|
|
816
1512
|
return parts.join("\n");
|
|
817
1513
|
}
|
|
1514
|
+
function formatFieldSummaryLine(field) {
|
|
1515
|
+
const flags = [];
|
|
1516
|
+
if (field.required) {
|
|
1517
|
+
flags.push("required");
|
|
1518
|
+
}
|
|
1519
|
+
if (field.required_on_create) {
|
|
1520
|
+
flags.push("required_on_create");
|
|
1521
|
+
}
|
|
1522
|
+
if (!field.allow_unset) {
|
|
1523
|
+
flags.push("no_unset");
|
|
1524
|
+
}
|
|
1525
|
+
const flagSuffix = flags.length > 0 ? ` [${flags.join(", ")}]` : "";
|
|
1526
|
+
return `${field.key} (${field.type}) ${field.cli_flag} commands=${field.commands.join("/")}${flagSuffix}`;
|
|
1527
|
+
}
|
|
1528
|
+
function formatSchemaAddFieldHuman(result) {
|
|
1529
|
+
const verb = result.replaced ? "Updated" : "Registered";
|
|
1530
|
+
return `${verb} custom field "${result.field.key}" in ${result.file.path}. Use it: pm create "<title>" --${(result.field.cli_flag ?? result.field.key).replaceAll("_", "-")} <value>`;
|
|
1531
|
+
}
|
|
1532
|
+
function formatSchemaRemoveFieldHuman(result) {
|
|
1533
|
+
if (!result.removed) {
|
|
1534
|
+
return `No custom field matched; nothing removed from ${result.file.path}.`;
|
|
1535
|
+
}
|
|
1536
|
+
const key = result.field?.key ?? "(unknown)";
|
|
1537
|
+
return `Removed custom field "${key}" from ${result.file.path}.`;
|
|
1538
|
+
}
|
|
1539
|
+
function formatSchemaListFieldsHuman(result) {
|
|
1540
|
+
const lines = [`Custom fields: ${result.counts.total} total`];
|
|
1541
|
+
for (const field of result.fields) {
|
|
1542
|
+
lines.push(` ${formatFieldSummaryLine(field)}`);
|
|
1543
|
+
}
|
|
1544
|
+
lines.push(`Inspect one: pm schema show-field <key>`);
|
|
1545
|
+
return lines.join("\n");
|
|
1546
|
+
}
|
|
1547
|
+
function formatSchemaShowFieldHuman(result) {
|
|
1548
|
+
const field = result.field;
|
|
1549
|
+
const parts = [
|
|
1550
|
+
`field: ${field.key}`,
|
|
1551
|
+
`type: ${field.type}`,
|
|
1552
|
+
`cli_flag: ${field.cli_flag}`,
|
|
1553
|
+
`commands: ${field.commands.join(", ")}`
|
|
1554
|
+
];
|
|
1555
|
+
if (field.cli_aliases.length > 0) {
|
|
1556
|
+
parts.push(`cli_aliases: ${field.cli_aliases.join(", ")}`);
|
|
1557
|
+
}
|
|
1558
|
+
if (field.description) {
|
|
1559
|
+
parts.push(`description: ${field.description}`);
|
|
1560
|
+
}
|
|
1561
|
+
if (field.required) {
|
|
1562
|
+
parts.push(`required: true`);
|
|
1563
|
+
}
|
|
1564
|
+
if (field.required_on_create) {
|
|
1565
|
+
parts.push(`required_on_create: true`);
|
|
1566
|
+
}
|
|
1567
|
+
if (!field.allow_unset) {
|
|
1568
|
+
parts.push(`allow_unset: false`);
|
|
1569
|
+
}
|
|
1570
|
+
if (field.required_types.length > 0) {
|
|
1571
|
+
parts.push(`required_types: ${field.required_types.join(", ")}`);
|
|
1572
|
+
}
|
|
1573
|
+
return parts.join("\n");
|
|
1574
|
+
}
|
|
1575
|
+
function formatSchemaApplyPresetHuman(result) {
|
|
1576
|
+
const registered = result.registered.length > 0 ? `registered: ${result.registered.join(", ")}` : "";
|
|
1577
|
+
const replaced = result.replaced.length > 0 ? `updated: ${result.replaced.join(", ")}` : "";
|
|
1578
|
+
const detail = [registered, replaced].filter((part) => part.length > 0).join("; ");
|
|
1579
|
+
return `Applied "${result.preset}" type preset to ${result.file.path}${detail.length > 0 ? ` (${detail})` : ""}.`;
|
|
1580
|
+
}
|
|
1581
|
+
function formatSchemaInferTypesHuman(result) {
|
|
1582
|
+
if (result.candidates.length === 0) {
|
|
1583
|
+
return `No title-prefix conventions found with at least ${result.min_count} items. Lower the threshold with --min-count <n>.`;
|
|
1584
|
+
}
|
|
1585
|
+
const lines = result.applied ? [`Inferred and registered custom types from title prefixes (min-count ${result.min_count}):`] : [`Inferred custom type candidates from title prefixes (min-count ${result.min_count}, dry-run):`];
|
|
1586
|
+
for (const candidate of result.candidates) {
|
|
1587
|
+
const note = candidate.shadows_builtin ? " [shadows built-in, skipped]" : "";
|
|
1588
|
+
lines.push(` ${candidate.name} <- "${candidate.prefix}" (${candidate.count} items)${note}`);
|
|
1589
|
+
}
|
|
1590
|
+
if (!result.applied) {
|
|
1591
|
+
lines.push(`Re-run with --apply to register the non-shadowing candidates.`);
|
|
1592
|
+
} else {
|
|
1593
|
+
if (result.registered.length > 0) {
|
|
1594
|
+
lines.push(`registered: ${result.registered.join(", ")}`);
|
|
1595
|
+
}
|
|
1596
|
+
if (result.replaced.length > 0) {
|
|
1597
|
+
lines.push(`updated: ${result.replaced.join(", ")}`);
|
|
1598
|
+
}
|
|
1599
|
+
}
|
|
1600
|
+
return lines.join("\n");
|
|
1601
|
+
}
|
|
1602
|
+
var _testOnlySchemaCommand = {
|
|
1603
|
+
toAuthor,
|
|
1604
|
+
workflowSlotsReferencing
|
|
1605
|
+
};
|
|
818
1606
|
export {
|
|
819
1607
|
SCHEMA_SUBCOMMANDS,
|
|
1608
|
+
_testOnlySchemaCommand,
|
|
820
1609
|
buildInvalidTypeHint,
|
|
1610
|
+
formatSchemaAddFieldHuman,
|
|
821
1611
|
formatSchemaAddStatusHuman,
|
|
822
1612
|
formatSchemaAddTypeHuman,
|
|
1613
|
+
formatSchemaApplyPresetHuman,
|
|
1614
|
+
formatSchemaInferTypesHuman,
|
|
1615
|
+
formatSchemaListFieldsHuman,
|
|
823
1616
|
formatSchemaListHuman,
|
|
1617
|
+
formatSchemaRemoveFieldHuman,
|
|
824
1618
|
formatSchemaRemoveStatusHuman,
|
|
825
1619
|
formatSchemaRemoveTypeHuman,
|
|
1620
|
+
formatSchemaShowFieldHuman,
|
|
826
1621
|
formatSchemaShowHuman,
|
|
827
1622
|
formatSchemaShowStatusHuman,
|
|
1623
|
+
runSchemaAddField,
|
|
828
1624
|
runSchemaAddStatus,
|
|
829
1625
|
runSchemaAddType,
|
|
1626
|
+
runSchemaApplyPreset,
|
|
1627
|
+
runSchemaInferTypes,
|
|
830
1628
|
runSchemaList,
|
|
1629
|
+
runSchemaListFields,
|
|
1630
|
+
runSchemaRemoveField,
|
|
831
1631
|
runSchemaRemoveStatus,
|
|
832
1632
|
runSchemaRemoveType,
|
|
833
1633
|
runSchemaShow,
|
|
1634
|
+
runSchemaShowField,
|
|
834
1635
|
runSchemaShowStatus
|
|
835
1636
|
};
|
|
836
|
-
//# sourceMappingURL=schema-
|
|
1637
|
+
//# sourceMappingURL=schema-TSBYSEMW.js.map
|