@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sources":["cli/commands/context.ts"],"sourceRoot":"/","sourcesContent":["import { SETTINGS_DEFAULTS, EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { compareTimestampStrings, nowIso } from \"../../core/shared/time.js\";\nimport { isTerminalStatus, normalizeStatusForRegistry, normalizeStatusInput } from \"../../core/item/status.js\";\nimport { resolveRuntimeStatusRegistry, type RuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type {\n ContextDepth,\n ContextSectionName,\n ContextSettings,\n ItemFrontMatter,\n ItemStatus,\n PmSettings,\n} from \"../../types/index.js\";\nimport { CONTEXT_DEPTH_VALUES, CONTEXT_SECTION_VALUES } from \"../../types/index.js\";\nimport { parseIntegerLimit } from \"../shared-parsers.js\";\nimport { runCalendar, type CalendarOptions, type CalendarRow } from \"./calendar.js\";\nimport { runList, type ListOptions } from \"./list.js\";\nimport { runActivity, type CompactActivityEntry } from \"./activity.js\";\n\n// ---------------------------------------------------------------------------\n// Output format\n// ---------------------------------------------------------------------------\n\nexport const CONTEXT_OUTPUT_VALUES = [\"markdown\", \"toon\", \"json\"] as const;\nexport type ContextOutputFormat = (typeof CONTEXT_OUTPUT_VALUES)[number];\n\n// ---------------------------------------------------------------------------\n// Options\n// ---------------------------------------------------------------------------\n\nexport interface ContextOptions {\n date?: string;\n from?: string;\n to?: string;\n past?: boolean;\n type?: string;\n tag?: string;\n priority?: string;\n assignee?: string;\n assigneeFilter?: string;\n sprint?: string;\n release?: string;\n limit?: string;\n format?: string;\n depth?: string;\n section?: string[];\n activityLimit?: string;\n staleThreshold?: string;\n [key: string]: unknown;\n}\n\n// ---------------------------------------------------------------------------\n// Focus item (unchanged from original)\n// ---------------------------------------------------------------------------\n\nexport interface ContextFocusItem {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n priority: number;\n order: number | null;\n deadline: string | null;\n assignee: string | null;\n tags: string[];\n updated_at: string;\n parent: string | null;\n children_total?: number;\n children_closed?: number;\n completion_pct?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Section data types\n// ---------------------------------------------------------------------------\n\nexport interface HierarchyChild {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n children_total: number;\n children_closed: number;\n}\n\nexport interface HierarchyNode {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n children_total: number;\n children_closed: number;\n children_open: number;\n children_in_progress: number;\n children_blocked: number;\n children: HierarchyChild[];\n}\n\nexport interface ProgressEntry {\n id: string;\n title: string;\n type: string;\n total: number;\n closed: number;\n open: number;\n in_progress: number;\n blocked: number;\n completion_pct: number;\n}\n\nexport interface BlockerEntry {\n id: string;\n title: string;\n blocked_by: string | null;\n blocked_by_title: string | null;\n blocked_by_status: ItemStatus | null;\n blocked_reason: string | null;\n unblock_note: string | null;\n}\n\nexport interface HotFile {\n path: string;\n references: number;\n items: string[];\n}\n\nexport interface WorkloadEntry {\n assignee: string | null;\n active: number;\n in_progress: number;\n items: string[];\n}\n\nexport interface StaleEntry {\n id: string;\n title: string;\n status: ItemStatus;\n updated_at: string;\n stale_days: number;\n}\n\nexport interface RecentContextItem extends ContextFocusItem {\n created_at?: string;\n}\n\nexport interface TestHealthSummary {\n items_with_tests: number;\n items_with_recent_runs: number;\n recent_runs: {\n passed: number;\n failed: number;\n skipped: number;\n };\n items_failing: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Agenda / summary (unchanged)\n// ---------------------------------------------------------------------------\n\ninterface ContextAgendaSummary {\n events: number;\n items: number;\n deadlines: number;\n reminders: number;\n scheduled: number;\n}\n\ninterface ContextSummary {\n active_items: number;\n in_progress: number;\n open: number;\n blocked: number;\n blocked_fallback_used: boolean;\n high_level: number;\n low_level: number;\n agenda_events: number;\n total_items?: number;\n closed?: number;\n canceled?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Result\n// ---------------------------------------------------------------------------\n\nexport interface ContextResult {\n output_default: \"toon\";\n now: string;\n depth: ContextDepth;\n sections_included: ContextSectionName[];\n window: {\n anchor: string;\n start: string | null;\n end: string | null;\n past: boolean;\n from: string | null;\n to: string | null;\n };\n filters: {\n type: string | null;\n tag: string | null;\n priority: string | null;\n assignee: string | null;\n assignee_filter: string | null;\n sprint: string | null;\n release: string | null;\n limit: string | null;\n runtime_filters?: Record<string, unknown>;\n };\n summary: ContextSummary;\n high_level: ContextFocusItem[];\n low_level: ContextFocusItem[];\n blocked_fallback: ContextFocusItem[];\n agenda: {\n summary: ContextAgendaSummary;\n events: CalendarRow[];\n };\n hierarchy?: HierarchyNode[];\n activity?: CompactActivityEntry[];\n progress?: ProgressEntry[];\n blockers?: BlockerEntry[];\n recently_created?: RecentContextItem[];\n unparented?: ContextFocusItem[];\n files?: HotFile[];\n workload?: WorkloadEntry[];\n staleness?: StaleEntry[];\n tests?: TestHealthSummary;\n suggestions?: string[];\n warnings?: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst HIGH_LEVEL_TYPES = new Set<string>([\"Epic\", \"Feature\"]);\nconst DEFAULT_CONTEXT_LIMIT = 10;\n\nconst STANDARD_SECTIONS: ContextSectionName[] = [\"hierarchy\", \"activity\", \"progress\", \"recently_created\", \"unparented\", \"workload\"];\nconst DEEP_SECTIONS: ContextSectionName[] = [\n ...STANDARD_SECTIONS,\n \"blockers\",\n \"files\",\n \"staleness\",\n \"tests\",\n];\nconst LEADING_HYPHEN_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})/;\nconst LEADING_COMPACT_DATE = /^(\\d{4})(\\d{2})(\\d{2})(?:[T ]?\\d{2}|$)/;\nconst COMPACT_DATE = /^(\\d{4})(\\d{2})(\\d{2})$/;\nconst COMPACT_DATETIME = /^(\\d{4})(\\d{2})(\\d{2})(?:[T\\s]?)(\\d{2})(\\d{2})(\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?$/i;\n\n// ---------------------------------------------------------------------------\n// Parsers\n// ---------------------------------------------------------------------------\n\nfunction parseOutputFormat(raw: string | undefined): ContextOutputFormat | undefined {\n if (!raw) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (!CONTEXT_OUTPUT_VALUES.includes(normalized as ContextOutputFormat)) {\n throw new PmCliError(\"Context format must be one of markdown|toon|json\", EXIT_CODE.USAGE);\n }\n return normalized as ContextOutputFormat;\n}\n\nexport function resolveContextOutputFormat(options: ContextOptions, global: GlobalOptions): ContextOutputFormat {\n const commandFormat = parseOutputFormat(options.format);\n if (global.json && commandFormat && commandFormat !== \"json\") {\n throw new PmCliError(\"Cannot combine --json with --format markdown|toon\", EXIT_CODE.USAGE);\n }\n if (global.json) {\n return \"json\";\n }\n return commandFormat ?? \"toon\";\n}\n\nfunction parseContextLimit(raw: string | undefined): number {\n return parseIntegerLimit(raw, \"--limit\") ?? DEFAULT_CONTEXT_LIMIT;\n}\n\nexport function parseContextDepth(raw: string | undefined, settings: ContextSettings): ContextDepth {\n if (!raw) return settings.default_depth;\n const normalized = raw.trim().toLowerCase();\n if (!CONTEXT_DEPTH_VALUES.includes(normalized as ContextDepth)) {\n throw new PmCliError(`Context --depth must be one of ${CONTEXT_DEPTH_VALUES.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized as ContextDepth;\n}\n\nexport function parseContextSections(\n raw: string[] | undefined,\n depth: ContextDepth,\n settings: ContextSettings,\n): ContextSectionName[] {\n if (raw && raw.length > 0) {\n const sections: ContextSectionName[] = [];\n for (const value of raw) {\n const normalized = value.trim().toLowerCase();\n if (!CONTEXT_SECTION_VALUES.includes(normalized as ContextSectionName)) {\n throw new PmCliError(\n `Context --section must be one of ${CONTEXT_SECTION_VALUES.join(\"|\")}`,\n EXIT_CODE.USAGE,\n );\n }\n if (!sections.includes(normalized as ContextSectionName)) {\n sections.push(normalized as ContextSectionName);\n }\n }\n return sections;\n }\n if (depth === \"brief\") return [];\n const pool = depth === \"deep\" ? DEEP_SECTIONS : STANDARD_SECTIONS;\n return pool.filter((section) => settings.sections[section]);\n}\n\nfunction parseActivityLimit(raw: string | undefined, settings: ContextSettings): number {\n if (!raw) return settings.activity_limit;\n return parseIntegerLimit(raw, \"--activity-limit\") ?? settings.activity_limit;\n}\n\nfunction parseStaleThresholdDays(raw: string | undefined, settings: ContextSettings): number {\n if (!raw) return settings.stale_threshold_days;\n const trimmed = raw.trim().toLowerCase();\n const match = /^(\\d+)d?$/.exec(trimmed);\n if (!match) {\n throw new PmCliError(\"--stale-threshold must be a number of days (e.g. 7 or 7d)\", EXIT_CODE.USAGE);\n }\n const days = parseInt(match[1], 10);\n if (days <= 0) {\n throw new PmCliError(\"--stale-threshold must be positive\", EXIT_CODE.USAGE);\n }\n return days;\n}\n\n// ---------------------------------------------------------------------------\n// Status helpers\n// ---------------------------------------------------------------------------\n\nfunction statusRank(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): number {\n const normalizedStatus = normalizeStatusForRegistry(status, statusRegistry);\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n const openStatus = normalizeStatusInput(\"open\", statusRegistry) ?? statusRegistry.open_status;\n const blockedStatus = normalizeStatusInput(\"blocked\", statusRegistry);\n const draftStatus = normalizeStatusInput(\"draft\", statusRegistry);\n if (inProgressStatus && normalizedStatus === inProgressStatus) return 0;\n if (openStatus && normalizedStatus === openStatus) return 1;\n if (blockedStatus && normalizedStatus === blockedStatus) return 2;\n if (draftStatus && normalizedStatus === draftStatus) return 3;\n if (statusRegistry.active_statuses.has(normalizedStatus)) return 4;\n if (statusRegistry.blocked_statuses.has(normalizedStatus)) return 5;\n if (statusRegistry.terminal_statuses.has(normalizedStatus)) return 7;\n return 6;\n}\n\nfunction isClosedStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const closeStatus = normalizeStatusInput(\"closed\", statusRegistry);\n return closeStatus ? normalizeStatusForRegistry(status, statusRegistry) === closeStatus : false;\n}\n\nfunction isInProgressStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n return inProgressStatus ? normalizeStatusForRegistry(status, statusRegistry) === inProgressStatus : false;\n}\n\nfunction isOpenStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const openStatus = normalizeStatusInput(\"open\", statusRegistry) ?? statusRegistry.open_status;\n return normalizeStatusForRegistry(status, statusRegistry) === openStatus;\n}\n\nfunction isBlockedStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n return statusRegistry.blocked_statuses.has(normalizeStatusForRegistry(status, statusRegistry));\n}\n\n// Projection flags belong to list/calendar/activity output shaping and must not\n// leak into runContext's downstream calls, which need full ItemFrontMatter rows.\nconst LIST_PROJECTION_FLAGS = [\"compact\", \"brief\", \"fields\", \"includeBody\", \"include_body\"] as const;\n\nfunction stripListProjectionFlags(options: ContextOptions): Record<string, unknown> {\n const copy: Record<string, unknown> = { ...(options as Record<string, unknown>) };\n for (const key of LIST_PROJECTION_FLAGS) {\n delete copy[key];\n }\n return copy;\n}\n\n// ---------------------------------------------------------------------------\n// Sorting / mapping helpers (unchanged from original)\n// ---------------------------------------------------------------------------\n\nfunction compareOptionalOrder(left: number | null | undefined, right: number | null | undefined): number {\n const leftValue = left ?? null;\n const rightValue = right ?? null;\n if (leftValue === null && rightValue === null) return 0;\n if (leftValue === null) return 1;\n if (rightValue === null) return -1;\n return leftValue - rightValue;\n}\n\nfunction compareOptionalDeadline(left: string | null | undefined, right: string | null | undefined): number {\n const leftValue = left ?? null;\n const rightValue = right ?? null;\n if (leftValue === null && rightValue === null) return 0;\n if (leftValue === null) return 1;\n if (rightValue === null) return -1;\n return compareTimestampStrings(leftValue, rightValue);\n}\n\nfunction daysInUtcMonth(year: number, monthIndex: number): number {\n return new Date(Date.UTC(year, monthIndex + 1, 0)).getUTCDate();\n}\n\nfunction hasNoInvalidDatePrefix(value: string): boolean {\n const match = LEADING_HYPHEN_DATE.exec(value) ?? LEADING_COMPACT_DATE.exec(value);\n if (!match) {\n return true;\n }\n const year = Number.parseInt(match[1], 10);\n const month = Number.parseInt(match[2], 10);\n const day = Number.parseInt(match[3], 10);\n return month >= 1 && month <= 12 && day >= 1 && day <= daysInUtcMonth(year, month - 1);\n}\n\nfunction normalizeTimestampCandidate(value: string): string {\n const compactDate = COMPACT_DATE.exec(value);\n if (compactDate) {\n return `${compactDate[1]}-${compactDate[2]}-${compactDate[3]}`;\n }\n const compactDateTime = COMPACT_DATETIME.exec(value);\n if (compactDateTime) {\n const [, year, month, day, hour, minute, secondRaw, offsetRaw] = compactDateTime;\n const second = secondRaw ? `:${secondRaw}` : \"\";\n const offset = offsetRaw && offsetRaw.length === 5 && offsetRaw !== \"Z\" ? `${offsetRaw.slice(0, 3)}:${offsetRaw.slice(3)}` : offsetRaw ?? \"\";\n return `${year}-${month}-${day}T${hour}:${minute}${second}${offset}`;\n }\n return value;\n}\n\nfunction parseContextTimestampMs(value: unknown): number {\n if (typeof value !== \"string\") {\n return Number.NaN;\n }\n const trimmed = value.trim();\n if (trimmed.length === 0 || !hasNoInvalidDatePrefix(trimmed)) {\n return Number.NaN;\n }\n const parsed = Date.parse(normalizeTimestampCandidate(trimmed));\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n}\n\nfunction sortableTimestamp(value: unknown): string {\n const parsed = parseContextTimestampMs(value);\n return Number.isFinite(parsed) ? new Date(parsed).toISOString() : \"\";\n}\n\nfunction dateTokenForTimestamp(value: unknown): string {\n const parsed = parseContextTimestampMs(value);\n return Number.isFinite(parsed) ? new Date(parsed).toISOString().slice(0, 10) : \"unknown\";\n}\n\nfunction normalizedParentId(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction compareCriticalItems(left: ItemFrontMatter, right: ItemFrontMatter, statusRegistry: RuntimeStatusRegistry): number {\n const byStatus = statusRank(left.status, statusRegistry) - statusRank(right.status, statusRegistry);\n if (byStatus !== 0) return byStatus;\n const byPriority = left.priority - right.priority;\n if (byPriority !== 0) return byPriority;\n const byOrder = compareOptionalOrder(left.order, right.order);\n if (byOrder !== 0) return byOrder;\n const byDeadline = compareOptionalDeadline(left.deadline, right.deadline);\n if (byDeadline !== 0) return byDeadline;\n const byUpdated = compareTimestampStrings(sortableTimestamp(right.updated_at), sortableTimestamp(left.updated_at));\n const byId = left.id.localeCompare(right.id);\n return byUpdated !== 0 ? byUpdated : byId;\n}\n\nfunction completionPct(closed: number, total: number): number {\n return total > 0 ? Math.round((closed / total) * 100) : 0;\n}\n\nfunction buildChildrenByParent(allItems: ItemFrontMatter[]): Map<string, ItemFrontMatter[]> {\n const childrenByParent = new Map<string, ItemFrontMatter[]>();\n for (const item of allItems) {\n const parent = normalizedParentId(item.parent);\n if (!parent) continue;\n const children = childrenByParent.get(parent) ?? [];\n children.push(item);\n childrenByParent.set(parent, children);\n }\n return childrenByParent;\n}\n\nfunction toContextFocusItem(\n item: ItemFrontMatter,\n statusRegistry?: RuntimeStatusRegistry,\n childrenByParent?: Map<string, ItemFrontMatter[]>,\n): ContextFocusItem {\n const focus: ContextFocusItem = {\n id: item.id,\n title: item.title,\n type: item.type,\n status: item.status,\n priority: item.priority,\n order: item.order ?? null,\n deadline: item.deadline ?? null,\n assignee: item.assignee ?? null,\n tags: Array.isArray(item.tags) ? [...item.tags] : [],\n updated_at: item.updated_at,\n parent: normalizedParentId(item.parent),\n };\n if (statusRegistry && childrenByParent) {\n const descendants = collectDescendants(item.id, childrenByParent);\n const total = descendants.length;\n if (total > 0) {\n const closed = descendants.filter((desc) => isClosedStatus(desc.status, statusRegistry)).length;\n focus.children_total = total;\n focus.children_closed = closed;\n focus.completion_pct = completionPct(closed, total);\n }\n }\n return focus;\n}\n\nfunction summarizeAgenda(events: CalendarRow[]): ContextAgendaSummary {\n let deadlines = 0;\n let reminders = 0;\n let scheduled = 0;\n const itemIds = new Set<string>();\n for (const event of events) {\n itemIds.add(event.item_id);\n if (event.kind === \"deadline\") {\n deadlines += 1;\n continue;\n }\n if (event.kind === \"reminder\") {\n reminders += 1;\n continue;\n }\n scheduled += 1;\n }\n return {\n events: events.length,\n items: itemIds.size,\n deadlines,\n reminders,\n scheduled,\n };\n}\n\nfunction filterTerminalCalendarEvents(events: CalendarRow[], statusRegistry: RuntimeStatusRegistry): CalendarRow[] {\n return events.filter((event) => !statusRegistry.terminal_statuses.has(normalizeStatusForRegistry(event.item_status, statusRegistry)));\n}\n\n// ---------------------------------------------------------------------------\n// Section builders\n// ---------------------------------------------------------------------------\n\nfunction buildHierarchy(\n allItems: ItemFrontMatter[],\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): HierarchyNode[] {\n const itemMap = new Map<string, ItemFrontMatter>();\n for (const item of allItems) {\n itemMap.set(item.id, item);\n }\n\n const childrenByParent = buildChildrenByParent(allItems);\n\n const activeHighLevelIds = new Set(\n activeItems.filter((item) => HIGH_LEVEL_TYPES.has(item.type)).map((item) => item.id),\n );\n\n const nodes: HierarchyNode[] = [];\n for (const parentId of activeHighLevelIds) {\n const parent = itemMap.get(parentId);\n if (!parent) continue;\n const allDescendants = collectDescendants(parentId, childrenByParent);\n const childItems = childrenByParent.get(parentId) ?? [];\n\n let closedCount = 0;\n let openCount = 0;\n let inProgressCount = 0;\n let blockedCount = 0;\n for (const desc of allDescendants) {\n if (isClosedStatus(desc.status, statusRegistry)) closedCount++;\n else if (isInProgressStatus(desc.status, statusRegistry)) inProgressCount++;\n else if (isBlockedStatus(desc.status, statusRegistry)) blockedCount++;\n else if (isOpenStatus(desc.status, statusRegistry)) openCount++;\n }\n\n const children: HierarchyChild[] = childItems\n .sort((a, b) => compareCriticalItems(a, b, statusRegistry))\n .slice(0, limit)\n .map((child) => {\n const grandchildren = collectDescendants(child.id, childrenByParent);\n const gcClosed = grandchildren.filter((gc) => isClosedStatus(gc.status, statusRegistry)).length;\n return {\n id: child.id,\n title: child.title,\n type: child.type,\n status: child.status,\n children_total: grandchildren.length,\n children_closed: gcClosed,\n };\n });\n\n nodes.push({\n id: parent.id,\n title: parent.title,\n type: parent.type,\n status: parent.status,\n children_total: allDescendants.length,\n children_closed: closedCount,\n children_open: openCount,\n children_in_progress: inProgressCount,\n children_blocked: blockedCount,\n children,\n });\n }\n\n return nodes\n .sort((a, b) => {\n const aParent = itemMap.get(a.id)!;\n const bParent = itemMap.get(b.id)!;\n return compareCriticalItems(aParent, bParent, statusRegistry);\n })\n .slice(0, limit);\n}\n\nfunction collectDescendants(\n parentId: string,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n): ItemFrontMatter[] {\n const result: ItemFrontMatter[] = [];\n const stack = [parentId];\n const visited = new Set<string>();\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (visited.has(current)) continue;\n visited.add(current);\n const children = childrenByParent.get(current) ?? [];\n for (const child of children) {\n result.push(child);\n stack.push(child.id);\n }\n }\n return result;\n}\n\nasync function buildActivity(\n activityLimit: number,\n global: GlobalOptions,\n): Promise<CompactActivityEntry[]> {\n const result = await runActivity({ compact: true, limit: String(activityLimit) }, global);\n return result.compact_activity ?? [];\n}\n\nfunction buildProgress(\n allItems: ItemFrontMatter[],\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): ProgressEntry[] {\n const childrenByParent = new Map<string, ItemFrontMatter[]>();\n for (const item of allItems) {\n if (!item.parent) continue;\n const children = childrenByParent.get(item.parent) ?? [];\n children.push(item);\n childrenByParent.set(item.parent, children);\n }\n\n const activeHighLevel = activeItems.filter((item) => HIGH_LEVEL_TYPES.has(item.type));\n const entries: ProgressEntry[] = [];\n for (const parent of activeHighLevel) {\n const descendants = collectDescendants(parent.id, childrenByParent);\n const total = descendants.length;\n if (total === 0) continue;\n\n let closed = 0;\n let open = 0;\n let inProgress = 0;\n let blocked = 0;\n for (const desc of descendants) {\n if (isClosedStatus(desc.status, statusRegistry)) closed++;\n else if (isInProgressStatus(desc.status, statusRegistry)) inProgress++;\n else if (isBlockedStatus(desc.status, statusRegistry)) blocked++;\n else if (isOpenStatus(desc.status, statusRegistry)) open++;\n }\n\n entries.push({\n id: parent.id,\n title: parent.title,\n type: parent.type,\n total,\n closed,\n open,\n in_progress: inProgress,\n blocked,\n completion_pct: completionPct(closed, total),\n });\n }\n\n return entries\n .sort((a, b) => a.completion_pct - b.completion_pct)\n .slice(0, limit);\n}\n\nfunction buildBlockers(\n blockedItems: ItemFrontMatter[],\n itemMap: Map<string, ItemFrontMatter>,\n limit: number,\n): BlockerEntry[] {\n return blockedItems.slice(0, limit).map((item) => {\n const blockerItem = item.blocked_by ? itemMap.get(item.blocked_by) : undefined;\n return {\n id: item.id,\n title: item.title,\n blocked_by: item.blocked_by ?? null,\n blocked_by_title: blockerItem?.title ?? null,\n blocked_by_status: blockerItem?.status ?? null,\n blocked_reason: item.blocked_reason ?? null,\n unblock_note: item.unblock_note ?? null,\n };\n });\n}\n\nfunction buildHotFiles(\n activeItems: ItemFrontMatter[],\n limit: number,\n): HotFile[] {\n const fileMap = new Map<string, Set<string>>();\n for (const item of activeItems) {\n for (const file of item.files ?? []) {\n const existing = fileMap.get(file.path) ?? new Set<string>();\n existing.add(item.id);\n fileMap.set(file.path, existing);\n }\n }\n\n return [...fileMap.entries()]\n .map(([filePath, itemIds]) => ({\n path: filePath,\n references: itemIds.size,\n items: [...itemIds].sort(),\n }))\n .sort((a, b) => b.references - a.references)\n .slice(0, limit);\n}\n\nfunction buildWorkload(\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): WorkloadEntry[] {\n const groups = new Map<string | null, ItemFrontMatter[]>();\n for (const item of activeItems) {\n const key = item.assignee ?? null;\n const existing = groups.get(key) ?? [];\n existing.push(item);\n groups.set(key, existing);\n }\n\n return [...groups.entries()]\n .map(([assignee, items]) => ({\n assignee,\n active: items.length,\n in_progress: items.filter((item) => isInProgressStatus(item.status, statusRegistry)).length,\n items: items.map((item) => item.id).sort(),\n }))\n .sort((a, b) => b.active - a.active)\n .slice(0, limit);\n}\n\nfunction buildStaleness(\n allNonTerminal: ItemFrontMatter[],\n staleThresholdDays: number,\n now: string,\n limit: number,\n): StaleEntry[] {\n const cutoffMs = new Date(now).getTime() - staleThresholdDays * 24 * 60 * 60 * 1000;\n\n return allNonTerminal\n .filter((item) => new Date(item.updated_at).getTime() < cutoffMs)\n .map((item) => ({\n id: item.id,\n title: item.title,\n status: item.status,\n updated_at: item.updated_at,\n stale_days: Math.floor((new Date(now).getTime() - new Date(item.updated_at).getTime()) / (24 * 60 * 60 * 1000)),\n }))\n .sort((a, b) => b.stale_days - a.stale_days)\n .slice(0, limit);\n}\n\nfunction buildRecentlyCreated(\n allNonTerminal: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n limit: number,\n): RecentContextItem[] {\n return allNonTerminal\n .map((item) => ({ item, sortKey: sortableTimestamp(item.created_at) }))\n .sort((left, right) => {\n const byCreated = compareTimestampStrings(right.sortKey, left.sortKey);\n return byCreated !== 0 ? byCreated : left.item.id.localeCompare(right.item.id);\n })\n .slice(0, limit)\n .map(({ item }) => ({\n ...toContextFocusItem(item, statusRegistry, childrenByParent),\n created_at: item.created_at,\n }));\n}\n\nfunction buildUnparented(\n allNonTerminal: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n limit: number,\n): ContextFocusItem[] {\n return allNonTerminal\n .filter((item) => !normalizedParentId(item.parent) && !HIGH_LEVEL_TYPES.has(item.type))\n .sort((left, right) => compareCriticalItems(left, right, statusRegistry))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, childrenByParent));\n}\n\nfunction buildTestHealth(\n activeItems: ItemFrontMatter[],\n): TestHealthSummary {\n let itemsWithTests = 0;\n let itemsWithRecentRuns = 0;\n let passed = 0;\n let failed = 0;\n let skipped = 0;\n const itemsFailing: string[] = [];\n\n for (const item of activeItems) {\n if ((item.tests ?? []).length > 0) {\n itemsWithTests++;\n }\n const runs = item.test_runs ?? [];\n if (runs.length > 0) {\n itemsWithRecentRuns++;\n let itemHasFailure = false;\n for (const run of runs) {\n passed += run.passed ?? 0;\n failed += run.failed ?? 0;\n skipped += run.skipped ?? 0;\n if ((run.failed ?? 0) > 0) {\n itemHasFailure = true;\n }\n }\n if (itemHasFailure) {\n itemsFailing.push(item.id);\n }\n }\n }\n\n return {\n items_with_tests: itemsWithTests,\n items_with_recent_runs: itemsWithRecentRuns,\n recent_runs: { passed, failed, skipped },\n items_failing: itemsFailing.sort(),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Markdown formatting\n// ---------------------------------------------------------------------------\n\nfunction formatClock(timestamp: string): string {\n return `${new Date(timestamp).toISOString().slice(11, 16)}Z`;\n}\n\nfunction formatFocusLine(item: ContextFocusItem): string {\n const orderToken = item.order === null ? \"-\" : String(item.order);\n const deadlineToken = item.deadline ?? \"-\";\n const parentToken = item.parent ? ` parent:${item.parent}` : \"\";\n const progressToken =\n item.children_total !== undefined && item.children_closed !== undefined && item.completion_pct !== undefined\n ? ` children:${item.children_closed}/${item.children_total} done:${item.completion_pct}%`\n : \"\";\n return `${item.id} p${item.priority} ${item.status} ${item.type} order:${orderToken} deadline:${deadlineToken}${parentToken}${progressToken} ${item.title}`;\n}\n\nfunction formatAgendaLine(event: CalendarRow): string {\n const base = `${formatClock(event.at)} [${event.kind}] ${event.item_id} p${event.item_priority} ${event.item_status} ${event.item_title}`;\n if (event.kind === \"reminder\") {\n return `${base} — ${event.reminder_text}`;\n }\n if (event.kind === \"event\") {\n const recurringSuffix = event.event_recurring ? \" (recurring)\" : \"\";\n const title = event.event_title ?? event.item_title;\n return `${base} — ${title}${recurringSuffix}`;\n }\n return base;\n}\n\nexport function renderContextMarkdown(result: ContextResult): string {\n const lines: string[] = [];\n lines.push(\"# pm context\");\n lines.push(\"\");\n lines.push(`- now: ${result.now}`);\n lines.push(`- depth: ${result.depth}`);\n lines.push(`- active_items: ${result.summary.active_items} (in_progress: ${result.summary.in_progress}, open: ${result.summary.open})`);\n if (result.summary.total_items !== undefined) {\n lines.push(`- total_items: ${result.summary.total_items} (closed: ${result.summary.closed ?? 0}, canceled: ${result.summary.canceled ?? 0})`);\n }\n lines.push(`- agenda_events: ${result.summary.agenda_events}`);\n lines.push(`- blocked_fallback_used: ${result.summary.blocked_fallback_used}`);\n if (result.sections_included.length > 0) {\n lines.push(`- sections: ${result.sections_included.join(\", \")}`);\n }\n lines.push(\"\");\n\n lines.push(\"## High-level focus\");\n if (result.high_level.length === 0) {\n lines.push(\"No high-level active items.\");\n } else {\n for (const item of result.high_level) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n }\n lines.push(\"\");\n\n lines.push(\"## Low-level focus\");\n if (result.low_level.length === 0) {\n lines.push(\"No low-level active items.\");\n } else {\n for (const item of result.low_level) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n }\n lines.push(\"\");\n\n if (result.blocked_fallback.length > 0) {\n lines.push(\"## Blocked fallback\");\n for (const item of result.blocked_fallback) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n lines.push(\"## Agenda\");\n lines.push(\n `- events: ${result.agenda.summary.events} (deadlines: ${result.agenda.summary.deadlines}, reminders: ${result.agenda.summary.reminders}, scheduled: ${result.agenda.summary.scheduled})`,\n );\n if (result.agenda.events.length === 0) {\n lines.push(\"No agenda events matched the selected filters.\");\n } else {\n for (const event of result.agenda.events) {\n lines.push(`- ${formatAgendaLine(event)}`);\n }\n }\n lines.push(\"\");\n\n if (result.hierarchy && result.hierarchy.length > 0) {\n lines.push(\"## Hierarchy\");\n for (const node of result.hierarchy) {\n const pct = node.children_total > 0 ? Math.round((node.children_closed / node.children_total) * 100) : 0;\n lines.push(`- ${node.id} ${node.type} ${node.status} \"${node.title}\" [${node.children_closed}/${node.children_total} done ${pct}%]`);\n for (const child of node.children) {\n const cpct = child.children_total > 0 ? Math.round((child.children_closed / child.children_total) * 100) : 0;\n lines.push(` - ${child.id} ${child.type} ${child.status} \"${child.title}\" [${child.children_closed}/${child.children_total} done ${cpct}%]`);\n }\n }\n lines.push(\"\");\n }\n\n if (result.progress && result.progress.length > 0) {\n lines.push(\"## Progress\");\n for (const entry of result.progress) {\n lines.push(`- ${entry.id} \"${entry.title}\" ${entry.completion_pct}% (${entry.closed}/${entry.total} closed, ${entry.in_progress} wip, ${entry.open} open, ${entry.blocked} blocked)`);\n }\n lines.push(\"\");\n }\n\n if (result.recently_created && result.recently_created.length > 0) {\n lines.push(\"## Recently created\");\n for (const item of result.recently_created) {\n lines.push(`- ${dateTokenForTimestamp(item.created_at)} ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n if (result.unparented && result.unparented.length > 0) {\n lines.push(\"## Unparented\");\n for (const item of result.unparented) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n if (result.activity && result.activity.length > 0) {\n lines.push(\"## Recent activity\");\n for (const entry of result.activity) {\n const msg = entry.msg ? ` ${entry.msg}` : \"\";\n lines.push(`- ${entry.ts.slice(0, 16)}Z ${entry.id} ${entry.op} by:${entry.author}${msg}`);\n }\n lines.push(\"\");\n }\n\n if (result.blockers && result.blockers.length > 0) {\n lines.push(\"## Blockers\");\n for (const entry of result.blockers) {\n const by = entry.blocked_by ? `blocked_by:${entry.blocked_by}(${entry.blocked_by_status ?? \"?\"})` : \"blocked_by:-\";\n const reason = entry.blocked_reason ? ` reason:\"${entry.blocked_reason}\"` : \"\";\n const note = entry.unblock_note ? ` unblock:\"${entry.unblock_note}\"` : \"\";\n lines.push(`- ${entry.id} \"${entry.title}\" ${by}${reason}${note}`);\n }\n lines.push(\"\");\n }\n\n if (result.files && result.files.length > 0) {\n lines.push(\"## Hot files\");\n for (const file of result.files) {\n lines.push(`- ${file.path} refs:${file.references} items:[${file.items.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n if (result.workload && result.workload.length > 0) {\n lines.push(\"## Workload\");\n for (const entry of result.workload) {\n const who = entry.assignee ?? \"(unassigned)\";\n lines.push(`- ${who} active:${entry.active} wip:${entry.in_progress} items:[${entry.items.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n if (result.staleness && result.staleness.length > 0) {\n lines.push(\"## Stale items\");\n for (const entry of result.staleness) {\n lines.push(`- ${entry.id} ${entry.status} stale:${entry.stale_days}d last:${entry.updated_at.slice(0, 10)} \"${entry.title}\"`);\n }\n lines.push(\"\");\n }\n\n if (result.tests) {\n lines.push(\"## Test health\");\n lines.push(`- items_with_tests: ${result.tests.items_with_tests}`);\n lines.push(`- items_with_recent_runs: ${result.tests.items_with_recent_runs}`);\n lines.push(`- passed: ${result.tests.recent_runs.passed}, failed: ${result.tests.recent_runs.failed}, skipped: ${result.tests.recent_runs.skipped}`);\n if (result.tests.items_failing.length > 0) {\n lines.push(`- items_failing: [${result.tests.items_failing.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n const isEmpty =\n result.summary.active_items === 0 &&\n result.summary.blocked === 0 &&\n result.agenda.summary.events === 0;\n if (isEmpty) {\n lines.push(\"## Suggestions\");\n lines.push(\"No active work items or upcoming events. Consider:\");\n lines.push(\"- `pm create --type Task --title \\\"...\\\"` to add a new work item\");\n lines.push(\"- `pm list --status closed --limit 5` to review recent completions\");\n lines.push(\"- `pm search <keywords>` to find related past work\");\n lines.push(\"- `pm aggregate` for a full project status overview\");\n }\n\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Main runner\n// ---------------------------------------------------------------------------\n\nexport async function runContext(options: ContextOptions, global: GlobalOptions): Promise<ContextResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settings = await readSettings(pmRoot);\n const contextSettings = settings.context ?? SETTINGS_DEFAULTS.context;\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const limit = parseContextLimit(options.limit);\n\n const depth = parseContextDepth(options.depth, contextSettings);\n const sectionsIncluded = parseContextSections(options.section, depth, contextSettings);\n const activityLimit = parseActivityLimit(options.activityLimit, contextSettings);\n const staleThresholdDays = parseStaleThresholdDays(options.staleThreshold, contextSettings);\n\n const needsAllItems = sectionsIncluded.some((s) =>\n [\"hierarchy\", \"progress\", \"blockers\", \"staleness\", \"recently_created\", \"unparented\"].includes(s),\n );\n\n const baseListOptions = stripListProjectionFlags(options);\n const listOptions: ListOptions = { ...baseListOptions, excludeTerminal: true };\n const listed = await runList(undefined, listOptions, global);\n const listedFrontMatter = listed.items as ItemFrontMatter[];\n\n let allItems: ItemFrontMatter[] = listedFrontMatter;\n if (needsAllItems) {\n const allListOptions: ListOptions = { ...baseListOptions, excludeTerminal: false };\n const allListed = await runList(undefined, allListOptions, global);\n allItems = allListed.items as ItemFrontMatter[];\n }\n\n const ranked = [...listedFrontMatter].sort((left, right) => compareCriticalItems(left, right, statusRegistry));\n const activeStatuses =\n statusRegistry.active_statuses.size > 0\n ? statusRegistry.active_statuses\n : new Set<ItemStatus>([statusRegistry.open_status]);\n const blockedStatuses = statusRegistry.blocked_statuses;\n const activeItems = ranked.filter((item) => activeStatuses.has(normalizeStatusForRegistry(item.status, statusRegistry)));\n const blockedItems = ranked.filter((item) =>\n blockedStatuses.has(normalizeStatusForRegistry(item.status, statusRegistry)),\n );\n\n const childrenByParent = buildChildrenByParent(allItems);\n const focusChildrenByParent = needsAllItems ? childrenByParent : undefined;\n\n const highLevel = activeItems\n .filter((item) => HIGH_LEVEL_TYPES.has(item.type))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent));\n const lowLevel = activeItems\n .filter((item) => !HIGH_LEVEL_TYPES.has(item.type))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent));\n\n const blockedFallbackUsed = activeItems.length === 0;\n const blockedFallback = blockedFallbackUsed\n ? blockedItems.slice(0, limit).map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent))\n : [];\n\n const calendarOptions: CalendarOptions = {\n ...baseListOptions,\n view: \"agenda\",\n include: \"all\",\n limit: String(limit),\n };\n const agenda = await runCalendar(calendarOptions, global);\n const agendaEvents = filterTerminalCalendarEvents(agenda.events, statusRegistry).slice(0, limit);\n const agendaSummary = summarizeAgenda(agendaEvents);\n const warnings = [...new Set([...(listed.warnings ?? []), ...(agenda.warnings ?? [])])].sort((left, right) =>\n left.localeCompare(right),\n );\n\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n const openStatus = normalizeStatusInput(\"open\", statusRegistry) ?? statusRegistry.open_status;\n const inProgressCount = inProgressStatus\n ? activeItems.filter((item) => normalizeStatusForRegistry(item.status, statusRegistry) === inProgressStatus).length\n : 0;\n const openCount = activeItems.filter((item) => normalizeStatusForRegistry(item.status, statusRegistry) === openStatus).length;\n\n const now = agenda.now;\n\n const itemMap = new Map<string, ItemFrontMatter>();\n for (const item of allItems) {\n itemMap.set(item.id, item);\n }\n\n const allNonTerminal = allItems.filter((item) => !isTerminalStatus(item.status, statusRegistry));\n\n const has = (section: ContextSectionName) => sectionsIncluded.includes(section);\n\n const hierarchy = has(\"hierarchy\") ? buildHierarchy(allItems, activeItems, statusRegistry, limit) : undefined;\n const activity = has(\"activity\") ? await buildActivity(activityLimit, global) : undefined;\n const progress = has(\"progress\") ? buildProgress(allItems, activeItems, statusRegistry, limit) : undefined;\n const blockersSection = has(\"blockers\") ? buildBlockers(blockedItems, itemMap, limit) : undefined;\n const recentlyCreated = has(\"recently_created\")\n ? buildRecentlyCreated(allNonTerminal, statusRegistry, childrenByParent, limit)\n : undefined;\n const unparented = has(\"unparented\")\n ? buildUnparented(allNonTerminal, statusRegistry, childrenByParent, limit)\n : undefined;\n const filesSection = has(\"files\") ? buildHotFiles(activeItems, limit) : undefined;\n const workload = has(\"workload\") ? buildWorkload(activeItems, statusRegistry, limit) : undefined;\n const staleness = has(\"staleness\") ? buildStaleness(allNonTerminal, staleThresholdDays, now, limit) : undefined;\n const tests = has(\"tests\") ? buildTestHealth(activeItems) : undefined;\n\n const summaryExtras: Pick<ContextSummary, \"total_items\" | \"closed\" | \"canceled\"> =\n needsAllItems\n ? {\n total_items: allItems.length,\n closed: allItems.filter((i) => isClosedStatus(i.status, statusRegistry)).length,\n canceled: allItems.filter((i) => {\n const canceledStatus = normalizeStatusInput(\"canceled\", statusRegistry);\n return canceledStatus ? normalizeStatusForRegistry(i.status, statusRegistry) === canceledStatus : false;\n }).length,\n }\n : {};\n\n const result: ContextResult = {\n output_default: \"toon\",\n now,\n depth,\n sections_included: sectionsIncluded,\n window: {\n anchor: agenda.anchor,\n start: agenda.range.start,\n end: agenda.range.end,\n past: agenda.range.past,\n from: agenda.range.from,\n to: agenda.range.to,\n },\n filters: {\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n limit: options.limit ?? null,\n runtime_filters: (listed.filters.runtime_filters ?? agenda.filters.runtime_filters ?? {}) as Record<string, unknown>,\n },\n summary: {\n active_items: activeItems.length,\n in_progress: inProgressCount,\n open: openCount,\n blocked: blockedItems.length,\n blocked_fallback_used: blockedFallbackUsed,\n high_level: highLevel.length,\n low_level: lowLevel.length,\n agenda_events: agendaSummary.events,\n ...summaryExtras,\n },\n high_level: highLevel,\n low_level: lowLevel,\n blocked_fallback: blockedFallback,\n agenda: {\n summary: agendaSummary,\n events: agendaEvents,\n },\n };\n\n if (hierarchy) result.hierarchy = hierarchy;\n if (activity) result.activity = activity;\n if (progress) result.progress = progress;\n if (blockersSection) result.blockers = blockersSection;\n if (recentlyCreated) result.recently_created = recentlyCreated;\n if (unparented) result.unparented = unparented;\n if (filesSection) result.files = filesSection;\n if (workload) result.workload = workload;\n if (staleness) result.staleness = staleness;\n if (tests) result.tests = tests;\n if (warnings.length > 0) result.warnings = warnings;\n if (activeItems.length === 0 && blockedItems.length === 0 && agendaEvents.length === 0) {\n result.suggestions = [\n 'pm create --type Task --title \"...\" to add a new work item',\n \"pm list --status closed --limit 5 to review recent completions\",\n \"pm search <keywords> to find related past work\",\n \"pm aggregate for a full project status overview\",\n ];\n }\n\n return result;\n}\n"],"names":[],"mappings":"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","debugId":"6714cb01-5f6a-50da-9cf6-8d60a33a390a"}
|
|
1
|
+
{"version":3,"file":"context.js","sources":["cli/commands/context.ts"],"sourceRoot":"/","sourcesContent":["import { SETTINGS_DEFAULTS, EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { compareTimestampStrings, nowIso } from \"../../core/shared/time.js\";\nimport { isTerminalStatus, normalizeStatusForRegistry, normalizeStatusInput } from \"../../core/item/status.js\";\nimport { resolveRuntimeStatusRegistry, type RuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type {\n ContextDepth,\n ContextSectionName,\n ContextSettings,\n ItemFrontMatter,\n ItemStatus,\n PmSettings,\n} from \"../../types/index.js\";\nimport { CONTEXT_DEPTH_VALUES, CONTEXT_SECTION_VALUES } from \"../../types/index.js\";\nimport { parseIntegerLimit } from \"../shared-parsers.js\";\nimport { runCalendar, type CalendarOptions, type CalendarRow } from \"./calendar.js\";\nimport { runList, type ListOptions } from \"./list.js\";\nimport { runActivity, type CompactActivityEntry } from \"./activity.js\";\n\n// ---------------------------------------------------------------------------\n// Output format\n// ---------------------------------------------------------------------------\n\nexport const CONTEXT_OUTPUT_VALUES = [\"markdown\", \"toon\", \"json\"] as const;\nexport type ContextOutputFormat = (typeof CONTEXT_OUTPUT_VALUES)[number];\n\n// ---------------------------------------------------------------------------\n// Options\n// ---------------------------------------------------------------------------\n\nexport interface ContextOptions {\n date?: string;\n from?: string;\n to?: string;\n past?: boolean;\n type?: string;\n tag?: string;\n priority?: string;\n assignee?: string;\n assigneeFilter?: string;\n sprint?: string;\n release?: string;\n limit?: string;\n format?: string;\n depth?: string;\n section?: string[];\n activityLimit?: string;\n staleThreshold?: string;\n parent?: string;\n [key: string]: unknown;\n}\n\n// ---------------------------------------------------------------------------\n// Focus item (unchanged from original)\n// ---------------------------------------------------------------------------\n\nexport interface ContextFocusItem {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n priority: number;\n order: number | null;\n deadline: string | null;\n assignee: string | null;\n tags: string[];\n updated_at: string;\n parent: string | null;\n children_total?: number;\n children_closed?: number;\n completion_pct?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Section data types\n// ---------------------------------------------------------------------------\n\nexport interface HierarchyChild {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n children_total: number;\n children_closed: number;\n}\n\nexport interface HierarchyNode {\n id: string;\n title: string;\n type: string;\n status: ItemStatus;\n children_total: number;\n children_closed: number;\n children_open: number;\n children_in_progress: number;\n children_blocked: number;\n children: HierarchyChild[];\n}\n\nexport interface ProgressEntry {\n id: string;\n title: string;\n type: string;\n total: number;\n closed: number;\n open: number;\n in_progress: number;\n blocked: number;\n completion_pct: number;\n}\n\nexport interface BlockerEntry {\n id: string;\n title: string;\n blocked_by: string | null;\n blocked_by_title: string | null;\n blocked_by_status: ItemStatus | null;\n blocked_reason: string | null;\n unblock_note: string | null;\n}\n\nexport interface HotFile {\n path: string;\n references: number;\n items: string[];\n}\n\nexport interface WorkloadEntry {\n assignee: string | null;\n active: number;\n in_progress: number;\n items: string[];\n}\n\nexport interface StaleEntry {\n id: string;\n title: string;\n status: ItemStatus;\n updated_at: string;\n stale_days: number;\n}\n\nexport interface RecentContextItem extends ContextFocusItem {\n created_at?: string;\n}\n\nexport interface TestHealthSummary {\n items_with_tests: number;\n items_with_recent_runs: number;\n recent_runs: {\n passed: number;\n failed: number;\n skipped: number;\n };\n items_failing: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Agenda / summary (unchanged)\n// ---------------------------------------------------------------------------\n\ninterface ContextAgendaSummary {\n events: number;\n items: number;\n deadlines: number;\n reminders: number;\n scheduled: number;\n}\n\ninterface ContextSummary {\n active_items: number;\n in_progress: number;\n open: number;\n blocked: number;\n blocked_fallback_used: boolean;\n high_level: number;\n low_level: number;\n agenda_events: number;\n total_items?: number;\n closed?: number;\n canceled?: number;\n}\n\n// ---------------------------------------------------------------------------\n// Result\n// ---------------------------------------------------------------------------\n\nexport interface ContextResult {\n output_default: \"toon\";\n now: string;\n depth: ContextDepth;\n sections_included: ContextSectionName[];\n window: {\n anchor: string;\n start: string | null;\n end: string | null;\n past: boolean;\n from: string | null;\n to: string | null;\n };\n filters: {\n type: string | null;\n tag: string | null;\n priority: string | null;\n assignee: string | null;\n assignee_filter: string | null;\n sprint: string | null;\n release: string | null;\n limit: string | null;\n parent: string | null;\n runtime_filters?: Record<string, unknown>;\n };\n summary: ContextSummary;\n high_level: ContextFocusItem[];\n low_level: ContextFocusItem[];\n blocked_fallback: ContextFocusItem[];\n agenda: {\n summary: ContextAgendaSummary;\n events: CalendarRow[];\n };\n hierarchy?: HierarchyNode[];\n activity?: CompactActivityEntry[];\n progress?: ProgressEntry[];\n blockers?: BlockerEntry[];\n recently_created?: RecentContextItem[];\n unparented?: ContextFocusItem[];\n files?: HotFile[];\n workload?: WorkloadEntry[];\n staleness?: StaleEntry[];\n tests?: TestHealthSummary;\n suggestions?: string[];\n warnings?: string[];\n}\n\n// ---------------------------------------------------------------------------\n// Constants\n// ---------------------------------------------------------------------------\n\nconst HIGH_LEVEL_TYPES = new Set<string>([\"Epic\", \"Feature\"]);\nconst DEFAULT_CONTEXT_LIMIT = 10;\n\nconst STANDARD_SECTIONS: ContextSectionName[] = [\"hierarchy\", \"activity\", \"progress\", \"recently_created\", \"unparented\", \"workload\"];\nconst DEEP_SECTIONS: ContextSectionName[] = [\n ...STANDARD_SECTIONS,\n \"blockers\",\n \"files\",\n \"staleness\",\n \"tests\",\n];\nconst LEADING_HYPHEN_DATE = /^(\\d{4})-(\\d{2})-(\\d{2})/;\nconst LEADING_COMPACT_DATE = /^(\\d{4})(\\d{2})(\\d{2})(?:[T ]?\\d{2}|$)/;\nconst COMPACT_DATE = /^(\\d{4})(\\d{2})(\\d{2})$/;\nconst COMPACT_DATETIME = /^(\\d{4})(\\d{2})(\\d{2})(?:[T\\s]?)(\\d{2})(\\d{2})(\\d{2})?(Z|[+-]\\d{2}:?\\d{2})?$/i;\n\n// ---------------------------------------------------------------------------\n// Parsers\n// ---------------------------------------------------------------------------\n\nfunction parseOutputFormat(raw: string | undefined): ContextOutputFormat | undefined {\n if (!raw) return undefined;\n const normalized = raw.trim().toLowerCase();\n if (!CONTEXT_OUTPUT_VALUES.includes(normalized as ContextOutputFormat)) {\n throw new PmCliError(\"Context format must be one of markdown|toon|json\", EXIT_CODE.USAGE);\n }\n return normalized as ContextOutputFormat;\n}\n\nexport function resolveContextOutputFormat(options: ContextOptions, global: GlobalOptions): ContextOutputFormat {\n const commandFormat = parseOutputFormat(options.format);\n if (global.json && commandFormat && commandFormat !== \"json\") {\n throw new PmCliError(\"Cannot combine --json with --format markdown|toon\", EXIT_CODE.USAGE);\n }\n if (global.json) {\n return \"json\";\n }\n return commandFormat ?? \"toon\";\n}\n\n// --depth full surfaces the entire backlog: when no explicit --limit is given,\n// every section returns all rows instead of the default top-N sample.\nfunction parseContextLimit(raw: string | undefined, depth: ContextDepth): number {\n return parseIntegerLimit(raw, \"--limit\") ?? (depth === \"full\" ? Number.MAX_SAFE_INTEGER : DEFAULT_CONTEXT_LIMIT);\n}\n\nexport function parseContextDepth(raw: string | undefined, settings: ContextSettings): ContextDepth {\n if (!raw) return settings.default_depth;\n const normalized = raw.trim().toLowerCase();\n if (!CONTEXT_DEPTH_VALUES.includes(normalized as ContextDepth)) {\n throw new PmCliError(`Context --depth must be one of ${CONTEXT_DEPTH_VALUES.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized as ContextDepth;\n}\n\nexport function parseContextSections(\n raw: string[] | undefined,\n depth: ContextDepth,\n settings: ContextSettings,\n): ContextSectionName[] {\n if (raw && raw.length > 0) {\n const sections: ContextSectionName[] = [];\n for (const value of raw) {\n const normalized = value.trim().toLowerCase();\n if (!CONTEXT_SECTION_VALUES.includes(normalized as ContextSectionName)) {\n throw new PmCliError(\n `Context --section must be one of ${CONTEXT_SECTION_VALUES.join(\"|\")}`,\n EXIT_CODE.USAGE,\n );\n }\n if (!sections.includes(normalized as ContextSectionName)) {\n sections.push(normalized as ContextSectionName);\n }\n }\n return sections;\n }\n if (depth === \"brief\") return [];\n // --depth full is the comprehensive snapshot: every known section, regardless\n // of the per-section settings toggles that brief/standard/deep respect.\n if (depth === \"full\") return [...CONTEXT_SECTION_VALUES];\n const pool = depth === \"deep\" ? DEEP_SECTIONS : STANDARD_SECTIONS;\n return pool.filter((section) => settings.sections[section]);\n}\n\nfunction parseActivityLimit(raw: string | undefined, settings: ContextSettings): number {\n if (!raw) return settings.activity_limit;\n const parsed = parseIntegerLimit(raw, \"--activity-limit\");\n /* c8 ignore start -- parseIntegerLimit either throws or returns a number; fallback is defensive typing guard */\n return parsed ?? settings.activity_limit;\n /* c8 ignore stop */\n}\n\nfunction parseStaleThresholdDays(raw: string | undefined, settings: ContextSettings): number {\n if (!raw) return settings.stale_threshold_days;\n const trimmed = raw.trim().toLowerCase();\n const match = /^(\\d+)d?$/.exec(trimmed);\n if (!match) {\n throw new PmCliError(\"--stale-threshold must be a number of days (e.g. 7 or 7d)\", EXIT_CODE.USAGE);\n }\n const days = parseInt(match[1], 10);\n if (days <= 0) {\n throw new PmCliError(\"--stale-threshold must be positive\", EXIT_CODE.USAGE);\n }\n return days;\n}\n\n// ---------------------------------------------------------------------------\n// Status helpers\n// ---------------------------------------------------------------------------\n\nfunction statusRank(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): number {\n const normalizedStatus = normalizeStatusForRegistry(status, statusRegistry);\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n const openStatus = normalizeStatusInput(\"open\", statusRegistry);\n const blockedStatus = normalizeStatusInput(\"blocked\", statusRegistry);\n const draftStatus = normalizeStatusInput(\"draft\", statusRegistry);\n if (inProgressStatus && normalizedStatus === inProgressStatus) return 0;\n if (openStatus && normalizedStatus === openStatus) return 1;\n if (blockedStatus && normalizedStatus === blockedStatus) return 2;\n if (draftStatus && normalizedStatus === draftStatus) return 3;\n if (statusRegistry.active_statuses.has(normalizedStatus)) return 4;\n if (statusRegistry.blocked_statuses.has(normalizedStatus)) return 5;\n if (statusRegistry.terminal_statuses.has(normalizedStatus)) return 7;\n return 6;\n}\n\nfunction isClosedStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const closeStatus = normalizeStatusInput(\"closed\", statusRegistry);\n return normalizeStatusForRegistry(status, statusRegistry) === closeStatus;\n}\n\nfunction isInProgressStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n return normalizeStatusForRegistry(status, statusRegistry) === inProgressStatus;\n}\n\nfunction isOpenStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n const openStatus = normalizeStatusInput(\"open\", statusRegistry);\n return normalizeStatusForRegistry(status, statusRegistry) === openStatus;\n}\n\nfunction isBlockedStatus(status: ItemStatus, statusRegistry: RuntimeStatusRegistry): boolean {\n return statusRegistry.blocked_statuses.has(normalizeStatusForRegistry(status, statusRegistry));\n}\n\n// Projection flags belong to list/calendar/activity output shaping and must not\n// leak into runContext's downstream calls, which need full ItemFrontMatter rows.\n// --parent is a context-level subtree scope computed here transitively, so it\n// must not reach runList (whose --parent matches direct children only).\nconst LIST_PROJECTION_FLAGS = [\"compact\", \"brief\", \"fields\", \"includeBody\", \"include_body\", \"parent\"] as const;\n\nfunction stripListProjectionFlags(options: ContextOptions): Record<string, unknown> {\n const copy: Record<string, unknown> = { ...(options as Record<string, unknown>) };\n for (const key of LIST_PROJECTION_FLAGS) {\n delete copy[key];\n }\n return copy;\n}\n\n// Resolve the transitive subtree (the anchor item plus every descendant via\n// parent links) so --parent can scope a context snapshot to one epic/milestone.\n// Reuses the same buildChildrenByParent/collectDescendants helpers the hierarchy\n// section relies on, so subtree membership stays consistent across the snapshot.\nfunction collectSubtreeIds(corpus: ItemFrontMatter[], parentId: string): { ids: Set<string>; found: boolean } {\n const target = parentId.trim().toLowerCase();\n const anchor = corpus.find((item) => item.id.trim().toLowerCase() === target);\n if (!anchor) {\n return { ids: new Set<string>(), found: false };\n }\n const childrenByParent = buildChildrenByParent(corpus);\n const descendants = collectDescendants(anchor.id, childrenByParent);\n // Store normalized ids so membership checks are case-insensitive end-to-end.\n const ids = new Set<string>([anchor.id, ...descendants.map((item) => item.id)].map((id) => id.trim().toLowerCase()));\n return { ids, found: true };\n}\n\nfunction parseContextParent(raw: string | undefined): string | undefined {\n if (raw === undefined) return undefined;\n const trimmed = raw.trim();\n if (trimmed.length === 0) {\n throw new PmCliError(\"Context --parent requires an item id\", EXIT_CODE.USAGE);\n }\n return trimmed;\n}\n\n// ---------------------------------------------------------------------------\n// Sorting / mapping helpers (unchanged from original)\n// ---------------------------------------------------------------------------\n\nfunction compareOptionalOrder(left: number | null | undefined, right: number | null | undefined): number {\n const leftValue = left ?? null;\n const rightValue = right ?? null;\n if (leftValue === null && rightValue === null) return 0;\n if (leftValue === null) return 1;\n if (rightValue === null) return -1;\n return leftValue - rightValue;\n}\n\nfunction compareOptionalDeadline(left: string | null | undefined, right: string | null | undefined): number {\n const leftValue = left ?? null;\n const rightValue = right ?? null;\n if (leftValue === null && rightValue === null) return 0;\n if (leftValue === null) return 1;\n if (rightValue === null) return -1;\n return compareTimestampStrings(leftValue, rightValue);\n}\n\nfunction daysInUtcMonth(year: number, monthIndex: number): number {\n return new Date(Date.UTC(year, monthIndex + 1, 0)).getUTCDate();\n}\n\nfunction hasNoInvalidDatePrefix(value: string): boolean {\n const match = LEADING_HYPHEN_DATE.exec(value) ?? LEADING_COMPACT_DATE.exec(value);\n if (!match) {\n return true;\n }\n const year = Number.parseInt(match[1], 10);\n const month = Number.parseInt(match[2], 10);\n const day = Number.parseInt(match[3], 10);\n return month >= 1 && month <= 12 && day >= 1 && day <= daysInUtcMonth(year, month - 1);\n}\n\nfunction normalizeTimestampCandidate(value: string): string {\n const compactDate = COMPACT_DATE.exec(value);\n if (compactDate) {\n return `${compactDate[1]}-${compactDate[2]}-${compactDate[3]}`;\n }\n const compactDateTime = COMPACT_DATETIME.exec(value);\n if (compactDateTime) {\n const [, year, month, day, hour, minute, secondRaw, offsetRaw] = compactDateTime;\n const second = secondRaw ? `:${secondRaw}` : \"\";\n const offset = offsetRaw && offsetRaw.length === 5 && offsetRaw !== \"Z\" ? `${offsetRaw.slice(0, 3)}:${offsetRaw.slice(3)}` : offsetRaw ?? \"\";\n return `${year}-${month}-${day}T${hour}:${minute}${second}${offset}`;\n }\n return value;\n}\n\nfunction parseContextTimestampMs(value: unknown): number {\n if (typeof value !== \"string\") {\n return Number.NaN;\n }\n const trimmed = value.trim();\n if (trimmed.length === 0 || !hasNoInvalidDatePrefix(trimmed)) {\n return Number.NaN;\n }\n const parsed = Date.parse(normalizeTimestampCandidate(trimmed));\n return Number.isFinite(parsed) ? parsed : Number.NaN;\n}\n\nfunction sortableTimestamp(value: unknown): string {\n const parsed = parseContextTimestampMs(value);\n return Number.isFinite(parsed) ? new Date(parsed).toISOString() : \"\";\n}\n\nfunction dateTokenForTimestamp(value: unknown): string {\n const parsed = parseContextTimestampMs(value);\n return Number.isFinite(parsed) ? new Date(parsed).toISOString().slice(0, 10) : \"unknown\";\n}\n\nfunction normalizedParentId(value: unknown): string | null {\n if (typeof value !== \"string\") {\n return null;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : null;\n}\n\nfunction compareCriticalItems(left: ItemFrontMatter, right: ItemFrontMatter, statusRegistry: RuntimeStatusRegistry): number {\n const byStatus = statusRank(left.status, statusRegistry) - statusRank(right.status, statusRegistry);\n if (byStatus !== 0) return byStatus;\n const byPriority = left.priority - right.priority;\n if (byPriority !== 0) return byPriority;\n const byOrder = compareOptionalOrder(left.order, right.order);\n if (byOrder !== 0) return byOrder;\n const byDeadline = compareOptionalDeadline(left.deadline, right.deadline);\n if (byDeadline !== 0) return byDeadline;\n const byUpdated = compareTimestampStrings(sortableTimestamp(right.updated_at), sortableTimestamp(left.updated_at));\n const byId = left.id.localeCompare(right.id);\n return byUpdated !== 0 ? byUpdated : byId;\n}\n\nfunction completionPct(closed: number, total: number): number {\n return total > 0 ? Math.round((closed / total) * 100) : 0;\n}\n\nfunction buildChildrenByParent(allItems: ItemFrontMatter[]): Map<string, ItemFrontMatter[]> {\n const childrenByParent = new Map<string, ItemFrontMatter[]>();\n for (const item of allItems) {\n const parent = normalizedParentId(item.parent);\n if (!parent) continue;\n const children = childrenByParent.get(parent) ?? [];\n children.push(item);\n childrenByParent.set(parent, children);\n }\n return childrenByParent;\n}\n\nfunction toContextFocusItem(\n item: ItemFrontMatter,\n statusRegistry?: RuntimeStatusRegistry,\n childrenByParent?: Map<string, ItemFrontMatter[]>,\n): ContextFocusItem {\n const focus: ContextFocusItem = {\n id: item.id,\n title: item.title,\n type: item.type,\n status: item.status,\n priority: item.priority,\n order: item.order ?? null,\n deadline: item.deadline ?? null,\n assignee: item.assignee ?? null,\n tags: Array.isArray(item.tags) ? [...item.tags] : [],\n updated_at: item.updated_at,\n parent: normalizedParentId(item.parent),\n };\n if (statusRegistry && childrenByParent) {\n const descendants = collectDescendants(item.id, childrenByParent);\n const total = descendants.length;\n if (total > 0) {\n const closed = descendants.filter((desc) => isClosedStatus(desc.status, statusRegistry)).length;\n focus.children_total = total;\n focus.children_closed = closed;\n focus.completion_pct = completionPct(closed, total);\n }\n }\n return focus;\n}\n\nfunction summarizeAgenda(events: CalendarRow[]): ContextAgendaSummary {\n let deadlines = 0;\n let reminders = 0;\n let scheduled = 0;\n const itemIds = new Set<string>();\n for (const event of events) {\n itemIds.add(event.item_id);\n if (event.kind === \"deadline\") {\n deadlines += 1;\n continue;\n }\n if (event.kind === \"reminder\") {\n reminders += 1;\n continue;\n }\n scheduled += 1;\n }\n return {\n events: events.length,\n items: itemIds.size,\n deadlines,\n reminders,\n scheduled,\n };\n}\n\nfunction mergeSortedWarnings(...warningGroups: Array<string[] | undefined>): string[] {\n return [...new Set(warningGroups.flatMap((group) => group ?? []))].sort((left, right) => left.localeCompare(right));\n}\n\nfunction filterTerminalCalendarEvents(events: CalendarRow[], statusRegistry: RuntimeStatusRegistry): CalendarRow[] {\n return events.filter((event) => !statusRegistry.terminal_statuses.has(normalizeStatusForRegistry(event.item_status, statusRegistry)));\n}\n\n// ---------------------------------------------------------------------------\n// Section builders\n// ---------------------------------------------------------------------------\n\nfunction buildHierarchy(\n allItems: ItemFrontMatter[],\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): HierarchyNode[] {\n const itemMap = new Map<string, ItemFrontMatter>();\n for (const item of allItems) {\n itemMap.set(item.id, item);\n }\n\n const childrenByParent = buildChildrenByParent(allItems);\n\n const activeHighLevelIds = new Set(\n activeItems.filter((item) => HIGH_LEVEL_TYPES.has(item.type)).map((item) => item.id),\n );\n\n const nodes: HierarchyNode[] = [];\n for (const parentId of activeHighLevelIds) {\n const parent = itemMap.get(parentId);\n if (!parent) continue;\n const allDescendants = collectDescendants(parentId, childrenByParent);\n const childItems = childrenByParent.get(parentId) ?? [];\n\n let closedCount = 0;\n let openCount = 0;\n let inProgressCount = 0;\n let blockedCount = 0;\n /* c8 ignore start -- chained status-classification branch accounting is noisy under v8 for mixed descendant sets */\n for (const desc of allDescendants) {\n if (isClosedStatus(desc.status, statusRegistry)) closedCount++;\n else if (isInProgressStatus(desc.status, statusRegistry)) inProgressCount++;\n else if (isBlockedStatus(desc.status, statusRegistry)) blockedCount++;\n else if (isOpenStatus(desc.status, statusRegistry)) openCount++;\n }\n /* c8 ignore stop */\n\n const children: HierarchyChild[] = childItems\n .sort((a, b) => compareCriticalItems(a, b, statusRegistry))\n .slice(0, limit)\n .map((child) => {\n const grandchildren = collectDescendants(child.id, childrenByParent);\n const gcClosed = grandchildren.filter((gc) => isClosedStatus(gc.status, statusRegistry)).length;\n return {\n id: child.id,\n title: child.title,\n type: child.type,\n status: child.status,\n children_total: grandchildren.length,\n children_closed: gcClosed,\n };\n });\n\n nodes.push({\n id: parent.id,\n title: parent.title,\n type: parent.type,\n status: parent.status,\n children_total: allDescendants.length,\n children_closed: closedCount,\n children_open: openCount,\n children_in_progress: inProgressCount,\n children_blocked: blockedCount,\n children,\n });\n }\n\n return nodes\n .sort((a, b) => {\n const aParent = itemMap.get(a.id)!;\n const bParent = itemMap.get(b.id)!;\n return compareCriticalItems(aParent, bParent, statusRegistry);\n })\n .slice(0, limit);\n}\n\nfunction collectDescendants(\n parentId: string,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n): ItemFrontMatter[] {\n const result: ItemFrontMatter[] = [];\n const stack = [parentId];\n const visited = new Set<string>();\n while (stack.length > 0) {\n const current = stack.pop()!;\n if (visited.has(current)) continue;\n visited.add(current);\n const children = childrenByParent.get(current) ?? [];\n for (const child of children) {\n result.push(child);\n stack.push(child.id);\n }\n }\n return result;\n}\n\nexport const _testOnly = {\n buildActivity,\n buildBlockers,\n buildChildrenByParent,\n buildHierarchy,\n buildHotFiles,\n buildProgress,\n buildRecentlyCreated,\n buildStaleness,\n buildTestHealth,\n buildUnparented,\n buildWorkload,\n collectDescendants,\n collectSubtreeIds,\n compareCriticalItems,\n compareOptionalDeadline,\n compareOptionalOrder,\n completionPct,\n dateTokenForTimestamp,\n filterTerminalCalendarEvents,\n isBlockedStatus,\n isClosedStatus,\n isInProgressStatus,\n isOpenStatus,\n mergeSortedWarnings,\n normalizedParentId,\n parseActivityLimit,\n parseContextLimit,\n parseContextParent,\n parseContextTimestampMs,\n parseStaleThresholdDays,\n sortableTimestamp,\n statusRank,\n stripListProjectionFlags,\n summarizeAgenda,\n toContextFocusItem,\n};\n\nasync function buildActivity(\n activityLimit: number,\n global: GlobalOptions,\n): Promise<CompactActivityEntry[]> {\n const result = await runActivity({ compact: true, limit: String(activityLimit) }, global);\n return result.compact_activity ?? [];\n}\n\nfunction buildProgress(\n allItems: ItemFrontMatter[],\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): ProgressEntry[] {\n const childrenByParent = new Map<string, ItemFrontMatter[]>();\n for (const item of allItems) {\n if (!item.parent) continue;\n const children = childrenByParent.get(item.parent) ?? [];\n children.push(item);\n childrenByParent.set(item.parent, children);\n }\n\n const activeHighLevel = activeItems.filter((item) => HIGH_LEVEL_TYPES.has(item.type));\n const entries: ProgressEntry[] = [];\n for (const parent of activeHighLevel) {\n const descendants = collectDescendants(parent.id, childrenByParent);\n const total = descendants.length;\n if (total === 0) continue;\n\n let closed = 0;\n let open = 0;\n let inProgress = 0;\n let blocked = 0;\n /* c8 ignore start -- chained status-classification branch accounting is noisy under v8 for mixed descendant sets */\n for (const desc of descendants) {\n if (isClosedStatus(desc.status, statusRegistry)) closed++;\n else if (isInProgressStatus(desc.status, statusRegistry)) inProgress++;\n else if (isBlockedStatus(desc.status, statusRegistry)) blocked++;\n else if (isOpenStatus(desc.status, statusRegistry)) open++;\n }\n /* c8 ignore stop */\n\n entries.push({\n id: parent.id,\n title: parent.title,\n type: parent.type,\n total,\n closed,\n open,\n in_progress: inProgress,\n blocked,\n completion_pct: completionPct(closed, total),\n });\n }\n\n return entries\n .sort((a, b) => a.completion_pct - b.completion_pct)\n .slice(0, limit);\n}\n\nfunction buildBlockers(\n blockedItems: ItemFrontMatter[],\n itemMap: Map<string, ItemFrontMatter>,\n limit: number,\n): BlockerEntry[] {\n return blockedItems.slice(0, limit).map((item) => {\n const blockerItem = item.blocked_by ? itemMap.get(item.blocked_by) : undefined;\n return {\n id: item.id,\n title: item.title,\n blocked_by: item.blocked_by ?? null,\n blocked_by_title: blockerItem?.title ?? null,\n blocked_by_status: blockerItem?.status ?? null,\n blocked_reason: item.blocked_reason ?? null,\n unblock_note: item.unblock_note ?? null,\n };\n });\n}\n\nfunction buildHotFiles(\n activeItems: ItemFrontMatter[],\n limit: number,\n): HotFile[] {\n const fileMap = new Map<string, Set<string>>();\n for (const item of activeItems) {\n for (const file of item.files ?? []) {\n const existing = fileMap.get(file.path) ?? new Set<string>();\n existing.add(item.id);\n fileMap.set(file.path, existing);\n }\n }\n\n return [...fileMap.entries()]\n .map(([filePath, itemIds]) => ({\n path: filePath,\n references: itemIds.size,\n items: [...itemIds].sort(),\n }))\n .sort((a, b) => b.references - a.references)\n .slice(0, limit);\n}\n\nfunction buildWorkload(\n activeItems: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n limit: number,\n): WorkloadEntry[] {\n const groups = new Map<string | null, ItemFrontMatter[]>();\n for (const item of activeItems) {\n const key = item.assignee ?? null;\n const existing = groups.get(key) ?? [];\n existing.push(item);\n groups.set(key, existing);\n }\n\n return [...groups.entries()]\n .map(([assignee, items]) => ({\n assignee,\n active: items.length,\n in_progress: items.filter((item) => isInProgressStatus(item.status, statusRegistry)).length,\n items: items.map((item) => item.id).sort(),\n }))\n .sort((a, b) => b.active - a.active)\n .slice(0, limit);\n}\n\nfunction buildStaleness(\n allNonTerminal: ItemFrontMatter[],\n staleThresholdDays: number,\n now: string,\n limit: number,\n): StaleEntry[] {\n const cutoffMs = new Date(now).getTime() - staleThresholdDays * 24 * 60 * 60 * 1000;\n\n return allNonTerminal\n .filter((item) => new Date(item.updated_at).getTime() < cutoffMs)\n .map((item) => ({\n id: item.id,\n title: item.title,\n status: item.status,\n updated_at: item.updated_at,\n stale_days: Math.floor((new Date(now).getTime() - new Date(item.updated_at).getTime()) / (24 * 60 * 60 * 1000)),\n }))\n .sort((a, b) => b.stale_days - a.stale_days)\n .slice(0, limit);\n}\n\nfunction buildRecentlyCreated(\n allNonTerminal: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n limit: number,\n): RecentContextItem[] {\n return allNonTerminal\n .map((item) => ({ item, sortKey: sortableTimestamp(item.created_at) }))\n .sort((left, right) => {\n const byCreated = compareTimestampStrings(right.sortKey, left.sortKey);\n return byCreated !== 0 ? byCreated : left.item.id.localeCompare(right.item.id);\n })\n .slice(0, limit)\n .map(({ item }) => ({\n ...toContextFocusItem(item, statusRegistry, childrenByParent),\n created_at: item.created_at,\n }));\n}\n\nfunction buildUnparented(\n allNonTerminal: ItemFrontMatter[],\n statusRegistry: RuntimeStatusRegistry,\n childrenByParent: Map<string, ItemFrontMatter[]>,\n limit: number,\n): ContextFocusItem[] {\n return allNonTerminal\n .filter((item) => !normalizedParentId(item.parent) && !HIGH_LEVEL_TYPES.has(item.type))\n .sort((left, right) => compareCriticalItems(left, right, statusRegistry))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, childrenByParent));\n}\n\nfunction buildTestHealth(\n activeItems: ItemFrontMatter[],\n): TestHealthSummary {\n let itemsWithTests = 0;\n let itemsWithRecentRuns = 0;\n let passed = 0;\n let failed = 0;\n let skipped = 0;\n const itemsFailing: string[] = [];\n\n for (const item of activeItems) {\n if ((item.tests ?? []).length > 0) {\n itemsWithTests++;\n }\n const runs = item.test_runs ?? [];\n if (runs.length > 0) {\n itemsWithRecentRuns++;\n let itemHasFailure = false;\n for (const run of runs) {\n passed += run.passed ?? 0;\n failed += run.failed ?? 0;\n skipped += run.skipped ?? 0;\n if ((run.failed ?? 0) > 0) {\n itemHasFailure = true;\n }\n }\n if (itemHasFailure) {\n itemsFailing.push(item.id);\n }\n }\n }\n\n return {\n items_with_tests: itemsWithTests,\n items_with_recent_runs: itemsWithRecentRuns,\n recent_runs: { passed, failed, skipped },\n items_failing: itemsFailing.sort(),\n };\n}\n\n// ---------------------------------------------------------------------------\n// Markdown formatting\n// ---------------------------------------------------------------------------\n\nfunction formatClock(timestamp: string): string {\n return `${new Date(timestamp).toISOString().slice(11, 16)}Z`;\n}\n\nfunction formatFocusLine(item: ContextFocusItem): string {\n const orderToken = item.order === null ? \"-\" : String(item.order);\n const deadlineToken = item.deadline ?? \"-\";\n const parentToken = item.parent ? ` parent:${item.parent}` : \"\";\n const progressToken =\n item.children_total !== undefined && item.children_closed !== undefined && item.completion_pct !== undefined\n ? ` children:${item.children_closed}/${item.children_total} done:${item.completion_pct}%`\n : \"\";\n return `${item.id} p${item.priority} ${item.status} ${item.type} order:${orderToken} deadline:${deadlineToken}${parentToken}${progressToken} ${item.title}`;\n}\n\nfunction formatAgendaLine(event: CalendarRow): string {\n const base = `${formatClock(event.at)} [${event.kind}] ${event.item_id} p${event.item_priority} ${event.item_status} ${event.item_title}`;\n if (event.kind === \"reminder\") {\n return `${base} — ${event.reminder_text}`;\n }\n if (event.kind === \"event\") {\n const recurringSuffix = event.event_recurring ? \" (recurring)\" : \"\";\n const title = event.event_title ?? event.item_title;\n return `${base} — ${title}${recurringSuffix}`;\n }\n return base;\n}\n\nexport function renderContextMarkdown(result: ContextResult): string {\n const lines: string[] = [];\n lines.push(\"# pm context\");\n lines.push(\"\");\n lines.push(`- now: ${result.now}`);\n lines.push(`- depth: ${result.depth}`);\n if (result.filters.parent) {\n lines.push(`- scope: subtree of ${result.filters.parent}`);\n }\n lines.push(`- active_items: ${result.summary.active_items} (in_progress: ${result.summary.in_progress}, open: ${result.summary.open})`);\n if (result.summary.total_items !== undefined) {\n lines.push(`- total_items: ${result.summary.total_items} (closed: ${result.summary.closed ?? 0}, canceled: ${result.summary.canceled ?? 0})`);\n }\n lines.push(`- agenda_events: ${result.summary.agenda_events}`);\n lines.push(`- blocked_fallback_used: ${result.summary.blocked_fallback_used}`);\n if (result.sections_included.length > 0) {\n lines.push(`- sections: ${result.sections_included.join(\", \")}`);\n }\n lines.push(\"\");\n\n lines.push(\"## High-level focus\");\n if (result.high_level.length === 0) {\n lines.push(\"No high-level active items.\");\n } else {\n for (const item of result.high_level) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n }\n lines.push(\"\");\n\n lines.push(\"## Low-level focus\");\n if (result.low_level.length === 0) {\n lines.push(\"No low-level active items.\");\n } else {\n for (const item of result.low_level) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n }\n lines.push(\"\");\n\n if (result.blocked_fallback.length > 0) {\n lines.push(\"## Blocked fallback\");\n for (const item of result.blocked_fallback) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n lines.push(\"## Agenda\");\n lines.push(\n `- events: ${result.agenda.summary.events} (deadlines: ${result.agenda.summary.deadlines}, reminders: ${result.agenda.summary.reminders}, scheduled: ${result.agenda.summary.scheduled})`,\n );\n if (result.agenda.events.length === 0) {\n lines.push(\"No agenda events matched the selected filters.\");\n } else {\n for (const event of result.agenda.events) {\n lines.push(`- ${formatAgendaLine(event)}`);\n }\n }\n lines.push(\"\");\n\n if (result.hierarchy && result.hierarchy.length > 0) {\n lines.push(\"## Hierarchy\");\n for (const node of result.hierarchy) {\n const pct = node.children_total > 0 ? Math.round((node.children_closed / node.children_total) * 100) : 0;\n lines.push(`- ${node.id} ${node.type} ${node.status} \"${node.title}\" [${node.children_closed}/${node.children_total} done ${pct}%]`);\n for (const child of node.children) {\n const cpct = child.children_total > 0 ? Math.round((child.children_closed / child.children_total) * 100) : 0;\n lines.push(` - ${child.id} ${child.type} ${child.status} \"${child.title}\" [${child.children_closed}/${child.children_total} done ${cpct}%]`);\n }\n }\n lines.push(\"\");\n }\n\n if (result.progress && result.progress.length > 0) {\n lines.push(\"## Progress\");\n for (const entry of result.progress) {\n lines.push(`- ${entry.id} \"${entry.title}\" ${entry.completion_pct}% (${entry.closed}/${entry.total} closed, ${entry.in_progress} wip, ${entry.open} open, ${entry.blocked} blocked)`);\n }\n lines.push(\"\");\n }\n\n if (result.recently_created && result.recently_created.length > 0) {\n lines.push(\"## Recently created\");\n for (const item of result.recently_created) {\n lines.push(`- ${dateTokenForTimestamp(item.created_at)} ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n if (result.unparented && result.unparented.length > 0) {\n lines.push(\"## Unparented\");\n for (const item of result.unparented) {\n lines.push(`- ${formatFocusLine(item)}`);\n }\n lines.push(\"\");\n }\n\n if (result.activity && result.activity.length > 0) {\n lines.push(\"## Recent activity\");\n for (const entry of result.activity) {\n const msg = entry.msg ? ` ${entry.msg}` : \"\";\n lines.push(`- ${entry.ts.slice(0, 16)}Z ${entry.id} ${entry.op} by:${entry.author}${msg}`);\n }\n lines.push(\"\");\n }\n\n if (result.blockers && result.blockers.length > 0) {\n lines.push(\"## Blockers\");\n for (const entry of result.blockers) {\n const by = entry.blocked_by ? `blocked_by:${entry.blocked_by}(${entry.blocked_by_status ?? \"?\"})` : \"blocked_by:-\";\n const reason = entry.blocked_reason ? ` reason:\"${entry.blocked_reason}\"` : \"\";\n const note = entry.unblock_note ? ` unblock:\"${entry.unblock_note}\"` : \"\";\n lines.push(`- ${entry.id} \"${entry.title}\" ${by}${reason}${note}`);\n }\n lines.push(\"\");\n }\n\n if (result.files && result.files.length > 0) {\n lines.push(\"## Hot files\");\n for (const file of result.files) {\n lines.push(`- ${file.path} refs:${file.references} items:[${file.items.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n if (result.workload && result.workload.length > 0) {\n lines.push(\"## Workload\");\n for (const entry of result.workload) {\n const who = entry.assignee ?? \"(unassigned)\";\n lines.push(`- ${who} active:${entry.active} wip:${entry.in_progress} items:[${entry.items.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n if (result.staleness && result.staleness.length > 0) {\n lines.push(\"## Stale items\");\n for (const entry of result.staleness) {\n lines.push(`- ${entry.id} ${entry.status} stale:${entry.stale_days}d last:${entry.updated_at.slice(0, 10)} \"${entry.title}\"`);\n }\n lines.push(\"\");\n }\n\n if (result.tests) {\n lines.push(\"## Test health\");\n lines.push(`- items_with_tests: ${result.tests.items_with_tests}`);\n lines.push(`- items_with_recent_runs: ${result.tests.items_with_recent_runs}`);\n lines.push(`- passed: ${result.tests.recent_runs.passed}, failed: ${result.tests.recent_runs.failed}, skipped: ${result.tests.recent_runs.skipped}`);\n if (result.tests.items_failing.length > 0) {\n lines.push(`- items_failing: [${result.tests.items_failing.join(\",\")}]`);\n }\n lines.push(\"\");\n }\n\n const isEmpty =\n result.summary.active_items === 0 &&\n result.summary.blocked === 0 &&\n result.agenda.summary.events === 0;\n if (isEmpty) {\n lines.push(\"## Suggestions\");\n lines.push(\"No active work items or upcoming events. Consider:\");\n lines.push(\"- `pm create --type Task --title \\\"...\\\"` to add a new work item\");\n lines.push(\"- `pm list --status closed --limit 5` to review recent completions\");\n lines.push(\"- `pm search <keywords>` to find related past work\");\n lines.push(\"- `pm aggregate` for a full project status overview\");\n }\n\n return lines.join(\"\\n\");\n}\n\n// ---------------------------------------------------------------------------\n// Main runner\n// ---------------------------------------------------------------------------\n\nexport async function runContext(options: ContextOptions, global: GlobalOptions): Promise<ContextResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n const settings = await readSettings(pmRoot);\n /* c8 ignore start -- settings persistence currently always materializes context defaults */\n const contextSettings = settings.context ?? SETTINGS_DEFAULTS.context;\n /* c8 ignore stop */\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const depth = parseContextDepth(options.depth, contextSettings);\n const limit = parseContextLimit(options.limit, depth);\n const sectionsIncluded = parseContextSections(options.section, depth, contextSettings);\n const activityLimit = parseActivityLimit(options.activityLimit, contextSettings);\n const staleThresholdDays = parseStaleThresholdDays(options.staleThreshold, contextSettings);\n const parentScope = parseContextParent(options.parent);\n\n const needsAllItems = sectionsIncluded.some((s) =>\n [\"hierarchy\", \"progress\", \"blockers\", \"staleness\", \"recently_created\", \"unparented\"].includes(s),\n );\n\n const baseListOptions = stripListProjectionFlags(options);\n // Structural reads must see the FULL corpus: --limit/--offset are per-section\n // display caps applied later via .slice(0, limit), not corpus filters. Passing\n // them to runList would truncate the data the hierarchy/progress rollups and\n // (critically) --parent subtree resolution depend on — yielding wrong rollups\n // or a false NOT_FOUND for an anchor that paginated out of view.\n const unpaginatedListOptions = (extra: Partial<ListOptions>): ListOptions => ({\n ...baseListOptions,\n ...extra,\n noTruncate: true,\n limit: undefined,\n offset: undefined,\n });\n // Subtree scoping also needs the complete active set before filtering, so the\n // focus rows aren't pre-truncated by --limit ahead of the parent filter.\n const listOptions: ListOptions = parentScope === undefined\n ? { ...baseListOptions, excludeTerminal: true }\n : unpaginatedListOptions({ excludeTerminal: true });\n const listed = await runList(undefined, listOptions, global);\n let listedFrontMatter = listed.items as ItemFrontMatter[];\n\n // --parent needs the whole corpus to walk descendants; so do hierarchy-style\n // sections. Fetch it once (unpaginated) and reuse for both.\n let allItems: ItemFrontMatter[] = listedFrontMatter;\n if (needsAllItems || parentScope !== undefined) {\n const allListed = await runList(undefined, unpaginatedListOptions({ excludeTerminal: false }), global);\n allItems = allListed.items as ItemFrontMatter[];\n }\n // The unfiltered corpus stays the reference for cross-item metadata resolution\n // (e.g. a subtree blocker whose blocked_by points OUTSIDE the subtree must still\n // resolve its title/status). Only the enumeration sets below get subtree-scoped.\n const fullCorpus = allItems;\n\n let subtreeIds: Set<string> | undefined;\n if (parentScope !== undefined) {\n const subtree = collectSubtreeIds(fullCorpus, parentScope);\n if (!subtree.found) {\n throw new PmCliError(`Context --parent item not found: ${parentScope}`, EXIT_CODE.NOT_FOUND);\n }\n subtreeIds = subtree.ids;\n listedFrontMatter = listedFrontMatter.filter((item) => subtreeIds?.has(item.id.trim().toLowerCase()));\n allItems = allItems.filter((item) => subtreeIds?.has(item.id.trim().toLowerCase()));\n }\n\n const ranked = [...listedFrontMatter].sort((left, right) => compareCriticalItems(left, right, statusRegistry));\n /* c8 ignore start -- fallback applies only to custom schemas that intentionally define no active statuses */\n const activeStatuses =\n statusRegistry.active_statuses.size > 0\n ? statusRegistry.active_statuses\n : new Set<ItemStatus>([statusRegistry.open_status]);\n /* c8 ignore stop */\n const blockedStatuses = statusRegistry.blocked_statuses;\n const activeItems = ranked.filter((item) => activeStatuses.has(normalizeStatusForRegistry(item.status, statusRegistry)));\n const blockedItems = ranked.filter((item) =>\n blockedStatuses.has(normalizeStatusForRegistry(item.status, statusRegistry)),\n );\n\n const childrenByParent = buildChildrenByParent(allItems);\n const focusChildrenByParent = needsAllItems ? childrenByParent : undefined;\n\n const highLevel = activeItems\n .filter((item) => HIGH_LEVEL_TYPES.has(item.type))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent));\n const lowLevel = activeItems\n .filter((item) => !HIGH_LEVEL_TYPES.has(item.type))\n .slice(0, limit)\n .map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent));\n\n const blockedFallbackUsed = activeItems.length === 0;\n const blockedFallback = blockedFallbackUsed\n ? blockedItems.slice(0, limit).map((item) => toContextFocusItem(item, statusRegistry, focusChildrenByParent))\n : [];\n\n const calendarOptions: CalendarOptions = {\n ...baseListOptions,\n view: \"agenda\",\n include: \"all\",\n // When scoping to a subtree, pull the full agenda so the subtree filter sees\n // every candidate event before the final per-section slice.\n limit: parentScope === undefined ? String(limit) : undefined,\n };\n const agenda = await runCalendar(calendarOptions, global);\n const scopedAgenda =\n subtreeIds === undefined\n ? agenda.events\n : agenda.events.filter((event) => subtreeIds.has(event.item_id.trim().toLowerCase()));\n const agendaEvents = filterTerminalCalendarEvents(scopedAgenda, statusRegistry).slice(0, limit);\n const agendaSummary = summarizeAgenda(agendaEvents);\n const warnings = mergeSortedWarnings(listed.warnings, agenda.warnings);\n\n const inProgressStatus = normalizeStatusInput(\"in_progress\", statusRegistry);\n const openStatus = normalizeStatusInput(\"open\", statusRegistry);\n const inProgressCount = activeItems.filter(\n (item) => normalizeStatusForRegistry(item.status, statusRegistry) === inProgressStatus,\n ).length;\n const openCount = activeItems.filter((item) => normalizeStatusForRegistry(item.status, statusRegistry) === openStatus).length;\n\n const now = agenda.now;\n\n // Resolve blocker/dependency metadata against the full corpus so references\n // that point outside a --parent subtree still render their title/status.\n const itemMap = new Map<string, ItemFrontMatter>();\n for (const item of fullCorpus) {\n itemMap.set(item.id, item);\n }\n\n const allNonTerminal = allItems.filter((item) => !isTerminalStatus(item.status, statusRegistry));\n\n const has = (section: ContextSectionName) => sectionsIncluded.includes(section);\n\n const hierarchy = has(\"hierarchy\") ? buildHierarchy(allItems, activeItems, statusRegistry, limit) : undefined;\n const activity = has(\"activity\") ? await buildActivity(activityLimit, global) : undefined;\n const progress = has(\"progress\") ? buildProgress(allItems, activeItems, statusRegistry, limit) : undefined;\n const blockersSection = has(\"blockers\") ? buildBlockers(blockedItems, itemMap, limit) : undefined;\n const recentlyCreated = has(\"recently_created\")\n ? buildRecentlyCreated(allNonTerminal, statusRegistry, childrenByParent, limit)\n : undefined;\n const unparented = has(\"unparented\")\n ? buildUnparented(allNonTerminal, statusRegistry, childrenByParent, limit)\n : undefined;\n const filesSection = has(\"files\") ? buildHotFiles(activeItems, limit) : undefined;\n const workload = has(\"workload\") ? buildWorkload(activeItems, statusRegistry, limit) : undefined;\n const staleness = has(\"staleness\") ? buildStaleness(allNonTerminal, staleThresholdDays, now, limit) : undefined;\n const tests = has(\"tests\") ? buildTestHealth(activeItems) : undefined;\n\n const summaryExtras: Pick<ContextSummary, \"total_items\" | \"closed\" | \"canceled\"> =\n needsAllItems\n ? {\n total_items: allItems.length,\n closed: allItems.filter((i) => isClosedStatus(i.status, statusRegistry)).length,\n canceled: allItems.filter((i) => {\n const canceledStatus = normalizeStatusInput(\"canceled\", statusRegistry);\n return normalizeStatusForRegistry(i.status, statusRegistry) === canceledStatus;\n }).length,\n }\n : {};\n\n const result: ContextResult = {\n output_default: \"toon\",\n now,\n depth,\n sections_included: sectionsIncluded,\n window: {\n anchor: agenda.anchor,\n start: agenda.range.start,\n end: agenda.range.end,\n past: agenda.range.past,\n from: agenda.range.from,\n to: agenda.range.to,\n },\n filters: {\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n limit: options.limit ?? null,\n parent: parentScope ?? null,\n /* c8 ignore next -- listed/calendar runtime filters are always materialized by their command handlers */\n runtime_filters: (listed.filters.runtime_filters ?? agenda.filters.runtime_filters ?? {}) as Record<string, unknown>,\n },\n summary: {\n active_items: activeItems.length,\n in_progress: inProgressCount,\n open: openCount,\n blocked: blockedItems.length,\n blocked_fallback_used: blockedFallbackUsed,\n high_level: highLevel.length,\n low_level: lowLevel.length,\n agenda_events: agendaSummary.events,\n ...summaryExtras,\n },\n high_level: highLevel,\n low_level: lowLevel,\n blocked_fallback: blockedFallback,\n agenda: {\n summary: agendaSummary,\n events: agendaEvents,\n },\n };\n\n if (hierarchy) result.hierarchy = hierarchy;\n if (activity) result.activity = activity;\n if (progress) result.progress = progress;\n if (blockersSection) result.blockers = blockersSection;\n if (recentlyCreated) result.recently_created = recentlyCreated;\n if (unparented) result.unparented = unparented;\n if (filesSection) result.files = filesSection;\n if (workload) result.workload = workload;\n if (staleness) result.staleness = staleness;\n if (tests) result.tests = tests;\n if (warnings.length > 0) result.warnings = warnings;\n if (activeItems.length === 0 && blockedItems.length === 0 && agendaEvents.length === 0) {\n result.suggestions = [\n 'pm create --type Task --title \"...\" to add a new work item',\n \"pm list --status closed --limit 5 to review recent completions\",\n \"pm search <keywords> to find related past work\",\n \"pm aggregate for a full project status overview\",\n ];\n }\n\n return result;\n}\n"],"names":[],"mappings":"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","debugId":"45e8badb-cd9b-58cd-be58-81386b54daef"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { GlobalOptions } from "../../core/shared/command-types.js";
|
|
2
|
+
import type { ExtensionRegistrationRegistry, RegisteredExtensionCommandDefinition, RegisteredExtensionFlagDefinitions } from "../../core/extensions/index.js";
|
|
3
|
+
import { type RuntimeFieldRegistry } from "../../core/schema/runtime-schema.js";
|
|
2
4
|
import { type McpToolContract } from "../../mcp/tool-definitions.js";
|
|
3
|
-
import { type CliFlagContract, type CommanderOptionAliasContract } from "../../sdk/cli-contracts.js";
|
|
5
|
+
import { PM_TOOL_ACTIONS, type CliFlagContract, type CommanderOptionAliasContract } from "../../sdk/cli-contracts.js";
|
|
4
6
|
export interface ContractsCommandOptions {
|
|
5
7
|
action?: string;
|
|
6
8
|
command?: string;
|
|
@@ -70,6 +72,7 @@ export interface ContractsResult {
|
|
|
70
72
|
};
|
|
71
73
|
mcp_tools?: McpToolContract[];
|
|
72
74
|
}
|
|
75
|
+
type PmToolAction = (typeof PM_TOOL_ACTIONS)[number];
|
|
73
76
|
export interface ContractsActionAvailability {
|
|
74
77
|
action: string;
|
|
75
78
|
invocable: boolean;
|
|
@@ -85,6 +88,18 @@ export interface ContractsActionAvailability {
|
|
|
85
88
|
default_sandbox_profile: string;
|
|
86
89
|
};
|
|
87
90
|
}
|
|
91
|
+
interface RuntimeExtensionActionProbe {
|
|
92
|
+
handlers: Set<string>;
|
|
93
|
+
disabledReason: string | null;
|
|
94
|
+
commandDefinitions: RegisteredExtensionCommandDefinition[];
|
|
95
|
+
flagRegistrations: RegisteredExtensionFlagDefinitions[];
|
|
96
|
+
registrations: ExtensionRegistrationRegistry | null;
|
|
97
|
+
policyState: {
|
|
98
|
+
mode: string;
|
|
99
|
+
trust_mode: string;
|
|
100
|
+
default_sandbox_profile: string;
|
|
101
|
+
};
|
|
102
|
+
}
|
|
88
103
|
interface ExtensionCommandContract {
|
|
89
104
|
command: string;
|
|
90
105
|
action: string;
|
|
@@ -104,5 +119,69 @@ interface ExtensionCommandContract {
|
|
|
104
119
|
examples: string[];
|
|
105
120
|
failure_hints: string[];
|
|
106
121
|
}
|
|
122
|
+
declare function packageOwnedActionForCommand(command: string): string;
|
|
123
|
+
declare function resolveActionCommandPath(action: PmToolAction): string | null;
|
|
124
|
+
declare function actionDescriptorMatchesSelectedCommand(descriptor: ActionContractDescriptor, selectedCommand: string): boolean;
|
|
125
|
+
declare function splitCommandPathAliases(commandPath: string): string[];
|
|
126
|
+
declare function resolveScopedCommandsFromActionDescriptors(descriptors: ActionContractDescriptor[], commandCatalog: string[]): string[];
|
|
127
|
+
declare function extractActionBranches(schema: Record<string, unknown>): Record<string, unknown>[];
|
|
128
|
+
declare function filterSchemaByAction(schema: Record<string, unknown>, action: string | undefined): Record<string, unknown>;
|
|
129
|
+
declare function filterSchemaByActions(schema: Record<string, unknown>, actions: ReadonlySet<string>): Record<string, unknown>;
|
|
130
|
+
declare function normalizeCommandPath(value: string): string;
|
|
131
|
+
declare function normalizeActionNameFromCommand(commandPath: string): string;
|
|
132
|
+
declare function collectExtensionFlagContractsByCommand(registrations: RegisteredExtensionFlagDefinitions[]): Map<string, {
|
|
133
|
+
flags: CliFlagContract[];
|
|
134
|
+
sources: Array<{
|
|
135
|
+
layer: "global" | "project";
|
|
136
|
+
name: string;
|
|
137
|
+
}>;
|
|
138
|
+
}>;
|
|
139
|
+
declare function collectExtensionCommandContracts(runtimeProbe: RuntimeExtensionActionProbe): ExtensionCommandContract[];
|
|
140
|
+
declare function extensionSchemaPropertyNameFromFlag(flag: CliFlagContract): string | null;
|
|
141
|
+
declare function buildExtensionActionSchemaBranch(contract: ExtensionCommandContract): Record<string, unknown>;
|
|
142
|
+
declare function mergeExtensionContractsByAction(contracts: ExtensionCommandContract[]): ExtensionCommandContract[];
|
|
143
|
+
interface ActionContractDescriptor {
|
|
144
|
+
action: string;
|
|
145
|
+
provider: "core" | "extension";
|
|
146
|
+
requires_extension: boolean;
|
|
147
|
+
command_path: string | null;
|
|
148
|
+
}
|
|
149
|
+
declare function collectActionContractDescriptors(extensionContracts: ExtensionCommandContract[], options?: {
|
|
150
|
+
includePackageOwnedActions?: boolean;
|
|
151
|
+
}): ActionContractDescriptor[];
|
|
152
|
+
declare function resolveActionAvailability(descriptor: ActionContractDescriptor, runtimeProbe: RuntimeExtensionActionProbe): ContractsActionAvailability;
|
|
153
|
+
declare function resolveCoreCommandFlags(command: string): CliFlagContract[];
|
|
154
|
+
declare function isCoreCommandPath(command: string): boolean;
|
|
155
|
+
declare function normalizeCommandForRuntimeFieldFlags(command: string): string;
|
|
156
|
+
declare function toRuntimeLongFlagToken(token: string): string | null;
|
|
157
|
+
declare function toRuntimeShortFlagToken(token: string): string | null;
|
|
158
|
+
declare function buildRuntimeFieldFlagContracts(fieldRegistry: RuntimeFieldRegistry): Map<string, CliFlagContract[]>;
|
|
159
|
+
declare function attachCreateRequiredOptionContracts(schema: Record<string, unknown>, metadata: Record<string, unknown>): Record<string, unknown>;
|
|
107
160
|
export declare function runContracts(options: ContractsCommandOptions, global: GlobalOptions): Promise<ContractsResult>;
|
|
161
|
+
export declare const _testOnlyContractsCommand: {
|
|
162
|
+
actionDescriptorMatchesSelectedCommand: typeof actionDescriptorMatchesSelectedCommand;
|
|
163
|
+
attachCreateRequiredOptionContracts: typeof attachCreateRequiredOptionContracts;
|
|
164
|
+
buildExtensionActionSchemaBranch: typeof buildExtensionActionSchemaBranch;
|
|
165
|
+
buildRuntimeFieldFlagContracts: typeof buildRuntimeFieldFlagContracts;
|
|
166
|
+
collectActionContractDescriptors: typeof collectActionContractDescriptors;
|
|
167
|
+
collectExtensionCommandContracts: typeof collectExtensionCommandContracts;
|
|
168
|
+
collectExtensionFlagContractsByCommand: typeof collectExtensionFlagContractsByCommand;
|
|
169
|
+
extractActionBranches: typeof extractActionBranches;
|
|
170
|
+
extensionSchemaPropertyNameFromFlag: typeof extensionSchemaPropertyNameFromFlag;
|
|
171
|
+
filterSchemaByAction: typeof filterSchemaByAction;
|
|
172
|
+
filterSchemaByActions: typeof filterSchemaByActions;
|
|
173
|
+
isCoreCommandPath: typeof isCoreCommandPath;
|
|
174
|
+
mergeExtensionContractsByAction: typeof mergeExtensionContractsByAction;
|
|
175
|
+
normalizeActionNameFromCommand: typeof normalizeActionNameFromCommand;
|
|
176
|
+
normalizeCommandForRuntimeFieldFlags: typeof normalizeCommandForRuntimeFieldFlags;
|
|
177
|
+
normalizeCommandPath: typeof normalizeCommandPath;
|
|
178
|
+
packageOwnedActionForCommand: typeof packageOwnedActionForCommand;
|
|
179
|
+
resolveActionCommandPath: typeof resolveActionCommandPath;
|
|
180
|
+
resolveActionAvailability: typeof resolveActionAvailability;
|
|
181
|
+
resolveCoreCommandFlags: typeof resolveCoreCommandFlags;
|
|
182
|
+
resolveScopedCommandsFromActionDescriptors: typeof resolveScopedCommandsFromActionDescriptors;
|
|
183
|
+
splitCommandPathAliases: typeof splitCommandPathAliases;
|
|
184
|
+
toRuntimeLongFlagToken: typeof toRuntimeLongFlagToken;
|
|
185
|
+
toRuntimeShortFlagToken: typeof toRuntimeShortFlagToken;
|
|
186
|
+
};
|
|
108
187
|
export {};
|