@principles/pd-cli 1.115.0 → 1.116.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.
Files changed (44) hide show
  1. package/dist/commands/diagnose.d.ts.map +1 -1
  2. package/dist/commands/diagnose.js +153 -132
  3. package/dist/commands/diagnose.js.map +1 -1
  4. package/dist/commands/runtime-features.d.ts.map +1 -1
  5. package/dist/commands/runtime-features.js +2 -7
  6. package/dist/commands/runtime-features.js.map +1 -1
  7. package/dist/commands/runtime-internalization-integrity-repair.d.ts.map +1 -1
  8. package/dist/commands/runtime-internalization-integrity-repair.js +15 -31
  9. package/dist/commands/runtime-internalization-integrity-repair.js.map +1 -1
  10. package/dist/commands/runtime-internalization-run-once.d.ts.map +1 -1
  11. package/dist/commands/runtime-internalization-run-once.js +246 -326
  12. package/dist/commands/runtime-internalization-run-once.js.map +1 -1
  13. package/dist/commands/runtime-recovery.d.ts.map +1 -1
  14. package/dist/commands/runtime-recovery.js +9 -8
  15. package/dist/commands/runtime-recovery.js.map +1 -1
  16. package/dist/services/__tests__/cli-output.test.d.ts +18 -0
  17. package/dist/services/__tests__/cli-output.test.d.ts.map +1 -0
  18. package/dist/services/__tests__/cli-output.test.js +103 -0
  19. package/dist/services/__tests__/cli-output.test.js.map +1 -0
  20. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts +18 -0
  21. package/dist/services/__tests__/runtime-adapter-resolver.test.d.ts.map +1 -0
  22. package/dist/services/__tests__/runtime-adapter-resolver.test.js +651 -0
  23. package/dist/services/__tests__/runtime-adapter-resolver.test.js.map +1 -0
  24. package/dist/services/cli-output.d.ts +61 -0
  25. package/dist/services/cli-output.d.ts.map +1 -0
  26. package/dist/services/cli-output.js +72 -0
  27. package/dist/services/cli-output.js.map +1 -0
  28. package/dist/services/runtime-adapter-resolver.d.ts +105 -0
  29. package/dist/services/runtime-adapter-resolver.d.ts.map +1 -0
  30. package/dist/services/runtime-adapter-resolver.js +188 -0
  31. package/dist/services/runtime-adapter-resolver.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/commands/diagnose.ts +146 -138
  34. package/src/commands/runtime-features.ts +2 -6
  35. package/src/commands/runtime-internalization-integrity-repair.ts +16 -28
  36. package/src/commands/runtime-internalization-run-once.ts +242 -353
  37. package/src/commands/runtime-recovery.ts +9 -7
  38. package/src/services/__tests__/cli-output.test.ts +130 -0
  39. package/src/services/__tests__/runtime-adapter-resolver.test.ts +772 -0
  40. package/src/services/cli-output.ts +95 -0
  41. package/src/services/runtime-adapter-resolver.ts +339 -0
  42. package/tests/commands/diagnose.test.ts +7 -3
  43. package/tests/commands/runtime-internalization-run-once.test.ts +11 -0
  44. package/tests/commands/runtime-recovery.test.ts +27 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter-resolver.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/runtime-adapter-resolver.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,8EAA8E;AAE9E,0EAA0E;AAC1E,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACnC,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC7B,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACpC,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACpC,MAAM,yBAAyB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC1C,MAAM,wBAAwB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACzC,MAAM,0BAA0B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE3C,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,MAAM,cAAc,EAA2B,CAAC;IAC/D,OAAO;QACL,GAAG,MAAM;QACT,wBAAwB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAa;YACrD,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC;QACF,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAa;YAC/C,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;QAChD,CAAC,CAAC;QACF,yBAAyB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAa;YACtD,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,EAAE,MAAM,EAAE,2BAA2B,EAAE,IAAI,EAAE,CAAC;QACvD,CAAC,CAAC;QACF,kBAAkB,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,IAAa,EAAE,IAAa;YAC9D,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtD,CAAC,CAAC;QACF,qBAAqB,EAAE,yBAAyB;QAChD,oBAAoB,EAAE,wBAAwB;QAC9C,gCAAgC,EAAE,0BAA0B,CAAC,eAAe,CAAC;YAC3E,oBAAoB,EAAE,EAAE,CAAC,EAAE,EAAE;SAC9B,CAAC;QACF,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC9C,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,yBAAyB,EAAE,6BAA6B;CACzD,CAAC,CAAC,CAAC;AAEJ,MAAM,8BAA8B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/C,EAAE,CAAC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,0BAA0B,EAAE,8BAA8B;CAC3D,CAAC,CAAC,CAAC;AAEJ,iCAAiC;AACjC,MAAM,EAAE,+BAA+B,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;AAElH,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,YAAqC,EAAE;IAClE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,QAAQ;QAClB,KAAK,EAAE,OAAO;QACd,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,YAAqC,EAAE;IACtE,OAAO;QACL,EAAE,EAAE,IAAI;QACR,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,OAAO;QACrB,SAAS,EAAE,MAAM;QACjB,OAAO,EAAE,MAAM;QACf,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,YAAqC,EAAE;IAC9D,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,gBAAgB;QACxB,OAAO,EAAE,0BAA0B;QACnC,UAAU,EAAE,wBAAwB;QACpC,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA+B;IACzD,OAAO;QACL,MAAM;QACN,cAAc,EAAE,EAAE;QAClB,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE;QAC7D,YAAY,EAAE,iBAAiB;QAC/B,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;KAC1B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAE9E,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,gEAAgE;QAChE,wBAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAChD,gEAAgE;QAChE,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAChD,sBAAsB;QACxB,CAAC,CAAC,CAAC;QACH,kDAAkD;QAClD,6BAA6B,CAAC,eAAe,CAAC;YAC5C,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;YAC9F,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,EAAE;gBAC9D,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC;gBAC9B,UAAU,EAAE,+BAA+B;aAC5C,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,GAAG,GAAG,IAAI,qBAAqB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,WAAoB,CAAC,CAAC;YAElD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,aAAa;gBAC1B,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,IAAI;gBACrB,wBAAwB,EAAE,OAAO;aAClC,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACjC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC3D,WAAW,EAAE,aAAa;gBAC1B,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC,CAAC;QACN,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAExB,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,aAAa;oBAC1B,YAAY,EAAE,KAAK;oBACnB,eAAe,EAAE,KAAK;oBACtB,wBAAwB,EAAE,OAAO;iBAClC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAElC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACxF,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAExB,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,aAAa;oBAC1B,YAAY,EAAE,KAAK;oBACnB,wBAAwB,EAAE,OAAO;iBAClC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;YACvE,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,KAAK;aACjB,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,SAAS,EAAE,KAAK;aACjB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1D,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,SAAS,EAAE,MAAM;aAClB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;YAC3G,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,6BAA6B,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACxC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC;YAErD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,SAAS;gBACrB,gBAAgB,EAAE,kBAA2B;gBAC7C,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,0BAA0B,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,6BAA6B,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;gBACzC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,SAAS;gBACrB,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAW;gBACpD,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,6BAA6B,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACxC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,SAAS;gBACrB,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,6BAA6B,CAAC,eAAe,CAAC;gBAC5C,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBACxC,QAAQ,EAAE,EAAE;aACb,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,UAAU,EAAE,aAAa;gBACzB,gBAAgB,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,EAAW;gBACpD,UAAU,EAAE,iBAAiB;aAC9B,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,cAAc;gBAC3B,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;YACrE,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,MAAM,CAAC,gBAAgB,CAAC;gBACtB,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC/E,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;YACpE,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,cAAc;oBAC3B,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,6EAA6E;IAE7E,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,8BAA8B,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;YACxE,MAAM,MAAM,GAAG,uBAAuB,EAAE,CAAC;YACzC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,QAAQ;gBACrB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;YACpF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAChC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,QAAQ;oBACrB,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;YACzD,MAAM,CAAC,GAAG,EAAE;gBACV,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,qBAAqB;oBAClC,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;YACtE,IAAI,MAAM,GAAY,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,qBAAqB;oBAClC,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACzD,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,4EAA4E;IAE5E,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,cAAc;gBAC3B,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,eAAe;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAC9C,MAAM,CAAC,gBAAgB,CAAC;gBACtB,OAAO,EAAE,eAAe;gBACxB,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,MAAM,GAAG,uBAAuB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,cAAc;gBAC3B,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAA4B,CAAC;YACjF,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,EAAE,CAAC,qEAAqE,EAAE,GAAG,EAAE;YAC7E,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAChC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,uDAAuD;YACvD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,KAAK,EAAE,2BAA2B;oBAClC,SAAS,EAAE,oBAAoB;iBAChC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,2BAA2B;gBAClC,SAAS,EAAE,oBAAoB;aAChC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2GAA2G,EAAE,GAAG,EAAE;YACnH,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAChC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,IAAI,MAAM,GAAY,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,KAAK;oBACnB,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE;wBACb,QAAQ,EAAE,YAAY;wBACtB,8BAA8B;qBAC/B;iBACF,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAoD,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC9E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;YAC3F,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAChC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,KAAK,EAAE,2BAA2B;oBAClC,SAAS,EAAE,oBAAoB;iBAChC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qGAAqG,EAAE,GAAG,EAAE;YAC7G,6EAA6E;YAC7E,4EAA4E;YAC5E,8EAA8E;YAC9E,6DAA6D;YAC7D,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YAC3D,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,wBAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEhD,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,KAAK,EAAE,2BAA2B;oBAClC,SAAS,EAAE,oBAAoB;oBAC/B,OAAO,EAAE,8BAA8B;iBACxC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,yBAAyB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CACvC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,QAAQ,EAAE,YAAY;gBACtB,OAAO,EAAE,8BAA8B;aACxC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kGAAkG,EAAE,GAAG,EAAE;YAC1G,mFAAmF;YACnF,sFAAsF;YACtF,mFAAmF;YACnF,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;YACpG,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,wBAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEhD,IAAI,MAAM,GAAY,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,KAAK;oBACnB,cAAc,EAAE,IAAI;oBACpB,+DAA+D;iBAChE,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAoD,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACvD,IAAI,QAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACd,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAC/C,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,QAAQ,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;YAC1F,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/E,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAE7C,IAAI,MAAM,GAAY,IAAI,CAAC;YAC3B,IAAI,CAAC;gBACH,+BAA+B,CAAC;oBAC9B,WAAW,EAAE,OAAO;oBACpB,YAAY,EAAE,KAAK;oBACnB,iBAAiB,EAAE,IAAI;iBACxB,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,CAAC;YACf,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAoD,CAAC;YACjE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,2BAA2B,CAAC,CAAC;YAC3D,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gFAAgF,EAAE,GAAG,EAAE;YACxF,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/E,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,gBAAgB,CAAC;YAEzD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,iBAAiB,EAAE,IAAI;aACxB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAY,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;YAC9E,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE,CAAC,CAAC;YAC/E,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3E,OAAO,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;YAE7C,gDAAgD;YAChD,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,iDAAiD;aAClD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC5C,8BAA8B,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,gBAAgB,EAAE,QAAQ;aAC3B,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mFAAmF,EAAE,GAAG,EAAE;YAC3F,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC3C,8BAA8B,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACzD,wBAAwB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAE/C,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;gBACnB,cAAc,EAAE,IAAI;gBACpB,aAAa,EAAE;oBACb,QAAQ,EAAE,YAAY;oBACtB,KAAK,EAAE,2BAA2B;oBAClC,SAAS,EAAE,oBAAoB;iBAChC;gBACD,gBAAgB,EAAE,QAAQ;aAC3B,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8EAA8E,EAAE,GAAG,EAAE;YACtF,MAAM,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,WAAoB,CAAC,CAAC;YAElD,+BAA+B,CAAC;gBAC9B,WAAW,EAAE,aAAa;gBAC1B,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,IAAI;gBACrB,wBAAwB,EAAE,OAAO;gBACjC,gBAAgB,EAAE,QAAQ;aAC3B,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;YAC3E,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;YACrC,8BAA8B,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;YAE3E,mBAAmB;YACnB,MAAM,MAAM,GAAG,+BAA+B,CAAC;gBAC7C,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,oBAAoB,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * PRI-432: Shared CLI output module.
3
+ *
4
+ * Extracts common output patterns from 3 CLI commands:
5
+ * - runtime-features.ts (JSON/text emit)
6
+ * - runtime-recovery.ts (dry-run/confirm conflict + JSON/text emit)
7
+ * - runtime-internalization-integrity-repair.ts (conflict + error catch + JSON/text emit)
8
+ *
9
+ * Design decisions:
10
+ * - formatText stays call-site-specific (domain layout differs per command).
11
+ * This module handles only cross-cutting output concerns.
12
+ * - Functions return exit codes; callers handle process.exit()/process.exitCode.
13
+ * This follows CLI Operator Gate rule #2 (no process.exit in shared modules).
14
+ * - JSON error shape: { ok: false, reason: string, nextAction: string }
15
+ * (matches runtime-internalization-integrity-repair.ts canonical pattern)
16
+ *
17
+ * ERR refs:
18
+ * - ERR-001 (no any): all types explicit
19
+ * - ERR-005 (no as bypass): no type casts
20
+ * - ERR-009 (fail-loud): emitError/emitFlagConflict return exit code 1
21
+ * - ERR-002 (graceful degradation with reason): all error paths include reason + nextAction
22
+ * - ERR-014 (bounded preview): JSON.stringify on known shapes only
23
+ */
24
+ export interface EmitResultOptions<T> {
25
+ /** When true, emit JSON to stdout; when false, emit text via formatText. */
26
+ json: boolean;
27
+ /** Call-site-specific text formatter (domain layout differs per command). */
28
+ formatText: (output: T) => string;
29
+ }
30
+ export interface EmitErrorOptions {
31
+ /** When true, emit JSON error to stdout; when false, emit text to stderr. */
32
+ json: boolean;
33
+ /** Next action suggestion for the user. */
34
+ nextAction: string;
35
+ }
36
+ export interface EmitFlagConflictOptions {
37
+ /** When true, emit JSON error to stdout; when false, emit text to stderr. */
38
+ json: boolean;
39
+ }
40
+ /**
41
+ * Emit a result object as JSON (stdout) or text (stdout via formatText).
42
+ * Does NOT set exit code — caller decides based on result status.
43
+ */
44
+ export declare function emitResult<T extends object>(output: T, opts: EmitResultOptions<T>): void;
45
+ /**
46
+ * Emit a dry-run/confirm flag conflict error.
47
+ * Returns exit code 1. Caller should process.exit(1) or set process.exitCode = 1.
48
+ *
49
+ * JSON shape: { ok: false, reason: string, nextAction: string }
50
+ * Text shape: console.error with message
51
+ */
52
+ export declare function emitFlagConflict(opts: EmitFlagConflictOptions): number;
53
+ /**
54
+ * Emit a structured error from a caught exception.
55
+ * Returns exit code 1. Caller should process.exit(1) or set process.exitCode = 1.
56
+ *
57
+ * JSON shape: { ok: false, reason: string, nextAction: string }
58
+ * Text shape: console.error with "Error: <message>"
59
+ */
60
+ export declare function emitError(err: unknown, opts: EmitErrorOptions): number;
61
+ //# sourceMappingURL=cli-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.d.ts","sourceRoot":"","sources":["../../src/services/cli-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,4EAA4E;IAC5E,IAAI,EAAE,OAAO,CAAC;IACd,6EAA6E;IAC7E,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,IAAI,EAAE,OAAO,CAAC;IACd,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,IAAI,EAAE,OAAO,CAAC;CACf;AAID;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAMxF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,MAAM,CAUtE;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAStE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * PRI-432: Shared CLI output module.
3
+ *
4
+ * Extracts common output patterns from 3 CLI commands:
5
+ * - runtime-features.ts (JSON/text emit)
6
+ * - runtime-recovery.ts (dry-run/confirm conflict + JSON/text emit)
7
+ * - runtime-internalization-integrity-repair.ts (conflict + error catch + JSON/text emit)
8
+ *
9
+ * Design decisions:
10
+ * - formatText stays call-site-specific (domain layout differs per command).
11
+ * This module handles only cross-cutting output concerns.
12
+ * - Functions return exit codes; callers handle process.exit()/process.exitCode.
13
+ * This follows CLI Operator Gate rule #2 (no process.exit in shared modules).
14
+ * - JSON error shape: { ok: false, reason: string, nextAction: string }
15
+ * (matches runtime-internalization-integrity-repair.ts canonical pattern)
16
+ *
17
+ * ERR refs:
18
+ * - ERR-001 (no any): all types explicit
19
+ * - ERR-005 (no as bypass): no type casts
20
+ * - ERR-009 (fail-loud): emitError/emitFlagConflict return exit code 1
21
+ * - ERR-002 (graceful degradation with reason): all error paths include reason + nextAction
22
+ * - ERR-014 (bounded preview): JSON.stringify on known shapes only
23
+ */
24
+ // ── Functions ──────────────────────────────────────────────────────────────
25
+ /**
26
+ * Emit a result object as JSON (stdout) or text (stdout via formatText).
27
+ * Does NOT set exit code — caller decides based on result status.
28
+ */
29
+ export function emitResult(output, opts) {
30
+ if (opts.json) {
31
+ console.log(JSON.stringify(output, null, 2));
32
+ }
33
+ else {
34
+ console.log(opts.formatText(output));
35
+ }
36
+ }
37
+ /**
38
+ * Emit a dry-run/confirm flag conflict error.
39
+ * Returns exit code 1. Caller should process.exit(1) or set process.exitCode = 1.
40
+ *
41
+ * JSON shape: { ok: false, reason: string, nextAction: string }
42
+ * Text shape: console.error with message
43
+ */
44
+ export function emitFlagConflict(opts) {
45
+ const reason = 'Error: --dry-run and --confirm are mutually exclusive';
46
+ const nextAction = 'Specify only one of --dry-run or --confirm';
47
+ if (opts.json) {
48
+ console.log(JSON.stringify({ ok: false, reason, nextAction }, null, 2));
49
+ }
50
+ else {
51
+ console.error(`${reason}. Specify one or the other.`);
52
+ }
53
+ return 1;
54
+ }
55
+ /**
56
+ * Emit a structured error from a caught exception.
57
+ * Returns exit code 1. Caller should process.exit(1) or set process.exitCode = 1.
58
+ *
59
+ * JSON shape: { ok: false, reason: string, nextAction: string }
60
+ * Text shape: console.error with "Error: <message>"
61
+ */
62
+ export function emitError(err, opts) {
63
+ const reason = err instanceof Error ? err.message : String(err);
64
+ if (opts.json) {
65
+ console.log(JSON.stringify({ ok: false, reason, nextAction: opts.nextAction }, null, 2));
66
+ }
67
+ else {
68
+ console.error(`Error: ${reason}`);
69
+ }
70
+ return 1;
71
+ }
72
+ //# sourceMappingURL=cli-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.js","sourceRoot":"","sources":["../../src/services/cli-output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAuBH,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAmB,MAAS,EAAE,IAA0B;IAChF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAA6B;IAC5D,MAAM,MAAM,GAAG,uDAAuD,CAAC;IACvE,MAAM,UAAU,GAAG,4CAA4C,CAAC;IAEhE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,6BAA6B,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,GAAY,EAAE,IAAsB;IAC5D,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAEhE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * PRI-431 Step 3: Shared runtime-adapter resolver.
3
+ *
4
+ * Extracted from duplicated `resolveRuntimeAdapter` in:
5
+ * - packages/pd-cli/src/commands/runtime-internalization-run-once.ts (L222-551)
6
+ * - packages/pd-cli/src/commands/diagnose.ts (L186-334, inline)
7
+ *
8
+ * Design decisions:
9
+ * - Test-double payloads stay call-site-specific via `testDoublePayloadBuilder` callback.
10
+ * The 7 internalization runner payloads (philosopher/scribe/artificer/...) are unique
11
+ * to run-once.ts; the diagnostician payload is unique to diagnose.ts. Unifying them
12
+ * would couple unrelated domains.
13
+ * - CLI-gate concerns (process.exit, telemetry, help text) stay at call sites.
14
+ * This resolver throws structured `ConfigResolutionError` that handlers translate.
15
+ * - Lives in pd-cli/services (NOT core) because it constructs adapters and reads
16
+ * CLI feature flags via `loadEffectiveFeatureFlags`, which is a pd-cli service.
17
+ *
18
+ * ERR refs:
19
+ * - ERR-001 (no any): all types explicit
20
+ * - ERR-005 (no as bypass): no type casts
21
+ * - ERR-009 (fail-loud): ConfigResolutionError thrown with structured fields
22
+ * - ERR-013 (Object.hasOwn): feature flag check uses Object.hasOwn
23
+ * - ERR-002 (graceful degradation with reason): structured error includes reason + nextAction
24
+ */
25
+ import { TestDoubleRuntimeAdapter, isRuntimeConfigError, validateRuntimeConfig } from '@principles/core/runtime-v2';
26
+ import type { PDRuntimeAdapter, PdL2ArtifactReader, RuntimeConfig, RuntimeConfigResult } from '@principles/core/runtime-v2';
27
+ import type { ResolvedRuntimeFromPdConfig } from './resolve-runtime-from-pd-config.js';
28
+ export type ConfigResolutionErrorKind = 'missing-fields' | 'invalid-config' | 'unsupported-runtime' | 'test-double-refused';
29
+ export interface ConfigResolutionErrorDetails {
30
+ /** Required fields that are missing (for 'missing-fields' kind). */
31
+ missing?: string[];
32
+ /** Structured next action for the operator (CLI Operator Gate rule #6). */
33
+ nextAction?: string;
34
+ }
35
+ export declare class ConfigResolutionError extends Error {
36
+ readonly kind: ConfigResolutionErrorKind;
37
+ readonly missing?: string[];
38
+ readonly nextAction?: string;
39
+ constructor(message: string, kind: ConfigResolutionErrorKind, details?: ConfigResolutionErrorDetails);
40
+ }
41
+ export interface ResolveAdapterOptions {
42
+ /** Runtime kind: 'test-double' | 'pi-ai' | 'openclaw-cli' | 'config' */
43
+ runtimeKind: string;
44
+ /** Workspace directory (for config resolution + feature flags) */
45
+ workspaceDir: string;
46
+ /** Runner kind (for L2 dreamer routing). Optional. */
47
+ runnerKind?: string;
48
+ /** CLI timeout override. Takes precedence over config timeoutMs. */
49
+ timeoutMs?: number;
50
+ /**
51
+ * Whether test-double runtime is allowed. Default: false.
52
+ * When false, 'test-double' runtimeKind throws ConfigResolutionError.
53
+ */
54
+ allowTestDouble?: boolean;
55
+ /**
56
+ * Call-site-specific test-double payload builder.
57
+ * Required when runtimeKind === 'test-double' and allowTestDouble === true.
58
+ * Receives the full opts object so the builder can access taskId, runnerKind, etc.
59
+ */
60
+ testDoublePayloadBuilder?: (opts: ResolveAdapterOptions) => PDRuntimeAdapter;
61
+ /**
62
+ * CLI overrides for pi-ai runtime (from --provider, --model, etc. flags).
63
+ * When provided, these take precedence over config values.
64
+ */
65
+ piAiOverrides?: {
66
+ provider?: string;
67
+ model?: string;
68
+ apiKeyEnv?: string;
69
+ baseUrl?: string;
70
+ maxRetries?: number;
71
+ };
72
+ /**
73
+ * CLI override for openclaw mode (from --openclaw-local / --openclaw-gateway flags).
74
+ * When provided, takes precedence over config openclawMode.
75
+ */
76
+ openclawMode?: 'local' | 'gateway';
77
+ /** PRI-419: L2 artifact reader (only used when l2_dreamer is on). */
78
+ l2ArtifactReader?: PdL2ArtifactReader;
79
+ /** PRI-419: workspace stateDir for L2 principle reader (only used when l2_dreamer is on). */
80
+ l2StateDir?: string;
81
+ /** PRI-431 Step 1d: CLI agentId override for openclaw-cli (from --agent flag). Default: 'main'. */
82
+ agentId?: string;
83
+ /**
84
+ * PRI-431 Step 1d: Whether config resolution errors are tolerated (proceed with CLI overrides alone).
85
+ * When true, pi-ai branch skips validateRuntimeConfig and uses manual missing-field check.
86
+ * Default: false (config errors throw ConfigResolutionError).
87
+ */
88
+ configOptional?: boolean;
89
+ /**
90
+ * PRI-431 Step 1d: Whether to validate that process.env[apiKeyEnv] is set before
91
+ * constructing PiAiRuntimeAdapter. Default: false (env var check stays at call site for backward compat).
92
+ */
93
+ validateApiKeyEnv?: boolean;
94
+ /**
95
+ * PRI-431 Step 1d: Callback invoked with the full resolved config object (including legacyWarnings)
96
+ * after successful config resolution. Useful for telemetry, legacyWarnings printing, etc.
97
+ * NOT called for test-double branch (no config resolution).
98
+ * Called even when config returns error IF configOptional is true.
99
+ */
100
+ onConfigResolved?: (resolved: ResolvedRuntimeFromPdConfig) => void;
101
+ }
102
+ export declare function resolveRuntimeAdapterFromConfig(opts: ResolveAdapterOptions): PDRuntimeAdapter;
103
+ export type { RuntimeConfig, RuntimeConfigResult };
104
+ export { TestDoubleRuntimeAdapter, isRuntimeConfigError, validateRuntimeConfig };
105
+ //# sourceMappingURL=runtime-adapter-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter-resolver.d.ts","sourceRoot":"","sources":["../../src/services/runtime-adapter-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,wBAAwB,EAMxB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAG5H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAIvF,MAAM,MAAM,yBAAyB,GACjC,gBAAgB,GAChB,gBAAgB,GAChB,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,4BAA4B;IAC3C,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAG3B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,4BAA4B;CAQzC;AAID,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,qBAAqB,KAAK,gBAAgB,CAAC;IAC7E;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,2BAA2B,KAAK,IAAI,CAAC;CACpE;AAID,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,qBAAqB,GAAG,gBAAgB,CAkM7F;AAID,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * PRI-431 Step 3: Shared runtime-adapter resolver.
3
+ *
4
+ * Extracted from duplicated `resolveRuntimeAdapter` in:
5
+ * - packages/pd-cli/src/commands/runtime-internalization-run-once.ts (L222-551)
6
+ * - packages/pd-cli/src/commands/diagnose.ts (L186-334, inline)
7
+ *
8
+ * Design decisions:
9
+ * - Test-double payloads stay call-site-specific via `testDoublePayloadBuilder` callback.
10
+ * The 7 internalization runner payloads (philosopher/scribe/artificer/...) are unique
11
+ * to run-once.ts; the diagnostician payload is unique to diagnose.ts. Unifying them
12
+ * would couple unrelated domains.
13
+ * - CLI-gate concerns (process.exit, telemetry, help text) stay at call sites.
14
+ * This resolver throws structured `ConfigResolutionError` that handlers translate.
15
+ * - Lives in pd-cli/services (NOT core) because it constructs adapters and reads
16
+ * CLI feature flags via `loadEffectiveFeatureFlags`, which is a pd-cli service.
17
+ *
18
+ * ERR refs:
19
+ * - ERR-001 (no any): all types explicit
20
+ * - ERR-005 (no as bypass): no type casts
21
+ * - ERR-009 (fail-loud): ConfigResolutionError thrown with structured fields
22
+ * - ERR-013 (Object.hasOwn): feature flag check uses Object.hasOwn
23
+ * - ERR-002 (graceful degradation with reason): structured error includes reason + nextAction
24
+ */
25
+ import { TestDoubleRuntimeAdapter, PiAiRuntimeAdapter, OpenClawCliRuntimeAdapter, L2AgentLoopAdapter, buildL2PrincipleReaderFromLedger, loadLedger, isRuntimeConfigError, validateRuntimeConfig, } from '@principles/core/runtime-v2';
26
+ import { loadEffectiveFeatureFlags } from './feature-flag-loader.js';
27
+ import { resolveRuntimeFromPdConfig } from './resolve-runtime-from-pd-config.js';
28
+ export class ConfigResolutionError extends Error {
29
+ kind;
30
+ missing;
31
+ nextAction;
32
+ constructor(message, kind, details) {
33
+ super(message);
34
+ this.name = 'ConfigResolutionError';
35
+ this.kind = kind;
36
+ this.missing = details?.missing;
37
+ this.nextAction = details?.nextAction;
38
+ }
39
+ }
40
+ // ── Resolver function ──────────────────────────────────────────────────────
41
+ export function resolveRuntimeAdapterFromConfig(opts) {
42
+ // ── test-double branch ──────────────────────────────────────────────────
43
+ if (opts.runtimeKind === 'test-double') {
44
+ if (!opts.allowTestDouble) {
45
+ throw new ConfigResolutionError('runtimeKind "test-double" requires allowTestDouble=true.', 'test-double-refused', { nextAction: 'Pass --allow-test-double or use a production runtime kind.' });
46
+ }
47
+ if (!opts.testDoublePayloadBuilder) {
48
+ throw new ConfigResolutionError('runtimeKind "test-double" requires testDoublePayloadBuilder callback.', 'missing-fields', {
49
+ missing: ['testDoublePayloadBuilder'],
50
+ nextAction: 'Provide a testDoublePayloadBuilder function that constructs the test-double adapter.',
51
+ });
52
+ }
53
+ return opts.testDoublePayloadBuilder(opts);
54
+ }
55
+ // ── Resolve config from .pd/config.yaml (for pi-ai, openclaw-cli, config) ──
56
+ const resolved = resolveRuntimeFromPdConfig(opts.workspaceDir);
57
+ const configResult = resolved.result;
58
+ // PRI-431 Step 1d: invoke onConfigResolved callback (for telemetry, legacyWarnings, etc.)
59
+ opts.onConfigResolved?.(resolved);
60
+ if (isRuntimeConfigError(configResult)) {
61
+ if (!opts.configOptional) {
62
+ throw new ConfigResolutionError(`Config resolution from .pd/config.yaml failed: ${configResult.reason}. ${configResult.message}`, 'invalid-config', { nextAction: configResult.nextAction });
63
+ }
64
+ // configOptional=true: proceed with CLI overrides alone (pi-ai branch handles missing fields)
65
+ }
66
+ // ── pi-ai branch ────────────────────────────────────────────────────────
67
+ // When runtimeKind === 'config', configResult must be a valid RuntimeConfig
68
+ // (if it were an error and !configOptional, we threw above; if configOptional,
69
+ // the caller passes an explicit runtimeKind, never 'config'). The type guard
70
+ // also narrows for TypeScript.
71
+ const isPiAi = opts.runtimeKind === 'pi-ai' ||
72
+ (opts.runtimeKind === 'config' &&
73
+ !isRuntimeConfigError(configResult) &&
74
+ configResult.runtimeKind === 'pi-ai');
75
+ if (isPiAi) {
76
+ // PRI-431 Step 1d + PR review fix: validateRuntimeConfig is only called when
77
+ // config is valid AND configOptional is false. When configOptional=true (diagnose.ts),
78
+ // skip validateRuntimeConfig to match the original diagnose.ts behavior (which never
79
+ // called it — only did a manual missing-field check on merged values). This avoids
80
+ // a behavior change where validateRuntimeConfig would reject configs missing baseUrl
81
+ // for non-built-in providers, even when the user passes --baseUrl on the CLI.
82
+ if (!opts.configOptional && !isRuntimeConfigError(configResult)) {
83
+ try {
84
+ validateRuntimeConfig(configResult);
85
+ }
86
+ catch (err) {
87
+ throw new ConfigResolutionError(err instanceof Error ? err.message : String(err), 'invalid-config');
88
+ }
89
+ }
90
+ // Merge CLI overrides with config values (overrides take precedence)
91
+ // When configOptional and config failed, configResult fields are unavailable — use empty object
92
+ const configFields = isRuntimeConfigError(configResult) ? {} : configResult;
93
+ const provider = opts.piAiOverrides?.provider ?? configFields.provider;
94
+ const model = opts.piAiOverrides?.model ?? configFields.model;
95
+ const apiKeyEnv = opts.piAiOverrides?.apiKeyEnv ?? configFields.apiKeyEnv;
96
+ const baseUrl = opts.piAiOverrides?.baseUrl ?? configFields.baseUrl;
97
+ const maxRetries = opts.piAiOverrides?.maxRetries ?? configFields.maxRetries;
98
+ const adapterTimeoutMs = opts.timeoutMs ?? configFields.timeoutMs;
99
+ // PRI-431 Step 1d + PR review fix: manual missing-field check on MERGED values
100
+ // when configOptional=true. The original diagnose.ts always did this check on merged
101
+ // values (not just when config failed), so we replicate that here. This covers both
102
+ // the "config failed" case and the "config valid but missing fields not in config" case.
103
+ if (opts.configOptional) {
104
+ const missing = [];
105
+ if (!provider)
106
+ missing.push('provider');
107
+ if (!model)
108
+ missing.push('model');
109
+ if (!apiKeyEnv)
110
+ missing.push('apiKeyEnv');
111
+ if (missing.length > 0) {
112
+ throw new ConfigResolutionError(`Missing required pi-ai config: ${missing.join(', ')}.`, 'missing-fields', {
113
+ missing,
114
+ nextAction: 'Pass --provider, --model, --apiKeyEnv flags or configure .pd/config.yaml runtime profile.',
115
+ });
116
+ }
117
+ }
118
+ // PRI-431 Step 1d: validate API key env var when requested
119
+ if (opts.validateApiKeyEnv && apiKeyEnv && !process.env[apiKeyEnv]) {
120
+ throw new ConfigResolutionError(`Environment variable '${apiKeyEnv}' is not set.`, 'invalid-config', {
121
+ nextAction: 'Set the env var (e.g., export OPENAI_API_KEY=...) or choose a different apiKeyEnv.',
122
+ });
123
+ }
124
+ // PRI-419: L2 dreamer sub-branch — when l2_dreamer flag is on AND this is the
125
+ // dreamer runner, route through the L2 multi-turn agent loop adapter.
126
+ // Other runners (philosopher/scribe/...) stay on L1.
127
+ if (opts.runnerKind === 'dreamer' && opts.l2ArtifactReader && opts.l2StateDir) {
128
+ const effectiveFlags = loadEffectiveFeatureFlags(opts.workspaceDir);
129
+ const l2Flag = Object.hasOwn(effectiveFlags.flags, 'l2_dreamer')
130
+ ? effectiveFlags.flags.l2_dreamer.enabled
131
+ : false;
132
+ if (l2Flag) {
133
+ return new L2AgentLoopAdapter({
134
+ provider: String(provider),
135
+ model: String(model),
136
+ apiKeyEnv: String(apiKeyEnv),
137
+ baseUrl,
138
+ workspace: opts.workspaceDir,
139
+ totalBudgetMs: adapterTimeoutMs,
140
+ }, {
141
+ artifactReader: opts.l2ArtifactReader,
142
+ principleReader: buildL2PrincipleReaderFromLedger(loadLedger(opts.l2StateDir)),
143
+ });
144
+ }
145
+ }
146
+ return new PiAiRuntimeAdapter({
147
+ provider: String(provider),
148
+ model: String(model),
149
+ apiKeyEnv: String(apiKeyEnv),
150
+ maxRetries,
151
+ timeoutMs: adapterTimeoutMs,
152
+ baseUrl,
153
+ workspace: opts.workspaceDir,
154
+ });
155
+ }
156
+ // ── openclaw-cli branch ─────────────────────────────────────────────────
157
+ const isOpenClawCli = opts.runtimeKind === 'openclaw-cli' ||
158
+ (opts.runtimeKind === 'config' &&
159
+ !isRuntimeConfigError(configResult) &&
160
+ configResult.runtimeKind === 'openclaw-cli');
161
+ if (isOpenClawCli) {
162
+ // PRI-431 Step 1d: handle configOptional — when config failed, configFields is empty
163
+ const openclawConfigFields = isRuntimeConfigError(configResult)
164
+ ? {}
165
+ : configResult;
166
+ // CLI override takes precedence over config
167
+ const openclawMode = opts.openclawMode ?? openclawConfigFields.openclawMode;
168
+ if (!openclawMode) {
169
+ throw new ConfigResolutionError("runtimeKind 'openclaw-cli' requires openclawMode.", 'missing-fields', {
170
+ missing: ['openclawMode'],
171
+ nextAction: 'Add openclawMode: local|gateway to your .pd/config.yaml runtime profile or use --openclaw-local/--openclaw-gateway flags.',
172
+ });
173
+ }
174
+ // PRI-431 Step 1d: only pass agentId when explicitly provided (backward compat with run-once.ts)
175
+ const openclawAdapterOpts = {
176
+ runtimeMode: openclawMode,
177
+ workspaceDir: opts.workspaceDir,
178
+ };
179
+ if (opts.agentId !== undefined) {
180
+ openclawAdapterOpts.agentId = opts.agentId;
181
+ }
182
+ return new OpenClawCliRuntimeAdapter(openclawAdapterOpts);
183
+ }
184
+ // ── Unsupported runtime ────────────────────────────────────────────────
185
+ throw new Error(`Unsupported runtime kind: ${opts.runtimeKind}. Supported: test-double, pi-ai, openclaw-cli, config`);
186
+ }
187
+ export { TestDoubleRuntimeAdapter, isRuntimeConfigError, validateRuntimeConfig };
188
+ //# sourceMappingURL=runtime-adapter-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter-resolver.js","sourceRoot":"","sources":["../../src/services/runtime-adapter-resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principles/pd-cli",
3
- "version": "1.115.0",
3
+ "version": "1.116.0",
4
4
  "description": "PD CLI — Pain recording, sample management, and evolution tasks",
5
5
  "type": "module",
6
6
  "bin": {