@principles/pd-cli 1.75.0 → 1.77.0
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/dist/commands/config-doctor.d.ts +3 -6
- package/dist/commands/config-doctor.d.ts.map +1 -1
- package/dist/commands/config-doctor.js +30 -31
- package/dist/commands/config-doctor.js.map +1 -1
- package/dist/commands/runtime-features.d.ts +23 -8
- package/dist/commands/runtime-features.d.ts.map +1 -1
- package/dist/commands/runtime-features.js +72 -31
- package/dist/commands/runtime-features.js.map +1 -1
- package/dist/services/config-doctor.d.ts +26 -66
- package/dist/services/config-doctor.d.ts.map +1 -1
- package/dist/services/config-doctor.js +197 -374
- package/dist/services/config-doctor.js.map +1 -1
- package/dist/services/pd-config-loader.d.ts +64 -0
- package/dist/services/pd-config-loader.d.ts.map +1 -0
- package/dist/services/pd-config-loader.js +156 -0
- package/dist/services/pd-config-loader.js.map +1 -0
- package/package.json +1 -1
- package/src/commands/config-doctor.ts +30 -30
- package/src/commands/runtime-features.ts +98 -44
- package/src/services/config-doctor.ts +236 -425
- package/src/services/pd-config-loader.ts +213 -0
- package/tests/commands/config-doctor.test.ts +207 -506
- package/tests/commands/console-launcher-edge-cases.test.ts +421 -0
- package/tests/commands/runtime-features.test.ts +220 -85
- package/tests/services/pd-config-loader.test.ts +479 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../src/services/config-doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-doctor.js","sourceRoot":"","sources":["../../src/services/config-doctor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAkF9D,+EAA+E;AAE/E,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI;WACxB,OAAO,CAAC,GAAG,CAAC,WAAW;WACvB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzG,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC;AACtG,MAAM,qBAAqB,GAAG,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;AAClH,MAAM,oBAAoB,GAAG,CAAC,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,uBAAuB,CAAC,CAAC;AAE5G,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,KAAK,MAAM,EAAE,IAAI,mBAAmB,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,YAAY,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,cAAc,CAAC;IAClD,CAAC;IACD,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,aAAa,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAqBD,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,kBAAkB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,WAAmB,EACnB,QAAgB,IAAI,CAAC,GAAG,EAAE,EAC1B,OAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC;IAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,EAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,EAAE,GAAG,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,8CAA8C,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SAC1G,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,oEAAoE,CAAC,CAAC,GAAG,EAAkC,CAAC;QACzI,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC;QACpH,CAAC;QAED,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,GAAG,EAAwB,CAAC;QACpF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1D,MAAM,mBAAmB,GAAG,YAAY,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACnE,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChE,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEpD,IAAI,CAAC,eAAe,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7C,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,gFAAgF,EAAE,CAAC;QACxI,CAAC;QAED,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QAClH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,MAAM,MAAM,GAAc,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE1D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB,UAAU,QAAQ,YAAY,MAAM,eAAe,SAAS,8BAA8B,CAC3F,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,CAAuC,CAAC;QAEhE,IAAI,oBAAoB,GAAkB,IAAI,CAAC;QAC/C,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ;gBAAE,SAAS;YAC5C,SAAS,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,CAAC,oBAAoB,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC;gBACnG,oBAAoB,GAAG,GAAG,CAAC,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAED,IAAI,gBAAgB,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,kBAAkB,CAAC;YACxE,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CACxB,UAAU,MAAM,UAAU,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,qBAAqB,MAAM,gBAAgB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,EAAE,8BAA8B,CACnK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAqC,CAAC;YACzF,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC1B,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAChC,SAAS,IAAI,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAC/C,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAC7C,CAAC;QAED,OAAO;YACL,MAAM,EAAE;gBACN,cAAc;gBACd,MAAM,EAAE,8BAA8B,cAAc,6BAA6B;gBACjF,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;aACvF;YACD,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,yBAAyB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACrF,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACjD,CAAC;AACH,CAAC;AAED,gFAAgF;AAEhF,SAAS,qBAAqB,CAC5B,KAA2B,EAC3B,OAAkD;IAElD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK;YACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,iCAAiC;YACtD,UAAU,EAAE,6BAA6B,KAAK,CAAC,IAAI,4CAA4C;SAChG,CAAC;IACJ,CAAC;IAED,6CAA6C;IAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,oBAAoB,KAAK,CAAC,gBAAgB,gCAAgC;YAClF,UAAU,EAAE,wBAAwB,KAAK,CAAC,gBAAgB,sFAAsF;SACjJ,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC5C,MAAM,aAAa,GAAG,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE9H,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,SAAS,EAAE,aAAa;gBACxB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,kBAAkB,OAAO,CAAC,EAAE,qBAAqB;gBACzD,UAAU,EAAE,qCAAqC,OAAO,CAAC,EAAE,sBAAsB;aAClF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;gBACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;gBAC9C,SAAS,EAAE,aAAa;gBACxB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS;gBACT,aAAa,EAAE,KAAK;gBACpB,MAAM,EAAE,yBAAyB,SAAS,uBAAuB;gBACjE,UAAU,EAAE,iCAAiC,SAAS,wBAAwB;aAC/E,CAAC;QACJ,CAAC;QAED,sDAAsD;QACtD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,SAAS,EAAE,WAAW,EAAE,oDAAoD;YAC5E,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS;YACT,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,4CAA4C,SAAS,+CAA+C;YAC5G,UAAU,EAAE,wDAAwD;SACrE,CAAC;IACJ,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,CAAC,SAAS,KAAK,aAAa,EAAE,CAAC;QACxC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC9C,SAAS,EAAE,aAAa;YACxB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,KAAK;YACpB,MAAM,EAAE,qBAAqB,OAAO,CAAC,EAAE,wCAAwC;YAC/E,UAAU,EAAE,oDAAoD,OAAO,CAAC,EAAE,sBAAsB;SACjG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,IAAI;QACb,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;QAC9C,SAAS,EAAE,OAAO;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,aAAa,EAAE,KAAK;QACpB,MAAM,EAAE,qBAAqB,OAAO,CAAC,EAAE,2BAA2B;QAClE,UAAU,EAAE,oBAAoB;KACjC,CAAC;AACJ,CAAC;AAQD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAEjD,yCAAyC;IACzC,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9C,MAAM,KAAK,GAAG,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAE9C,0BAA0B;IAC1B,MAAM,kBAAkB,GAAa,EAAE,CAAC;IACxC,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAoC,CAAC,EAAE,CAAC;YACxF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAuB;QACvC,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW;QACvD,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,kBAAkB;QAClB,aAAa;QACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;IAEF,qDAAqD;IACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;IACpE,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QACzC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAA+B,EAAE,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvD,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,qEAAqE;IACrE,MAAM,cAAc,GAA0B,EAAE,CAAC;IACjD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,4BAA4B;IAC5B,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,+BAA+B,CAAC,CAAC;IACxF,CAAC;IAED,2CAA2C;IAC3C,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,aAAa,IAAI,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC;IACjI,KAAK,MAAM,KAAK,IAAI,gBAAgB,EAAE,CAAC;QACrC,6FAA6F;QAC7F,MAAM,cAAc,GAAyB,KAAK,CAAC,SAAS,KAAK,aAAa;YAC5E,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,aAAa,CAAC;QAClB,cAAc,CAAC,IAAI,CAAC;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,cAAc;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,OAAO,CAAC,CAAC;IACrF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,MAAM,+BAA+B,CAAC,WAAW,CAAC,CAAC;QACxE,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;YACjE,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,GAAG;gBACnB,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,GAAG,KAAK,YAAY;oBAC9B,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,+EAA+E;gBACnF,MAAM,EAAE,UAAU;aACnB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,IAAI;gBACX,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,KAAK;gBACpB,cAAc,EAAE,SAAS;gBACzB,MAAM,EAAE,sDAAsD;gBAC9D,UAAU,EAAE,wDAAwD;gBACpE,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,GAAiB,IAAI,CAAC;IAChC,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;IACpE,IAAI,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjI,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IACD,IAAI,eAAe,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC3F,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,QAAQ,CAAC;IACpB,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAC7C,MAAM,GAAG,UAAU,CAAC;IACtB,CAAC;IAED,YAAY;IACZ,IAAI,MAA0B,CAAC;IAC/B,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,GAAG,6BAA6B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,IAAI,CAAC,CAAC,cAAc,KAAK,gBAAgB,CAAC,CAAC;YAC1H,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;gBACxB,CAAC,CAAC,iCAAiC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnF,CAAC,CAAC,0CAA0C,CAAC;QACjD,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,YAAY,IAAI,CAAC,CAAC,cAAc,KAAK,aAAa,IAAI,CAAC,CAAC,cAAc,KAAK,aAAa,CAAC,CAAC;QAC7J,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,mCAAmC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACjG,CAAC;aAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,4BAA4B,QAAQ,CAAC,MAAM,UAAU,CAAC;QACjE,CAAC;IACH,CAAC;IAED,kBAAkB;IAClB,MAAM,GAAG,GAAiB;QACxB,MAAM;QACN,YAAY;QACZ,aAAa,EAAE;YACb,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC;YACrC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC;YACvB,UAAU,EAAE,EAAE,GAAG,SAAS,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE;YACvH,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC;SAChC;QACD,mBAAmB,EAAE;YACnB,YAAY,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;YAC1C,cAAc,EAAE,SAAS,CAAC,qBAAqB,EAAE,CAAC;SACnD;QACD,YAAY;QACZ,cAAc;QACd,cAAc;QACd,QAAQ;QACR,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC;QAClG,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;KACpD,CAAC;IAEF,IAAI,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PD Config Loader — PRI-305
|
|
3
|
+
*
|
|
4
|
+
* I/O boundary: reads `.pd/config.yaml`, validates via core, computes effective config.
|
|
5
|
+
* This replaces the old `feature-flag-loader.ts` and `workflows.yaml` reading
|
|
6
|
+
* for CLI production paths.
|
|
7
|
+
*
|
|
8
|
+
* ADR-0016: PD owns exactly one user config file.
|
|
9
|
+
* - Missing config → defaults with nextAction
|
|
10
|
+
* - Malformed config → fail loud with errors and nextAction
|
|
11
|
+
* - No secrets in output
|
|
12
|
+
*/
|
|
13
|
+
import type { EffectivePdConfig, RedactedPdConfigSummary, FeatureFlagsResult } from '@principles/core/runtime-v2';
|
|
14
|
+
export declare const PD_CONFIG_DIR = ".pd";
|
|
15
|
+
export declare const PD_CONFIG_FILENAME = "config.yaml";
|
|
16
|
+
export type ConfigSource = 'defaults' | 'user_config' | 'malformed';
|
|
17
|
+
export interface PdConfigLoadResultOk {
|
|
18
|
+
ok: true;
|
|
19
|
+
effective: EffectivePdConfig;
|
|
20
|
+
source: ConfigSource;
|
|
21
|
+
configPath: string;
|
|
22
|
+
/** Warnings from config resolution (not errors) */
|
|
23
|
+
warnings: string[];
|
|
24
|
+
/** If legacy files were detected */
|
|
25
|
+
legacyFilesDetected: string[];
|
|
26
|
+
}
|
|
27
|
+
export interface PdConfigLoadResultErr {
|
|
28
|
+
ok: false;
|
|
29
|
+
source: 'malformed';
|
|
30
|
+
configPath: string;
|
|
31
|
+
errors: {
|
|
32
|
+
path: string;
|
|
33
|
+
reason: string;
|
|
34
|
+
nextAction: string;
|
|
35
|
+
}[];
|
|
36
|
+
/** Fallback defaults are still available */
|
|
37
|
+
defaults: EffectivePdConfig;
|
|
38
|
+
/** Warnings from config resolution */
|
|
39
|
+
warnings: string[];
|
|
40
|
+
legacyFilesDetected: string[];
|
|
41
|
+
}
|
|
42
|
+
export type PdConfigLoadResult = PdConfigLoadResultOk | PdConfigLoadResultErr;
|
|
43
|
+
export declare function getPdConfigPath(workspaceDir: string): string;
|
|
44
|
+
/**
|
|
45
|
+
* Load and validate `.pd/config.yaml` from the workspace.
|
|
46
|
+
*
|
|
47
|
+
* - Missing file → returns defaults with source='defaults'
|
|
48
|
+
* - Malformed file → returns error result with defaults fallback
|
|
49
|
+
* - Valid file → returns effective config with source='user_config'
|
|
50
|
+
*
|
|
51
|
+
* Never throws on malformed input. Always provides a usable fallback.
|
|
52
|
+
*/
|
|
53
|
+
export declare function loadPdConfig(workspaceDir: string): PdConfigLoadResult;
|
|
54
|
+
/**
|
|
55
|
+
* Compute feature flags from the loaded PD config.
|
|
56
|
+
* Works with both ok and error results (uses defaults for errors).
|
|
57
|
+
*/
|
|
58
|
+
export declare function computeFlagsFromLoadResult(result: PdConfigLoadResult): FeatureFlagsResult;
|
|
59
|
+
/**
|
|
60
|
+
* Produce a redacted summary of the PD config for CLI/Console display.
|
|
61
|
+
* Never includes token/API key values or raw provider objects.
|
|
62
|
+
*/
|
|
63
|
+
export declare function redactLoadResult(result: PdConfigLoadResult): RedactedPdConfigSummary;
|
|
64
|
+
//# sourceMappingURL=pd-config-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-config-loader.d.ts","sourceRoot":"","sources":["../../src/services/pd-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAWH,OAAO,KAAK,EACV,iBAAiB,EAEjB,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAIrC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAIhD,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,4CAA4C;IAC5C,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAI9E,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5D;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB,CA8FrE;AAID;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAGzF;AAID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,kBAAkB,GAAG,uBAAuB,CAGpF"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PD Config Loader — PRI-305
|
|
3
|
+
*
|
|
4
|
+
* I/O boundary: reads `.pd/config.yaml`, validates via core, computes effective config.
|
|
5
|
+
* This replaces the old `feature-flag-loader.ts` and `workflows.yaml` reading
|
|
6
|
+
* for CLI production paths.
|
|
7
|
+
*
|
|
8
|
+
* ADR-0016: PD owns exactly one user config file.
|
|
9
|
+
* - Missing config → defaults with nextAction
|
|
10
|
+
* - Malformed config → fail loud with errors and nextAction
|
|
11
|
+
* - No secrets in output
|
|
12
|
+
*/
|
|
13
|
+
import * as fs from 'fs';
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import yaml from 'js-yaml';
|
|
16
|
+
import { validatePdConfig, computeEffectivePdConfig, computeFeatureFlagsFromConfig, redactPdConfig, } from '@principles/core/runtime-v2';
|
|
17
|
+
// ── Constants ────────────────────────────────────────────────────────────────
|
|
18
|
+
export const PD_CONFIG_DIR = '.pd';
|
|
19
|
+
export const PD_CONFIG_FILENAME = 'config.yaml';
|
|
20
|
+
// ── Config Path ──────────────────────────────────────────────────────────────
|
|
21
|
+
export function getPdConfigPath(workspaceDir) {
|
|
22
|
+
return path.join(workspaceDir, PD_CONFIG_DIR, PD_CONFIG_FILENAME);
|
|
23
|
+
}
|
|
24
|
+
// ── Legacy File Detection ────────────────────────────────────────────────────
|
|
25
|
+
function detectLegacyFiles(workspaceDir) {
|
|
26
|
+
const detected = [];
|
|
27
|
+
const legacyPaths = [
|
|
28
|
+
path.join(workspaceDir, PD_CONFIG_DIR, 'feature-flags.yaml'),
|
|
29
|
+
path.join(workspaceDir, '.state', 'workflows.yaml'),
|
|
30
|
+
];
|
|
31
|
+
for (const p of legacyPaths) {
|
|
32
|
+
if (fs.existsSync(p)) {
|
|
33
|
+
detected.push(p);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return detected;
|
|
37
|
+
}
|
|
38
|
+
// ── Load PD Config ───────────────────────────────────────────────────────────
|
|
39
|
+
/**
|
|
40
|
+
* Load and validate `.pd/config.yaml` from the workspace.
|
|
41
|
+
*
|
|
42
|
+
* - Missing file → returns defaults with source='defaults'
|
|
43
|
+
* - Malformed file → returns error result with defaults fallback
|
|
44
|
+
* - Valid file → returns effective config with source='user_config'
|
|
45
|
+
*
|
|
46
|
+
* Never throws on malformed input. Always provides a usable fallback.
|
|
47
|
+
*/
|
|
48
|
+
export function loadPdConfig(workspaceDir) {
|
|
49
|
+
const configPath = getPdConfigPath(workspaceDir);
|
|
50
|
+
const legacyFilesDetected = detectLegacyFiles(workspaceDir);
|
|
51
|
+
// 1) Config file missing → use defaults
|
|
52
|
+
if (!fs.existsSync(configPath)) {
|
|
53
|
+
const effective = computeEffectivePdConfig(null);
|
|
54
|
+
return {
|
|
55
|
+
ok: true,
|
|
56
|
+
effective,
|
|
57
|
+
source: 'defaults',
|
|
58
|
+
configPath,
|
|
59
|
+
warnings: [
|
|
60
|
+
...effective.warnings,
|
|
61
|
+
...(legacyFilesDetected.length > 0
|
|
62
|
+
? [`Legacy config files detected (${legacyFilesDetected.length}): ${legacyFilesDetected.join(', ')}. PD now uses .pd/config.yaml.`]
|
|
63
|
+
: []),
|
|
64
|
+
],
|
|
65
|
+
legacyFilesDetected,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
// 2) Read the file
|
|
69
|
+
let raw;
|
|
70
|
+
try {
|
|
71
|
+
raw = fs.readFileSync(configPath, 'utf8');
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
75
|
+
const effective = computeEffectivePdConfig(null);
|
|
76
|
+
return {
|
|
77
|
+
ok: false,
|
|
78
|
+
source: 'malformed',
|
|
79
|
+
configPath,
|
|
80
|
+
errors: [{ path: '', reason: `Failed to read .pd/config.yaml: ${message}`, nextAction: 'Check file permissions for .pd/config.yaml' }],
|
|
81
|
+
warnings: [],
|
|
82
|
+
defaults: effective,
|
|
83
|
+
legacyFilesDetected,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
// 3) Parse YAML — treat as unknown (ERR-001)
|
|
87
|
+
let parsed;
|
|
88
|
+
try {
|
|
89
|
+
parsed = yaml.load(raw, { schema: yaml.JSON_SCHEMA });
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
93
|
+
const effective = computeEffectivePdConfig(null);
|
|
94
|
+
return {
|
|
95
|
+
ok: false,
|
|
96
|
+
source: 'malformed',
|
|
97
|
+
configPath,
|
|
98
|
+
errors: [{ path: '', reason: `YAML parse error in .pd/config.yaml: ${message}`, nextAction: 'Fix YAML syntax in .pd/config.yaml' }],
|
|
99
|
+
warnings: [],
|
|
100
|
+
defaults: effective,
|
|
101
|
+
legacyFilesDetected,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
// 4) Validate via core (ERR-001, ERR-005: no `as` bypasses)
|
|
105
|
+
const validationResult = validatePdConfig(parsed);
|
|
106
|
+
if (!validationResult.ok) {
|
|
107
|
+
const effective = computeEffectivePdConfig(null);
|
|
108
|
+
return {
|
|
109
|
+
ok: false,
|
|
110
|
+
source: 'malformed',
|
|
111
|
+
configPath,
|
|
112
|
+
errors: validationResult.errors.map(e => ({
|
|
113
|
+
path: e.path,
|
|
114
|
+
reason: e.reason,
|
|
115
|
+
nextAction: e.nextAction,
|
|
116
|
+
})),
|
|
117
|
+
warnings: [],
|
|
118
|
+
defaults: effective,
|
|
119
|
+
legacyFilesDetected,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// 5) Compute effective config
|
|
123
|
+
const effective = computeEffectivePdConfig(validationResult.value);
|
|
124
|
+
return {
|
|
125
|
+
ok: true,
|
|
126
|
+
effective,
|
|
127
|
+
source: 'user_config',
|
|
128
|
+
configPath,
|
|
129
|
+
warnings: [
|
|
130
|
+
...effective.warnings,
|
|
131
|
+
...(legacyFilesDetected.length > 0
|
|
132
|
+
? [`Legacy config files detected (${legacyFilesDetected.length}): ${legacyFilesDetected.join(', ')}. PD now uses .pd/config.yaml.`]
|
|
133
|
+
: []),
|
|
134
|
+
],
|
|
135
|
+
legacyFilesDetected,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
// ── Feature Flags from Config ────────────────────────────────────────────────
|
|
139
|
+
/**
|
|
140
|
+
* Compute feature flags from the loaded PD config.
|
|
141
|
+
* Works with both ok and error results (uses defaults for errors).
|
|
142
|
+
*/
|
|
143
|
+
export function computeFlagsFromLoadResult(result) {
|
|
144
|
+
const effective = result.ok ? result.effective : result.defaults;
|
|
145
|
+
return computeFeatureFlagsFromConfig(effective);
|
|
146
|
+
}
|
|
147
|
+
// ── Redacted Summary from Config ─────────────────────────────────────────────
|
|
148
|
+
/**
|
|
149
|
+
* Produce a redacted summary of the PD config for CLI/Console display.
|
|
150
|
+
* Never includes token/API key values or raw provider objects.
|
|
151
|
+
*/
|
|
152
|
+
export function redactLoadResult(result) {
|
|
153
|
+
const effective = result.ok ? result.effective : result.defaults;
|
|
154
|
+
return redactPdConfig(effective);
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=pd-config-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pd-config-loader.js","sourceRoot":"","sources":["../../src/services/pd-config-loader.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* pd config doctor — Discover and explain PD / OpenClaw configuration state.
|
|
3
3
|
*
|
|
4
|
-
* PRI-
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* - Classifies provider/model/auth connectivity (healthy, auth_missing, rate_limit, etc.)
|
|
8
|
-
* - Emits `reason` + `nextActions` for failures
|
|
9
|
-
* - NEVER leaks tokens, env var values, or raw config bytes
|
|
4
|
+
* PRI-305: Cutover to .pd/config.yaml.
|
|
5
|
+
* - Feature flags and internal agent runtime bindings come from .pd/config.yaml
|
|
6
|
+
* - .pd/feature-flags.yaml and .state/workflows.yaml are no longer production inputs
|
|
10
7
|
*
|
|
11
8
|
* Usage:
|
|
12
9
|
* pd config doctor [--workspace <path>] [--json]
|
|
@@ -33,7 +30,8 @@ function formatTextOutput(output: DoctorOutput): string {
|
|
|
33
30
|
lines.push('PD config paths:');
|
|
34
31
|
for (const [k, v] of Object.entries(output.pdConfigPaths)) {
|
|
35
32
|
const exists = v.exists ? '[exists]' : '[missing]';
|
|
36
|
-
|
|
33
|
+
const parseable = v.parseable === false ? ' [unparseable]' : '';
|
|
34
|
+
lines.push(` ${k.padEnd(16)} ${exists.padEnd(10)}${parseable} ${v.path}`);
|
|
37
35
|
}
|
|
38
36
|
lines.push('');
|
|
39
37
|
|
|
@@ -54,17 +52,34 @@ function formatTextOutput(output: DoctorOutput): string {
|
|
|
54
52
|
}
|
|
55
53
|
lines.push('');
|
|
56
54
|
|
|
55
|
+
lines.push('Internal agents:');
|
|
56
|
+
if (output.internalAgents.length === 0) {
|
|
57
|
+
lines.push(' (no internal agents diagnosed)');
|
|
58
|
+
} else {
|
|
59
|
+
for (const agent of output.internalAgents) {
|
|
60
|
+
const readiness = agent.readiness.toUpperCase();
|
|
61
|
+
const enabledLabel = agent.enabled ? 'enabled' : 'disabled';
|
|
62
|
+
lines.push(` ${agent.name}: [${readiness}] (${enabledLabel})`);
|
|
63
|
+
lines.push(` profile: ${agent.runtimeProfileLabel} (${agent.runtimeProfileId})`);
|
|
64
|
+
if (agent.apiKeyEnv) {
|
|
65
|
+
const apiKeyState = agent.apiKeyPresent ? 'present' : 'absent';
|
|
66
|
+
lines.push(` apiKeyEnv: ${agent.apiKeyEnv} (${apiKeyState})`);
|
|
67
|
+
}
|
|
68
|
+
lines.push(` reason: ${agent.reason}`);
|
|
69
|
+
lines.push(` nextAction: ${agent.nextAction}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
lines.push('');
|
|
73
|
+
|
|
57
74
|
lines.push('Provider health:');
|
|
58
75
|
if (output.providerHealth.length === 0) {
|
|
59
76
|
lines.push(' (no providers discovered)');
|
|
60
77
|
} else {
|
|
61
78
|
for (const p of output.providerHealth) {
|
|
62
79
|
const cls = p.classification.toUpperCase();
|
|
63
|
-
const provider = p.provider ?? '(unset)';
|
|
64
|
-
const model = p.model ?? '(unset)';
|
|
65
80
|
const apiKeyEnv = p.apiKeyEnv ?? '(unset)';
|
|
66
81
|
const apiKeyState = p.apiKeyPresent ? 'present' : 'absent';
|
|
67
|
-
lines.push(` [${cls}]
|
|
82
|
+
lines.push(` [${cls}]`);
|
|
68
83
|
lines.push(` apiKeyEnv: ${apiKeyEnv} (${apiKeyState})`);
|
|
69
84
|
lines.push(` source: ${p.source}`);
|
|
70
85
|
lines.push(` reason: ${p.reason}`);
|
|
@@ -73,28 +88,13 @@ function formatTextOutput(output: DoctorOutput): string {
|
|
|
73
88
|
}
|
|
74
89
|
lines.push('');
|
|
75
90
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
const coProvider = co.provider ?? '(unset)';
|
|
81
|
-
const coModel = co.model ?? '(unset)';
|
|
82
|
-
const coApiKeyEnv = co.apiKeyEnv ?? '(unset)';
|
|
83
|
-
const coApiKeyState = co.apiKeyPresent ? 'present' : 'absent';
|
|
84
|
-
lines.push(` correctionObserver: [${coStatus}]`);
|
|
85
|
-
lines.push(` enabled: ${co.enabled}`);
|
|
86
|
-
lines.push(` flagSource: ${co.flagSource}`);
|
|
87
|
-
lines.push(` configSource:${co.configSource}`);
|
|
88
|
-
if (co.provider || co.model) {
|
|
89
|
-
lines.push(` provider: ${coProvider} / ${coModel}`);
|
|
91
|
+
if (output.legacyFilesDetected.length > 0) {
|
|
92
|
+
lines.push('Legacy files detected (not used for resolution):');
|
|
93
|
+
for (const f of output.legacyFilesDetected) {
|
|
94
|
+
lines.push(` [!] ${f}`);
|
|
90
95
|
}
|
|
91
|
-
lines.push(
|
|
92
|
-
lines.push(` reason: ${co.reason}`);
|
|
93
|
-
lines.push(` nextAction: ${co.nextAction}`);
|
|
94
|
-
} else {
|
|
95
|
-
lines.push(' (no internal agents diagnosed)');
|
|
96
|
+
lines.push('');
|
|
96
97
|
}
|
|
97
|
-
lines.push('');
|
|
98
98
|
|
|
99
99
|
if (output.warnings.length > 0) {
|
|
100
100
|
lines.push('Warnings:');
|
|
@@ -1,103 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pd runtime features — Show effective feature flags from .pd/config.yaml.
|
|
3
|
+
*
|
|
4
|
+
* PRI-305: Cutover from .pd/feature-flags.yaml to .pd/config.yaml.
|
|
5
|
+
* Uses core computeFeatureFlagsFromConfig for flag computation.
|
|
6
|
+
* --json outputs a single parseable JSON object.
|
|
7
|
+
* Missing config uses core defaults with nextAction.
|
|
8
|
+
* Malformed config fails loud with reason and nextAction.
|
|
9
|
+
* No secret output.
|
|
10
|
+
*/
|
|
11
|
+
|
|
1
12
|
import * as path from 'path';
|
|
2
|
-
import {
|
|
13
|
+
import { loadPdConfig, computeFlagsFromLoadResult } from '../services/pd-config-loader.js';
|
|
3
14
|
import { resolveWorkspaceDir } from '../resolve-workspace.js';
|
|
4
15
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
16
|
+
// ── Output types ─────────────────────────────────────────────────────────────
|
|
17
|
+
|
|
18
|
+
export interface RuntimeFeaturesOutput {
|
|
19
|
+
status: 'ok' | 'degraded' | 'failed';
|
|
20
|
+
source: 'defaults' | 'user_config' | 'malformed';
|
|
8
21
|
configPath: string;
|
|
9
|
-
|
|
22
|
+
features: {
|
|
10
23
|
id: string;
|
|
11
24
|
category: string;
|
|
12
25
|
enabled: boolean;
|
|
13
|
-
since: string;
|
|
14
|
-
description?: string;
|
|
15
26
|
}[];
|
|
16
|
-
|
|
27
|
+
enabledMvpChannels: string[];
|
|
17
28
|
totalFlags: number;
|
|
18
29
|
enabledCount: number;
|
|
19
30
|
disabledCount: number;
|
|
31
|
+
warnings: string[];
|
|
20
32
|
reason?: string;
|
|
21
33
|
nextAction?: string;
|
|
34
|
+
/** Malformed config errors (only present when source=malformed) */
|
|
35
|
+
errors?: { path: string; reason: string; nextAction: string }[];
|
|
22
36
|
}
|
|
23
37
|
|
|
24
|
-
|
|
25
|
-
workspace?: string;
|
|
26
|
-
json?: boolean;
|
|
27
|
-
}
|
|
38
|
+
// ── Build output ─────────────────────────────────────────────────────────────
|
|
28
39
|
|
|
29
|
-
export function
|
|
30
|
-
const
|
|
31
|
-
const flags =
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
40
|
+
export function buildRuntimeFeaturesStatus(workspaceDir: string): RuntimeFeaturesOutput {
|
|
41
|
+
const loadResult = loadPdConfig(workspaceDir);
|
|
42
|
+
const flags = computeFlagsFromLoadResult(loadResult);
|
|
43
|
+
|
|
44
|
+
const allFlags = Object.values(flags.flags);
|
|
45
|
+
const enabledCount = allFlags.filter(f => f.enabled).length;
|
|
46
|
+
const features = allFlags.map(f => ({
|
|
47
|
+
id: f.id,
|
|
48
|
+
category: f.category,
|
|
49
|
+
enabled: f.enabled,
|
|
50
|
+
}));
|
|
51
|
+
|
|
52
|
+
// Determine status
|
|
53
|
+
let status: RuntimeFeaturesOutput['status'] = 'ok';
|
|
54
|
+
const warnings = [...loadResult.warnings, ...flags.warnings];
|
|
55
|
+
|
|
56
|
+
if (!loadResult.ok) {
|
|
57
|
+
status = 'failed';
|
|
58
|
+
} else if (warnings.length > 0) {
|
|
59
|
+
status = 'degraded';
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
const output: RuntimeFeaturesOutput = {
|
|
63
|
+
status,
|
|
64
|
+
source: loadResult.ok ? loadResult.source : 'malformed',
|
|
65
|
+
configPath: loadResult.configPath,
|
|
66
|
+
features,
|
|
67
|
+
enabledMvpChannels: [...flags.enabledChannels],
|
|
68
|
+
totalFlags: allFlags.length,
|
|
48
69
|
enabledCount,
|
|
49
|
-
disabledCount:
|
|
50
|
-
|
|
51
|
-
reason: `Config warnings: ${effective.warnings.join('; ')}`,
|
|
52
|
-
nextAction: 'Review feature-flags.yaml for malformed overrides or unknown flags',
|
|
53
|
-
} : {}),
|
|
70
|
+
disabledCount: allFlags.length - enabledCount,
|
|
71
|
+
warnings,
|
|
54
72
|
};
|
|
73
|
+
|
|
74
|
+
// Add reason and nextAction for non-ok states
|
|
75
|
+
if (!loadResult.ok) {
|
|
76
|
+
output.reason = `Config validation failed: ${loadResult.errors.map(e => e.reason).join('; ')}`;
|
|
77
|
+
output.nextAction = loadResult.errors[0]?.nextAction ?? 'Fix .pd/config.yaml and retry';
|
|
78
|
+
output.errors = loadResult.errors;
|
|
79
|
+
} else if (warnings.length > 0) {
|
|
80
|
+
output.reason = `Config warnings: ${warnings.slice(0, 3).join('; ')}`;
|
|
81
|
+
output.nextAction = 'Review .pd/config.yaml for warnings';
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
return output;
|
|
55
85
|
}
|
|
56
86
|
|
|
57
|
-
|
|
87
|
+
// ── Text formatting ──────────────────────────────────────────────────────────
|
|
88
|
+
|
|
89
|
+
function formatTextOutput(output: RuntimeFeaturesOutput): string {
|
|
58
90
|
const lines: string[] = [];
|
|
59
91
|
|
|
60
|
-
lines.push('PD
|
|
92
|
+
lines.push('PD Runtime Features');
|
|
61
93
|
lines.push(`source: ${output.source}`);
|
|
62
94
|
lines.push(`config: ${output.configPath}`);
|
|
63
95
|
lines.push('');
|
|
64
96
|
|
|
65
|
-
const categoryOrder = ['core', 'quiet', 'gone'
|
|
97
|
+
const categoryOrder = ['core', 'quiet', 'gone'] as const;
|
|
66
98
|
for (const category of categoryOrder) {
|
|
67
|
-
const categoryFlags = output.
|
|
99
|
+
const categoryFlags = output.features.filter(f => f.category === category);
|
|
68
100
|
if (categoryFlags.length === 0) continue;
|
|
69
101
|
|
|
70
102
|
lines.push(` ${category.toUpperCase()} (${categoryFlags.length})`);
|
|
71
103
|
for (const flag of categoryFlags) {
|
|
72
104
|
const icon = flag.enabled ? '+' : '-';
|
|
73
|
-
lines.push(` [${icon}] ${flag.id}
|
|
105
|
+
lines.push(` [${icon}] ${flag.id}`);
|
|
74
106
|
}
|
|
75
107
|
lines.push('');
|
|
76
108
|
}
|
|
77
109
|
|
|
78
110
|
lines.push(`Total: ${output.totalFlags} flags, ${output.enabledCount} enabled, ${output.disabledCount} disabled`);
|
|
111
|
+
lines.push(`MVP channels: ${output.enabledMvpChannels.length > 0 ? output.enabledMvpChannels.join(', ') : '(none)'}`);
|
|
79
112
|
|
|
80
113
|
if (output.warnings.length > 0) {
|
|
81
114
|
lines.push('');
|
|
82
115
|
lines.push('Warnings:');
|
|
83
|
-
for (const
|
|
84
|
-
lines.push(` [!] ${
|
|
116
|
+
for (const w of output.warnings) {
|
|
117
|
+
lines.push(` [!] ${w}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (output.errors && output.errors.length > 0) {
|
|
122
|
+
lines.push('');
|
|
123
|
+
lines.push('Errors:');
|
|
124
|
+
for (const e of output.errors) {
|
|
125
|
+
lines.push(` [x] ${e.path}: ${e.reason}`);
|
|
126
|
+
lines.push(` → ${e.nextAction}`);
|
|
85
127
|
}
|
|
86
128
|
}
|
|
87
129
|
|
|
88
130
|
return lines.join('\n');
|
|
89
131
|
}
|
|
90
132
|
|
|
133
|
+
// ── CLI handler ──────────────────────────────────────────────────────────────
|
|
134
|
+
|
|
135
|
+
interface FeaturesOptions {
|
|
136
|
+
workspace?: string;
|
|
137
|
+
json?: boolean;
|
|
138
|
+
}
|
|
139
|
+
|
|
91
140
|
export async function handleRuntimeFeaturesStatus(opts: FeaturesOptions): Promise<void> {
|
|
92
141
|
const workspaceDir = opts.workspace
|
|
93
142
|
? path.resolve(opts.workspace)
|
|
94
143
|
: resolveWorkspaceDir();
|
|
95
144
|
|
|
96
|
-
const output =
|
|
145
|
+
const output = buildRuntimeFeaturesStatus(workspaceDir);
|
|
97
146
|
|
|
98
147
|
if (opts.json) {
|
|
148
|
+
// JSON mode: single parseable object on stdout
|
|
99
149
|
console.log(JSON.stringify(output, null, 2));
|
|
100
150
|
} else {
|
|
101
151
|
console.log(formatTextOutput(output));
|
|
102
152
|
}
|
|
153
|
+
|
|
154
|
+
if (output.status === 'failed') {
|
|
155
|
+
process.exitCode = 1;
|
|
156
|
+
}
|
|
103
157
|
}
|