@lucern/pack-host 1.0.36 → 1.0.38

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 (78) hide show
  1. package/dist/contracts.js +0 -2
  2. package/dist/convex.config.js +0 -2
  3. package/dist/dependencyResolution.js +0 -2
  4. package/dist/domain-pack/authoring.core.js +0 -2
  5. package/dist/domain-pack/authoring.js +0 -2
  6. package/dist/domain-pack/authoring.validation.js +0 -2
  7. package/dist/domain-pack/contracts.js +0 -2
  8. package/dist/domain-pack/index.js +0 -2
  9. package/dist/domain-pack/ontology/software-entities-v1.js +0 -2
  10. package/dist/domain-pack/packs/developer-reasoning.js +0 -2
  11. package/dist/domain-pack/packs/engineering-accelerator-tail.js +0 -2
  12. package/dist/domain-pack/packs/engineering-accelerator.js +0 -2
  13. package/dist/domain-pack/packs/index.js +0 -2
  14. package/dist/domain-pack/shaping.js +0 -2
  15. package/dist/domain-pack/validation.js +0 -2
  16. package/dist/domain-pack.js +0 -2
  17. package/dist/index.js +0 -2
  18. package/dist/lifecycle.js +0 -2
  19. package/dist/manifestValidation.js +0 -2
  20. package/dist/manifests/chat-v1.js +0 -2
  21. package/dist/manifests/deals-v1.js +0 -2
  22. package/dist/manifests/decisions-v1.js +0 -2
  23. package/dist/manifests/documents-v1.js +0 -2
  24. package/dist/manifests/epistemic-algorithms-v1.js +0 -2
  25. package/dist/manifests/graph-visualization-v1.js +0 -2
  26. package/dist/manifests/index.js +0 -2
  27. package/dist/manifests/news-v1.js +0 -2
  28. package/dist/manifests/philosophy-mode-v1.js +0 -2
  29. package/dist/manifests/sprints-v1.js +0 -2
  30. package/dist/manifests/task-management-v1.js +0 -2
  31. package/dist/manifests/team-analysis-v1.js +0 -2
  32. package/dist/manifests/themes-v1.js +0 -2
  33. package/dist/manifests/user-profiles-v1.js +0 -2
  34. package/dist/manifests.js +0 -2
  35. package/dist/namespacePolicy.js +0 -2
  36. package/dist/proof-attestation.json +1 -1
  37. package/dist/registry.js +0 -2
  38. package/dist/runtime.js +0 -2
  39. package/dist/serviceContracts.js +0 -2
  40. package/package.json +1 -1
  41. package/dist/contracts.js.map +0 -1
  42. package/dist/convex.config.js.map +0 -1
  43. package/dist/dependencyResolution.js.map +0 -1
  44. package/dist/domain-pack/authoring.core.js.map +0 -1
  45. package/dist/domain-pack/authoring.js.map +0 -1
  46. package/dist/domain-pack/authoring.validation.js.map +0 -1
  47. package/dist/domain-pack/contracts.js.map +0 -1
  48. package/dist/domain-pack/index.js.map +0 -1
  49. package/dist/domain-pack/ontology/software-entities-v1.js.map +0 -1
  50. package/dist/domain-pack/packs/developer-reasoning.js.map +0 -1
  51. package/dist/domain-pack/packs/engineering-accelerator-tail.js.map +0 -1
  52. package/dist/domain-pack/packs/engineering-accelerator.js.map +0 -1
  53. package/dist/domain-pack/packs/index.js.map +0 -1
  54. package/dist/domain-pack/shaping.js.map +0 -1
  55. package/dist/domain-pack/validation.js.map +0 -1
  56. package/dist/domain-pack.js.map +0 -1
  57. package/dist/index.js.map +0 -1
  58. package/dist/lifecycle.js.map +0 -1
  59. package/dist/manifestValidation.js.map +0 -1
  60. package/dist/manifests/chat-v1.js.map +0 -1
  61. package/dist/manifests/deals-v1.js.map +0 -1
  62. package/dist/manifests/decisions-v1.js.map +0 -1
  63. package/dist/manifests/documents-v1.js.map +0 -1
  64. package/dist/manifests/epistemic-algorithms-v1.js.map +0 -1
  65. package/dist/manifests/graph-visualization-v1.js.map +0 -1
  66. package/dist/manifests/index.js.map +0 -1
  67. package/dist/manifests/news-v1.js.map +0 -1
  68. package/dist/manifests/philosophy-mode-v1.js.map +0 -1
  69. package/dist/manifests/sprints-v1.js.map +0 -1
  70. package/dist/manifests/task-management-v1.js.map +0 -1
  71. package/dist/manifests/team-analysis-v1.js.map +0 -1
  72. package/dist/manifests/themes-v1.js.map +0 -1
  73. package/dist/manifests/user-profiles-v1.js.map +0 -1
  74. package/dist/manifests.js.map +0 -1
  75. package/dist/namespacePolicy.js.map +0 -1
  76. package/dist/registry.js.map +0 -1
  77. package/dist/runtime.js.map +0 -1
  78. package/dist/serviceContracts.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/domain-pack/contracts.ts","../../src/domain-pack/authoring.core.ts","../../src/domain-pack/validation.ts","../../src/domain-pack/authoring.validation.ts","../../src/domain-pack/authoring.ts"],"names":["dedupeStrings","normalizeRuntimeTargets","KEBAB_CASE","SEMVER","issue","isPlainObject","detectDomainPackManifestFormat","validateDomainPackAuthoringManifest","validateDomainPackAuthoringManifestSource","previewDomainPackAuthoringManifest","previewDomainPackAuthoringManifestSource","publishDomainPackAuthoringManifest","publishDomainPackAuthoringManifestSource","createDomainPackAuthoringTools"],"mappings":";AAmSA,SAAS,cAAc,MAAA,EAA4B;AACjD,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACX,IAAI,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,MAAM,CAAA,CAAE,IAAA,EAAM,CAAA,CAAE,OAAO,CAAC,CAAA,KAAM,CAAA,CAAE,MAAA,GAAS,CAAC,CAAC;AAAA,GACjE;AACF;AAMA,SAAS,wBACP,MAAA,EAC6B;AAC7B,EAAA,OAAO,MAAA,GAAU,aAAA,CAAc,MAAM,CAAA,GAAwB,MAAA;AAC/D;AAEA,SAAS,yBAAyB,OAAA,EAA2C;AAC3E,EAAA,OAAO;AAAA,IACL,GAAG,OAAA;AAAA,IACH,qBAAqB,OAAA,CAAQ,mBAAA,GACzB,aAAA,CAAc,OAAA,CAAQ,mBAAmB,CAAA,GACzC,MAAA;AAAA,IACJ,mBAAmB,OAAA,CAAQ,iBAAA,GACvB,aAAA,CAAc,OAAA,CAAQ,iBAAiB,CAAA,GACvC;AAAA,GACN;AACF;AAEA,SAAS,yBACP,KAAA,EACkC;AAClC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,KAAA,CAAM,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,MAAY;AAAA,MACvC,GAAG,MAAA;AAAA,MACH,cAAA,EAAgB,uBAAA,CAAwB,MAAA,CAAO,cAAc;AAAA,KAC/D,CAAE,CAAA;AAAA,IACF,KAAA,EAAO,KAAA,CAAM,KAAA,EAAO,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MACjC,GAAG,IAAA;AAAA,MACH,cAAA,EAAgB,uBAAA,CAAwB,IAAA,CAAK,cAAc;AAAA,KAC7D,CAAE,CAAA;AAAA,IACF,WAAA,EAAa,KAAA,CAAM,WAAA,EAAa,GAAA,CAAI,CAAC,KAAA,MAAW;AAAA,MAC9C,GAAG,KAAA;AAAA,MACH,cAAA,EAAgB,uBAAA,CAAwB,KAAA,CAAM,cAAc;AAAA,KAC9D,CAAE,CAAA;AAAA,IACF,gBAAgB,KAAA,CAAM,cAAA;AAAA,IACtB,eAAA,EAAiB,KAAA,CAAM,eAAA,EAAiB,GAAA,CAAI,CAAC,OAAA,MAAa;AAAA,MACxD,GAAG,OAAA;AAAA,MACH,SAAA,EAAW,aAAA,CAAc,OAAA,CAAQ,SAAS,CAAA;AAAA,MAC1C,OAAA,EAAS,aAAA,CAAc,OAAA,CAAQ,OAAO,CAAA;AAAA,MACtC,QAAA,EAAU,aAAA,CAAc,OAAA,CAAQ,QAAQ,CAAA;AAAA,MACxC,iBAAA,EAAmB,aAAA,CAAc,OAAA,CAAQ,iBAAiB;AAAA,KAC5D,CAAE;AAAA,GACJ;AACF;AAEO,SAAS,iBAAiB,KAAA,EAAoC;AACnE,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,gBAAA,EAAkB,KAAA,CAAM,gBAAA,CAAiB,GAAA,CAAI,wBAAwB,CAAA;AAAA,IACrE,aAAa,KAAA,CAAM,WAAA,GACf,aAAA,CAAc,KAAA,CAAM,WAAW,CAAA,GAC/B,MAAA;AAAA,IACJ,eAAA,EAAiB,wBAAA,CAAyB,KAAA,CAAM,eAAe,CAAA;AAAA,IAC/D,SAAA,EAAW,KAAA,CAAM,SAAA,CAAU,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,MACrC,GAAG,CAAA;AAAA,MACH,iBAAA,EAAmB,aAAA,CAAc,CAAA,CAAE,iBAAiB,CAAA;AAAA,MACpD,eAAA,EAAiB,aAAA,CAAc,CAAA,CAAE,eAAe,CAAA;AAAA,MAChD,KAAA,EAAO,CAAA,CAAE,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,QACzB,GAAG,CAAA;AAAA,QACH,aAAA,EAAe,aAAA,CAAc,CAAA,CAAE,aAAa,CAAA;AAAA,QAC5C,UAAU,CAAA,CAAE,QAAA,GAAW,aAAA,CAAc,CAAA,CAAE,QAAQ,CAAA,GAAI;AAAA,OACrD,CAAE;AAAA,KACJ,CAAE;AAAA,GACJ;AACF;;;AClWO,IAAM,yBAAA,GAA4B,6BAAA;AACzC,IAAM,wBAAA,GAA2B,OAAA;AACjC,IAAM,mBAAA,GAAsB,mBAAA;AAwL5B,SAAS,cAAc,KAAA,EAAkD;AACvE,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IACjB,KAAA,KAAU,QACV,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IACpB,MAAA,CAAO,cAAA,CAAe,KAAK,MAAM,MAAA,CAAO,SAAA;AAE5C;AAEA,SAASA,eAAc,MAAA,EAAoD;AACzE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA;AAAA,EACF;AACA,EAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACX,IAAI,GAAA,CAAI,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,IAAA,EAAM,EAAE,MAAA,CAAO,CAAC,KAAA,KAAU,KAAA,CAAM,MAAM,CAAC;AAAA,GAC7E;AACF;AAEA,SAASC,yBACP,MAAA,EAC6B;AAC7B,EAAA,OAAO,MAAA,GAAUD,cAAAA,CAAc,MAAM,CAAA,GAAwB,MAAA;AAC/D;AAEA,SAAS,oBACP,UAAA,EAC2C;AAC3C,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA;AAAA,EACF;AAEA,EAAA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,MAAe;AAAA,IACpC,GAAG,SAAA;AAAA,IACH,WAAA,EAAa,SAAA,CAAU,WAAA,CAAY,IAAA,EAAK;AAAA,IACxC,OAAA,EAAS,SAAA,CAAU,OAAA,CAAQ,IAAA,EAAK;AAAA,IAChC,iBAAA,EAAmB,SAAA,CAAU,iBAAA,EAAmB,IAAA,EAAK;AAAA,IACrD,cAAA,EAAgBC,wBAAAA,CAAwB,SAAA,CAAU,cAAc;AAAA,GAClE,CAAE,CAAA;AACJ;AAEA,SAAS,0BACP,UAAA,EACyC;AACzC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA;AAAA,EACF;AAEA,EAAA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,MAAe;AAAA,IACpC,GAAG,SAAA;AAAA,IACH,WAAA,EAAa,SAAA,CAAU,WAAA,CAAY,IAAA,EAAK;AAAA,IACxC,QAAQ,SAAA,CAAU,MAAA;AAAA,IAClB,WAAA,EAAa,SAAA,CAAU,WAAA,CAAY,IAAA,EAAK;AAAA,IACxC,OAAA,EAAS,SAAA,CAAU,OAAA,CAAQ,IAAA,EAAK;AAAA,IAChC,OAAA,EAAS,SAAA,CAAU,OAAA,EAAS,IAAA;AAAK,GACnC,CAAE,CAAA;AACJ;AAEA,SAAS,4BACP,UAAA,EAC2C;AAC3C,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA;AAAA,EACF;AAEA,EAAA,OAAO,UAAA,CAAW,GAAA,CAAI,CAAC,SAAA,MAAe;AAAA,IACpC,GAAG,SAAA;AAAA,IACH,WAAA,EAAa,SAAA,CAAU,WAAA,CAAY,IAAA,EAAK;AAAA,IACxC,UAAA,EAAY,SAAA,CAAU,UAAA,CAAW,IAAA,EAAK;AAAA,IACtC,qBAAA,EAAuB,SAAA,CAAU,qBAAA,CAAsB,IAAA,EAAK;AAAA,IAC5D,WAAA,EAAa,SAAA,CAAU,WAAA,EAAa,GAAA,CAAI,CAAC,UAAA,MAAgB;AAAA,MACvD,GAAG,UAAA;AAAA,MACH,KAAA,EAAO,UAAA,CAAW,KAAA,CAAM,IAAA,EAAK;AAAA,MAC7B,KAAA,EAAO,UAAA,CAAW,KAAA,CAAM,IAAA,EAAK;AAAA,MAC7B,WAAA,EAAa,UAAA,CAAW,WAAA,EAAa,IAAA,EAAK;AAAA,MAC1C,QAAA,EAAUD,cAAAA,CAAc,UAAA,CAAW,QAAQ;AAAA,KAC7C,CAAE,CAAA;AAAA,IACF,SAAA,EAAW,SAAA,CAAU,SAAA,EAAW,GAAA,CAAI,CAAC,QAAA,MAAc;AAAA,MACjD,GAAG,QAAA;AAAA,MACH,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAK;AAAA,MAC3B,KAAA,EAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAK;AAAA,MAC3B,WAAA,EAAa,QAAA,CAAS,WAAA,EAAa,IAAA,EAAK;AAAA,MACxC,WAAA,EAAaA,cAAAA,CAAc,QAAA,CAAS,WAAW,CAAA;AAAA,MAC/C,WAAA,EAAaA,cAAAA,CAAc,QAAA,CAAS,WAAW;AAAA,KACjD,CAAE;AAAA,GACJ,CAAE,CAAA;AACJ;AAEA,SAAS,iBACP,OAAA,EACmB;AACnB,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,EAAE,MAAM,MAAA,EAAO;AAAA,EACxB;AAEA,EAAA,OAAO;AAAA,IACL,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,YAAA,EAAc,OAAA,CAAQ,YAAA,EAAc,IAAA,EAAK;AAAA,IACzC,aAAA,EAAe,OAAA,CAAQ,aAAA,EAAe,IAAA,EAAK;AAAA,IAC3C,oBAAA,EAAsB,OAAA,CAAQ,oBAAA,EAAsB,IAAA,EAAK;AAAA,IACzD,gBAAA,EAAkB,OAAA,CAAQ,gBAAA,EAAkB,IAAA,EAAK;AAAA,IACjD,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA;AAAK,GAC7B;AACF;AAEA,SAAS,kBACP,QAAA,EACyC;AACzC,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,QAAA,CAAS,WAAA,EAAa,IAAA,EAAK;AAAA,IACxC,KAAA,EAAO,QAAA,CAAS,KAAA,EAAO,IAAA,EAAK;AAAA,IAC5B,IAAA,EAAMA,cAAAA,CAAc,QAAA,CAAS,IAAI;AAAA,GACnC;AACF;AAEA,SAAS,aAAa,IAAA,EAAgD;AACpE,EAAA,OAAO,iBAAiB,IAAuB,CAAA;AACjD;AAEO,SAAS,kCACd,KAAA,EAC6B;AAC7B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,MAAM,IAAA,IAAQ,yBAAA;AAAA,IACpB,eAAA,EAAiB,KAAA,CAAM,eAAA,EAAiB,IAAA,EAAK,IAAK,wBAAA;AAAA,IAClD,IAAA,EAAM,YAAA,CAAa,KAAA,CAAM,IAAI,CAAA;AAAA,IAC7B,UAAA,EAAY,mBAAA,CAAoB,KAAA,CAAM,UAAU,CAAA;AAAA,IAChD,gBAAA,EAAkB,yBAAA,CAA0B,KAAA,CAAM,gBAAgB,CAAA;AAAA,IAClE,kBAAA,EAAoB,2BAAA,CAA4B,KAAA,CAAM,kBAAkB,CAAA;AAAA,IACxE,OAAA,EAAS,gBAAA,CAAiB,KAAA,CAAM,OAAO,CAAA;AAAA,IACvC,QAAA,EAAU,iBAAA,CAAkB,KAAA,CAAM,QAAQ;AAAA,GAC5C;AACF;AAEO,SAAS,uBACd,QAAA,EAC0B;AAC1B,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO;AAAA,MACL,UAAA,EAAY,CAAA;AAAA,MACZ,SAAA,EAAW,CAAA;AAAA,MACX,KAAA,EAAO,CAAA;AAAA,MACP,SAAA,EAAW,CAAA;AAAA,MACX,KAAA,EAAO,CAAA;AAAA,MACP,OAAA,EAAS,CAAA;AAAA,MACT,KAAA,EAAO,CAAA;AAAA,MACP,WAAA,EAAa,CAAA;AAAA,MACb,eAAA,EAAiB,CAAA;AAAA,MACjB,UAAA,EAAY,CAAA;AAAA,MACZ,gBAAA,EAAkB,CAAA;AAAA,MAClB,kBAAA,EAAoB;AAAA,KACtB;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,UAAA,CAAW,MAAA;AAAA,IACrC,SAAA,EAAW,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,MAAA;AAAA,IACnC,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,IAC3B,SAAA,EAAW,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,MAAA;AAAA,IACnC,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,KAAA,CAAM,MAAA;AAAA,IAC3B,OAAA,EAAS,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,SAAS,MAAA,IAAU,CAAA;AAAA,IAC3D,KAAA,EAAO,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,OAAO,MAAA,IAAU,CAAA;AAAA,IACvD,WAAA,EAAa,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,aAAa,MAAA,IAAU,CAAA;AAAA,IACnE,eAAA,EACE,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,iBAAiB,MAAA,IAAU,CAAA;AAAA,IAC5D,UAAA,EAAY,QAAA,CAAS,UAAA,EAAY,MAAA,IAAU,CAAA;AAAA,IAC3C,gBAAA,EAAkB,QAAA,CAAS,gBAAA,EAAkB,MAAA,IAAU,CAAA;AAAA,IACvD,kBAAA,EAAoB,QAAA,CAAS,kBAAA,EAAoB,MAAA,IAAU;AAAA,GAC7D;AACF;AAEA,SAAS,cAAc,KAAA,EAAyB;AAC9C,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,KAAA,CAAM,IAAI,aAAa,CAAA;AAAA,EAChC;AACA,EAAA,IAAI,aAAA,CAAc,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,MAAA,CAAO,WAAA;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAK,CAAA,CACjB,MAAA,CAAO,CAAC,GAAG,UAAU,CAAA,KAAM,eAAe,MAAS,CAAA,CACnD,IAAA,CAAK,CAAC,CAAC,IAAI,CAAA,EAAG,CAAC,KAAK,MAAM,IAAA,CAAK,aAAA,CAAc,KAAK,CAAC,EACnD,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,KAAM,CAAC,KAAK,aAAA,CAAc,UAAU,CAAC,CAAC;AAAA,KAChE;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,aAAa,KAAA,EAAwB;AAC5C,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAO,KAAA,KAAU,SAAA,IAAa,OAAO,UAAU,QAAA,EAAU;AAC3D,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,OAAO,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,KAAK,CAAC,CAAA;AACrC;AAEA,SAAS,UAAA,CAAW,KAAA,EAAgB,MAAA,GAAS,CAAA,EAAa;AACxD,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAM,CAAA;AAEhC,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,MAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,KAAA,KAAU;AAC9B,MAAA,IAAI,MAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,aAAA,CAAc,KAAK,CAAA,EAAG;AAChD,QAAA,OAAO,CAAC,GAAG,MAAM,CAAA,CAAA,CAAA,EAAK,GAAG,UAAA,CAAW,KAAA,EAAO,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,MACxD;AACA,MAAA,OAAO,CAAC,CAAA,EAAG,MAAM,KAAK,YAAA,CAAa,KAAK,CAAC,CAAA,CAAE,CAAA;AAAA,IAC7C,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,IAAI,aAAA,CAAc,KAAK,CAAA,EAAG;AACxB,IAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA;AACpC,IAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,MAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAA,CAAI,CAAA;AAAA,IACvB;AACA,IAAA,OAAO,QAAQ,OAAA,CAAQ,CAAC,CAAC,GAAA,EAAK,UAAU,CAAA,KAAM;AAC5C,MAAA,IAAI,eAAe,MAAA,EAAW;AAC5B,QAAA,OAAO,EAAC;AAAA,MACV;AACA,MAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC7B,QAAA,IAAI,UAAA,CAAW,WAAW,CAAA,EAAG;AAC3B,UAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,CAAA,IAAA,CAAM,CAAA;AAAA,QAC/B;AACA,QAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,EAAK,GAAG,UAAA,CAAW,UAAA,EAAY,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,MACnE;AACA,MAAA,IAAI,aAAA,CAAc,UAAU,CAAA,EAAG;AAC7B,QAAA,IAAI,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA,CAAE,WAAW,CAAA,EAAG;AACxC,UAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,CAAA,IAAA,CAAM,CAAA;AAAA,QAC/B;AACA,QAAA,OAAO,CAAC,CAAA,EAAG,MAAM,CAAA,EAAG,GAAG,CAAA,CAAA,CAAA,EAAK,GAAG,UAAA,CAAW,UAAA,EAAY,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,MACnE;AACA,MAAA,OAAO,CAAC,GAAG,MAAM,CAAA,EAAG,GAAG,CAAA,EAAA,EAAK,YAAA,CAAa,UAAU,CAAC,CAAA,CAAE,CAAA;AAAA,IACxD,CAAC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,CAAC,CAAA,EAAG,MAAM,GAAG,YAAA,CAAa,KAAK,CAAC,CAAA,CAAE,CAAA;AAC3C;AAEA,SAAS,YAAY,IAAA,EAAsB;AACzC,EAAA,OAAO,IAAA,CAAK,MAAA,GAAS,IAAA,CAAK,SAAA,EAAU,CAAE,MAAA;AACxC;AAEA,SAAS,gBAAgB,GAAA,EAAsB;AAC7C,EAAA,MAAM,KAAA,GAAQ,IAAI,IAAA,EAAK;AACvB,EAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAU,MAAA,EAAQ;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAU,OAAA,EAAS;AACrB,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,IAAI,mBAAA,CAAoB,IAAA,CAAK,KAAK,CAAA,EAAG;AACnC,IAAA,OAAO,OAAO,KAAK,CAAA;AAAA,EACrB;AACA,EAAA,IACG,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,IAAK,MAAM,QAAA,CAAS,GAAG,CAAA,IAC3C,KAAA,CAAM,WAAW,GAAG,CAAA,IAAK,KAAA,CAAM,QAAA,CAAS,GAAG,CAAA,EAC5C;AACA,IAAA,IAAI,KAAA,CAAM,UAAA,CAAW,GAAG,CAAA,EAAG;AACzB,MAAA,OAAO,MAAM,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,CAAE,OAAA,CAAQ,OAAO,GAAG,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,EACzB;AACA,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,IAAI,UAAU,IAAA,EAAM;AAClB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,kBAAkB,OAAA,EAGzB;AACA,EAAA,MAAM,cAAA,GAAiB,OAAA,CAAQ,OAAA,CAAQ,GAAG,CAAA;AAC1C,EAAA,IAAI,mBAAmB,EAAA,EAAI;AACzB,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,4BAAA,EAA+B,OAAO,CAAA,CAAE,CAAA;AAAA,EAC1D;AAEA,EAAA,MAAM,MAAM,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,cAAc,EAAE,IAAA,EAAK;AAClD,EAAA,MAAM,QAAQ,OAAA,CAAQ,KAAA,CAAM,cAAA,GAAiB,CAAC,EAAE,IAAA,EAAK;AACrD,EAAA,OAAO,EAAE,GAAA,EAAK,KAAA,EAAO,KAAA,CAAM,MAAA,GAAS,QAAQ,IAAA,EAAK;AACnD;AAEA,SAAS,kBAAkB,IAAA,EAAuB;AAChD,EAAA,MAAM,WAAW,IAAA,CACd,OAAA,CAAQ,OAAA,EAAS,IAAI,EACrB,KAAA,CAAM,IAAI,CAAA,CACV,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,OAAA,CAAQ,KAAA,EAAO,IAAI,CAAC,CAAA;AAC1C,EAAA,MAAM,KAAA,GAAQ,QAAA,CAAS,MAAA,CAAO,CAAC,IAAA,KAAS;AACtC,IAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,IAAA,OAAO,OAAA,CAAQ,MAAA,GAAS,CAAA,IAAK,OAAA,KAAY,SAAS,OAAA,KAAY,KAAA;AAAA,EAChE,CAAC,CAAA;AAED,EAAA,IAAI,KAAA,GAAQ,CAAA;AAEZ,EAAA,SAAS,WAAW,MAAA,EAAyB;AAC3C,IAAA,IAAI,KAAA,IAAS,MAAM,MAAA,EAAQ;AACzB,MAAA,OAAO,EAAC;AAAA,IACV;AAEA,IAAA,MAAM,WAAA,GAAc,MAAM,KAAK,CAAA;AAC/B,IAAA,MAAM,aAAA,GAAgB,YAAY,WAAW,CAAA;AAC7C,IAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,IAAI,WAAA,CAAY,SAAA,EAAU,CAAE,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3C,MAAA,OAAO,WAAW,MAAM,CAAA;AAAA,IAC1B;AACA,IAAA,OAAO,YAAY,MAAM,CAAA;AAAA,EAC3B;AAEA,EAAA,SAAS,WAAW,MAAA,EAA2B;AAC7C,IAAA,MAAM,QAAmB,EAAC;AAE1B,IAAA,OAAO,KAAA,GAAQ,MAAM,MAAA,EAAQ;AAC3B,MAAA,MAAM,IAAA,GAAO,MAAM,KAAK,CAAA;AACxB,MAAA,MAAM,aAAA,GAAgB,YAAY,IAAI,CAAA;AACtC,MAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,QAAA;AAAA,MACF;AACA,MAAA,IAAI,kBAAkB,MAAA,EAAQ;AAC5B,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,+BAAA,EAAkC,IAAA,CAAK,IAAA,EAAM,CAAA,CAAE,CAAA;AAAA,MACjE;AAEA,MAAA,MAAM,OAAA,GAAU,KAAK,SAAA,EAAU;AAC/B,MAAA,IAAI,CAAC,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC5B,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,KAAA,CAAM,CAAC,EAAE,SAAA,EAAU;AACxC,MAAA,KAAA,IAAS,CAAA;AAET,MAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,QAAA,KAAA,CAAM,IAAA,CAAK,UAAA,CAAW,MAAA,GAAS,CAAC,CAAC,CAAA;AACjC,QAAA;AAAA,MACF;AAEA,MAAA,KAAA,CAAM,IAAA,CAAK,eAAA,CAAgB,IAAI,CAAC,CAAA;AAAA,IAClC;AAEA,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,SAAS,YAAY,MAAA,EAAyC;AAC5D,IAAA,MAAM,cAAuC,EAAC;AAE9C,IAAA,OAAO,KAAA,GAAQ,MAAM,MAAA,EAAQ;AAC3B,MAAA,MAAM,IAAA,GAAO,MAAM,KAAK,CAAA;AACxB,MAAA,MAAM,aAAA,GAAgB,YAAY,IAAI,CAAA;AACtC,MAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,QAAA;AAAA,MACF;AACA,MAAA,IAAI,kBAAkB,MAAA,EAAQ;AAC5B,QAAA,MAAM,IAAI,KAAA,CAAM,CAAA,+BAAA,EAAkC,IAAA,CAAK,IAAA,EAAM,CAAA,CAAE,CAAA;AAAA,MACjE;AAEA,MAAA,MAAM,OAAA,GAAU,KAAK,IAAA,EAAK;AAC1B,MAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3B,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GAAI,kBAAkB,OAAO,CAAA;AAChD,MAAA,KAAA,IAAS,CAAA;AACT,MAAA,WAAA,CAAY,GAAG,IACb,KAAA,KAAU,IAAA,GAAO,WAAW,MAAA,GAAS,CAAC,CAAA,GAAI,eAAA,CAAgB,KAAK,CAAA;AAAA,IACnE;AAEA,IAAA,OAAO,WAAA;AAAA,EACT;AAEA,EAAA,OAAO,WAAW,CAAC,CAAA;AACrB;AAEA,SAAS,8BAAA,CACP,QACA,cAAA,EAC0B;AAC1B,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,OAAO,cAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAU,OAAO,IAAA,EAAK;AAC5B,EAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,oCAAA,CACd,QAAA,EACA,MAAA,GAAmC,MAAA,EAC3B;AACR,EAAA,MAAM,cAAA,GAAiB,cAAc,QAAQ,CAAA;AAC7C,EAAA,IAAI,WAAW,MAAA,EAAQ;AACrB,IAAA,OAAO,GAAG,IAAA,CAAK,SAAA,CAAU,cAAA,EAAgB,IAAA,EAAM,CAAC,CAAC;AAAA,CAAA;AAAA,EACnD;AACA,EAAA,OAAO,GAAG,UAAA,CAAW,cAAc,CAAA,CAAE,IAAA,CAAK,IAAI,CAAC;AAAA,CAAA;AACjD;AAEO,SAAS,gCAAA,CACd,QACA,MAAA,EAC6B;AAC7B,EAAA,MAAM,cAAA,GAAiB,8BAAA,CAA+B,MAAA,EAAQ,MAAM,CAAA;AACpE,EAAA,MAAM,MAAA,GACJ,mBAAmB,MAAA,GACd,IAAA,CAAK,MAAM,MAAM,CAAA,GAClB,kBAAkB,MAAM,CAAA;AAE9B,EAAA,IAAI,CAAC,aAAA,CAAc,MAAM,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA,EACjE;AAEA,EAAA,IAAI,EAAE,UAAU,MAAA,CAAA,EAAS;AACvB,IAAA,MAAM,IAAI,MAAM,wDAAwD,CAAA;AAAA,EAC1E;AAEA,EAAA,OAAO,iCAAA,CAAkC;AAAA,IACvC,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,iBAAiB,MAAA,CAAO,eAAA;AAAA,IACxB,MAAM,MAAA,CAAO,IAAA;AAAA,IACb,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,kBAAkB,MAAA,CAAO,gBAAA;AAAA,IAGzB,oBAAoB,MAAA,CAAO,kBAAA;AAAA,IAG3B,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,UAAU,MAAA,CAAO;AAAA,GAClB,CAAA;AACH;;;ACnmBA,SAAS,KAAA,CACP,IAAA,EACA,OAAA,EACA,IAAA,EACA,WAAgC,OAAA,EACL;AAC3B,EAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK;AACzC;AAEA,IAAM,UAAA,GAAa,+BAAA;AACnB,IAAM,MAAA,GACJ,qLAAA;AACF,IAAM,sBAAA,uBAA6B,GAAA,CAAI;AAAA,EACrC,YAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,eAAA,uBAAsB,GAAA,CAAI,CAAC,eAAe,OAAA,EAAS,QAAA,EAAU,UAAU,CAAC,CAAA;AAC9E,IAAM,2CAA2B,IAAI,GAAA,CAAI,CAAC,MAAA,EAAQ,MAAA,EAAQ,QAAQ,CAAC,CAAA;AAEnE,SAAS,mBAAA,CACP,MAAA,EACA,IAAA,EACA,KAAA,EAC6B;AAC7B,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAO,KAAA,KAAU;AACtC,IAAA,IAAI,CAAC,KAAA,EAAO,IAAA,EAAK,EAAG;AAClB,MAAA,OAAO;AAAA,QACL,KAAA;AAAA,UACE,2BAAA;AAAA,UACA,GAAG,KAAK,CAAA,+BAAA,CAAA;AAAA,UACR,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA;AAClB,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV,CAAC,CAAA;AACH;AAEA,SAAS,sBAAA,CACP,QACA,IAAA,EAC6B;AAC7B,EAAA,MAAM,MAAA,GAAS,mBAAA,CAAoB,MAAA,EAAQ,IAAA,EAAM,gBAAgB,CAAA;AACjE,EAAA,KAAA,MAAW,CAAC,OAAO,KAAK,CAAA,IAAA,CAAM,UAAU,EAAC,EAAG,SAAQ,EAAG;AACrD,IAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,KAAK,CAAA,EAAG;AAC/B,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,wBAAA;AAAA,UACA,+BAA+B,KAAK,CAAA,CAAA,CAAA;AAAA,UACpC,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA;AAClB,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,qBAAA,CACP,QAKA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,2BAA2B,KAAK,CAAA,CAAA,CAAA;AAC7C,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,EAAU,IAAA,EAAK,EAAG;AAC5B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,mBAAA;AAAA,QACA,kCAAA;AAAA,QACA,GAAG,IAAI,CAAA,SAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,MAAA,CAAO,GAAA,EAAK,IAAA,EAAK,EAAG;AACvB,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA,CAAM,oBAAA,EAAsB,6BAAA,EAA+B,CAAA,EAAG,IAAI,CAAA,IAAA,CAAM;AAAA,KAC1E;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,sBAAA,CAAuB,MAAA,CAAO,cAAA,EAAgB,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;AAAA,GAC3E;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,mBAAA,CACP,MAKA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,yBAAyB,KAAK,CAAA,CAAA,CAAA;AAC3C,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,IAAA,CAAK,MAAA,EAAQ,IAAA,EAAK,EAAG;AACxB,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA,CAAM,iBAAA,EAAmB,8BAAA,EAAgC,CAAA,EAAG,IAAI,CAAA,OAAA,CAAS;AAAA,KAC3E;AAAA,EACF;AACA,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,EAAY,IAAA,EAAK,EAAG;AAC5B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,yBAAA;AAAA,QACA,kCAAA;AAAA,QACA,GAAG,IAAI,CAAA,WAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,sBAAA,CAAuB,IAAA,CAAK,cAAA,EAAgB,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;AAAA,GACzE;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,kBAAA,CACP,OAKA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,+BAA+B,KAAK,CAAA,CAAA,CAAA;AACjD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,EAAS,IAAA,EAAK,EAAG;AAC1B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,wBAAA;AAAA,QACA,8BAAA;AAAA,QACA,GAAG,IAAI,CAAA,QAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,KAAA,CAAM,IAAA,EAAM,IAAA,EAAK,EAAG;AACvB,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,0BAAA;AAAA,QACA,2BAAA;AAAA,QACA,GAAG,IAAI,CAAA,KAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,sBAAA,CAAuB,KAAA,CAAM,cAAA,EAAgB,CAAA,EAAG,IAAI,CAAA,eAAA,CAAiB;AAAA,GAC1E;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,wBAAA,CACP,UACA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,oCAAoC,KAAK,CAAA,CAAA,CAAA;AACtD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,EAAY,IAAA,EAAK,EAAG;AAChC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,6BAAA;AAAA,QACA,uCAAA;AAAA,QACA,GAAG,IAAI,CAAA,WAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,QAAA,CAAS,QAAA,EAAU,IAAA,EAAK,EAAG;AAC9B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,0BAAA;AAAA,QACA,0CAAA;AAAA,QACA,GAAG,IAAI,CAAA,SAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,sBAAA,CAAuB,GAAA,CAAI,QAAA,CAAS,YAAY,CAAA,EAAG;AACtD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,+BAAA;AAAA,QACA,CAAA,0BAAA,EAA6B,SAAS,YAAY,CAAA,CAAA,CAAA;AAAA,QAClD,GAAG,IAAI,CAAA,aAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,mBAAA;AAAA,MACD,QAAA,CAAS,qBAAA;AAAA,MACT,GAAG,IAAI,CAAA,sBAAA,CAAA;AAAA,MACP;AAAA;AACF,GACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,oBAAA,CACP,UACA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,gCAAgC,KAAK,CAAA,CAAA,CAAA;AAClD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,QAAA,CAAS,UAAA,EAAY,IAAA,EAAK,EAAG;AAChC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,2BAAA;AAAA,QACA,mCAAA;AAAA,QACA,GAAG,IAAI,CAAA,WAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,QAAA,CAAS,KAAA,EAAO,IAAA,EAAK,EAAG;AAC3B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,8BAAA;AAAA,QACA,8BAAA;AAAA,QACA,GAAG,IAAI,CAAA,MAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,mBAAA;AAAA,MACD,QAAA,CAAS,qBAAA;AAAA,MACT,GAAG,IAAI,CAAA,sBAAA,CAAA;AAAA,MACP;AAAA;AACF,GACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,mBAAA;AAAA,MACD,QAAA,CAAS,iBAAA;AAAA,MACT,GAAG,IAAI,CAAA,kBAAA,CAAA;AAAA,MACP;AAAA;AACF,GACF;AAEA,EAAA,KAAA,MAAW,CAAC,mBAAmB,YAAY,CAAA,IAAA,CACzC,SAAS,iBAAA,IAAqB,EAAC,EAC/B,OAAA,EAAQ,EAAG;AACX,IAAA,IAAI,CAAC,sBAAA,CAAuB,GAAA,CAAI,YAAY,CAAA,EAAG;AAC7C,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,sCAAA;AAAA,UACA,wCAAwC,YAAY,CAAA,CAAA,CAAA;AAAA,UACpD,CAAA,EAAG,IAAI,CAAA,mBAAA,EAAsB,iBAAiB,CAAA,CAAA;AAAA;AAChD,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,qBAAA,CACP,MACA,KAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,iCAAiC,KAAK,CAAA,CAAA,CAAA;AACnD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,IAAA,CAAK,aAAA,EAAe,IAAA,EAAK,EAAG;AAC/B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,6BAAA;AAAA,QACA,uCAAA;AAAA,QACA,GAAG,IAAI,CAAA,cAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,IAAA,CAAK,KAAA,IAAS,IAAA,KAAS,CAAC,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,IAAK,IAAA,CAAK,KAAA,GAAQ,CAAA,CAAA,EAAI;AAC1E,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,8BAAA;AAAA,QACA,oDAAA;AAAA,QACA,GAAG,IAAI,CAAA,MAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,mBAAA;AAAA,MACD,IAAA,CAAK,qBAAA;AAAA,MACL,GAAG,IAAI,CAAA,sBAAA,CAAA;AAAA,MACP;AAAA;AACF,GACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,mBAAA;AAAA,MACD,IAAA,CAAK,iBAAA;AAAA,MACL,GAAG,IAAI,CAAA,kBAAA,CAAA;AAAA,MACP;AAAA;AACF,GACF;AAEA,EAAA,KAAA,MAAW,CAAC,mBAAmB,YAAY,CAAA,IAAA,CACzC,KAAK,iBAAA,IAAqB,EAAC,EAC3B,OAAA,EAAQ,EAAG;AACX,IAAA,IAAI,CAAC,sBAAA,CAAuB,GAAA,CAAI,YAAY,CAAA,EAAG;AAC7C,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,sCAAA;AAAA,UACA,wCAAwC,YAAY,CAAA,CAAA,CAAA;AAAA,UACpD,CAAA,EAAG,IAAI,CAAA,mBAAA,EAAsB,iBAAiB,CAAA,CAAA;AAAA;AAChD,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,qBAAA,CACP,QAAA,EAMA,KAAA,EACA,eAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,kCAAkC,KAAK,CAAA,CAAA,CAAA;AACpD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,QAAA,CAAS,IAAA,EAAM,IAAA,EAAK,EAAG;AAC1B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,6BAAA;AAAA,QACA,8BAAA;AAAA,QACA,GAAG,IAAI,CAAA,KAAA;AAAA;AACT,KACF;AAAA,EACF,WAAW,CAAC,UAAA,CAAW,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,EAAG;AAC1C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,6BAAA;AAAA,QACA,CAAA,qBAAA,EAAwB,SAAS,IAAI,CAAA,oBAAA,CAAA;AAAA,QACrC,GAAG,IAAI,CAAA,KAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAA,CAAS,IAAA,EAAM,IAAA,EAAK,EAAG;AAC1B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,6BAAA;AAAA,QACA,8BAAA;AAAA,QACA,GAAG,IAAI,CAAA,KAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAA,CAAS,WAAA,EAAa,IAAA,EAAK,EAAG;AACjC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,oCAAA;AAAA,QACA,qCAAA;AAAA,QACA,GAAG,IAAI,CAAA,YAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,IAAI,SAAS,UAAA,IAAc,CAAC,gBAAgB,GAAA,CAAI,QAAA,CAAS,UAAU,CAAA,EAAG;AACpE,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,sBAAA;AAAA,QACA,CAAA,0CAAA,EAA6C,SAAS,UAAU,CAAA,CAAA,CAAA;AAAA,QAChE,GAAG,IAAI,CAAA,WAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,uBACP,OAAA,EAUA,KAAA,EACA,cAAA,EACA,YAAA,EACA,eACA,eAAA,EAC6B;AAC7B,EAAA,MAAM,IAAA,GAAO,mCAAmC,KAAK,CAAA,CAAA,CAAA;AACrD,EAAA,MAAM,SAAsC,EAAC;AAE7C,EAAA,IAAI,CAAC,OAAA,CAAQ,SAAA,EAAW,IAAA,EAAK,EAAG;AAC9B,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,4BAAA;AAAA,QACA,oCAAA;AAAA,QACA,GAAG,IAAI,CAAA,UAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,IAAA,EAAM,IAAA,EAAK,EAAG;AACzB,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,8BAAA;AAAA,QACA,+BAAA;AAAA,QACA,GAAG,IAAI,CAAA,KAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,OAAA,CAAQ,WAAA,EAAa,IAAA,EAAK,EAAG;AAChC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,qCAAA;AAAA,QACA,sCAAA;AAAA,QACA,GAAG,IAAI,CAAA,YAAA;AAAA;AACT,KACF;AAAA,EACF;AACA,EAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,OAAA,CAAQ,aAAa,CAAA,EAAG;AAC/C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,wBAAA;AAAA,QACA,CAAA,4BAAA,EAA+B,QAAQ,aAAa,CAAA,CAAA,CAAA;AAAA,QACpD,GAAG,IAAI,CAAA,cAAA;AAAA;AACT,KACF;AAAA,EACF;AAEA,EAAA,KAAA,MAAW,CAAC,WAAA,EAAa,QAAQ,KAAK,OAAA,CAAQ,SAAA,CAAU,SAAQ,EAAG;AACjE,IAAA,IAAI,CAAC,cAAA,CAAe,GAAA,CAAI,QAAQ,CAAA,EAAG;AACjC,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,oBAAA;AAAA,UACA,8CAA8C,QAAQ,CAAA,CAAA,CAAA;AAAA,UACtD,CAAA,EAAG,IAAI,CAAA,WAAA,EAAc,WAAW,CAAA,CAAA;AAAA;AAClC,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,KAAA,MAAW,CAAC,SAAA,EAAW,MAAM,KAAK,OAAA,CAAQ,OAAA,CAAQ,SAAQ,EAAG;AAC3D,IAAA,IAAI,CAAC,YAAA,CAAa,GAAA,CAAI,MAAM,CAAA,EAAG;AAC7B,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,kBAAA;AAAA,UACA,4CAA4C,MAAM,CAAA,CAAA,CAAA;AAAA,UAClD,CAAA,EAAG,IAAI,CAAA,SAAA,EAAY,SAAS,CAAA,CAAA;AAAA;AAC9B,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,KAAA,MAAW,CAAC,UAAA,EAAY,OAAO,KAAK,OAAA,CAAQ,QAAA,CAAS,SAAQ,EAAG;AAC9D,IAAA,IAAI,CAAC,aAAA,CAAc,GAAA,CAAI,OAAO,CAAA,EAAG;AAC/B,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,yBAAA;AAAA,UACA,mDAAmD,OAAO,CAAA,CAAA,CAAA;AAAA,UAC1D,CAAA,EAAG,IAAI,CAAA,UAAA,EAAa,UAAU,CAAA,CAAA;AAAA;AAChC,OACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,KAAA,MAAW,CAAC,UAAA,EAAY,SAAS,KAAK,OAAA,CAAQ,iBAAA,CAAkB,SAAQ,EAAG;AACzE,IAAA,IAAI,CAAC,eAAA,CAAgB,GAAA,CAAI,SAAS,CAAA,EAAG;AACnC,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,mBAAA;AAAA,UACA,6CAA6C,SAAS,CAAA,CAAA,CAAA;AAAA,UACtD,CAAA,EAAG,IAAI,CAAA,mBAAA,EAAsB,UAAU,CAAA,CAAA;AAAA;AACzC,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,iBAAA,CACP,KAAA,EACA,OAAA,EACA,IAAA,EAC6B;AAC7B,EAAA,MAAM,SAAsC,EAAC;AAC7C,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,EAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,IAAA,MAAM,EAAA,GAAK,KAAK,OAAO,CAAA;AACvB,IAAA,IAAI,IAAA,CAAK,GAAA,CAAI,EAAE,CAAA,EAAG;AAChB,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,cAAA;AAAA,UACA,CAAA,UAAA,EAAa,OAAO,CAAA,EAAA,EAAK,EAAE,CAAA,CAAA,CAAA;AAAA,UAC3B,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,OAAO,CAAA;AAAA;AACpB,OACF;AAAA,IACF;AACA,IAAA,IAAA,CAAK,IAAI,EAAE,CAAA;AAAA,EACb;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,yBAAA,CACP,KAAA,EACA,OAAA,EACA,IAAA,EAC6B;AAC7B,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,iBAAA,CAAkB,KAAA,EAAsC,OAAA,EAAS,IAAI,CAAA;AAC9E;AAEA,SAAS,oBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,OAAO,KAAK,MAAA,KAAW,QAAA,IAAY,KAAK,MAAA,CAAO,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AACtE,IAAA,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,iBAAA,EAAmB,oBAAA,EAAsB,QAAQ,CAAC,CAAA;AAAA,EACtE,WAAW,CAAC,UAAA,CAAW,IAAA,CAAK,IAAA,CAAK,MAAM,CAAA,EAAG;AACxC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,iBAAA;AAAA,QACA,CAAA,QAAA,EAAW,KAAK,MAAM,CAAA,oBAAA,CAAA;AAAA,QACtB;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAI,OAAO,KAAK,IAAA,KAAS,QAAA,IAAY,KAAK,IAAA,CAAK,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AAClE,IAAA,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,cAAA,EAAgB,kBAAA,EAAoB,MAAM,CAAC,CAAA;AAAA,EAC/D;AAEA,EAAA,IAAI,OAAO,KAAK,OAAA,KAAY,QAAA,IAAY,KAAK,OAAA,CAAQ,IAAA,EAAK,CAAE,MAAA,KAAW,CAAA,EAAG;AACxE,IAAA,MAAA,CAAO,IAAA,CAAK,KAAA,CAAM,iBAAA,EAAmB,qBAAA,EAAuB,SAAS,CAAC,CAAA;AAAA,EACxE,WAAW,CAAC,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,OAAO,CAAA,EAAG;AACrC,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,iBAAA;AAAA,QACA,CAAA,SAAA,EAAY,KAAK,OAAO,CAAA,sBAAA,CAAA;AAAA,QACxB;AAAA;AACF,KACF;AAAA,EACF;AACF;AAEA,SAAS,wBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,gBAAA,IAAoB,IAAA,CAAK,gBAAA,CAAiB,WAAW,CAAA,EAAG;AAChE,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,2BAAA;AAAA,QACA,0CAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF,CAAA,MAAO;AACL,IAAA,KAAA,MAAW,CAAC,CAAA,EAAG,OAAO,KAAK,IAAA,CAAK,gBAAA,CAAiB,SAAQ,EAAG;AAC1D,MAAA,IAAI,CAAC,OAAA,CAAQ,UAAA,EAAY,IAAA,EAAK,EAAG;AAC/B,QAAA,MAAA,CAAO,IAAA;AAAA,UACL,KAAA;AAAA,YACE,qBAAA;AAAA,YACA,mBAAmB,CAAC,CAAA,wBAAA,CAAA;AAAA,YACpB,oBAAoB,CAAC,CAAA,YAAA;AAAA;AACvB,SACF;AAAA,MACF;AACA,MAAA,IAAI,CAAC,OAAA,CAAQ,iBAAA,EAAmB,IAAA,EAAK,EAAG;AACtC,QAAA,MAAA,CAAO,IAAA;AAAA,UACL,KAAA;AAAA,YACE,4BAAA;AAAA,YACA,mBAAmB,CAAC,CAAA,+BAAA,CAAA;AAAA,YACpB,oBAAoB,CAAC,CAAA,mBAAA;AAAA;AACvB,SACF;AAAA,MACF;AACA,MAAA,IACE,QAAQ,aAAA,IACR,CAAC,yBAAyB,GAAA,CAAI,OAAA,CAAQ,aAAa,CAAA,EACnD;AACA,QAAA,MAAA,CAAO,IAAA;AAAA,UACL,KAAA;AAAA,YACE,iCAAA;AAAA,YACA,CAAA,2BAAA,EAA8B,QAAQ,aAAa,CAAA,CAAA,CAAA;AAAA,YACnD,oBAAoB,CAAC,CAAA,eAAA;AAAA;AACvB,SACF;AAAA,MACF;AACA,MAAA,IACE,OAAA,CAAQ,iBACR,OAAA,CAAQ,aAAA,KAAkB,UAC1B,CAAC,OAAA,CAAQ,OAAA,EAAS,IAAA,EAAK,EACvB;AACA,QAAA,MAAA,CAAO,IAAA;AAAA,UACL,KAAA;AAAA,YACE,2BAAA;AAAA,YACA,CAAA,gBAAA,EAAmB,CAAC,CAAA,0CAAA,EAA6C,OAAA,CAAQ,aAAa,CAAA,CAAA,CAAA;AAAA,YACtF,oBAAoB,CAAC,CAAA,SAAA;AAAA;AACvB,SACF;AAAA,MACF;AACA,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,GAAG,mBAAA;AAAA,UACD,OAAA,CAAQ,mBAAA;AAAA,UACR,oBAAoB,CAAC,CAAA,qBAAA,CAAA;AAAA,UACrB;AAAA,SACF;AAAA,QACA,GAAG,mBAAA;AAAA,UACD,OAAA,CAAQ,iBAAA;AAAA,UACR,oBAAoB,CAAC,CAAA,mBAAA,CAAA;AAAA,UACrB;AAAA;AACF,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,kBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,IAAc,IAAA,CAAK,UAAA,CAAW,WAAW,CAAA,EAAG;AACpD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,qBAAA;AAAA,QACA,oCAAA;AAAA,QACA;AAAA;AACF,KACF;AACA,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA,CAA0B,IAAA,CAAK,UAAA,EAAY,QAAQ,YAAY;AAAA,GACpE;AACF;AAIA,SAAS,8BAAA,CACP,iBACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,gBAAgB,OAAA,EAAS;AAC5B,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,eAAA,CAAgB,OAAA;AAAA,MAChB,UAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,MAAM,KAAK,eAAA,CAAgB,OAAA,CAAQ,SAAQ,EAAG;AAC/D,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,qBAAA,CAAsB,MAAA,EAAQ,KAAK,CAAC,CAAA;AAAA,EACrD;AACF;AAEA,SAAS,4BAAA,CACP,iBACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,gBAAgB,KAAA,EAAO;AAC1B,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,eAAA,CAAgB,KAAA;AAAA,MAChB,QAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,KAAK,eAAA,CAAgB,KAAA,CAAM,SAAQ,EAAG;AAC3D,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,mBAAA,CAAoB,IAAA,EAAM,KAAK,CAAC,CAAA;AAAA,EACjD;AACF;AAEA,SAAS,kCAAA,CACP,iBACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,gBAAgB,WAAA,EAAa;AAChC,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,eAAA,CAAgB,WAAA;AAAA,MAChB,SAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,KAAK,KAAK,eAAA,CAAgB,WAAA,CAAY,SAAQ,EAAG;AAClE,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,kBAAA,CAAmB,KAAA,EAAO,KAAK,CAAC,CAAA;AAAA,EACjD;AACF;AAEA,SAAS,qCAAA,CACP,eAAA,EACA,cAAA,EACA,MAAA,EACa;AACb,EAAA,MAAM,aAAA,uBAAoB,GAAA,EAAY;AACtC,EAAA,IAAI,CAAC,gBAAgB,cAAA,EAAgB;AACnC,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,eAAA,CAAgB,cAAA;AAAA,MAChB,MAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,QAAA,IAAY,gBAAgB,cAAA,EAAgB;AACrD,IAAA,IAAI,SAAS,IAAA,EAAM;AACjB,MAAA,aAAA,CAAc,GAAA,CAAI,SAAS,IAAI,CAAA;AAAA,IACjC;AAAA,EACF;AACA,EAAA,MAAM,eAAA,uBAAsB,GAAA,CAAI,CAAC,GAAG,cAAA,EAAgB,GAAG,aAAa,CAAC,CAAA;AACrE,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,QAAQ,KAAK,eAAA,CAAgB,cAAA,CAAe,SAAQ,EAAG;AACxE,IAAA,MAAA,CAAO,KAAK,GAAG,qBAAA,CAAsB,QAAA,EAAU,KAAA,EAAO,eAAe,CAAC,CAAA;AAAA,EACxE;AACA,EAAA,OAAO,aAAA;AACT;AAEA,SAAS,sCAAA,CACP,eAAA,EACA,cAAA,EACA,aAAA,EACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,gBAAgB,eAAA,EAAiB;AACpC,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,eAAA,CAAgB,eAAA;AAAA,MAChB,WAAA;AAAA,MACA;AAAA;AACF,GACF;AAEA,EAAA,MAAM,iBAAiB,IAAI,GAAA;AAAA,IACzB,eAAA,CAAgB,SAAS,GAAA,CAAI,CAAC,WAAW,MAAA,CAAO,QAAQ,KAAK;AAAC,GAChE;AACA,EAAA,MAAM,eAAe,IAAI,GAAA;AAAA,IACvB,eAAA,CAAgB,OAAO,GAAA,CAAI,CAAC,SAAS,IAAA,CAAK,MAAM,KAAK;AAAC,GACxD;AACA,EAAA,MAAM,gBAAgB,IAAI,GAAA;AAAA,IACxB,eAAA,CAAgB,aAAa,GAAA,CAAI,CAAC,UAAU,KAAA,CAAM,OAAO,KAAK;AAAC,GACjE;AACA,EAAA,MAAM,eAAA,uBAAsB,GAAA,CAAI,CAAC,GAAG,cAAA,EAAgB,GAAG,aAAa,CAAC,CAAA;AAErE,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,OAAO,KAAK,eAAA,CAAgB,eAAA,CAAgB,SAAQ,EAAG;AACxE,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,GAAG,sBAAA;AAAA,QACD,OAAA;AAAA,QACA,KAAA;AAAA,QACA,cAAA;AAAA,QACA,YAAA;AAAA,QACA,aAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AACF;AAEA,SAAS,uBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,KAAK,eAAA,EAAiB;AACzB,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,iBAAiB,IAAI,GAAA;AAAA,IACzB,IAAA,CAAK,YAAY,GAAA,CAAI,CAAC,UAAU,KAAA,CAAM,IAAI,KAAK;AAAC,GAClD;AACA,EAAA,8BAAA,CAA+B,IAAA,CAAK,iBAAiB,MAAM,CAAA;AAC3D,EAAA,4BAAA,CAA6B,IAAA,CAAK,iBAAiB,MAAM,CAAA;AACzD,EAAA,kCAAA,CAAmC,IAAA,CAAK,iBAAiB,MAAM,CAAA;AAC/D,EAAA,MAAM,aAAA,GAAgB,qCAAA;AAAA,IACpB,IAAA,CAAK,eAAA;AAAA,IACL,cAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,sCAAA;AAAA,IACE,IAAA,CAAK,eAAA;AAAA,IACL,cAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,SAAS,aAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,KAAA,CAAM,WAAW,CAAA,EAAG;AAC1C,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA,CAAM,eAAA,EAAiB,yCAAA,EAA2C,OAAO;AAAA,KAC3E;AAAA,EACF,CAAA,MAAO;AACL,IAAA,MAAA,CAAO,KAAK,GAAG,yBAAA,CAA0B,KAAK,KAAA,EAAO,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EACzE;AACF;AAEA,SAAS,aAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,KAAK,KAAA,EAAO;AACf,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,KAAK,GAAG,yBAAA,CAA0B,KAAK,KAAA,EAAO,QAAA,EAAU,OAAO,CAAC,CAAA;AACvE,EAAA,KAAA,MAAW,CAAC,KAAA,EAAO,IAAI,KAAK,IAAA,CAAK,KAAA,CAAM,SAAQ,EAAG;AAChD,IAAA,IAAI,CAAC,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,CAAS,WAAW,CAAA,EAAG;AAChD,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,qBAAA;AAAA,UACA,CAAA,MAAA,EAAS,KAAK,MAAM,CAAA,iBAAA,CAAA;AAAA,UACpB,SAAS,KAAK,CAAA,UAAA,CAAA;AAAA,UACd;AAAA;AACF,OACF;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,GAAG,yBAAA;AAAA,QACD,IAAA,CAAK,QAAA;AAAA,QACL,aAAA;AAAA,QACA,SAAS,KAAK,CAAA,UAAA;AAAA;AAChB,KACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,KAAK,SAAA,EAAW;AAClB,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,GAAG,yBAAA,CAA0B,IAAA,CAAK,SAAA,EAAW,cAAc,WAAW;AAAA,KACxE;AAAA,EACF;AACF;AAQA,SAAS,wBAAwB,IAAA,EAA2C;AAC1E,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,IAAI,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,MAAM,CAAA,IAAK,EAAE,CAAA;AAAA,IAClE,kBAAkB,IAAI,GAAA;AAAA,MACpB,IAAA,CAAK,WAAW,GAAA,CAAI,CAAC,aAAa,QAAA,CAAS,UAAU,KAAK;AAAC,KAC7D;AAAA,IACA,YAAA,EAAc,IAAI,GAAA,CAAI,IAAA,CAAK,KAAA,EAAO,GAAA,CAAI,CAAC,IAAA,KAAS,IAAA,CAAK,MAAM,CAAA,IAAK,EAAE;AAAA,GACpE;AACF;AAEA,SAAS,8BAAA,CACP,QAAA,EACA,aAAA,EACA,YAAA,EACA,MAAA,EACM;AACN,EAAA,KAAA,MAAW,MAAA,IAAU,SAAS,eAAA,EAAiB;AAC7C,IAAA,IAAI,CAAC,YAAA,CAAa,GAAA,CAAI,MAAM,CAAA,EAAG;AAC7B,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,kBAAA;AAAA,UACA,CAAA,UAAA,EAAa,QAAA,CAAS,UAAU,CAAA,2BAAA,EAA8B,MAAM,CAAA,CAAA,CAAA;AAAA,UACpE,aAAa,aAAa,CAAA,iBAAA;AAAA;AAC5B,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,kCAAA,CACP,QAAA,EACA,aAAA,EACA,gBAAA,EACA,MAAA,EACM;AACN,EAAA,KAAA,MAAW,UAAA,IAAc,SAAS,iBAAA,EAAmB;AACnD,IAAA,IAAI,CAAC,gBAAA,CAAiB,GAAA,CAAI,UAAU,CAAA,EAAG;AACrC,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,sBAAA;AAAA,UACA,CAAA,UAAA,EAAa,QAAA,CAAS,UAAU,CAAA,+BAAA,EAAkC,UAAU,CAAA,CAAA,CAAA;AAAA,UAC5E,aAAa,aAAa,CAAA,mBAAA;AAAA;AAC5B,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,8BAAA,CACP,IAAA,EACA,aAAA,EACA,SAAA,EACA,MACA,MAAA,EACM;AACN,EAAA,KAAA,MAAW,MAAA,IAAU,KAAK,aAAA,EAAe;AACvC,IAAA,IAAI,CAAC,IAAA,CAAK,YAAA,CAAa,GAAA,CAAI,MAAM,CAAA,EAAG;AAClC,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,kBAAA;AAAA,UACA,CAAA,MAAA,EAAS,IAAA,CAAK,MAAM,CAAA,2BAAA,EAA8B,MAAM,CAAA,CAAA,CAAA;AAAA,UACxD,CAAA,UAAA,EAAa,aAAa,CAAA,QAAA,EAAW,SAAS,CAAA,eAAA;AAAA;AAChD,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,IAAA,CAAK,UAAU,CAAC,IAAA,CAAK,aAAa,GAAA,CAAI,IAAA,CAAK,MAAM,CAAA,EAAG;AACtD,IAAA,MAAA,CAAO,IAAA;AAAA,MACL,KAAA;AAAA,QACE,kBAAA;AAAA,QACA,CAAA,MAAA,EAAS,IAAA,CAAK,MAAM,CAAA,2BAAA,EAA8B,KAAK,MAAM,CAAA,CAAA,CAAA;AAAA,QAC7D,CAAA,UAAA,EAAa,aAAa,CAAA,QAAA,EAAW,SAAS,CAAA,QAAA;AAAA;AAChD,KACF;AAAA,EACF;AAEA,EAAA,KAAA,MAAW,UAAA,IAAc,IAAA,CAAK,QAAA,IAAY,EAAC,EAAG;AAC5C,IAAA,IAAI,CAAC,IAAA,CAAK,gBAAA,CAAiB,GAAA,CAAI,UAAU,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,KAAA;AAAA,UACE,sBAAA;AAAA,UACA,CAAA,MAAA,EAAS,IAAA,CAAK,MAAM,CAAA,+BAAA,EAAkC,UAAU,CAAA,CAAA,CAAA;AAAA,UAChE,CAAA,UAAA,EAAa,aAAa,CAAA,QAAA,EAAW,SAAS,CAAA,UAAA;AAAA;AAChD,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,iBAAA,CACP,IAAA,EACA,IAAA,EACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,KAAK,SAAA,EAAW;AACnB,IAAA;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA,CAA0B,IAAA,CAAK,SAAA,EAAW,cAAc,WAAW;AAAA,GACxE;AAEA,EAAA,KAAA,MAAW,CAAC,aAAA,EAAe,QAAQ,KAAK,IAAA,CAAK,SAAA,CAAU,SAAQ,EAAG;AAChE,IAAA,8BAAA;AAAA,MACE,QAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA,CAAK,YAAA;AAAA,MACL;AAAA,KACF;AACA,IAAA,kCAAA;AAAA,MACE,QAAA;AAAA,MACA,aAAA;AAAA,MACA,IAAA,CAAK,gBAAA;AAAA,MACL;AAAA,KACF;AACA,IAAA,KAAA,MAAW,CAAC,SAAA,EAAW,IAAI,KAAK,QAAA,CAAS,KAAA,CAAM,SAAQ,EAAG;AACxD,MAAA,8BAAA;AAAA,QACE,IAAA;AAAA,QACA,aAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,gCAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,cAAA,EAAgB,iBAAA,EAAmB;AAC3C,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,KAAK,cAAA,CAAe,iBAAA;AAAA,MACpB,YAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW;AAAA,IACT,KAAA;AAAA,IACA;AAAA,GACF,IAAK,IAAA,CAAK,cAAA,CAAe,iBAAA,CAAkB,SAAQ,EAAG;AACpD,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,wBAAA,CAAyB,QAAA,EAAU,KAAK,CAAC,CAAA;AAAA,EAC1D;AACF;AAEA,SAAS,4BAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,cAAA,EAAgB,aAAA,EAAe;AACvC,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,yBAAA;AAAA,MACD,KAAK,cAAA,CAAe,aAAA;AAAA,MACpB,YAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,CAAC,OAAO,QAAQ,CAAA,IAAK,KAAK,cAAA,CAAe,aAAA,CAAc,SAAQ,EAAG;AAC3E,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,oBAAA,CAAqB,QAAA,EAAU,KAAK,CAAC,CAAA;AAAA,EACtD;AACF;AAEA,SAAS,6BAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,CAAK,cAAA,EAAgB,cAAA,EAAgB;AACxC,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,iBAAA;AAAA,MACD,IAAA,CAAK,cAAA,CAAe,cAAA,CAAe,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,QAChD,eAAe,IAAA,CAAK;AAAA,OACtB,CAAE,CAAA;AAAA,MACF,eAAA;AAAA,MACA;AAAA;AACF,GACF;AACA,EAAA,KAAA,MAAW,CAAC,OAAO,IAAI,CAAA,IAAK,KAAK,cAAA,CAAe,cAAA,CAAe,SAAQ,EAAG;AACxE,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,qBAAA,CAAsB,IAAA,EAAM,KAAK,CAAC,CAAA;AAAA,EACnD;AACF;AAEA,SAAS,sBAAA,CACP,MACA,MAAA,EACM;AACN,EAAA,gCAAA,CAAiC,MAAM,MAAM,CAAA;AAC7C,EAAA,4BAAA,CAA6B,MAAM,MAAM,CAAA;AACzC,EAAA,6BAAA,CAA8B,MAAM,MAAM,CAAA;AAC5C;AAEO,SAAS,mBACd,IAAA,EAC4B;AAC5B,EAAA,MAAM,SAAsC,EAAC;AAC7C,EAAA,oBAAA,CAAqB,MAAM,MAAM,CAAA;AACjC,EAAA,wBAAA,CAAyB,MAAM,MAAM,CAAA;AACrC,EAAA,kBAAA,CAAmB,MAAM,MAAM,CAAA;AAC/B,EAAA,uBAAA,CAAwB,MAAM,MAAM,CAAA;AACpC,EAAA,aAAA,CAAc,MAAM,MAAM,CAAA;AAC1B,EAAA,aAAA,CAAc,MAAM,MAAM,CAAA;AAC1B,EAAA,iBAAA,CAAkB,MAAM,MAAM,CAAA;AAC9B,EAAA,iBAAA,CAAkB,IAAA,EAAM,uBAAA,CAAwB,IAAI,CAAA,EAAG,MAAM,CAAA;AAC7D,EAAA,sBAAA,CAAuB,MAAM,MAAM,CAAA;AAEnC,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,OAAO,MAAA,CAAO,CAAC,MAAM,CAAA,CAAE,QAAA,KAAa,OAAO,CAAA,CAAE,MAAA,KAAW,CAAA;AAAA,IAC/D;AAAA,GACF;AACF;;;AC9jCA,IAAME,WAAAA,GAAa,+BAAA;AACnB,IAAMC,OAAAA,GACJ,qLAAA;AACF,IAAM,kBAAA,uBAAyB,GAAA,CAAI;AAAA,EACjC,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,wBAAA,uBAA+B,GAAA,CAAqC;AAAA,EACxE,UAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,8BAAA,uBAAqC,GAAA,CAAI;AAAA,EAC7C,OAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAC,CAAA;AACD,IAAM,gCAAgB,IAAI,GAAA,CAA2B,CAAC,MAAA,EAAQ,OAAA,EAAS,MAAM,CAAC,CAAA;AAC9E,IAAM,oBAAA,GAAuB;AAAA,EAC3B,QAAA,EAAU,+BAAA;AAAA,EACV,OAAA,EAAS,8BAAA;AAAA,EACT,OAAA,EAAS;AACX,CAAA;AAEA,SAASC,OACP,IAAA,EACA,OAAA,EACA,IAAA,EACA,MAAA,EACA,WAAgC,OAAA,EACI;AACpC,EAAA,OAAO,EAAE,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,UAAU,MAAA,EAAO;AACjD;AAEA,SAAS,WAAA,GAAwC;AAC/C,EAAA,OAAO;AAAA,IACL,UAAA,EAAY,CAAA;AAAA,IACZ,SAAA,EAAW,CAAA;AAAA,IACX,KAAA,EAAO,CAAA;AAAA,IACP,SAAA,EAAW,CAAA;AAAA,IACX,KAAA,EAAO,CAAA;AAAA,IACP,OAAA,EAAS,CAAA;AAAA,IACT,KAAA,EAAO,CAAA;AAAA,IACP,WAAA,EAAa,CAAA;AAAA,IACb,eAAA,EAAiB,CAAA;AAAA,IACjB,UAAA,EAAY,CAAA;AAAA,IACZ,gBAAA,EAAkB,CAAA;AAAA,IAClB,kBAAA,EAAoB;AAAA,GACtB;AACF;AAEA,SAASC,eAAc,KAAA,EAAkD;AACvE,EAAA,OACE,OAAO,KAAA,KAAU,QAAA,IACjB,KAAA,KAAU,QACV,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IACpB,MAAA,CAAO,cAAA,CAAe,KAAK,MAAM,MAAA,CAAO,SAAA;AAE5C;AAEA,SAAS,qBAAqB,KAAA,EAAwB;AACpD,EAAA,OAAO,KAAA,YAAiB,KAAA,GAAQ,KAAA,CAAM,OAAA,GAAU,wBAAA;AAClD;AAEA,SAAS,iBACP,IAAA,EAC2C;AAC3C,EAAA,OAAO,IAAA;AACT;AAEA,SAASC,+BAAAA,CACP,QACA,cAAA,EAC0B;AAC1B,EAAA,IAAI,cAAA,EAAgB;AAClB,IAAA,OAAO,cAAA;AAAA,EACT;AAEA,EAAA,MAAM,OAAA,GAAU,OAAO,IAAA,EAAK;AAC5B,EAAA,IAAI,OAAA,CAAQ,UAAA,CAAW,GAAG,CAAA,EAAG;AAC3B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,mBACP,UAAA,EACsC;AACtC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,SAA+C,EAAC;AACtD,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,EAAW,KAAA,KAAU;AACvC,IAAA,MAAM,IAAA,GAAO,cAAc,KAAK,CAAA,CAAA,CAAA;AAChC,IAAA,IAAI,CAAC,UAAU,WAAA,EAAa;AAC1B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLF,MAAAA;AAAA,UACE,sBAAA;AAAA,UACA,yBAAA;AAAA,UACA,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,WAAW,CAACF,WAAAA,CAAW,IAAA,CAAK,SAAA,CAAU,WAAW,CAAA,EAAG;AAClD,MAAA,MAAA,CAAO,IAAA;AAAA,QACLE,MAAAA;AAAA,UACE,sBAAA;AAAA,UACA,CAAA,aAAA,EAAgB,UAAU,WAAW,CAAA,oBAAA,CAAA;AAAA,UACrC,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAA,IAAW,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,wBAAA;AAAA,UACA,CAAA,uBAAA,EAA0B,UAAU,WAAW,CAAA,CAAA,CAAA;AAAA,UAC/C,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,GAAA,CAAI,UAAU,WAAW,CAAA;AAAA,IAChC;AAEA,IAAA,IAAI,CAAC,UAAU,OAAA,EAAS;AACtB,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,2BAAA;AAAA,UACA,qBAAA;AAAA,UACA,GAAG,IAAI,CAAA,QAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,WAAW,CAACD,OAAAA,CAAO,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,IAAA;AAAA,QACLC,MAAAA;AAAA,UACE,2BAAA;AAAA,UACA,CAAA,mBAAA,EAAsB,UAAU,OAAO,CAAA,sBAAA,CAAA;AAAA,UACvC,GAAG,IAAI,CAAA,QAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,yBACP,UAAA,EACsC;AACtC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,SAA+C,EAAC;AACtD,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,EAAW,KAAA,KAAU;AACvC,IAAA,MAAM,IAAA,GAAO,oBAAoB,KAAK,CAAA,CAAA,CAAA;AACtC,IAAA,IAAI,CAAC,UAAU,WAAA,EAAa;AAC1B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,6BAAA;AAAA,UACA,yBAAA;AAAA,UACA,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,WAAW,CAACF,WAAAA,CAAW,IAAA,CAAK,SAAA,CAAU,WAAW,CAAA,EAAG;AAClD,MAAA,MAAA,CAAO,IAAA;AAAA,QACLE,MAAAA;AAAA,UACE,6BAAA;AAAA,UACA,CAAA,aAAA,EAAgB,UAAU,WAAW,CAAA,oBAAA,CAAA;AAAA,UACrC,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAA,IAAW,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,+BAAA;AAAA,UACA,CAAA,4BAAA,EAA+B,UAAU,WAAW,CAAA,CAAA,CAAA;AAAA,UACpD,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,GAAA,CAAI,UAAU,WAAW,CAAA;AAAA,IAChC;AAEA,IAAA,IAAI,CAAC,wBAAA,CAAyB,GAAA,CAAI,SAAA,CAAU,MAAM,CAAA,EAAG;AACnD,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,iCAAA;AAAA,UACA,CAAA,qCAAA,EAAwC,UAAU,MAAM,CAAA,CAAA,CAAA;AAAA,UACxD,GAAG,IAAI,CAAA,OAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,IAAI,CAAC,UAAU,WAAA,EAAa;AAC1B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,sCAAA;AAAA,UACA,yBAAA;AAAA,UACA,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,IAAI,CAACD,OAAAA,CAAO,IAAA,CAAK,SAAA,CAAU,OAAO,CAAA,EAAG;AACnC,MAAA,MAAA,CAAO,IAAA;AAAA,QACLC,MAAAA;AAAA,UACE,kCAAA;AAAA,UACA,CAAA,0BAAA,EAA6B,UAAU,OAAO,CAAA,sBAAA,CAAA;AAAA,UAC9C,GAAG,IAAI,CAAA,QAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,IAAI,CAACC,cAAAA,CAAc,SAAA,CAAU,MAAM,CAAA,EAAG;AACpC,MAAA,MAAA,CAAO,IAAA;AAAA,QACLD,MAAAA;AAAA,UACE,iCAAA;AAAA,UACA,gDAAA;AAAA,UACA,GAAG,IAAI,CAAA,OAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,2BACP,UAAA,EACsC;AACtC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,SAA+C,EAAC;AACtD,EAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAE7B,EAAA,UAAA,CAAW,OAAA,CAAQ,CAAC,SAAA,EAAW,KAAA,KAAU;AACvC,IAAA,MAAM,IAAA,GAAO,sBAAsB,KAAK,CAAA,CAAA,CAAA;AACxC,IAAA,IAAI,CAAC,UAAU,WAAA,EAAa;AAC1B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,+BAAA;AAAA,UACA,yBAAA;AAAA,UACA,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,WAAW,CAACF,WAAAA,CAAW,IAAA,CAAK,SAAA,CAAU,WAAW,CAAA,EAAG;AAClD,MAAA,MAAA,CAAO,IAAA;AAAA,QACLE,MAAAA;AAAA,UACE,+BAAA;AAAA,UACA,CAAA,aAAA,EAAgB,UAAU,WAAW,CAAA,oBAAA,CAAA;AAAA,UACrC,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAA,IAAW,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1C,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,iCAAA;AAAA,UACA,CAAA,8BAAA,EAAiC,UAAU,WAAW,CAAA,CAAA,CAAA;AAAA,UACtD,GAAG,IAAI,CAAA,YAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,GAAA,CAAI,UAAU,WAAW,CAAA;AAAA,IAChC;AAEA,IAAA,IAAI,CAAC,UAAU,UAAA,EAAY;AACzB,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,mCAAA;AAAA,UACA,wBAAA;AAAA,UACA,GAAG,IAAI,CAAA,WAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,IAAI,CAAC,UAAU,qBAAA,EAAuB;AACpC,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,+BAAA;AAAA,UACA,mCAAA;AAAA,UACA,GAAG,IAAI,CAAA,sBAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,IAAI,SAAA,CAAU,iBAAiB,IAAA,EAAM;AACnC,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,kCAAA;AAAA,UACA,gDAAA;AAAA,UACA,GAAG,IAAI,CAAA,aAAA,CAAA;AAAA,UACP;AAAA;AACF,OACF;AAAA,IACF;AAEA,IAAA,MAAM,gBAAA,uBAAuB,GAAA,EAAY;AACzC,IAAA,SAAA,CAAU,WAAA,EAAa,OAAA;AAAA,MACrB,CAAC,YAA+C,eAAA,KAAoB;AAClE,QAAA,MAAM,UAAA,GAAa,CAAA,EAAG,IAAI,CAAA,aAAA,EAAgB,eAAe,CAAA,CAAA,CAAA;AACzD,QAAA,IAAI,EAAE,UAAA,CAAW,KAAA,IAASF,YAAW,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA,CAAA,EAAI;AAC5D,UAAA,MAAA,CAAO,IAAA;AAAA,YACLE,MAAAA;AAAA,cACE,+BAAA;AAAA,cACA,2CAAA;AAAA,cACA,GAAG,UAAU,CAAA,MAAA,CAAA;AAAA,cACb;AAAA;AACF,WACF;AAAA,QACF,CAAA,MAAA,IAAW,gBAAA,CAAiB,GAAA,CAAI,UAAA,CAAW,KAAK,CAAA,EAAG;AACjD,UAAA,MAAA,CAAO,IAAA;AAAA,YACLA,MAAAA;AAAA,cACE,iCAAA;AAAA,cACA,CAAA,kCAAA,EAAqC,WAAW,KAAK,CAAA,CAAA,CAAA;AAAA,cACrD,GAAG,UAAU,CAAA,MAAA,CAAA;AAAA,cACb;AAAA;AACF,WACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,gBAAA,CAAiB,GAAA,CAAI,WAAW,KAAK,CAAA;AAAA,QACvC;AACA,QAAA,IAAI,CAAC,WAAW,KAAA,EAAO;AACrB,UAAA,MAAA,CAAO,IAAA;AAAA,YACLA,MAAAA;AAAA,cACE,+BAAA;AAAA,cACA,oCAAA;AAAA,cACA,GAAG,UAAU,CAAA,MAAA,CAAA;AAAA,cACb;AAAA;AACF,WACF;AAAA,QACF;AAAA,MACF;AAAA,KACF;AAEA,IAAA,MAAM,cAAA,uBAAqB,GAAA,EAAY;AACvC,IAAA,SAAA,CAAU,SAAA,EAAW,OAAA;AAAA,MACnB,CAAC,UAA2C,aAAA,KAAkB;AAC5D,QAAA,MAAM,QAAA,GAAW,CAAA,EAAG,IAAI,CAAA,WAAA,EAAc,aAAa,CAAA,CAAA,CAAA;AACnD,QAAA,IAAI,EAAE,QAAA,CAAS,KAAA,IAASF,YAAW,IAAA,CAAK,QAAA,CAAS,KAAK,CAAA,CAAA,EAAI;AACxD,UAAA,MAAA,CAAO,IAAA;AAAA,YACLE,MAAAA;AAAA,cACE,6BAAA;AAAA,cACA,yCAAA;AAAA,cACA,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,cACX;AAAA;AACF,WACF;AAAA,QACF,CAAA,MAAA,IAAW,cAAA,CAAe,GAAA,CAAI,QAAA,CAAS,KAAK,CAAA,EAAG;AAC7C,UAAA,MAAA,CAAO,IAAA;AAAA,YACLA,MAAAA;AAAA,cACE,+BAAA;AAAA,cACA,CAAA,gCAAA,EAAmC,SAAS,KAAK,CAAA,CAAA,CAAA;AAAA,cACjD,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,cACX;AAAA;AACF,WACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,cAAA,CAAe,GAAA,CAAI,SAAS,KAAK,CAAA;AAAA,QACnC;AACA,QAAA,IAAI,CAAC,SAAS,KAAA,EAAO;AACnB,UAAA,MAAA,CAAO,IAAA;AAAA,YACLA,MAAAA;AAAA,cACE,6BAAA;AAAA,cACA,kCAAA;AAAA,cACA,GAAG,QAAQ,CAAA,MAAA,CAAA;AAAA,cACX;AAAA;AACF,WACF;AAAA,QACF;AACA,QAAA,IACE,SAAS,kBAAA,IACT,CAAC,+BAA+B,GAAA,CAAI,QAAA,CAAS,kBAAkB,CAAA,EAC/D;AACA,UAAA,MAAA,CAAO,IAAA;AAAA,YACLA,MAAAA;AAAA,cACE,gCAAA;AAAA,cACA,CAAA,iCAAA,EAAoC,SAAS,kBAAkB,CAAA,CAAA,CAAA;AAAA,cAC/D,GAAG,QAAQ,CAAA,mBAAA,CAAA;AAAA,cACX;AAAA;AACF,WACF;AAAA,QACF;AAAA,MACF;AAAA,KACF;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,eAAA,CACP,SACA,MAAA,EACsC;AACtC,EAAA,MAAM,SAA+C,EAAC;AAEtD,EAAA,IAAI,CAAC,aAAA,CAAc,GAAA,CAAI,OAAA,CAAQ,IAAI,CAAA,EAAG;AACpC,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,sBAAA;AAAA,QACA,CAAA,0BAAA,EAA6B,QAAQ,IAAI,CAAA,CAAA,CAAA;AAAA,QACzC,cAAA;AAAA,QACA;AAAA;AACF,KACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAQ;AAC3B,IAAA,IACE,OAAA,CAAQ,YAAA,IACR,OAAA,CAAQ,aAAA,IACR,QAAQ,gBAAA,EACR;AACA,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,yBAAA;AAAA,UACA,2DAAA;AAAA,UACA,SAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAAC,QAAQ,YAAA,EAAc;AACzB,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,6BAAA;AAAA,QACA,oDAAA;AAAA,QACA,sBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF,WAAW,CAACF,WAAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA,EAAG;AACjD,IAAA,MAAA,CAAO,IAAA;AAAA,MACLE,MAAAA;AAAA,QACE,6BAAA;AAAA,QACA,CAAA,cAAA,EAAiB,QAAQ,YAAY,CAAA,oBAAA,CAAA;AAAA,QACrC,sBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,QAAQ,aAAA,EAAe;AAC1B,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,gCAAA;AAAA,QACA,qDAAA;AAAA,QACA,uBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF,WAAW,CAACD,OAAAA,CAAO,IAAA,CAAK,OAAA,CAAQ,aAAa,CAAA,EAAG;AAC9C,IAAA,MAAA,CAAO,IAAA;AAAA,MACLC,MAAAA;AAAA,QACE,gCAAA;AAAA,QACA,CAAA,eAAA,EAAkB,QAAQ,aAAa,CAAA,sBAAA,CAAA;AAAA,QACvC,uBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IACE,QAAQ,YAAA,IACR,OAAA,CAAQ,iBAAiB,MAAA,IACzB,OAAA,CAAQ,kBAAkB,MAAA,EAC1B;AACA,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,0BAAA;AAAA,QACA,sFAAA;AAAA,QACA,sBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAI,OAAA,CAAQ,IAAA,KAAS,OAAA,IAAW,OAAA,CAAQ,gBAAA,EAAkB;AACxD,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,0BAAA;AAAA,QACA,+CAAA;AAAA,QACA,0BAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAQ;AAC3B,IAAA,IAAI,CAAC,QAAQ,gBAAA,EAAkB;AAC7B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLA,MAAAA;AAAA,UACE,yBAAA;AAAA,UACA,qEAAA;AAAA,UACA,0BAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,IACF,WAAW,CAACF,WAAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,gBAAgB,CAAA,EAAG;AACrD,MAAA,MAAA,CAAO,IAAA;AAAA,QACLE,MAAAA;AAAA,UACE,yBAAA;AAAA,UACA,CAAA,kBAAA,EAAqB,QAAQ,gBAAgB,CAAA,oBAAA,CAAA;AAAA,UAC7C,0BAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,oBAAA,CACP,KAAA,EACA,IAAA,GAAO,EAAA,EAC+B;AACtC,EAAA,MAAM,SAA+C,EAAC;AAEtD,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,KAAA,MAAW,CAAC,KAAA,EAAO,KAAK,CAAA,IAAK,KAAA,CAAM,SAAQ,EAAG;AAC5C,MAAA,MAAA,CAAO,IAAA,CAAK,GAAG,oBAAA,CAAqB,KAAA,EAAO,GAAG,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAC,CAAA;AAAA,IACjE;AACA,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,CAACC,cAAAA,CAAc,KAAK,CAAA,EAAG;AACzB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,UAAU,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AACrD,IAAA,MAAM,WAAW,IAAA,GAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI,GAAG,CAAA,CAAA,GAAK,GAAA;AAC3C,IAAA,IAAI,kBAAA,CAAmB,GAAA,CAAI,GAAG,CAAA,EAAG;AAC/B,MAAA,MAAA,CAAO,IAAA;AAAA,QACLD,MAAAA;AAAA,UACE,oBAAA;AAAA,UACA,0BAA0B,GAAG,CAAA,yEAAA,CAAA;AAAA,UAC7B,QAAA;AAAA,UACA;AAAA;AACF,OACF;AAAA,IACF;AACA,IAAA,MAAA,CAAO,IAAA,CAAK,GAAG,oBAAA,CAAqB,UAAA,EAAY,QAAQ,CAAC,CAAA;AAAA,EAC3D;AAEA,EAAA,OAAO,MAAA;AACT;AAOA,SAAS,qBAAqB,QAAA,EAA+C;AAC3E,EAAA,MAAM,IAAA,GAAO,oCAAA,CAAqC,QAAA,EAAU,MAAM,CAAA;AAClE,EAAA,IAAI,KAAK,UAAA,GAAgB,CAAA;AACzB,EAAA,IAAI,KAAK,UAAA,GAAgB,CAAA;AACzB,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,QAAQ,CAAA,EAAA,EAAK;AACpC,IAAA,MAAM,CAAA,GAAI,IAAA,CAAK,UAAA,CAAW,CAAC,CAAA;AAC3B,IAAA,EAAA,GAAK,IAAA,CAAK,IAAA,CAAK,EAAA,GAAK,CAAA,EAAG,QAAa,CAAA;AACpC,IAAA,EAAA,GAAK,KAAK,IAAA,CAAK,EAAA,IAAO,MAAM,CAAA,GAAM,CAAA,IAAK,IAAK,QAAa,CAAA;AAAA,EAC3D;AACA,EAAA,OAAA,CACG,OAAO,CAAA,EAAG,QAAA,CAAS,EAAE,CAAA,CAAE,SAAS,CAAA,EAAG,GAAG,CAAA,GAAA,CACtC,EAAA,KAAO,GAAG,QAAA,CAAS,EAAE,CAAA,CAAE,QAAA,CAAS,GAAG,GAAG,CAAA;AAE3C;AAGA,SAAS,mCAAA,CACP,QAAA,EACA,MAAA,GAA0C,IAAA,EACL;AACrC,EAAA,MAAM,SAA+C,EAAC;AAEtD,EAAA,IAAI,QAAA,CAAS,SAAS,yBAAA,EAA2B;AAC/C,IAAA,MAAA,CAAO,IAAA;AAAA,MACLA,MAAAA;AAAA,QACE,uBAAA;AAAA,QACA,iBAAiB,yBAAyB,CAAA,CAAA,CAAA;AAAA,QAC1C,MAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAI,CAACD,OAAAA,CAAO,IAAA,CAAK,QAAA,CAAS,eAAe,CAAA,EAAG;AAC1C,IAAA,MAAA,CAAO,IAAA;AAAA,MACLC,MAAAA;AAAA,QACE,0BAAA;AAAA,QACA,CAAA,iBAAA,EAAoB,SAAS,eAAe,CAAA,sBAAA,CAAA;AAAA,QAC5C,iBAAA;AAAA,QACA;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,MAAA,CAAO,IAAA,CAAK,GAAG,kBAAA,CAAmB,QAAA,CAAS,UAAU,CAAC,CAAA;AACtD,EAAA,MAAA,CAAO,IAAA,CAAK,GAAG,wBAAA,CAAyB,QAAA,CAAS,gBAAgB,CAAC,CAAA;AAClE,EAAA,MAAA,CAAO,IAAA,CAAK,GAAG,0BAAA,CAA2B,QAAA,CAAS,kBAAkB,CAAC,CAAA;AACtE,EAAA,MAAA,CAAO,IAAA,CAAK,GAAG,eAAA,CAAgB,QAAA,CAAS,SAAS,QAAA,CAAS,IAAA,CAAK,MAAM,CAAC,CAAA;AACtE,EAAA,MAAA,CAAO,IAAA,CAAK,GAAG,oBAAA,CAAqB,QAAQ,CAAC,CAAA;AAE7C,EAAA,MAAM,cAAA,GAAiB,kBAAA,CAAmB,QAAA,CAAS,IAAI,CAAA;AACvD,EAAA,MAAA,CAAO,IAAA;AAAA,IACL,GAAG,cAAA,CAAe,MAAA,CAAO,GAAA,CAAI,CAAC,SAAA,MAAe;AAAA,MAC3C,GAAG,SAAA;AAAA,MACH,IAAA,EAAM,CAAA,KAAA,EAAQ,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,MAC5B,MAAA,EAAQ;AAAA,KACV,CAAE;AAAA,GACJ;AAEA,EAAA,OAAO;AAAA,IACL,OAAO,MAAA,CAAO,KAAA,CAAM,CAAC,YAAA,KAAiB,YAAA,CAAa,aAAa,OAAO,CAAA;AAAA,IACvE,MAAA;AAAA,IACA,QAAA;AAAA,IACA,cAAA,EAAgB,qBAAqB,QAAQ,CAAA;AAAA,IAC7C,MAAA;AAAA,IACA,MAAA,EAAQ,uBAAuB,QAAQ;AAAA,GACzC;AACF;AAEA,SAAS,kBAAA,CACP,OACA,MAAA,EACqC;AACrC,EAAA,OAAO;AAAA,IACL,KAAA,EAAO,KAAA;AAAA,IACP,MAAA;AAAA,IACA,QAAA,EAAU,IAAA;AAAA,IACV,cAAA,EAAgB,IAAA;AAAA,IAChB,MAAA,EAAQ;AAAA,MACNA,OAAM,aAAA,EAAe,oBAAA,CAAqB,KAAK,CAAA,EAAG,YAAY,OAAO;AAAA,KACvE;AAAA,IACA,QAAQ,WAAA;AAAY,GACtB;AACF;AAEA,SAAS,oCACP,QAAA,EACqC;AACrC,EAAA,OAAO,mCAAA;AAAA,IACL,iCAAA;AAAA,MACE;AAAA;AACF,GACF;AACF;AAEA,SAAS,yCAAA,CACP,QACA,MAAA,EACqC;AACrC,EAAA,MAAM,cAAA,GAAiBE,+BAAAA,CAA+B,MAAA,EAAQ,MAAM,CAAA;AAEpE,EAAA,IAAI;AACF,IAAA,MAAM,QAAA,GAAW,gCAAA,CAAiC,MAAA,EAAQ,cAAc,CAAA;AACxE,IAAA,OAAO,mCAAA,CAAoC,UAAU,cAAc,CAAA;AAAA,EACrE,SAAS,KAAA,EAAO;AACd,IAAA,OAAO,kBAAA,CAAmB,OAAO,cAAc,CAAA;AAAA,EACjD;AACF;AAEA,SAAS,sBACP,QAAA,EACiB;AACjB,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,OAAA,uBAAc,GAAA,EAAmB;AACvC,EAAA,KAAA,MAAW,SAAA,IAAa,QAAA,CAAS,UAAA,IAAc,EAAC,EAAG;AACjD,IAAA,iBAAA,CAAkB,OAAA,EAAS,UAAU,cAAc,CAAA;AAAA,EACrD;AACA,EAAA,KAAA,MAAW,UAAU,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,OAAA,IAAW,EAAC,EAAG;AACjE,IAAA,iBAAA,CAAkB,OAAA,EAAS,OAAO,cAAc,CAAA;AAAA,EAClD;AACA,EAAA,KAAA,MAAW,QAAQ,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,KAAA,IAAS,EAAC,EAAG;AAC7D,IAAA,iBAAA,CAAkB,OAAA,EAAS,KAAK,cAAc,CAAA;AAAA,EAChD;AACA,EAAA,KAAA,MAAW,SAAS,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,WAAA,IAAe,EAAC,EAAG;AACpE,IAAA,iBAAA,CAAkB,OAAA,EAAS,MAAM,cAAc,CAAA;AAAA,EACjD;AACA,EAAA,KAAA,MAAW,WAAW,QAAA,CAAS,IAAA,CAAK,eAAA,EAAiB,eAAA,IAAmB,EAAC,EAAG;AAC1E,IAAA,OAAA,CAAQ,GAAA,CAAI,QAAQ,aAAa,CAAA;AAAA,EACnC;AACA,EAAA,OAAO,KAAA,CAAM,IAAA,CAAK,OAAO,CAAA,CAAE,IAAA,EAAK;AAClC;AAEA,SAAS,iBAAA,CACP,SACA,MAAA,EACM;AACN,EAAA,KAAA,MAAW,MAAA,IAAU,MAAA,IAAU,EAAC,EAAG;AACjC,IAAA,OAAA,CAAQ,IAAI,MAAM,CAAA;AAAA,EACpB;AACF;AAEA,SAAS,gBAAgB,OAAA,EAAkD;AACzE,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAQ;AAC3B,IAAA,OAAO,mCAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAA,CAAQ,SAAS,OAAA,EAAS;AAC5B,IAAA,OAAO,CAAA,SAAA,EAAY,OAAA,CAAQ,YAAY,CAAA,CAAA,EAAI,QAAQ,aAAa,CAAA,CAAA,CAAA;AAAA,EAClE;AACA,EAAA,OAAO,CAAA,QAAA,EAAW,QAAQ,YAAY,CAAA,CAAA,EAAI,QAAQ,aAAa,CAAA,iBAAA,EAAoB,QAAQ,gBAAgB,CAAA,CAAA,CAAA;AAC7G;AAEA,SAAS,mCACP,QAAA,EAC4B;AAC5B,EAAA,MAAM,UAAA,GAAa,oCAAoC,QAAQ,CAAA;AAC/D,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,gBAAgB,UAAA,CAAW,KAAA;AAAA,IAC3B,eAAe,UAAA,CAAW,QAAA,GACtB,qCAAqC,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA,GAChE,IAAA;AAAA,IACJ,eAAe,UAAA,CAAW,QAAA,GACtB,qCAAqC,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA,GAChE,IAAA;AAAA,IACJ,cAAA,EAAgB,eAAA,CAAgB,UAAA,CAAW,QAAA,EAAU,WAAW,IAAI,CAAA;AAAA,IACpE,sBAAA,EAAwB,qBAAA,CAAsB,UAAA,CAAW,QAAQ;AAAA,GACnE;AACF;AAEA,SAAS,wCAAA,CACP,QACA,MAAA,EAC4B;AAC5B,EAAA,MAAM,UAAA,GAAa,yCAAA,CAA0C,MAAA,EAAQ,MAAM,CAAA;AAC3E,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,gBAAgB,UAAA,CAAW,KAAA;AAAA,IAC3B,eAAe,UAAA,CAAW,QAAA,GACtB,qCAAqC,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA,GAChE,IAAA;AAAA,IACJ,eAAe,UAAA,CAAW,QAAA,GACtB,qCAAqC,UAAA,CAAW,QAAA,EAAU,MAAM,CAAA,GAChE,IAAA;AAAA,IACJ,cAAA,EAAgB,eAAA,CAAgB,UAAA,CAAW,QAAA,EAAU,WAAW,IAAI,CAAA;AAAA,IACpE,sBAAA,EAAwB,qBAAA,CAAsB,UAAA,CAAW,QAAQ;AAAA,GACnE;AACF;AAEA,SAAS,iBACP,QAAA,EACyC;AACzC,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAK,GAAI,QAAA;AAC1B,EAAA,IAAI,OAAA,CAAQ,SAAS,MAAA,EAAQ;AAC3B,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,OAAA,CAAQ,SAAS,OAAA,EAAS;AAC5B,IAAA,OAAO;AAAA,MACL,QAAA,EAAU,cAAA;AAAA,MACV,aAAa,IAAA,CAAK,MAAA;AAAA,MAClB,YAAA,EAAc,gBAAA,CAAiB,OAAA,CAAQ,YAAA,EAAc,cAAc,CAAA;AAAA,MACnE,aAAA,EAAe,gBAAA,CAAiB,OAAA,CAAQ,aAAA,EAAe,eAAe;AAAA,KACxE;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,YAAA;AAAA,IACV,aAAa,IAAA,CAAK,MAAA;AAAA,IAClB,YAAA,EAAc,gBAAA;AAAA,MACZ,OAAA,CAAQ,gBAAA;AAAA,MACR;AAAA,KACF;AAAA,IACA,aAAA,EAAe,gBAAA,CAAiB,OAAA,CAAQ,aAAA,EAAe,eAAe;AAAA,GACxE;AACF;AAEA,SAAS,gBAAA,CAAiB,OAA2B,KAAA,EAAuB;AAC1E,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,SAAS,CAAA,EAAG;AACjD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gDAAA,EAAmD,KAAK,CAAA,CAAA,CAAG,CAAA;AAC7E;AAEA,SAAS,uBAAA,CACP,OACA,KAAA,EACQ;AACR,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,SAAS,CAAA,EAAG;AACjD,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,IAAI,KAAA,CAAM,CAAA,wCAAA,EAA2C,KAAK,CAAA,CAAA,CAAG,CAAA;AACrE;AAEA,SAAS,mCACP,QAAA,EACyB;AACzB,EAAA,MAAM,OAAA,GAAU,mCAAmC,QAAQ,CAAA;AAC3D,EAAA,IAAI,EAAE,OAAA,CAAQ,cAAA,IAAkB,OAAA,CAAQ,QAAA,IAAY,QAAQ,cAAA,CAAA,EAAiB;AAC3E,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,KAAA;AAAA,MACX,OAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAA;AAAA,IACX,OAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,aAAA,EAAe,CAAA,EAAG,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,MAC/E,MAAA,EAAQ,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,MAAA;AAAA,MAC9B,OAAA,EAAS,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,OAAA;AAAA,MAC/B,gBAAgB,OAAA,CAAQ,cAAA;AAAA,MACxB,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,WAAA,EAAa,gBAAA,CAAiB,OAAA,CAAQ,QAAQ,CAAA;AAAA,MAC9C,aAAA,EAAe,uBAAA;AAAA,QACb,OAAA,CAAQ,aAAA;AAAA,QACR;AAAA,OACF;AAAA,MACA,aAAA,EAAe,uBAAA;AAAA,QACb,OAAA,CAAQ,aAAA;AAAA,QACR;AAAA;AACF;AACF,GACF;AACF;AAEA,SAAS,wCAAA,CACP,QACA,MAAA,EACyB;AACzB,EAAA,MAAM,OAAA,GAAU,wCAAA,CAAyC,MAAA,EAAQ,MAAM,CAAA;AACvE,EAAA,IAAI,EAAE,OAAA,CAAQ,cAAA,IAAkB,OAAA,CAAQ,QAAA,IAAY,QAAQ,cAAA,CAAA,EAAiB;AAC3E,IAAA,OAAO;AAAA,MACL,SAAA,EAAW,KAAA;AAAA,MACX,OAAA;AAAA,MACA,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,IAAA;AAAA,IACX,OAAA;AAAA,IACA,WAAA,EAAa;AAAA,MACX,aAAA,EAAe,CAAA,EAAG,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,MAAM,CAAA,CAAA,EAAI,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,CAAA;AAAA,MAC/E,MAAA,EAAQ,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,MAAA;AAAA,MAC9B,OAAA,EAAS,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,OAAA;AAAA,MAC/B,gBAAgB,OAAA,CAAQ,cAAA;AAAA,MACxB,UAAU,OAAA,CAAQ,QAAA;AAAA,MAClB,WAAA,EAAa,gBAAA,CAAiB,OAAA,CAAQ,QAAQ,CAAA;AAAA,MAC9C,aAAA,EAAe,uBAAA;AAAA,QACb,OAAA,CAAQ,aAAA;AAAA,QACR;AAAA,OACF;AAAA,MACA,aAAA,EAAe,uBAAA;AAAA,QACb,OAAA,CAAQ,aAAA;AAAA,QACR;AAAA;AACF;AACF,GACF;AACF;AAEA,SAAS,8BAAA,GAA6D;AACpE,EAAA,MAAM,WAAA,GAAc;AAAA,IAClB,IAAA,EAAM,QAAA;AAAA,IACN,UAAA,EAAY;AAAA,MACV,YAAA,EAAc;AAAA,QACZ,IAAA,EAAM,QAAA;AAAA,QACN,WAAA,EAAa;AAAA,OACf;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,IAAA,EAAM,QAAA;AAAA,QACN,IAAA,EAAM,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,QACrB,WAAA,EAAa;AAAA;AACf,KACF;AAAA,IACA,QAAA,EAAU,CAAC,cAAc,CAAA;AAAA,IACzB,oBAAA,EAAsB;AAAA,GACxB;AAEA,EAAA,OAAO;AAAA,IACL,UAAU,gBAAA,CAAiB;AAAA,MACzB,MAAM,oBAAA,CAAqB,QAAA;AAAA,MAC3B,WAAA,EACE,8GAAA;AAAA,MACF,WAAA;AAAA,MACA,OAAA,EAAS,CAAC,IAAA,KACR,yCAAA;AAAA,QACE,IAAA,CAAK,YAAA;AAAA,QACL,IAAA,CAAK;AAAA;AACP,KACH,CAAA;AAAA,IACD,SAAS,gBAAA,CAAiB;AAAA,MACxB,MAAM,oBAAA,CAAqB,OAAA;AAAA,MAC3B,WAAA,EACE,iHAAA;AAAA,MACF,WAAA;AAAA,MACA,OAAA,EAAS,CAAC,IAAA,KACR,wCAAA;AAAA,QACE,IAAA,CAAK,YAAA;AAAA,QACL,IAAA,CAAK;AAAA;AACP,KACH,CAAA;AAAA,IACD,SAAS,gBAAA,CAAiB;AAAA,MACxB,MAAM,oBAAA,CAAqB,OAAA;AAAA,MAC3B,WAAA,EACE,+GAAA;AAAA,MACF,WAAA;AAAA,MACA,OAAA,EAAS,CAAC,IAAA,KACR,wCAAA;AAAA,QACE,IAAA,CAAK,YAAA;AAAA,QACL,IAAA,CAAK;AAAA;AACP,KACH;AAAA,GACH;AACF;AAEO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,mCAAA;AAAA,EACA,yCAAA;AAAA,EACA,kCAAA;AAAA,EACA,wCAAA;AAAA,EACA,kCAAA;AAAA,EACA,wCAAA;AAAA,EACA;AACF,CAAA;;;AC97BO,IAAMC,uCACX,6BAAA,CAA8B;AACzB,IAAMC,6CACX,6BAAA,CAA8B;AACzB,IAAMC,sCACX,6BAAA,CAA8B;AACzB,IAAMC,4CACX,6BAAA,CAA8B;AACzB,IAAMC,sCACX,6BAAA,CAA8B;AACzB,IAAMC,4CACX,6BAAA,CAA8B;AACzB,IAAMC,kCACX,6BAAA,CAA8B","file":"authoring.js","sourcesContent":["/**\n * Domain Pack Contracts\n *\n * A DomainPack is a self-contained reasoning context bundle that defines\n * how reasoning works in a specific domain. It binds ontology versions,\n * defines topic structure, declares workflow templates, gate schemas,\n * artifact schemas, and reasoning roles.\n *\n * This is the THIRD pack type in Lucern's architecture:\n * - AppPackManifest: UI routes, surfaces, policy profiles (app-level)\n * - MethodologyPack: Agent workflow phases, gates, enforcement (process-level)\n * - DomainPack: Reasoning domain context (domain-level)\n *\n * All fields are internal until RS-5+ external authoring certification.\n */\n\n// ---------------------------------------------------------------------------\n// Ontology Binding — ties a pack to specific ontology versions\n// ---------------------------------------------------------------------------\n\nexport type OntologyProvisionMode = \"bind\" | \"seed\" | \"extend\";\n\nexport interface OntologyBinding {\n ontologyId: string;\n provisionMode?: OntologyProvisionMode;\n required: boolean;\n requiredEdgeTypes?: string[];\n requiredEntityTypes?: string[];\n seedRef?: string;\n versionConstraint: string; // semver range, e.g., \"^1.0.0\"\n}\n\n// ---------------------------------------------------------------------------\n// Topic Root — defines the domain's top-level topic tree structure\n// ---------------------------------------------------------------------------\n\nexport interface TopicRoot {\n description: string;\n name: string;\n ontologyId?: string; // which ontology governs this root\n slug: string;\n}\n\n// ---------------------------------------------------------------------------\n// Workflow Template — shape of a workflow (not execution logic)\n// ---------------------------------------------------------------------------\n\nexport interface WorkflowStep {\n description: string;\n gateId?: string; // gate checked after this step\n name: string;\n produces?: string[]; // artifactId references\n requiredRoles: string[]; // roleId references\n stepId: string;\n}\n\nexport interface WorkflowTemplate {\n description: string;\n gateCheckpoints: string[]; // gateId references\n name: string;\n requiredArtifacts: string[]; // artifactId references\n steps: WorkflowStep[];\n workflowId: string;\n}\n\n// ---------------------------------------------------------------------------\n// Gate Schema — declarative description of what must be true\n// ---------------------------------------------------------------------------\n\nexport type GateCriterionOperator = \"gte\" | \"lte\" | \"eq\" | \"gt\" | \"lt\";\n\nexport interface GateCriterion {\n criterionId: string;\n description: string;\n metric: string;\n operator?: GateCriterionOperator;\n threshold?: number;\n}\n\nexport type GateSeverity = \"blocking\" | \"warning\" | \"informational\";\n\nexport interface GateSchema {\n criteria: GateCriterion[];\n description: string;\n gateId: string;\n name: string;\n severity: GateSeverity;\n}\n\n// ---------------------------------------------------------------------------\n// Artifact Schema — what artifacts workflows produce\n// ---------------------------------------------------------------------------\n\nexport interface ArtifactSchema {\n artifactId: string;\n contentSchema: Record<string, unknown>; // JSON Schema for content\n description: string;\n name: string;\n requiredFields: string[];\n stage: string; // workflow step that produces this\n}\n\n// ---------------------------------------------------------------------------\n// Reasoning Role — epistemic actors in the domain\n// ---------------------------------------------------------------------------\n\nexport interface ReasoningRole {\n description: string;\n mayBlock: boolean; // Epistemic Invariant #13: agents may block progress\n name: string;\n optimizesFor: string;\n perspective: string;\n roleId: string;\n}\n\n// ---------------------------------------------------------------------------\n// Inquiry Shaping — pack-level hooks for RS-3 auto-shaping\n// ---------------------------------------------------------------------------\n\nexport interface InquiryShapingQuestionTemplate {\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n questionType:\n | \"validation\"\n | \"falsification\"\n | \"assumption_probe\"\n | \"counterfactual\"\n | \"scope\"\n | \"comparison\"\n | \"mechanism\"\n | \"general\";\n template: string; // Supports {{objective}} and {{hypothesis}}\n templateId: string;\n whenObjectiveIncludes?: string[];\n}\n\nexport interface InquiryShapingTaskTemplate {\n description?: string; // Supports {{objective}} and {{hypothesis}}\n priority?: \"urgent\" | \"high\" | \"medium\" | \"low\";\n taskType?:\n | \"general\"\n | \"find_evidence\"\n | \"verify_claim\"\n | \"research\"\n | \"review\"\n | \"interview\"\n | \"analysis\"\n | \"track_metrics\";\n templateId: string;\n title: string; // Supports {{objective}} and {{hypothesis}}\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n}\n\nexport interface InquiryShapingFrameworkHint {\n boost?: number;\n frameworkName: string;\n reason?: string;\n whenObjectiveIncludes?: string[];\n whenQuestionTypes?: string[];\n}\n\nexport interface InquiryShapingConfig {\n frameworkHints?: InquiryShapingFrameworkHint[];\n questionTemplates?: InquiryShapingQuestionTemplate[];\n taskTemplates?: InquiryShapingTaskTemplate[];\n}\n\n// ---------------------------------------------------------------------------\n// Operating System Layer — prompts, tools, topic bootstrap, install surfaces\n// ---------------------------------------------------------------------------\n\nexport type RuntimeTarget = \"claude-code\" | \"codex\" | \"hybrid\" | \"portable\";\n\nexport type PromptSource = \"langfuse\" | \"file\";\nexport type PromptChannel =\n | \"bootstrap\"\n | \"workflow\"\n | \"analysis\"\n | \"review\"\n | \"tool\";\n\nexport interface PromptBinding {\n channel: PromptChannel;\n description: string;\n fallbackRef?: string;\n promptId: string;\n ref: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n source: PromptSource;\n}\n\nexport type ToolKind = \"mcp\" | \"cli\" | \"script\" | \"hook\" | \"ai-tool\";\n\nexport interface ToolBinding {\n description: string;\n entrypoint: string;\n kind: ToolKind;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n toolId: string;\n}\n\nexport type SetupAssetKind =\n | \"instruction\"\n | \"settings\"\n | \"hook\"\n | \"skill\"\n | \"agent\"\n | \"manifest\"\n | \"template\"\n | \"inbox\"\n | \"script\"\n | \"ui\";\n\nexport interface SetupAsset {\n assetId: string;\n description: string;\n kind: SetupAssetKind;\n path: string;\n required: boolean;\n runtimeTargets?: RuntimeTarget[];\n}\n\nexport interface TopicTemplate {\n description: string;\n name: string;\n ontologyId?: string;\n parentSlug?: string;\n slug: string;\n}\n\nexport interface InstallProfile {\n assetIds: string[];\n defaultTopicSlugs: string[];\n description: string;\n name: string;\n profileId: string;\n promptIds: string[];\n runtimeTarget: RuntimeTarget;\n toolIds: string[];\n}\n\nexport interface OperatingSystemLayer {\n installProfiles?: InstallProfile[];\n prompts?: PromptBinding[];\n setupAssets?: SetupAsset[];\n tools?: ToolBinding[];\n topicTemplates?: TopicTemplate[];\n}\n\n// ---------------------------------------------------------------------------\n// Domain Pack — the top-level contract\n// ---------------------------------------------------------------------------\n\nexport interface DomainPack {\n // Composition — optional references to other pack types\n appPackKeys?: string[]; // AppPackManifest keys this domain uses\n\n // Artifact Schemas\n artifacts: ArtifactSchema[];\n\n // Gate Schemas\n gates: GateSchema[];\n\n // Inquiry shaping hooks\n inquiryShaping?: InquiryShapingConfig;\n methodologyPackId?: string; // MethodologyPack for agent behavior\n name: string;\n\n // Scope\n ontologyBindings: OntologyBinding[];\n\n // Runtime/install packaging layer\n operatingSystem?: OperatingSystemLayer;\n // Identity\n packId: string;\n\n // Reasoning Roles\n roles: ReasoningRole[];\n topicRoots: TopicRoot[];\n version: string; // semver\n\n // Workflow Templates\n workflows: WorkflowTemplate[];\n}\n\n// ---------------------------------------------------------------------------\n// Builder helper — normalizes arrays and validates basic structure\n// ---------------------------------------------------------------------------\n\nfunction dedupeStrings(values: string[]): string[] {\n return Array.from(\n new Set(values.map((v) => v.trim()).filter((v) => v.length > 0))\n );\n}\n\nexport type DomainPackInput = Omit<DomainPack, \"appPackKeys\"> & {\n appPackKeys?: string[];\n};\n\nfunction normalizeRuntimeTargets(\n values: RuntimeTarget[] | undefined\n): RuntimeTarget[] | undefined {\n return values ? (dedupeStrings(values) as RuntimeTarget[]) : undefined;\n}\n\nfunction normalizeOntologyBinding(binding: OntologyBinding): OntologyBinding {\n return {\n ...binding,\n requiredEntityTypes: binding.requiredEntityTypes\n ? dedupeStrings(binding.requiredEntityTypes)\n : undefined,\n requiredEdgeTypes: binding.requiredEdgeTypes\n ? dedupeStrings(binding.requiredEdgeTypes)\n : undefined,\n };\n}\n\nfunction normalizeOperatingSystem(\n layer: OperatingSystemLayer | undefined\n): OperatingSystemLayer | undefined {\n if (!layer) {\n return;\n }\n\n return {\n prompts: layer.prompts?.map((prompt) => ({\n ...prompt,\n runtimeTargets: normalizeRuntimeTargets(prompt.runtimeTargets),\n })),\n tools: layer.tools?.map((tool) => ({\n ...tool,\n runtimeTargets: normalizeRuntimeTargets(tool.runtimeTargets),\n })),\n setupAssets: layer.setupAssets?.map((asset) => ({\n ...asset,\n runtimeTargets: normalizeRuntimeTargets(asset.runtimeTargets),\n })),\n topicTemplates: layer.topicTemplates,\n installProfiles: layer.installProfiles?.map((profile) => ({\n ...profile,\n promptIds: dedupeStrings(profile.promptIds),\n toolIds: dedupeStrings(profile.toolIds),\n assetIds: dedupeStrings(profile.assetIds),\n defaultTopicSlugs: dedupeStrings(profile.defaultTopicSlugs),\n })),\n };\n}\n\nexport function defineDomainPack(input: DomainPackInput): DomainPack {\n return {\n ...input,\n ontologyBindings: input.ontologyBindings.map(normalizeOntologyBinding),\n appPackKeys: input.appPackKeys\n ? dedupeStrings(input.appPackKeys)\n : undefined,\n operatingSystem: normalizeOperatingSystem(input.operatingSystem),\n workflows: input.workflows.map((w) => ({\n ...w,\n requiredArtifacts: dedupeStrings(w.requiredArtifacts),\n gateCheckpoints: dedupeStrings(w.gateCheckpoints),\n steps: w.steps.map((s) => ({\n ...s,\n requiredRoles: dedupeStrings(s.requiredRoles),\n produces: s.produces ? dedupeStrings(s.produces) : undefined,\n })),\n })),\n };\n}\n","/**\n * Domain Pack Authoring Kit\n *\n * Config-first authoring surface for tenant-authored domain packs. This layer\n * wraps the internal DomainPack contract in a stable manifest envelope with\n * framework versioning, schema and ontology extension contracts, remix/fork\n * lineage, and tool-shaped validate/preview/publish handlers.\n */\n\nimport type { DomainPack, DomainPackInput, RuntimeTarget } from \"./contracts\";\nimport { defineDomainPack } from \"./contracts\";\nimport type { DomainPackValidationIssue } from \"./validation\";\n\nexport type { RuntimeTarget } from \"./contracts\";\n\nexport const DOMAIN_PACK_MANIFEST_KIND = \"lucern-domain-pack-manifest\" as const;\nconst CURRENT_MANIFEST_VERSION = \"1.0.0\";\nconst YAML_NUMERIC_SCALAR = /^-?\\d+(?:\\.\\d+)?$/;\n\nexport type DomainPackManifestFormat = \"json\" | \"yaml\";\n\nexport interface DomainPackFrameworkContract {\n frameworkId: string;\n required?: boolean;\n runtimeTargets?: RuntimeTarget[];\n version: string;\n versionConstraint?: string;\n}\n\nexport type DomainPackSchemaExtensionTarget =\n | \"artifact\"\n | \"workflow\"\n | \"gate\"\n | \"prompt\"\n | \"tool\"\n | \"install-profile\"\n | \"topic-template\";\n\nexport interface DomainPackSchemaExtension {\n description: string;\n extends?: string;\n extensionId: string;\n schema: Record<string, unknown>;\n target: DomainPackSchemaExtensionTarget;\n version: string;\n}\n\nexport interface DomainPackOntologyEntityExtension {\n description?: string;\n label: string;\n schema?: Record<string, unknown>;\n subtypes?: string[];\n value: string;\n}\n\nexport interface DomainPackOntologyEdgeExtension {\n constraintSeverity?: \"error\" | \"warning\" | \"informational\";\n description?: string;\n label: string;\n sourceTypes?: string[];\n targetTypes?: string[];\n value: string;\n}\n\nexport interface DomainPackOntologyExtension {\n additiveOnly: boolean;\n baseVersionConstraint: string;\n edgeTypes?: DomainPackOntologyEdgeExtension[];\n entityTypes?: DomainPackOntologyEntityExtension[];\n extensionId: string;\n ontologyId: string;\n}\n\nexport type DomainPackLineageMode = \"root\" | \"remix\" | \"fork\";\n\nexport interface DomainPackLineage {\n mode: DomainPackLineageMode;\n notes?: string;\n parentManifestDigest?: string;\n parentPackId?: string;\n parentVersion?: string;\n supersedesPackId?: string;\n}\n\nexport interface DomainPackAuthoringMetadata {\n description?: string;\n owner?: string;\n tags?: string[];\n}\n\nexport interface DomainPackAuthoringManifest {\n frameworks?: DomainPackFrameworkContract[];\n kind: typeof DOMAIN_PACK_MANIFEST_KIND;\n lineage: DomainPackLineage;\n manifestVersion: string;\n metadata?: DomainPackAuthoringMetadata;\n ontologyExtensions?: DomainPackOntologyExtension[];\n pack: DomainPack;\n schemaExtensions?: DomainPackSchemaExtension[];\n}\n\nexport interface DomainPackAuthoringManifestInput {\n frameworks?: DomainPackFrameworkContract[];\n kind?: typeof DOMAIN_PACK_MANIFEST_KIND;\n lineage?: DomainPackLineage;\n manifestVersion?: string;\n metadata?: DomainPackAuthoringMetadata;\n ontologyExtensions?: DomainPackOntologyExtension[];\n pack: DomainPack | DomainPackInput;\n schemaExtensions?: DomainPackSchemaExtension[];\n}\n\nexport type DomainPackAuthoringValidationIssue = DomainPackValidationIssue & {\n source:\n | \"manifest\"\n | \"pack\"\n | \"framework\"\n | \"schema-extension\"\n | \"ontology-extension\"\n | \"lineage\"\n | \"terminology\"\n | \"parse\";\n};\n\nexport interface DomainPackManifestCounts {\n artifacts: number;\n frameworks: number;\n gates: number;\n installProfiles: number;\n ontologyExtensions: number;\n prompts: number;\n roles: number;\n schemaExtensions: number;\n setupAssets: number;\n tools: number;\n topicRoots: number;\n workflows: number;\n}\n\nexport interface DomainPackAuthoringValidationResult {\n counts: DomainPackManifestCounts;\n format: DomainPackManifestFormat | null;\n issues: DomainPackAuthoringValidationIssue[];\n manifest: DomainPackAuthoringManifest | null;\n manifestDigest: string | null;\n valid: boolean;\n}\n\nexport type DomainPackAuthoringPreview = DomainPackAuthoringValidationResult & {\n readyToPublish: boolean;\n canonicalJson: string | null;\n canonicalYaml: string | null;\n lineageSummary: string | null;\n requiredRuntimeTargets: RuntimeTarget[];\n};\n\nexport interface DomainPackPublicationLineageEdge {\n childPackId: string;\n edgeType: \"remixed_from\" | \"supersedes\";\n parentPackId: string;\n parentVersion: string;\n}\n\nexport interface DomainPackPublication {\n canonicalJson: string;\n canonicalYaml: string;\n lineageEdge: DomainPackPublicationLineageEdge | null;\n manifest: DomainPackAuthoringManifest;\n manifestDigest: string;\n packId: string;\n publicationId: string;\n version: string;\n}\n\nexport interface DomainPackPublishResult {\n preview: DomainPackAuthoringPreview;\n publication: DomainPackPublication | null;\n published: boolean;\n}\n\nexport interface DomainPackAuthoringToolInput {\n format?: DomainPackManifestFormat;\n manifestText: string;\n}\n\nexport interface DomainPackAuthoringToolDefinition<Result> {\n description: string;\n execute: (args: DomainPackAuthoringToolInput) => Result;\n inputSchema: Record<string, unknown>;\n name:\n | \"validate_domain_pack_manifest\"\n | \"preview_domain_pack_manifest\"\n | \"publish_domain_pack_manifest\";\n}\n\nexport interface DomainPackAuthoringToolset {\n preview: DomainPackAuthoringToolDefinition<DomainPackAuthoringPreview>;\n publish: DomainPackAuthoringToolDefinition<DomainPackPublishResult>;\n validate: DomainPackAuthoringToolDefinition<DomainPackAuthoringValidationResult>;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n );\n}\n\nfunction dedupeStrings(values: string[] | undefined): string[] | undefined {\n if (!values) {\n return;\n }\n return Array.from(\n new Set(values.map((value) => value.trim()).filter((value) => value.length))\n );\n}\n\nfunction normalizeRuntimeTargets(\n values: RuntimeTarget[] | undefined\n): RuntimeTarget[] | undefined {\n return values ? (dedupeStrings(values) as RuntimeTarget[]) : undefined;\n}\n\nfunction normalizeFrameworks(\n frameworks: DomainPackFrameworkContract[] | undefined\n): DomainPackFrameworkContract[] | undefined {\n if (!frameworks) {\n return;\n }\n\n return frameworks.map((framework) => ({\n ...framework,\n frameworkId: framework.frameworkId.trim(),\n version: framework.version.trim(),\n versionConstraint: framework.versionConstraint?.trim(),\n runtimeTargets: normalizeRuntimeTargets(framework.runtimeTargets),\n }));\n}\n\nfunction normalizeSchemaExtensions(\n extensions: DomainPackSchemaExtension[] | undefined\n): DomainPackSchemaExtension[] | undefined {\n if (!extensions) {\n return;\n }\n\n return extensions.map((extension) => ({\n ...extension,\n extensionId: extension.extensionId.trim(),\n target: extension.target,\n description: extension.description.trim(),\n version: extension.version.trim(),\n extends: extension.extends?.trim(),\n }));\n}\n\nfunction normalizeOntologyExtensions(\n extensions: DomainPackOntologyExtension[] | undefined\n): DomainPackOntologyExtension[] | undefined {\n if (!extensions) {\n return;\n }\n\n return extensions.map((extension) => ({\n ...extension,\n extensionId: extension.extensionId.trim(),\n ontologyId: extension.ontologyId.trim(),\n baseVersionConstraint: extension.baseVersionConstraint.trim(),\n entityTypes: extension.entityTypes?.map((entityType) => ({\n ...entityType,\n value: entityType.value.trim(),\n label: entityType.label.trim(),\n description: entityType.description?.trim(),\n subtypes: dedupeStrings(entityType.subtypes),\n })),\n edgeTypes: extension.edgeTypes?.map((edgeType) => ({\n ...edgeType,\n value: edgeType.value.trim(),\n label: edgeType.label.trim(),\n description: edgeType.description?.trim(),\n sourceTypes: dedupeStrings(edgeType.sourceTypes),\n targetTypes: dedupeStrings(edgeType.targetTypes),\n })),\n }));\n}\n\nfunction normalizeLineage(\n lineage: DomainPackLineage | undefined\n): DomainPackLineage {\n if (!lineage) {\n return { mode: \"root\" };\n }\n\n return {\n mode: lineage.mode,\n parentPackId: lineage.parentPackId?.trim(),\n parentVersion: lineage.parentVersion?.trim(),\n parentManifestDigest: lineage.parentManifestDigest?.trim(),\n supersedesPackId: lineage.supersedesPackId?.trim(),\n notes: lineage.notes?.trim(),\n };\n}\n\nfunction normalizeMetadata(\n metadata: DomainPackAuthoringMetadata | undefined\n): DomainPackAuthoringMetadata | undefined {\n if (!metadata) {\n return;\n }\n\n return {\n description: metadata.description?.trim(),\n owner: metadata.owner?.trim(),\n tags: dedupeStrings(metadata.tags),\n };\n}\n\nfunction toDomainPack(pack: DomainPack | DomainPackInput): DomainPack {\n return defineDomainPack(pack as DomainPackInput);\n}\n\nexport function defineDomainPackAuthoringManifest(\n input: DomainPackAuthoringManifestInput\n): DomainPackAuthoringManifest {\n return {\n kind: input.kind ?? DOMAIN_PACK_MANIFEST_KIND,\n manifestVersion: input.manifestVersion?.trim() || CURRENT_MANIFEST_VERSION,\n pack: toDomainPack(input.pack),\n frameworks: normalizeFrameworks(input.frameworks),\n schemaExtensions: normalizeSchemaExtensions(input.schemaExtensions),\n ontologyExtensions: normalizeOntologyExtensions(input.ontologyExtensions),\n lineage: normalizeLineage(input.lineage),\n metadata: normalizeMetadata(input.metadata),\n };\n}\n\nexport function countManifestArtifacts(\n manifest: DomainPackAuthoringManifest | null\n): DomainPackManifestCounts {\n if (!manifest) {\n return {\n topicRoots: 0,\n workflows: 0,\n gates: 0,\n artifacts: 0,\n roles: 0,\n prompts: 0,\n tools: 0,\n setupAssets: 0,\n installProfiles: 0,\n frameworks: 0,\n schemaExtensions: 0,\n ontologyExtensions: 0,\n };\n }\n\n return {\n topicRoots: manifest.pack.topicRoots.length,\n workflows: manifest.pack.workflows.length,\n gates: manifest.pack.gates.length,\n artifacts: manifest.pack.artifacts.length,\n roles: manifest.pack.roles.length,\n prompts: manifest.pack.operatingSystem?.prompts?.length ?? 0,\n tools: manifest.pack.operatingSystem?.tools?.length ?? 0,\n setupAssets: manifest.pack.operatingSystem?.setupAssets?.length ?? 0,\n installProfiles:\n manifest.pack.operatingSystem?.installProfiles?.length ?? 0,\n frameworks: manifest.frameworks?.length ?? 0,\n schemaExtensions: manifest.schemaExtensions?.length ?? 0,\n ontologyExtensions: manifest.ontologyExtensions?.length ?? 0,\n };\n}\n\nfunction sortJsonValue(value: unknown): unknown {\n if (Array.isArray(value)) {\n return value.map(sortJsonValue);\n }\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.entries(value)\n .filter(([, entryValue]) => entryValue !== undefined)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, entryValue]) => [key, sortJsonValue(entryValue)])\n );\n }\n return value;\n}\n\nfunction toYamlScalar(value: unknown): string {\n if (value === null) {\n return \"null\";\n }\n if (typeof value === \"boolean\" || typeof value === \"number\") {\n return String(value);\n }\n return JSON.stringify(String(value));\n}\n\nfunction renderYaml(value: unknown, indent = 0): string[] {\n const prefix = \" \".repeat(indent);\n\n if (Array.isArray(value)) {\n if (value.length === 0) {\n return [`${prefix}[]`];\n }\n return value.flatMap((entry) => {\n if (Array.isArray(entry) || isPlainObject(entry)) {\n return [`${prefix}-`, ...renderYaml(entry, indent + 2)];\n }\n return [`${prefix}- ${toYamlScalar(entry)}`];\n });\n }\n\n if (isPlainObject(value)) {\n const entries = Object.entries(value);\n if (entries.length === 0) {\n return [`${prefix}{}`];\n }\n return entries.flatMap(([key, entryValue]) => {\n if (entryValue === undefined) {\n return [];\n }\n if (Array.isArray(entryValue)) {\n if (entryValue.length === 0) {\n return [`${prefix}${key}: []`];\n }\n return [`${prefix}${key}:`, ...renderYaml(entryValue, indent + 2)];\n }\n if (isPlainObject(entryValue)) {\n if (Object.keys(entryValue).length === 0) {\n return [`${prefix}${key}: {}`];\n }\n return [`${prefix}${key}:`, ...renderYaml(entryValue, indent + 2)];\n }\n return [`${prefix}${key}: ${toYamlScalar(entryValue)}`];\n });\n }\n\n return [`${prefix}${toYamlScalar(value)}`];\n}\n\nfunction countIndent(line: string): number {\n return line.length - line.trimStart().length;\n}\n\nfunction parseYamlScalar(raw: string): unknown {\n const value = raw.trim();\n if (value === \"null\") {\n return null;\n }\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n if (YAML_NUMERIC_SCALAR.test(value)) {\n return Number(value);\n }\n if (\n (value.startsWith('\"') && value.endsWith('\"')) ||\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\n ) {\n if (value.startsWith(\"'\")) {\n return value.slice(1, -1).replace(/''/g, \"'\");\n }\n return JSON.parse(value) as string;\n }\n if (value === \"[]\") {\n return [];\n }\n if (value === \"{}\") {\n return {};\n }\n return value;\n}\n\nfunction splitYamlKeyValue(trimmed: string): {\n key: string;\n value: string | null;\n} {\n const separatorIndex = trimmed.indexOf(\":\");\n if (separatorIndex === -1) {\n throw new Error(`Invalid YAML mapping entry: ${trimmed}`);\n }\n\n const key = trimmed.slice(0, separatorIndex).trim();\n const value = trimmed.slice(separatorIndex + 1).trim();\n return { key, value: value.length ? value : null };\n}\n\nfunction parseYamlDocument(text: string): unknown {\n const rawLines = text\n .replace(/\\r\\n/g, \"\\n\")\n .split(\"\\n\")\n .map((line) => line.replace(/\\t/g, \" \"));\n const lines = rawLines.filter((line) => {\n const trimmed = line.trim();\n return trimmed.length > 0 && trimmed !== \"---\" && trimmed !== \"...\";\n });\n\n let index = 0;\n\n function parseBlock(indent: number): unknown {\n if (index >= lines.length) {\n return {};\n }\n\n const currentLine = lines[index];\n const currentIndent = countIndent(currentLine);\n if (currentIndent < indent) {\n return {};\n }\n if (currentLine.trimStart().startsWith(\"-\")) {\n return parseArray(indent);\n }\n return parseObject(indent);\n }\n\n function parseArray(indent: number): unknown[] {\n const items: unknown[] = [];\n\n while (index < lines.length) {\n const line = lines[index];\n const currentIndent = countIndent(line);\n if (currentIndent < indent) {\n break;\n }\n if (currentIndent !== indent) {\n throw new Error(`Invalid YAML indentation near: ${line.trim()}`);\n }\n\n const trimmed = line.trimStart();\n if (!trimmed.startsWith(\"-\")) {\n break;\n }\n\n const rest = trimmed.slice(1).trimStart();\n index += 1;\n\n if (!rest.length) {\n items.push(parseBlock(indent + 2));\n continue;\n }\n\n items.push(parseYamlScalar(rest));\n }\n\n return items;\n }\n\n function parseObject(indent: number): Record<string, unknown> {\n const objectValue: Record<string, unknown> = {};\n\n while (index < lines.length) {\n const line = lines[index];\n const currentIndent = countIndent(line);\n if (currentIndent < indent) {\n break;\n }\n if (currentIndent !== indent) {\n throw new Error(`Invalid YAML indentation near: ${line.trim()}`);\n }\n\n const trimmed = line.trim();\n if (trimmed.startsWith(\"-\")) {\n break;\n }\n\n const { key, value } = splitYamlKeyValue(trimmed);\n index += 1;\n objectValue[key] =\n value === null ? parseBlock(indent + 2) : parseYamlScalar(value);\n }\n\n return objectValue;\n }\n\n return parseBlock(0);\n}\n\nfunction detectDomainPackManifestFormat(\n source: string,\n explicitFormat?: DomainPackManifestFormat\n): DomainPackManifestFormat {\n if (explicitFormat) {\n return explicitFormat;\n }\n\n const trimmed = source.trim();\n if (trimmed.startsWith(\"{\")) {\n return \"json\";\n }\n return \"yaml\";\n}\n\nexport function serializeDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest,\n format: DomainPackManifestFormat = \"json\"\n): string {\n const canonicalValue = sortJsonValue(manifest);\n if (format === \"json\") {\n return `${JSON.stringify(canonicalValue, null, 2)}\\n`;\n }\n return `${renderYaml(canonicalValue).join(\"\\n\")}\\n`;\n}\n\nexport function parseDomainPackAuthoringManifest(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringManifest {\n const detectedFormat = detectDomainPackManifestFormat(source, format);\n const parsed =\n detectedFormat === \"json\"\n ? (JSON.parse(source) as unknown)\n : parseYamlDocument(source);\n\n if (!isPlainObject(parsed)) {\n throw new Error(\"Domain pack manifest must parse to an object.\");\n }\n\n if (!(\"pack\" in parsed)) {\n throw new Error(\"Domain pack manifest requires a top-level pack object.\");\n }\n\n return defineDomainPackAuthoringManifest({\n kind: parsed.kind as typeof DOMAIN_PACK_MANIFEST_KIND | undefined,\n manifestVersion: parsed.manifestVersion as string | undefined,\n pack: parsed.pack as DomainPackInput,\n frameworks: parsed.frameworks as DomainPackFrameworkContract[] | undefined,\n schemaExtensions: parsed.schemaExtensions as\n | DomainPackSchemaExtension[]\n | undefined,\n ontologyExtensions: parsed.ontologyExtensions as\n | DomainPackOntologyExtension[]\n | undefined,\n lineage: parsed.lineage as DomainPackLineage | undefined,\n metadata: parsed.metadata as DomainPackAuthoringMetadata | undefined,\n });\n}\n","/**\n * Domain Pack Validation\n *\n * Validates a DomainPack for structural integrity:\n * - Required fields present and non-empty\n * - IDs are unique within their collections\n * - Cross-references resolve (gates, artifacts, roles referenced in workflows exist)\n * - Version is valid semver\n * - packId is kebab-case\n */\n\nimport type {\n DomainPack,\n InquiryShapingFrameworkHint,\n InquiryShapingQuestionTemplate,\n InquiryShapingTaskTemplate,\n} from \"./contracts\";\n\nexport interface DomainPackValidationIssue {\n code: string;\n message: string;\n path: string;\n severity: \"error\" | \"warning\";\n}\n\nexport interface DomainPackValidationResult {\n issues: DomainPackValidationIssue[];\n valid: boolean;\n}\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n severity: \"error\" | \"warning\" = \"error\"\n): DomainPackValidationIssue {\n return { code, severity, message, path };\n}\n\nconst KEBAB_CASE = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\nconst SEMVER =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst SHAPING_QUESTION_TYPES = new Set([\n \"validation\",\n \"falsification\",\n \"assumption_probe\",\n \"counterfactual\",\n \"scope\",\n \"comparison\",\n \"mechanism\",\n \"general\",\n]);\nconst RUNTIME_TARGETS = new Set([\"claude-code\", \"codex\", \"hybrid\", \"portable\"]);\nconst ONTOLOGY_PROVISION_MODES = new Set([\"bind\", \"seed\", \"extend\"]);\n\nfunction validateStringArray(\n values: string[] | undefined,\n path: string,\n label: string\n): DomainPackValidationIssue[] {\n if (!values) {\n return [];\n }\n\n return values.flatMap((value, index) => {\n if (!value?.trim()) {\n return [\n issue(\n \"INVALID_SHAPING_CONDITION\",\n `${label} must not contain empty strings`,\n `${path}[${index}]`\n ),\n ];\n }\n return [];\n });\n}\n\nfunction validateRuntimeTargets(\n values: string[] | undefined,\n path: string\n): DomainPackValidationIssue[] {\n const issues = validateStringArray(values, path, \"runtimeTargets\");\n for (const [index, value] of (values || []).entries()) {\n if (!RUNTIME_TARGETS.has(value)) {\n issues.push(\n issue(\n \"INVALID_RUNTIME_TARGET\",\n `Unsupported runtime target \"${value}\"`,\n `${path}[${index}]`\n )\n );\n }\n }\n return issues;\n}\n\nfunction validatePromptBinding(\n prompt: {\n promptId: string;\n ref: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.prompts[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!prompt.promptId?.trim()) {\n issues.push(\n issue(\n \"MISSING_PROMPT_ID\",\n \"prompt binding requires promptId\",\n `${path}.promptId`\n )\n );\n }\n if (!prompt.ref?.trim()) {\n issues.push(\n issue(\"MISSING_PROMPT_REF\", \"prompt binding requires ref\", `${path}.ref`)\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(prompt.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateToolBinding(\n tool: {\n toolId: string;\n entrypoint: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.tools[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!tool.toolId?.trim()) {\n issues.push(\n issue(\"MISSING_TOOL_ID\", \"tool binding requires toolId\", `${path}.toolId`)\n );\n }\n if (!tool.entrypoint?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOOL_ENTRYPOINT\",\n \"tool binding requires entrypoint\",\n `${path}.entrypoint`\n )\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(tool.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateSetupAsset(\n asset: {\n assetId: string;\n path: string;\n runtimeTargets?: string[];\n },\n index: number\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.setupAssets[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!asset.assetId?.trim()) {\n issues.push(\n issue(\n \"MISSING_SETUP_ASSET_ID\",\n \"setup asset requires assetId\",\n `${path}.assetId`\n )\n );\n }\n if (!asset.path?.trim()) {\n issues.push(\n issue(\n \"MISSING_SETUP_ASSET_PATH\",\n \"setup asset requires path\",\n `${path}.path`\n )\n );\n }\n\n issues.push(\n ...validateRuntimeTargets(asset.runtimeTargets, `${path}.runtimeTargets`)\n );\n return issues;\n}\n\nfunction validateQuestionTemplate(\n template: InquiryShapingQuestionTemplate,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.questionTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_SHAPING_TEMPLATE_ID\",\n \"question template requires templateId\",\n `${path}.templateId`\n )\n );\n }\n if (!template.template?.trim()) {\n issues.push(\n issue(\n \"MISSING_SHAPING_TEMPLATE\",\n \"question template requires template text\",\n `${path}.template`\n )\n );\n }\n if (!SHAPING_QUESTION_TYPES.has(template.questionType)) {\n issues.push(\n issue(\n \"INVALID_SHAPING_QUESTION_TYPE\",\n `Unsupported questionType \"${template.questionType}\"`,\n `${path}.questionType`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n template.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n\n return issues;\n}\n\nfunction validateTaskTemplate(\n template: InquiryShapingTaskTemplate,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.taskTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.templateId?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_GENERATOR_ID\",\n \"task template requires templateId\",\n `${path}.templateId`\n )\n );\n }\n if (!template.title?.trim()) {\n issues.push(\n issue(\n \"MISSING_TASK_GENERATOR_TITLE\",\n \"task template requires title\",\n `${path}.title`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n template.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n issues.push(\n ...validateStringArray(\n template.whenQuestionTypes,\n `${path}.whenQuestionTypes`,\n \"whenQuestionTypes\"\n )\n );\n\n for (const [questionTypeIndex, questionType] of (\n template.whenQuestionTypes || []\n ).entries()) {\n if (!SHAPING_QUESTION_TYPES.has(questionType)) {\n issues.push(\n issue(\n \"INVALID_TASK_GENERATOR_QUESTION_TYPE\",\n `Unsupported whenQuestionTypes value \"${questionType}\"`,\n `${path}.whenQuestionTypes[${questionTypeIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction validateFrameworkHint(\n hint: InquiryShapingFrameworkHint,\n index: number\n): DomainPackValidationIssue[] {\n const path = `inquiryShaping.frameworkHints[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!hint.frameworkName?.trim()) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_HOOK_NAME\",\n \"framework hint requires frameworkName\",\n `${path}.frameworkName`\n )\n );\n }\n if (hint.boost != null && (!Number.isFinite(hint.boost) || hint.boost < 0)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_HOOK_BOOST\",\n \"framework hint boost must be a non-negative number\",\n `${path}.boost`\n )\n );\n }\n\n issues.push(\n ...validateStringArray(\n hint.whenObjectiveIncludes,\n `${path}.whenObjectiveIncludes`,\n \"whenObjectiveIncludes\"\n )\n );\n issues.push(\n ...validateStringArray(\n hint.whenQuestionTypes,\n `${path}.whenQuestionTypes`,\n \"whenQuestionTypes\"\n )\n );\n\n for (const [questionTypeIndex, questionType] of (\n hint.whenQuestionTypes || []\n ).entries()) {\n if (!SHAPING_QUESTION_TYPES.has(questionType)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_HOOK_QUESTION_TYPE\",\n `Unsupported whenQuestionTypes value \"${questionType}\"`,\n `${path}.whenQuestionTypes[${questionTypeIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction validateTopicTemplate(\n template: {\n slug: string;\n name: string;\n description: string;\n parentSlug?: string;\n },\n index: number,\n knownTopicSlugs: Set<string>\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.topicTemplates[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!template.slug?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_SLUG\",\n \"topic template requires slug\",\n `${path}.slug`\n )\n );\n } else if (!KEBAB_CASE.test(template.slug)) {\n issues.push(\n issue(\n \"INVALID_TOPIC_TEMPLATE_SLUG\",\n `topic template slug \"${template.slug}\" must be kebab-case`,\n `${path}.slug`\n )\n );\n }\n\n if (!template.name?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_NAME\",\n \"topic template requires name\",\n `${path}.name`\n )\n );\n }\n\n if (!template.description?.trim()) {\n issues.push(\n issue(\n \"MISSING_TOPIC_TEMPLATE_DESCRIPTION\",\n \"topic template requires description\",\n `${path}.description`\n )\n );\n }\n\n if (template.parentSlug && !knownTopicSlugs.has(template.parentSlug)) {\n issues.push(\n issue(\n \"UNKNOWN_TOPIC_PARENT\",\n `topic template references unknown parent \"${template.parentSlug}\"`,\n `${path}.parentSlug`\n )\n );\n }\n\n return issues;\n}\n\nfunction validateInstallProfile(\n profile: {\n profileId: string;\n name: string;\n description: string;\n runtimeTarget: string;\n promptIds: string[];\n toolIds: string[];\n assetIds: string[];\n defaultTopicSlugs: string[];\n },\n index: number,\n knownPromptIds: Set<string>,\n knownToolIds: Set<string>,\n knownAssetIds: Set<string>,\n knownTopicSlugs: Set<string>\n): DomainPackValidationIssue[] {\n const path = `operatingSystem.installProfiles[${index}]`;\n const issues: DomainPackValidationIssue[] = [];\n\n if (!profile.profileId?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_ID\",\n \"install profile requires profileId\",\n `${path}.profileId`\n )\n );\n }\n if (!profile.name?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_NAME\",\n \"install profile requires name\",\n `${path}.name`\n )\n );\n }\n if (!profile.description?.trim()) {\n issues.push(\n issue(\n \"MISSING_INSTALL_PROFILE_DESCRIPTION\",\n \"install profile requires description\",\n `${path}.description`\n )\n );\n }\n if (!RUNTIME_TARGETS.has(profile.runtimeTarget)) {\n issues.push(\n issue(\n \"INVALID_RUNTIME_TARGET\",\n `Unsupported runtime target \"${profile.runtimeTarget}\"`,\n `${path}.runtimeTarget`\n )\n );\n }\n\n for (const [promptIndex, promptId] of profile.promptIds.entries()) {\n if (!knownPromptIds.has(promptId)) {\n issues.push(\n issue(\n \"UNKNOWN_PROMPT_REF\",\n `install profile references unknown prompt \"${promptId}\"`,\n `${path}.promptIds[${promptIndex}]`\n )\n );\n }\n }\n for (const [toolIndex, toolId] of profile.toolIds.entries()) {\n if (!knownToolIds.has(toolId)) {\n issues.push(\n issue(\n \"UNKNOWN_TOOL_REF\",\n `install profile references unknown tool \"${toolId}\"`,\n `${path}.toolIds[${toolIndex}]`\n )\n );\n }\n }\n for (const [assetIndex, assetId] of profile.assetIds.entries()) {\n if (!knownAssetIds.has(assetId)) {\n issues.push(\n issue(\n \"UNKNOWN_SETUP_ASSET_REF\",\n `install profile references unknown setup asset \"${assetId}\"`,\n `${path}.assetIds[${assetIndex}]`\n )\n );\n }\n }\n for (const [topicIndex, topicSlug] of profile.defaultTopicSlugs.entries()) {\n if (!knownTopicSlugs.has(topicSlug)) {\n issues.push(\n issue(\n \"UNKNOWN_TOPIC_REF\",\n `install profile references unknown topic \"${topicSlug}\"`,\n `${path}.defaultTopicSlugs[${topicIndex}]`\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction checkDuplicateIds(\n items: { [key: string]: string }[],\n idField: string,\n path: string\n): DomainPackValidationIssue[] {\n const issues: DomainPackValidationIssue[] = [];\n const seen = new Set<string>();\n for (const item of items) {\n const id = item[idField];\n if (seen.has(id)) {\n issues.push(\n issue(\n \"DUPLICATE_ID\",\n `Duplicate ${idField} \"${id}\"`,\n `${path}.${idField}`\n )\n );\n }\n seen.add(id);\n }\n return issues;\n}\n\nfunction checkOptionalDuplicateIds(\n items: unknown[] | undefined,\n idField: string,\n path: string\n): DomainPackValidationIssue[] {\n if (!items) {\n return [];\n }\n return checkDuplicateIds(items as { [key: string]: string }[], idField, path);\n}\n\nfunction validatePackIdentity(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (typeof pack.packId !== \"string\" || pack.packId.trim().length === 0) {\n issues.push(issue(\"MISSING_PACK_ID\", \"packId is required\", \"packId\"));\n } else if (!KEBAB_CASE.test(pack.packId)) {\n issues.push(\n issue(\n \"INVALID_PACK_ID\",\n `packId \"${pack.packId}\" must be kebab-case`,\n \"packId\"\n )\n );\n }\n\n if (typeof pack.name !== \"string\" || pack.name.trim().length === 0) {\n issues.push(issue(\"MISSING_NAME\", \"name is required\", \"name\"));\n }\n\n if (typeof pack.version !== \"string\" || pack.version.trim().length === 0) {\n issues.push(issue(\"MISSING_VERSION\", \"version is required\", \"version\"));\n } else if (!SEMVER.test(pack.version)) {\n issues.push(\n issue(\n \"INVALID_VERSION\",\n `version \"${pack.version}\" must be valid semver`,\n \"version\"\n )\n );\n }\n}\n\nfunction validateOntologyBindings(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.ontologyBindings || pack.ontologyBindings.length === 0) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_BINDINGS\",\n \"At least one ontologyBinding is required\",\n \"ontologyBindings\"\n )\n );\n } else {\n for (const [i, binding] of pack.ontologyBindings.entries()) {\n if (!binding.ontologyId?.trim()) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_ID\",\n `ontologyBinding[${i}].ontologyId is required`,\n `ontologyBindings[${i}].ontologyId`\n )\n );\n }\n if (!binding.versionConstraint?.trim()) {\n issues.push(\n issue(\n \"MISSING_VERSION_CONSTRAINT\",\n `ontologyBinding[${i}].versionConstraint is required`,\n `ontologyBindings[${i}].versionConstraint`\n )\n );\n }\n if (\n binding.provisionMode &&\n !ONTOLOGY_PROVISION_MODES.has(binding.provisionMode)\n ) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_PROVISION_MODE\",\n `Unsupported provisionMode \"${binding.provisionMode}\"`,\n `ontologyBindings[${i}].provisionMode`\n )\n );\n }\n if (\n binding.provisionMode &&\n binding.provisionMode !== \"bind\" &&\n !binding.seedRef?.trim()\n ) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_SEED_REF\",\n `ontologyBinding[${i}] requires seedRef when provisionMode is \"${binding.provisionMode}\"`,\n `ontologyBindings[${i}].seedRef`\n )\n );\n }\n issues.push(\n ...validateStringArray(\n binding.requiredEntityTypes,\n `ontologyBindings[${i}].requiredEntityTypes`,\n \"requiredEntityTypes\"\n ),\n ...validateStringArray(\n binding.requiredEdgeTypes,\n `ontologyBindings[${i}].requiredEdgeTypes`,\n \"requiredEdgeTypes\"\n )\n );\n }\n }\n}\n\nfunction validateTopicRoots(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.topicRoots || pack.topicRoots.length === 0) {\n issues.push(\n issue(\n \"MISSING_TOPIC_ROOTS\",\n \"At least one topicRoot is required\",\n \"topicRoots\"\n )\n );\n return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(pack.topicRoots, \"slug\", \"topicRoots\")\n );\n}\n\ntype DomainPackOperatingSystem = NonNullable<DomainPack[\"operatingSystem\"]>;\n\nfunction validateOperatingSystemPrompts(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.prompts) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.prompts,\n \"promptId\",\n \"operatingSystem.prompts\"\n )\n );\n for (const [index, prompt] of operatingSystem.prompts.entries()) {\n issues.push(...validatePromptBinding(prompt, index));\n }\n}\n\nfunction validateOperatingSystemTools(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.tools) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.tools,\n \"toolId\",\n \"operatingSystem.tools\"\n )\n );\n for (const [index, tool] of operatingSystem.tools.entries()) {\n issues.push(...validateToolBinding(tool, index));\n }\n}\n\nfunction validateOperatingSystemSetupAssets(\n operatingSystem: DomainPackOperatingSystem,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.setupAssets) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.setupAssets,\n \"assetId\",\n \"operatingSystem.setupAssets\"\n )\n );\n for (const [index, asset] of operatingSystem.setupAssets.entries()) {\n issues.push(...validateSetupAsset(asset, index));\n }\n}\n\nfunction validateOperatingSystemTopicTemplates(\n operatingSystem: DomainPackOperatingSystem,\n knownRootSlugs: Set<string>,\n issues: DomainPackValidationIssue[]\n): Set<string> {\n const templateSlugs = new Set<string>();\n if (!operatingSystem.topicTemplates) {\n return templateSlugs;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.topicTemplates,\n \"slug\",\n \"operatingSystem.topicTemplates\"\n )\n );\n for (const template of operatingSystem.topicTemplates) {\n if (template.slug) {\n templateSlugs.add(template.slug);\n }\n }\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n for (const [index, template] of operatingSystem.topicTemplates.entries()) {\n issues.push(...validateTopicTemplate(template, index, knownTopicSlugs));\n }\n return templateSlugs;\n}\n\nfunction validateOperatingSystemInstallProfiles(\n operatingSystem: DomainPackOperatingSystem,\n knownRootSlugs: Set<string>,\n templateSlugs: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\n if (!operatingSystem.installProfiles) {\n return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(\n operatingSystem.installProfiles,\n \"profileId\",\n \"operatingSystem.installProfiles\"\n )\n );\n\n const knownPromptIds = new Set(\n operatingSystem.prompts?.map((prompt) => prompt.promptId) ?? []\n );\n const knownToolIds = new Set(\n operatingSystem.tools?.map((tool) => tool.toolId) ?? []\n );\n const knownAssetIds = new Set(\n operatingSystem.setupAssets?.map((asset) => asset.assetId) ?? []\n );\n const knownTopicSlugs = new Set([...knownRootSlugs, ...templateSlugs]);\n\n for (const [index, profile] of operatingSystem.installProfiles.entries()) {\n issues.push(\n ...validateInstallProfile(\n profile,\n index,\n knownPromptIds,\n knownToolIds,\n knownAssetIds,\n knownTopicSlugs\n )\n );\n }\n}\n\nfunction validateOperatingSystem(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.operatingSystem) {\n return;\n }\n\n const knownRootSlugs = new Set(\n pack.topicRoots?.map((topic) => topic.slug) ?? []\n );\n validateOperatingSystemPrompts(pack.operatingSystem, issues);\n validateOperatingSystemTools(pack.operatingSystem, issues);\n validateOperatingSystemSetupAssets(pack.operatingSystem, issues);\n const templateSlugs = validateOperatingSystemTopicTemplates(\n pack.operatingSystem,\n knownRootSlugs,\n issues\n );\n validateOperatingSystemInstallProfiles(\n pack.operatingSystem,\n knownRootSlugs,\n templateSlugs,\n issues\n );\n}\n\nfunction validateRoles(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.roles || pack.roles.length === 0) {\n issues.push(\n issue(\"MISSING_ROLES\", \"At least one reasoning role is required\", \"roles\")\n );\n } else {\n issues.push(...checkOptionalDuplicateIds(pack.roles, \"roleId\", \"roles\"));\n }\n}\n\nfunction validateGates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.gates) {\n return;\n }\n\n issues.push(...checkOptionalDuplicateIds(pack.gates, \"gateId\", \"gates\"));\n for (const [index, gate] of pack.gates.entries()) {\n if (!gate.criteria || gate.criteria.length === 0) {\n issues.push(\n issue(\n \"EMPTY_GATE_CRITERIA\",\n `Gate \"${gate.gateId}\" has no criteria`,\n `gates[${index}].criteria`,\n \"warning\"\n )\n );\n continue;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n gate.criteria,\n \"criterionId\",\n `gates[${index}].criteria`\n )\n );\n }\n}\n\nfunction validateArtifacts(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (pack.artifacts) {\n issues.push(\n ...checkOptionalDuplicateIds(pack.artifacts, \"artifactId\", \"artifacts\")\n );\n }\n}\n\ninterface DomainPackReferenceSets {\n knownArtifactIds: Set<string>;\n knownGateIds: Set<string>;\n knownRoleIds: Set<string>;\n}\n\nfunction domainPackReferenceSets(pack: DomainPack): DomainPackReferenceSets {\n return {\n knownGateIds: new Set(pack.gates?.map((gate) => gate.gateId) ?? []),\n knownArtifactIds: new Set(\n pack.artifacts?.map((artifact) => artifact.artifactId) ?? []\n ),\n knownRoleIds: new Set(pack.roles?.map((role) => role.roleId) ?? []),\n };\n}\n\nfunction validateWorkflowGateReferences(\n workflow: NonNullable<DomainPack[\"workflows\"]>[number],\n workflowIndex: number,\n knownGateIds: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\n for (const gateId of workflow.gateCheckpoints) {\n if (!knownGateIds.has(gateId)) {\n issues.push(\n issue(\n \"UNKNOWN_GATE_REF\",\n `Workflow \"${workflow.workflowId}\" references unknown gate \"${gateId}\"`,\n `workflows[${workflowIndex}].gateCheckpoints`\n )\n );\n }\n }\n}\n\nfunction validateWorkflowArtifactReferences(\n workflow: NonNullable<DomainPack[\"workflows\"]>[number],\n workflowIndex: number,\n knownArtifactIds: Set<string>,\n issues: DomainPackValidationIssue[]\n): void {\n for (const artifactId of workflow.requiredArtifacts) {\n if (!knownArtifactIds.has(artifactId)) {\n issues.push(\n issue(\n \"UNKNOWN_ARTIFACT_REF\",\n `Workflow \"${workflow.workflowId}\" references unknown artifact \"${artifactId}\"`,\n `workflows[${workflowIndex}].requiredArtifacts`\n )\n );\n }\n }\n}\n\nfunction validateWorkflowStepReferences(\n step: NonNullable<DomainPack[\"workflows\"]>[number][\"steps\"][number],\n workflowIndex: number,\n stepIndex: number,\n refs: DomainPackReferenceSets,\n issues: DomainPackValidationIssue[]\n): void {\n for (const roleId of step.requiredRoles) {\n if (!refs.knownRoleIds.has(roleId)) {\n issues.push(\n issue(\n \"UNKNOWN_ROLE_REF\",\n `Step \"${step.stepId}\" references unknown role \"${roleId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].requiredRoles`\n )\n );\n }\n }\n\n if (step.gateId && !refs.knownGateIds.has(step.gateId)) {\n issues.push(\n issue(\n \"UNKNOWN_GATE_REF\",\n `Step \"${step.stepId}\" references unknown gate \"${step.gateId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].gateId`\n )\n );\n }\n\n for (const artifactId of step.produces ?? []) {\n if (!refs.knownArtifactIds.has(artifactId)) {\n issues.push(\n issue(\n \"UNKNOWN_ARTIFACT_REF\",\n `Step \"${step.stepId}\" references unknown artifact \"${artifactId}\"`,\n `workflows[${workflowIndex}].steps[${stepIndex}].produces`\n )\n );\n }\n }\n}\n\nfunction validateWorkflows(\n pack: DomainPack,\n refs: DomainPackReferenceSets,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.workflows) {\n return;\n }\n\n issues.push(\n ...checkOptionalDuplicateIds(pack.workflows, \"workflowId\", \"workflows\")\n );\n\n for (const [workflowIndex, workflow] of pack.workflows.entries()) {\n validateWorkflowGateReferences(\n workflow,\n workflowIndex,\n refs.knownGateIds,\n issues\n );\n validateWorkflowArtifactReferences(\n workflow,\n workflowIndex,\n refs.knownArtifactIds,\n issues\n );\n for (const [stepIndex, step] of workflow.steps.entries()) {\n validateWorkflowStepReferences(\n step,\n workflowIndex,\n stepIndex,\n refs,\n issues\n );\n }\n }\n}\n\nfunction validateInquiryQuestionTemplates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.questionTemplates) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n pack.inquiryShaping.questionTemplates,\n \"templateId\",\n \"inquiryShaping.questionTemplates\"\n )\n );\n for (const [\n index,\n template,\n ] of pack.inquiryShaping.questionTemplates.entries()) {\n issues.push(...validateQuestionTemplate(template, index));\n }\n}\n\nfunction validateInquiryTaskTemplates(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.taskTemplates) {\n return;\n }\n issues.push(\n ...checkOptionalDuplicateIds(\n pack.inquiryShaping.taskTemplates,\n \"templateId\",\n \"inquiryShaping.taskTemplates\"\n )\n );\n for (const [index, template] of pack.inquiryShaping.taskTemplates.entries()) {\n issues.push(...validateTaskTemplate(template, index));\n }\n}\n\nfunction validateInquiryFrameworkHints(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n if (!pack.inquiryShaping?.frameworkHints) {\n return;\n }\n issues.push(\n ...checkDuplicateIds(\n pack.inquiryShaping.frameworkHints.map((hint) => ({\n frameworkName: hint.frameworkName,\n })),\n \"frameworkName\",\n \"inquiryShaping.frameworkHints\"\n )\n );\n for (const [index, hint] of pack.inquiryShaping.frameworkHints.entries()) {\n issues.push(...validateFrameworkHint(hint, index));\n }\n}\n\nfunction validateInquiryShaping(\n pack: DomainPack,\n issues: DomainPackValidationIssue[]\n): void {\n validateInquiryQuestionTemplates(pack, issues);\n validateInquiryTaskTemplates(pack, issues);\n validateInquiryFrameworkHints(pack, issues);\n}\n\nexport function validateDomainPack(\n pack: DomainPack\n): DomainPackValidationResult {\n const issues: DomainPackValidationIssue[] = [];\n validatePackIdentity(pack, issues);\n validateOntologyBindings(pack, issues);\n validateTopicRoots(pack, issues);\n validateOperatingSystem(pack, issues);\n validateRoles(pack, issues);\n validateGates(pack, issues);\n validateArtifacts(pack, issues);\n validateWorkflows(pack, domainPackReferenceSets(pack), issues);\n validateInquiryShaping(pack, issues);\n\n return {\n valid: issues.filter((i) => i.severity === \"error\").length === 0,\n issues,\n };\n}\n","/**\n * Domain Pack Authoring Kit\n *\n * Validation, preview, publication, and tool wiring for tenant-authored domain packs.\n */\n\nimport type {\n DomainPackAuthoringManifest,\n DomainPackAuthoringManifestInput,\n DomainPackAuthoringPreview,\n DomainPackAuthoringToolDefinition,\n DomainPackAuthoringToolInput,\n DomainPackAuthoringToolset,\n DomainPackAuthoringValidationIssue,\n DomainPackAuthoringValidationResult,\n DomainPackFrameworkContract,\n DomainPackLineage,\n DomainPackLineageMode,\n DomainPackManifestCounts,\n DomainPackManifestFormat,\n DomainPackOntologyEdgeExtension,\n DomainPackOntologyEntityExtension,\n DomainPackOntologyExtension,\n DomainPackPublicationLineageEdge,\n DomainPackPublishResult,\n DomainPackSchemaExtension,\n DomainPackSchemaExtensionTarget,\n RuntimeTarget,\n} from \"./authoring.core\";\nimport {\n countManifestArtifacts,\n DOMAIN_PACK_MANIFEST_KIND,\n defineDomainPackAuthoringManifest,\n parseDomainPackAuthoringManifest,\n serializeDomainPackAuthoringManifest,\n} from \"./authoring.core\";\nimport { validateDomainPack } from \"./validation\";\n\nconst KEBAB_CASE = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;\nconst SEMVER =\n /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nconst LEGACY_PUBLIC_KEYS = new Set([\n \"project\",\n \"projects\",\n \"projectId\",\n \"projectIds\",\n \"sprint\",\n \"sprints\",\n \"sprintId\",\n \"sprintIds\",\n]);\nconst SCHEMA_EXTENSION_TARGETS = new Set<DomainPackSchemaExtensionTarget>([\n \"artifact\",\n \"workflow\",\n \"gate\",\n \"prompt\",\n \"tool\",\n \"install-profile\",\n \"topic-template\",\n]);\nconst ONTOLOGY_CONSTRAINT_SEVERITIES = new Set([\n \"error\",\n \"warning\",\n \"informational\",\n]);\nconst LINEAGE_MODES = new Set<DomainPackLineageMode>([\"root\", \"remix\", \"fork\"]);\nconst AUTHORING_TOOL_NAMES = {\n validate: \"validate_domain_pack_manifest\",\n preview: \"preview_domain_pack_manifest\",\n publish: \"publish_domain_pack_manifest\",\n} as const;\n\nfunction issue(\n code: string,\n message: string,\n path: string,\n source: DomainPackAuthoringValidationIssue[\"source\"],\n severity: \"error\" | \"warning\" = \"error\"\n): DomainPackAuthoringValidationIssue {\n return { code, message, path, severity, source };\n}\n\nfunction emptyCounts(): DomainPackManifestCounts {\n return {\n topicRoots: 0,\n workflows: 0,\n gates: 0,\n artifacts: 0,\n roles: 0,\n prompts: 0,\n tools: 0,\n setupAssets: 0,\n installProfiles: 0,\n frameworks: 0,\n schemaExtensions: 0,\n ontologyExtensions: 0,\n };\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype\n );\n}\n\nfunction describeParseFailure(error: unknown): string {\n return error instanceof Error ? error.message : \"Manifest parse failed.\";\n}\n\nfunction asToolDefinition<Result>(\n tool: DomainPackAuthoringToolDefinition<Result>\n): DomainPackAuthoringToolDefinition<Result> {\n return tool;\n}\n\nfunction detectDomainPackManifestFormat(\n source: string,\n explicitFormat?: DomainPackManifestFormat\n): DomainPackManifestFormat {\n if (explicitFormat) {\n return explicitFormat;\n }\n\n const trimmed = source.trim();\n if (trimmed.startsWith(\"{\")) {\n return \"json\";\n }\n return \"yaml\";\n}\n\nfunction validateFrameworks(\n frameworks: DomainPackFrameworkContract[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!frameworks) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n frameworks.forEach((framework, index) => {\n const path = `frameworks[${index}]`;\n if (!framework.frameworkId) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_ID\",\n \"frameworkId is required\",\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else if (!KEBAB_CASE.test(framework.frameworkId)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_ID\",\n `frameworkId \"${framework.frameworkId}\" must be kebab-case`,\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else if (seen.has(framework.frameworkId)) {\n issues.push(\n issue(\n \"DUPLICATE_FRAMEWORK_ID\",\n `Duplicate frameworkId \"${framework.frameworkId}\"`,\n `${path}.frameworkId`,\n \"framework\"\n )\n );\n } else {\n seen.add(framework.frameworkId);\n }\n\n if (!framework.version) {\n issues.push(\n issue(\n \"MISSING_FRAMEWORK_VERSION\",\n \"version is required\",\n `${path}.version`,\n \"framework\"\n )\n );\n } else if (!SEMVER.test(framework.version)) {\n issues.push(\n issue(\n \"INVALID_FRAMEWORK_VERSION\",\n `framework version \"${framework.version}\" must be valid semver`,\n `${path}.version`,\n \"framework\"\n )\n );\n }\n });\n\n return issues;\n}\n\nfunction validateSchemaExtensions(\n extensions: DomainPackSchemaExtension[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!extensions) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n extensions.forEach((extension, index) => {\n const path = `schemaExtensions[${index}]`;\n if (!extension.extensionId) {\n issues.push(\n issue(\n \"MISSING_SCHEMA_EXTENSION_ID\",\n \"extensionId is required\",\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else if (!KEBAB_CASE.test(extension.extensionId)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_ID\",\n `extensionId \"${extension.extensionId}\" must be kebab-case`,\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else if (seen.has(extension.extensionId)) {\n issues.push(\n issue(\n \"DUPLICATE_SCHEMA_EXTENSION_ID\",\n `Duplicate schema extension \"${extension.extensionId}\"`,\n `${path}.extensionId`,\n \"schema-extension\"\n )\n );\n } else {\n seen.add(extension.extensionId);\n }\n\n if (!SCHEMA_EXTENSION_TARGETS.has(extension.target)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_TARGET\",\n `Unsupported schema extension target \"${extension.target}\"`,\n `${path}.target`,\n \"schema-extension\"\n )\n );\n }\n if (!extension.description) {\n issues.push(\n issue(\n \"MISSING_SCHEMA_EXTENSION_DESCRIPTION\",\n \"description is required\",\n `${path}.description`,\n \"schema-extension\"\n )\n );\n }\n if (!SEMVER.test(extension.version)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_VERSION\",\n `schema extension version \"${extension.version}\" must be valid semver`,\n `${path}.version`,\n \"schema-extension\"\n )\n );\n }\n if (!isPlainObject(extension.schema)) {\n issues.push(\n issue(\n \"INVALID_SCHEMA_EXTENSION_SCHEMA\",\n \"schema extension schema must be a plain object\",\n `${path}.schema`,\n \"schema-extension\"\n )\n );\n }\n });\n\n return issues;\n}\n\nfunction validateOntologyExtensions(\n extensions: DomainPackOntologyExtension[] | undefined\n): DomainPackAuthoringValidationIssue[] {\n if (!extensions) {\n return [];\n }\n\n const issues: DomainPackAuthoringValidationIssue[] = [];\n const seen = new Set<string>();\n\n extensions.forEach((extension, index) => {\n const path = `ontologyExtensions[${index}]`;\n if (!extension.extensionId) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EXTENSION_ID\",\n \"extensionId is required\",\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else if (!KEBAB_CASE.test(extension.extensionId)) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EXTENSION_ID\",\n `extensionId \"${extension.extensionId}\" must be kebab-case`,\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else if (seen.has(extension.extensionId)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_EXTENSION_ID\",\n `Duplicate ontology extension \"${extension.extensionId}\"`,\n `${path}.extensionId`,\n \"ontology-extension\"\n )\n );\n } else {\n seen.add(extension.extensionId);\n }\n\n if (!extension.ontologyId) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EXTENSION_TARGET\",\n \"ontologyId is required\",\n `${path}.ontologyId`,\n \"ontology-extension\"\n )\n );\n }\n if (!extension.baseVersionConstraint) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_BASE_VERSION\",\n \"baseVersionConstraint is required\",\n `${path}.baseVersionConstraint`,\n \"ontology-extension\"\n )\n );\n }\n if (extension.additiveOnly !== true) {\n issues.push(\n issue(\n \"NON_MONOTONIC_ONTOLOGY_EXTENSION\",\n \"ontology extensions must set additiveOnly=true\",\n `${path}.additiveOnly`,\n \"ontology-extension\"\n )\n );\n }\n\n const entityTypeValues = new Set<string>();\n extension.entityTypes?.forEach(\n (entityType: DomainPackOntologyEntityExtension, entityTypeIndex) => {\n const entityPath = `${path}.entityTypes[${entityTypeIndex}]`;\n if (!(entityType.value && KEBAB_CASE.test(entityType.value))) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_ENTITY_VALUE\",\n \"entity extension value must be kebab-case\",\n `${entityPath}.value`,\n \"ontology-extension\"\n )\n );\n } else if (entityTypeValues.has(entityType.value)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_ENTITY_VALUE\",\n `Duplicate entity extension value \"${entityType.value}\"`,\n `${entityPath}.value`,\n \"ontology-extension\"\n )\n );\n } else {\n entityTypeValues.add(entityType.value);\n }\n if (!entityType.label) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_ENTITY_LABEL\",\n \"entity extension label is required\",\n `${entityPath}.label`,\n \"ontology-extension\"\n )\n );\n }\n }\n );\n\n const edgeTypeValues = new Set<string>();\n extension.edgeTypes?.forEach(\n (edgeType: DomainPackOntologyEdgeExtension, edgeTypeIndex) => {\n const edgePath = `${path}.edgeTypes[${edgeTypeIndex}]`;\n if (!(edgeType.value && KEBAB_CASE.test(edgeType.value))) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EDGE_VALUE\",\n \"edge extension value must be kebab-case\",\n `${edgePath}.value`,\n \"ontology-extension\"\n )\n );\n } else if (edgeTypeValues.has(edgeType.value)) {\n issues.push(\n issue(\n \"DUPLICATE_ONTOLOGY_EDGE_VALUE\",\n `Duplicate edge extension value \"${edgeType.value}\"`,\n `${edgePath}.value`,\n \"ontology-extension\"\n )\n );\n } else {\n edgeTypeValues.add(edgeType.value);\n }\n if (!edgeType.label) {\n issues.push(\n issue(\n \"MISSING_ONTOLOGY_EDGE_LABEL\",\n \"edge extension label is required\",\n `${edgePath}.label`,\n \"ontology-extension\"\n )\n );\n }\n if (\n edgeType.constraintSeverity &&\n !ONTOLOGY_CONSTRAINT_SEVERITIES.has(edgeType.constraintSeverity)\n ) {\n issues.push(\n issue(\n \"INVALID_ONTOLOGY_EDGE_SEVERITY\",\n `Unsupported constraint severity \"${edgeType.constraintSeverity}\"`,\n `${edgePath}.constraintSeverity`,\n \"ontology-extension\"\n )\n );\n }\n }\n );\n });\n\n return issues;\n}\n\nfunction validateLineage(\n lineage: DomainPackLineage,\n packId: string\n): DomainPackAuthoringValidationIssue[] {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (!LINEAGE_MODES.has(lineage.mode)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_MODE\",\n `Unsupported lineage mode \"${lineage.mode}\"`,\n \"lineage.mode\",\n \"lineage\"\n )\n );\n return issues;\n }\n\n if (lineage.mode === \"root\") {\n if (\n lineage.parentPackId ||\n lineage.parentVersion ||\n lineage.supersedesPackId\n ) {\n issues.push(\n issue(\n \"ROOT_LINEAGE_HAS_PARENT\",\n \"root lineage cannot declare parent or supersedes metadata\",\n \"lineage\",\n \"lineage\"\n )\n );\n }\n return issues;\n }\n\n if (!lineage.parentPackId) {\n issues.push(\n issue(\n \"MISSING_LINEAGE_PARENT_PACK\",\n \"parentPackId is required for remix or fork lineage\",\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n } else if (!KEBAB_CASE.test(lineage.parentPackId)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_PARENT_PACK\",\n `parentPackId \"${lineage.parentPackId}\" must be kebab-case`,\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n }\n\n if (!lineage.parentVersion) {\n issues.push(\n issue(\n \"MISSING_LINEAGE_PARENT_VERSION\",\n \"parentVersion is required for remix or fork lineage\",\n \"lineage.parentVersion\",\n \"lineage\"\n )\n );\n } else if (!SEMVER.test(lineage.parentVersion)) {\n issues.push(\n issue(\n \"INVALID_LINEAGE_PARENT_VERSION\",\n `parentVersion \"${lineage.parentVersion}\" must be valid semver`,\n \"lineage.parentVersion\",\n \"lineage\"\n )\n );\n }\n\n if (\n lineage.parentPackId &&\n lineage.parentPackId === packId &&\n lineage.parentVersion === undefined\n ) {\n issues.push(\n issue(\n \"SELF_REFERENTIAL_LINEAGE\",\n \"lineage parentPackId cannot equal the child packId without an explicit parentVersion\",\n \"lineage.parentPackId\",\n \"lineage\"\n )\n );\n }\n\n if (lineage.mode === \"remix\" && lineage.supersedesPackId) {\n issues.push(\n issue(\n \"REMIX_LINEAGE_SUPERSEDES\",\n \"remix lineage cannot declare supersedesPackId\",\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n }\n\n if (lineage.mode === \"fork\") {\n if (!lineage.supersedesPackId) {\n issues.push(\n issue(\n \"MISSING_SUPERSEDES_PACK\",\n \"fork lineage requires supersedesPackId to model the supersedes edge\",\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n } else if (!KEBAB_CASE.test(lineage.supersedesPackId)) {\n issues.push(\n issue(\n \"INVALID_SUPERSEDES_PACK\",\n `supersedesPackId \"${lineage.supersedesPackId}\" must be kebab-case`,\n \"lineage.supersedesPackId\",\n \"lineage\"\n )\n );\n }\n }\n\n return issues;\n}\n\nfunction scanLegacyPublicKeys(\n value: unknown,\n path = \"\"\n): DomainPackAuthoringValidationIssue[] {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (Array.isArray(value)) {\n for (const [index, entry] of value.entries()) {\n issues.push(...scanLegacyPublicKeys(entry, `${path}[${index}]`));\n }\n return issues;\n }\n\n if (!isPlainObject(value)) {\n return issues;\n }\n\n for (const [key, entryValue] of Object.entries(value)) {\n const nextPath = path ? `${path}.${key}` : key;\n if (LEGACY_PUBLIC_KEYS.has(key)) {\n issues.push(\n issue(\n \"LEGACY_PUBLIC_TERM\",\n `Public manifest field \"${key}\" uses legacy terminology; expose canonical topic/worktree terms instead.`,\n nextPath,\n \"terminology\"\n )\n );\n }\n issues.push(...scanLegacyPublicKeys(entryValue, nextPath));\n }\n\n return issues;\n}\n\n/**\n * Simple deterministic hash for manifest identification (not cryptographic).\n * Uses FNV-1a 64-bit hash to avoid node:crypto dependency in the Convex bundle.\n */\n// biome-ignore-start lint/suspicious/noBitwiseOperators: The FNV-1a manifest digest intentionally uses bitwise mixing for stable published artifact IDs.\nfunction createManifestDigest(manifest: DomainPackAuthoringManifest): string {\n const data = serializeDomainPackAuthoringManifest(manifest, \"json\");\n let h1 = 0x81_1c_9d_c5 | 0;\n let h2 = 0x81_1c_9d_c5 | 0;\n for (let i = 0; i < data.length; i++) {\n const c = data.charCodeAt(i);\n h1 = Math.imul(h1 ^ c, 0x01_00_01_93);\n h2 = Math.imul(h2 ^ ((c >>> 4) | (c << 4)), 0x01_00_01_93);\n }\n return (\n (h1 >>> 0).toString(16).padStart(8, \"0\") +\n (h2 >>> 0).toString(16).padStart(8, \"0\")\n );\n}\n// biome-ignore-end lint/suspicious/noBitwiseOperators: End intentional FNV-1a bitwise digest suppression.\n\nfunction evaluateDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest,\n format: DomainPackManifestFormat | null = null\n): DomainPackAuthoringValidationResult {\n const issues: DomainPackAuthoringValidationIssue[] = [];\n\n if (manifest.kind !== DOMAIN_PACK_MANIFEST_KIND) {\n issues.push(\n issue(\n \"INVALID_MANIFEST_KIND\",\n `kind must be \"${DOMAIN_PACK_MANIFEST_KIND}\"`,\n \"kind\",\n \"manifest\"\n )\n );\n }\n\n if (!SEMVER.test(manifest.manifestVersion)) {\n issues.push(\n issue(\n \"INVALID_MANIFEST_VERSION\",\n `manifestVersion \"${manifest.manifestVersion}\" must be valid semver`,\n \"manifestVersion\",\n \"manifest\"\n )\n );\n }\n\n issues.push(...validateFrameworks(manifest.frameworks));\n issues.push(...validateSchemaExtensions(manifest.schemaExtensions));\n issues.push(...validateOntologyExtensions(manifest.ontologyExtensions));\n issues.push(...validateLineage(manifest.lineage, manifest.pack.packId));\n issues.push(...scanLegacyPublicKeys(manifest));\n\n const packValidation = validateDomainPack(manifest.pack);\n issues.push(\n ...packValidation.issues.map((packIssue) => ({\n ...packIssue,\n path: `pack.${packIssue.path}`,\n source: \"pack\" as const,\n }))\n );\n\n return {\n valid: issues.every((currentIssue) => currentIssue.severity !== \"error\"),\n format,\n manifest,\n manifestDigest: createManifestDigest(manifest),\n issues,\n counts: countManifestArtifacts(manifest),\n };\n}\n\nfunction parseFailureResult(\n error: unknown,\n format: DomainPackManifestFormat | null\n): DomainPackAuthoringValidationResult {\n return {\n valid: false,\n format,\n manifest: null,\n manifestDigest: null,\n issues: [\n issue(\"PARSE_ERROR\", describeParseFailure(error), \"manifest\", \"parse\"),\n ],\n counts: emptyCounts(),\n };\n}\n\nfunction validateDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackAuthoringValidationResult {\n return evaluateDomainPackAuthoringManifest(\n defineDomainPackAuthoringManifest(\n manifest as DomainPackAuthoringManifestInput\n )\n );\n}\n\nfunction validateDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringValidationResult {\n const detectedFormat = detectDomainPackManifestFormat(source, format);\n\n try {\n const manifest = parseDomainPackAuthoringManifest(source, detectedFormat);\n return evaluateDomainPackAuthoringManifest(manifest, detectedFormat);\n } catch (error) {\n return parseFailureResult(error, detectedFormat);\n }\n}\n\nfunction collectRuntimeTargets(\n manifest: DomainPackAuthoringManifest | null\n): RuntimeTarget[] {\n if (!manifest) {\n return [];\n }\n\n const targets = new Set<RuntimeTarget>();\n for (const framework of manifest.frameworks ?? []) {\n addRuntimeTargets(targets, framework.runtimeTargets);\n }\n for (const prompt of manifest.pack.operatingSystem?.prompts ?? []) {\n addRuntimeTargets(targets, prompt.runtimeTargets);\n }\n for (const tool of manifest.pack.operatingSystem?.tools ?? []) {\n addRuntimeTargets(targets, tool.runtimeTargets);\n }\n for (const asset of manifest.pack.operatingSystem?.setupAssets ?? []) {\n addRuntimeTargets(targets, asset.runtimeTargets);\n }\n for (const profile of manifest.pack.operatingSystem?.installProfiles ?? []) {\n targets.add(profile.runtimeTarget);\n }\n return Array.from(targets).sort();\n}\n\nfunction addRuntimeTargets(\n targets: Set<RuntimeTarget>,\n values: RuntimeTarget[] | undefined\n): void {\n for (const target of values ?? []) {\n targets.add(target);\n }\n}\n\nfunction describeLineage(lineage: DomainPackLineage | null): string | null {\n if (!lineage) {\n return null;\n }\n if (lineage.mode === \"root\") {\n return \"Root pack with no parent lineage.\";\n }\n if (lineage.mode === \"remix\") {\n return `Remix of ${lineage.parentPackId}@${lineage.parentVersion}.`;\n }\n return `Fork of ${lineage.parentPackId}@${lineage.parentVersion} that supersedes ${lineage.supersedesPackId}.`;\n}\n\nfunction previewDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackAuthoringPreview {\n const validation = validateDomainPackAuthoringManifest(manifest);\n return {\n ...validation,\n readyToPublish: validation.valid,\n canonicalJson: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"json\")\n : null,\n canonicalYaml: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"yaml\")\n : null,\n lineageSummary: describeLineage(validation.manifest?.lineage ?? null),\n requiredRuntimeTargets: collectRuntimeTargets(validation.manifest),\n };\n}\n\nfunction previewDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackAuthoringPreview {\n const validation = validateDomainPackAuthoringManifestSource(source, format);\n return {\n ...validation,\n readyToPublish: validation.valid,\n canonicalJson: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"json\")\n : null,\n canonicalYaml: validation.manifest\n ? serializeDomainPackAuthoringManifest(validation.manifest, \"yaml\")\n : null,\n lineageSummary: describeLineage(validation.manifest?.lineage ?? null),\n requiredRuntimeTargets: collectRuntimeTargets(validation.manifest),\n };\n}\n\nfunction buildLineageEdge(\n manifest: DomainPackAuthoringManifest\n): DomainPackPublicationLineageEdge | null {\n const { lineage, pack } = manifest;\n if (lineage.mode === \"root\") {\n return null;\n }\n if (lineage.mode === \"remix\") {\n return {\n edgeType: \"remixed_from\",\n childPackId: pack.packId,\n parentPackId: readLineageField(lineage.parentPackId, \"parentPackId\"),\n parentVersion: readLineageField(lineage.parentVersion, \"parentVersion\"),\n };\n }\n return {\n edgeType: \"supersedes\",\n childPackId: pack.packId,\n parentPackId: readLineageField(\n lineage.supersedesPackId,\n \"supersedesPackId\"\n ),\n parentVersion: readLineageField(lineage.parentVersion, \"parentVersion\"),\n };\n}\n\nfunction readLineageField(value: string | undefined, field: string): string {\n if (typeof value === \"string\" && value.length > 0) {\n return value;\n }\n throw new Error(`Cannot publish domain pack with missing lineage.${field}.`);\n}\n\nfunction readPublicationArtifact(\n value: string | null,\n field: \"canonicalJson\" | \"canonicalYaml\"\n): string {\n if (typeof value === \"string\" && value.length > 0) {\n return value;\n }\n throw new Error(`Cannot publish domain pack with missing ${field}.`);\n}\n\nfunction publishDomainPackAuthoringManifest(\n manifest: DomainPackAuthoringManifest | DomainPackAuthoringManifestInput\n): DomainPackPublishResult {\n const preview = previewDomainPackAuthoringManifest(manifest);\n if (!(preview.readyToPublish && preview.manifest && preview.manifestDigest)) {\n return {\n published: false,\n preview,\n publication: null,\n };\n }\n\n return {\n published: true,\n preview,\n publication: {\n publicationId: `${preview.manifest.pack.packId}@${preview.manifest.pack.version}`,\n packId: preview.manifest.pack.packId,\n version: preview.manifest.pack.version,\n manifestDigest: preview.manifestDigest,\n manifest: preview.manifest,\n lineageEdge: buildLineageEdge(preview.manifest),\n canonicalJson: readPublicationArtifact(\n preview.canonicalJson,\n \"canonicalJson\"\n ),\n canonicalYaml: readPublicationArtifact(\n preview.canonicalYaml,\n \"canonicalYaml\"\n ),\n },\n };\n}\n\nfunction publishDomainPackAuthoringManifestSource(\n source: string,\n format?: DomainPackManifestFormat\n): DomainPackPublishResult {\n const preview = previewDomainPackAuthoringManifestSource(source, format);\n if (!(preview.readyToPublish && preview.manifest && preview.manifestDigest)) {\n return {\n published: false,\n preview,\n publication: null,\n };\n }\n\n return {\n published: true,\n preview,\n publication: {\n publicationId: `${preview.manifest.pack.packId}@${preview.manifest.pack.version}`,\n packId: preview.manifest.pack.packId,\n version: preview.manifest.pack.version,\n manifestDigest: preview.manifestDigest,\n manifest: preview.manifest,\n lineageEdge: buildLineageEdge(preview.manifest),\n canonicalJson: readPublicationArtifact(\n preview.canonicalJson,\n \"canonicalJson\"\n ),\n canonicalYaml: readPublicationArtifact(\n preview.canonicalYaml,\n \"canonicalYaml\"\n ),\n },\n };\n}\n\nfunction createDomainPackAuthoringTools(): DomainPackAuthoringToolset {\n const inputSchema = {\n type: \"object\",\n properties: {\n manifestText: {\n type: \"string\",\n description: \"Domain pack manifest text in JSON or YAML form.\",\n },\n format: {\n type: \"string\",\n enum: [\"json\", \"yaml\"],\n description: \"Optional manifest format override.\",\n },\n },\n required: [\"manifestText\"],\n additionalProperties: false,\n } satisfies Record<string, unknown>;\n\n return {\n validate: asToolDefinition({\n name: AUTHORING_TOOL_NAMES.validate,\n description:\n \"Validate a domain pack authoring manifest and return structural, lineage, terminology, and extension issues.\",\n inputSchema,\n execute: (args: DomainPackAuthoringToolInput) =>\n validateDomainPackAuthoringManifestSource(\n args.manifestText,\n args.format\n ),\n }),\n preview: asToolDefinition({\n name: AUTHORING_TOOL_NAMES.preview,\n description:\n \"Preview a domain pack manifest with canonical JSON/YAML renderings, runtime targets, and publication readiness.\",\n inputSchema,\n execute: (args: DomainPackAuthoringToolInput) =>\n previewDomainPackAuthoringManifestSource(\n args.manifestText,\n args.format\n ),\n }),\n publish: asToolDefinition({\n name: AUTHORING_TOOL_NAMES.publish,\n description:\n \"Build a publication-ready domain pack artifact when validation passes, including remix/fork lineage metadata.\",\n inputSchema,\n execute: (args: DomainPackAuthoringToolInput) =>\n publishDomainPackAuthoringManifestSource(\n args.manifestText,\n args.format\n ),\n }),\n };\n}\n\nexport const domainPackAuthoringValidation = {\n validateDomainPackAuthoringManifest,\n validateDomainPackAuthoringManifestSource,\n previewDomainPackAuthoringManifest,\n previewDomainPackAuthoringManifestSource,\n publishDomainPackAuthoringManifest,\n publishDomainPackAuthoringManifestSource,\n createDomainPackAuthoringTools,\n} as const;\n","// biome-ignore-all lint/performance/noBarrelFile: Public domain-pack authoring facade preserves authoring subpath exports.\nexport type {\n DomainPackAuthoringManifest,\n DomainPackAuthoringManifestInput,\n DomainPackAuthoringMetadata,\n DomainPackAuthoringPreview,\n DomainPackAuthoringToolDefinition,\n DomainPackAuthoringToolInput,\n DomainPackAuthoringToolset,\n DomainPackAuthoringValidationIssue,\n DomainPackAuthoringValidationResult,\n DomainPackFrameworkContract,\n DomainPackLineage,\n DomainPackLineageMode,\n DomainPackManifestCounts,\n DomainPackManifestFormat,\n DomainPackOntologyEdgeExtension,\n DomainPackOntologyEntityExtension,\n DomainPackOntologyExtension,\n DomainPackPublication,\n DomainPackPublicationLineageEdge,\n DomainPackPublishResult,\n DomainPackSchemaExtension,\n DomainPackSchemaExtensionTarget,\n} from \"./authoring.core\";\nexport {\n defineDomainPackAuthoringManifest,\n parseDomainPackAuthoringManifest,\n serializeDomainPackAuthoringManifest,\n} from \"./authoring.core\";\n\nimport { domainPackAuthoringValidation } from \"./authoring.validation\";\n\nexport const validateDomainPackAuthoringManifest =\n domainPackAuthoringValidation.validateDomainPackAuthoringManifest;\nexport const validateDomainPackAuthoringManifestSource =\n domainPackAuthoringValidation.validateDomainPackAuthoringManifestSource;\nexport const previewDomainPackAuthoringManifest =\n domainPackAuthoringValidation.previewDomainPackAuthoringManifest;\nexport const previewDomainPackAuthoringManifestSource =\n domainPackAuthoringValidation.previewDomainPackAuthoringManifestSource;\nexport const publishDomainPackAuthoringManifest =\n domainPackAuthoringValidation.publishDomainPackAuthoringManifest;\nexport const publishDomainPackAuthoringManifestSource =\n domainPackAuthoringValidation.publishDomainPackAuthoringManifestSource;\nexport const createDomainPackAuthoringTools =\n domainPackAuthoringValidation.createDomainPackAuthoringTools;\n"]}