@unbrained/pm-cli 2026.6.23 → 2026.6.30
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 +120 -0
- package/CONTRIBUTING.md +30 -0
- package/README.md +16 -3
- package/dist/cli/commander-usage.js +3 -3
- package/dist/cli/commander-usage.js.map +1 -1
- package/dist/cli/commands/aggregate.js +8 -7
- package/dist/cli/commands/aggregate.js.map +1 -1
- package/dist/cli/commands/close.d.ts +2 -4
- package/dist/cli/commands/close.js +5 -17
- package/dist/cli/commands/close.js.map +1 -1
- package/dist/cli/commands/completion.js +158 -9
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/config.d.ts +1 -1
- package/dist/cli/commands/config.js +2 -2
- package/dist/cli/commands/config.js.map +1 -1
- package/dist/cli/commands/context.d.ts +31 -4
- package/dist/cli/commands/context.js +33 -10
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/contracts.js +48 -8
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/create.d.ts +1 -6
- package/dist/cli/commands/create.js +10 -155
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/commands/extension/describe.d.ts +15 -0
- package/dist/cli/commands/extension/describe.js +48 -2
- package/dist/cli/commands/extension/describe.js.map +1 -1
- package/dist/cli/commands/extension/doctor.js +5 -2
- package/dist/cli/commands/extension/doctor.js.map +1 -1
- package/dist/cli/commands/extension/install-sources.js +37 -7
- package/dist/cli/commands/extension/install-sources.js.map +1 -1
- package/dist/cli/commands/extension/scaffold.d.ts +31 -8
- package/dist/cli/commands/extension/scaffold.js +1956 -182
- package/dist/cli/commands/extension/scaffold.js.map +1 -1
- package/dist/cli/commands/extension.d.ts +22 -2
- package/dist/cli/commands/extension.js +189 -13
- package/dist/cli/commands/extension.js.map +1 -1
- package/dist/cli/commands/index.d.ts +3 -1
- package/dist/cli/commands/index.js +5 -3
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/item-filter-options.d.ts +63 -0
- package/dist/cli/commands/item-filter-options.js +10 -0
- package/dist/cli/commands/item-filter-options.js.map +1 -0
- package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
- package/dist/cli/commands/legacy-none-tokens.js +31 -2
- package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
- package/dist/cli/commands/linked-artifacts.d.ts +7 -0
- package/dist/cli/commands/linked-artifacts.js +12 -2
- package/dist/cli/commands/linked-artifacts.js.map +1 -1
- package/dist/cli/commands/list.d.ts +16 -39
- package/dist/cli/commands/list.js +127 -118
- package/dist/cli/commands/list.js.map +1 -1
- package/dist/cli/commands/next.d.ts +98 -0
- package/dist/cli/commands/next.js +304 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/profile.d.ts +208 -0
- package/dist/cli/commands/profile.js +418 -0
- package/dist/cli/commands/profile.js.map +1 -0
- package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
- package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
- package/dist/cli/commands/schema.d.ts +7 -0
- package/dist/cli/commands/schema.js +9 -3
- package/dist/cli/commands/schema.js.map +1 -1
- package/dist/cli/commands/search.d.ts +2 -39
- package/dist/cli/commands/search.js +104 -106
- package/dist/cli/commands/search.js.map +1 -1
- package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
- package/dist/cli/commands/shared-unset-fields.js +161 -0
- package/dist/cli/commands/shared-unset-fields.js.map +1 -0
- package/dist/cli/commands/stats.js +15 -3
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/test.js +9 -5
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/commands/update.d.ts +1 -6
- package/dist/cli/commands/update.js +12 -157
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/commands/validate.js +20 -5
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/help-content.js +26 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/help-json-payload.js +3 -3
- package/dist/cli/help-json-payload.js.map +1 -1
- package/dist/cli/main.js +27 -12
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/register-list-query.js +42 -3
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-mutation.js +86 -2
- package/dist/cli/register-mutation.js.map +1 -1
- package/dist/cli/register-setup.js +67 -6
- package/dist/cli/register-setup.js.map +1 -1
- package/dist/cli/registration-helpers.d.ts +9 -1
- package/dist/cli/registration-helpers.js +34 -3
- package/dist/cli/registration-helpers.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +16 -0
- package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js → activity-MVSEND6D.js} +9 -11
- package/dist/cli-bundle/chunks/{aggregate-R725FC3S.js → aggregate-MOC4TR2G.js} +16 -17
- package/dist/cli-bundle/chunks/aggregate-MOC4TR2G.js.map +1 -0
- package/dist/cli-bundle/chunks/{aggregate-EGJLZQBI.js → aggregate-XJHLZQ5X.js} +15 -16
- package/dist/cli-bundle/chunks/aggregate-XJHLZQ5X.js.map +7 -0
- package/dist/cli-bundle/chunks/{append-5J345QGU.js → append-KDHT4GHI.js} +10 -12
- package/dist/cli-bundle/chunks/{append-5J345QGU.js.map → append-KDHT4GHI.js.map} +1 -1
- package/dist/cli-bundle/chunks/{append-O5HPBMRN.js → append-LEDBAM3K.js} +8 -10
- package/dist/cli-bundle/chunks/{append-O5HPBMRN.js.map → append-LEDBAM3K.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js → chunk-3JWQCLR5.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js → chunk-4TXTVZL3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js → chunk-4YIMPANT.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js → chunk-53ARXF2O.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-7AUB5HNA.js.map → chunk-53ARXF2O.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js +116 -0
- package/dist/cli-bundle/chunks/chunk-5ABGFWR4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2BFPAUAF.js → chunk-5IRVSKPS.js} +2990 -2890
- package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-JR2LV3M4.js → chunk-5T6WPLRO.js} +233 -190
- package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CKGNPJAG.js → chunk-6T5ZIWBS.js} +3011 -2888
- package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-QH3PJYON.js → chunk-6YRAMXRS.js} +111 -114
- package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js → chunk-73PTKMAE.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-Y4SUQQYH.js → chunk-74PUWBGN.js} +53 -54
- package/dist/cli-bundle/chunks/chunk-74PUWBGN.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T5472OMV.js → chunk-7L6TXOOC.js} +4 -6
- package/dist/cli-bundle/chunks/{chunk-T5472OMV.js.map → chunk-7L6TXOOC.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
- package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js → chunk-7RIJGN4R.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-G6PYHBBR.js → chunk-7WDETKGP.js} +192 -113
- package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-AONIHR2C.js → chunk-A3UNLXNJ.js} +40 -260
- package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js → chunk-AWN4PPH5.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-4KD54S3Z.js.map → chunk-AWN4PPH5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js → chunk-BN3CWK6G.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KFWBJPSG.js → chunk-BOWQWXLI.js} +12 -24
- package/dist/cli-bundle/chunks/chunk-BOWQWXLI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js → chunk-C2KCIZKZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js → chunk-CHRNYKNI.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-UELRKQQU.js → chunk-CY5IJMUM.js} +1239 -495
- package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +1 -0
- package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
- package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js → chunk-D5LYZVGB.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-7K2XXO4I.js.map → chunk-D5LYZVGB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js → chunk-D6USKAMA.js} +2 -2
- package/dist/cli-bundle/chunks/{context-BLBD3PUB.js → chunk-DJDXAU74.js} +19 -21
- package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js → chunk-DLDCPF5X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HFFUQR73.js → chunk-DORJSBGJ.js} +35 -9
- package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js → chunk-DRPF274X.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-XVF4YARA.js.map → chunk-DRPF274X.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-QL5RVYOA.js → chunk-DU66JUGT.js} +16 -14
- package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js → chunk-E2Q2ULMR.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js → chunk-EVWYAG46.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-U2Z5YUSO.js.map → chunk-EVWYAG46.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js → chunk-F6VH3LFC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VFAQ4LMN.js → chunk-F7G53BOA.js} +18 -11
- package/dist/cli-bundle/chunks/chunk-F7G53BOA.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js → chunk-FBZ5XAAF.js} +9 -11
- package/dist/cli-bundle/chunks/{chunk-Q2KNGP7C.js.map → chunk-FBZ5XAAF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js → chunk-FDEVKXC4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js → chunk-GF7EAR22.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-7UGEAPRY.js.map → chunk-GF7EAR22.js.map} +1 -1
- package/dist/cli-bundle/chunks/{context-DHLVPXN3.js → chunk-HIBK6H4S.js} +20 -22
- package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-34EONI5F.js → chunk-HUYYMTGW.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
- package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js → chunk-IBU2LLWM.js} +8 -12
- package/dist/cli-bundle/chunks/{chunk-BB6MDVNQ.js.map → chunk-IBU2LLWM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-55ISXAQH.js → chunk-IDYCAK35.js} +53 -54
- package/dist/cli-bundle/chunks/chunk-IDYCAK35.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js → chunk-IF4ERU6A.js} +7 -9
- package/dist/cli-bundle/chunks/{chunk-M4T5DXD5.js.map → chunk-IF4ERU6A.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js → chunk-IHXXUIXS.js} +4 -4
- package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js +2459 -0
- package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js → chunk-JIP67N2K.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-JJ4SG243.js +119 -0
- package/dist/cli-bundle/chunks/chunk-JJ4SG243.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js → chunk-JTRKME24.js} +11 -13
- package/dist/cli-bundle/chunks/{chunk-TQZH6OD6.js.map → chunk-JTRKME24.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js → chunk-JVQ7UOYC.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-WBRKK5QR.js.map → chunk-JVQ7UOYC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-KQMUV6LX.js → chunk-JZG5ADVE.js} +191 -98
- package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-46G6RSB6.js → chunk-K46GQ265.js} +17 -15
- package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-5UVVASSA.js → chunk-KGQ3W65B.js} +100 -35
- package/dist/cli-bundle/chunks/chunk-KGQ3W65B.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js → chunk-KRASIL6M.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-SR3EKWZG.js → chunk-KTMMTOIP.js} +127 -127
- package/dist/cli-bundle/chunks/chunk-KTMMTOIP.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js → chunk-KYDYQMNW.js} +5 -7
- package/dist/cli-bundle/chunks/{chunk-DT5LPYOD.js.map → chunk-KYDYQMNW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-IPKJ6B36.js → chunk-LBH7UYKY.js} +106 -34
- package/dist/cli-bundle/chunks/chunk-LBH7UYKY.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js → chunk-MLHX6DN5.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-YUDJD3XO.js → chunk-NIBP3I7A.js} +36 -10
- package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-RBTJ2YXW.js → chunk-NO6Y6FB2.js} +144 -67
- package/dist/cli-bundle/chunks/chunk-NO6Y6FB2.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js → chunk-OB3RJV5F.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
- package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js → chunk-OUQ5JEFM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js → chunk-QE5UFCCO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MJTINN54.js → chunk-RM6MHL6A.js} +110 -113
- package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js → chunk-RPRW26NG.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-LRKKONT2.js.map → chunk-RPRW26NG.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js → chunk-SJZTPVFT.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-MJTSZKK5.js → chunk-SNUK7H5J.js} +1363 -605
- package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +7 -0
- package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js +2435 -0
- package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js → chunk-TQ6E76BE.js} +11 -13
- package/dist/cli-bundle/chunks/{chunk-W72GHSJE.js.map → chunk-TQ6E76BE.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-ZRK4O56R.js → chunk-UB3V5WUI.js} +225 -189
- package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SKN7LC5W.js → chunk-UFKNF23C.js} +11 -23
- package/dist/cli-bundle/chunks/chunk-UFKNF23C.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js → chunk-V3KLX7U7.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-GAJVRGGA.js → chunk-VD3LKZFX.js} +41 -254
- package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js → chunk-VMY7MZEM.js} +10 -14
- package/dist/cli-bundle/chunks/{chunk-AD3A7ZD6.js.map → chunk-VMY7MZEM.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
- package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-CE5P2NQR.js → chunk-WFJZDUM7.js} +19 -12
- package/dist/cli-bundle/chunks/chunk-WFJZDUM7.js.map +1 -0
- package/dist/cli-bundle/chunks/{schema-MNTAVQCY.js → chunk-WTRUDJ3R.js} +136 -66
- package/dist/cli-bundle/chunks/chunk-WTRUDJ3R.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js → chunk-YEDFE4DC.js} +6 -8
- package/dist/cli-bundle/chunks/{chunk-T72AZDBA.js.map → chunk-YEDFE4DC.js.map} +1 -1
- package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
- package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js → chunk-Z55WX4IQ.js} +12 -16
- package/dist/cli-bundle/chunks/{chunk-H2IP4QLJ.js.map → chunk-Z55WX4IQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js → chunk-Z5BM2FKQ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js → chunk-ZEATCVAC.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js → chunk-ZFIEEDTJ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7SV63ZHD.js → chunk-ZIE6WXJ2.js} +128 -128
- package/dist/cli-bundle/chunks/chunk-ZIE6WXJ2.js.map +1 -0
- package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js → claim-6NINZYB3.js} +10 -12
- package/dist/cli-bundle/chunks/{claim-4KHAA2RN.js.map → claim-6NINZYB3.js.map} +1 -1
- package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js → claim-HMCLSLUE.js} +8 -10
- package/dist/cli-bundle/chunks/{claim-CSPJFLNH.js.map → claim-HMCLSLUE.js.map} +1 -1
- package/dist/cli-bundle/chunks/close-37KEHLYM.js +14 -0
- package/dist/cli-bundle/chunks/{close-W56IOGYG.js → close-OP3LK7Z2.js} +7 -8
- package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js → close-many-BFMP6HHK.js} +15 -17
- package/dist/cli-bundle/chunks/{close-many-BX5DCSVV.js.map → close-many-BFMP6HHK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js → close-many-CXJBOWWY.js} +17 -19
- package/dist/cli-bundle/chunks/{close-many-TQU5F4E4.js.map → close-many-CXJBOWWY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-VRECH75R.js → comments-ETHABIY6.js} +9 -11
- package/dist/cli-bundle/chunks/{comments-VRECH75R.js.map → comments-ETHABIY6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js → comments-MU2WMBUY.js} +11 -13
- package/dist/cli-bundle/chunks/{comments-U5KUC4EU.js.map → comments-MU2WMBUY.js.map} +1 -1
- package/dist/cli-bundle/chunks/{config-D3OKQO52.js → config-FIXJZEQK.js} +18 -387
- package/dist/cli-bundle/chunks/config-FIXJZEQK.js.map +7 -0
- package/dist/cli-bundle/chunks/{config-MMJA4LLK.js → config-X3ZVCUUG.js} +18 -380
- package/dist/cli-bundle/chunks/config-X3ZVCUUG.js.map +1 -0
- package/dist/cli-bundle/chunks/context-7ZEZV3BV.js +42 -0
- package/dist/cli-bundle/chunks/context-XDI4DKKT.js +46 -0
- package/dist/cli-bundle/chunks/{contracts-XGVMMPC5.js → contracts-KP4QAGVW.js} +72 -15
- package/dist/cli-bundle/chunks/contracts-KP4QAGVW.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-C3SZCXXG.js → contracts-SMOAN5NF.js} +72 -15
- package/dist/cli-bundle/chunks/contracts-SMOAN5NF.js.map +7 -0
- package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js → copy-CWM6SBY6.js} +7 -11
- package/dist/cli-bundle/chunks/{copy-HHL3K4QP.js.map → copy-CWM6SBY6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js → copy-JJ3KOQW2.js} +9 -13
- package/dist/cli-bundle/chunks/{copy-5D5DX3VK.js.map → copy-JJ3KOQW2.js.map} +1 -1
- package/dist/cli-bundle/chunks/create-DFMNBKBS.js +28 -0
- package/dist/cli-bundle/chunks/{create-IXY43O4H.js → create-J5Q2ELZT.js} +12 -14
- package/dist/cli-bundle/chunks/{delete-IBUR3M42.js → delete-2GZLQEUQ.js} +7 -9
- package/dist/cli-bundle/chunks/{delete-IBUR3M42.js.map → delete-2GZLQEUQ.js.map} +1 -1
- package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js → delete-OOQS4KVD.js} +5 -7
- package/dist/cli-bundle/chunks/{delete-QQC2FGUH.js.map → delete-OOQS4KVD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js → deps-IF4IGL4R.js} +6 -9
- package/dist/cli-bundle/chunks/{deps-KWKRHXIN.js.map → deps-IF4IGL4R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js → deps-ZVGGCRR6.js} +8 -11
- package/dist/cli-bundle/chunks/{deps-VTPO4BSE.js.map → deps-ZVGGCRR6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js → docs-2TIFR62T.js} +8 -9
- package/dist/cli-bundle/chunks/{docs-IIO3FEUO.js.map → docs-2TIFR62T.js.map} +1 -1
- package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js → docs-NFTBCQQC.js} +10 -11
- package/dist/cli-bundle/chunks/{docs-7CHFHXLN.js.map → docs-NFTBCQQC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-IO7LREOL.js → eval-2F6EH4XN.js} +12 -14
- package/dist/cli-bundle/chunks/{eval-IO7LREOL.js.map → eval-2F6EH4XN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js → eval-PFKXQR3B.js} +10 -12
- package/dist/cli-bundle/chunks/{eval-CEYYEPSX.js.map → eval-PFKXQR3B.js.map} +1 -1
- package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js → extension-3LRYX7SW.js} +11 -7
- package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js → extension-GMVOIP4O.js} +11 -7
- package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js → files-DF3HO6XK.js} +11 -13
- package/dist/cli-bundle/chunks/{files-Z2HHEFGP.js.map → files-DF3HO6XK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{files-TPUL6KWB.js → files-T5ODMETM.js} +9 -11
- package/dist/cli-bundle/chunks/{files-TPUL6KWB.js.map → files-T5ODMETM.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js → focus-DLXKK4AH.js} +10 -14
- package/dist/cli-bundle/chunks/{focus-YRNNH7IP.js.map → focus-DLXKK4AH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js → focus-MY5ARIEK.js} +8 -12
- package/dist/cli-bundle/chunks/{focus-JVJCGC2D.js.map → focus-MY5ARIEK.js.map} +1 -1
- package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js → gc-FULIVYR4.js} +3 -3
- package/dist/cli-bundle/chunks/{gc-PYVVEELM.js → gc-MDGRR2SU.js} +3 -3
- package/dist/cli-bundle/chunks/{get-X4O3HBEY.js → get-AWK324RS.js} +10 -13
- package/dist/cli-bundle/chunks/{get-X4O3HBEY.js.map → get-AWK324RS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{get-ENLTEGTX.js → get-VYPIICPC.js} +12 -15
- package/dist/cli-bundle/chunks/{get-ENLTEGTX.js.map → get-VYPIICPC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-5EXTY44Q.js → health-FBCVZGSX.js} +16 -17
- package/dist/cli-bundle/chunks/{health-5EXTY44Q.js.map → health-FBCVZGSX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{health-BOTB7YSU.js → health-Q66C43GN.js} +18 -19
- package/dist/cli-bundle/chunks/{health-BOTB7YSU.js.map → health-Q66C43GN.js.map} +1 -1
- package/dist/cli-bundle/chunks/history-5XUSLAJA.js +18 -0
- package/dist/cli-bundle/chunks/{history-AJTXLT6S.js → history-X4OSES6K.js} +8 -10
- package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js → history-compact-2GHT32UX.js} +13 -16
- package/dist/cli-bundle/chunks/{history-compact-46MRHW3I.js.map → history-compact-2GHT32UX.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js → history-compact-WLCQEKXS.js} +11 -14
- package/dist/cli-bundle/chunks/{history-compact-43OOUAWD.js.map → history-compact-WLCQEKXS.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js → history-redact-45YW65BK.js} +9 -11
- package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +19 -0
- package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js → history-repair-FY75IC26.js} +13 -16
- package/dist/cli-bundle/chunks/{history-repair-B5PZBOPU.js.map → history-repair-FY75IC26.js.map} +1 -1
- package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js → history-repair-GABSDSVD.js} +11 -14
- package/dist/cli-bundle/chunks/{history-repair-VQTYOSRS.js.map → history-repair-GABSDSVD.js.map} +1 -1
- package/dist/cli-bundle/chunks/{init-BNLVFPRG.js → init-KO7CGIRQ.js} +11 -11
- package/dist/cli-bundle/chunks/init-TRYJELH4.js +21 -0
- package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js → learnings-3F7YLI45.js} +9 -11
- package/dist/cli-bundle/chunks/{learnings-MUUU5KMC.js.map → learnings-3F7YLI45.js.map} +1 -1
- package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js → learnings-LHZT5BHW.js} +11 -13
- package/dist/cli-bundle/chunks/{learnings-XSGX52S7.js.map → learnings-LHZT5BHW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{list-32U7BSKE.js → list-ROT7JF62.js} +10 -10
- package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js → list-Y6AU5BJS.js} +10 -10
- package/dist/cli-bundle/chunks/next-66BJB4N2.js +277 -0
- package/dist/cli-bundle/chunks/next-66BJB4N2.js.map +7 -0
- package/dist/cli-bundle/chunks/next-N5MWJTBY.js +274 -0
- package/dist/cli-bundle/chunks/next-N5MWJTBY.js.map +1 -0
- package/dist/cli-bundle/chunks/{notes-OHU25L3M.js → notes-EVJZ3VAB.js} +11 -13
- package/dist/cli-bundle/chunks/{notes-OHU25L3M.js.map → notes-EVJZ3VAB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js → notes-FW6YFLND.js} +9 -11
- package/dist/cli-bundle/chunks/{notes-NJ45OZGF.js.map → notes-FW6YFLND.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js → plan-DQ7G4EDC.js} +15 -18
- package/dist/cli-bundle/chunks/{plan-LWWAEV5Y.js.map → plan-DQ7G4EDC.js.map} +1 -1
- package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js → plan-ZHKZ7JVF.js} +17 -20
- package/dist/cli-bundle/chunks/{plan-KQA7CAKI.js.map → plan-ZHKZ7JVF.js.map} +1 -1
- package/dist/cli-bundle/chunks/profile-CHAW6SEA.js +1197 -0
- package/dist/cli-bundle/chunks/profile-CHAW6SEA.js.map +1 -0
- package/dist/cli-bundle/chunks/profile-UPZGCDOG.js +1235 -0
- package/dist/cli-bundle/chunks/profile-UPZGCDOG.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-DDCHPONM.js → register-list-query-KY6Z6WV7.js} +44 -20
- package/dist/cli-bundle/chunks/register-list-query-KY6Z6WV7.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-list-query-YNPBVIKM.js → register-list-query-Y2VRHPCL.js} +45 -21
- package/dist/cli-bundle/chunks/register-list-query-Y2VRHPCL.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-mutation-LAVKYY63.js → register-mutation-N6AYSKPM.js} +103 -37
- package/dist/cli-bundle/chunks/register-mutation-N6AYSKPM.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-mutation-7ALWDDAX.js → register-mutation-PCARIGZS.js} +104 -38
- package/dist/cli-bundle/chunks/register-mutation-PCARIGZS.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js → register-operations-L6CYTOIH.js} +30 -32
- package/dist/cli-bundle/chunks/{register-operations-U5JAW3WE.js.map → register-operations-L6CYTOIH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js → register-operations-YAT6FUUB.js} +32 -34
- package/dist/cli-bundle/chunks/{register-operations-R4VOQ6EF.js.map → register-operations-YAT6FUUB.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-setup-KBXQDCXE.js → register-setup-MPANILQF.js} +67 -24
- package/dist/cli-bundle/chunks/register-setup-MPANILQF.js.map +7 -0
- package/dist/cli-bundle/chunks/{register-setup-RCRUHMSZ.js → register-setup-N7UGXYJC.js} +68 -25
- package/dist/cli-bundle/chunks/register-setup-N7UGXYJC.js.map +1 -0
- package/dist/cli-bundle/chunks/{restore-6K53WOWO.js → restore-DKMCLPI5.js} +9 -11
- package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +17 -0
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js → scheduling-shortcuts-3F4QUEDH.js} +14 -16
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-NJ5UVJFB.js.map → scheduling-shortcuts-3F4QUEDH.js.map} +1 -1
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js → scheduling-shortcuts-BNZLQK36.js} +12 -14
- package/dist/cli-bundle/chunks/{scheduling-shortcuts-OQVJXG3M.js.map → scheduling-shortcuts-BNZLQK36.js.map} +1 -1
- package/dist/cli-bundle/chunks/schema-OLT6LVKH.js +75 -0
- package/dist/cli-bundle/chunks/schema-XJXKJQF5.js +71 -0
- package/dist/cli-bundle/chunks/{search-6HOIVZDU.js → search-CX5UMV4H.js} +10 -12
- package/dist/cli-bundle/chunks/{search-ZWYEMASC.js → search-KP6H7COV.js} +10 -12
- package/dist/cli-bundle/chunks/{stats-R5OAJVZK.js → stats-7XW4OEMK.js} +20 -12
- package/dist/cli-bundle/chunks/stats-7XW4OEMK.js.map +7 -0
- package/dist/cli-bundle/chunks/{stats-FS742AMA.js → stats-QZUG6MX5.js} +21 -13
- package/dist/cli-bundle/chunks/stats-QZUG6MX5.js.map +1 -0
- package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js → telemetry-DIFPXCAT.js} +4 -4
- package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js → telemetry-WTYFUPRL.js} +4 -4
- package/dist/cli-bundle/chunks/{test-NZF7OT2F.js → test-HU2BS7EY.js} +14 -16
- package/dist/cli-bundle/chunks/test-HU2BS7EY.js.map +1 -0
- package/dist/cli-bundle/chunks/test-QNDXZQCW.js +34 -0
- package/dist/cli-bundle/chunks/test-QNDXZQCW.js.map +7 -0
- package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js → test-all-PZTBLLQ6.js} +17 -20
- package/dist/cli-bundle/chunks/{test-all-DPN62TX7.js.map → test-all-PZTBLLQ6.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js → test-all-XLPI4USF.js} +19 -22
- package/dist/cli-bundle/chunks/{test-all-KL7TLMJF.js.map → test-all-XLPI4USF.js.map} +1 -1
- package/dist/cli-bundle/chunks/{test-runs-C6CFIVOS.js → test-runs-CA6K32RD.js} +6 -7
- package/dist/cli-bundle/chunks/test-runs-CA6K32RD.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-runs-IAJDL6CA.js → test-runs-LANLLPVO.js} +5 -6
- package/dist/cli-bundle/chunks/test-runs-LANLLPVO.js.map +7 -0
- package/dist/cli-bundle/chunks/update-DJKWLBWJ.js +28 -0
- package/dist/cli-bundle/chunks/update-DJKWLBWJ.js.map +1 -0
- package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +24 -0
- package/dist/cli-bundle/chunks/update-UXDLTEOZ.js.map +7 -0
- package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js → update-many-LU3SCNK5.js} +32 -33
- package/dist/cli-bundle/chunks/{update-many-YEH2DQL6.js.map → update-many-LU3SCNK5.js.map} +1 -1
- package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js → update-many-VW5DGF3S.js} +34 -35
- package/dist/cli-bundle/chunks/{update-many-MUTIOAP3.js.map → update-many-VW5DGF3S.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js → upgrade-77FRUAXN.js} +12 -8
- package/dist/cli-bundle/chunks/{upgrade-HYJ3SWWU.js.map → upgrade-77FRUAXN.js.map} +1 -1
- package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js → upgrade-ICXY244R.js} +10 -6
- package/dist/cli-bundle/chunks/{upgrade-UBNLBZNR.js.map → upgrade-ICXY244R.js.map} +1 -1
- package/dist/cli-bundle/chunks/{validate-6QWQVCX2.js → validate-2G566PKQ.js} +37 -28
- package/dist/cli-bundle/chunks/validate-2G566PKQ.js.map +7 -0
- package/dist/cli-bundle/chunks/{validate-W5V5ZGQX.js → validate-BDPVXHHH.js} +38 -29
- package/dist/cli-bundle/chunks/validate-BDPVXHHH.js.map +1 -0
- package/dist/cli-bundle/main.js +56 -38
- package/dist/cli-bundle/main.js.map +2 -2
- package/dist/core/config/positional-value.d.ts +2 -0
- package/dist/core/config/positional-value.js +2 -2
- package/dist/core/config/positional-value.js.map +1 -1
- package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
- package/dist/core/extensions/activation-summary-markdown.js +140 -0
- package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
- package/dist/core/extensions/activation-summary.d.ts +2 -0
- package/dist/core/extensions/activation-summary.js +3 -2
- package/dist/core/extensions/activation-summary.js.map +1 -1
- package/dist/core/extensions/capability-usage.d.ts +1 -1
- package/dist/core/extensions/capability-usage.js +4 -3
- package/dist/core/extensions/capability-usage.js.map +1 -1
- package/dist/core/extensions/extension-registries.js +3 -2
- package/dist/core/extensions/extension-registries.js.map +1 -1
- package/dist/core/extensions/extension-types.d.ts +21 -1
- package/dist/core/extensions/extension-types.js +3 -2
- package/dist/core/extensions/extension-types.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +1 -2
- package/dist/core/extensions/loader.js +169 -103
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/version-compat.d.ts +107 -0
- package/dist/core/extensions/version-compat.js +130 -0
- package/dist/core/extensions/version-compat.js.map +1 -0
- package/dist/core/fs/fs-utils.js +27 -2
- package/dist/core/fs/fs-utils.js.map +1 -1
- package/dist/core/item/actionability.d.ts +57 -0
- package/dist/core/item/actionability.js +178 -0
- package/dist/core/item/actionability.js.map +1 -0
- package/dist/core/item/type-registry.js +18 -45
- package/dist/core/item/type-registry.js.map +1 -1
- package/dist/core/profile/profile-describe.d.ts +64 -0
- package/dist/core/profile/profile-describe.js +83 -0
- package/dist/core/profile/profile-describe.js.map +1 -0
- package/dist/core/profile/profile-lint.d.ts +53 -0
- package/dist/core/profile/profile-lint.js +422 -0
- package/dist/core/profile/profile-lint.js.map +1 -0
- package/dist/core/profile/profile-plan.d.ts +145 -0
- package/dist/core/profile/profile-plan.js +0 -0
- package/dist/core/profile/profile-plan.js.map +1 -0
- package/dist/core/profile/profile-presets.d.ts +218 -0
- package/dist/core/profile/profile-presets.js +325 -0
- package/dist/core/profile/profile-presets.js.map +1 -0
- package/dist/core/schema/fields-file.js +25 -25
- package/dist/core/schema/fields-file.js.map +1 -1
- package/dist/core/schema/item-types-file.js +3 -3
- package/dist/core/schema/item-types-file.js.map +1 -1
- package/dist/core/schema/runtime-schema.js +4 -4
- package/dist/core/schema/runtime-schema.js.map +1 -1
- package/dist/core/schema/status-defs-file.js +3 -3
- package/dist/core/schema/status-defs-file.js.map +1 -1
- package/dist/core/shared/serialization.js +83 -62
- package/dist/core/shared/serialization.js.map +1 -1
- package/dist/core/store/item-store.d.ts +1 -0
- package/dist/core/store/item-store.js +16 -8
- package/dist/core/store/item-store.js.map +1 -1
- package/dist/core/store/paths.js +4 -32
- package/dist/core/store/paths.js.map +1 -1
- package/dist/core/store/settings.js +14 -14
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/observability.js +50 -54
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +11 -2
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/core/test/background-runs.js +3 -2
- package/dist/core/test/background-runs.js.map +1 -1
- package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
- package/dist/core/validate/linked-artifact-reference.js +41 -0
- package/dist/core/validate/linked-artifact-reference.js.map +1 -0
- package/dist/mcp/server.js +183 -83
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-definitions.js +33 -2
- package/dist/mcp/tool-definitions.js.map +1 -1
- package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
- package/dist/sdk/cli-contracts/commander-types.js +15 -2
- package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
- package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +1583 -0
- package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
- package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
- package/dist/sdk/cli-contracts/string-lists.js +20 -0
- package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
- package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
- package/dist/sdk/cli-contracts/tool-schema.js +840 -0
- package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
- package/dist/sdk/cli-contracts.d.ts +13 -193
- package/dist/sdk/cli-contracts.js +5 -2277
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/dist/sdk/compose.d.ts +346 -4
- package/dist/sdk/compose.js +486 -15
- package/dist/sdk/compose.js.map +1 -1
- package/dist/sdk/define.d.ts +29 -14
- package/dist/sdk/define.js +21 -7
- package/dist/sdk/define.js.map +1 -1
- package/dist/sdk/index.d.ts +14 -3
- package/dist/sdk/index.js +14 -3
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/testing.d.ts +156 -3
- package/dist/sdk/testing.js +172 -4
- package/dist/sdk/testing.js.map +1 -1
- package/docs/AGENT_GUIDE.md +2 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +37 -0
- package/docs/EXTENSIONS.md +20 -20
- package/docs/RELEASING.md +6 -1
- package/docs/SDK.md +387 -20
- package/docs/TESTING.md +12 -0
- package/docs/examples/policy-restricted-extension/README.md +6 -0
- package/docs/examples/policy-restricted-extension/index.ts +40 -0
- package/docs/examples/policy-restricted-extension/manifest.json +2 -2
- package/docs/examples/starter-extension/README.md +14 -2
- package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
- package/docs/examples/starter-extension/manifest.json +2 -2
- package/package.json +20 -7
- package/packages/pm-beads/extensions/beads/index.ts +3 -3
- package/packages/pm-beads/extensions/beads/manifest.json +2 -2
- package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
- package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
- package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
- package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
- package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
- package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
- package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
- package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
- package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
- package/packages/pm-kanban/README.md +97 -0
- package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
- package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
- package/packages/pm-kanban/package.json +57 -0
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
- package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
- package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
- package/packages/pm-templates/extensions/templates/index.ts +2 -2
- package/packages/pm-templates/extensions/templates/manifest.json +2 -2
- package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
- package/packages/pm-todos/extensions/todos/index.ts +3 -3
- package/packages/pm-todos/extensions/todos/manifest.json +2 -2
- package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
- package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
- package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
- package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
- package/scripts/bundle-cli.mjs +1 -1
- package/dist/cli-bundle/chunks/activity-XUZ2AHCW.js +0 -18
- package/dist/cli-bundle/chunks/aggregate-EGJLZQBI.js.map +0 -7
- package/dist/cli-bundle/chunks/aggregate-R725FC3S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-2BFPAUAF.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-46G6RSB6.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-55ISXAQH.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-5UVVASSA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js +0 -78
- package/dist/cli-bundle/chunks/chunk-7MRQ4HMK.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-7SV63ZHD.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-AONIHR2C.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js +0 -691
- package/dist/cli-bundle/chunks/chunk-C5AOG6D2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CE5P2NQR.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-CKGNPJAG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-G6PYHBBR.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-GAJVRGGA.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-HFFUQR73.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-IPKJ6B36.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-JR2LV3M4.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-KFWBJPSG.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-KQMUV6LX.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-MJTINN54.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MJTSZKK5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js +0 -694
- package/dist/cli-bundle/chunks/chunk-MVKFOLLM.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-QH3PJYON.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-QL5RVYOA.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-S26C36QC.js +0 -83
- package/dist/cli-bundle/chunks/chunk-S26C36QC.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js +0 -75
- package/dist/cli-bundle/chunks/chunk-S2RUQSX2.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js +0 -86
- package/dist/cli-bundle/chunks/chunk-SKH7OGE5.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SKN7LC5W.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-SR3EKWZG.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-UELRKQQU.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-VFAQ4LMN.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-Y4SUQQYH.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YDEXO24S.js +0 -654
- package/dist/cli-bundle/chunks/chunk-YDEXO24S.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js +0 -657
- package/dist/cli-bundle/chunks/chunk-YJ3SUEPD.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-YUDJD3XO.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-ZRK4O56R.js.map +0 -1
- package/dist/cli-bundle/chunks/close-A3EMKBBY.js +0 -15
- package/dist/cli-bundle/chunks/config-D3OKQO52.js.map +0 -7
- package/dist/cli-bundle/chunks/config-MMJA4LLK.js.map +0 -1
- package/dist/cli-bundle/chunks/context-BLBD3PUB.js.map +0 -7
- package/dist/cli-bundle/chunks/context-DHLVPXN3.js.map +0 -1
- package/dist/cli-bundle/chunks/contracts-C3SZCXXG.js.map +0 -7
- package/dist/cli-bundle/chunks/contracts-XGVMMPC5.js.map +0 -1
- package/dist/cli-bundle/chunks/create-QVGFYA2X.js +0 -30
- package/dist/cli-bundle/chunks/history-AK3E5Z3C.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-TWIYQV5J.js +0 -21
- package/dist/cli-bundle/chunks/init-RCRKW5PL.js +0 -21
- package/dist/cli-bundle/chunks/register-list-query-DDCHPONM.js.map +0 -7
- package/dist/cli-bundle/chunks/register-list-query-YNPBVIKM.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-7ALWDDAX.js.map +0 -1
- package/dist/cli-bundle/chunks/register-mutation-LAVKYY63.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-KBXQDCXE.js.map +0 -7
- package/dist/cli-bundle/chunks/register-setup-RCRUHMSZ.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-2ZKT6UDC.js +0 -19
- package/dist/cli-bundle/chunks/schema-MNTAVQCY.js.map +0 -1
- package/dist/cli-bundle/chunks/schema-RBTJ2YXW.js.map +0 -7
- package/dist/cli-bundle/chunks/stats-FS742AMA.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-R5OAJVZK.js.map +0 -7
- package/dist/cli-bundle/chunks/test-QJXLKV26.js +0 -36
- package/dist/cli-bundle/chunks/test-runs-C6CFIVOS.js.map +0 -1
- package/dist/cli-bundle/chunks/test-runs-IAJDL6CA.js.map +0 -7
- package/dist/cli-bundle/chunks/update-2XCQNOD6.js +0 -28
- package/dist/cli-bundle/chunks/update-IWUCXVH2.js +0 -24
- package/dist/cli-bundle/chunks/validate-6QWQVCX2.js.map +0 -7
- package/dist/cli-bundle/chunks/validate-W5V5ZGQX.js.map +0 -1
- package/docs/examples/policy-restricted-extension/index.js +0 -21
- package/packages/pm-beads/extensions/beads/index.js +0 -64
- package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
- package/packages/pm-beads/extensions/beads/runtime.js +0 -482
- package/packages/pm-calendar/extensions/calendar/index.js +0 -150
- package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
- package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
- package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
- package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
- package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
- package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
- package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
- package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
- package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
- package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
- package/packages/pm-templates/extensions/templates/index.js +0 -132
- package/packages/pm-templates/extensions/templates/runtime.js +0 -35
- package/packages/pm-todos/extensions/todos/index.js +0 -81
- package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
- package/packages/pm-todos/extensions/todos/runtime.js +0 -545
- /package/dist/cli-bundle/chunks/{activity-XUZ2AHCW.js.map → activity-EJBMXUBH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-H2LMOSSW.js.map → activity-MVSEND6D.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-IB3GYLQE.js.map → chunk-3JWQCLR5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2A34E3BA.js.map → chunk-4TXTVZL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G6N5VEOK.js.map → chunk-4YIMPANT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7XGQXHFB.js.map → chunk-73PTKMAE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3VY3YQO6.js.map → chunk-7RIJGN4R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FXR67XVQ.js.map → chunk-BN3CWK6G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4BHT5VDC.js.map → chunk-C2KCIZKZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O6LLO73I.js.map → chunk-CHRNYKNI.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZQ3ZVXX2.js.map → chunk-D6USKAMA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WZQWHN4R.js.map → chunk-DLDCPF5X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UVC5LOR7.js.map → chunk-E2Q2ULMR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5VOINNKT.js.map → chunk-F6VH3LFC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-H4IIJDE4.js.map → chunk-FDEVKXC4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-34EONI5F.js.map → chunk-HUYYMTGW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CIIK67GW.js.map → chunk-IHXXUIXS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SBQTAVJZ.js.map → chunk-JIP67N2K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2T3JG6V4.js.map → chunk-KRASIL6M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-P77P2ILI.js.map → chunk-MLHX6DN5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2CKH2LMV.js.map → chunk-OB3RJV5F.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FIGAZ4Y7.js.map → chunk-OUQ5JEFM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NK3UPBVG.js.map → chunk-QE5UFCCO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-WM5ZVBPE.js.map → chunk-SJZTPVFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VAYA4XFX.js.map → chunk-V3KLX7U7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-2RDVQEWV.js.map → chunk-Z5BM2FKQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-66MEDTUD.js.map → chunk-ZEATCVAC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NCVCO3NZ.js.map → chunk-ZFIEEDTJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-A3EMKBBY.js.map → close-37KEHLYM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-W56IOGYG.js.map → close-OP3LK7Z2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-QVGFYA2X.js.map → context-7ZEZV3BV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-IXY43O4H.js.map → context-XDI4DKKT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-UTTQDUYI.js.map → create-DFMNBKBS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-KCPUWSY2.js.map → create-J5Q2ELZT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AJTXLT6S.js.map → extension-3LRYX7SW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-AK3E5Z3C.js.map → extension-GMVOIP4O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-O5GUO3SU.js.map → gc-FULIVYR4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{gc-PYVVEELM.js.map → gc-MDGRR2SU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-TWIYQV5J.js.map → history-5XUSLAJA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-KUUUVUFM.js.map → history-X4OSES6K.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-BNLVFPRG.js.map → history-redact-45YW65BK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-RCRKW5PL.js.map → history-redact-BVHWDXPR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-32U7BSKE.js.map → init-KO7CGIRQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-ZEEOHLTQ.js.map → init-TRYJELH4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-6K53WOWO.js.map → list-ROT7JF62.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-2ZKT6UDC.js.map → list-Y6AU5BJS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-6HOIVZDU.js.map → restore-DKMCLPI5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-ZWYEMASC.js.map → restore-IRAKSWIW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-NZF7OT2F.js.map → schema-OLT6LVKH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-QJXLKV26.js.map → schema-XJXKJQF5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-2XCQNOD6.js.map → search-CX5UMV4H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-IWUCXVH2.js.map → search-KP6H7COV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-7DIGDQUO.js.map → telemetry-DIFPXCAT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{telemetry-FWEXSJLQ.js.map → telemetry-WTYFUPRL.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings.js","sources":["core/store/settings.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/store/settings\n *\n * Reads and writes tracker storage with format-aware helpers for Settings.\n */\nimport { validateSettings, type ParsedSettings } from \"./settings-validator.js\";\nimport { runActiveOnReadHooks, runActiveOnWriteHooks } from \"../extensions/index.js\";\nimport { GOVERNANCE_PRESET_DEFAULTS, SETTINGS_DEFAULTS } from \"../shared/constants.js\";\nimport { readFileIfExists, writeFileAtomic } from \"../fs/fs-utils.js\";\nimport {\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,\n ensureRuntimeSchemaFileScaffold,\n filePathForSchemaSection,\n loadRuntimeSchemaFromOptionalFiles,\n normalizeRuntimeSchemaSettings,\n} from \"../schema/runtime-schema.js\";\nimport { getSettingsPath } from \"./paths.js\";\nimport { orderObject, stableValueEquals } from \"../shared/serialization.js\";\nimport { normalizeItemTypeDefinition } from \"../item/item-type-definition.js\";\nimport { normalizeEstimateDefaultOverrides } from \"../validate/estimate-defaults.js\";\nimport {\n clearSettingsReadCache,\n collectSettingsReadCacheSignatures,\n getSettingsReadCacheEntry,\n setSettingsReadCacheEntry,\n settingsReadCacheSignaturesEqual,\n} from \"./settings-read-cache.js\";\nimport type {\n ExtensionGovernancePolicy,\n PmMaxVersionExceededMode,\n PmMaxVersionExceededModeSetting,\n} from \"../extensions/extension-types.js\";\nimport type {\n ExtensionSandboxProfile,\n ExtensionPolicyMode,\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ExtensionTrustMode,\n GovernanceSettings,\n ItemTypeDefinition,\n PmSettings,\n GovernancePreset,\n SearchMutationRefreshPolicy,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\n\nconst SETTINGS_WRITE_OP = \"settings:write\";\nconst SETTINGS_PERSIST_SOURCE_SYMBOL = Symbol(\"pm.settings.persist_source\");\nconst MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;\n\ninterface SettingsPersistSourceSnapshot {\n has_source_item_type_definitions: boolean;\n source_item_type_definitions: ItemTypeDefinition[];\n has_source_schema_statuses: boolean;\n source_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n has_source_schema_fields: boolean;\n source_schema_fields: PmSettings[\"schema\"][\"fields\"];\n has_source_schema_type_workflows: boolean;\n source_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n runtime_item_type_definitions: ItemTypeDefinition[];\n runtime_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n runtime_schema_fields: PmSettings[\"schema\"][\"fields\"];\n runtime_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/**\n * Documents the settings read metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadMetadata {\n has_explicit_item_format: boolean;\n}\n\n/**\n * Documents the settings read result payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadResult {\n settings: PmSettings;\n metadata: SettingsReadMetadata;\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(preset: Exclude<GovernancePreset, \"custom\">): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(value: GovernancePreset | undefined): GovernancePreset {\n if (value === \"minimal\" || value === \"default\" || value === \"strict\" || value === \"custom\") {\n return value;\n }\n return SETTINGS_DEFAULTS.governance.preset;\n}\n\n// `create_default_type` and `workflow_enforcement` are orthogonal to the\n// governance preset (they tune create/update behavior, not the preset knobs),\n// so they must survive a write regardless of preset — otherwise a project on a\n// non-custom preset would silently drop them on every settings write.\nfunction withGovernanceExtras(\n base: Partial<GovernanceSettings> & { preset: GovernancePreset },\n governance: GovernanceSettings,\n): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n const createDefaultType =\n typeof governance.create_default_type === \"string\" ? governance.create_default_type.trim() : undefined;\n if (createDefaultType && createDefaultType.length > 0) {\n base.create_default_type = createDefaultType;\n }\n if (\n governance.workflow_enforcement === \"off\" ||\n governance.workflow_enforcement === \"warn\" ||\n governance.workflow_enforcement === \"strict\"\n ) {\n base.workflow_enforcement = governance.workflow_enforcement;\n }\n if (governance.require_close_reason === false) {\n base.require_close_reason = false;\n }\n return base;\n}\n\nfunction normalizeGovernanceForPersist(governance: GovernanceSettings): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n if (governance.preset === \"custom\") {\n return withGovernanceExtras(\n {\n preset: \"custom\",\n ownership_enforcement: governance.ownership_enforcement,\n create_mode_default: governance.create_mode_default,\n close_validation_default: governance.close_validation_default,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n force_required_for_stale_lock: governance.force_required_for_stale_lock,\n },\n governance,\n );\n }\n return withGovernanceExtras(\n {\n preset: governance.preset,\n },\n governance,\n );\n}\n\n// Preset-orthogonal knobs that must be carried through resolve from the raw\n// governance regardless of preset (see normalizeGovernanceForPersist).\nfunction resolveGovernanceExtras(\n rawGovernance: Partial<GovernanceSettings>,\n): Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\" ? rawGovernance.create_default_type.trim() : undefined;\n const extras: Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> =\n {};\n if (createDefaultType && createDefaultType.length > 0) {\n extras.create_default_type = createDefaultType;\n }\n if (\n rawGovernance.workflow_enforcement === \"off\" ||\n rawGovernance.workflow_enforcement === \"warn\" ||\n rawGovernance.workflow_enforcement === \"strict\"\n ) {\n extras.workflow_enforcement = rawGovernance.workflow_enforcement;\n }\n if (typeof rawGovernance.require_close_reason === \"boolean\") {\n extras.require_close_reason = rawGovernance.require_close_reason;\n }\n return extras;\n}\n\n/**\n * Implements resolve governance knobs for the public runtime surface of this module.\n */\nexport function resolveGovernanceKnobs(\n settings: Pick<PmSettings, \"governance\"> | { governance?: Partial<GovernanceSettings> },\n): GovernanceSettings {\n const rawGovernance = settings.governance ?? {};\n const preset = normalizeGovernancePreset(rawGovernance.preset);\n const extras = resolveGovernanceExtras(rawGovernance);\n if (preset === \"custom\") {\n const baseline = resolveGovernanceKnobsFromPreset(\"default\");\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default: rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default: rawGovernance.close_validation_default ?? baseline.close_validation_default,\n parent_reference: rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile: rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ...baseline,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n}\n\nfunction cloneDefaults(): PmSettings {\n return structuredClone(SETTINGS_DEFAULTS);\n}\n\nfunction normalizeSearchMutationRefreshPolicy(value: unknown): SearchMutationRefreshPolicy {\n if (value === \"cache_only\" || value === \"semantic_configured\" || value === \"semantic_auto\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.mutation_refresh_policy;\n}\n\nfunction normalizeSearchQueryExpansionEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.query_expansion.enabled;\n}\n\nfunction normalizeSearchQueryExpansionProvider(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.query_expansion.provider;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.enabled;\n}\n\nfunction normalizeSearchRerankModel(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.rerank.model;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankTopK(value: unknown): number {\n if (typeof value === \"number\" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.top_k;\n}\n\nfunction normalizeVectorStoreCollectionName(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.vector_store.collection_name;\n }\n const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, \"_\");\n const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);\n return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;\n}\n\nfunction buildSettingsPersistSourceSnapshot(\n parsedSettings: ParsedSettings,\n runtimeSettings: PmSettings,\n): SettingsPersistSourceSnapshot {\n const sourceSchema = parsedSettings.schema;\n const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),\n source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],\n has_source_schema_fields: sourceFields !== undefined,\n source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],\n has_source_schema_type_workflows: sourceTypeWorkflows !== undefined,\n source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? []),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(settings: PmSettings, source: SettingsPersistSourceSnapshot): void {\n Object.defineProperty(settings as unknown as Record<PropertyKey, unknown>, SETTINGS_PERSIST_SOURCE_SYMBOL, {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n });\n}\n\nfunction getSettingsPersistSourceSnapshot(settings: PmSettings): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[SETTINGS_PERSIST_SOURCE_SYMBOL];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(result: SettingsReadResult): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));\n }\n return {\n settings: clonedSettings,\n metadata: {\n has_explicit_item_format: result.metadata.has_explicit_item_format,\n },\n warnings: [...result.warnings],\n };\n}\n\nfunction resolveSettingsReadTrackedPaths(pmRoot: string, schema: PmSettings[\"schema\"], settingsPath: string): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows),\n ];\n}\n\nasync function cacheSettingsReadResult(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n const signatures = await collectSettingsReadCacheSignatures(trackedPaths);\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures,\n value: cloneSettingsReadResult(result),\n });\n}\n\nasync function cacheSettingsReadResultSafe(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<ReturnType<typeof collectSettingsReadCacheSignatures>>;\n\nfunction findSettingsReadCacheSignature(signatures: SettingsReadCacheSignatures, targetPath: string) {\n return signatures.find((signature) => signature.path === targetPath);\n}\n\nfunction selectedSettingsReadCacheSignaturesEqual(\n before: SettingsReadCacheSignatures,\n after: SettingsReadCacheSignatures,\n targetPaths: string[],\n): boolean {\n for (const targetPath of targetPaths) {\n const beforeSignature = findSettingsReadCacheSignature(before, targetPath);\n const afterSignature = findSettingsReadCacheSignature(after, targetPath);\n if (\n !beforeSignature ||\n !afterSignature ||\n !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])\n ) {\n return false;\n }\n }\n return true;\n}\n\nasync function cacheSettingsReadResultIfStable(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n stableSignatures: SettingsReadCacheSignatures,\n stablePaths: string[],\n): Promise<void> {\n try {\n const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);\n if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {\n clearSettingsReadCache(pmRoot);\n return;\n }\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: currentSignatures,\n value: cloneSettingsReadResult(result),\n });\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nfunction resolvePersistedFileBackedSchemaSections(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot | undefined,\n): {\n item_type_definitions: ItemTypeDefinition[];\n schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n schema_fields: PmSettings[\"schema\"][\"fields\"];\n schema_type_workflows: PmSettings[\"schema\"][\"type_workflows\"];\n} {\n const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);\n const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);\n if (!source) {\n return {\n item_type_definitions: currentItemTypeDefinitions,\n schema_statuses: normalizedSchema.statuses,\n schema_fields: normalizedSchema.fields,\n schema_type_workflows: normalizedSchema.type_workflows,\n };\n }\n\n const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];\n const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);\n const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);\n const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);\n const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);\n\n return {\n item_type_definitions: itemTypeDefinitionsUnchanged\n ? source.has_source_item_type_definitions\n ? normalizeItemTypeDefinitions(source.source_item_type_definitions)\n : []\n : currentItemTypeDefinitions,\n schema_statuses: schemaStatusesUnchanged\n ? source.has_source_schema_statuses\n ? structuredClone(source.source_schema_statuses)\n : []\n : normalizedSchema.statuses,\n schema_fields: schemaFieldsUnchanged\n ? source.has_source_schema_fields\n ? structuredClone(source.source_schema_fields)\n : []\n : normalizedSchema.fields,\n schema_type_workflows: schemaTypeWorkflowsUnchanged\n ? source.has_source_schema_type_workflows\n ? structuredClone(source.source_schema_type_workflows)\n : undefined\n : normalizedSchema.type_workflows,\n };\n}\n\nfunction buildFallbackSettingsReadResult(warning?: string): SettingsReadResult {\n return {\n settings: cloneDefaults(),\n metadata: {\n has_explicit_item_format: false,\n },\n warnings: warning ? [warning] : [],\n };\n}\n\nfunction hasExplicitItemFormat(raw: unknown): boolean {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return false;\n }\n const itemFormat = (raw as Record<string, unknown>).item_format;\n return itemFormat === \"toon\" || itemFormat === \"json_markdown\";\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n );\n}\n\nfunction normalizeAgentGuidanceSettings(\n value: Partial<PmSettings[\"agent_guidance\"]> | undefined,\n): PmSettings[\"agent_guidance\"] {\n const defaults = SETTINGS_DEFAULTS.agent_guidance;\n const templateVersion = value?.template_version;\n return {\n prompt_completed: value?.prompt_completed === true,\n declined: value?.declined === true,\n declined_at: typeof value?.declined_at === \"string\" ? value.declined_at : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" && Number.isInteger(templateVersion) && templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(value?.last_checked_files ?? defaults.last_checked_files),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeExtensionPolicyMode(value: ExtensionPolicyMode | undefined): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(value: ExtensionTrustMode | undefined): ExtensionTrustMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.trust_mode;\n}\n\nfunction normalizeExtensionSandboxProfile(value: ExtensionSandboxProfile | undefined): ExtensionSandboxProfile {\n if (value === \"none\" || value === \"restricted\" || value === \"strict\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;\n}\n\nfunction normalizeExtensionPolicyOverride(\n override: ExtensionPolicyOverrideSettings,\n): ExtensionPolicyOverrideSettings | null {\n const name = override.name.trim().toLowerCase();\n if (name.length === 0) {\n return null;\n }\n const normalized: ExtensionPolicyOverrideSettings = {\n name,\n };\n if (override.disabled === true) {\n normalized.disabled = true;\n }\n if (override.require_trusted === true) {\n normalized.require_trusted = true;\n }\n if (override.require_provenance === true) {\n normalized.require_provenance = true;\n }\n if (override.sandbox_profile !== undefined) {\n normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);\n }\n const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);\n const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);\n const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);\n const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);\n const allowedCommands = normalizeLowerStringList(override.allowed_commands);\n const blockedCommands = normalizeLowerStringList(override.blocked_commands);\n const allowedActions = normalizeLowerStringList(override.allowed_actions);\n const blockedActions = normalizeLowerStringList(override.blocked_actions);\n const allowedServices = normalizeLowerStringList(override.allowed_services);\n const blockedServices = normalizeLowerStringList(override.blocked_services);\n if (allowedCapabilities.length > 0) {\n normalized.allowed_capabilities = allowedCapabilities;\n }\n if (blockedCapabilities.length > 0) {\n normalized.blocked_capabilities = blockedCapabilities;\n }\n if (allowedSurfaces.length > 0) {\n normalized.allowed_surfaces = allowedSurfaces;\n }\n if (blockedSurfaces.length > 0) {\n normalized.blocked_surfaces = blockedSurfaces;\n }\n if (allowedCommands.length > 0) {\n normalized.allowed_commands = allowedCommands;\n }\n if (blockedCommands.length > 0) {\n normalized.blocked_commands = blockedCommands;\n }\n if (allowedActions.length > 0) {\n normalized.allowed_actions = allowedActions;\n }\n if (blockedActions.length > 0) {\n normalized.blocked_actions = blockedActions;\n }\n if (allowedServices.length > 0) {\n normalized.allowed_services = allowedServices;\n }\n if (blockedServices.length > 0) {\n normalized.blocked_services = blockedServices;\n }\n return normalized;\n}\n\nfunction normalizeExtensionPolicyOverrides(\n overrides: ExtensionPolicyOverrideSettings[] | undefined,\n): ExtensionPolicyOverrideSettings[] {\n const dedupedByName = new Map<string, ExtensionPolicyOverrideSettings>();\n for (const override of overrides ?? []) {\n const normalized = normalizeExtensionPolicyOverride(override);\n if (!normalized) {\n continue;\n }\n dedupedByName.set(normalized.name, normalized);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/**\n * Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer\n * override object) through settings normalization. Unset/invalid values are\n * omitted so existing settings.json files round-trip byte-identically and the\n * loader applies its safe default (\"block\").\n */\nfunction normalizePmMaxVersionExceededModeSetting(\n value: PmMaxVersionExceededModeSetting | undefined,\n): PmMaxVersionExceededModeSetting | undefined {\n if (typeof value === \"string\") {\n return normalizePmMaxVersionExceededModeValue(value);\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n const global = normalizePmMaxVersionExceededModeValue(value.global);\n const project = normalizePmMaxVersionExceededModeValue(value.project);\n if (global === undefined && project === undefined) {\n return undefined;\n }\n return {\n ...(global !== undefined ? { global } : {}),\n ...(project !== undefined ? { project } : {}),\n };\n }\n return undefined;\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const defaults = SETTINGS_DEFAULTS.extensions.policy;\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode } : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),\n default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),\n allowed_extensions: normalizeLowerStringList(policy?.allowed_extensions ?? defaults.allowed_extensions),\n blocked_extensions: normalizeLowerStringList(policy?.blocked_extensions ?? defaults.blocked_extensions),\n allowed_capabilities: normalizeLowerStringList(policy?.allowed_capabilities ?? defaults.allowed_capabilities),\n blocked_capabilities: normalizeLowerStringList(policy?.blocked_capabilities ?? defaults.blocked_capabilities),\n allowed_surfaces: normalizeLowerStringList(policy?.allowed_surfaces ?? defaults.allowed_surfaces),\n blocked_surfaces: normalizeLowerStringList(policy?.blocked_surfaces ?? defaults.blocked_surfaces),\n allowed_commands: normalizeLowerStringList(policy?.allowed_commands ?? defaults.allowed_commands),\n blocked_commands: normalizeLowerStringList(policy?.blocked_commands ?? defaults.blocked_commands),\n allowed_actions: normalizeLowerStringList(policy?.allowed_actions ?? defaults.allowed_actions),\n blocked_actions: normalizeLowerStringList(policy?.blocked_actions ?? defaults.blocked_actions),\n allowed_services: normalizeLowerStringList(policy?.allowed_services ?? defaults.allowed_services),\n blocked_services: normalizeLowerStringList(policy?.blocked_services ?? defaults.blocked_services),\n extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? defaults.extension_overrides),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(values: string[] | undefined): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll(\"-\", \"_\")))]\n .filter((value) => value.length > 0)\n .sort((left, right) => left.localeCompare(right));\n return normalized.filter((value): value is ValidateMetadataRequiredField =>\n [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n ].includes(value),\n );\n}\n\nfunction normalizeValidationPatternList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction valueOrDefault<T>(value: T | undefined, fallback: T): T {\n return value === undefined ? fallback : value;\n}\n\nfunction recordOrEmpty(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\n/**\n * Implements normalize item type definitions for the public runtime surface of this module.\n */\nexport function normalizeItemTypeDefinitions(definitions: ItemTypeDefinition[] | undefined): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter((definition): definition is ItemTypeDefinition => definition !== null);\n const dedupedByName = new Map<string, ItemTypeDefinition>();\n for (const definition of normalized) {\n dedupedByName.set(definition.name.toLowerCase(), definition);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mergeSettings(settings: ParsedSettings): PmSettings {\n const defaults = cloneDefaults();\n const governance = resolveGovernanceKnobs({\n governance: settings.governance ?? { preset: \"default\" },\n });\n return {\n ...defaults,\n ...settings,\n item_format: settings.item_format === \"json_markdown\" ? \"toon\" : (settings.item_format ?? defaults.item_format),\n locks: { ...defaults.locks, ...settings.locks },\n checkpoints: { ...defaults.checkpoints, ...(settings.checkpoints ?? {}) },\n output: { ...defaults.output, ...settings.output },\n history: {\n ...defaults.history,\n ...(settings.history ?? {}),\n compact_policy: {\n ...defaults.history.compact_policy,\n ...(settings.history?.compact_policy ?? {}),\n },\n },\n validation: {\n ...defaults.validation,\n ...(settings.validation ?? {}),\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_stale_blocker_reason_patterns ??\n defaults.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n defaults.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_resolution_patterns ??\n defaults.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_actual_result_patterns ??\n defaults.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type),\n },\n governance,\n workflow: {\n definition_of_done: [...(settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done)],\n },\n testing: {\n record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items,\n },\n telemetry: {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed:\n settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,\n capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n },\n agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),\n item_types: {\n definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions),\n },\n schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),\n context: {\n default_depth: settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...(settings.context?.sections ?? {}),\n },\n },\n extensions: {\n enabled: [...settings.extensions.enabled],\n disabled: [...settings.extensions.disabled],\n policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy),\n },\n search: {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...(settings.search?.query_expansion ?? {}),\n enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider),\n },\n rerank: {\n ...defaults.search.rerank,\n ...(settings.search?.rerank ?? {}),\n enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(settings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k),\n },\n },\n providers: {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n },\n vector_store: {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),\n qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },\n lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb },\n },\n };\n}\n\n/**\n * Implements serialize settings for the public runtime surface of this module.\n */\nexport function serializeSettings(settings: PmSettings, options: SerializeSettingsOptions = {}): string {\n const baseSettings = {\n ...settings,\n locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),\n checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),\n workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),\n testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),\n telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),\n agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),\n item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store),\n } as PmSettings;\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);\n const normalizedSettings: PmSettings = {\n ...baseSettings,\n item_format: \"toon\",\n validation: {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_resolution_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type),\n },\n governance,\n agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),\n item_types: {\n definitions: persistedFileBackedSections.item_type_definitions,\n },\n schema: {\n ...normalizedSchema,\n statuses: persistedFileBackedSections.schema_statuses,\n fields: persistedFileBackedSections.schema_fields,\n type_workflows: persistedFileBackedSections.schema_type_workflows,\n },\n search: {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...(baseSettings.search?.query_expansion ?? {}),\n enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...(baseSettings.search?.rerank ?? {}),\n enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n },\n context: {\n default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,\n activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...(baseSettings.context?.sections ?? {}),\n },\n },\n extensions: {\n enabled: normalizeStringList(baseSettings.extensions?.enabled),\n disabled: normalizeStringList(baseSettings.extensions?.disabled),\n policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy),\n },\n vector_store: {\n ...baseSettings.vector_store,\n adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),\n qdrant: { ...(baseSettings.vector_store?.qdrant ?? {}) },\n lancedb: { ...(baseSettings.vector_store?.lancedb ?? {}) },\n },\n };\n const ordered = orderObject(\n {\n ...(normalizedSettings as unknown as Record<string, unknown>),\n governance: normalizeGovernanceForPersist(governance) as unknown,\n },\n [\n \"version\",\n \"id_prefix\",\n \"author_default\",\n \"item_format\",\n \"locks\",\n \"checkpoints\",\n \"output\",\n \"history\",\n \"validation\",\n \"governance\",\n \"workflow\",\n \"testing\",\n \"telemetry\",\n \"agent_guidance\",\n \"item_types\",\n \"schema\",\n \"context\",\n \"extensions\",\n \"search\",\n \"providers\",\n \"vector_store\",\n ],\n );\n\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\"ttl_seconds\"]);\n ordered.checkpoints = orderObject(ordered.checkpoints as Record<string, unknown>, [\"retention_days\"]);\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\"default_format\"]);\n // compact_policy's own keys are emitted in deterministic order by mergeSettings\n // (it rebuilds the object as {enabled, max_entries, trigger}); only the top-level\n // history keys need explicit ordering here.\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\"missing_stream\", \"compact_policy\"]);\n ordered.validation = orderObject(ordered.validation as Record<string, unknown>, [\n \"sprint_release_format\",\n \"parent_reference\",\n \"metadata_profile\",\n \"metadata_required_fields\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"estimate_defaults_by_type\",\n ]);\n ordered.governance = orderObject(ordered.governance as Record<string, unknown>, [\n \"preset\",\n \"ownership_enforcement\",\n \"create_mode_default\",\n \"close_validation_default\",\n \"require_close_reason\",\n \"parent_reference\",\n \"metadata_profile\",\n \"force_required_for_stale_lock\",\n \"create_default_type\",\n \"workflow_enforcement\",\n ]);\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\"definition_of_done\"]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\"record_results_to_items\"]);\n ordered.telemetry = orderObject(ordered.telemetry as Record<string, unknown>, [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ]);\n ordered.agent_guidance = orderObject(ordered.agent_guidance as Record<string, unknown>, [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ]);\n ordered.item_types = orderObject(ordered.item_types as Record<string, unknown>, [\"definitions\"]);\n ordered.schema = orderObject(ordered.schema as Record<string, unknown>, [\n \"version\",\n \"files\",\n \"statuses\",\n \"fields\",\n \"workflow\",\n \"type_workflows\",\n \"unknown_field_policy\",\n ]);\n (ordered.schema as Record<string, unknown>).files = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).files),\n [\"types\", \"statuses\", \"fields\", \"workflows\"],\n );\n (ordered.schema as Record<string, unknown>).workflow = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).workflow),\n [\"draft_status\", \"open_status\", \"in_progress_status\", \"blocked_status\", \"close_status\", \"canceled_status\"],\n );\n ordered.context = orderObject(ordered.context as Record<string, unknown>, [\n \"default_depth\",\n \"activity_limit\",\n \"stale_threshold_days\",\n \"sections\",\n ]);\n (ordered.context as Record<string, unknown>).sections = orderObject(\n recordOrEmpty((ordered.context as Record<string, unknown>).sections),\n [\"hierarchy\", \"activity\", \"progress\", \"blockers\", \"files\", \"workload\", \"staleness\", \"tests\"],\n );\n ordered.extensions = orderObject(ordered.extensions as Record<string, unknown>, [\"enabled\", \"disabled\", \"policy\"]);\n (ordered.extensions as Record<string, unknown>).policy = orderObject(\n recordOrEmpty((ordered.extensions as Record<string, unknown>).policy),\n [\n \"mode\",\n \"trust_mode\",\n \"pm_max_version_exceeded_mode\",\n \"require_provenance\",\n \"trusted_extensions\",\n \"default_sandbox_profile\",\n \"allowed_extensions\",\n \"blocked_extensions\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n \"extension_overrides\",\n ],\n );\n ((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides = (\n arrayOrEmpty(((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides)\n ).map((entry) =>\n orderObject(recordOrEmpty(entry), [\n \"name\",\n \"disabled\",\n \"require_trusted\",\n \"require_provenance\",\n \"sandbox_profile\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n ]),\n );\n ordered.search = orderObject(ordered.search as Record<string, unknown>, [\n \"score_threshold\",\n \"hybrid_semantic_weight\",\n \"max_results\",\n \"embedding_model\",\n \"embedding_corpus_max_characters\",\n \"embedding_batch_size\",\n \"embedding_timeout_ms\",\n \"scanner_max_batch_retries\",\n \"provider\",\n \"mutation_refresh_policy\",\n \"query_expansion\",\n \"rerank\",\n ]);\n (ordered.search as Record<string, unknown>).query_expansion = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).query_expansion),\n [\"enabled\", \"provider\"],\n );\n (ordered.search as Record<string, unknown>).rerank = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).rerank),\n [\"enabled\", \"model\", \"top_k\"],\n );\n ordered.providers = orderObject(ordered.providers as Record<string, unknown>, [\"openai\", \"ollama\"]);\n (ordered.providers as Record<string, unknown>).openai = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).openai),\n [\"base_url\", \"api_key\", \"model\"],\n );\n (ordered.providers as Record<string, unknown>).ollama = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).ollama),\n [\"base_url\", \"model\"],\n );\n ordered.vector_store = orderObject(ordered.vector_store as Record<string, unknown>, [\n \"adapter\",\n \"collection_name\",\n \"qdrant\",\n \"lancedb\",\n ]);\n (ordered.vector_store as Record<string, unknown>).qdrant = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).qdrant),\n [\"url\", \"api_key\"],\n );\n (ordered.vector_store as Record<string, unknown>).lancedb = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).lancedb),\n [\"path\"],\n );\n\n return `${JSON.stringify(ordered, null, 2)}\\n`;\n}\n\n/**\n * Implements read settings with metadata for the public runtime surface of this module.\n */\nexport async function readSettingsWithMetadata(pmRoot: string): Promise<SettingsReadResult> {\n const settingsPath = getSettingsPath(pmRoot);\n let trackedPathsForFailure: string[] = [settingsPath];\n await runActiveOnReadHooks({\n path: settingsPath,\n scope: \"project\",\n });\n\n const cachedResult = getSettingsReadCacheEntry<SettingsReadResult>(pmRoot);\n if (cachedResult) {\n const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);\n if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);\n if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {\n clearSettingsReadCache(pmRoot);\n return readSettingsWithMetadata(pmRoot);\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_json\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_schema\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);\n const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(loadedSchemaSections.type_definitions_from_file),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));\n const result: SettingsReadResult = {\n settings,\n metadata: {\n has_explicit_item_format: hasExplicitItemFormat(parsed),\n },\n warnings: [\n ...(validated.data.item_format === \"json_markdown\"\n ? [\"settings_item_format_legacy_json_markdown_coerced_to_toon\"]\n : []),\n ...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {\n clearSettingsReadCache(pmRoot);\n } else {\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: signaturesAfterSchemaLoad,\n value: cloneSettingsReadResult(result),\n });\n }\n } else {\n // Bootstrap warnings are intentionally one-shot and should not be replayed from cache.\n clearSettingsReadCache(pmRoot);\n }\n return result;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_merge_failed\");\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/**\n * Implements read settings for the public runtime surface of this module.\n */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/**\n * Implements write settings for the public runtime surface of this module.\n */\nexport async function writeSettings(pmRoot: string, settings: PmSettings, op = SETTINGS_WRITE_OP): Promise<void> {\n const settingsPath = getSettingsPath(pmRoot);\n await writeFileAtomic(\n settingsPath,\n serializeSettings(settings, {\n persist_source: getSettingsPersistSourceSnapshot(settings),\n }),\n );\n try {\n await runActiveOnWriteHooks({\n path: settingsPath,\n scope: \"project\",\n op,\n });\n } finally {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nexport const settingsStoreTestOnly = {\n hasExplicitItemFormat,\n buildSettingsPersistSourceSnapshot,\n cacheSettingsReadResultIfStable,\n cacheSettingsReadResultSafe,\n mergeSettings,\n normalizeExtensionPolicySettings,\n normalizeExtensionPolicyOverride,\n normalizeExtensionPolicyOverrides,\n normalizeExtensionPolicyMode,\n normalizePmMaxVersionExceededModeSetting,\n normalizeExtensionSandboxProfile,\n normalizeExtensionTrustMode,\n normalizeLowerStringList,\n normalizeStringList,\n valueOrDefault,\n arrayOrEmpty,\n normalizeValidationPatternList,\n normalizeValidationMetadataRequiredFields,\n resolveSettingsReadTrackedPaths,\n resolvePersistedFileBackedSchemaSections,\n selectedSettingsReadCacheSignaturesEqual,\n};\n"],"names":[],"mappings":"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","debugId":"45ec3f18-8048-5e45-acc9-7544f0bffbde"}
|
|
1
|
+
{"version":3,"file":"settings.js","sources":["core/store/settings.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module core/store/settings\n *\n * Reads and writes tracker storage with format-aware helpers for Settings.\n */\nimport { validateSettings, type ParsedSettings } from \"./settings-validator.js\";\nimport { runActiveOnReadHooks, runActiveOnWriteHooks } from \"../extensions/index.js\";\nimport { GOVERNANCE_PRESET_DEFAULTS, SETTINGS_DEFAULTS } from \"../shared/constants.js\";\nimport { readFileIfExists, writeFileAtomic } from \"../fs/fs-utils.js\";\nimport {\n DEFAULT_RUNTIME_SCHEMA_FILE_PATHS,\n ensureRuntimeSchemaFileScaffold,\n filePathForSchemaSection,\n loadRuntimeSchemaFromOptionalFiles,\n normalizeRuntimeSchemaSettings,\n} from \"../schema/runtime-schema.js\";\nimport { getSettingsPath } from \"./paths.js\";\nimport { orderObject, stableValueEquals } from \"../shared/serialization.js\";\nimport { normalizeItemTypeDefinition } from \"../item/item-type-definition.js\";\nimport { normalizeEstimateDefaultOverrides } from \"../validate/estimate-defaults.js\";\nimport {\n clearSettingsReadCache,\n collectSettingsReadCacheSignatures,\n getSettingsReadCacheEntry,\n setSettingsReadCacheEntry,\n settingsReadCacheSignaturesEqual,\n} from \"./settings-read-cache.js\";\nimport type {\n ExtensionGovernancePolicy,\n PmMaxVersionExceededMode,\n PmMaxVersionExceededModeSetting,\n} from \"../extensions/extension-types.js\";\nimport type {\n ExtensionSandboxProfile,\n ExtensionPolicyMode,\n ExtensionPolicyOverrideSettings,\n ExtensionPolicySettings,\n ExtensionTrustMode,\n GovernanceSettings,\n ItemTypeDefinition,\n PmSettings,\n GovernancePreset,\n SearchMutationRefreshPolicy,\n ValidateMetadataRequiredField,\n} from \"../../types/index.js\";\n\nconst SETTINGS_WRITE_OP = \"settings:write\";\nconst SETTINGS_PERSIST_SOURCE_SYMBOL = Symbol(\"pm.settings.persist_source\");\nconst MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH = 128;\n\ninterface SettingsPersistSourceSnapshot {\n has_source_item_type_definitions: boolean;\n source_item_type_definitions: ItemTypeDefinition[];\n has_source_schema_statuses: boolean;\n source_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n has_source_schema_fields: boolean;\n source_schema_fields: PmSettings[\"schema\"][\"fields\"];\n has_source_schema_type_workflows: boolean;\n source_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n runtime_item_type_definitions: ItemTypeDefinition[];\n runtime_schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n runtime_schema_fields: PmSettings[\"schema\"][\"fields\"];\n runtime_schema_type_workflows: NonNullable<PmSettings[\"schema\"][\"type_workflows\"]>;\n}\n\ninterface SerializeSettingsOptions {\n persist_source?: SettingsPersistSourceSnapshot;\n}\n\n/**\n * Documents the settings read metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadMetadata {\n has_explicit_item_format: boolean;\n}\n\n/**\n * Documents the settings read result payload exchanged by command, SDK, and package integrations.\n */\nexport interface SettingsReadResult {\n settings: PmSettings;\n metadata: SettingsReadMetadata;\n warnings: string[];\n}\n\nfunction resolveGovernanceKnobsFromPreset(preset: Exclude<GovernancePreset, \"custom\">): Omit<GovernanceSettings, \"preset\"> {\n return structuredClone(GOVERNANCE_PRESET_DEFAULTS[preset]);\n}\n\nfunction normalizeGovernancePreset(value: GovernancePreset | undefined): GovernancePreset {\n if (value === \"minimal\" || value === \"default\" || value === \"strict\" || value === \"custom\") {\n return value;\n }\n return SETTINGS_DEFAULTS.governance.preset;\n}\n\n// `create_default_type` and `workflow_enforcement` are orthogonal to the\n// governance preset (they tune create/update behavior, not the preset knobs),\n// so they must survive a write regardless of preset — otherwise a project on a\n// non-custom preset would silently drop them on every settings write.\nfunction withGovernanceExtras(\n base: Partial<GovernanceSettings> & { preset: GovernancePreset },\n governance: GovernanceSettings,\n): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n const createDefaultType =\n typeof governance.create_default_type === \"string\" ? governance.create_default_type.trim() : undefined;\n if (createDefaultType && createDefaultType.length > 0) {\n base.create_default_type = createDefaultType;\n }\n if (\n governance.workflow_enforcement === \"off\" ||\n governance.workflow_enforcement === \"warn\" ||\n governance.workflow_enforcement === \"strict\"\n ) {\n base.workflow_enforcement = governance.workflow_enforcement;\n }\n if (governance.require_close_reason === false) {\n base.require_close_reason = false;\n }\n return base;\n}\n\nfunction normalizeGovernanceForPersist(governance: GovernanceSettings): Partial<GovernanceSettings> & { preset: GovernancePreset } {\n if (governance.preset === \"custom\") {\n return withGovernanceExtras(\n {\n preset: \"custom\",\n ownership_enforcement: governance.ownership_enforcement,\n create_mode_default: governance.create_mode_default,\n close_validation_default: governance.close_validation_default,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n force_required_for_stale_lock: governance.force_required_for_stale_lock,\n },\n governance,\n );\n }\n return withGovernanceExtras(\n {\n preset: governance.preset,\n },\n governance,\n );\n}\n\n// Preset-orthogonal knobs that must be carried through resolve from the raw\n// governance regardless of preset (see normalizeGovernanceForPersist).\nfunction resolveGovernanceExtras(\n rawGovernance: Partial<GovernanceSettings>,\n): Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> {\n const createDefaultType =\n typeof rawGovernance.create_default_type === \"string\" ? rawGovernance.create_default_type.trim() : undefined;\n const extras: Partial<Pick<GovernanceSettings, \"create_default_type\" | \"workflow_enforcement\" | \"require_close_reason\">> =\n {};\n if (createDefaultType && createDefaultType.length > 0) {\n extras.create_default_type = createDefaultType;\n }\n if (\n rawGovernance.workflow_enforcement === \"off\" ||\n rawGovernance.workflow_enforcement === \"warn\" ||\n rawGovernance.workflow_enforcement === \"strict\"\n ) {\n extras.workflow_enforcement = rawGovernance.workflow_enforcement;\n }\n if (typeof rawGovernance.require_close_reason === \"boolean\") {\n extras.require_close_reason = rawGovernance.require_close_reason;\n }\n return extras;\n}\n\n/**\n * Implements resolve governance knobs for the public runtime surface of this module.\n */\nexport function resolveGovernanceKnobs(\n settings: Pick<PmSettings, \"governance\"> | { governance?: Partial<GovernanceSettings> },\n): GovernanceSettings {\n const rawGovernance = settings.governance ?? {};\n const preset = normalizeGovernancePreset(rawGovernance.preset);\n const extras = resolveGovernanceExtras(rawGovernance);\n if (preset === \"custom\") {\n const baseline = resolveGovernanceKnobsFromPreset(\"default\");\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ownership_enforcement: rawGovernance.ownership_enforcement ?? baseline.ownership_enforcement,\n create_mode_default: rawGovernance.create_mode_default ?? baseline.create_mode_default,\n close_validation_default: rawGovernance.close_validation_default ?? baseline.close_validation_default,\n parent_reference: rawGovernance.parent_reference ?? baseline.parent_reference,\n metadata_profile: rawGovernance.metadata_profile ?? baseline.metadata_profile,\n force_required_for_stale_lock: rawGovernance.force_required_for_stale_lock ?? baseline.force_required_for_stale_lock,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n }\n const baseline = resolveGovernanceKnobsFromPreset(preset);\n const requireCloseReason = extras.require_close_reason ?? baseline.require_close_reason;\n return {\n preset,\n ...baseline,\n ...extras,\n require_close_reason: requireCloseReason,\n };\n}\n\nfunction cloneDefaults(): PmSettings {\n return structuredClone(SETTINGS_DEFAULTS);\n}\n\nfunction normalizeSearchMutationRefreshPolicy(value: unknown): SearchMutationRefreshPolicy {\n if (value === \"cache_only\" || value === \"semantic_configured\" || value === \"semantic_auto\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.mutation_refresh_policy;\n}\n\nfunction normalizeSearchQueryExpansionEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.query_expansion.enabled;\n}\n\nfunction normalizeSearchQueryExpansionProvider(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.query_expansion.provider;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankEnabled(value: unknown): boolean {\n if (typeof value === \"boolean\") {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.enabled;\n}\n\nfunction normalizeSearchRerankModel(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.search.rerank.model;\n }\n return value.trim();\n}\n\nfunction normalizeSearchRerankTopK(value: unknown): number {\n if (typeof value === \"number\" && Number.isFinite(value) && Number.isInteger(value) && value > 0) {\n return value;\n }\n return SETTINGS_DEFAULTS.search.rerank.top_k;\n}\n\nfunction normalizeVectorStoreCollectionName(value: unknown): string {\n if (typeof value !== \"string\") {\n return SETTINGS_DEFAULTS.vector_store.collection_name;\n }\n const sanitized = value.trim().replaceAll(/[^a-zA-Z0-9_-]/g, \"_\");\n const truncated = sanitized.slice(0, MAX_VECTOR_STORE_COLLECTION_NAME_LENGTH);\n return truncated.length > 0 ? truncated : SETTINGS_DEFAULTS.vector_store.collection_name;\n}\n\nfunction buildSettingsPersistSourceSnapshot(\n parsedSettings: ParsedSettings,\n runtimeSettings: PmSettings,\n): SettingsPersistSourceSnapshot {\n const sourceSchema = parsedSettings.schema;\n const sourceStatuses = Array.isArray(sourceSchema?.statuses) ? sourceSchema?.statuses : undefined;\n const sourceFields = Array.isArray(sourceSchema?.fields) ? sourceSchema?.fields : undefined;\n const sourceTypeWorkflows = Array.isArray(sourceSchema?.type_workflows) ? sourceSchema?.type_workflows : undefined;\n return {\n has_source_item_type_definitions: Array.isArray(parsedSettings.item_types?.definitions),\n source_item_type_definitions: normalizeItemTypeDefinitions(parsedSettings.item_types?.definitions),\n has_source_schema_statuses: sourceStatuses !== undefined,\n source_schema_statuses: sourceStatuses ? structuredClone(sourceStatuses) : [],\n has_source_schema_fields: sourceFields !== undefined,\n source_schema_fields: sourceFields ? structuredClone(sourceFields) : [],\n has_source_schema_type_workflows: sourceTypeWorkflows !== undefined,\n source_schema_type_workflows: sourceTypeWorkflows ? structuredClone(sourceTypeWorkflows) : [],\n runtime_item_type_definitions: normalizeItemTypeDefinitions(runtimeSettings.item_types?.definitions),\n runtime_schema_statuses: structuredClone(runtimeSettings.schema.statuses),\n runtime_schema_fields: structuredClone(runtimeSettings.schema.fields),\n runtime_schema_type_workflows: structuredClone(runtimeSettings.schema.type_workflows ?? []),\n };\n}\n\nfunction attachSettingsPersistSourceSnapshot(settings: PmSettings, source: SettingsPersistSourceSnapshot): void {\n Object.defineProperty(settings as unknown as Record<PropertyKey, unknown>, SETTINGS_PERSIST_SOURCE_SYMBOL, {\n value: source,\n writable: true,\n configurable: true,\n enumerable: false,\n });\n}\n\nfunction getSettingsPersistSourceSnapshot(settings: PmSettings): SettingsPersistSourceSnapshot | undefined {\n const candidate = (settings as unknown as Record<PropertyKey, unknown>)[SETTINGS_PERSIST_SOURCE_SYMBOL];\n if (!candidate || typeof candidate !== \"object\") {\n return undefined;\n }\n return candidate as SettingsPersistSourceSnapshot;\n}\n\nfunction cloneSettingsReadResult(result: SettingsReadResult): SettingsReadResult {\n const clonedSettings = structuredClone(result.settings);\n const persistSource = getSettingsPersistSourceSnapshot(result.settings);\n if (persistSource) {\n attachSettingsPersistSourceSnapshot(clonedSettings, structuredClone(persistSource));\n }\n return {\n settings: clonedSettings,\n metadata: {\n has_explicit_item_format: result.metadata.has_explicit_item_format,\n },\n warnings: [...result.warnings],\n };\n}\n\nfunction resolveSettingsReadTrackedPaths(pmRoot: string, schema: PmSettings[\"schema\"], settingsPath: string): string[] {\n const normalizedSchema = normalizeRuntimeSchemaSettings(schema);\n return [\n settingsPath,\n filePathForSchemaSection(pmRoot, normalizedSchema.files.types, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.types),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.statuses, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.statuses),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.fields, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.fields),\n filePathForSchemaSection(pmRoot, normalizedSchema.files.workflows, DEFAULT_RUNTIME_SCHEMA_FILE_PATHS.workflows),\n ];\n}\n\nasync function cacheSettingsReadResult(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n const signatures = await collectSettingsReadCacheSignatures(trackedPaths);\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures,\n value: cloneSettingsReadResult(result),\n });\n}\n\nasync function cacheSettingsReadResultSafe(pmRoot: string, trackedPaths: string[], result: SettingsReadResult): Promise<void> {\n try {\n await cacheSettingsReadResult(pmRoot, trackedPaths, result);\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\ntype SettingsReadCacheSignatures = Awaited<ReturnType<typeof collectSettingsReadCacheSignatures>>;\n\nfunction findSettingsReadCacheSignature(signatures: SettingsReadCacheSignatures, targetPath: string) {\n return signatures.find((signature) => signature.path === targetPath);\n}\n\nfunction selectedSettingsReadCacheSignaturesEqual(\n before: SettingsReadCacheSignatures,\n after: SettingsReadCacheSignatures,\n targetPaths: string[],\n): boolean {\n for (const targetPath of targetPaths) {\n const beforeSignature = findSettingsReadCacheSignature(before, targetPath);\n const afterSignature = findSettingsReadCacheSignature(after, targetPath);\n if (\n !beforeSignature ||\n !afterSignature ||\n !settingsReadCacheSignaturesEqual([beforeSignature], [afterSignature])\n ) {\n return false;\n }\n }\n return true;\n}\n\nasync function cacheSettingsReadResultIfStable(\n pmRoot: string,\n trackedPaths: string[],\n result: SettingsReadResult,\n stableSignatures: SettingsReadCacheSignatures,\n stablePaths: string[],\n): Promise<void> {\n try {\n const currentSignatures = await collectSettingsReadCacheSignatures(trackedPaths);\n if (!selectedSettingsReadCacheSignaturesEqual(stableSignatures, currentSignatures, stablePaths)) {\n clearSettingsReadCache(pmRoot);\n return;\n }\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: currentSignatures,\n value: cloneSettingsReadResult(result),\n });\n } catch {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nfunction resolvePersistedFileBackedSchemaSections(\n settings: PmSettings,\n source: SettingsPersistSourceSnapshot | undefined,\n): {\n item_type_definitions: ItemTypeDefinition[];\n schema_statuses: PmSettings[\"schema\"][\"statuses\"];\n schema_fields: PmSettings[\"schema\"][\"fields\"];\n schema_type_workflows: PmSettings[\"schema\"][\"type_workflows\"];\n} {\n const normalizedSchema = normalizeRuntimeSchemaSettings(settings.schema);\n const currentItemTypeDefinitions = normalizeItemTypeDefinitions(settings.item_types?.definitions);\n if (!source) {\n return {\n item_type_definitions: currentItemTypeDefinitions,\n schema_statuses: normalizedSchema.statuses,\n schema_fields: normalizedSchema.fields,\n schema_type_workflows: normalizedSchema.type_workflows,\n };\n }\n\n const currentTypeWorkflows = normalizedSchema.type_workflows ?? [];\n const itemTypeDefinitionsUnchanged = stableValueEquals(currentItemTypeDefinitions, source.runtime_item_type_definitions);\n const schemaStatusesUnchanged = stableValueEquals(normalizedSchema.statuses, source.runtime_schema_statuses);\n const schemaFieldsUnchanged = stableValueEquals(normalizedSchema.fields, source.runtime_schema_fields);\n const schemaTypeWorkflowsUnchanged = stableValueEquals(currentTypeWorkflows, source.runtime_schema_type_workflows);\n\n return {\n item_type_definitions: itemTypeDefinitionsUnchanged\n ? source.has_source_item_type_definitions\n ? normalizeItemTypeDefinitions(source.source_item_type_definitions)\n : []\n : currentItemTypeDefinitions,\n schema_statuses: schemaStatusesUnchanged\n ? source.has_source_schema_statuses\n ? structuredClone(source.source_schema_statuses)\n : []\n : normalizedSchema.statuses,\n schema_fields: schemaFieldsUnchanged\n ? source.has_source_schema_fields\n ? structuredClone(source.source_schema_fields)\n : []\n : normalizedSchema.fields,\n schema_type_workflows: schemaTypeWorkflowsUnchanged\n ? source.has_source_schema_type_workflows\n ? structuredClone(source.source_schema_type_workflows)\n : undefined\n : normalizedSchema.type_workflows,\n };\n}\n\nfunction buildFallbackSettingsReadResult(warning?: string): SettingsReadResult {\n return {\n settings: cloneDefaults(),\n metadata: {\n has_explicit_item_format: false,\n },\n warnings: warning ? [warning] : [],\n };\n}\n\nfunction hasExplicitItemFormat(raw: unknown): boolean {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return false;\n }\n const itemFormat = (raw as Record<string, unknown>).item_format;\n return itemFormat === \"toon\" || itemFormat === \"json_markdown\";\n}\n\nfunction normalizeStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim()).filter((value) => value.length > 0))].sort((left, right) =>\n left.localeCompare(right),\n );\n}\n\nfunction normalizeAgentGuidanceSettings(\n value: Partial<PmSettings[\"agent_guidance\"]> | undefined,\n): PmSettings[\"agent_guidance\"] {\n const defaults = SETTINGS_DEFAULTS.agent_guidance;\n const templateVersion = value?.template_version;\n return {\n prompt_completed: value?.prompt_completed === true,\n declined: value?.declined === true,\n declined_at: typeof value?.declined_at === \"string\" ? value.declined_at : defaults.declined_at,\n template_version:\n typeof templateVersion === \"number\" && Number.isInteger(templateVersion) && templateVersion > 0\n ? templateVersion\n : defaults.template_version,\n last_checked_files: normalizeStringList(value?.last_checked_files ?? defaults.last_checked_files),\n };\n}\n\nfunction normalizeLowerStringList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction normalizeExtensionPolicyMode(value: ExtensionPolicyMode | undefined): ExtensionPolicyMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.mode;\n}\n\nfunction normalizeExtensionTrustMode(value: ExtensionTrustMode | undefined): ExtensionTrustMode {\n if (value === \"off\" || value === \"warn\" || value === \"enforce\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.trust_mode;\n}\n\nfunction normalizeExtensionSandboxProfile(value: ExtensionSandboxProfile | undefined): ExtensionSandboxProfile {\n if (value === \"none\" || value === \"restricted\" || value === \"strict\") {\n return value;\n }\n return SETTINGS_DEFAULTS.extensions.policy.default_sandbox_profile;\n}\n\nfunction normalizeExtensionPolicyOverride(\n override: ExtensionPolicyOverrideSettings,\n): ExtensionPolicyOverrideSettings | null {\n const name = override.name.trim().toLowerCase();\n if (name.length === 0) {\n return null;\n }\n const normalized: ExtensionPolicyOverrideSettings = {\n name,\n };\n if (override.disabled === true) {\n normalized.disabled = true;\n }\n if (override.require_trusted === true) {\n normalized.require_trusted = true;\n }\n if (override.require_provenance === true) {\n normalized.require_provenance = true;\n }\n if (override.sandbox_profile !== undefined) {\n normalized.sandbox_profile = normalizeExtensionSandboxProfile(override.sandbox_profile);\n }\n const allowedCapabilities = normalizeLowerStringList(override.allowed_capabilities);\n const blockedCapabilities = normalizeLowerStringList(override.blocked_capabilities);\n const allowedSurfaces = normalizeLowerStringList(override.allowed_surfaces);\n const blockedSurfaces = normalizeLowerStringList(override.blocked_surfaces);\n const allowedCommands = normalizeLowerStringList(override.allowed_commands);\n const blockedCommands = normalizeLowerStringList(override.blocked_commands);\n const allowedActions = normalizeLowerStringList(override.allowed_actions);\n const blockedActions = normalizeLowerStringList(override.blocked_actions);\n const allowedServices = normalizeLowerStringList(override.allowed_services);\n const blockedServices = normalizeLowerStringList(override.blocked_services);\n if (allowedCapabilities.length > 0) {\n normalized.allowed_capabilities = allowedCapabilities;\n }\n if (blockedCapabilities.length > 0) {\n normalized.blocked_capabilities = blockedCapabilities;\n }\n if (allowedSurfaces.length > 0) {\n normalized.allowed_surfaces = allowedSurfaces;\n }\n if (blockedSurfaces.length > 0) {\n normalized.blocked_surfaces = blockedSurfaces;\n }\n if (allowedCommands.length > 0) {\n normalized.allowed_commands = allowedCommands;\n }\n if (blockedCommands.length > 0) {\n normalized.blocked_commands = blockedCommands;\n }\n if (allowedActions.length > 0) {\n normalized.allowed_actions = allowedActions;\n }\n if (blockedActions.length > 0) {\n normalized.blocked_actions = blockedActions;\n }\n if (allowedServices.length > 0) {\n normalized.allowed_services = allowedServices;\n }\n if (blockedServices.length > 0) {\n normalized.blocked_services = blockedServices;\n }\n return normalized;\n}\n\nfunction normalizeExtensionPolicyOverrides(\n overrides: ExtensionPolicyOverrideSettings[] | undefined,\n): ExtensionPolicyOverrideSettings[] {\n const dedupedByName = new Map<string, ExtensionPolicyOverrideSettings>();\n for (const override of overrides ?? []) {\n const normalized = normalizeExtensionPolicyOverride(override);\n if (!normalized) {\n continue;\n }\n dedupedByName.set(normalized.name, normalized);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction normalizePmMaxVersionExceededModeValue(value: unknown): PmMaxVersionExceededMode | undefined {\n return value === \"block\" || value === \"warn\" ? value : undefined;\n}\n\n/**\n * Preserve a configured `pm_max_version_exceeded_mode` (string mode or per-layer\n * override object) through settings normalization. Unset/invalid values are\n * omitted so existing settings.json files round-trip byte-identically and the\n * loader applies its safe default (\"block\").\n */\nfunction normalizePmMaxVersionExceededModeSetting(\n value: PmMaxVersionExceededModeSetting | undefined,\n): PmMaxVersionExceededModeSetting | undefined {\n if (typeof value === \"string\") {\n return normalizePmMaxVersionExceededModeValue(value);\n }\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n const global = normalizePmMaxVersionExceededModeValue(value.global);\n const project = normalizePmMaxVersionExceededModeValue(value.project);\n if (global === undefined && project === undefined) {\n return undefined;\n }\n return {\n ...(global !== undefined ? { global } : {}),\n ...(project !== undefined ? { project } : {}),\n };\n }\n return undefined;\n}\n\nfunction normalizeExtensionPolicySettings(\n policy: Partial<ExtensionGovernancePolicy> | undefined,\n): ExtensionGovernancePolicy {\n const defaults = SETTINGS_DEFAULTS.extensions.policy;\n const pmMaxVersionExceededMode = normalizePmMaxVersionExceededModeSetting(policy?.pm_max_version_exceeded_mode);\n return {\n mode: normalizeExtensionPolicyMode(policy?.mode),\n trust_mode: normalizeExtensionTrustMode(policy?.trust_mode),\n ...(pmMaxVersionExceededMode !== undefined ? { pm_max_version_exceeded_mode: pmMaxVersionExceededMode } : {}),\n require_provenance: policy?.require_provenance === true,\n trusted_extensions: normalizeLowerStringList(policy?.trusted_extensions ?? defaults.trusted_extensions),\n default_sandbox_profile: normalizeExtensionSandboxProfile(policy?.default_sandbox_profile),\n allowed_extensions: normalizeLowerStringList(policy?.allowed_extensions ?? defaults.allowed_extensions),\n blocked_extensions: normalizeLowerStringList(policy?.blocked_extensions ?? defaults.blocked_extensions),\n allowed_capabilities: normalizeLowerStringList(policy?.allowed_capabilities ?? defaults.allowed_capabilities),\n blocked_capabilities: normalizeLowerStringList(policy?.blocked_capabilities ?? defaults.blocked_capabilities),\n allowed_surfaces: normalizeLowerStringList(policy?.allowed_surfaces ?? defaults.allowed_surfaces),\n blocked_surfaces: normalizeLowerStringList(policy?.blocked_surfaces ?? defaults.blocked_surfaces),\n allowed_commands: normalizeLowerStringList(policy?.allowed_commands ?? defaults.allowed_commands),\n blocked_commands: normalizeLowerStringList(policy?.blocked_commands ?? defaults.blocked_commands),\n allowed_actions: normalizeLowerStringList(policy?.allowed_actions ?? defaults.allowed_actions),\n blocked_actions: normalizeLowerStringList(policy?.blocked_actions ?? defaults.blocked_actions),\n allowed_services: normalizeLowerStringList(policy?.allowed_services ?? defaults.allowed_services),\n blocked_services: normalizeLowerStringList(policy?.blocked_services ?? defaults.blocked_services),\n extension_overrides: normalizeExtensionPolicyOverrides(policy?.extension_overrides ?? defaults.extension_overrides),\n };\n}\n\nfunction normalizeValidationMetadataRequiredFields(values: string[] | undefined): ValidateMetadataRequiredField[] {\n const normalized = [...new Set((values ?? []).map((value) => value.trim().toLowerCase().replaceAll(\"-\", \"_\")))]\n .filter((value) => value.length > 0)\n .sort((left, right) => left.localeCompare(right));\n return normalized.filter((value): value is ValidateMetadataRequiredField =>\n [\n \"author\",\n \"acceptance_criteria\",\n \"estimated_minutes\",\n \"close_reason\",\n \"reviewer\",\n \"risk\",\n \"confidence\",\n \"sprint\",\n \"release\",\n ].includes(value),\n );\n}\n\nfunction normalizeValidationPatternList(values: string[] | undefined): string[] {\n return [...new Set((values ?? []).map((value) => value.trim().toLowerCase()).filter((value) => value.length > 0))].sort(\n (left, right) => left.localeCompare(right),\n );\n}\n\nfunction valueOrDefault<T>(value: T | undefined, fallback: T): T {\n return value === undefined ? fallback : value;\n}\n\nfunction recordOrEmpty(value: unknown): Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : {};\n}\n\nfunction arrayOrEmpty<T>(value: unknown): T[] {\n return Array.isArray(value) ? (value as T[]) : [];\n}\n\n/**\n * Implements normalize item type definitions for the public runtime surface of this module.\n */\nexport function normalizeItemTypeDefinitions(definitions: ItemTypeDefinition[] | undefined): ItemTypeDefinition[] {\n const normalized = (definitions ?? [])\n .map((definition) => normalizeItemTypeDefinition(definition))\n .filter((definition): definition is ItemTypeDefinition => definition !== null);\n const dedupedByName = new Map<string, ItemTypeDefinition>();\n for (const definition of normalized) {\n dedupedByName.set(definition.name.toLowerCase(), definition);\n }\n return [...dedupedByName.values()].sort((left, right) => left.name.localeCompare(right.name));\n}\n\nfunction mergeSettings(settings: ParsedSettings): PmSettings {\n const defaults = cloneDefaults();\n const governance = resolveGovernanceKnobs({\n governance: settings.governance ?? { preset: \"default\" },\n });\n return {\n ...defaults,\n ...settings,\n item_format: settings.item_format === \"json_markdown\" ? \"toon\" : (settings.item_format ?? defaults.item_format),\n locks: { ...defaults.locks, ...settings.locks },\n checkpoints: { ...defaults.checkpoints, ...settings.checkpoints },\n output: { ...defaults.output, ...settings.output },\n history: {\n ...defaults.history,\n ...settings.history,\n compact_policy: {\n ...defaults.history.compact_policy,\n ...settings.history?.compact_policy,\n },\n },\n validation: {\n ...defaults.validation,\n ...settings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(settings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_stale_blocker_reason_patterns ??\n defaults.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n defaults.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_resolution_patterns ??\n defaults.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n settings.validation?.lifecycle_closure_like_actual_result_patterns ??\n defaults.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(settings.validation?.estimate_defaults_by_type),\n },\n governance,\n workflow: {\n definition_of_done: [...(settings.workflow?.definition_of_done ?? defaults.workflow.definition_of_done)],\n },\n testing: {\n record_results_to_items: settings.testing?.record_results_to_items ?? defaults.testing.record_results_to_items,\n },\n telemetry: {\n enabled: settings.telemetry?.enabled ?? defaults.telemetry.enabled,\n first_run_prompt_completed:\n settings.telemetry?.first_run_prompt_completed ?? defaults.telemetry.first_run_prompt_completed,\n capture_level: settings.telemetry?.capture_level ?? defaults.telemetry.capture_level,\n endpoint: settings.telemetry?.endpoint ?? defaults.telemetry.endpoint,\n installation_id: settings.telemetry?.installation_id ?? defaults.telemetry.installation_id,\n retention_days: settings.telemetry?.retention_days ?? defaults.telemetry.retention_days,\n },\n agent_guidance: normalizeAgentGuidanceSettings(settings.agent_guidance ?? defaults.agent_guidance),\n item_types: {\n definitions: normalizeItemTypeDefinitions(settings.item_types?.definitions),\n },\n schema: normalizeRuntimeSchemaSettings(settings.schema ?? defaults.schema),\n context: {\n default_depth: settings.context?.default_depth ?? defaults.context.default_depth,\n activity_limit: settings.context?.activity_limit ?? defaults.context.activity_limit,\n stale_threshold_days: settings.context?.stale_threshold_days ?? defaults.context.stale_threshold_days,\n sections: {\n ...defaults.context.sections,\n ...settings.context?.sections,\n },\n },\n extensions: {\n enabled: [...settings.extensions.enabled],\n disabled: [...settings.extensions.disabled],\n policy: normalizeExtensionPolicySettings(settings.extensions.policy ?? defaults.extensions.policy),\n },\n search: {\n ...defaults.search,\n ...settings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(settings.search?.mutation_refresh_policy),\n query_expansion: {\n ...defaults.search.query_expansion,\n ...settings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(settings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(settings.search?.query_expansion?.provider),\n },\n rerank: {\n ...defaults.search.rerank,\n ...settings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(settings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(settings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(settings.search?.rerank?.top_k),\n },\n },\n providers: {\n openai: { ...defaults.providers.openai, ...settings.providers.openai },\n ollama: { ...defaults.providers.ollama, ...settings.providers.ollama },\n },\n vector_store: {\n adapter: settings.vector_store.adapter ?? defaults.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(settings.vector_store.collection_name),\n qdrant: { ...defaults.vector_store.qdrant, ...settings.vector_store.qdrant },\n lancedb: { ...defaults.vector_store.lancedb, ...settings.vector_store.lancedb },\n },\n };\n}\n\n/**\n * Implements serialize settings for the public runtime surface of this module.\n */\nexport function serializeSettings(settings: PmSettings, options: SerializeSettingsOptions = {}): string {\n const baseSettings = {\n ...settings,\n locks: valueOrDefault(settings.locks, SETTINGS_DEFAULTS.locks),\n checkpoints: valueOrDefault(settings.checkpoints, SETTINGS_DEFAULTS.checkpoints),\n output: valueOrDefault(settings.output, SETTINGS_DEFAULTS.output),\n history: valueOrDefault(settings.history, SETTINGS_DEFAULTS.history),\n validation: valueOrDefault(settings.validation, SETTINGS_DEFAULTS.validation),\n workflow: valueOrDefault(settings.workflow, SETTINGS_DEFAULTS.workflow),\n testing: valueOrDefault(settings.testing, SETTINGS_DEFAULTS.testing),\n telemetry: valueOrDefault(settings.telemetry, SETTINGS_DEFAULTS.telemetry),\n agent_guidance: valueOrDefault(settings.agent_guidance, SETTINGS_DEFAULTS.agent_guidance),\n item_types: valueOrDefault(settings.item_types, SETTINGS_DEFAULTS.item_types),\n schema: valueOrDefault(settings.schema, SETTINGS_DEFAULTS.schema),\n context: valueOrDefault(settings.context, SETTINGS_DEFAULTS.context),\n extensions: valueOrDefault(settings.extensions, SETTINGS_DEFAULTS.extensions),\n search: valueOrDefault(settings.search, SETTINGS_DEFAULTS.search),\n providers: valueOrDefault(settings.providers, SETTINGS_DEFAULTS.providers),\n vector_store: valueOrDefault(settings.vector_store, SETTINGS_DEFAULTS.vector_store),\n } as PmSettings;\n const governance = resolveGovernanceKnobs(baseSettings);\n const normalizedSchema = normalizeRuntimeSchemaSettings(baseSettings.schema);\n const persistedFileBackedSections = resolvePersistedFileBackedSchemaSections(baseSettings, options.persist_source);\n const normalizedSettings: PmSettings = {\n ...baseSettings,\n item_format: \"toon\",\n validation: {\n ...baseSettings.validation,\n parent_reference: governance.parent_reference,\n metadata_profile: governance.metadata_profile,\n metadata_required_fields: normalizeValidationMetadataRequiredFields(baseSettings.validation?.metadata_required_fields),\n lifecycle_stale_blocker_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_stale_blocker_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_stale_blocker_reason_patterns,\n ),\n lifecycle_closure_like_blocked_reason_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_blocked_reason_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_blocked_reason_patterns,\n ),\n lifecycle_closure_like_resolution_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_resolution_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_resolution_patterns,\n ),\n lifecycle_closure_like_actual_result_patterns: normalizeValidationPatternList(\n baseSettings.validation?.lifecycle_closure_like_actual_result_patterns ??\n SETTINGS_DEFAULTS.validation.lifecycle_closure_like_actual_result_patterns,\n ),\n estimate_defaults_by_type: normalizeEstimateDefaultOverrides(baseSettings.validation?.estimate_defaults_by_type),\n },\n governance,\n agent_guidance: normalizeAgentGuidanceSettings(baseSettings.agent_guidance),\n item_types: {\n definitions: persistedFileBackedSections.item_type_definitions,\n },\n schema: {\n ...normalizedSchema,\n statuses: persistedFileBackedSections.schema_statuses,\n fields: persistedFileBackedSections.schema_fields,\n type_workflows: persistedFileBackedSections.schema_type_workflows,\n },\n search: {\n ...SETTINGS_DEFAULTS.search,\n ...baseSettings.search,\n mutation_refresh_policy: normalizeSearchMutationRefreshPolicy(baseSettings.search?.mutation_refresh_policy),\n query_expansion: {\n ...SETTINGS_DEFAULTS.search.query_expansion,\n ...baseSettings.search?.query_expansion,\n enabled: normalizeSearchQueryExpansionEnabled(baseSettings.search?.query_expansion?.enabled),\n provider: normalizeSearchQueryExpansionProvider(baseSettings.search?.query_expansion?.provider),\n },\n rerank: {\n ...SETTINGS_DEFAULTS.search.rerank,\n ...baseSettings.search?.rerank,\n enabled: normalizeSearchRerankEnabled(baseSettings.search?.rerank?.enabled),\n model: normalizeSearchRerankModel(baseSettings.search?.rerank?.model),\n top_k: normalizeSearchRerankTopK(baseSettings.search?.rerank?.top_k),\n },\n },\n context: {\n default_depth: baseSettings.context?.default_depth ?? SETTINGS_DEFAULTS.context.default_depth,\n activity_limit: baseSettings.context?.activity_limit ?? SETTINGS_DEFAULTS.context.activity_limit,\n stale_threshold_days: baseSettings.context?.stale_threshold_days ?? SETTINGS_DEFAULTS.context.stale_threshold_days,\n sections: {\n ...SETTINGS_DEFAULTS.context.sections,\n ...baseSettings.context?.sections,\n },\n },\n extensions: {\n enabled: normalizeStringList(baseSettings.extensions?.enabled),\n disabled: normalizeStringList(baseSettings.extensions?.disabled),\n policy: normalizeExtensionPolicySettings(baseSettings.extensions?.policy),\n },\n vector_store: {\n ...baseSettings.vector_store,\n adapter: baseSettings.vector_store?.adapter ?? SETTINGS_DEFAULTS.vector_store.adapter,\n collection_name: normalizeVectorStoreCollectionName(baseSettings.vector_store?.collection_name),\n qdrant: { ...baseSettings.vector_store?.qdrant },\n lancedb: { ...baseSettings.vector_store?.lancedb },\n },\n };\n const ordered = orderObject(\n {\n ...(normalizedSettings as unknown as Record<string, unknown>),\n governance: normalizeGovernanceForPersist(governance) as unknown,\n },\n [\n \"version\",\n \"id_prefix\",\n \"author_default\",\n \"item_format\",\n \"locks\",\n \"checkpoints\",\n \"output\",\n \"history\",\n \"validation\",\n \"governance\",\n \"workflow\",\n \"testing\",\n \"telemetry\",\n \"agent_guidance\",\n \"item_types\",\n \"schema\",\n \"context\",\n \"extensions\",\n \"search\",\n \"providers\",\n \"vector_store\",\n ],\n );\n\n ordered.locks = orderObject(ordered.locks as Record<string, unknown>, [\"ttl_seconds\"]);\n ordered.checkpoints = orderObject(ordered.checkpoints as Record<string, unknown>, [\"retention_days\"]);\n ordered.output = orderObject(ordered.output as Record<string, unknown>, [\"default_format\"]);\n // compact_policy's own keys are emitted in deterministic order by mergeSettings\n // (it rebuilds the object as {enabled, max_entries, trigger}); only the top-level\n // history keys need explicit ordering here.\n ordered.history = orderObject(ordered.history as Record<string, unknown>, [\"missing_stream\", \"compact_policy\"]);\n ordered.validation = orderObject(ordered.validation as Record<string, unknown>, [\n \"sprint_release_format\",\n \"parent_reference\",\n \"metadata_profile\",\n \"metadata_required_fields\",\n \"lifecycle_stale_blocker_reason_patterns\",\n \"lifecycle_closure_like_blocked_reason_patterns\",\n \"lifecycle_closure_like_resolution_patterns\",\n \"lifecycle_closure_like_actual_result_patterns\",\n \"estimate_defaults_by_type\",\n ]);\n ordered.governance = orderObject(ordered.governance as Record<string, unknown>, [\n \"preset\",\n \"ownership_enforcement\",\n \"create_mode_default\",\n \"close_validation_default\",\n \"require_close_reason\",\n \"parent_reference\",\n \"metadata_profile\",\n \"force_required_for_stale_lock\",\n \"create_default_type\",\n \"workflow_enforcement\",\n ]);\n ordered.workflow = orderObject(ordered.workflow as Record<string, unknown>, [\"definition_of_done\"]);\n ordered.testing = orderObject(ordered.testing as Record<string, unknown>, [\"record_results_to_items\"]);\n ordered.telemetry = orderObject(ordered.telemetry as Record<string, unknown>, [\n \"enabled\",\n \"first_run_prompt_completed\",\n \"capture_level\",\n \"endpoint\",\n \"installation_id\",\n \"retention_days\",\n ]);\n ordered.agent_guidance = orderObject(ordered.agent_guidance as Record<string, unknown>, [\n \"prompt_completed\",\n \"declined\",\n \"declined_at\",\n \"template_version\",\n \"last_checked_files\",\n ]);\n ordered.item_types = orderObject(ordered.item_types as Record<string, unknown>, [\"definitions\"]);\n ordered.schema = orderObject(ordered.schema as Record<string, unknown>, [\n \"version\",\n \"files\",\n \"statuses\",\n \"fields\",\n \"workflow\",\n \"type_workflows\",\n \"unknown_field_policy\",\n ]);\n (ordered.schema as Record<string, unknown>).files = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).files),\n [\"types\", \"statuses\", \"fields\", \"workflows\"],\n );\n (ordered.schema as Record<string, unknown>).workflow = orderObject(\n recordOrEmpty((ordered.schema as Record<string, unknown>).workflow),\n [\"draft_status\", \"open_status\", \"in_progress_status\", \"blocked_status\", \"close_status\", \"canceled_status\"],\n );\n ordered.context = orderObject(ordered.context as Record<string, unknown>, [\n \"default_depth\",\n \"activity_limit\",\n \"stale_threshold_days\",\n \"sections\",\n ]);\n (ordered.context as Record<string, unknown>).sections = orderObject(\n recordOrEmpty((ordered.context as Record<string, unknown>).sections),\n [\"hierarchy\", \"activity\", \"progress\", \"blockers\", \"files\", \"workload\", \"staleness\", \"tests\"],\n );\n ordered.extensions = orderObject(ordered.extensions as Record<string, unknown>, [\"enabled\", \"disabled\", \"policy\"]);\n (ordered.extensions as Record<string, unknown>).policy = orderObject(\n recordOrEmpty((ordered.extensions as Record<string, unknown>).policy),\n [\n \"mode\",\n \"trust_mode\",\n \"pm_max_version_exceeded_mode\",\n \"require_provenance\",\n \"trusted_extensions\",\n \"default_sandbox_profile\",\n \"allowed_extensions\",\n \"blocked_extensions\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n \"extension_overrides\",\n ],\n );\n ((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides = (\n arrayOrEmpty(((ordered.extensions as Record<string, unknown>).policy as Record<string, unknown>).extension_overrides)\n ).map((entry) =>\n orderObject(recordOrEmpty(entry), [\n \"name\",\n \"disabled\",\n \"require_trusted\",\n \"require_provenance\",\n \"sandbox_profile\",\n \"allowed_capabilities\",\n \"blocked_capabilities\",\n \"allowed_surfaces\",\n \"blocked_surfaces\",\n \"allowed_commands\",\n \"blocked_commands\",\n \"allowed_actions\",\n \"blocked_actions\",\n \"allowed_services\",\n \"blocked_services\",\n ]),\n );\n ordered.search = orderObject(ordered.search as Record<string, unknown>, [\n \"score_threshold\",\n \"hybrid_semantic_weight\",\n \"max_results\",\n \"embedding_model\",\n \"embedding_corpus_max_characters\",\n \"embedding_batch_size\",\n \"embedding_timeout_ms\",\n \"scanner_max_batch_retries\",\n \"provider\",\n \"mutation_refresh_policy\",\n \"query_expansion\",\n \"rerank\",\n ]);\n (ordered.search as Record<string, unknown>).query_expansion = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).query_expansion),\n [\"enabled\", \"provider\"],\n );\n (ordered.search as Record<string, unknown>).rerank = orderObject(\n recordOrEmpty((ordered.search as Record<string, unknown>).rerank),\n [\"enabled\", \"model\", \"top_k\"],\n );\n ordered.providers = orderObject(ordered.providers as Record<string, unknown>, [\"openai\", \"ollama\"]);\n (ordered.providers as Record<string, unknown>).openai = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).openai),\n [\"base_url\", \"api_key\", \"model\"],\n );\n (ordered.providers as Record<string, unknown>).ollama = orderObject(\n recordOrEmpty((ordered.providers as Record<string, unknown>).ollama),\n [\"base_url\", \"model\"],\n );\n ordered.vector_store = orderObject(ordered.vector_store as Record<string, unknown>, [\n \"adapter\",\n \"collection_name\",\n \"qdrant\",\n \"lancedb\",\n ]);\n (ordered.vector_store as Record<string, unknown>).qdrant = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).qdrant),\n [\"url\", \"api_key\"],\n );\n (ordered.vector_store as Record<string, unknown>).lancedb = orderObject(\n recordOrEmpty((ordered.vector_store as Record<string, unknown>).lancedb),\n [\"path\"],\n );\n\n return `${JSON.stringify(ordered, null, 2)}\\n`;\n}\n\n/**\n * Implements read settings with metadata for the public runtime surface of this module.\n */\nexport async function readSettingsWithMetadata(pmRoot: string): Promise<SettingsReadResult> {\n const settingsPath = getSettingsPath(pmRoot);\n let trackedPathsForFailure: string[] = [settingsPath];\n await runActiveOnReadHooks({\n path: settingsPath,\n scope: \"project\",\n });\n\n const cachedResult = getSettingsReadCacheEntry<SettingsReadResult>(pmRoot);\n if (cachedResult) {\n const currentSignatures = await collectSettingsReadCacheSignatures(cachedResult.tracked_paths);\n if (settingsReadCacheSignaturesEqual(currentSignatures, cachedResult.signatures)) {\n return cloneSettingsReadResult(cachedResult.value);\n }\n }\n\n const settingsOnlySignatures = await collectSettingsReadCacheSignatures([settingsPath]);\n const raw = await readFileIfExists(settingsPath);\n if (raw === null) {\n const fallback = buildFallbackSettingsReadResult();\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsOnlySignatures, [settingsPath]);\n return fallback;\n }\n\n const settingsSignaturesAfterRead = await collectSettingsReadCacheSignatures([settingsPath]);\n if (!settingsReadCacheSignaturesEqual(settingsOnlySignatures, settingsSignaturesAfterRead)) {\n clearSettingsReadCache(pmRoot);\n return readSettingsWithMetadata(pmRoot);\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_json\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n const validated = validateSettings(parsed);\n if (!validated.success) {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_invalid_schema\");\n await cacheSettingsReadResultIfStable(pmRoot, [settingsPath], fallback, settingsSignaturesAfterRead, [settingsPath]);\n return fallback;\n }\n\n try {\n const mergedSettings = mergeSettings(validated.data);\n const trackedPaths = resolveSettingsReadTrackedPaths(pmRoot, mergedSettings.schema, settingsPath);\n trackedPathsForFailure = trackedPaths;\n const signaturesBeforeSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const schemaScaffold = await ensureRuntimeSchemaFileScaffold(pmRoot, mergedSettings.schema);\n const loadedSchemaSections = await loadRuntimeSchemaFromOptionalFiles(pmRoot, mergedSettings.schema);\n const signaturesAfterSchemaLoad = await collectSettingsReadCacheSignatures(trackedPaths);\n const settings: PmSettings = {\n ...mergedSettings,\n item_types: {\n definitions: normalizeItemTypeDefinitions([\n ...mergedSettings.item_types.definitions,\n ...arrayOrEmpty<ItemTypeDefinition>(loadedSchemaSections.type_definitions_from_file),\n ]),\n },\n schema: loadedSchemaSections.schema,\n };\n attachSettingsPersistSourceSnapshot(settings, buildSettingsPersistSourceSnapshot(validated.data, settings));\n const result: SettingsReadResult = {\n settings,\n metadata: {\n has_explicit_item_format: hasExplicitItemFormat(parsed),\n },\n warnings: [\n ...(validated.data.item_format === \"json_markdown\"\n ? [\"settings_item_format_legacy_json_markdown_coerced_to_toon\"]\n : []),\n ...schemaScaffold.created_paths.map((createdPath) => `runtime_schema_bootstrap_created:${createdPath}`),\n ...loadedSchemaSections.warnings,\n ],\n };\n if (schemaScaffold.created_paths.length === 0) {\n if (!settingsReadCacheSignaturesEqual(signaturesBeforeSchemaLoad, signaturesAfterSchemaLoad)) {\n clearSettingsReadCache(pmRoot);\n } else {\n setSettingsReadCacheEntry(pmRoot, {\n tracked_paths: trackedPaths,\n signatures: signaturesAfterSchemaLoad,\n value: cloneSettingsReadResult(result),\n });\n }\n } else {\n // Bootstrap warnings are intentionally one-shot and should not be replayed from cache.\n clearSettingsReadCache(pmRoot);\n }\n return result;\n } catch {\n const fallback = buildFallbackSettingsReadResult(\"settings_read_merge_failed\");\n await cacheSettingsReadResultSafe(pmRoot, trackedPathsForFailure, fallback);\n return fallback;\n }\n}\n\n/**\n * Implements read settings for the public runtime surface of this module.\n */\nexport async function readSettings(pmRoot: string): Promise<PmSettings> {\n return (await readSettingsWithMetadata(pmRoot)).settings;\n}\n\n/**\n * Implements write settings for the public runtime surface of this module.\n */\nexport async function writeSettings(pmRoot: string, settings: PmSettings, op = SETTINGS_WRITE_OP): Promise<void> {\n const settingsPath = getSettingsPath(pmRoot);\n await writeFileAtomic(\n settingsPath,\n serializeSettings(settings, {\n persist_source: getSettingsPersistSourceSnapshot(settings),\n }),\n );\n try {\n await runActiveOnWriteHooks({\n path: settingsPath,\n scope: \"project\",\n op,\n });\n } finally {\n clearSettingsReadCache(pmRoot);\n }\n}\n\nexport const settingsStoreTestOnly = {\n hasExplicitItemFormat,\n buildSettingsPersistSourceSnapshot,\n cacheSettingsReadResultIfStable,\n cacheSettingsReadResultSafe,\n mergeSettings,\n normalizeExtensionPolicySettings,\n normalizeExtensionPolicyOverride,\n normalizeExtensionPolicyOverrides,\n normalizeExtensionPolicyMode,\n normalizePmMaxVersionExceededModeSetting,\n normalizeExtensionSandboxProfile,\n normalizeExtensionTrustMode,\n normalizeLowerStringList,\n normalizeStringList,\n valueOrDefault,\n arrayOrEmpty,\n normalizeValidationPatternList,\n normalizeValidationMetadataRequiredFields,\n resolveSettingsReadTrackedPaths,\n resolvePersistedFileBackedSchemaSections,\n selectedSettingsReadCacheSignaturesEqual,\n};\n"],"names":[],"mappings":"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","debugId":"76965ca9-e890-5aa2-a7ca-22f8d179dd5c"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Captures consent-aware telemetry and observability events for Observability.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
7
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1a034a5f-bb30-5cea-8926-4d11eb3b9c5f")}catch(e){}}();
|
|
8
8
|
import { EXIT_CODE } from "../shared/constants.js";
|
|
9
9
|
const SETUP_ROOT_COMMANDS = new Set(["init", "config", "completion", "completion-statuses", "completion-tags", "completion-types"]);
|
|
10
10
|
const QUERY_ROOT_COMMANDS = new Set([
|
|
@@ -60,6 +60,46 @@ function normalizeErrorCode(errorCode) {
|
|
|
60
60
|
const normalized = errorCode?.trim().toLowerCase();
|
|
61
61
|
return normalized && normalized.length > 0 ? normalized : undefined;
|
|
62
62
|
}
|
|
63
|
+
const TELEMETRY_ERROR_MESSAGE_CLASSIFIERS = [
|
|
64
|
+
{ code: "unknown_command", matches: (message) => message.includes("unknown command") },
|
|
65
|
+
{ code: "unknown_option", matches: (message) => message.includes("unknown option") },
|
|
66
|
+
{
|
|
67
|
+
code: "missing_required_option",
|
|
68
|
+
matches: (message) => message.includes("missing required options") || message.includes("missing required option"),
|
|
69
|
+
},
|
|
70
|
+
{ code: "missing_required_argument", matches: (message) => message.includes("missing required argument") },
|
|
71
|
+
{ code: "no_update_fields", matches: (message) => message.includes("no update flags provided") },
|
|
72
|
+
{
|
|
73
|
+
code: "ownership_conflict",
|
|
74
|
+
matches: (message) => message.includes("is assigned to") && message.includes("use --force"),
|
|
75
|
+
},
|
|
76
|
+
{ code: "lock_conflict", matches: (message) => message.includes("is locked") },
|
|
77
|
+
{
|
|
78
|
+
code: "terminal_state_conflict",
|
|
79
|
+
matches: (message) => message.includes("already terminal") && message.includes("use --force"),
|
|
80
|
+
},
|
|
81
|
+
{ code: "tracker_not_initialized", matches: (message) => message.includes("tracker is not initialized") },
|
|
82
|
+
{ code: "item_not_found", matches: (message) => message.includes(" not found") },
|
|
83
|
+
{
|
|
84
|
+
code: "close_through_update",
|
|
85
|
+
matches: (message) => message.includes("use \"pm close <id> <text>\" to close an item") ||
|
|
86
|
+
(message.includes("invalid --status value") && message.includes("\"closed\"")),
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
code: "invalid_argument_value",
|
|
90
|
+
matches: (message) => message.startsWith("invalid ") || message.includes(" must be ") || message.includes(" requires "),
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
code: "invalid_command_usage",
|
|
94
|
+
matches: (message) => message.includes("either as positional") && message.includes("not both"),
|
|
95
|
+
},
|
|
96
|
+
];
|
|
97
|
+
const TELEMETRY_EXIT_CODE_FALLBACKS = new Map([
|
|
98
|
+
[EXIT_CODE.USAGE, "invalid_command_usage"],
|
|
99
|
+
[EXIT_CODE.NOT_FOUND, "item_not_found"],
|
|
100
|
+
[EXIT_CODE.CONFLICT, "lock_conflict"],
|
|
101
|
+
[EXIT_CODE.DEPENDENCY_FAILED, "dependency_failed"],
|
|
102
|
+
]);
|
|
63
103
|
/**
|
|
64
104
|
* Implements derive telemetry command taxonomy for the public runtime surface of this module.
|
|
65
105
|
*/
|
|
@@ -109,61 +149,17 @@ export function inferTelemetryErrorCode(params) {
|
|
|
109
149
|
return explicit;
|
|
110
150
|
}
|
|
111
151
|
const message = (params.errorMessage ?? "").trim().toLowerCase();
|
|
112
|
-
if (message.includes("unknown command")) {
|
|
113
|
-
return "unknown_command";
|
|
114
|
-
}
|
|
115
|
-
if (message.includes("unknown option")) {
|
|
116
|
-
return "unknown_option";
|
|
117
|
-
}
|
|
118
|
-
if (message.includes("missing required options") || message.includes("missing required option")) {
|
|
119
|
-
return "missing_required_option";
|
|
120
|
-
}
|
|
121
|
-
if (message.includes("missing required argument")) {
|
|
122
|
-
return "missing_required_argument";
|
|
123
|
-
}
|
|
124
|
-
if (message.includes("no update flags provided")) {
|
|
125
|
-
return "no_update_fields";
|
|
126
|
-
}
|
|
127
|
-
if (message.includes("is assigned to") && message.includes("use --force")) {
|
|
128
|
-
return "ownership_conflict";
|
|
129
|
-
}
|
|
130
|
-
if (message.includes("is locked")) {
|
|
131
|
-
return "lock_conflict";
|
|
132
|
-
}
|
|
133
|
-
if (message.includes("already terminal") && message.includes("use --force")) {
|
|
134
|
-
return "terminal_state_conflict";
|
|
135
|
-
}
|
|
136
|
-
if (message.includes("tracker is not initialized")) {
|
|
137
|
-
return "tracker_not_initialized";
|
|
138
|
-
}
|
|
139
|
-
if (message.includes(" not found")) {
|
|
140
|
-
return "item_not_found";
|
|
141
|
-
}
|
|
142
|
-
if (message.includes("use \"pm close <id> <text>\" to close an item") ||
|
|
143
|
-
(message.includes("invalid --status value") && message.includes("\"closed\""))) {
|
|
144
|
-
return "close_through_update";
|
|
145
|
-
}
|
|
146
|
-
if (message.startsWith("invalid ") || message.includes(" must be ") || message.includes(" requires ")) {
|
|
147
|
-
return "invalid_argument_value";
|
|
148
|
-
}
|
|
149
152
|
// NOTE: A "strict create mode requires concrete values for --" message is always
|
|
150
|
-
// classified as invalid_argument_value by the ` requires `
|
|
151
|
-
// dedicated branch
|
|
152
|
-
|
|
153
|
-
|
|
153
|
+
// classified as invalid_argument_value by the ordered ` requires ` classifier,
|
|
154
|
+
// so a dedicated branch would be unreachable and is intentionally omitted.
|
|
155
|
+
for (const classifier of TELEMETRY_ERROR_MESSAGE_CLASSIFIERS) {
|
|
156
|
+
if (classifier.matches(message)) {
|
|
157
|
+
return classifier.code;
|
|
158
|
+
}
|
|
154
159
|
}
|
|
155
160
|
const exitCode = Number.isFinite(params.exitCode) ? Math.max(0, Math.trunc(params.exitCode)) : undefined;
|
|
156
|
-
if (exitCode
|
|
157
|
-
return "
|
|
158
|
-
}
|
|
159
|
-
if (exitCode === EXIT_CODE.NOT_FOUND) {
|
|
160
|
-
return "item_not_found";
|
|
161
|
-
}
|
|
162
|
-
if (exitCode === EXIT_CODE.CONFLICT) {
|
|
163
|
-
return "lock_conflict";
|
|
164
|
-
}
|
|
165
|
-
if (exitCode === EXIT_CODE.DEPENDENCY_FAILED) {
|
|
166
|
-
return "dependency_failed";
|
|
161
|
+
if (exitCode !== undefined) {
|
|
162
|
+
return TELEMETRY_EXIT_CODE_FALLBACKS.get(exitCode) ?? "command_failed";
|
|
167
163
|
}
|
|
168
164
|
return "command_failed";
|
|
169
165
|
}
|
|
@@ -208,4 +204,4 @@ export function deriveTelemetryCommandResolution(params) {
|
|
|
208
204
|
return "unknown_failed";
|
|
209
205
|
}
|
|
210
206
|
//# sourceMappingURL=observability.js.map
|
|
211
|
-
//# debugId=
|
|
207
|
+
//# debugId=1a034a5f-bb30-5cea-8926-4d11eb3b9c5f
|