@lucern/contracts 0.3.0-alpha.14 → 0.3.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -1
- package/dist/function-registry/beliefs.d.ts +1 -1
- package/dist/function-registry/beliefs.js +3 -15
- package/dist/function-registry/beliefs.js.map +1 -1
- package/dist/function-registry/coding.d.ts +1 -1
- package/dist/function-registry/context.d.ts +1 -1
- package/dist/function-registry/contracts.d.ts +1 -1
- package/dist/function-registry/coordination.d.ts +1 -1
- package/dist/function-registry/edges.d.ts +1 -1
- package/dist/function-registry/evidence.d.ts +1 -1
- package/dist/function-registry/evidence.js +2 -11
- package/dist/function-registry/evidence.js.map +1 -1
- package/dist/function-registry/graph.d.ts +1 -1
- package/dist/function-registry/identity.d.ts +1 -1
- package/dist/function-registry/identity.js +3 -6
- package/dist/function-registry/identity.js.map +1 -1
- package/dist/function-registry/judgments.d.ts +1 -1
- package/dist/function-registry/legacy.d.ts +1 -1
- package/dist/function-registry/lenses.d.ts +1 -1
- package/dist/function-registry/nodes.d.ts +1 -1
- package/dist/function-registry/ontologies.d.ts +1 -1
- package/dist/function-registry/pipeline.d.ts +1 -1
- package/dist/function-registry/questions.d.ts +1 -1
- package/dist/function-registry/questions.js +2 -5
- package/dist/function-registry/questions.js.map +1 -1
- package/dist/function-registry/tasks.d.ts +1 -1
- package/dist/function-registry/tasks.js +15 -1
- package/dist/function-registry/tasks.js.map +1 -1
- package/dist/function-registry/topics.d.ts +1 -1
- package/dist/function-registry/types.d.ts +1 -1
- package/dist/function-registry/worktrees.d.ts +1 -1
- package/dist/generated/convexSchemas.js +1 -1
- package/dist/generated/convexSchemas.js.map +1 -1
- package/dist/generated/infisicalRuntimeEnv.js +122 -0
- package/dist/generated/infisicalRuntimeEnv.js.map +1 -1
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -1
- package/dist/infisical-runtime.contract.d.ts +39 -0
- package/dist/infisical-runtime.contract.js +44 -0
- package/dist/infisical-runtime.contract.js.map +1 -1
- package/dist/manifests/infisical-runtime-manifest.d.ts +38 -0
- package/dist/manifests/infisical-runtime-manifest.js +44 -0
- package/dist/manifests/infisical-runtime-manifest.js.map +1 -1
- package/dist/proof-attestation.json +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/manifest.d.ts +5 -0
- package/dist/schemas/manifest.js +1 -0
- package/dist/schemas/manifest.js.map +1 -1
- package/dist/schemas/tables/mc/tenant.d.ts +1 -0
- package/dist/schemas/tables/mc/tenant.js +1 -0
- package/dist/schemas/tables/mc/tenant.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tenant-client.contract.ts","../src/infisical-runtime.contract.ts"],"names":[],"mappings":";AA8DO,IAAM,0CAAA,GACX,gBAAA;AAUK,IAAM,kCAAA,GAAqC;AAAA,EAChD;AAAA,IACE,WAAA,EAAa,wBAAA;AAAA,IACb,IAAA,EAAM,oBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,eAAA;AAAA,IACb,IAAA,EAAM,kBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,cAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,aAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,qBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,oBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,gBAAA;AAAA,IACb,IAAA,EAAM,eAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,mBAAA;AAAA,IACb,IAAA,EAAM,qBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,uBAAA;AAAA,IACb,IAAA,EAAM,mBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,uBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,gBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,0BAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,oBAAA;AAAA,IACb,IAAA,EAAM,oBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,aAAA;AAAA,IACb,IAAA,EAAM,oBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,mBAAA;AAAA,IACb,IAAA,EAAM,kBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,wBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,wBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,eAAA;AAAA,IACb,IAAA,EAAM,oBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,0BAAA;AAAA,IACb,IAAA,EAAM,mBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,aAAA;AAAA,IACb,IAAA,EAAM,oBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,iBAAA;AAAA,IACb,IAAA,EAAM,gBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,qBAAA;AAAA,IACb,IAAA,EAAM,kBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,iBAAA;AAAA,IACb,IAAA,EAAM,cAAA;AAAA,IACN,kBAAA,EAAoB;AAAA,GACtB;AAAA,EACA;AAAA,IACE,WAAA,EAAa,eAAA;AAAA,IACb,IAAA,EAAM,qBAAA;AAAA,IACN,kBAAA,EAAoB;AAAA;AAExB,CAAA;AAyBE,kCAAA,CAAmC,GAAA;AAAA,EACjC,CAAC,UAAU,KAAA,CAAM;AACnB;;;AChNK,IAAM,kCAAA,GAAqC;AAE3C,IAAM,iCAAA,GACX;AACK,IAAM,oCAAA,GACX;AAEK,IAAM,8BAAA,GAAiC;AAAA,EAC5C,KAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AAIO,IAAM,gCAAA,GAAmC;AAAA,EAC9C,aAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF;AAIO,IAAM,yCAAA,GAA4C;AAAA,EACvD,aAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AAIO,IAAM,wBAAA,GAA2B;AAAA,EACtC,aAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF;AAGO,IAAM,sBAAA,GAAyB,CAAC,SAAA,EAAW,MAAM;AAGjD,IAAM,2CAAA,GAA8C;AAAA,EACzD,WAAA,EAAa,SAAA;AAAA,EACb,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,SAAA;AAAA,EACT,UAAA,EAAY;AACd;AAcO,IAAM,oCAAA,GAAuC;AAAA,EAClD,aAAA,EAAe,WAAA;AAAA,EACf,MAAA,EAAQ,YAAA;AAAA,EACR,qBAAA,EAAuB,KAAA;AAAA,EACvB,oBAAA,EAAsB;AACxB;AAEO,IAAM,kCAAA,GAAqC;AAAA,EAChD;AAAA,IACE,WAAA,EAAa,aAAA;AAAA,IACb,YAAA,EAAc,aAAA;AAAA,IACd,UAAA,EAAY;AAAA,GACd;AAAA,EACA;AAAA,IACE,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,UAAA,EAAY;AAAA,GACd;AAAA,EACA;AAAA,IACE,WAAA,EAAa,SAAA;AAAA,IACb,YAAA,EAAc,SAAA;AAAA,IACd,UAAA,EAAY,SAAA;AAAA,IACZ,qBAAA,EAAuB,SAAA;AAAA,IACvB,iCAAA,EAAmC;AAAA,MACjC,OAAA,EAAS;AAAA,KACX;AAAA,IACA,oBAAA,EAAsB;AAAA,MACpB,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA;AAAA,IACE,WAAA,EAAa,YAAA;AAAA,IACb,YAAA,EAAc,YAAA;AAAA,IACd,UAAA,EAAY;AAAA;AAEhB;AAEO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF;AAIO,IAAM,+BAAA,GAAkC;AAAA,EAC7C,MAAA,EAAQ,CAAC,mBAAA,EAAqB,eAAe,CAAA;AAAA,EAC7C,SAAA,EAAW,CAAC,sBAAA,EAAwB,wBAAwB,CAAA;AAAA,EAC5D,QAAA,EAAU;AAAA,IACR,qBAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,yBAAA;AAAA,IACA,iCAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,WAAA,EAAa,CAAC,eAAA,EAAiB,sBAAsB,CAAA;AAAA,EACrD,gBAAA,EAAkB,CAAC,oBAAA,EAAsB,6BAA6B,CAAA;AAAA,EACtE,QAAA,EAAU,CAAC,0BAAA,EAA4B,mBAAmB;AAC5D;AAIO,IAAM,6BAAA,GAAgC;AAAA,EAC3C;AAAA,IACE,IAAA,EAAM,UAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,IAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,QAAA;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,YAAA;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,uBAAA;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,cAAA;AAAA,IACN,QAAA,EAAU,QAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,WAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,SAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,qBAAA;AAAA,IACN,QAAA,EAAU,eAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,oBAAA;AAAA,IACN,QAAA,EAAU,aAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,MAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,IAAA,EAAM,aAAA;AAAA,IACN,QAAA,EAAU,IAAA;AAAA,IACV,WAAA,EACE;AAAA;AAEN;AAoBO,IAAM,uBAAA,GAA0B;AAAA,EACrC;AAAA,IACE,EAAA,EAAI,eAAA;AAAA,IACJ,UAAA,EAAY,gBAAA;AAAA,IACZ,WAAA,EACE,qHAAA;AAAA,IACF,SAAA,EAAW;AAAA,MACT;AAAA,QACE,IAAA,EAAM,mCAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,kBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,MAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,yBAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,+BAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,+BAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,IAAA;AAAA,QACR,WAAA,EAAa;AAAA;AACf;AACF,GACF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kBAAA;AAAA,IACJ,UAAA,EAAY,mBAAA;AAAA,IACZ,WAAA,EACE,6EAAA;AAAA,IACF,SAAA,EAAW;AAAA,MACT;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,CAAC,qBAAA,EAAuB,iBAAiB,CAAA;AAAA,QAClD,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,uBAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,CAAC,sBAAsB,CAAA;AAAA,QAChC,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,oBAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,QACtB,WAAA,EAAa;AAAA,OACf;AAAA,MACA;AAAA,QACE,IAAA,EAAM,2BAAA;AAAA,QACN,QAAA,EAAU,KAAA;AAAA,QACV,MAAA,EAAQ,KAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,WAAA,EACE;AAAA;AACJ;AACF,GACF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,uBAAA;AAAA,IACJ,UAAA,EAAY,0CAAA;AAAA,IACZ,WAAA,EACE,sGAAA;AAAA,IACF,SAAA,EAAW;AAAA,MACT;AAAA,QACE,IAAA,EAAM,oBAAA;AAAA,QACN,QAAA,EAAU,IAAA;AAAA,QACV,MAAA,EAAQ,IAAA;AAAA,QACR,MAAA,EAAQ,KAAA;AAAA,QACR,WAAA,EACE;AAAA;AACJ;AACF;AAEJ;AAcO,IAAM,0BAAA,GAA6B;AAAA,EACxC;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,QAAA,EAAU,aAAA;AAAA,IACV,aAAA,EAAe,CAAC,eAAA,EAAiB,kBAAkB,CAAA;AAAA,IACnD,QAAA,EAAU,mCAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,QAAA,EAAU,aAAA;AAAA,IACV,QAAA,EAAU,eAAA;AAAA,IACV,aAAA,EAAe,CAAC,eAAA,EAAiB,kBAAkB,CAAA;AAAA,IACnD,QAAA,EAAU,+CAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,WAAA,EAAa,aAAA;AAAA,IACb,QAAA,EAAU,eAAA;AAAA,IACV,aAAA,EAAe,CAAC,kBAAkB,CAAA;AAAA,IAClC,QAAA,EACE,oEAAA;AAAA,IACF,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,WAAA,EAAa,aAAA;AAAA,IACb,QAAA,EAAU,eAAA;AAAA,IACV,QAAA,EAAU,aAAA;AAAA,IACV,aAAA,EAAe,CAAC,kBAAkB,CAAA;AAAA,IAClC,QAAA,EAAU,kCAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,YAAA;AAAA,IACJ,WAAA,EAAa,aAAA;AAAA,IACb,QAAA,EAAU,eAAA;AAAA,IACV,QAAA,EAAU,aAAA;AAAA,IACV,aAAA,EAAe,CAAC,kBAAkB,CAAA;AAAA,IAClC,QAAA,EAAU,6BAAA;AAAA,IACV,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,eAAA;AAAA,IACJ,QAAA,EAAU,aAAA;AAAA,IACV,aAAA,EAAe,CAAC,uBAAuB,CAAA;AAAA,IACvC,QAAA,EAAU,qCAAA;AAAA,IACV,WAAA,EACE;AAAA;AAEN;AAyBO,IAAM,iCAAA,GAAoC;AAAA,EAC/C;AAAA,IACE,EAAA,EAAI,gBAAA;AAAA,IACJ,SAAA,EAAW,OAAA;AAAA,IACX,YAAA,EAAc,UAAA;AAAA,IACd,iBAAA,EAAmB,iBAAA;AAAA,IACnB,YAAA,EAAc,+BAAA;AAAA,IACd,eAAA,EAAiB,kCAAA;AAAA,IACjB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,gBAAA,EAAkB,gBAAA;AAAA,IAClB,oBAAA,EAAsB,2BAAA;AAAA,IACtB,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,qBAAA;AAAA,MACR,YAAA,EAAc,4BAAA;AAAA,MACd,iBAAA,EAAmB,oBAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB,GACF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,SAAA;AAAA,IACJ,SAAA,EAAW,OAAA;AAAA,IACX,YAAA,EAAc,SAAA;AAAA,IACd,iBAAA,EAAmB,SAAA;AAAA,IACnB,YAAA,EAAc,+BAAA;AAAA,IACd,eAAA,EAAiB,kCAAA;AAAA,IACjB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,gBAAA,EAAkB,gBAAA;AAAA,IAClB,oBAAA,EAAsB,2BAAA;AAAA,IACtB,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,oBAAA;AAAA,MACR,YAAA,EAAc,2BAAA;AAAA,MACd,iBAAA,EAAmB,oBAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB,GACF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,WAAA;AAAA,IACJ,SAAA,EAAW,OAAA;AAAA,IACX,YAAA,EAAc,aAAA;AAAA,IACd,iBAAA,EAAmB,2BAAA;AAAA,IACnB,YAAA,EAAc,+BAAA;AAAA,IACd,eAAA,EAAiB,kCAAA;AAAA,IACjB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,gBAAA,EAAkB,4BAAA;AAAA,IAClB,oBAAA,EAAsB,2BAAA;AAAA,IACtB,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,sBAAA;AAAA,MACR,YAAA,EAAc,6BAAA;AAAA,MACd,iBAAA,EAAmB,kBAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB,GACF;AAAA,EACA;AAAA,IACE,EAAA,EAAI,cAAA;AAAA,IACJ,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc,QAAA;AAAA,IACd,iBAAA,EAAmB,cAAA;AAAA,IACnB,YAAA,EAAc,+BAAA;AAAA,IACd,eAAA,EAAiB,kCAAA;AAAA,IACjB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,UAAA;AAAA,MACP,IAAA,EAAM;AAAA,KACR;AAAA,IACA,gBAAA,EAAkB,wBAAA;AAAA,IAClB,oBAAA,EAAsB,2BAAA;AAAA,IACtB,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,mBAAA;AAAA,MACR,YAAA,EAAc,0BAAA;AAAA,MACd,iBAAA,EAAmB,oBAAA;AAAA,MACnB,cAAA,EAAgB;AAAA;AAClB;AAEJ;AAMO,SAAS,kCACd,QAAA,EAC2C;AAC3C,EAAA,OAAO,iCAAA,CAAkC,IAAA;AAAA,IACvC,CAAC,MAAA,KAAW,MAAA,CAAO,EAAA,KAAO;AAAA,GAC5B;AACF;AAEO,SAAS,mCACd,QAAA,EAC2B;AAC3B,EAAA,MAAM,MAAA,GAAS,kCAAkC,QAAQ,CAAA;AACzD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gCAAA,EAAmC,QAAQ,CAAA,CAAA,CAAG,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,CAAC,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,MAAA,CAAO,OAAO,YAAY,CAAA;AAC1D;AAEO,SAAS,qCAAA,CACd,UACA,OAAA,EACS;AACT,EAAA,OAAO,kCAAA,CAAmC,QAAQ,CAAA,CAAE,QAAA,CAAS,OAAO,CAAA;AACtE;AAEO,SAAS,0CACd,WAAA,EACqB;AACrB,EAAA,OAAO,4CAA4C,WAAW,CAAA;AAChE;AAEO,SAAS,mCACd,WAAA,EAC4C;AAC5C,EAAA,OAAO,kCAAA,CAAmC,IAAA;AAAA,IACxC,CAAC,WAAA,KAAgB,WAAA,CAAY,WAAA,KAAgB;AAAA,GAC/C;AACF;AAEO,SAAS,gDAAA,CACd,UACA,WAAA,EACoB;AACpB,EAAA,MAAM,MAAA,GAAS,kCAAkC,QAAQ,CAAA;AACzD,EAAA,MAAM,WAAA,GAAc,mCAAmC,WAAW,CAAA;AAClE,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,WAAA,EAAa;AAC3B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,WAAA,CAAY,iCAAA,GACjB,MAAA,CAAO,iBACT,CAAA;AACF;AAEO,SAAS,kDAAA,CACd,UACA,WAAA,EACQ;AACR,EAAA,MAAM,MAAA,GAAS,kCAAkC,QAAQ,CAAA;AACzD,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,gCAAA,EAAmC,QAAQ,CAAA,CAAA,CAAG,CAAA;AAAA,EAChE;AACA,EAAA,OAAO,yCAAA,CAA0C,WAAW,CAAA,KAAM,MAAA,GAC9D,OAAO,MAAA,CAAO,cAAA,GACd,OAAO,MAAA,CAAO,iBAAA;AACpB;AAEO,SAAS,yBACd,MAAA,EACkC;AAClC,EAAA,OAAO,wBAAwB,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,OAAO,MAAM,CAAA;AAClE;AAEO,SAAS,4BACd,SAAA,EACqC;AACrC,EAAA,OAAO,2BAA2B,IAAA,CAAK,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAO,SAAS,CAAA;AAC9E;AAEO,IAAM,uBAAA,GAA0B;AAAA,EACrC,iBAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF;AAGO,IAAM,uBAAA,GAA0B;AAAA,EACrC,QAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,iBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF;AAGO,IAAM,qCAAA,GAAwC;AAAA,EACnD,uBAAA;AAAA,EACA,sBAAA;AAAA,EACA,2BAAA;AAAA,EACA;AACF;AAIO,IAAM,0BAAA,GAA6B;AAAA,EACxC,YAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,sBAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,qBAAA;AAAA,EACA,mBAAA;AAAA,EACA,0BAAA;AAAA,EACA,mBAAA;AAAA,EACA,mBAAA;AAAA,EACA,sBAAA;AAAA,EACA,qBAAA;AAAA,EACA,uBAAA;AAAA,EACA;AACF;AAGO,IAAM,kCAAA,GAAqC;AAAA,EAChD,QAAA;AAAA,EACA,QAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF;AA4BA,IAAM,2BAAA,GAA8B;AAAA,EAClC;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,mCAAA;AAAA,IACf,OAAA,EAAS,CAAC,uBAAuB,CAAA;AAAA,IACjC,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,YAAY,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,uBAAA;AAAA,IACJ,aAAA,EAAe,kBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,YAAY,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,wBAAA;AAAA,IACJ,aAAA,EAAe,kBAAA;AAAA,IACf,OAAA,EAAS,CAAC,yBAAyB,CAAA;AAAA,IACnC,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,WAAW,CAAA;AAAA,IACzC,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,6BAAA;AAAA,IACf,OAAA,EAAS,CAAC,sBAAA,EAAwB,8BAA8B,CAAA;AAAA,IAChE,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,qBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,yBAAyB,CAAA;AAAA,IACnC,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAgB,CAAA;AAAA,IAC1C,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,YAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,qBAAA,EAAuB,iBAAiB,CAAA;AAAA,IAClD,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,cAAc,YAAY,CAAA;AAAA,IACtE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,iCAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,OAAA,EAAS,CAAC,sBAAA,EAAwB,qBAAqB,CAAA;AAAA,IACvD,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,YAAA,EAAc,YAAY,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,oBAAA;AAAA,IACf,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,IACtB,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,cAAc,YAAY,CAAA;AAAA,IACtE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mDAAA;AAAA,IACJ,aAAA,EAAe,yCAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,wBAAA;AAAA,IACJ,aAAA,EAAe,eAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,oBAAA;AAAA,MACA,yBAAA;AAAA,MACA,mBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,qBAAA,EAAuB,gBAAgB,CAAA;AAAA,IACrE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,sBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,2BAAA;AAAA,MACA,yBAAA;AAAA,MACA,mBAAA;AAAA,MACA,eAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,qBAAA,EAAuB,gBAAgB,CAAA;AAAA,IACrE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kCAAA;AAAA,IACJ,aAAA,EAAe,6BAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,WAAA,EAAa,gBAAgB,CAAA;AAAA,IACvD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,0CAAA;AAAA,IACJ,aAAA,EAAe,qCAAA;AAAA,IACf,OAAA,EAAS,CAAC,6BAA6B,CAAA;AAAA,IACvC,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,WAAA,EAAa,qBAAqB,CAAA;AAAA,IAC9C,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,WAAA,EAAa,YAAA,EAAc,gBAAgB,CAAA;AAAA,IACvD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,gCAAA;AAAA,IACJ,aAAA,EAAe,8BAAA;AAAA,IACf,OAAA,EAAS,CAAC,uBAAuB,CAAA;AAAA,IACjC,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,WAAA,EAAa,gBAAA,EAAkB,qBAAqB,CAAA;AAAA,IAChE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,WAAA,EAAa,YAAA,EAAc,gBAAgB,CAAA;AAAA,IACvD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,WAAA,EAAa,YAAA,EAAc,gBAAgB,CAAA;AAAA,IACvD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,2CAAA;AAAA,IACJ,aAAA,EAAe,+BAAA;AAAA,IACf,OAAA,EAAS,CAAC,wBAAwB,CAAA;AAAA,IAClC,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+CAAA;AAAA,IACJ,aAAA,EAAe,mCAAA;AAAA,IACf,OAAA,EAAS,CAAC,4BAA4B,CAAA;AAAA,IACtC,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,WAAA;AAAA,IACf,OAAA,EAAS,CAAC,iBAAiB,CAAA;AAAA,IAC3B,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,8BAAA,GAAiC;AAAA,EACrC;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,mBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,mBAAA,EAAqB,8BAA8B,CAAA;AAAA,IAC7D,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,cAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,oCAAA,GAAuC;AAAA,EAC3C;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,qBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAA,EAAwB,gBAAgB,CAAA;AAAA,IACzE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,qBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAA,EAAwB,gBAAgB,CAAA;AAAA,IACzE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,mBAAA;AAAA,IACf,OAAA,EAAS,CAAC,kBAAA,EAAoB,eAAe,CAAA;AAAA,IAC7C,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,kCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAA,EAAwB,gBAAgB,CAAA;AAAA,IACzE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,uCAAA,GAA0C;AAAA,EAC9C;AAAA,IACE,EAAA,EAAI,oBAAA;AAAA,IACJ,aAAA,EAAe,WAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,qBAAA;AAAA,IACJ,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,mBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,wCAAA,GAA2C;AAAA,EAC/C;AAAA,IACE,EAAA,EAAI,2BAAA;AAAA,IACJ,aAAA,EAAe,kBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,2BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,qBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,2BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,wBAAA;AAAA,IACJ,aAAA,EAAe,eAAA;AAAA,IACf,OAAA,EAAS,CAAC,qBAAqB,CAAA;AAAA,IAC/B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,2BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA;AAEjB,CAAA;AAEA,IAAM,kCAAA,GAAqC;AAAA,EACzC;AAAA,IACE,EAAA,EAAI,qBAAA;AAAA,IACJ,aAAA,EAAe,wBAAA;AAAA,IACf,OAAA,EAAS,CAAC,YAAA,EAAc,+BAA+B,CAAA;AAAA,IACvD,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IAClE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,mBAAA;AAAA,IACf,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IACpD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,qBAAA;AAAA,IACJ,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,CAAC,iBAAiB,CAAA;AAAA,IAC3B,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IACpD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,uBAAuB,CAAA;AAAA,IACjC,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IACpD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,6BAAA;AAAA,IACJ,aAAA,EAAe,oBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gCAAgC,CAAA;AAAA,IAC1C,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IAClE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB,sBAAA;AAAA,QACnB,UAAA,EAAY,CAAC,oBAAA,EAAsB,gCAAgC;AAAA,OACrE;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,4BAA4B,CAAA;AAAA,IACtC,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gCAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,gBAAA,EAAkB,sBAAsB,CAAA;AAAA,IAClE,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,QAAA;AAAA,QACR,iBAAA,EAAmB,sBAAA;AAAA,QACnB,UAAA,EAAY,CAAC,gBAAA,EAAkB,4BAA4B;AAAA,OAC7D;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA;AAEjB,CAAA;AAEA,IAAM,6CAAA,GAAgD;AAAA,EACpD;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,cAAA;AAAA,IACf,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,yBAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,eAAA;AAAA,IACf,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,yBAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA;AAEjB,CAAA;AAEA,IAAM,iDAAA,GAAoD;AAAA,EACxD;AAAA,IACE,EAAA,EAAI,iCAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,kCAAA;AAAA,IACJ,aAAA,EAAe,wBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+BAAA;AAAA,IACJ,aAAA,EAAe,qBAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,eAAA;AAAA,IACf,OAAA,EAAS,CAAC,mBAAA,EAAqB,eAAe,CAAA;AAAA,IAC9C,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,qBAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,qBAAA,EAAuB,gBAAgB,CAAA;AAAA,IACnD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,+CAAA;AAAA,IACJ,aAAA,EAAe,qCAAA;AAAA,IACf,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,uBAAA;AAAA,IACJ,aAAA,EAAe,qBAAA;AAAA,IACf,OAAA,EAAS,CAAC,oBAAoB,CAAA;AAAA,IAC9B,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,gBAAgB,CAAA;AAAA,IAC9C,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,gBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,sBAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,uBAAA;AAAA,MACA,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,sCAAA;AAAA,MACA,kBAAA;AAAA,MACA,6BAAA;AAAA,MACA,wBAAA;AAAA,MACA,uBAAA;AAAA,MACA,iBAAA;AAAA,MACA,iBAAA;AAAA,MACA,iBAAA;AAAA,MACA,kBAAA;AAAA,MACA,sBAAA;AAAA,MACA,gBAAA;AAAA,MACA,mBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,YAAA,EAAc,gBAAgB,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,yBAAA;AAAA,IACJ,aAAA,EAAe,8BAAA;AAAA,IACf,OAAA,EAAS,CAAC,mBAAA,EAAqB,kBAAkB,CAAA;AAAA,IACjD,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,YAAA,EAAc,gBAAgB,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,2BAAA;AAAA,IACJ,aAAA,EAAe,kCAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,uBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,gBAAgB,CAAA;AAAA,IACjD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,mBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,8BAAA;AAAA,IACJ,aAAA,EAAe,sBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,4BAAA;AAAA,MACA,8BAAA;AAAA,MACA,6BAAA;AAAA,MACA,yBAAA;AAAA,MACA,8BAAA;AAAA,MACA,2BAAA;AAAA,MACA,yBAAA;AAAA,MACA,2BAAA;AAAA,MACA,0BAAA;AAAA,MACA,2BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,2BAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAgB,CAAA;AAAA,IAC5B,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,iBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,oCAAA;AAAA,IACJ,aAAA,EAAe,+BAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,mBAAA;AAAA,MACA,4BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,yBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,qBAAA,EAAuB,gBAAgB,CAAA;AAAA,IACnD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,kBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,2BAAA;AAAA,MACA,iBAAA;AAAA,MACA,wBAAA;AAAA,MACA,iBAAA;AAAA,MACA,mBAAA;AAAA,MACA,iBAAA;AAAA,MACA,qBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,mBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,YAAA,EAAc,YAAA,EAAc,sBAAsB,CAAA;AAAA,IAC9D,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,eAAA;AAAA,QACN,MAAA,EAAQ,oBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,yBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,2BAAA;AAAA,MACA,oCAAA;AAAA,MACA,iCAAA;AAAA,MACA,iBAAA;AAAA,MACA,sBAAA;AAAA,MACA,yBAAA;AAAA,MACA,qBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,iBAAA;AAAA,IACP,KAAA,EAAO,aAAA;AAAA,IACP,UAAA,EAAY,yBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,gBAAA,EAAkB,qBAAqB,CAAA;AAAA,IACnD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,aAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,mCAAA;AAAA,IACJ,aAAA,EAAe,uBAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,2BAAA;AAAA,MACA,iCAAA;AAAA,MACA,+BAAA;AAAA,MACA,mBAAA;AAAA,MACA,8BAAA;AAAA,MACA,4BAAA;AAAA,MACA,yBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,iBAAA;AAAA,IACP,UAAA,EAAY,gBAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,uBAAA,EAAyB,gBAAgB,CAAA;AAAA,IACrD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,sBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,kBAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,yCAAA,GAA4C;AAAA,EAChD;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,mCAAA;AAAA,IACf,OAAA,EAAS,CAAC,uBAAuB,CAAA;AAAA,IACjC,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,cAAA;AAAA,IACV,aAAA,EAAe,kBAAA;AAAA,IACf,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,eAAA;AAAA,IACV,aAAA,EAAe,kBAAA;AAAA,IACf,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,YAAA;AAAA,IACV,aAAA,EAAe,yBAAA;AAAA,IACf,OAAA,EAAS,CAAC,kBAAA,EAAoB,gBAAgB,CAAA;AAAA,IAC9C,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,eAAA;AAAA,IACV,aAAA,EAAe,eAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,0BAAA;AAAA,IACV,aAAA,EAAe,0BAAA;AAAA,IACf,OAAA,EAAS,CAAC,iCAAiC,CAAA;AAAA,IAC3C,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,+BAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,+BAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,mCACJ,iCAAA,CAAkC,OAAA;AAAA,EAAQ,CAAC,WACzC,yCAAA,CAA0C,GAAA;AAAA,IACxC,CAAC,QAAA,MAAyC;AAAA,MACxC,IAAI,CAAA,OAAA,EAAU,MAAA,CAAO,EAAE,CAAA,CAAA,EAAI,SAAS,QAAQ,CAAA,CAAA;AAAA,MAC5C,eAAe,QAAA,CAAS,aAAA;AAAA,MACxB,OAAA,EAAS,SAAA,IAAa,QAAA,GAAW,QAAA,CAAS,OAAA,GAAU,MAAA;AAAA,MACpD,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO,QAAA;AAAA,MACP,YAAY,MAAA,CAAO,gBAAA;AAAA,MACnB,iBAAA,EAAmB,sBAAA;AAAA,MACnB,UAAU,QAAA,CAAS,QAAA;AAAA,MACnB,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,MAC3D,YAAA,EAAc;AAAA,QACZ;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,UACf,iBAAA,EAAmB;AAAA,SACrB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,GAAG,MAAA,CAAO,MAAA,CAAO,iBAAiB,CAAA,CAAA,EAAI,MAAA,CAAO,OAAO,cAAc,CAAA,CAAA;AAAA,UAC1E,iBAAA,EAAmB;AAAA;AACrB,OACF;AAAA,MACA,WAAA,EAAa,GAAG,MAAA,CAAO,SAAS,IAAI,MAAA,CAAO,YAAY,CAAA,EAAA,EAAK,QAAA,CAAS,WAAW,CAAA;AAAA,KAClF;AAAA;AAEJ,CAAA;AAEF,IAAM,oCACJ,iCAAA,CAAkC,GAAA;AAAA,EAChC,CAAC,MAAA,MAAuC;AAAA,IACtC,EAAA,EAAI,CAAA,OAAA,EAAU,MAAA,CAAO,EAAE,CAAA,mBAAA,CAAA;AAAA,IACvB,aAAA,EAAe,oBAAA;AAAA,IACf,KAAA,EAAO,UAAA;AAAA,IACP,KAAA,EAAO,QAAA;AAAA,IACP,UAAA,EAAY,iBAAA;AAAA,IACZ,iBAAA,EAAmB,uBAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,uBAAuB,CAAA;AAAA,IACxD,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,QACf,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,GAAG,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,CAAA,EAAI,MAAA,CAAO,WAAW,IAAI,CAAA,CAAA;AAAA,QAC5D,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,aAAa,CAAA,EAAG,MAAA,CAAO,SAAS,CAAA,CAAA,EAAI,OAAO,YAAY,CAAA,+DAAA;AAAA,GACzD;AACF,CAAA;AAEF,IAAM,kCAAA,GAAqC,CAAC,gBAAA,EAAkB,SAAS,CAAA;AAEvE,IAAM,kDAAA,GAAqD;AAAA,EACzD;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAAA,EAA4B,mBAAmB,CAAA;AAAA,IAChF,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,sBAAA;AAAA,IACV,aAAA,EAAe,mBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAAA,EAA4B,mBAAmB,CAAA;AAAA,IAChF,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,mBAAA,EAAqB,8BAA8B,CAAA;AAAA,IAC7D,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAAA,EAA4B,mBAAmB,CAAA;AAAA,IAChF,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,qBAAA;AAAA,IACV,aAAA,EAAe,qBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,qBAAA;AAAA,IACV,aAAA,EAAe,qBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,mBAAA;AAAA,IACV,aAAA,EAAe,mBAAA;AAAA,IACf,OAAA,EAAS,CAAC,kBAAA,EAAoB,eAAe,CAAA;AAAA,IAC7C,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,iBAAA;AAAA,IACV,aAAA,EAAe,WAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,kBAAA;AAAA,IACV,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,sBAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,yBAAA;AAAA,IACV,aAAA,EAAe,mBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,sBAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,yBAAA;AAAA,IACV,aAAA,EAAe,kBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,4BAAA;AAAA,IACV,aAAA,EAAe,qBAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,sBAAA;AAAA,IACV,aAAA,EAAe,eAAA;AAAA,IACf,OAAA,EAAS,CAAC,qBAAqB,CAAA;AAAA,IAC/B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,2BAAA;AAAA,IACV,aAAA,EAAe,oBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,0BAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,2BAAA;AAAA,IACV,aAAA,EAAe,mBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,+BAAA;AAAA,IACV,aAAA,EAAe,uBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,oBAAA;AAAA,IACV,aAAA,EAAe,YAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,0BAAA;AAAA,IACV,aAAA,EAAe,wBAAA;AAAA,IACf,OAAA,EAAS,CAAC,+BAAA,EAAiC,YAAY,CAAA;AAAA,IACvD,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,iCAAA;AAAA,IACV,aAAA,EAAe,mBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,uBAAA,EAAyB,sBAAsB,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,0BAAA;AAAA,IACV,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,CAAC,iBAAiB,CAAA;AAAA,IAC3B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,uBAAA,EAAyB,sBAAsB,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,8BAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,uBAAuB,CAAA;AAAA,IACjC,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,uBAAA,EAAyB,sBAAsB,CAAA;AAAA,IAC3D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,kCAAA;AAAA,IACV,aAAA,EAAe,gCAAA;AAAA,IACf,OAAA,EAAS,CAAC,oBAAoB,CAAA;AAAA,IAC9B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,8BAAA;AAAA,IACV,aAAA,EAAe,4BAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,qCAAA;AAAA,IACV,aAAA,EAAe,uCAAA;AAAA,IACf,OAAA,EAAS;AAAA,MACP,2CAAA;AAAA,MACA,kDAAA;AAAA,MACA,8CAAA;AAAA,MACA,qDAAA;AAAA,MACA,uCAAA;AAAA,MACA,8CAAA;AAAA,MACA,gCAAA;AAAA,MACA,iDAAA;AAAA,MACA,gDAAA;AAAA,MACA,qCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,IAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,qCAAA;AAAA,IACV,aAAA,EAAe,uBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,0BAAA,EAA4B,sBAAsB,CAAA;AAAA,IAC9D,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,wBAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,eAAe,CAAA;AAAA,IACzB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,yBAAA;AAAA,IACV,aAAA,EAAe,iBAAA;AAAA,IACf,OAAA,EAAS,CAAC,qBAAA,EAAuB,yBAAyB,CAAA;AAAA,IAC1D,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,2BAAA;AAAA,IACV,aAAA,EAAe,2BAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,QAAA,EAAU,oCAAA;AAAA,IACV,aAAA,EAAe,gBAAA;AAAA,IACf,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,sBAAsB,CAAA;AAAA,IACvD,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,QAAA,EAAU,4BAAA;AAAA,IACV,aAAA,EAAe,iCAAA;AAAA,IACf,OAAA,EAAS,CAAC,iCAAiC,CAAA;AAAA,IAC3C,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,uBAAuB,CAAA;AAAA,IACxD,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,4CACJ,iCAAA,CAAkC,MAAA;AAAA,EAAO,CAAC,MAAA,KACxC,kCAAA,CAAmC,QAAA,CAAS,OAAO,EAAE;AACvD,CAAA,CAAE,OAAA;AAAA,EAAQ,CAAC,WACT,kDAAA,CAAmD,GAAA;AAAA,IACjD,CAAC,QAAA,MAAyC;AAAA,MACxC,IAAI,CAAA,OAAA,EAAU,MAAA,CAAO,EAAE,CAAA,CAAA,EAAI,SAAS,QAAQ,CAAA,CAAA;AAAA,MAC5C,eAAe,QAAA,CAAS,aAAA;AAAA,MACxB,OAAA,EAAS,SAAA,IAAa,QAAA,GAAW,QAAA,CAAS,OAAA,GAAU,MAAA;AAAA,MACpD,KAAA,EAAO,QAAA;AAAA,MACP,KAAA,EAAO,QAAA;AAAA,MACP,YAAY,MAAA,CAAO,gBAAA;AAAA,MACnB,iBAAA,EAAmB,sBAAA;AAAA,MACnB,UAAU,QAAA,CAAS,QAAA;AAAA,MACnB,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,WAAW,QAAA,CAAS,SAAA;AAAA,MACpB,YAAA,EAAc;AAAA,QACZ;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,UACf,iBAAA,EAAmB;AAAA,SACrB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,QAAA;AAAA,UACN,MAAA,EAAQ,GAAG,MAAA,CAAO,MAAA,CAAO,iBAAiB,CAAA,CAAA,EAAI,MAAA,CAAO,OAAO,cAAc,CAAA,CAAA;AAAA,UAC1E,iBAAA,EAAmB;AAAA,SACrB;AAAA,QACA;AAAA,UACE,IAAA,EAAM,gBAAA;AAAA,UACN,MAAA,EAAQ,GAAG,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,CAAA,EAAI,MAAA,CAAO,WAAW,IAAI,CAAA,CAAA;AAAA,UAC5D,iBAAA,EAAmB;AAAA;AACrB,OACF;AAAA,MACA,WAAA,EAAa,GAAG,MAAA,CAAO,SAAS,IAAI,MAAA,CAAO,YAAY,CAAA,EAAA,EAAK,QAAA,CAAS,WAAW,CAAA;AAAA,KAClF;AAAA;AAEJ,CAAA;AAEF,SAAS,gCACP,MAAA,EACmB;AACnB,EAAA,MAAM,KAAA,GAAQ,CAAC,MAAA,CAAO,MAAA,CAAO,QAAQ,wBAAwB,CAAA;AAC7D,EAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,IAAA,OAAO,CAAC,GAAG,KAAA,EAAO,sCAAsC,CAAA;AAAA,EAC1D;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,oCACP,MAAA,EACmB;AACnB,EAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,IAAA,OAAO,CAAC,MAAA,CAAO,MAAA,CAAO,MAAA,EAAQ,sCAAsC,CAAA;AAAA,EACtE;AACA,EAAA,OAAO,CAAC,MAAA,CAAO,MAAA,CAAO,MAAM,CAAA;AAC9B;AAEA,SAAS,0CACP,MAAA,EACmB;AACnB,EAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,IAAA,OAAO,CAAC,MAAA,CAAO,MAAA,CAAO,YAAA,EAAc,sCAAsC,CAAA;AAAA,EAC5E;AACA,EAAA,OAAO,CAAC,MAAA,CAAO,MAAA,CAAO,YAAY,CAAA;AACpC;AAEA,SAAS,uBACP,MAAA,EAC+B;AAC/B,EAAA,IAAI,MAAA,CAAO,OAAO,gBAAA,EAAkB;AAClC,IAAA,OAAO;AAAA,MACL,iBAAA;AAAA,MACA,0BAAA;AAAA,MACA,6BAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,SAAA,EAAW;AAC3B,IAAA,OAAO;AAAA,MACL,kBAAA;AAAA,MACA,kBAAA;AAAA,MACA,YAAA;AAAA,MACA,wBAAA;AAAA,MACA,uBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,IAAA,OAAO,CAAC,sCAAsC,CAAA;AAAA,EAChD;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,cAAA,EAAgB;AAChC,IAAA,OAAO;AAAA,MACL,kBAAA;AAAA,MACA,iBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,6BACP,MAAA,EAC+B;AAC/B,EAAA,IAAI,MAAA,CAAO,OAAO,gBAAA,EAAkB;AAClC,IAAA,OAAO;AAAA,MACL,iCAAA;AAAA,MACA,oCAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,SAAA,EAAW;AAC3B,IAAA,OAAO;AAAA,MACL,mBAAA;AAAA,MACA,uBAAA;AAAA,MACA,wBAAA;AAAA,MACA,yBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,IAAA,OAAO,CAAC,qBAAqB,sCAAsC,CAAA;AAAA,EACrE;AACA,EAAA,IAAI,MAAA,CAAO,OAAO,cAAA,EAAgB;AAChC,IAAA,OAAO;AAAA,MACL,mBAAA;AAAA,MACA,yBAAA;AAAA,MACA,0BAAA;AAAA,MACA,uBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;AAEA,IAAM,gDACJ,iCAAA,CAAkC,OAAA;AAAA,EAChC,CAAC,MAAA,KAAiD;AAClD,IAAA,IAAI,MAAA,CAAO,OAAO,cAAA,EAAgB;AAChC,MAAA,OAAO;AAAA,QACL;AAAA,UACE,EAAA,EAAI,sCAAA;AAAA,UACJ,aAAA,EAAe,oCAAA;AAAA,UACf,OAAA,EAAS,CAAC,8BAA8B,CAAA;AAAA,UACxC,KAAA,EAAO,QAAA;AAAA,UACP,KAAA,EAAO,WAAA;AAAA,UACP,YAAY,MAAA,CAAO,gBAAA;AAAA,UACnB,iBAAA,EAAmB,sBAAA;AAAA,UACnB,QAAA,EAAU,KAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,CAAC,mBAAmB,CAAA;AAAA,UAC/B,YAAA,EAAc;AAAA,YACZ;AAAA,cACE,IAAA,EAAM,QAAA;AAAA,cACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,cACf,iBAAA,EAAmB;AAAA;AACrB,WACF;AAAA,UACA,WAAA,EACE;AAAA,SACJ;AAAA,QACA;AAAA,UACE,EAAA,EAAI,yCAAA;AAAA,UACJ,aAAA,EAAe,uCAAA;AAAA,UACf,KAAA,EAAO,QAAA;AAAA,UACP,KAAA,EAAO,WAAA;AAAA,UACP,YAAY,MAAA,CAAO,gBAAA;AAAA,UACnB,iBAAA,EAAmB,sBAAA;AAAA,UACnB,QAAA,EAAU,KAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,CAAC,mBAAmB,CAAA;AAAA,UAC/B,YAAA,EAAc;AAAA,YACZ;AAAA,cACE,IAAA,EAAM,QAAA;AAAA,cACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,cACf,iBAAA,EAAmB;AAAA;AACrB,WACF;AAAA,UACA,WAAA,EACE;AAAA;AACJ,OACF;AAAA,IACF;AACA,IAAA,IAAI,MAAA,CAAO,OAAO,WAAA,EAAa;AAC7B,MAAA,OAAO;AAAA,QACL;AAAA,UACE,EAAA,EAAI,mCAAA;AAAA,UACJ,aAAA,EAAe,iDAAA;AAAA,UACf,KAAA,EAAO,QAAA;AAAA,UACP,KAAA,EAAO,WAAA;AAAA,UACP,YAAY,MAAA,CAAO,gBAAA;AAAA,UACnB,iBAAA,EAAmB,sBAAA;AAAA,UACnB,QAAA,EAAU,KAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,CAAC,mBAAmB,CAAA;AAAA,UAC/B,YAAA,EAAc;AAAA,YACZ;AAAA,cACE,IAAA,EAAM,QAAA;AAAA,cACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,cACf,iBAAA,EAAmB;AAAA;AACrB,WACF;AAAA,UACA,WAAA,EACE;AAAA,SACJ;AAAA,QACA;AAAA,UACE,EAAA,EAAI,sCAAA;AAAA,UACJ,aAAA,EAAe,oDAAA;AAAA,UACf,KAAA,EAAO,QAAA;AAAA,UACP,KAAA,EAAO,WAAA;AAAA,UACP,YAAY,MAAA,CAAO,gBAAA;AAAA,UACnB,iBAAA,EAAmB,sBAAA;AAAA,UACnB,QAAA,EAAU,KAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,CAAC,mBAAmB,CAAA;AAAA,UAC/B,YAAA,EAAc;AAAA,YACZ;AAAA,cACE,IAAA,EAAM,QAAA;AAAA,cACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,cACf,iBAAA,EAAmB;AAAA;AACrB,WACF;AAAA,UACA,WAAA,EACE;AAAA,SACJ;AAAA,QACA;AAAA,UACE,EAAA,EAAI,qCAAA;AAAA,UACJ,aAAA,EAAe,2CAAA;AAAA,UACf,KAAA,EAAO,QAAA;AAAA,UACP,KAAA,EAAO,WAAA;AAAA,UACP,YAAY,MAAA,CAAO,gBAAA;AAAA,UACnB,iBAAA,EAAmB,sBAAA;AAAA,UACnB,QAAA,EAAU,KAAA;AAAA,UACV,MAAA,EAAQ,KAAA;AAAA,UACR,MAAA,EAAQ,IAAA;AAAA,UACR,SAAA,EAAW,CAAC,mBAAmB,CAAA;AAAA,UAC/B,YAAA,EAAc;AAAA,YACZ;AAAA,cACE,IAAA,EAAM,QAAA;AAAA,cACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,cACf,iBAAA,EAAmB;AAAA;AACrB,WACF;AAAA,UACA,WAAA,EACE;AAAA;AACJ,OACF;AAAA,IACF;AACA,IAAA,OAAO,EAAC;AAAA,EACV;AAAC,CAAA;AAEH,IAAM,wCAAA,GAA2C;AAAA,EAC/C;AAAA,IACE,EAAA,EAAI,4BAAA;AAAA,IACJ,aAAA,EAAe,WAAA;AAAA,IACf,OAAA,EAAS,CAAC,eAAe,CAAA;AAAA,IACzB,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,4BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,sCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA,GACJ;AAAA,EACA;AAAA,IACE,EAAA,EAAI,6BAAA;AAAA,IACJ,aAAA,EAAe,YAAA;AAAA,IACf,OAAA,EAAS,CAAC,gBAAgB,CAAA;AAAA,IAC1B,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,4BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,sCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,iCAAA;AAAA,IACJ,aAAA,EAAe,gBAAA;AAAA,IACf,OAAA,EAAS,CAAC,oBAAoB,CAAA;AAAA,IAC9B,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,4BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,sCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EAAa;AAAA,GACf;AAAA,EACA;AAAA,IACE,EAAA,EAAI,oCAAA;AAAA,IACJ,aAAA,EAAe,mBAAA;AAAA,IACf,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,WAAA;AAAA,IACP,UAAA,EAAY,4BAAA;AAAA,IACZ,iBAAA,EAAmB,sBAAA;AAAA,IACnB,QAAA,EAAU,KAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW,CAAC,mBAAA,EAAqB,0BAA0B,CAAA;AAAA,IAC3D,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,sCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,MAAA,EAAQ,2BAAA;AAAA,QACR,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,oCAAA;AAAA,QACR,iBAAA,EAAmB;AAAA;AACrB,KACF;AAAA,IACA,WAAA,EACE;AAAA;AAEN,CAAA;AAEA,IAAM,gCAAA,GACJ,iCAAA,CAAkC,OAAA,CAAQ,CAAC,MAAA,KAAW;AAAA,EACpD;AAAA,IACE,EAAA,EAAI,CAAA,OAAA,EAAU,MAAA,CAAO,EAAE,CAAA,WAAA,CAAA;AAAA,IACvB,aAAA,EAAe,OAAO,MAAA,CAAO,MAAA;AAAA,IAC7B,OAAA,EAAS,uBAAuB,MAAM,CAAA;AAAA,IACtC,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,iBAAA;AAAA,IACP,YAAY,MAAA,CAAO,gBAAA;AAAA,IACnB,iBAAA,EAAmB,2BAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,KAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,sBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,QACf,iBAAA,EAAmB,2BAAA;AAAA,QACnB,UAAA,EAAY,gCAAgC,MAAM;AAAA,OACpD;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,GAAG,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,CAAA,EAAI,MAAA,CAAO,WAAW,IAAI,CAAA,CAAA;AAAA,QAC5D,iBAAA,EAAmB,2BAAA;AAAA,QACnB,UAAA,EAAY,oCAAoC,MAAM,CAAA;AAAA,QACtD,KAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,WAAA,EAAa,CAAA,EAAG,MAAA,CAAO,SAAS,IAAI,MAAA,CAAO,YAAY,CAAA,kCAAA,EAAqC,MAAA,CAAO,MAAA,CAAO,iBAAiB,CAAA,mBAAA,EAAsB,MAAA,CAAO,OAAO,cAAc,CAAA,CAAA;AAAA,GAC/K;AAAA,EACA;AAAA,IACE,EAAA,EAAI,CAAA,OAAA,EAAU,MAAA,CAAO,EAAE,CAAA,kBAAA,CAAA;AAAA,IACvB,aAAA,EAAe,OAAO,MAAA,CAAO,YAAA;AAAA,IAC7B,OAAA,EAAS,6BAA6B,MAAM,CAAA;AAAA,IAC5C,KAAA,EAAO,QAAA;AAAA,IACP,KAAA,EAAO,iBAAA;AAAA,IACP,YAAY,MAAA,CAAO,gBAAA;AAAA,IACnB,iBAAA,EAAmB,2BAAA;AAAA,IACnB,QAAA,EAAU,IAAA;AAAA,IACV,MAAA,EAAQ,IAAA;AAAA,IACR,MAAA,EAAQ,KAAA;AAAA,IACR,SAAA,EAAW;AAAA,MACT,mBAAA;AAAA,MACA,sBAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA,YAAA,EAAc;AAAA,MACZ;AAAA,QACE,IAAA,EAAM,QAAA;AAAA,QACN,QAAQ,MAAA,CAAO,iBAAA;AAAA,QACf,iBAAA,EAAmB;AAAA,OACrB;AAAA,MACA;AAAA,QACE,IAAA,EAAM,gBAAA;AAAA,QACN,MAAA,EAAQ,GAAG,MAAA,CAAO,UAAA,CAAW,KAAK,CAAA,CAAA,EAAI,MAAA,CAAO,WAAW,IAAI,CAAA,CAAA;AAAA,QAC5D,iBAAA,EAAmB,2BAAA;AAAA,QACnB,UAAA,EAAY,0CAA0C,MAAM,CAAA;AAAA,QAC5D,KAAA,EACE;AAAA;AACJ,KACF;AAAA,IACA,aAAa,CAAA,EAAG,MAAA,CAAO,SAAS,CAAA,CAAA,EAAI,OAAO,YAAY,CAAA,4DAAA;AAAA;AAE3D,CAAyD,CAAA;AAEpD,IAAM,4BAAA,GAA+B;AAAA,EAC1C,GAAG,2BAAA;AAAA,EACH,GAAG,8BAAA;AAAA,EACH,GAAG,oCAAA;AAAA,EACH,GAAG,uCAAA;AAAA,EACH,GAAG,wCAAA;AAAA,EACH,GAAG,kCAAA;AAAA,EACH,GAAG,6CAAA;AAAA,EACH,GAAG,iDAAA;AAAA,EACH,GAAG,gCAAA;AAAA,EACH,GAAG,iCAAA;AAAA,EACH,GAAG,yCAAA;AAAA,EACH,GAAG,6CAAA;AAAA,EACH,GAAG,wCAAA;AAAA,EACH,GAAG;AACL;AAIO,SAAS,8BACd,QAAA,EACuC;AACvC,EAAA,OAAO,6BAA6B,IAAA,CAAK,CAAC,MAAA,KAAW,MAAA,CAAO,OAAO,QAAQ,CAAA;AAC7E;AAEO,SAAS,sCACd,QAAA,EACsC;AACtC,EAAA,OAAO,4BAAA,CAA6B,MAAA;AAAA,IAAO,CAAC,MAAA,KACzC,MAAA,CAAO,SAAA,CAAiD,SAAS,QAAQ;AAAA,GAC5E;AACF;AAEO,SAAS,wCAAA,CACd,MACA,MAAA,EACsC;AACtC,EAAA,OAAO,4BAAA,CAA6B,MAAA;AAAA,IAAO,CAAC,MAAA,KAC1C,MAAA,CAAO,YAAA,CAAa,IAAA;AAAA,MAClB,CAAC,WAAA,KAAgB,WAAA,CAAY,IAAA,KAAS,IAAA,IAAQ,YAAY,MAAA,KAAW;AAAA;AACvE,GACF;AACF;AAEO,SAAS,kCAAA,CACd,cAAoD,4BAAA,EACjC;AACnB,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,MAAM,GAAA,uBAAU,GAAA,EAAY;AAC5B,EAAA,MAAM,oCAAoB,IAAI,GAAA,CAAI,CAAC,eAAA,EAAiB,sBAAsB,CAAC,CAAA;AAE3E,EAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,IAAA,IAAI,GAAA,CAAI,GAAA,CAAI,UAAA,CAAW,EAAE,CAAA,EAAG;AAC1B,MAAA,MAAA,CAAO,IAAA,CAAK,CAAA,gCAAA,EAAmC,UAAA,CAAW,EAAE,CAAA,CAAE,CAAA;AAAA,IAChE;AACA,IAAA,GAAA,CAAI,GAAA,CAAI,WAAW,EAAE,CAAA;AAErB,IAAA,IAAI,CAAC,UAAA,CAAW,aAAA,CAAc,UAAA,CAAW,SAAS,CAAA,EAAG;AACnD,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,iBAAA,CAAkB,GAAA,CAAI,UAAA,CAAW,aAAa,CAAA,EAAG;AACnD,MAAA,IAAI,UAAA,CAAW,UAAU,iBAAA,EAAmB;AAC1C,QAAA,MAAA,CAAO,IAAA,CAAK,CAAA,EAAG,UAAA,CAAW,aAAa,CAAA,+BAAA,CAAiC,CAAA;AAAA,MAC1E;AACA,MAAA,KAAA,MAAW,WAAA,IAAe,WAAW,YAAA,EAAc;AACjD,QAAA,IACE,WAAA,CAAY,IAAA,KAAS,QAAA,IACrB,iCAAA,CAAkC,IAAA;AAAA,UAChC,CAAC,MAAA,KAAW,MAAA,CAAO,iBAAA,KAAsB,WAAA,CAAY;AAAA,SACvD,EACA;AACA,UAAA,MAAA,CAAO,IAAA;AAAA,YACL,CAAA,EAAG,UAAA,CAAW,aAAa,CAAA,yCAAA,EAA4C,YAAY,MAAM,CAAA,CAAA;AAAA,WAC3F;AAAA,QACF;AAAA,MACF;AACA,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,QAAQ,iCAAA,CAAkC,IAAA;AAAA,MAC9C,CAAC,MAAA,KACC,MAAA,CAAO,MAAA,CAAO,MAAA,KAAW,WAAW,aAAA,IACpC,MAAA,CAAO,MAAA,CAAO,YAAA,KAAiB,UAAA,CAAW;AAAA,KAC9C;AACA,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,CAAA,EAAG,WAAW,aAAa,CAAA,sDAAA;AAAA,OAC7B;AACA,MAAA;AAAA,IACF;AACA,IAAA,KAAA,MAAW,WAAA,IAAe,WAAW,YAAA,EAAc;AACjD,MAAA,IACE,YAAY,IAAA,KAAS,QAAA,IACrB,WAAA,CAAY,MAAA,KAAW,MAAM,iBAAA,EAC7B;AACA,QAAA,MAAA,CAAO,IAAA;AAAA,UACL,CAAA,EAAG,WAAW,aAAa,CAAA,WAAA,EAAc,YAAY,MAAM,CAAA,WAAA,EAAc,MAAM,iBAAiB,CAAA,CAAA;AAAA,SAClG;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT","file":"infisical-runtime.contract.js","sourcesContent":["/**\n * Tenant client contract\n *\n * Defines the generic boundary for any customer-owned product that consumes\n * Lucern through the SDK, hosted API, or MCP server. Tenant clients may run\n * their own UI, auth provider, deployment, and data plane, but reasoning\n * operations must enter through the published packages below.\n */\n\nimport type {\n SessionAuthMode,\n SessionPrincipalType,\n} from \"./auth.contract\";\n\nexport const TENANT_CLIENT_CONTRACT_VERSION = \"2026-04-27\" as const;\n\nexport const TENANT_CLIENT_AUTH_MODES = [\n \"interactive_user\",\n \"service_principal\",\n \"tenant_api_key\",\n \"session_token\",\n] as const satisfies readonly SessionAuthMode[];\nexport type TenantClientAuthMode = (typeof TENANT_CLIENT_AUTH_MODES)[number];\n\nexport const TENANT_CLIENT_PRINCIPAL_TYPES = [\n \"human\",\n \"service\",\n \"agent\",\n \"group\",\n \"external_viewer\",\n] as const satisfies readonly SessionPrincipalType[];\nexport type TenantClientPrincipalType =\n (typeof TENANT_CLIENT_PRINCIPAL_TYPES)[number];\n\nexport const TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"authMode\",\n \"scopes\",\n] as const;\nexport type TenantClientRequiredContextField =\n (typeof TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS)[number];\n\nexport const TENANT_CLIENT_OPTIONAL_CONTEXT_FIELDS = [\n \"clerkId\",\n \"principalType\",\n \"roles\",\n \"groupIds\",\n \"permittedToolNames\",\n \"permittedPackKeys\",\n \"principalStatus\",\n \"tenantStatus\",\n \"workspaceStatus\",\n \"permit\",\n \"sessionId\",\n \"delegationChain\",\n] as const;\nexport type TenantClientOptionalContextField =\n (typeof TENANT_CLIENT_OPTIONAL_CONTEXT_FIELDS)[number];\n\nexport const TENANT_CLIENT_INSTALL_TOKEN_ENV = \"INSTALL_LUCERN_NPM\" as const;\nexport const TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH =\n \"tenants/shared\" as const;\nexport const TENANT_CLIENT_FORBIDDEN_INSTALL_TOKEN_INFISICAL_PATHS = [\n \"/platform/publish\",\n] as const;\nexport const TENANT_CLIENT_FORBIDDEN_SECRET_ENV = [\"NPM_TOKEN\"] as const;\nexport type TenantClientForbiddenInstallTokenInfisicalPath =\n (typeof TENANT_CLIENT_FORBIDDEN_INSTALL_TOKEN_INFISICAL_PATHS)[number];\nexport type TenantClientForbiddenSecretEnv =\n (typeof TENANT_CLIENT_FORBIDDEN_SECRET_ENV)[number];\n\nexport const TENANT_CLIENT_INSTALLABLE_PACKAGES = [\n {\n packageName: \"@lucern/access-control\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/agent\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/auth\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/cli\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/client-core\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/confidence\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/config\",\n role: \"configuration\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/contracts\",\n role: \"contract_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/control-plane\",\n role: \"component_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/developer-kit\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/events\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/graph-primitives\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/graph-sync\",\n role: \"host_addon_runtime\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/mcp\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/pack-host\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/pack-installer\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/proof-compiler\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/react\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n role: \"component_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/sdk\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/secrets\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/server-core\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/testing\",\n role: \"test_support\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/types\",\n role: \"contract_entrypoint\",\n directTenantImport: true,\n },\n] as const;\nexport type TenantClientInstallablePackage =\n (typeof TENANT_CLIENT_INSTALLABLE_PACKAGES)[number];\nexport type TenantClientPackageRole = TenantClientInstallablePackage[\"role\"];\nexport type TenantClientInstallablePackageName =\n TenantClientInstallablePackage[\"packageName\"];\n\n/**\n * Direct package installs are package.json entries owned by the tenant repo.\n * Direct imports are source-code imports that tenant application code may use.\n *\n * These concepts intentionally differ: `@lucern/cli` is a direct install when a\n * tenant repo needs the `lucern` binary, but it is not a direct application\n * import. `@lucern/reasoning-kernel` and `@lucern/control-plane` are direct installs\n * for Convex component binding, while tenant app code should only import their\n * explicit component config subpaths.\n */\nexport type TenantClientInstallProfile = {\n id: string;\n description: string;\n packageNames: readonly TenantClientInstallablePackageName[];\n dependencyField: \"dependencies\" | \"devDependencies\" | \"mixed\";\n};\n\nexport const TENANT_CLIENT_FULL_SUITE_PACKAGE_NAMES =\n TENANT_CLIENT_INSTALLABLE_PACKAGES.map(\n (entry) => entry.packageName\n ) as readonly TenantClientInstallablePackageName[];\n\nexport const TENANT_CLIENT_INSTALL_PROFILES = [\n {\n id: \"core_app_runtime\",\n description:\n \"Smallest tenant app/runtime install for typed Lucern API calls plus tool-access policy helpers.\",\n packageNames: [\"@lucern/sdk\", \"@lucern/access-control\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"react_app_runtime\",\n description:\n \"React tenant app install for hooks, provider, curated graph components, and direct SDK calls.\",\n packageNames: [\"@lucern/react\", \"@lucern/sdk\", \"@lucern/access-control\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"convex_components\",\n description:\n \"Tenant Convex host install for binding the Lucern control-plane and reasoning-kernel components.\",\n packageNames: [\"@lucern/control-plane\", \"@lucern/reasoning-kernel\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"graph_mirroring_addon\",\n description:\n \"Optional tenant Convex host install for Neo4j graph projection, edge topology writes, backfill, health checks, and query proxy helpers.\",\n packageNames: [\"@lucern/graph-sync\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"operator_cli\",\n description:\n \"Developer/operator install for the `lucern` binary, including tenant bootstrap seed commands.\",\n packageNames: [\"@lucern/cli\"],\n dependencyField: \"devDependencies\",\n },\n {\n id: \"mcp_runtime\",\n description:\n \"Agent runtime install for the standalone Lucern MCP server and hosted route helpers.\",\n packageNames: [\"@lucern/mcp\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"contracts_and_types\",\n description:\n \"Compile-time contract/type install for codegen, audits, and tenant integration validation.\",\n packageNames: [\"@lucern/contracts\", \"@lucern/types\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"full_suite\",\n description:\n \"Full coherent Lucern package suite for design-partner repos that want every published runtime, tool, component, test, and config package pinned together.\",\n packageNames: TENANT_CLIENT_FULL_SUITE_PACKAGE_NAMES,\n dependencyField: \"mixed\",\n },\n] as const satisfies readonly TenantClientInstallProfile[];\nexport type TenantClientInstallProfileId =\n (typeof TENANT_CLIENT_INSTALL_PROFILES)[number][\"id\"];\n\n/**\n * Direct imports tenant-owned product code may use. This is intentionally\n * smaller than TENANT_CLIENT_INSTALLABLE_PACKAGES: several publishable packages\n * are installed as SDK dependencies, tooling, or platform runtimes but should\n * not become the application integration surface.\n */\nexport const TENANT_CLIENT_PUBLIC_IMPORTS = [\n {\n packageName: \"@lucern/sdk\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"TypeScript SDK runtime and generated operation namespaces.\",\n },\n {\n packageName: \"@lucern/react\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"React bindings for tenant-owned UI applications.\",\n },\n {\n packageName: \"@lucern/mcp\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"MCP client/server entry points and hosted route helpers.\",\n },\n {\n packageName: \"@lucern/graph-sync\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description:\n \"Optional Neo4j graph mirroring host actions, edge API, query proxy, backfill, and health helpers.\",\n },\n {\n packageName: \"@lucern/contracts\",\n surface: \"contract\",\n subpaths: \"published_exports\",\n description: \"Published type and manifest contracts.\",\n },\n {\n packageName: \"@lucern/access-control\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description:\n \"Tenant runtime access-control helpers, including effective tool access.\",\n },\n {\n packageName: \"@lucern/types\",\n surface: \"contract\",\n subpaths: \"published_exports\",\n description: \"Published type-only helpers for tenant integration code.\",\n },\n] as const;\nexport type TenantClientPublicImport =\n (typeof TENANT_CLIENT_PUBLIC_IMPORTS)[number];\nexport type TenantClientPublicPackage =\n TenantClientPublicImport[\"packageName\"];\nexport type TenantClientPublicSurface = TenantClientPublicImport[\"surface\"];\n\nexport const TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS = [\n {\n packageName: \"@lucern/control-plane\",\n importPath: \"@lucern/control-plane/convex.config\",\n surface: \"component_config\",\n description:\n \"Convex component binding config for tenant deployments that install the Lucern control plane.\",\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n importPath: \"@lucern/reasoning-kernel/convex.config\",\n surface: \"component_config\",\n description:\n \"Convex component binding config for tenant deployments that install the Lucern reasoning kernel.\",\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n importPath: \"@lucern/reasoning-kernel/runtime.config\",\n surface: \"component_config\",\n description:\n \"Runtime config alias for tenant deployments that install the Lucern reasoning kernel.\",\n },\n] as const;\nexport type TenantClientComponentConfigImport =\n (typeof TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS)[number];\nexport type TenantClientAllowedImport =\n | TenantClientPublicImport\n | TenantClientComponentConfigImport;\n\nexport function findTenantClientInstallablePackage(\n packageName: string\n): TenantClientInstallablePackage | undefined {\n return TENANT_CLIENT_INSTALLABLE_PACKAGES.find(\n (entry) => entry.packageName === packageName\n );\n}\n\nexport function isTenantClientInstallablePackage(packageName: string): boolean {\n return Boolean(findTenantClientInstallablePackage(packageName));\n}\n\nexport const TENANT_CLIENT_REQUIRED_SDK_NAMESPACES = [\n \"bootstrap\",\n \"context\",\n \"beliefs\",\n \"evidence\",\n \"questions\",\n \"graph\",\n \"worktrees\",\n \"topics\",\n \"edges\",\n \"contradictions\",\n \"contracts\",\n \"graphIntel\",\n \"graphIntelligence\",\n \"graphAnalysis\",\n \"graphRecommendations\",\n \"orgGraphSearch\",\n \"embeddings\",\n \"ontologyLinks\",\n \"graphStateClassifier\",\n \"tools\",\n \"controlPlane\",\n \"identity\",\n \"modelRuntime\",\n \"events\",\n \"jobs\",\n \"telemetry\",\n] as const;\nexport type TenantClientRequiredSdkNamespace =\n (typeof TENANT_CLIENT_REQUIRED_SDK_NAMESPACES)[number];\n\nexport const TENANT_CLIENT_CAPABILITIES = [\n {\n id: \"identity.resolve_interactive_principal\",\n description:\n \"Resolve a Clerk-authenticated user into a Permit-backed Lucern principal context.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/cli\", \"@lucern/mcp\"],\n requiredContextFields: [\"principalId\", \"tenantId\", \"scopes\"],\n },\n {\n id: \"identity.bootstrap_session\",\n description: \"Start a scoped Lucern session for a tenant principal.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.context.compile\",\n description: \"Compile tenant and workspace scoped reasoning context.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph.read\",\n description: \"Read beliefs, evidence, questions, topics, graph edges, and lineage.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph.write\",\n description: \"Create and update graph objects through authorized APIs.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph_intelligence.run\",\n description:\n \"Discover and run Graph Intelligence query recipes for structural graph analysis.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/cli\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph_mirroring.install\",\n description:\n \"Install and run the optional Neo4j graph mirror for paid or enterprise tenant deployments.\",\n surfaces: [\"@lucern/graph-sync\", \"@lucern/cli\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"workflow.worktree_lifecycle\",\n description: \"Create, review, merge, and close scoped worktrees.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n] as const;\nexport type TenantClientCapability =\n (typeof TENANT_CLIENT_CAPABILITIES)[number];\nexport type TenantClientCapabilityId = TenantClientCapability[\"id\"];\n\nexport const TENANT_CLIENT_ISOLATION_RULES = [\n {\n id: \"tenant_workspace_scope_required\",\n description:\n \"Runtime operations must resolve both tenantId and workspaceId before reaching Lucern reasoning state.\",\n },\n {\n id: \"principal_audit_required\",\n description:\n \"Runtime operations must carry principalId, authMode, and scopes for audit attribution.\",\n },\n {\n id: \"no_private_lucern_imports\",\n description:\n \"Tenant code must not import Lucern source, Convex internals, generated adapters, or unpublished package internals.\",\n },\n] as const;\nexport type TenantClientIsolationRule =\n (typeof TENANT_CLIENT_ISOLATION_RULES)[number];\n\nexport const TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS = [\n {\n id: \"deep_src_import\",\n pattern: \"^@lucern/[^/]+/src(?:/|$)\",\n description: \"Published packages must not be bypassed through src paths.\",\n },\n {\n id: \"deep_dist_import\",\n pattern: \"^@lucern/[^/]+/dist(?:/|$)\",\n description:\n \"Published package exports must be used instead of dist file paths.\",\n },\n {\n id: \"generated_adapter_import\",\n pattern: \"^@lucern/[^/]+/(?:adapters/)?_generated(?:/|$)\",\n description:\n \"Generated Lucern adapters are internal deployment artifacts.\",\n },\n {\n id: \"private_runtime_import\",\n pattern: \"^@lucern/[^/]+/(?:internal|private)(?:/|$)\",\n description: \"Internal and private package subpaths are not public SDK API.\",\n },\n {\n id: \"workspace_source_import\",\n pattern: \"^(?:packages|modules|services|lucern|apps)/(?:.+/)?src(?:/|$)\",\n description:\n \"Tenant clients must not import source files from the Lucern monorepo.\",\n },\n {\n id: \"root_alias_lucern_import\",\n pattern: \"^@/(?:lucern|packages|modules|services|apps)(?:/|$)\",\n description:\n \"Tenant clients must not depend on Lucern repo-local path aliases.\",\n },\n {\n id: \"relative_lucern_source_import\",\n pattern: \"^\\\\.\\\\.?/(?:.+/)?(?:packages|modules|services|lucern|apps)(?:/|$)\",\n description:\n \"Tenant clients must not reach back into Lucern source through relative paths.\",\n },\n {\n id: \"monorepo_path_import\",\n pattern: \"lucern-repo\",\n description:\n \"Absolute imports that name the Lucern repository are not portable tenant code.\",\n },\n] as const;\nexport type TenantClientForbiddenImportPattern =\n (typeof TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS)[number];\nexport type TenantClientForbiddenImportPatternId =\n TenantClientForbiddenImportPattern[\"id\"];\n\nexport type TenantClientImportDecision =\n | \"public\"\n | \"forbidden\"\n | \"local\"\n | \"external\";\n\nexport type TenantClientImportClassification = {\n importPath: string;\n decision: TenantClientImportDecision;\n publicImport?: TenantClientAllowedImport;\n pattern?: TenantClientForbiddenImportPattern;\n reason: string;\n};\n\nfunction matchesPublicImport(\n importPath: string\n): TenantClientAllowedImport | undefined {\n const componentConfig = TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS.find(\n (entry) => importPath === entry.importPath\n );\n if (componentConfig) {\n return componentConfig;\n }\n\n return TENANT_CLIENT_PUBLIC_IMPORTS.find(\n (entry) =>\n importPath === entry.packageName ||\n importPath.startsWith(`${entry.packageName}/`)\n );\n}\n\nfunction matchesForbiddenPattern(\n importPath: string\n): TenantClientForbiddenImportPattern | undefined {\n return TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS.find((entry) =>\n new RegExp(entry.pattern, \"u\").test(importPath)\n );\n}\n\nexport function classifyTenantClientImport(\n importPath: string\n): TenantClientImportClassification {\n const normalizedImportPath = importPath.trim();\n const pattern = matchesForbiddenPattern(normalizedImportPath);\n\n if (pattern) {\n return {\n importPath: normalizedImportPath,\n decision: \"forbidden\",\n pattern,\n reason: pattern.description,\n };\n }\n\n const publicImport = matchesPublicImport(normalizedImportPath);\n if (publicImport) {\n return {\n importPath: normalizedImportPath,\n decision: \"public\",\n publicImport,\n reason: publicImport.description,\n };\n }\n\n if (normalizedImportPath.startsWith(\"@lucern/\")) {\n return {\n importPath: normalizedImportPath,\n decision: \"forbidden\",\n reason:\n \"This @lucern package is not part of the tenant client public surface.\",\n };\n }\n\n if (\n normalizedImportPath.startsWith(\"./\") ||\n normalizedImportPath.startsWith(\"../\")\n ) {\n return {\n importPath: normalizedImportPath,\n decision: \"local\",\n reason: \"Local tenant-owned import.\",\n };\n }\n\n return {\n importPath: normalizedImportPath,\n decision: \"external\",\n reason: \"External dependency outside the Lucern package namespace.\",\n };\n}\n\nexport function isTenantClientPublicImport(importPath: string): boolean {\n return classifyTenantClientImport(importPath).decision === \"public\";\n}\n\nexport function isTenantClientComponentConfigImport(\n importPath: string\n): boolean {\n return TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS.some(\n (entry) => importPath === entry.importPath\n );\n}\n\nexport function isTenantClientAllowedImport(importPath: string): boolean {\n return classifyTenantClientImport(importPath).decision === \"public\";\n}\n\nexport function assertTenantClientImportAllowed(importPath: string): void {\n const classification = classifyTenantClientImport(importPath);\n if (classification.decision !== \"forbidden\") {\n return;\n }\n\n throw new Error(formatTenantClientImportViolation(classification));\n}\n\nexport function formatTenantClientImportViolation(\n classification: TenantClientImportClassification\n): string {\n const patternId = classification.pattern\n ? ` [${classification.pattern.id}]`\n : \"\";\n return `Tenant client import is not allowed${patternId}: ${classification.importPath}. ${classification.reason}`;\n}\n","/**\n * Infisical runtime contract\n *\n * Defines how Lucern runtime surfaces receive platform configuration and\n * secrets. Vercel-owned apps consume Infisical through secret syncs. Server,\n * CLI, MCP, and SDK operator contexts may hydrate runtime config directly from\n * Infisical when they have a scoped machine identity. Tenant user auth still\n * flows through Lucern device login; tenant tools never receive platform Clerk\n * secrets.\n */\n\nimport { TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH } from \"./tenant-client.contract\";\n\nexport const INFISICAL_RUNTIME_CONTRACT_VERSION = \"2026-05-06\" as const;\n\nexport const INFISICAL_RUNTIME_DEFAULT_API_URL =\n \"https://app.infisical.com\" as const;\nexport const INFISICAL_RUNTIME_DEFAULT_PROJECT_ID =\n \"344b0526-90df-4606-ba50-22c647a36c65\" as const;\n\nexport const INFISICAL_RUNTIME_ENVIRONMENTS = [\n \"dev\",\n \"staging\",\n \"prod\",\n] as const;\nexport type InfisicalRuntimeEnvironment =\n (typeof INFISICAL_RUNTIME_ENVIRONMENTS)[number];\n\nexport const INFISICAL_RUNTIME_DELIVERY_MODES = [\n \"vercel_sync\",\n \"runtime_fetch\",\n \"device_auth\",\n] as const;\nexport type InfisicalRuntimeDeliveryMode =\n (typeof INFISICAL_RUNTIME_DELIVERY_MODES)[number];\n\nexport const INFISICAL_VERCEL_DESTINATION_ENVIRONMENTS = [\n \"development\",\n \"preview\",\n \"staging\",\n \"production\",\n] as const;\nexport type InfisicalVercelDestinationEnvironment =\n (typeof INFISICAL_VERCEL_DESTINATION_ENVIRONMENTS)[number];\n\nexport const INFISICAL_VERCEL_TARGETS = [\n \"development\",\n \"preview\",\n \"production\",\n] as const;\nexport type InfisicalVercelTarget = (typeof INFISICAL_VERCEL_TARGETS)[number];\n\nexport const INFISICAL_CONVEX_TIERS = [\"preprod\", \"prod\"] as const;\nexport type InfisicalConvexTier = (typeof INFISICAL_CONVEX_TIERS)[number];\n\nexport const INFISICAL_CONVEX_TIER_BY_VERCEL_ENVIRONMENT = {\n development: \"preprod\",\n preview: \"preprod\",\n staging: \"preprod\",\n production: \"prod\",\n} as const satisfies Record<\n InfisicalVercelDestinationEnvironment,\n InfisicalConvexTier\n>;\n\nexport type InfisicalVercelSyncDestination = {\n readonly environment: InfisicalVercelDestinationEnvironment;\n readonly vercelTarget: InfisicalVercelTarget;\n readonly convexTier: InfisicalConvexTier;\n readonly customEnvironmentSlug?: string;\n readonly customEnvironmentIdsByProjectName?: Readonly<Record<string, string>>;\n readonly domainsByProjectName?: Readonly<Record<string, string>>;\n};\n\nexport const INFISICAL_VERCEL_SYNC_RECONCILIATION = {\n sourceOfTruth: \"infisical\",\n writer: \"vercel_api\",\n disableSecretDeletion: false,\n pruneDestinationKeys: true,\n} as const;\n\nexport const INFISICAL_VERCEL_SYNC_DESTINATIONS = [\n {\n environment: \"development\",\n vercelTarget: \"development\",\n convexTier: \"preprod\",\n },\n {\n environment: \"preview\",\n vercelTarget: \"preview\",\n convexTier: \"preprod\",\n },\n {\n environment: \"staging\",\n vercelTarget: \"preview\",\n convexTier: \"preprod\",\n customEnvironmentSlug: \"staging\",\n customEnvironmentIdsByProjectName: {\n stackos: \"env_RbS0TYRRvWISTje8qR4u2lRg7TC8\",\n },\n domainsByProjectName: {\n stackos: \"staging.stack.vc\",\n },\n },\n {\n environment: \"production\",\n vercelTarget: \"production\",\n convexTier: \"prod\",\n },\n] as const satisfies readonly InfisicalVercelSyncDestination[];\n\nexport const INFISICAL_RUNTIME_SURFACE_IDS = [\n \"lucern-web\",\n \"lucern-gateway\",\n \"lucern-sdk\",\n \"lucern-cli\",\n \"lucern-mcp\",\n \"tenant-client\",\n] as const;\nexport type InfisicalRuntimeSurfaceId =\n (typeof INFISICAL_RUNTIME_SURFACE_IDS)[number];\n\nexport const INFISICAL_RUNTIME_BOOTSTRAP_ENV = {\n apiUrl: [\"INFISICAL_API_URL\", \"INFISICAL_URL\"],\n projectId: [\"INFISICAL_PROJECT_ID\", \"INFISICAL_WORKSPACE_ID\"],\n clientId: [\n \"INFISICAL_CLIENT_ID\",\n \"INFISICAL_MACHINE_CLIENT_ID\",\n \"INFISICAL_UNIVERSAL_AUTH_CLIENT_ID\",\n ],\n clientSecret: [\n \"INFISICAL_CLIENT_SECRET\",\n \"INFISICAL_MACHINE_CLIENT_SECRET\",\n \"INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET\",\n ],\n environment: [\"INFISICAL_ENV\", \"LUCERN_INFISICAL_ENV\"],\n organizationSlug: [\"INFISICAL_ORG_SLUG\", \"INFISICAL_ORGANIZATION_SLUG\"],\n disabled: [\"LUCERN_INFISICAL_DISABLE\", \"INFISICAL_DISABLE\"],\n} as const;\nexport type InfisicalRuntimeBootstrapEnv =\n typeof INFISICAL_RUNTIME_BOOTSTRAP_ENV;\n\nexport const INFISICAL_RUNTIME_CONTROL_ENV = [\n {\n name: \"NODE_ENV\",\n category: \"framework\",\n description:\n \"Node/Next runtime mode. Framework-owned, not written by Infisical.\",\n },\n {\n name: \"CI\",\n category: \"ci\",\n description:\n \"CI execution signal. Workflow-owned, not written by Infisical.\",\n },\n {\n name: \"VERCEL\",\n category: \"vercel\",\n description:\n \"Vercel runtime signal. Platform-owned, not written by Infisical.\",\n },\n {\n name: \"VERCEL_ENV\",\n category: \"vercel\",\n description:\n \"Vercel environment label used for build/runtime selection.\",\n },\n {\n name: \"VERCEL_URL\",\n category: \"vercel\",\n description:\n \"Vercel deployment URL supplied by Vercel for previews and builds.\",\n },\n {\n name: \"VERCEL_GIT_COMMIT_SHA\",\n category: \"vercel\",\n description:\n \"Vercel git metadata used for release labels. Platform-owned, not written by Infisical.\",\n },\n {\n name: \"NEXT_RUNTIME\",\n category: \"nextjs\",\n description:\n \"Next.js runtime selector for node/edge instrumentation modules.\",\n },\n {\n name: \"PORT\",\n category: \"framework\",\n description:\n \"Local/server port supplied by the runtime process manager.\",\n },\n {\n name: \"HOST\",\n category: \"framework\",\n description:\n \"Local/server host supplied by the runtime process manager.\",\n },\n {\n name: \"APP_URL\",\n category: \"compatibility\",\n description:\n \"Legacy local app URL fallback. Prefer LUCERN_LOGIN_BASE_URL or LUCERN_API_URL.\",\n },\n {\n name: \"NEXT_PUBLIC_APP_URL\",\n category: \"compatibility\",\n description:\n \"Legacy public app URL fallback. Prefer LUCERN_LOGIN_BASE_URL or LUCERN_API_URL.\",\n },\n {\n name: \"CLAUDE_PROJECT_DIR\",\n category: \"agent_local\",\n description:\n \"Local agent workspace hint. Agent-runtime-owned, not written by Infisical.\",\n },\n {\n name: \"HOME\",\n category: \"os\",\n description:\n \"Operating-system home directory used only for local credential discovery.\",\n },\n {\n name: \"USERPROFILE\",\n category: \"os\",\n description:\n \"Windows home directory used only for local credential discovery.\",\n },\n] as const;\nexport type InfisicalRuntimeControlEnv =\n (typeof INFISICAL_RUNTIME_CONTROL_ENV)[number];\n\nexport type InfisicalRuntimeVariable = {\n readonly name: string;\n readonly required: boolean;\n readonly secret: boolean;\n readonly public: boolean;\n readonly aliases?: readonly string[];\n readonly description: string;\n};\n\nexport type InfisicalRuntimePathDefinition = {\n readonly id: string;\n readonly secretPath: string;\n readonly description: string;\n readonly variables: readonly InfisicalRuntimeVariable[];\n};\n\nexport const INFISICAL_RUNTIME_PATHS = [\n {\n id: \"platform-auth\",\n secretPath: \"/platform/auth\",\n description:\n \"Lucern platform authentication secrets. Synced into Vercel web/gateway projects; never distributed to tenant tools.\",\n variables: [\n {\n name: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n required: true,\n secret: false,\n public: true,\n description: \"Clerk publishable key for the Lucern web origin.\",\n },\n {\n name: \"CLERK_SECRET_KEY\",\n required: true,\n secret: true,\n public: false,\n description: \"Clerk backend secret key for Lucern server runtimes.\",\n },\n {\n name: \"CLERK_JWT_ISSUER_DOMAIN\",\n required: false,\n secret: false,\n public: false,\n description: \"Expected Clerk issuer/JWKS domain for JWT verification.\",\n },\n {\n name: \"NEXT_PUBLIC_CLERK_SIGN_IN_URL\",\n required: false,\n secret: false,\n public: true,\n description: \"Public sign-in URL for Lucern-owned web flows.\",\n },\n {\n name: \"NEXT_PUBLIC_CLERK_SIGN_UP_URL\",\n required: false,\n secret: false,\n public: true,\n description: \"Public sign-up URL for Lucern-owned web flows.\",\n },\n ],\n },\n {\n id: \"platform-runtime\",\n secretPath: \"/platform/runtime\",\n description:\n \"Runtime defaults shared by server-side Lucern clients and operator tooling.\",\n variables: [\n {\n name: \"LUCERN_API_URL\",\n required: true,\n secret: false,\n public: false,\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_BASE_URL\"],\n description: \"Canonical Lucern API gateway URL.\",\n },\n {\n name: \"LUCERN_LOGIN_BASE_URL\",\n required: false,\n secret: false,\n public: false,\n aliases: [\"LUCERN_AUTH_BASE_URL\"],\n description: \"Browser login origin used when it differs from the API.\",\n },\n {\n name: \"LUCERN_ENVIRONMENT\",\n required: false,\n secret: false,\n public: false,\n aliases: [\"LUCERN_ENV\"],\n description: \"Lucern environment label consumed by CLI profiles.\",\n },\n {\n name: \"LUCERN_CLI_SESSION_TTL_MS\",\n required: false,\n secret: false,\n public: false,\n description:\n \"Optional web-issued CLI login session lifetime override in milliseconds.\",\n },\n ],\n },\n {\n id: \"tenant-shared-install\",\n secretPath: TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH,\n description:\n \"Tenant package-install secrets. This is install-only and distinct from platform publish credentials.\",\n variables: [\n {\n name: \"INSTALL_LUCERN_NPM\",\n required: true,\n secret: true,\n public: false,\n description:\n \"Read-only install token for the published @lucern/* suite.\",\n },\n ],\n },\n] as const satisfies readonly InfisicalRuntimePathDefinition[];\nexport type InfisicalRuntimePath = (typeof INFISICAL_RUNTIME_PATHS)[number];\nexport type InfisicalRuntimePathId = InfisicalRuntimePath[\"id\"];\n\nexport type InfisicalRuntimeSurfaceDefinition = {\n readonly id: InfisicalRuntimeSurfaceId;\n readonly packageName?: string;\n readonly delivery: InfisicalRuntimeDeliveryMode;\n readonly fallback?: InfisicalRuntimeDeliveryMode;\n readonly sourcePathIds: readonly InfisicalRuntimePathId[];\n readonly consumer: string;\n readonly description: string;\n};\n\nexport const INFISICAL_RUNTIME_SURFACES = [\n {\n id: \"lucern-web\",\n delivery: \"vercel_sync\",\n sourcePathIds: [\"platform-auth\", \"platform-runtime\"],\n consumer: \"apps/web on Vercel project lucern\",\n description:\n \"Lucern web consumes Clerk and runtime config via Infisical-to-Vercel syncs.\",\n },\n {\n id: \"lucern-gateway\",\n delivery: \"vercel_sync\",\n fallback: \"runtime_fetch\",\n sourcePathIds: [\"platform-auth\", \"platform-runtime\"],\n consumer: \"apps/gateway on Vercel project lucern-gateway\",\n description:\n \"Lucern gateway consumes platform config via Infisical-to-Vercel syncs and may self-hydrate from Infisical when the host environment has scoped bootstrap credentials.\",\n },\n {\n id: \"lucern-sdk\",\n packageName: \"@lucern/sdk\",\n delivery: \"runtime_fetch\",\n sourcePathIds: [\"platform-runtime\"],\n consumer:\n \"server-side SDK operator contexts with a scoped Infisical identity\",\n description:\n \"SDK exposes the runtime Infisical resolver used by clients that have machine identity credentials.\",\n },\n {\n id: \"lucern-cli\",\n packageName: \"@lucern/cli\",\n delivery: \"runtime_fetch\",\n fallback: \"device_auth\",\n sourcePathIds: [\"platform-runtime\"],\n consumer: \"developer/operator CLI processes\",\n description:\n \"CLI hydrates runtime defaults from Infisical when configured, then authenticates users through Lucern device login.\",\n },\n {\n id: \"lucern-mcp\",\n packageName: \"@lucern/mcp\",\n delivery: \"runtime_fetch\",\n fallback: \"device_auth\",\n sourcePathIds: [\"platform-runtime\"],\n consumer: \"MCP server/client processes\",\n description:\n \"MCP hydrates runtime defaults through the SDK resolver and remains a Lucern client, not a platform secret owner.\",\n },\n {\n id: \"tenant-client\",\n delivery: \"device_auth\",\n sourcePathIds: [\"tenant-shared-install\"],\n consumer: \"tenant-owned apps and coding agents\",\n description:\n \"Tenant clients install the published packages and receive user/service credentials through Lucern auth surfaces.\",\n },\n] as const satisfies readonly InfisicalRuntimeSurfaceDefinition[];\nexport type InfisicalRuntimeSurface =\n (typeof INFISICAL_RUNTIME_SURFACES)[number];\n\nexport type InfisicalTenantSoftwareSystemDefinition = {\n readonly id: string;\n readonly tenantKey: string;\n readonly workspaceKey: string;\n readonly vercelProjectName: string;\n readonly vercelTeamId: string;\n readonly vercelProjectId: string;\n readonly repository: {\n readonly owner: string;\n readonly name: string;\n };\n readonly sharedSourcePath: string;\n readonly sharedVariablePolicy: \"tenant_shared_all_systems\";\n readonly convex: {\n readonly urlEnv: string;\n readonly deployKeyEnv: string;\n readonly preprodDeployment: string;\n readonly prodDeployment: string;\n };\n};\n\nexport const INFISICAL_TENANT_SOFTWARE_SYSTEMS = [\n {\n id: \"stack-frontend\",\n tenantKey: \"stack\",\n workspaceKey: \"frontend\",\n vercelProjectName: \"ai-chatbot-diao\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_PihFw8kohSSw14nZs9YQV3xVo517\",\n repository: {\n owner: \"stack-vc\",\n name: \"front-end\",\n },\n sharedSourcePath: \"/tenants/stack\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_FRONTEND_URL\",\n deployKeyEnv: \"CONVEX_FRONTEND_DEPLOY_KEY\",\n preprodDeployment: \"rugged-lobster-664\",\n prodDeployment: \"wonderful-toucan-0\",\n },\n },\n {\n id: \"stackos\",\n tenantKey: \"stack\",\n workspaceKey: \"stackos\",\n vercelProjectName: \"stackos\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_rXLAL0Z6v9p1fasKbomby6GI7kau\",\n repository: {\n owner: \"stack-vc\",\n name: \"stackos\",\n },\n sharedSourcePath: \"/tenants/stack\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_STACKOS_URL\",\n deployKeyEnv: \"CONVEX_STACKOS_DEPLOY_KEY\",\n preprodDeployment: \"giant-mandrill-761\",\n prodDeployment: \"good-snake-515\",\n },\n },\n {\n id: \"stack-eng\",\n tenantKey: \"stack\",\n workspaceKey: \"engineering\",\n vercelProjectName: \"stackos-engineering-graph\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_zAU0Zn9GkbHjHI63dxW4vLpmoqTJ\",\n repository: {\n owner: \"stack-vc\",\n name: \"stackos-engineering-graph\",\n },\n sharedSourcePath: \"/tenants/stack/engineering\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_STACK_ENG_URL\",\n deployKeyEnv: \"CONVEX_STACK_ENG_DEPLOY_KEY\",\n preprodDeployment: \"small-oyster-270\",\n prodDeployment: \"bold-cuttlefish-804\",\n },\n },\n {\n id: \"lucern-graph\",\n tenantKey: \"lucern\",\n workspaceKey: \"lucern\",\n vercelProjectName: \"lucern-graph\",\n vercelTeamId: \"team_vTHxxs8GAoAFUe6RWMlYt7fY\",\n vercelProjectId: \"prj_KJ8EKV8vGM5xURpqmwTwmECEGPgQ\",\n repository: {\n owner: \"LucernAI\",\n name: \"lucern-graph\",\n },\n sharedSourcePath: \"/tenants/lucern/shared\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_LUCERN_URL\",\n deployKeyEnv: \"CONVEX_LUCERN_DEPLOY_KEY\",\n preprodDeployment: \"good-blackbird-774\",\n prodDeployment: \"precious-dog-365\",\n },\n },\n] as const satisfies readonly InfisicalTenantSoftwareSystemDefinition[];\nexport type InfisicalTenantSoftwareSystem =\n (typeof INFISICAL_TENANT_SOFTWARE_SYSTEMS)[number];\nexport type InfisicalTenantSoftwareSystemId =\n InfisicalTenantSoftwareSystem[\"id\"];\n\nexport function findInfisicalTenantSoftwareSystem(\n systemId: InfisicalTenantSoftwareSystemId,\n): InfisicalTenantSoftwareSystem | undefined {\n return INFISICAL_TENANT_SOFTWARE_SYSTEMS.find(\n (system) => system.id === systemId,\n );\n}\n\nexport function tenantSoftwareSystemConvexEnvNames(\n systemId: InfisicalTenantSoftwareSystemId,\n): readonly [string, string] {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n if (!system) {\n throw new Error(`Unknown tenant software system: ${systemId}.`);\n }\n return [system.convex.urlEnv, system.convex.deployKeyEnv] as const;\n}\n\nexport function tenantSoftwareSystemOwnsConvexEnvName(\n systemId: InfisicalTenantSoftwareSystemId,\n envName: string,\n): boolean {\n return tenantSoftwareSystemConvexEnvNames(systemId).includes(envName);\n}\n\nexport function convexTierForVercelDestinationEnvironment(\n environment: InfisicalVercelDestinationEnvironment,\n): InfisicalConvexTier {\n return INFISICAL_CONVEX_TIER_BY_VERCEL_ENVIRONMENT[environment];\n}\n\nexport function findInfisicalVercelSyncDestination(\n environment: InfisicalVercelDestinationEnvironment,\n): InfisicalVercelSyncDestination | undefined {\n return INFISICAL_VERCEL_SYNC_DESTINATIONS.find(\n (destination) => destination.environment === environment,\n );\n}\n\nexport function vercelCustomEnvironmentIdForTenantSoftwareSystem(\n systemId: InfisicalTenantSoftwareSystemId,\n environment: InfisicalVercelDestinationEnvironment,\n): string | undefined {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n const destination = findInfisicalVercelSyncDestination(environment);\n if (!system || !destination) {\n return undefined;\n }\n return destination.customEnvironmentIdsByProjectName?.[\n system.vercelProjectName\n ];\n}\n\nexport function expectedTenantConvexDeploymentForVercelEnvironment(\n systemId: InfisicalTenantSoftwareSystemId,\n environment: InfisicalVercelDestinationEnvironment,\n): string {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n if (!system) {\n throw new Error(`Unknown tenant software system: ${systemId}.`);\n }\n return convexTierForVercelDestinationEnvironment(environment) === \"prod\"\n ? system.convex.prodDeployment\n : system.convex.preprodDeployment;\n}\n\nexport function findInfisicalRuntimePath(\n pathId: InfisicalRuntimePathId,\n): InfisicalRuntimePath | undefined {\n return INFISICAL_RUNTIME_PATHS.find((path) => path.id === pathId);\n}\n\nexport function findInfisicalRuntimeSurface(\n surfaceId: InfisicalRuntimeSurfaceId,\n): InfisicalRuntimeSurface | undefined {\n return INFISICAL_RUNTIME_SURFACES.find((surface) => surface.id === surfaceId);\n}\n\nexport const INFISICAL_SECRET_OWNERS = [\n \"lucern_platform\",\n \"tenant\",\n \"provider\",\n \"operator_local\",\n] as const;\nexport type InfisicalSecretOwner = (typeof INFISICAL_SECRET_OWNERS)[number];\n\nexport const INFISICAL_SECRET_SCOPES = [\n \"global\",\n \"environment\",\n \"tenant\",\n \"workspace\",\n \"software_system\",\n \"deployment\",\n \"local\",\n] as const;\nexport type InfisicalSecretScope = (typeof INFISICAL_SECRET_SCOPES)[number];\n\nexport const INFISICAL_SECRET_ENVIRONMENT_POLICIES = [\n \"same_all_environments\",\n \"environment_specific\",\n \"preprod_staging_prod_prod\",\n \"local_only\",\n] as const;\nexport type InfisicalSecretEnvironmentPolicy =\n (typeof INFISICAL_SECRET_ENVIRONMENT_POLICIES)[number];\n\nexport const INFISICAL_SECRET_CONSUMERS = [\n \"lucern-web\",\n \"lucern-gateway\",\n \"lucern-mcp\",\n \"lucern-cli\",\n \"lucern-ai-runtime\",\n \"lucern-graph-sync\",\n \"lucern-observability\",\n \"lucern-repo-ci\",\n \"mc-convex\",\n \"mc-operator-tooling\",\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-ai-runtime\",\n \"tenant-graph-sync\",\n \"tenant-observability\",\n \"tenant-vector-store\",\n \"tenant-deploy-tooling\",\n \"tenant-agent-runtime\",\n] as const;\nexport type InfisicalSecretConsumer = (typeof INFISICAL_SECRET_CONSUMERS)[number];\n\nexport const INFISICAL_SECRET_DESTINATION_KINDS = [\n \"vercel\",\n \"convex\",\n \"github_actions\",\n \"runtime_fetch\",\n \"operator_local\",\n] as const;\nexport type InfisicalSecretDestinationKind =\n (typeof INFISICAL_SECRET_DESTINATION_KINDS)[number];\n\nexport type InfisicalSecretDestination = {\n readonly kind: InfisicalSecretDestinationKind;\n readonly target: string;\n readonly environmentPolicy: InfisicalSecretEnvironmentPolicy;\n readonly writeNames?: readonly string[];\n readonly notes?: string;\n};\n\nexport type InfisicalSecretDefinition = {\n readonly id: string;\n readonly canonicalName: string;\n readonly aliases?: readonly string[];\n readonly owner: InfisicalSecretOwner;\n readonly scope: InfisicalSecretScope;\n readonly sourcePath: string;\n readonly environmentPolicy: InfisicalSecretEnvironmentPolicy;\n readonly required: boolean;\n readonly secret: boolean;\n readonly public: boolean;\n readonly consumers: readonly InfisicalSecretConsumer[];\n readonly destinations: readonly InfisicalSecretDestination[];\n readonly description: string;\n};\n\nconst PLATFORM_SECRET_DEFINITIONS = [\n {\n id: \"platform.clerk.publishable\",\n canonicalName: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n aliases: [\"CLERK_PUBLISHABLE_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: true,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk browser key for platform web, gateway, and hosted MCP OAuth flows.\",\n },\n {\n id: \"platform.clerk.secret\",\n canonicalName: \"CLERK_SECRET_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk backend secret. Never route to tenant-owned apps unless that tenant is Lucern itself.\",\n },\n {\n id: \"platform.clerk.project\",\n canonicalName: \"CLERK_PROJECT_ID\",\n aliases: [\"LUCERN_CLERK_PROJECT_ID\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-convex\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Lucern Clerk project identifier used when MC resolves Clerk identities.\",\n },\n {\n id: \"platform.clerk.webhook-secret\",\n canonicalName: \"LUCERN_CLERK_WEBHOOK_SECRET\",\n aliases: [\"CLERK_WEBHOOK_SECRET\", \"CLERK_WEBHOOK_SIGNING_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk/Svix webhook signing secret used by the gateway to verify Clerk identity and organization events before projecting them into Permit.\",\n },\n {\n id: \"platform.clerk.jwks\",\n canonicalName: \"CLERK_JWKS_URL\",\n aliases: [\"CLERK_JWT_ISSUER_DOMAIN\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-mcp\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Optional Clerk JWKS/issuer override for server-side token verification.\",\n },\n {\n id: \"platform.runtime.api-base-url\",\n canonicalName: \"LUCERN_API_URL\",\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_BASE_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Lucern API gateway base URL. Older names remain aliases only.\",\n },\n {\n id: \"platform.runtime.login-base-url\",\n canonicalName: \"LUCERN_LOGIN_BASE_URL\",\n aliases: [\"LUCERN_AUTH_BASE_URL\", \"LUCERN_WEB_BASE_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Browser login origin used when device/OAuth login is not served by the API base URL.\",\n },\n {\n id: \"platform.runtime.environment\",\n canonicalName: \"LUCERN_ENVIRONMENT\",\n aliases: [\"LUCERN_ENV\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern runtime environment label.\",\n },\n {\n id: \"platform.runtime.require-deployment-host-registry\",\n canonicalName: \"LUCERN_REQUIRE_DEPLOYMENT_HOST_REGISTRY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Fail-closed gateway toggle that requires MC deployment host registry resolution before routing.\",\n },\n {\n id: \"platform.mc.convex-url\",\n canonicalName: \"CONVEX_MC_URL\",\n aliases: [\n \"CONVEX_MC_PROD_URL\",\n \"LUCERN_ADMIN_CONVEX_URL\",\n \"LUCERN_CONVEX_URL\",\n \"MC_CONVEX_URL\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Master Control Convex URL. Prod must point to successful-clam-833; dev/staging to utmost-ox-403.\",\n },\n {\n id: \"platform.mc.convex-deploy-key\",\n canonicalName: \"CONVEX_MC_DEPLOY_KEY\",\n aliases: [\n \"CONVEX_MC_PROD_DEPLOY_KEY\",\n \"LUCERN_ADMIN_DEPLOY_KEY\",\n \"LUCERN_DEPLOY_KEY\",\n \"MC_DEPLOY_KEY\",\n \"MC_PROD_DEPLOY_KEY\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Master Control deploy/admin key. Never route to tenant Vercel projects or tenant Convex deployments.\",\n },\n {\n id: \"platform.mc.session-token-secret\",\n canonicalName: \"LUCERN_SESSION_TOKEN_SECRET\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-mcp\", \"mc-convex\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Signs Lucern platform session/delegation tokens. This is platform-owned, not tenant-owned.\",\n },\n {\n id: \"platform.mc.tenant-secret-encryption-key\",\n canonicalName: \"LUCERN_TENANT_SECRET_ENCRYPTION_KEY\",\n aliases: [\"LUCERN_SESSION_TOKEN_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"mc-credential-maintenance\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Encrypts tenant deployment credentials stored in MC. Session-token fallback is legacy only.\",\n },\n {\n id: \"platform.permit.api-key\",\n canonicalName: \"LUCERN_PERMIT_API_KEY\",\n aliases: [\"PERMIT_API_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Permit.io API key used for MC sync and policy checks. Must fail closed if missing.\",\n },\n {\n id: \"platform.permit.webhook-secret\",\n canonicalName: \"LUCERN_PERMIT_WEBHOOK_SECRET\",\n aliases: [\"PERMIT_WEBHOOK_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"lucern-gateway\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"mc-credential-maintenance\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Permit.io webhook secret used by gateway and MC webhook handlers. Must fail closed if missing.\",\n },\n {\n id: \"platform.permit.pdp-url\",\n canonicalName: \"LUCERN_PERMIT_PDP_URL\",\n aliases: [\"PERMIT_PDP_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional Permit PDP URL override.\",\n },\n {\n id: \"platform.permit.api-url\",\n canonicalName: \"LUCERN_PERMIT_API_URL\",\n aliases: [\"PERMIT_API_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional Permit API URL override.\",\n },\n {\n id: \"platform.ci.infisical-bootstrap-client-id\",\n canonicalName: \"INFISICAL_BOOTSTRAP_CLIENT_ID\",\n aliases: [\"INFISICAL_CI_CLIENT_ID\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/ci\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Machine identity client id used by CI to reconcile Infisical desired state.\",\n },\n {\n id: \"platform.ci.infisical-bootstrap-client-secret\",\n canonicalName: \"INFISICAL_BOOTSTRAP_CLIENT_SECRET\",\n aliases: [\"INFISICAL_CI_CLIENT_SECRET\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/ci\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Machine identity client secret used by CI to reconcile Infisical desired state.\",\n },\n {\n id: \"platform.publish.npm-token\",\n canonicalName: \"NPM_TOKEN\",\n aliases: [\"NODE_AUTH_TOKEN\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/publish\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Package publish/install token for @lucern/* release automation.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_AI_SECRET_DEFINITIONS = [\n {\n id: \"platform.ai.openai-api-key\",\n canonicalName: \"OPENAI_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned OpenAI key for platform AI jobs, benchmarks, and controlled operator automation.\",\n },\n {\n id: \"platform.ai.anthropic-api-key\",\n canonicalName: \"ANTHROPIC_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Anthropic key for platform AI jobs, benchmarks, and controlled operator automation.\",\n },\n {\n id: \"platform.ai.gemini-api-key\",\n canonicalName: \"GEMINI_API_KEY\",\n aliases: [\"GOOGLE_AI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Google/Gemini key. Google alias names are read compatibility only.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_LANGFUSE_SECRET_DEFINITIONS = [\n {\n id: \"platform.langfuse.secret-key\",\n canonicalName: \"LANGFUSE_SECRET_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Langfuse secret key for prompt sync, prompt reads, and AI tracing.\",\n },\n {\n id: \"platform.langfuse.public-key\",\n canonicalName: \"LANGFUSE_PUBLIC_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Langfuse public key paired with LANGFUSE_SECRET_KEY.\",\n },\n {\n id: \"platform.langfuse.base-url\",\n canonicalName: \"LANGFUSE_BASE_URL\",\n aliases: [\"LANGFUSE_BASEURL\", \"LANGFUSE_HOST\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Langfuse API origin. BASEURL/HOST are compatibility aliases.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_GRAPH_STORE_SECRET_DEFINITIONS = [\n {\n id: \"platform.neo4j.uri\",\n canonicalName: \"NEO4J_URI\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Neo4j URI for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_USERNAME\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Neo4j username for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.password\",\n canonicalName: \"NEO4J_PASSWORD\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Neo4j password for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Shared secret protecting Lucern-owned graph-sync HTTP/query proxy calls.\",\n },\n {\n id: \"platform.neo4j.database\",\n canonicalName: \"NEO4J_DATABASE\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Optional Neo4j database name for Lucern-owned graph-sync surfaces.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_VECTOR_STORE_SECRET_DEFINITIONS = [\n {\n id: \"platform.pinecone.api-key\",\n canonicalName: \"PINECONE_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone API key for platform vector search.\",\n },\n {\n id: \"platform.pinecone.index-name\",\n canonicalName: \"PINECONE_INDEX_NAME\",\n aliases: [\"PINECONE_INDEX\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone index name.\",\n },\n {\n id: \"platform.pinecone.host\",\n canonicalName: \"PINECONE_HOST\",\n aliases: [\"PINECONE_INDEX_HOST\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone host/index host.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_SENTRY_SECRET_DEFINITIONS = [\n {\n id: \"platform.sentry.dsn\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_DSN\",\n aliases: [\"SENTRY_DSN\", \"NEXT_PUBLIC_SENTRY_DSN_NEXTJS\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry DSN for browser/server error telemetry.\",\n },\n {\n id: \"platform.sentry.auth-token\",\n canonicalName: \"SENTRY_AUTH_TOKEN\",\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Sentry release-upload token. Runtime services must not use it for authorization.\",\n },\n {\n id: \"platform.sentry.org\",\n canonicalName: \"SENTRY_ORG\",\n aliases: [\"SENTRY_ORG_SLUG\"],\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Sentry organization slug for Lucern release uploads.\",\n },\n {\n id: \"platform.sentry.project\",\n canonicalName: \"SENTRY_PROJECT\",\n aliases: [\"SENTRY_PROJECT_NEXTJS\"],\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Sentry project slug for Lucern release uploads.\",\n },\n {\n id: \"platform.sentry.environment\",\n canonicalName: \"SENTRY_ENVIRONMENT\",\n aliases: [\"NEXT_PUBLIC_SENTRY_ENVIRONMENT\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n writeNames: [\"SENTRY_ENVIRONMENT\", \"NEXT_PUBLIC_SENTRY_ENVIRONMENT\"],\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry environment label.\",\n },\n {\n id: \"platform.sentry.release\",\n canonicalName: \"SENTRY_RELEASE\",\n aliases: [\"NEXT_PUBLIC_SENTRY_RELEASE\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n writeNames: [\"SENTRY_RELEASE\", \"NEXT_PUBLIC_SENTRY_RELEASE\"],\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry release name.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_DEPLOY_AUTOMATION_SECRET_DEFINITIONS = [\n {\n id: \"platform.deploy.vercel-token\",\n canonicalName: \"VERCEL_TOKEN\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Vercel API token for the future reviewed live writer. Never copy into tenant apps.\",\n },\n {\n id: \"platform.deploy.vercel-org-id\",\n canonicalName: \"VERCEL_ORG_ID\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Vercel team/org id used by deployment and sync automation.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_LOCAL_OPERATOR_CONFIG_SECRET_DEFINITIONS = [\n {\n id: \"platform.docs.gap-audit-api-key\",\n canonicalName: \"DOC_GAP_AUDIT_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional model key for docs gap audits.\",\n },\n {\n id: \"platform.docs.gap-audit-provider\",\n canonicalName: \"DOC_GAP_AUDIT_PROVIDER\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional docs gap audit provider selector.\",\n },\n {\n id: \"platform.docs.gap-audit-model\",\n canonicalName: \"DOC_GAP_AUDIT_MODEL\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional docs gap audit model selector.\",\n },\n {\n id: \"platform.infisical.local-cli\",\n canonicalName: \"INFISICAL_BIN\",\n aliases: [\"INFISICAL_API_URL\", \"INFISICAL_URL\"],\n owner: \"lucern_platform\",\n scope: \"global\",\n sourcePath: \"/platform/infisical\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Operator-only Infisical CLI/API location knobs. Machine credentials are handled by the bootstrap contract.\",\n },\n {\n id: \"platform.gateway.device-verification-base-url\",\n canonicalName: \"LUCERN_DEVICE_VERIFICATION_BASE_URL\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Base URL shown during Lucern CLI/device authentication.\",\n },\n {\n id: \"platform.gateway.mode\",\n canonicalName: \"LUCERN_GATEWAY_MODE\",\n aliases: [\"LUCERN_GATEWAY_ENV\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Gateway runtime mode/environment label.\",\n },\n {\n id: \"platform.mcp.runtime\",\n canonicalName: \"LUCERN_MCP_URL\",\n aliases: [\n \"LUCERN_AGENT_IDENTITY\",\n \"LUCERN_HTTP_HOST\",\n \"LUCERN_HTTP_PORT\",\n \"LUCERN_MCP_ALLOW_API_KEY_PASSTHROUGH\",\n \"LUCERN_MCP_DEBUG\",\n \"LUCERN_MCP_DIAGNOSTICS_FILE\",\n \"LUCERN_MCP_HEALTH_PATH\",\n \"LUCERN_MCP_HEALTH_URL\",\n \"LUCERN_MCP_HOST\",\n \"LUCERN_MCP_PATH\",\n \"LUCERN_MCP_PORT\",\n \"LUCERN_MCP_QUIET\",\n \"LUCERN_MCP_TRANSPORT\",\n \"LUCERN_PROFILE\",\n \"LUCERN_PUBLIC_URL\",\n \"MCP_SERVER_URL\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-cli\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern MCP/CLI runtime knobs. Aliases are compatibility names and not Vercel write names.\",\n },\n {\n id: \"platform.mcp.auth-token\",\n canonicalName: \"LUCERN_MCP_SERVER_AUTH_TOKEN\",\n aliases: [\"LUCERN_USER_TOKEN\", \"MCP_SERVER_TOKEN\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-cli\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Local/hosted MCP auth token material. Tenant apps must use MC/API-key sessions instead.\",\n },\n {\n id: \"platform.graph-sync.proxy\",\n canonicalName: \"LUCERN_GRAPH_SYNC_QUERY_BASE_URL\",\n aliases: [\n \"LUCERN_DEFAULT_TENANT_ID\",\n \"LUCERN_GRAPH_SYNC_ALLOWED_PROXY_HOSTS\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Graph-sync proxy URL, tenant filter, and allowed host list.\",\n },\n {\n id: \"platform.package-smoke.local\",\n canonicalName: \"LUCERN_SDK_NPM_TOKEN\",\n aliases: [\n \"LUCERN_KERNEL_INSTALL_SPEC\",\n \"LUCERN_KERNEL_KEEP_CLEANROOM\",\n \"LUCERN_KERNEL_LOCAL_TARBALL\",\n \"LUCERN_KERNEL_NPM_TOKEN\",\n \"LUCERN_KERNEL_SCOPE_REGISTRY\",\n \"LUCERN_KERNEL_SKIP_CONVEX\",\n \"LUCERN_SDK_INSTALL_SPEC\",\n \"LUCERN_SDK_KEEP_CLEANROOM\",\n \"LUCERN_SDK_LOCAL_TARBALL\",\n \"LUCERN_SDK_SCOPE_REGISTRY\",\n \"LUCERN_SDK_SKIP_LIVE\",\n ],\n owner: \"lucern_platform\",\n scope: \"global\",\n sourcePath: \"/platform/package-publish\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Private package install smoke-test knobs. Values are not tenant runtime variables.\",\n },\n {\n id: \"platform.convex-deploy.local-names\",\n canonicalName: \"LUCERN_CONVEX_DEPLOYMENT_NAME\",\n aliases: [\n \"CONVEX_DEPLOYMENT\",\n \"CONVEX_DEV_DEPLOYMENT_NAME\",\n \"CONVEX_PROD_DEPLOYMENT_NAME\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/deploy/convex\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Operator-only Convex deployment name hints. Deploy keys and URLs remain separately scoped.\",\n },\n {\n id: \"platform.sdk.local-context\",\n canonicalName: \"LUCERN_TENANT_ID\",\n aliases: [\n \"LUCERN_AGENT_DISPLAY_NAME\",\n \"LUCERN_AGENT_ID\",\n \"LUCERN_API_ENVIRONMENT\",\n \"LUCERN_PACK_KEY\",\n \"LUCERN_PROJECT_ID\",\n \"LUCERN_TOPIC_ID\",\n \"LUCERN_WORKSPACE_ID\",\n \"LUCERN_WORKTREE_ID\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-cli\", \"lucern-mcp\", \"tenant-agent-runtime\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"SDK, CLI, and agent context selectors. These identify scope and must not grant access by themselves.\",\n },\n {\n id: \"platform.debug.local-flags\",\n canonicalName: \"LUCERN_FUNCTIONAL_DEBUG\",\n aliases: [\n \"LUCERN_CONTRACTS_SKIP_DTS\",\n \"LUCERN_DEPLOY_RECONCILIATION_DEBUG\",\n \"LUCERN_ENABLE_ADAPTIVE_LEARNING\",\n \"LUCERN_ENV_FILE\",\n \"LUCERN_EXAMPLE_DEBUG\",\n \"LUCERN_HTTP_SMOKE_DEBUG\",\n \"LUCERN_MULTI_TENANT\",\n \"LUCERN_PACK_ACTION_DEBUG\",\n \"LUCERN_RUN_LIVE_MCP\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime/debug\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Local or CI debug toggles. They are manifest-known but not tenant runtime secrets.\",\n },\n {\n id: \"tenant.stackos.deploy-guard.local\",\n canonicalName: \"STACKOS_DEPLOY_TARGET\",\n aliases: [\n \"STACKOS_DEPLOY_ENTRYPOINT\",\n \"STACKOS_EXPECTED_STAGING_COMMIT\",\n \"STACKOS_PROD_CUTOVER_APPROVED\",\n \"STACKOS_REPO_PATH\",\n \"STACKOS_REQUIRE_CHAT_RUNTIME\",\n \"STACKOS_SLOP_SCAN_BASELINE\",\n \"STACKOS_STAGING_API_KEY\",\n \"STACKOS_STAGING_BASE_URL\",\n \"STACK_DEPLOY_RECONCILIATION_SCHEMA_JSON\",\n ],\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: \"/tenants/stack\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"stackos-deploy-guard\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"StackOS deploy/test guard variables. These are not written into the StackOS Vercel runtime.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst TENANT_SHARED_SECRET_DEFINITION_TEMPLATES = [\n {\n idSuffix: \"clerk.publishable\",\n canonicalName: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n aliases: [\"CLERK_PUBLISHABLE_KEY\"],\n required: true,\n secret: false,\n public: true,\n description:\n \"Tenant-owned Clerk browser key. For Stack this is the master clerk.stack.vc project shared by front-end, StackOS, and the engineering workspace.\",\n },\n {\n idSuffix: \"clerk.secret\",\n canonicalName: \"CLERK_SECRET_KEY\",\n required: true,\n secret: true,\n public: false,\n description:\n \"Tenant-owned Clerk backend secret used only by that tenant's server runtimes.\",\n },\n {\n idSuffix: \"clerk.project\",\n canonicalName: \"CLERK_PROJECT_ID\",\n required: true,\n secret: false,\n public: false,\n description:\n \"Tenant-owned Clerk project id used to resolve canonical Clerk aliases.\",\n },\n {\n idSuffix: \"clerk.jwks\",\n canonicalName: \"CLERK_JWT_ISSUER_DOMAIN\",\n aliases: [\"CLERK_ISSUER_URL\", \"CLERK_JWKS_URL\"],\n required: false,\n secret: false,\n public: false,\n description:\n \"Tenant Clerk issuer/JWKS URL consumed by Convex auth.config.ts.\",\n },\n {\n idSuffix: \"clerk.jwt-key\",\n canonicalName: \"CLERK_JWT_KEY\",\n required: false,\n secret: true,\n public: false,\n description:\n \"Tenant Clerk JWT public verification key used by bearer-token API routes.\",\n },\n {\n idSuffix: \"clerk.authorized-parties\",\n canonicalName: \"CLERK_AUTHORIZED_PARTIES\",\n aliases: [\"CLERK_MOBILE_AUTHORIZED_PARTIES\"],\n required: false,\n secret: false,\n public: false,\n description:\n \"Comma-separated Clerk authorized parties for browser and mobile bearer-token validation.\",\n },\n {\n idSuffix: \"clerk.sign-in-url\",\n canonicalName: \"NEXT_PUBLIC_CLERK_SIGN_IN_URL\",\n required: false,\n secret: false,\n public: true,\n description:\n \"Tenant Clerk sign-in route for custom app login surfaces.\",\n },\n {\n idSuffix: \"clerk.sign-up-url\",\n canonicalName: \"NEXT_PUBLIC_CLERK_SIGN_UP_URL\",\n required: false,\n secret: false,\n public: true,\n description:\n \"Tenant Clerk sign-up route for custom app login surfaces.\",\n },\n] as const;\n\nconst TENANT_SHARED_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap((system) =>\n TENANT_SHARED_SECRET_DEFINITION_TEMPLATES.map(\n (template): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.${template.idSuffix}`,\n canonicalName: template.canonicalName,\n aliases: \"aliases\" in template ? template.aliases : undefined,\n owner: \"tenant\",\n scope: \"tenant\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: template.required,\n secret: template.secret,\n public: template.public,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"convex\",\n target: `${system.convex.preprodDeployment}|${system.convex.prodDeployment}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: ${template.description}`,\n }),\n ),\n );\n\nconst TENANT_INSTALL_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.map(\n (system): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.install-lucern-npm`,\n canonicalName: \"INSTALL_LUCERN_NPM\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/tenants/shared\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-deploy-tooling\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: read-only npm install token for published @lucern/* packages.`,\n }),\n );\n\nconst TENANT_PRODUCT_SOFTWARE_SYSTEM_IDS = [\"stack-frontend\", \"stackos\"];\n\nconst TENANT_PRODUCT_RUNTIME_SECRET_DEFINITION_TEMPLATES = [\n {\n idSuffix: \"ai.openai-api-key\",\n canonicalName: \"OPENAI_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description: \"Tenant-owned OpenAI key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"ai.anthropic-api-key\",\n canonicalName: \"ANTHROPIC_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description: \"Tenant-owned Anthropic key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"ai.gemini-api-key\",\n canonicalName: \"GEMINI_API_KEY\",\n aliases: [\"GOOGLE_AI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description:\n \"Tenant-owned Google/Gemini key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"langfuse.secret-key\",\n canonicalName: \"LANGFUSE_SECRET_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse secret key for product AI tracing.\",\n },\n {\n idSuffix: \"langfuse.public-key\",\n canonicalName: \"LANGFUSE_PUBLIC_KEY\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse public key for product AI tracing.\",\n },\n {\n idSuffix: \"langfuse.base-url\",\n canonicalName: \"LANGFUSE_BASE_URL\",\n aliases: [\"LANGFUSE_BASEURL\", \"LANGFUSE_HOST\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse API origin.\",\n },\n {\n idSuffix: \"graph.neo4j-uri\",\n canonicalName: \"NEO4J_URI\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j URI for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_USERNAME\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j user for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-password\",\n canonicalName: \"NEO4J_PASSWORD\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j password for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description:\n \"Tenant-owned shared secret for product Convex-to-HTTP graph-sync calls.\",\n },\n {\n idSuffix: \"graph.neo4j-database\",\n canonicalName: \"NEO4J_DATABASE\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j database name for product graph-sync.\",\n },\n {\n idSuffix: \"vector.pinecone-api-key\",\n canonicalName: \"PINECONE_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone API key for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-index-name\",\n canonicalName: \"PINECONE_INDEX_NAME\",\n aliases: [\"PINECONE_INDEX\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone index name for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-host\",\n canonicalName: \"PINECONE_HOST\",\n aliases: [\"PINECONE_INDEX_HOST\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone host for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-namespace\",\n canonicalName: \"PINECONE_NAMESPACE\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description:\n \"Tenant-owned Pinecone namespace for product vector search isolation.\",\n },\n {\n idSuffix: \"storage.aws-access-key-id\",\n canonicalName: \"AWS_ACCESS_KEY_ID\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description: \"Tenant-owned AWS access key id for document/file ingestion.\",\n },\n {\n idSuffix: \"storage.aws-secret-access-key\",\n canonicalName: \"AWS_SECRET_ACCESS_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description:\n \"Tenant-owned AWS secret access key for document/file ingestion.\",\n },\n {\n idSuffix: \"storage.aws-region\",\n canonicalName: \"AWS_REGION\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description: \"Tenant-owned AWS region for document/file ingestion.\",\n },\n {\n idSuffix: \"observability.sentry-dsn\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_DSN\",\n aliases: [\"NEXT_PUBLIC_SENTRY_DSN_NEXTJS\", \"SENTRY_DSN\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry DSN for app telemetry.\",\n },\n {\n idSuffix: \"observability.sentry-auth-token\",\n canonicalName: \"SENTRY_AUTH_TOKEN\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry release token for app deployments.\",\n },\n {\n idSuffix: \"observability.sentry-org\",\n canonicalName: \"SENTRY_ORG\",\n aliases: [\"SENTRY_ORG_SLUG\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry org slug for release uploads.\",\n },\n {\n idSuffix: \"observability.sentry-project\",\n canonicalName: \"SENTRY_PROJECT\",\n aliases: [\"SENTRY_PROJECT_NEXTJS\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry project slug for release uploads.\",\n },\n {\n idSuffix: \"observability.sentry-environment\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_ENVIRONMENT\",\n aliases: [\"SENTRY_ENVIRONMENT\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry environment label.\",\n },\n {\n idSuffix: \"observability.sentry-release\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_RELEASE\",\n aliases: [\"SENTRY_RELEASE\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry release label.\",\n },\n {\n idSuffix: \"observability.sentry-client-options\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE\",\n aliases: [\n \"NEXT_PUBLIC_SENTRY_CAPTURE_CONSOLE_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CAPTURE_CONSOLE_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_BREADCRUMB_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_BREADCRUMB_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_LOG_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_LOG_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_ENABLE_LOGS\",\n \"NEXT_PUBLIC_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE\",\n \"NEXT_PUBLIC_SENTRY_REPLAYS_SESSION_SAMPLE_RATE\",\n \"NEXT_PUBLIC_SENTRY_SEND_DEFAULT_PII\",\n \"NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE_NEXTJS\",\n ],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description:\n \"Tenant-owned public Sentry tuning values for Next.js client instrumentation.\",\n },\n {\n idSuffix: \"observability.sentry-webhook-secret\",\n canonicalName: \"SENTRY_WEBHOOK_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-convex-deployment\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry webhook verification secret.\",\n },\n {\n idSuffix: \"lucern.gateway-api-key\",\n canonicalName: \"LUCERN_API_KEY\",\n aliases: [\"STACK_API_KEY\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description:\n \"Tenant-scoped Lucern/MC gateway API key for product front-door calls.\",\n },\n {\n idSuffix: \"lucern.gateway-base-url\",\n canonicalName: \"LUCERN_BASE_URL\",\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_GATEWAY_BASE_URL\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description: \"Lucern/MC gateway base URL used by tenant product apps.\",\n },\n {\n idSuffix: \"lucern.proxy-token-secret\",\n canonicalName: \"LUCERN_PROXY_TOKEN_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description:\n \"Tenant-owned secret for signing internal proxy/session tokens in product apps.\",\n },\n {\n idSuffix: \"tenant.integrations.linear-api-key\",\n canonicalName: \"LINEAR_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description: \"Tenant-owned Linear API key for support/slash-command flows.\",\n },\n {\n idSuffix: \"tenant.vercel.bypass-token\",\n canonicalName: \"VERCEL_AUTOMATION_BYPASS_SECRET\",\n aliases: [\"NEXT_PUBLIC_VERCEL_BYPASS_TOKEN\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-deploy-tooling\"],\n description:\n \"Tenant-owned Vercel automation bypass token. Public alias is legacy and should be removed from app code.\",\n },\n] as const;\n\nconst TENANT_PRODUCT_RUNTIME_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.filter((system) =>\n TENANT_PRODUCT_SOFTWARE_SYSTEM_IDS.includes(system.id),\n ).flatMap((system) =>\n TENANT_PRODUCT_RUNTIME_SECRET_DEFINITION_TEMPLATES.map(\n (template): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.${template.idSuffix}`,\n canonicalName: template.canonicalName,\n aliases: \"aliases\" in template ? template.aliases : undefined,\n owner: \"tenant\",\n scope: \"tenant\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: template.required,\n secret: template.secret,\n public: template.public,\n consumers: template.consumers,\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"convex\",\n target: `${system.convex.preprodDeployment}|${system.convex.prodDeployment}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: ${template.description}`,\n }),\n ),\n );\n\nfunction tenantVercelConvexUrlWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n const names = [system.convex.urlEnv, \"NEXT_PUBLIC_CONVEX_URL\"];\n if (system.id === \"stack-eng\") {\n return [...names, \"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n return names;\n}\n\nfunction tenantRepositoryConvexUrlWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n if (system.id === \"stack-eng\") {\n return [system.convex.urlEnv, \"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n return [system.convex.urlEnv];\n}\n\nfunction tenantRepositoryConvexDeployKeyWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n if (system.id === \"stack-eng\") {\n return [system.convex.deployKeyEnv, \"STACKOS_ENGINEERING_GRAPH_DEPLOY_KEY\"];\n }\n return [system.convex.deployKeyEnv];\n}\n\nfunction tenantConvexUrlAliases(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] | undefined {\n if (system.id === \"stack-frontend\") {\n return [\n \"CONVEX_PROD_URL\",\n \"CONVEX_STACK_V2_PROD_URL\",\n \"CONVEX_STACK_V2_STAGING_URL\",\n \"STACK_CONVEX_URL\",\n ];\n }\n if (system.id === \"stackos\") {\n return [\n \"CONVEX_CLOUD_URL\",\n \"CONVEX_STACK_URL\",\n \"CONVEX_URL\",\n \"CONVEX_URL_DEVELOPMENT\",\n \"CONVEX_URL_PRODUCTION\",\n \"STACK_CONVEX_URL\",\n ];\n }\n if (system.id === \"stack-eng\") {\n return [\"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n if (system.id === \"lucern-graph\") {\n return [\n \"CONVEX_GRAPH_URL\",\n \"LUCERN_PROD_URL\",\n \"NEXT_PUBLIC_LUCERN_GRAPH_URL\",\n ];\n }\n return undefined;\n}\n\nfunction tenantConvexDeployKeyAliases(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] | undefined {\n if (system.id === \"stack-frontend\") {\n return [\n \"CONVEX_STACK_V2_PROD_DEPLOY_KEY\",\n \"CONVEX_STACK_V2_STAGING_DEPLOY_KEY\",\n \"STACK_DEPLOY_KEY\",\n ];\n }\n if (system.id === \"stackos\") {\n return [\n \"CONVEX_DEPLOY_KEY\",\n \"CONVEX_DEV_DEPLOY_KEY\",\n \"CONVEX_PROD_DEPLOY_KEY\",\n \"CONVEX_STACK_DEPLOY_KEY\",\n \"STACK_DEPLOY_KEY\",\n ];\n }\n if (system.id === \"stack-eng\") {\n return [\"CONVEX_DEPLOY_KEY\", \"STACKOS_ENGINEERING_GRAPH_DEPLOY_KEY\"];\n }\n if (system.id === \"lucern-graph\") {\n return [\n \"CONVEX_DEPLOY_KEY\",\n \"CONVEX_GRAPH_DEPLOY_KEY\",\n \"LUCERN_CONVEX_DEPLOY_KEY\",\n \"LUCERN_DEV_DEPLOY_KEY\",\n \"LUCERN_PROD_DEPLOY_KEY\",\n ];\n }\n return undefined;\n}\n\nconst TENANT_GRAPH_PUBLIC_CONFIG_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap(\n (system): readonly InfisicalSecretDefinition[] => {\n if (system.id === \"lucern-graph\") {\n return [\n {\n id: \"tenant.lucern-graph.public.tenant-id\",\n canonicalName: \"NEXT_PUBLIC_LUCERN_GRAPH_TENANT_ID\",\n aliases: [\"NEXT_PUBLIC_LUCERN_TENANT_ID\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Lucern graph public tenant id used by the standalone graph explorer.\",\n },\n {\n id: \"tenant.lucern-graph.public.tenant-label\",\n canonicalName: \"NEXT_PUBLIC_LUCERN_GRAPH_TENANT_LABEL\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Lucern graph public tenant label used by the standalone graph explorer.\",\n },\n ] as const satisfies readonly InfisicalSecretDefinition[];\n }\n if (system.id === \"stack-eng\") {\n return [\n {\n id: \"tenant.stack-eng.public.tenant-id\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_TENANT_ID\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public tenant id used by the graph explorer.\",\n },\n {\n id: \"tenant.stack-eng.public.tenant-label\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_TENANT_LABEL\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public tenant label used by the graph explorer.\",\n },\n {\n id: \"tenant.stack-eng.public.environment\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_ENV\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public environment label used by the graph explorer.\",\n },\n ] as const satisfies readonly InfisicalSecretDefinition[];\n }\n return [] as const;\n });\n\nconst STACK_ENG_GRAPH_STORE_SECRET_DEFINITIONS = [\n {\n id: \"tenant.stack-eng.neo4j.uri\",\n canonicalName: \"NEO4J_URI\",\n aliases: [\"NEO4J_ENG_URI\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph Neo4j runtime URI. NEO4J_ENG_URI is the source alias used to avoid StackOS front-office collisions.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_ENG_USER\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: \"Stack engineering graph Neo4j runtime user.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.password\",\n canonicalName: \"NEO4J_PASSWORD\",\n aliases: [\"NEO4J_ENG_PASSWORD\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: \"Stack engineering graph Neo4j runtime password.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph sync secret for Convex-to-HTTP graph query/sync calls.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst TENANT_CONVEX_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap((system) => [\n {\n id: `tenant.${system.id}.convex.url`,\n canonicalName: system.convex.urlEnv,\n aliases: tenantConvexUrlAliases(system),\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"preprod_staging_prod_prod\",\n required: true,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-agent-runtime\",\n \"mc-operator-tooling\",\n ],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantVercelConvexUrlWriteNames(system),\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantRepositoryConvexUrlWriteNames(system),\n notes:\n \"Only if that repository deploy/test workflow owns this software system.\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey} Convex URL. Pre-prod resolves to ${system.convex.preprodDeployment}; prod resolves to ${system.convex.prodDeployment}.`,\n },\n {\n id: `tenant.${system.id}.convex.deploy-key`,\n canonicalName: system.convex.deployKeyEnv,\n aliases: tenantConvexDeployKeyAliases(system),\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"preprod_staging_prod_prod\",\n required: true,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-agent-runtime\",\n \"mc-operator-tooling\",\n ],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantRepositoryConvexDeployKeyWriteNames(system),\n notes:\n \"Only if that repository deploy/test workflow owns this software system.\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey} Convex deploy/admin key. Never route to sibling workspaces.`,\n },\n ] as const satisfies readonly InfisicalSecretDefinition[]);\n\nexport const INFISICAL_SECRET_DEFINITIONS = [\n ...PLATFORM_SECRET_DEFINITIONS,\n ...PLATFORM_AI_SECRET_DEFINITIONS,\n ...PLATFORM_LANGFUSE_SECRET_DEFINITIONS,\n ...PLATFORM_GRAPH_STORE_SECRET_DEFINITIONS,\n ...PLATFORM_VECTOR_STORE_SECRET_DEFINITIONS,\n ...PLATFORM_SENTRY_SECRET_DEFINITIONS,\n ...PLATFORM_DEPLOY_AUTOMATION_SECRET_DEFINITIONS,\n ...PLATFORM_LOCAL_OPERATOR_CONFIG_SECRET_DEFINITIONS,\n ...TENANT_SHARED_SECRET_DEFINITIONS,\n ...TENANT_INSTALL_SECRET_DEFINITIONS,\n ...TENANT_PRODUCT_RUNTIME_SECRET_DEFINITIONS,\n ...TENANT_GRAPH_PUBLIC_CONFIG_SECRET_DEFINITIONS,\n ...STACK_ENG_GRAPH_STORE_SECRET_DEFINITIONS,\n ...TENANT_CONVEX_SECRET_DEFINITIONS,\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nexport type InfisicalSecretId = (typeof INFISICAL_SECRET_DEFINITIONS)[number][\"id\"];\n\nexport function findInfisicalSecretDefinition(\n secretId: InfisicalSecretId,\n): InfisicalSecretDefinition | undefined {\n return INFISICAL_SECRET_DEFINITIONS.find((secret) => secret.id === secretId);\n}\n\nexport function infisicalSecretDefinitionsForConsumer(\n consumer: InfisicalSecretConsumer,\n): readonly InfisicalSecretDefinition[] {\n return INFISICAL_SECRET_DEFINITIONS.filter((secret) =>\n (secret.consumers as readonly InfisicalSecretConsumer[]).includes(consumer),\n );\n}\n\nexport function infisicalSecretDefinitionsForDestination(\n kind: InfisicalSecretDestinationKind,\n target: string,\n): readonly InfisicalSecretDefinition[] {\n return INFISICAL_SECRET_DEFINITIONS.filter((secret) =>\n secret.destinations.some(\n (destination) => destination.kind === kind && destination.target === target,\n ),\n );\n}\n\nexport function validateInfisicalSecretDefinitions(\n definitions: readonly InfisicalSecretDefinition[] = INFISICAL_SECRET_DEFINITIONS,\n): readonly string[] {\n const errors: string[] = [];\n const ids = new Set<string>();\n const platformOnlyNames = new Set([\"CONVEX_MC_URL\", \"CONVEX_MC_DEPLOY_KEY\"]);\n\n for (const definition of definitions) {\n if (ids.has(definition.id)) {\n errors.push(`Duplicate secret definition id: ${definition.id}`);\n }\n ids.add(definition.id);\n\n if (!definition.canonicalName.startsWith(\"CONVEX_\")) {\n continue;\n }\n\n if (platformOnlyNames.has(definition.canonicalName)) {\n if (definition.owner !== \"lucern_platform\") {\n errors.push(`${definition.canonicalName} must be Lucern platform-owned.`);\n }\n for (const destination of definition.destinations) {\n if (\n destination.kind === \"vercel\" &&\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.some(\n (system) => system.vercelProjectName === destination.target,\n )\n ) {\n errors.push(\n `${definition.canonicalName} must not route to tenant Vercel project ${destination.target}.`,\n );\n }\n }\n continue;\n }\n\n const owner = INFISICAL_TENANT_SOFTWARE_SYSTEMS.find(\n (system) =>\n system.convex.urlEnv === definition.canonicalName ||\n system.convex.deployKeyEnv === definition.canonicalName,\n );\n if (!owner) {\n errors.push(\n `${definition.canonicalName} is a Convex variable without a tenant software owner.`,\n );\n continue;\n }\n for (const destination of definition.destinations) {\n if (\n destination.kind === \"vercel\" &&\n destination.target !== owner.vercelProjectName\n ) {\n errors.push(\n `${definition.canonicalName} routes to ${destination.target}; expected ${owner.vercelProjectName}.`,\n );\n }\n }\n }\n\n return errors;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tenant-client.contract.ts","../src/infisical-runtime.contract.ts"],"names":[],"mappings":"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","file":"infisical-runtime.contract.js","sourcesContent":["/**\n * Tenant client contract\n *\n * Defines the generic boundary for any customer-owned product that consumes\n * Lucern through the SDK, hosted API, or MCP server. Tenant clients may run\n * their own UI, auth provider, deployment, and data plane, but reasoning\n * operations must enter through the published packages below.\n */\n\nimport type {\n SessionAuthMode,\n SessionPrincipalType,\n} from \"./auth.contract\";\n\nexport const TENANT_CLIENT_CONTRACT_VERSION = \"2026-04-27\" as const;\n\nexport const TENANT_CLIENT_AUTH_MODES = [\n \"interactive_user\",\n \"service_principal\",\n \"tenant_api_key\",\n \"session_token\",\n] as const satisfies readonly SessionAuthMode[];\nexport type TenantClientAuthMode = (typeof TENANT_CLIENT_AUTH_MODES)[number];\n\nexport const TENANT_CLIENT_PRINCIPAL_TYPES = [\n \"human\",\n \"service\",\n \"agent\",\n \"group\",\n \"external_viewer\",\n] as const satisfies readonly SessionPrincipalType[];\nexport type TenantClientPrincipalType =\n (typeof TENANT_CLIENT_PRINCIPAL_TYPES)[number];\n\nexport const TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"authMode\",\n \"scopes\",\n] as const;\nexport type TenantClientRequiredContextField =\n (typeof TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS)[number];\n\nexport const TENANT_CLIENT_OPTIONAL_CONTEXT_FIELDS = [\n \"clerkId\",\n \"principalType\",\n \"roles\",\n \"groupIds\",\n \"permittedToolNames\",\n \"permittedPackKeys\",\n \"principalStatus\",\n \"tenantStatus\",\n \"workspaceStatus\",\n \"permit\",\n \"sessionId\",\n \"delegationChain\",\n] as const;\nexport type TenantClientOptionalContextField =\n (typeof TENANT_CLIENT_OPTIONAL_CONTEXT_FIELDS)[number];\n\nexport const TENANT_CLIENT_INSTALL_TOKEN_ENV = \"INSTALL_LUCERN_NPM\" as const;\nexport const TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH =\n \"tenants/shared\" as const;\nexport const TENANT_CLIENT_FORBIDDEN_INSTALL_TOKEN_INFISICAL_PATHS = [\n \"/platform/publish\",\n] as const;\nexport const TENANT_CLIENT_FORBIDDEN_SECRET_ENV = [\"NPM_TOKEN\"] as const;\nexport type TenantClientForbiddenInstallTokenInfisicalPath =\n (typeof TENANT_CLIENT_FORBIDDEN_INSTALL_TOKEN_INFISICAL_PATHS)[number];\nexport type TenantClientForbiddenSecretEnv =\n (typeof TENANT_CLIENT_FORBIDDEN_SECRET_ENV)[number];\n\nexport const TENANT_CLIENT_INSTALLABLE_PACKAGES = [\n {\n packageName: \"@lucern/access-control\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/agent\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/auth\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/cli\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/client-core\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/confidence\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/config\",\n role: \"configuration\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/contracts\",\n role: \"contract_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/control-plane\",\n role: \"component_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/developer-kit\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/events\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/graph-primitives\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/graph-sync\",\n role: \"host_addon_runtime\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/mcp\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/pack-host\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/pack-installer\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/proof-compiler\",\n role: \"developer_tool\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/react\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n role: \"component_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/sdk\",\n role: \"runtime_entrypoint\",\n directTenantImport: true,\n },\n {\n packageName: \"@lucern/secrets\",\n role: \"sdk_dependency\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/server-core\",\n role: \"platform_runtime\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/testing\",\n role: \"test_support\",\n directTenantImport: false,\n },\n {\n packageName: \"@lucern/types\",\n role: \"contract_entrypoint\",\n directTenantImport: true,\n },\n] as const;\nexport type TenantClientInstallablePackage =\n (typeof TENANT_CLIENT_INSTALLABLE_PACKAGES)[number];\nexport type TenantClientPackageRole = TenantClientInstallablePackage[\"role\"];\nexport type TenantClientInstallablePackageName =\n TenantClientInstallablePackage[\"packageName\"];\n\n/**\n * Direct package installs are package.json entries owned by the tenant repo.\n * Direct imports are source-code imports that tenant application code may use.\n *\n * These concepts intentionally differ: `@lucern/cli` is a direct install when a\n * tenant repo needs the `lucern` binary, but it is not a direct application\n * import. `@lucern/reasoning-kernel` and `@lucern/control-plane` are direct installs\n * for Convex component binding, while tenant app code should only import their\n * explicit component config subpaths.\n */\nexport type TenantClientInstallProfile = {\n id: string;\n description: string;\n packageNames: readonly TenantClientInstallablePackageName[];\n dependencyField: \"dependencies\" | \"devDependencies\" | \"mixed\";\n};\n\nexport const TENANT_CLIENT_FULL_SUITE_PACKAGE_NAMES =\n TENANT_CLIENT_INSTALLABLE_PACKAGES.map(\n (entry) => entry.packageName\n ) as readonly TenantClientInstallablePackageName[];\n\nexport const TENANT_CLIENT_INSTALL_PROFILES = [\n {\n id: \"core_app_runtime\",\n description:\n \"Smallest tenant app/runtime install for typed Lucern API calls plus tool-access policy helpers.\",\n packageNames: [\"@lucern/sdk\", \"@lucern/access-control\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"react_app_runtime\",\n description:\n \"React tenant app install for hooks, provider, curated graph components, and direct SDK calls.\",\n packageNames: [\"@lucern/react\", \"@lucern/sdk\", \"@lucern/access-control\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"convex_components\",\n description:\n \"Tenant Convex host install for binding the Lucern control-plane and reasoning-kernel components.\",\n packageNames: [\"@lucern/control-plane\", \"@lucern/reasoning-kernel\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"graph_mirroring_addon\",\n description:\n \"Optional tenant Convex host install for Neo4j graph projection, edge topology writes, backfill, health checks, and query proxy helpers.\",\n packageNames: [\"@lucern/graph-sync\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"operator_cli\",\n description:\n \"Developer/operator install for the `lucern` binary, including tenant bootstrap seed commands.\",\n packageNames: [\"@lucern/cli\"],\n dependencyField: \"devDependencies\",\n },\n {\n id: \"mcp_runtime\",\n description:\n \"Agent runtime install for the standalone Lucern MCP server and hosted route helpers.\",\n packageNames: [\"@lucern/mcp\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"contracts_and_types\",\n description:\n \"Compile-time contract/type install for codegen, audits, and tenant integration validation.\",\n packageNames: [\"@lucern/contracts\", \"@lucern/types\"],\n dependencyField: \"dependencies\",\n },\n {\n id: \"full_suite\",\n description:\n \"Full coherent Lucern package suite for design-partner repos that want every published runtime, tool, component, test, and config package pinned together.\",\n packageNames: TENANT_CLIENT_FULL_SUITE_PACKAGE_NAMES,\n dependencyField: \"mixed\",\n },\n] as const satisfies readonly TenantClientInstallProfile[];\nexport type TenantClientInstallProfileId =\n (typeof TENANT_CLIENT_INSTALL_PROFILES)[number][\"id\"];\n\n/**\n * Direct imports tenant-owned product code may use. This is intentionally\n * smaller than TENANT_CLIENT_INSTALLABLE_PACKAGES: several publishable packages\n * are installed as SDK dependencies, tooling, or platform runtimes but should\n * not become the application integration surface.\n */\nexport const TENANT_CLIENT_PUBLIC_IMPORTS = [\n {\n packageName: \"@lucern/sdk\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"TypeScript SDK runtime and generated operation namespaces.\",\n },\n {\n packageName: \"@lucern/react\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"React bindings for tenant-owned UI applications.\",\n },\n {\n packageName: \"@lucern/mcp\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description: \"MCP client/server entry points and hosted route helpers.\",\n },\n {\n packageName: \"@lucern/graph-sync\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description:\n \"Optional Neo4j graph mirroring host actions, edge API, query proxy, backfill, and health helpers.\",\n },\n {\n packageName: \"@lucern/contracts\",\n surface: \"contract\",\n subpaths: \"published_exports\",\n description: \"Published type and manifest contracts.\",\n },\n {\n packageName: \"@lucern/access-control\",\n surface: \"runtime\",\n subpaths: \"published_exports\",\n description:\n \"Tenant runtime access-control helpers, including effective tool access.\",\n },\n {\n packageName: \"@lucern/types\",\n surface: \"contract\",\n subpaths: \"published_exports\",\n description: \"Published type-only helpers for tenant integration code.\",\n },\n] as const;\nexport type TenantClientPublicImport =\n (typeof TENANT_CLIENT_PUBLIC_IMPORTS)[number];\nexport type TenantClientPublicPackage =\n TenantClientPublicImport[\"packageName\"];\nexport type TenantClientPublicSurface = TenantClientPublicImport[\"surface\"];\n\nexport const TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS = [\n {\n packageName: \"@lucern/control-plane\",\n importPath: \"@lucern/control-plane/convex.config\",\n surface: \"component_config\",\n description:\n \"Convex component binding config for tenant deployments that install the Lucern control plane.\",\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n importPath: \"@lucern/reasoning-kernel/convex.config\",\n surface: \"component_config\",\n description:\n \"Convex component binding config for tenant deployments that install the Lucern reasoning kernel.\",\n },\n {\n packageName: \"@lucern/reasoning-kernel\",\n importPath: \"@lucern/reasoning-kernel/runtime.config\",\n surface: \"component_config\",\n description:\n \"Runtime config alias for tenant deployments that install the Lucern reasoning kernel.\",\n },\n] as const;\nexport type TenantClientComponentConfigImport =\n (typeof TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS)[number];\nexport type TenantClientAllowedImport =\n | TenantClientPublicImport\n | TenantClientComponentConfigImport;\n\nexport function findTenantClientInstallablePackage(\n packageName: string\n): TenantClientInstallablePackage | undefined {\n return TENANT_CLIENT_INSTALLABLE_PACKAGES.find(\n (entry) => entry.packageName === packageName\n );\n}\n\nexport function isTenantClientInstallablePackage(packageName: string): boolean {\n return Boolean(findTenantClientInstallablePackage(packageName));\n}\n\nexport const TENANT_CLIENT_REQUIRED_SDK_NAMESPACES = [\n \"bootstrap\",\n \"context\",\n \"beliefs\",\n \"evidence\",\n \"questions\",\n \"graph\",\n \"worktrees\",\n \"topics\",\n \"edges\",\n \"contradictions\",\n \"contracts\",\n \"graphIntel\",\n \"graphIntelligence\",\n \"graphAnalysis\",\n \"graphRecommendations\",\n \"orgGraphSearch\",\n \"embeddings\",\n \"ontologyLinks\",\n \"graphStateClassifier\",\n \"tools\",\n \"controlPlane\",\n \"identity\",\n \"modelRuntime\",\n \"events\",\n \"jobs\",\n \"telemetry\",\n] as const;\nexport type TenantClientRequiredSdkNamespace =\n (typeof TENANT_CLIENT_REQUIRED_SDK_NAMESPACES)[number];\n\nexport const TENANT_CLIENT_CAPABILITIES = [\n {\n id: \"identity.resolve_interactive_principal\",\n description:\n \"Resolve a Clerk-authenticated user into a Permit-backed Lucern principal context.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/cli\", \"@lucern/mcp\"],\n requiredContextFields: [\"principalId\", \"tenantId\", \"scopes\"],\n },\n {\n id: \"identity.bootstrap_session\",\n description: \"Start a scoped Lucern session for a tenant principal.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.context.compile\",\n description: \"Compile tenant and workspace scoped reasoning context.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph.read\",\n description: \"Read beliefs, evidence, questions, topics, graph edges, and lineage.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph.write\",\n description: \"Create and update graph objects through authorized APIs.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph_intelligence.run\",\n description:\n \"Discover and run Graph Intelligence query recipes for structural graph analysis.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/cli\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"reasoning.graph_mirroring.install\",\n description:\n \"Install and run the optional Neo4j graph mirror for paid or enterprise tenant deployments.\",\n surfaces: [\"@lucern/graph-sync\", \"@lucern/cli\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n {\n id: \"workflow.worktree_lifecycle\",\n description: \"Create, review, merge, and close scoped worktrees.\",\n surfaces: [\"@lucern/sdk\", \"@lucern/react\", \"@lucern/mcp\"],\n requiredContextFields: TENANT_CLIENT_REQUIRED_CONTEXT_FIELDS,\n },\n] as const;\nexport type TenantClientCapability =\n (typeof TENANT_CLIENT_CAPABILITIES)[number];\nexport type TenantClientCapabilityId = TenantClientCapability[\"id\"];\n\nexport const TENANT_CLIENT_ISOLATION_RULES = [\n {\n id: \"tenant_workspace_scope_required\",\n description:\n \"Runtime operations must resolve both tenantId and workspaceId before reaching Lucern reasoning state.\",\n },\n {\n id: \"principal_audit_required\",\n description:\n \"Runtime operations must carry principalId, authMode, and scopes for audit attribution.\",\n },\n {\n id: \"no_private_lucern_imports\",\n description:\n \"Tenant code must not import Lucern source, Convex internals, generated adapters, or unpublished package internals.\",\n },\n] as const;\nexport type TenantClientIsolationRule =\n (typeof TENANT_CLIENT_ISOLATION_RULES)[number];\n\nexport const TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS = [\n {\n id: \"deep_src_import\",\n pattern: \"^@lucern/[^/]+/src(?:/|$)\",\n description: \"Published packages must not be bypassed through src paths.\",\n },\n {\n id: \"deep_dist_import\",\n pattern: \"^@lucern/[^/]+/dist(?:/|$)\",\n description:\n \"Published package exports must be used instead of dist file paths.\",\n },\n {\n id: \"generated_adapter_import\",\n pattern: \"^@lucern/[^/]+/(?:adapters/)?_generated(?:/|$)\",\n description:\n \"Generated Lucern adapters are internal deployment artifacts.\",\n },\n {\n id: \"private_runtime_import\",\n pattern: \"^@lucern/[^/]+/(?:internal|private)(?:/|$)\",\n description: \"Internal and private package subpaths are not public SDK API.\",\n },\n {\n id: \"workspace_source_import\",\n pattern: \"^(?:packages|modules|services|lucern|apps)/(?:.+/)?src(?:/|$)\",\n description:\n \"Tenant clients must not import source files from the Lucern monorepo.\",\n },\n {\n id: \"root_alias_lucern_import\",\n pattern: \"^@/(?:lucern|packages|modules|services|apps)(?:/|$)\",\n description:\n \"Tenant clients must not depend on Lucern repo-local path aliases.\",\n },\n {\n id: \"relative_lucern_source_import\",\n pattern: \"^\\\\.\\\\.?/(?:.+/)?(?:packages|modules|services|lucern|apps)(?:/|$)\",\n description:\n \"Tenant clients must not reach back into Lucern source through relative paths.\",\n },\n {\n id: \"monorepo_path_import\",\n pattern: \"lucern-repo\",\n description:\n \"Absolute imports that name the Lucern repository are not portable tenant code.\",\n },\n] as const;\nexport type TenantClientForbiddenImportPattern =\n (typeof TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS)[number];\nexport type TenantClientForbiddenImportPatternId =\n TenantClientForbiddenImportPattern[\"id\"];\n\nexport type TenantClientImportDecision =\n | \"public\"\n | \"forbidden\"\n | \"local\"\n | \"external\";\n\nexport type TenantClientImportClassification = {\n importPath: string;\n decision: TenantClientImportDecision;\n publicImport?: TenantClientAllowedImport;\n pattern?: TenantClientForbiddenImportPattern;\n reason: string;\n};\n\nfunction matchesPublicImport(\n importPath: string\n): TenantClientAllowedImport | undefined {\n const componentConfig = TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS.find(\n (entry) => importPath === entry.importPath\n );\n if (componentConfig) {\n return componentConfig;\n }\n\n return TENANT_CLIENT_PUBLIC_IMPORTS.find(\n (entry) =>\n importPath === entry.packageName ||\n importPath.startsWith(`${entry.packageName}/`)\n );\n}\n\nfunction matchesForbiddenPattern(\n importPath: string\n): TenantClientForbiddenImportPattern | undefined {\n return TENANT_CLIENT_FORBIDDEN_IMPORT_PATTERNS.find((entry) =>\n new RegExp(entry.pattern, \"u\").test(importPath)\n );\n}\n\nexport function classifyTenantClientImport(\n importPath: string\n): TenantClientImportClassification {\n const normalizedImportPath = importPath.trim();\n const pattern = matchesForbiddenPattern(normalizedImportPath);\n\n if (pattern) {\n return {\n importPath: normalizedImportPath,\n decision: \"forbidden\",\n pattern,\n reason: pattern.description,\n };\n }\n\n const publicImport = matchesPublicImport(normalizedImportPath);\n if (publicImport) {\n return {\n importPath: normalizedImportPath,\n decision: \"public\",\n publicImport,\n reason: publicImport.description,\n };\n }\n\n if (normalizedImportPath.startsWith(\"@lucern/\")) {\n return {\n importPath: normalizedImportPath,\n decision: \"forbidden\",\n reason:\n \"This @lucern package is not part of the tenant client public surface.\",\n };\n }\n\n if (\n normalizedImportPath.startsWith(\"./\") ||\n normalizedImportPath.startsWith(\"../\")\n ) {\n return {\n importPath: normalizedImportPath,\n decision: \"local\",\n reason: \"Local tenant-owned import.\",\n };\n }\n\n return {\n importPath: normalizedImportPath,\n decision: \"external\",\n reason: \"External dependency outside the Lucern package namespace.\",\n };\n}\n\nexport function isTenantClientPublicImport(importPath: string): boolean {\n return classifyTenantClientImport(importPath).decision === \"public\";\n}\n\nexport function isTenantClientComponentConfigImport(\n importPath: string\n): boolean {\n return TENANT_CLIENT_COMPONENT_CONFIG_IMPORTS.some(\n (entry) => importPath === entry.importPath\n );\n}\n\nexport function isTenantClientAllowedImport(importPath: string): boolean {\n return classifyTenantClientImport(importPath).decision === \"public\";\n}\n\nexport function assertTenantClientImportAllowed(importPath: string): void {\n const classification = classifyTenantClientImport(importPath);\n if (classification.decision !== \"forbidden\") {\n return;\n }\n\n throw new Error(formatTenantClientImportViolation(classification));\n}\n\nexport function formatTenantClientImportViolation(\n classification: TenantClientImportClassification\n): string {\n const patternId = classification.pattern\n ? ` [${classification.pattern.id}]`\n : \"\";\n return `Tenant client import is not allowed${patternId}: ${classification.importPath}. ${classification.reason}`;\n}\n","/**\n * Infisical runtime contract\n *\n * Defines how Lucern runtime surfaces receive platform configuration and\n * secrets. Vercel-owned apps consume Infisical through secret syncs. Server,\n * CLI, MCP, and SDK operator contexts may hydrate runtime config directly from\n * Infisical when they have a scoped machine identity. Tenant user auth still\n * flows through Lucern device login; tenant tools never receive platform Clerk\n * secrets.\n */\n\nimport { TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH } from \"./tenant-client.contract\";\n\nexport const INFISICAL_RUNTIME_CONTRACT_VERSION = \"2026-05-06\" as const;\n\nexport const INFISICAL_RUNTIME_DEFAULT_API_URL =\n \"https://app.infisical.com\" as const;\nexport const INFISICAL_RUNTIME_DEFAULT_PROJECT_ID =\n \"344b0526-90df-4606-ba50-22c647a36c65\" as const;\n\nexport const INFISICAL_RUNTIME_ENVIRONMENTS = [\n \"dev\",\n \"staging\",\n \"prod\",\n] as const;\nexport type InfisicalRuntimeEnvironment =\n (typeof INFISICAL_RUNTIME_ENVIRONMENTS)[number];\n\nexport const INFISICAL_RUNTIME_DELIVERY_MODES = [\n \"vercel_sync\",\n \"runtime_fetch\",\n \"device_auth\",\n] as const;\nexport type InfisicalRuntimeDeliveryMode =\n (typeof INFISICAL_RUNTIME_DELIVERY_MODES)[number];\n\nexport const INFISICAL_VERCEL_DESTINATION_ENVIRONMENTS = [\n \"development\",\n \"preview\",\n \"staging\",\n \"production\",\n] as const;\nexport type InfisicalVercelDestinationEnvironment =\n (typeof INFISICAL_VERCEL_DESTINATION_ENVIRONMENTS)[number];\n\nexport const INFISICAL_VERCEL_TARGETS = [\n \"development\",\n \"preview\",\n \"production\",\n] as const;\nexport type InfisicalVercelTarget = (typeof INFISICAL_VERCEL_TARGETS)[number];\n\nexport const INFISICAL_CONVEX_TIERS = [\"preprod\", \"prod\"] as const;\nexport type InfisicalConvexTier = (typeof INFISICAL_CONVEX_TIERS)[number];\n\nexport const INFISICAL_CONVEX_TIER_BY_VERCEL_ENVIRONMENT = {\n development: \"preprod\",\n preview: \"preprod\",\n staging: \"preprod\",\n production: \"prod\",\n} as const satisfies Record<\n InfisicalVercelDestinationEnvironment,\n InfisicalConvexTier\n>;\n\nexport type InfisicalVercelSyncDestination = {\n readonly environment: InfisicalVercelDestinationEnvironment;\n readonly vercelTarget: InfisicalVercelTarget;\n readonly convexTier: InfisicalConvexTier;\n readonly customEnvironmentSlug?: string;\n readonly customEnvironmentIdsByProjectName?: Readonly<Record<string, string>>;\n readonly domainsByProjectName?: Readonly<Record<string, string>>;\n};\n\nexport const INFISICAL_VERCEL_SYNC_RECONCILIATION = {\n sourceOfTruth: \"infisical\",\n writer: \"vercel_api\",\n disableSecretDeletion: false,\n pruneDestinationKeys: true,\n} as const;\n\nexport const INFISICAL_VERCEL_SYNC_DESTINATIONS = [\n {\n environment: \"development\",\n vercelTarget: \"development\",\n convexTier: \"preprod\",\n },\n {\n environment: \"preview\",\n vercelTarget: \"preview\",\n convexTier: \"preprod\",\n },\n {\n environment: \"staging\",\n vercelTarget: \"preview\",\n convexTier: \"preprod\",\n customEnvironmentSlug: \"staging\",\n customEnvironmentIdsByProjectName: {\n stackos: \"env_RbS0TYRRvWISTje8qR4u2lRg7TC8\",\n },\n domainsByProjectName: {\n stackos: \"staging.stack.vc\",\n },\n },\n {\n environment: \"production\",\n vercelTarget: \"production\",\n convexTier: \"prod\",\n },\n] as const satisfies readonly InfisicalVercelSyncDestination[];\n\nexport const INFISICAL_RUNTIME_SURFACE_IDS = [\n \"lucern-web\",\n \"lucern-gateway\",\n \"lucern-sdk\",\n \"lucern-cli\",\n \"lucern-mcp\",\n \"tenant-client\",\n] as const;\nexport type InfisicalRuntimeSurfaceId =\n (typeof INFISICAL_RUNTIME_SURFACE_IDS)[number];\n\nexport const INFISICAL_RUNTIME_BOOTSTRAP_ENV = {\n apiUrl: [\"INFISICAL_API_URL\", \"INFISICAL_URL\"],\n projectId: [\"INFISICAL_PROJECT_ID\", \"INFISICAL_WORKSPACE_ID\"],\n clientId: [\n \"INFISICAL_CLIENT_ID\",\n \"INFISICAL_MACHINE_CLIENT_ID\",\n \"INFISICAL_UNIVERSAL_AUTH_CLIENT_ID\",\n ],\n clientSecret: [\n \"INFISICAL_CLIENT_SECRET\",\n \"INFISICAL_MACHINE_CLIENT_SECRET\",\n \"INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET\",\n ],\n environment: [\"INFISICAL_ENV\", \"LUCERN_INFISICAL_ENV\"],\n organizationSlug: [\"INFISICAL_ORG_SLUG\", \"INFISICAL_ORGANIZATION_SLUG\"],\n disabled: [\"LUCERN_INFISICAL_DISABLE\", \"INFISICAL_DISABLE\"],\n} as const;\nexport type InfisicalRuntimeBootstrapEnv =\n typeof INFISICAL_RUNTIME_BOOTSTRAP_ENV;\n\nexport const INFISICAL_RUNTIME_CONTROL_ENV = [\n {\n name: \"NODE_ENV\",\n category: \"framework\",\n description:\n \"Node/Next runtime mode. Framework-owned, not written by Infisical.\",\n },\n {\n name: \"CI\",\n category: \"ci\",\n description:\n \"CI execution signal. Workflow-owned, not written by Infisical.\",\n },\n {\n name: \"VERCEL\",\n category: \"vercel\",\n description:\n \"Vercel runtime signal. Platform-owned, not written by Infisical.\",\n },\n {\n name: \"VERCEL_ENV\",\n category: \"vercel\",\n description:\n \"Vercel environment label used for build/runtime selection.\",\n },\n {\n name: \"VERCEL_URL\",\n category: \"vercel\",\n description:\n \"Vercel deployment URL supplied by Vercel for previews and builds.\",\n },\n {\n name: \"VERCEL_GIT_COMMIT_SHA\",\n category: \"vercel\",\n description:\n \"Vercel git metadata used for release labels. Platform-owned, not written by Infisical.\",\n },\n {\n name: \"NEXT_RUNTIME\",\n category: \"nextjs\",\n description:\n \"Next.js runtime selector for node/edge instrumentation modules.\",\n },\n {\n name: \"PORT\",\n category: \"framework\",\n description:\n \"Local/server port supplied by the runtime process manager.\",\n },\n {\n name: \"HOST\",\n category: \"framework\",\n description:\n \"Local/server host supplied by the runtime process manager.\",\n },\n {\n name: \"APP_URL\",\n category: \"compatibility\",\n description:\n \"Legacy local app URL fallback. Prefer LUCERN_LOGIN_BASE_URL or LUCERN_API_URL.\",\n },\n {\n name: \"NEXT_PUBLIC_APP_URL\",\n category: \"compatibility\",\n description:\n \"Legacy public app URL fallback. Prefer LUCERN_LOGIN_BASE_URL or LUCERN_API_URL.\",\n },\n {\n name: \"CLAUDE_PROJECT_DIR\",\n category: \"agent_local\",\n description:\n \"Local agent workspace hint. Agent-runtime-owned, not written by Infisical.\",\n },\n {\n name: \"HOME\",\n category: \"os\",\n description:\n \"Operating-system home directory used only for local credential discovery.\",\n },\n {\n name: \"USERPROFILE\",\n category: \"os\",\n description:\n \"Windows home directory used only for local credential discovery.\",\n },\n] as const;\nexport type InfisicalRuntimeControlEnv =\n (typeof INFISICAL_RUNTIME_CONTROL_ENV)[number];\n\nexport type InfisicalRuntimeVariable = {\n readonly name: string;\n readonly required: boolean;\n readonly secret: boolean;\n readonly public: boolean;\n readonly aliases?: readonly string[];\n readonly description: string;\n};\n\nexport type InfisicalRuntimePathDefinition = {\n readonly id: string;\n readonly secretPath: string;\n readonly description: string;\n readonly variables: readonly InfisicalRuntimeVariable[];\n};\n\nexport const INFISICAL_RUNTIME_PATHS = [\n {\n id: \"platform-auth\",\n secretPath: \"/platform/auth\",\n description:\n \"Lucern platform authentication secrets. Synced into Vercel web/gateway projects; never distributed to tenant tools.\",\n variables: [\n {\n name: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n required: true,\n secret: false,\n public: true,\n description: \"Clerk publishable key for the Lucern web origin.\",\n },\n {\n name: \"CLERK_SECRET_KEY\",\n required: true,\n secret: true,\n public: false,\n description: \"Clerk backend secret key for Lucern server runtimes.\",\n },\n {\n name: \"CLERK_JWT_ISSUER_DOMAIN\",\n required: false,\n secret: false,\n public: false,\n description: \"Expected Clerk issuer/JWKS domain for JWT verification.\",\n },\n {\n name: \"NEXT_PUBLIC_CLERK_SIGN_IN_URL\",\n required: false,\n secret: false,\n public: true,\n description: \"Public sign-in URL for Lucern-owned web flows.\",\n },\n {\n name: \"NEXT_PUBLIC_CLERK_SIGN_UP_URL\",\n required: false,\n secret: false,\n public: true,\n description: \"Public sign-up URL for Lucern-owned web flows.\",\n },\n ],\n },\n {\n id: \"platform-runtime\",\n secretPath: \"/platform/runtime\",\n description:\n \"Runtime defaults shared by server-side Lucern clients and operator tooling.\",\n variables: [\n {\n name: \"LUCERN_API_URL\",\n required: true,\n secret: false,\n public: false,\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_BASE_URL\"],\n description: \"Canonical Lucern API gateway URL.\",\n },\n {\n name: \"LUCERN_LOGIN_BASE_URL\",\n required: false,\n secret: false,\n public: false,\n aliases: [\"LUCERN_AUTH_BASE_URL\"],\n description: \"Browser login origin used when it differs from the API.\",\n },\n {\n name: \"LUCERN_ENVIRONMENT\",\n required: false,\n secret: false,\n public: false,\n aliases: [\"LUCERN_ENV\"],\n description: \"Lucern environment label consumed by CLI profiles.\",\n },\n {\n name: \"LUCERN_CLI_SESSION_TTL_MS\",\n required: false,\n secret: false,\n public: false,\n description:\n \"Optional web-issued CLI login session lifetime override in milliseconds.\",\n },\n ],\n },\n {\n id: \"tenant-shared-install\",\n secretPath: TENANT_CLIENT_INSTALL_TOKEN_INFISICAL_PATH,\n description:\n \"Tenant package-install secrets. This is install-only and distinct from platform publish credentials.\",\n variables: [\n {\n name: \"INSTALL_LUCERN_NPM\",\n required: true,\n secret: true,\n public: false,\n description:\n \"Read-only install token for the published @lucern/* suite.\",\n },\n ],\n },\n] as const satisfies readonly InfisicalRuntimePathDefinition[];\nexport type InfisicalRuntimePath = (typeof INFISICAL_RUNTIME_PATHS)[number];\nexport type InfisicalRuntimePathId = InfisicalRuntimePath[\"id\"];\n\nexport type InfisicalRuntimeSurfaceDefinition = {\n readonly id: InfisicalRuntimeSurfaceId;\n readonly packageName?: string;\n readonly delivery: InfisicalRuntimeDeliveryMode;\n readonly fallback?: InfisicalRuntimeDeliveryMode;\n readonly sourcePathIds: readonly InfisicalRuntimePathId[];\n readonly consumer: string;\n readonly description: string;\n};\n\nexport const INFISICAL_RUNTIME_SURFACES = [\n {\n id: \"lucern-web\",\n delivery: \"vercel_sync\",\n sourcePathIds: [\"platform-auth\", \"platform-runtime\"],\n consumer: \"apps/web on Vercel project lucern\",\n description:\n \"Lucern web consumes Clerk and runtime config via Infisical-to-Vercel syncs.\",\n },\n {\n id: \"lucern-gateway\",\n delivery: \"vercel_sync\",\n fallback: \"runtime_fetch\",\n sourcePathIds: [\"platform-auth\", \"platform-runtime\"],\n consumer: \"apps/gateway on Vercel project lucern-gateway\",\n description:\n \"Lucern gateway consumes platform config via Infisical-to-Vercel syncs and may self-hydrate from Infisical when the host environment has scoped bootstrap credentials.\",\n },\n {\n id: \"lucern-sdk\",\n packageName: \"@lucern/sdk\",\n delivery: \"runtime_fetch\",\n sourcePathIds: [\"platform-runtime\"],\n consumer:\n \"server-side SDK operator contexts with a scoped Infisical identity\",\n description:\n \"SDK exposes the runtime Infisical resolver used by clients that have machine identity credentials.\",\n },\n {\n id: \"lucern-cli\",\n packageName: \"@lucern/cli\",\n delivery: \"runtime_fetch\",\n fallback: \"device_auth\",\n sourcePathIds: [\"platform-runtime\"],\n consumer: \"developer/operator CLI processes\",\n description:\n \"CLI hydrates runtime defaults from Infisical when configured, then authenticates users through Lucern device login.\",\n },\n {\n id: \"lucern-mcp\",\n packageName: \"@lucern/mcp\",\n delivery: \"runtime_fetch\",\n fallback: \"device_auth\",\n sourcePathIds: [\"platform-runtime\"],\n consumer: \"MCP server/client processes\",\n description:\n \"MCP hydrates runtime defaults through the SDK resolver and remains a Lucern client, not a platform secret owner.\",\n },\n {\n id: \"tenant-client\",\n delivery: \"device_auth\",\n sourcePathIds: [\"tenant-shared-install\"],\n consumer: \"tenant-owned apps and coding agents\",\n description:\n \"Tenant clients install the published packages and receive user/service credentials through Lucern auth surfaces.\",\n },\n] as const satisfies readonly InfisicalRuntimeSurfaceDefinition[];\nexport type InfisicalRuntimeSurface =\n (typeof INFISICAL_RUNTIME_SURFACES)[number];\n\nexport type InfisicalTenantSoftwareSystemDefinition = {\n readonly id: string;\n readonly tenantKey: string;\n readonly workspaceKey: string;\n readonly vercelProjectName: string;\n readonly vercelTeamId: string;\n readonly vercelProjectId: string;\n readonly vercelWriterTokenEnv: string;\n readonly repository: {\n readonly owner: string;\n readonly name: string;\n };\n readonly sharedSourcePath: string;\n readonly sharedVariablePolicy: \"tenant_shared_all_systems\";\n readonly convex: {\n readonly urlEnv: string;\n readonly deployKeyEnv: string;\n readonly preprodDeployment: string;\n readonly prodDeployment: string;\n };\n};\n\nexport const INFISICAL_TENANT_SOFTWARE_SYSTEMS = [\n {\n id: \"stack-frontend\",\n tenantKey: \"stack\",\n workspaceKey: \"frontend\",\n vercelProjectName: \"ai-chatbot-diao\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_PihFw8kohSSw14nZs9YQV3xVo517\",\n vercelWriterTokenEnv: \"STACK_VERCEL_TOKEN\",\n repository: {\n owner: \"stack-vc\",\n name: \"front-end\",\n },\n sharedSourcePath: \"/tenants/stack\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_FRONTEND_URL\",\n deployKeyEnv: \"CONVEX_FRONTEND_DEPLOY_KEY\",\n preprodDeployment: \"rugged-lobster-664\",\n prodDeployment: \"wonderful-toucan-0\",\n },\n },\n {\n id: \"stackos\",\n tenantKey: \"stack\",\n workspaceKey: \"stackos\",\n vercelProjectName: \"stackos\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_rXLAL0Z6v9p1fasKbomby6GI7kau\",\n vercelWriterTokenEnv: \"STACK_VERCEL_TOKEN\",\n repository: {\n owner: \"stack-vc\",\n name: \"stackos\",\n },\n sharedSourcePath: \"/tenants/stack\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_STACKOS_URL\",\n deployKeyEnv: \"CONVEX_STACKOS_DEPLOY_KEY\",\n preprodDeployment: \"giant-mandrill-761\",\n prodDeployment: \"good-snake-515\",\n },\n },\n {\n id: \"stack-eng\",\n tenantKey: \"stack\",\n workspaceKey: \"engineering\",\n vercelProjectName: \"stackos-engineering-graph\",\n vercelTeamId: \"team_mZBKwvXSSu7qxrWdg2go29sK\",\n vercelProjectId: \"prj_zAU0Zn9GkbHjHI63dxW4vLpmoqTJ\",\n vercelWriterTokenEnv: \"STACK_VERCEL_TOKEN\",\n repository: {\n owner: \"stack-vc\",\n name: \"stackos-engineering-graph\",\n },\n sharedSourcePath: \"/tenants/stack/engineering\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_STACK_ENG_URL\",\n deployKeyEnv: \"CONVEX_STACK_ENG_DEPLOY_KEY\",\n preprodDeployment: \"small-oyster-270\",\n prodDeployment: \"bold-cuttlefish-804\",\n },\n },\n {\n id: \"lucern-graph\",\n tenantKey: \"lucern\",\n workspaceKey: \"lucern\",\n vercelProjectName: \"lucern-graph\",\n vercelTeamId: \"team_vTHxxs8GAoAFUe6RWMlYt7fY\",\n vercelProjectId: \"prj_KJ8EKV8vGM5xURpqmwTwmECEGPgQ\",\n vercelWriterTokenEnv: \"LUCERN_VERCEL_TOKEN\",\n repository: {\n owner: \"LucernAI\",\n name: \"lucern-graph\",\n },\n sharedSourcePath: \"/tenants/lucern/shared\",\n sharedVariablePolicy: \"tenant_shared_all_systems\",\n convex: {\n urlEnv: \"CONVEX_LUCERN_URL\",\n deployKeyEnv: \"CONVEX_LUCERN_DEPLOY_KEY\",\n preprodDeployment: \"good-blackbird-774\",\n prodDeployment: \"precious-dog-365\",\n },\n },\n] as const satisfies readonly InfisicalTenantSoftwareSystemDefinition[];\nexport type InfisicalTenantSoftwareSystem =\n (typeof INFISICAL_TENANT_SOFTWARE_SYSTEMS)[number];\nexport type InfisicalTenantSoftwareSystemId =\n InfisicalTenantSoftwareSystem[\"id\"];\n\nexport function findInfisicalTenantSoftwareSystem(\n systemId: InfisicalTenantSoftwareSystemId,\n): InfisicalTenantSoftwareSystem | undefined {\n return INFISICAL_TENANT_SOFTWARE_SYSTEMS.find(\n (system) => system.id === systemId,\n );\n}\n\nexport function tenantSoftwareSystemConvexEnvNames(\n systemId: InfisicalTenantSoftwareSystemId,\n): readonly [string, string] {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n if (!system) {\n throw new Error(`Unknown tenant software system: ${systemId}.`);\n }\n return [system.convex.urlEnv, system.convex.deployKeyEnv] as const;\n}\n\nexport function tenantSoftwareSystemOwnsConvexEnvName(\n systemId: InfisicalTenantSoftwareSystemId,\n envName: string,\n): boolean {\n return tenantSoftwareSystemConvexEnvNames(systemId).includes(envName);\n}\n\nexport function convexTierForVercelDestinationEnvironment(\n environment: InfisicalVercelDestinationEnvironment,\n): InfisicalConvexTier {\n return INFISICAL_CONVEX_TIER_BY_VERCEL_ENVIRONMENT[environment];\n}\n\nexport function findInfisicalVercelSyncDestination(\n environment: InfisicalVercelDestinationEnvironment,\n): InfisicalVercelSyncDestination | undefined {\n return INFISICAL_VERCEL_SYNC_DESTINATIONS.find(\n (destination) => destination.environment === environment,\n );\n}\n\nexport function vercelCustomEnvironmentIdForTenantSoftwareSystem(\n systemId: InfisicalTenantSoftwareSystemId,\n environment: InfisicalVercelDestinationEnvironment,\n): string | undefined {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n const destination = findInfisicalVercelSyncDestination(environment);\n if (!system || !destination) {\n return undefined;\n }\n return destination.customEnvironmentIdsByProjectName?.[\n system.vercelProjectName\n ];\n}\n\nexport function expectedTenantConvexDeploymentForVercelEnvironment(\n systemId: InfisicalTenantSoftwareSystemId,\n environment: InfisicalVercelDestinationEnvironment,\n): string {\n const system = findInfisicalTenantSoftwareSystem(systemId);\n if (!system) {\n throw new Error(`Unknown tenant software system: ${systemId}.`);\n }\n return convexTierForVercelDestinationEnvironment(environment) === \"prod\"\n ? system.convex.prodDeployment\n : system.convex.preprodDeployment;\n}\n\nexport function findInfisicalRuntimePath(\n pathId: InfisicalRuntimePathId,\n): InfisicalRuntimePath | undefined {\n return INFISICAL_RUNTIME_PATHS.find((path) => path.id === pathId);\n}\n\nexport function findInfisicalRuntimeSurface(\n surfaceId: InfisicalRuntimeSurfaceId,\n): InfisicalRuntimeSurface | undefined {\n return INFISICAL_RUNTIME_SURFACES.find((surface) => surface.id === surfaceId);\n}\n\nexport const INFISICAL_SECRET_OWNERS = [\n \"lucern_platform\",\n \"tenant\",\n \"provider\",\n \"operator_local\",\n] as const;\nexport type InfisicalSecretOwner = (typeof INFISICAL_SECRET_OWNERS)[number];\n\nexport const INFISICAL_SECRET_SCOPES = [\n \"global\",\n \"environment\",\n \"tenant\",\n \"workspace\",\n \"software_system\",\n \"deployment\",\n \"local\",\n] as const;\nexport type InfisicalSecretScope = (typeof INFISICAL_SECRET_SCOPES)[number];\n\nexport const INFISICAL_SECRET_ENVIRONMENT_POLICIES = [\n \"same_all_environments\",\n \"environment_specific\",\n \"preprod_staging_prod_prod\",\n \"local_only\",\n] as const;\nexport type InfisicalSecretEnvironmentPolicy =\n (typeof INFISICAL_SECRET_ENVIRONMENT_POLICIES)[number];\n\nexport const INFISICAL_SECRET_CONSUMERS = [\n \"lucern-web\",\n \"lucern-gateway\",\n \"lucern-mcp\",\n \"lucern-cli\",\n \"lucern-ai-runtime\",\n \"lucern-graph-sync\",\n \"lucern-observability\",\n \"lucern-repo-ci\",\n \"mc-convex\",\n \"mc-operator-tooling\",\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-ai-runtime\",\n \"tenant-graph-sync\",\n \"tenant-observability\",\n \"tenant-vector-store\",\n \"tenant-deploy-tooling\",\n \"tenant-agent-runtime\",\n] as const;\nexport type InfisicalSecretConsumer = (typeof INFISICAL_SECRET_CONSUMERS)[number];\n\nexport const INFISICAL_SECRET_DESTINATION_KINDS = [\n \"vercel\",\n \"convex\",\n \"github_actions\",\n \"runtime_fetch\",\n \"operator_local\",\n] as const;\nexport type InfisicalSecretDestinationKind =\n (typeof INFISICAL_SECRET_DESTINATION_KINDS)[number];\n\nexport type InfisicalSecretDestination = {\n readonly kind: InfisicalSecretDestinationKind;\n readonly target: string;\n readonly environmentPolicy: InfisicalSecretEnvironmentPolicy;\n readonly writeNames?: readonly string[];\n readonly notes?: string;\n};\n\nexport type InfisicalSecretDefinition = {\n readonly id: string;\n readonly canonicalName: string;\n readonly aliases?: readonly string[];\n readonly owner: InfisicalSecretOwner;\n readonly scope: InfisicalSecretScope;\n readonly sourcePath: string;\n readonly environmentPolicy: InfisicalSecretEnvironmentPolicy;\n readonly required: boolean;\n readonly secret: boolean;\n readonly public: boolean;\n readonly consumers: readonly InfisicalSecretConsumer[];\n readonly destinations: readonly InfisicalSecretDestination[];\n readonly description: string;\n};\n\nconst PLATFORM_SECRET_DEFINITIONS = [\n {\n id: \"platform.clerk.publishable\",\n canonicalName: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n aliases: [\"CLERK_PUBLISHABLE_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: true,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk browser key for platform web, gateway, and hosted MCP OAuth flows.\",\n },\n {\n id: \"platform.clerk.secret\",\n canonicalName: \"CLERK_SECRET_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk backend secret. Never route to tenant-owned apps unless that tenant is Lucern itself.\",\n },\n {\n id: \"platform.clerk.project\",\n canonicalName: \"CLERK_PROJECT_ID\",\n aliases: [\"LUCERN_CLERK_PROJECT_ID\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-convex\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Lucern Clerk project identifier used when MC resolves Clerk identities.\",\n },\n {\n id: \"platform.clerk.webhook-secret\",\n canonicalName: \"LUCERN_CLERK_WEBHOOK_SECRET\",\n aliases: [\"CLERK_WEBHOOK_SECRET\", \"CLERK_WEBHOOK_SIGNING_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Clerk/Svix webhook signing secret used by the gateway to verify Clerk identity and organization events before projecting them into Permit.\",\n },\n {\n id: \"platform.clerk.jwks\",\n canonicalName: \"CLERK_JWKS_URL\",\n aliases: [\"CLERK_JWT_ISSUER_DOMAIN\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/auth\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-mcp\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Optional Clerk JWKS/issuer override for server-side token verification.\",\n },\n {\n id: \"platform.runtime.api-base-url\",\n canonicalName: \"LUCERN_API_URL\",\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_BASE_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Lucern API gateway base URL. Older names remain aliases only.\",\n },\n {\n id: \"platform.runtime.login-base-url\",\n canonicalName: \"LUCERN_LOGIN_BASE_URL\",\n aliases: [\"LUCERN_AUTH_BASE_URL\", \"LUCERN_WEB_BASE_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Browser login origin used when device/OAuth login is not served by the API base URL.\",\n },\n {\n id: \"platform.runtime.environment\",\n canonicalName: \"LUCERN_ENVIRONMENT\",\n aliases: [\"LUCERN_ENV\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-mcp\", \"lucern-cli\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern runtime environment label.\",\n },\n {\n id: \"platform.runtime.require-deployment-host-registry\",\n canonicalName: \"LUCERN_REQUIRE_DEPLOYMENT_HOST_REGISTRY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Fail-closed gateway toggle that requires MC deployment host registry resolution before routing.\",\n },\n {\n id: \"platform.mc.convex-url\",\n canonicalName: \"CONVEX_MC_URL\",\n aliases: [\n \"CONVEX_MC_PROD_URL\",\n \"LUCERN_ADMIN_CONVEX_URL\",\n \"LUCERN_CONVEX_URL\",\n \"MC_CONVEX_URL\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Master Control Convex URL. Prod must point to successful-clam-833; dev/staging to utmost-ox-403.\",\n },\n {\n id: \"platform.mc.convex-deploy-key\",\n canonicalName: \"CONVEX_MC_DEPLOY_KEY\",\n aliases: [\n \"CONVEX_MC_PROD_DEPLOY_KEY\",\n \"LUCERN_ADMIN_DEPLOY_KEY\",\n \"LUCERN_DEPLOY_KEY\",\n \"MC_DEPLOY_KEY\",\n \"MC_PROD_DEPLOY_KEY\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-gateway\", \"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Master Control deploy/admin key. Never route to tenant Vercel projects or tenant Convex deployments.\",\n },\n {\n id: \"platform.mc.session-token-secret\",\n canonicalName: \"LUCERN_SESSION_TOKEN_SECRET\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-mcp\", \"mc-convex\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Signs Lucern platform session/delegation tokens. This is platform-owned, not tenant-owned.\",\n },\n {\n id: \"platform.mc.tenant-secret-encryption-key\",\n canonicalName: \"LUCERN_TENANT_SECRET_ENCRYPTION_KEY\",\n aliases: [\"LUCERN_SESSION_TOKEN_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/mc\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"mc-credential-maintenance\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Encrypts tenant deployment credentials stored in MC. Session-token fallback is legacy only.\",\n },\n {\n id: \"platform.permit.api-key\",\n canonicalName: \"LUCERN_PERMIT_API_KEY\",\n aliases: [\"PERMIT_API_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Permit.io API key used for MC sync and policy checks. Must fail closed if missing.\",\n },\n {\n id: \"platform.permit.webhook-secret\",\n canonicalName: \"LUCERN_PERMIT_WEBHOOK_SECRET\",\n aliases: [\"PERMIT_WEBHOOK_SECRET\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"mc-convex\", \"lucern-gateway\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"mc-credential-maintenance\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Permit.io webhook secret used by gateway and MC webhook handlers. Must fail closed if missing.\",\n },\n {\n id: \"platform.permit.pdp-url\",\n canonicalName: \"LUCERN_PERMIT_PDP_URL\",\n aliases: [\"PERMIT_PDP_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional Permit PDP URL override.\",\n },\n {\n id: \"platform.permit.api-url\",\n canonicalName: \"LUCERN_PERMIT_API_URL\",\n aliases: [\"PERMIT_API_URL\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/permit\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-convex\", \"lucern-mcp\", \"lucern-gateway\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"master-control\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"runtime_fetch\",\n target: \"hosted-mcp-oauth\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional Permit API URL override.\",\n },\n {\n id: \"platform.ci.infisical-bootstrap-client-id\",\n canonicalName: \"INFISICAL_BOOTSTRAP_CLIENT_ID\",\n aliases: [\"INFISICAL_CI_CLIENT_ID\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/ci\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Machine identity client id used by CI to reconcile Infisical desired state.\",\n },\n {\n id: \"platform.ci.infisical-bootstrap-client-secret\",\n canonicalName: \"INFISICAL_BOOTSTRAP_CLIENT_SECRET\",\n aliases: [\"INFISICAL_CI_CLIENT_SECRET\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/ci\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Machine identity client secret used by CI to reconcile Infisical desired state.\",\n },\n {\n id: \"platform.publish.npm-token\",\n canonicalName: \"NPM_TOKEN\",\n aliases: [\"NODE_AUTH_TOKEN\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/publish\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Package publish/install token for @lucern/* release automation.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_AI_SECRET_DEFINITIONS = [\n {\n id: \"platform.ai.openai-api-key\",\n canonicalName: \"OPENAI_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned OpenAI key for platform AI jobs, benchmarks, and controlled operator automation.\",\n },\n {\n id: \"platform.ai.anthropic-api-key\",\n canonicalName: \"ANTHROPIC_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Anthropic key for platform AI jobs, benchmarks, and controlled operator automation.\",\n },\n {\n id: \"platform.ai.gemini-api-key\",\n canonicalName: \"GEMINI_API_KEY\",\n aliases: [\"GOOGLE_AI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/ai\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Google/Gemini key. Google alias names are read compatibility only.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_LANGFUSE_SECRET_DEFINITIONS = [\n {\n id: \"platform.langfuse.secret-key\",\n canonicalName: \"LANGFUSE_SECRET_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Langfuse secret key for prompt sync, prompt reads, and AI tracing.\",\n },\n {\n id: \"platform.langfuse.public-key\",\n canonicalName: \"LANGFUSE_PUBLIC_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Langfuse public key paired with LANGFUSE_SECRET_KEY.\",\n },\n {\n id: \"platform.langfuse.base-url\",\n canonicalName: \"LANGFUSE_BASE_URL\",\n aliases: [\"LANGFUSE_BASEURL\", \"LANGFUSE_HOST\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/langfuse\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-observability\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Canonical Langfuse API origin. BASEURL/HOST are compatibility aliases.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_GRAPH_STORE_SECRET_DEFINITIONS = [\n {\n id: \"platform.neo4j.uri\",\n canonicalName: \"NEO4J_URI\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Neo4j URI for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_USERNAME\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Neo4j username for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.password\",\n canonicalName: \"NEO4J_PASSWORD\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern-owned Neo4j password for platform graph-sync surfaces.\",\n },\n {\n id: \"platform.neo4j.sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Shared secret protecting Lucern-owned graph-sync HTTP/query proxy calls.\",\n },\n {\n id: \"platform.neo4j.database\",\n canonicalName: \"NEO4J_DATABASE\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Optional Neo4j database name for Lucern-owned graph-sync surfaces.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_VECTOR_STORE_SECRET_DEFINITIONS = [\n {\n id: \"platform.pinecone.api-key\",\n canonicalName: \"PINECONE_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone API key for platform vector search.\",\n },\n {\n id: \"platform.pinecone.index-name\",\n canonicalName: \"PINECONE_INDEX_NAME\",\n aliases: [\"PINECONE_INDEX\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone index name.\",\n },\n {\n id: \"platform.pinecone.host\",\n canonicalName: \"PINECONE_HOST\",\n aliases: [\"PINECONE_INDEX_HOST\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/vector/pinecone\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-ai-runtime\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-ai-runtime\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Pinecone host/index host.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_SENTRY_SECRET_DEFINITIONS = [\n {\n id: \"platform.sentry.dsn\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_DSN\",\n aliases: [\"SENTRY_DSN\", \"NEXT_PUBLIC_SENTRY_DSN_NEXTJS\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry DSN for browser/server error telemetry.\",\n },\n {\n id: \"platform.sentry.auth-token\",\n canonicalName: \"SENTRY_AUTH_TOKEN\",\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Sentry release-upload token. Runtime services must not use it for authorization.\",\n },\n {\n id: \"platform.sentry.org\",\n canonicalName: \"SENTRY_ORG\",\n aliases: [\"SENTRY_ORG_SLUG\"],\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Sentry organization slug for Lucern release uploads.\",\n },\n {\n id: \"platform.sentry.project\",\n canonicalName: \"SENTRY_PROJECT\",\n aliases: [\"SENTRY_PROJECT_NEXTJS\"],\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Sentry project slug for Lucern release uploads.\",\n },\n {\n id: \"platform.sentry.environment\",\n canonicalName: \"SENTRY_ENVIRONMENT\",\n aliases: [\"NEXT_PUBLIC_SENTRY_ENVIRONMENT\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n writeNames: [\"SENTRY_ENVIRONMENT\", \"NEXT_PUBLIC_SENTRY_ENVIRONMENT\"],\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry environment label.\",\n },\n {\n id: \"platform.sentry.release\",\n canonicalName: \"SENTRY_RELEASE\",\n aliases: [\"NEXT_PUBLIC_SENTRY_RELEASE\"],\n owner: \"provider\",\n scope: \"environment\",\n sourcePath: \"/platform/observability/sentry\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-web\", \"lucern-gateway\", \"lucern-observability\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern\",\n environmentPolicy: \"environment_specific\",\n writeNames: [\"SENTRY_RELEASE\", \"NEXT_PUBLIC_SENTRY_RELEASE\"],\n },\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Lucern-owned Sentry release name.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_DEPLOY_AUTOMATION_SECRET_DEFINITIONS = [\n {\n id: \"platform.deploy.vercel-token\",\n canonicalName: \"VERCEL_TOKEN\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Vercel API token for the future reviewed live writer. Never copy into tenant apps.\",\n },\n {\n id: \"platform.deploy.vercel-token.stack\",\n canonicalName: \"STACK_VERCEL_TOKEN\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Stack Vercel API token for manifest-scoped Stack tenant Vercel secret sync. Never copy into tenant apps.\",\n },\n {\n id: \"platform.deploy.vercel-token.lucern\",\n canonicalName: \"LUCERN_VERCEL_TOKEN\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Lucern Vercel API token for manifest-scoped Lucern tenant Vercel secret sync. Never copy into tenant apps.\",\n },\n {\n id: \"platform.deploy.vercel-org-id\",\n canonicalName: \"VERCEL_ORG_ID\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/platform/deploy/vercel\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"secret-sync-writer\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: \"Vercel team/org id used by deployment and sync automation.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst PLATFORM_LOCAL_OPERATOR_CONFIG_SECRET_DEFINITIONS = [\n {\n id: \"platform.docs.gap-audit-api-key\",\n canonicalName: \"DOC_GAP_AUDIT_API_KEY\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional model key for docs gap audits.\",\n },\n {\n id: \"platform.docs.gap-audit-provider\",\n canonicalName: \"DOC_GAP_AUDIT_PROVIDER\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional docs gap audit provider selector.\",\n },\n {\n id: \"platform.docs.gap-audit-model\",\n canonicalName: \"DOC_GAP_AUDIT_MODEL\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/docs\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Optional docs gap audit model selector.\",\n },\n {\n id: \"platform.infisical.local-cli\",\n canonicalName: \"INFISICAL_BIN\",\n aliases: [\"INFISICAL_API_URL\", \"INFISICAL_URL\"],\n owner: \"lucern_platform\",\n scope: \"global\",\n sourcePath: \"/platform/infisical\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Operator-only Infisical CLI/API location knobs. Machine credentials are handled by the bootstrap contract.\",\n },\n {\n id: \"platform.gateway.device-verification-base-url\",\n canonicalName: \"LUCERN_DEVICE_VERIFICATION_BASE_URL\",\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Base URL shown during Lucern CLI/device authentication.\",\n },\n {\n id: \"platform.gateway.mode\",\n canonicalName: \"LUCERN_GATEWAY_MODE\",\n aliases: [\"LUCERN_GATEWAY_ENV\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-gateway\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"vercel\",\n target: \"lucern-gateway\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Gateway runtime mode/environment label.\",\n },\n {\n id: \"platform.mcp.runtime\",\n canonicalName: \"LUCERN_MCP_URL\",\n aliases: [\n \"LUCERN_AGENT_IDENTITY\",\n \"LUCERN_HTTP_HOST\",\n \"LUCERN_HTTP_PORT\",\n \"LUCERN_MCP_ALLOW_API_KEY_PASSTHROUGH\",\n \"LUCERN_MCP_DEBUG\",\n \"LUCERN_MCP_DIAGNOSTICS_FILE\",\n \"LUCERN_MCP_HEALTH_PATH\",\n \"LUCERN_MCP_HEALTH_URL\",\n \"LUCERN_MCP_HOST\",\n \"LUCERN_MCP_PATH\",\n \"LUCERN_MCP_PORT\",\n \"LUCERN_MCP_QUIET\",\n \"LUCERN_MCP_TRANSPORT\",\n \"LUCERN_PROFILE\",\n \"LUCERN_PUBLIC_URL\",\n \"MCP_SERVER_URL\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-cli\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Lucern MCP/CLI runtime knobs. Aliases are compatibility names and not Vercel write names.\",\n },\n {\n id: \"platform.mcp.auth-token\",\n canonicalName: \"LUCERN_MCP_SERVER_AUTH_TOKEN\",\n aliases: [\"LUCERN_USER_TOKEN\", \"MCP_SERVER_TOKEN\"],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-mcp\", \"lucern-cli\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Local/hosted MCP auth token material. Tenant apps must use MC/API-key sessions instead.\",\n },\n {\n id: \"platform.graph-sync.proxy\",\n canonicalName: \"LUCERN_GRAPH_SYNC_QUERY_BASE_URL\",\n aliases: [\n \"LUCERN_DEFAULT_TENANT_ID\",\n \"LUCERN_GRAPH_SYNC_ALLOWED_PROXY_HOSTS\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/graph/neo4j\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-graph-sync\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-graph-sync\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description: \"Graph-sync proxy URL, tenant filter, and allowed host list.\",\n },\n {\n id: \"platform.package-smoke.local\",\n canonicalName: \"LUCERN_SDK_NPM_TOKEN\",\n aliases: [\n \"LUCERN_KERNEL_INSTALL_SPEC\",\n \"LUCERN_KERNEL_KEEP_CLEANROOM\",\n \"LUCERN_KERNEL_LOCAL_TARBALL\",\n \"LUCERN_KERNEL_NPM_TOKEN\",\n \"LUCERN_KERNEL_SCOPE_REGISTRY\",\n \"LUCERN_KERNEL_SKIP_CONVEX\",\n \"LUCERN_SDK_INSTALL_SPEC\",\n \"LUCERN_SDK_KEEP_CLEANROOM\",\n \"LUCERN_SDK_LOCAL_TARBALL\",\n \"LUCERN_SDK_SCOPE_REGISTRY\",\n \"LUCERN_SDK_SKIP_LIVE\",\n ],\n owner: \"lucern_platform\",\n scope: \"global\",\n sourcePath: \"/platform/package-publish\",\n environmentPolicy: \"same_all_environments\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"github_actions\",\n target: \"LucernAI/lucern\",\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description:\n \"Private package install smoke-test knobs. Values are not tenant runtime variables.\",\n },\n {\n id: \"platform.convex-deploy.local-names\",\n canonicalName: \"LUCERN_CONVEX_DEPLOYMENT_NAME\",\n aliases: [\n \"CONVEX_DEPLOYMENT\",\n \"CONVEX_DEV_DEPLOYMENT_NAME\",\n \"CONVEX_PROD_DEPLOYMENT_NAME\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/deploy/convex\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"mc-operator-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Operator-only Convex deployment name hints. Deploy keys and URLs remain separately scoped.\",\n },\n {\n id: \"platform.sdk.local-context\",\n canonicalName: \"LUCERN_TENANT_ID\",\n aliases: [\n \"LUCERN_AGENT_DISPLAY_NAME\",\n \"LUCERN_AGENT_ID\",\n \"LUCERN_API_ENVIRONMENT\",\n \"LUCERN_PACK_KEY\",\n \"LUCERN_PROJECT_ID\",\n \"LUCERN_TOPIC_ID\",\n \"LUCERN_WORKSPACE_ID\",\n \"LUCERN_WORKTREE_ID\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-cli\", \"lucern-mcp\", \"tenant-agent-runtime\"],\n destinations: [\n {\n kind: \"runtime_fetch\",\n target: \"lucern-cli-mcp-sdk\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"SDK, CLI, and agent context selectors. These identify scope and must not grant access by themselves.\",\n },\n {\n id: \"platform.debug.local-flags\",\n canonicalName: \"LUCERN_FUNCTIONAL_DEBUG\",\n aliases: [\n \"LUCERN_CONTRACTS_SKIP_DTS\",\n \"LUCERN_DEPLOY_RECONCILIATION_DEBUG\",\n \"LUCERN_ENABLE_ADAPTIVE_LEARNING\",\n \"LUCERN_ENV_FILE\",\n \"LUCERN_EXAMPLE_DEBUG\",\n \"LUCERN_HTTP_SMOKE_DEBUG\",\n \"LUCERN_MULTI_TENANT\",\n \"LUCERN_PACK_ACTION_DEBUG\",\n \"LUCERN_RUN_LIVE_MCP\",\n ],\n owner: \"lucern_platform\",\n scope: \"environment\",\n sourcePath: \"/platform/runtime/debug\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"lucern-repo-ci\", \"mc-operator-tooling\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"lucern-repo\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"Local or CI debug toggles. They are manifest-known but not tenant runtime secrets.\",\n },\n {\n id: \"tenant.stackos.deploy-guard.local\",\n canonicalName: \"STACKOS_DEPLOY_TARGET\",\n aliases: [\n \"STACKOS_DEPLOY_ENTRYPOINT\",\n \"STACKOS_EXPECTED_STAGING_COMMIT\",\n \"STACKOS_PROD_CUTOVER_APPROVED\",\n \"STACKOS_REPO_PATH\",\n \"STACKOS_REQUIRE_CHAT_RUNTIME\",\n \"STACKOS_SLOP_SCAN_BASELINE\",\n \"STACKOS_STAGING_API_KEY\",\n \"STACKOS_STAGING_BASE_URL\",\n \"STACK_DEPLOY_RECONCILIATION_SCHEMA_JSON\",\n ],\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: \"/tenants/stack\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"lucern-repo-ci\"],\n destinations: [\n {\n kind: \"operator_local\",\n target: \"stackos-deploy-guard\",\n environmentPolicy: \"environment_specific\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos\",\n environmentPolicy: \"environment_specific\",\n },\n ],\n description:\n \"StackOS deploy/test guard variables. These are not written into the StackOS Vercel runtime.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst TENANT_SHARED_SECRET_DEFINITION_TEMPLATES = [\n {\n idSuffix: \"clerk.publishable\",\n canonicalName: \"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY\",\n aliases: [\"CLERK_PUBLISHABLE_KEY\"],\n required: true,\n secret: false,\n public: true,\n description:\n \"Tenant-owned Clerk browser key. For Stack this is the master clerk.stack.vc project shared by front-end, StackOS, and the engineering workspace.\",\n },\n {\n idSuffix: \"clerk.secret\",\n canonicalName: \"CLERK_SECRET_KEY\",\n required: true,\n secret: true,\n public: false,\n description:\n \"Tenant-owned Clerk backend secret used only by that tenant's server runtimes.\",\n },\n {\n idSuffix: \"clerk.project\",\n canonicalName: \"CLERK_PROJECT_ID\",\n required: true,\n secret: false,\n public: false,\n description:\n \"Tenant-owned Clerk project id used to resolve canonical Clerk aliases.\",\n },\n {\n idSuffix: \"clerk.jwks\",\n canonicalName: \"CLERK_JWT_ISSUER_DOMAIN\",\n aliases: [\"CLERK_ISSUER_URL\", \"CLERK_JWKS_URL\"],\n required: false,\n secret: false,\n public: false,\n description:\n \"Tenant Clerk issuer/JWKS URL consumed by Convex auth.config.ts.\",\n },\n {\n idSuffix: \"clerk.jwt-key\",\n canonicalName: \"CLERK_JWT_KEY\",\n required: false,\n secret: true,\n public: false,\n description:\n \"Tenant Clerk JWT public verification key used by bearer-token API routes.\",\n },\n {\n idSuffix: \"clerk.authorized-parties\",\n canonicalName: \"CLERK_AUTHORIZED_PARTIES\",\n aliases: [\"CLERK_MOBILE_AUTHORIZED_PARTIES\"],\n required: false,\n secret: false,\n public: false,\n description:\n \"Comma-separated Clerk authorized parties for browser and mobile bearer-token validation.\",\n },\n {\n idSuffix: \"clerk.sign-in-url\",\n canonicalName: \"NEXT_PUBLIC_CLERK_SIGN_IN_URL\",\n required: false,\n secret: false,\n public: true,\n description:\n \"Tenant Clerk sign-in route for custom app login surfaces.\",\n },\n {\n idSuffix: \"clerk.sign-up-url\",\n canonicalName: \"NEXT_PUBLIC_CLERK_SIGN_UP_URL\",\n required: false,\n secret: false,\n public: true,\n description:\n \"Tenant Clerk sign-up route for custom app login surfaces.\",\n },\n] as const;\n\nconst TENANT_SHARED_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap((system) =>\n TENANT_SHARED_SECRET_DEFINITION_TEMPLATES.map(\n (template): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.${template.idSuffix}`,\n canonicalName: template.canonicalName,\n aliases: \"aliases\" in template ? template.aliases : undefined,\n owner: \"tenant\",\n scope: \"tenant\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: template.required,\n secret: template.secret,\n public: template.public,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"convex\",\n target: `${system.convex.preprodDeployment}|${system.convex.prodDeployment}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: ${template.description}`,\n }),\n ),\n );\n\nconst TENANT_INSTALL_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.map(\n (system): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.install-lucern-npm`,\n canonicalName: \"INSTALL_LUCERN_NPM\",\n owner: \"provider\",\n scope: \"global\",\n sourcePath: \"/tenants/shared\",\n environmentPolicy: \"same_all_environments\",\n required: true,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-deploy-tooling\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"same_all_environments\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"same_all_environments\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: read-only npm install token for published @lucern/* packages.`,\n }),\n );\n\nconst TENANT_PRODUCT_SOFTWARE_SYSTEM_IDS = [\"stack-frontend\", \"stackos\"];\n\nconst TENANT_PRODUCT_RUNTIME_SECRET_DEFINITION_TEMPLATES = [\n {\n idSuffix: \"ai.openai-api-key\",\n canonicalName: \"OPENAI_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description: \"Tenant-owned OpenAI key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"ai.anthropic-api-key\",\n canonicalName: \"ANTHROPIC_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description: \"Tenant-owned Anthropic key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"ai.gemini-api-key\",\n canonicalName: \"GEMINI_API_KEY\",\n aliases: [\"GOOGLE_AI_API_KEY\", \"GOOGLE_GENERATIVE_AI_API_KEY\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\", \"tenant-ai-runtime\"],\n description:\n \"Tenant-owned Google/Gemini key for product runtime LLM calls.\",\n },\n {\n idSuffix: \"langfuse.secret-key\",\n canonicalName: \"LANGFUSE_SECRET_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse secret key for product AI tracing.\",\n },\n {\n idSuffix: \"langfuse.public-key\",\n canonicalName: \"LANGFUSE_PUBLIC_KEY\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse public key for product AI tracing.\",\n },\n {\n idSuffix: \"langfuse.base-url\",\n canonicalName: \"LANGFUSE_BASE_URL\",\n aliases: [\"LANGFUSE_BASEURL\", \"LANGFUSE_HOST\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-observability\",\n ],\n description: \"Tenant-owned Langfuse API origin.\",\n },\n {\n idSuffix: \"graph.neo4j-uri\",\n canonicalName: \"NEO4J_URI\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j URI for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_USERNAME\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j user for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-password\",\n canonicalName: \"NEO4J_PASSWORD\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j password for product graph-sync.\",\n },\n {\n idSuffix: \"graph.neo4j-sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description:\n \"Tenant-owned shared secret for product Convex-to-HTTP graph-sync calls.\",\n },\n {\n idSuffix: \"graph.neo4j-database\",\n canonicalName: \"NEO4J_DATABASE\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-graph-sync\",\n ],\n description: \"Tenant-owned Neo4j database name for product graph-sync.\",\n },\n {\n idSuffix: \"vector.pinecone-api-key\",\n canonicalName: \"PINECONE_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone API key for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-index-name\",\n canonicalName: \"PINECONE_INDEX_NAME\",\n aliases: [\"PINECONE_INDEX\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone index name for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-host\",\n canonicalName: \"PINECONE_HOST\",\n aliases: [\"PINECONE_INDEX_HOST\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description: \"Tenant-owned Pinecone host for product vector search.\",\n },\n {\n idSuffix: \"vector.pinecone-namespace\",\n canonicalName: \"PINECONE_NAMESPACE\",\n required: false,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-convex-deployment\",\n \"tenant-vector-store\",\n ],\n description:\n \"Tenant-owned Pinecone namespace for product vector search isolation.\",\n },\n {\n idSuffix: \"storage.aws-access-key-id\",\n canonicalName: \"AWS_ACCESS_KEY_ID\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description: \"Tenant-owned AWS access key id for document/file ingestion.\",\n },\n {\n idSuffix: \"storage.aws-secret-access-key\",\n canonicalName: \"AWS_SECRET_ACCESS_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description:\n \"Tenant-owned AWS secret access key for document/file ingestion.\",\n },\n {\n idSuffix: \"storage.aws-region\",\n canonicalName: \"AWS_REGION\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-convex-deployment\"],\n description: \"Tenant-owned AWS region for document/file ingestion.\",\n },\n {\n idSuffix: \"observability.sentry-dsn\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_DSN\",\n aliases: [\"NEXT_PUBLIC_SENTRY_DSN_NEXTJS\", \"SENTRY_DSN\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry DSN for app telemetry.\",\n },\n {\n idSuffix: \"observability.sentry-auth-token\",\n canonicalName: \"SENTRY_AUTH_TOKEN\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry release token for app deployments.\",\n },\n {\n idSuffix: \"observability.sentry-org\",\n canonicalName: \"SENTRY_ORG\",\n aliases: [\"SENTRY_ORG_SLUG\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry org slug for release uploads.\",\n },\n {\n idSuffix: \"observability.sentry-project\",\n canonicalName: \"SENTRY_PROJECT\",\n aliases: [\"SENTRY_PROJECT_NEXTJS\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-deploy-tooling\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry project slug for release uploads.\",\n },\n {\n idSuffix: \"observability.sentry-environment\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_ENVIRONMENT\",\n aliases: [\"SENTRY_ENVIRONMENT\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry environment label.\",\n },\n {\n idSuffix: \"observability.sentry-release\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_RELEASE\",\n aliases: [\"SENTRY_RELEASE\"],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry release label.\",\n },\n {\n idSuffix: \"observability.sentry-client-options\",\n canonicalName: \"NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE\",\n aliases: [\n \"NEXT_PUBLIC_SENTRY_CAPTURE_CONSOLE_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CAPTURE_CONSOLE_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_BREADCRUMB_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_BREADCRUMB_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_LOG_LEVELS\",\n \"NEXT_PUBLIC_SENTRY_CONSOLE_LOG_LEVELS_NEXTJS\",\n \"NEXT_PUBLIC_SENTRY_ENABLE_LOGS\",\n \"NEXT_PUBLIC_SENTRY_REPLAYS_ON_ERROR_SAMPLE_RATE\",\n \"NEXT_PUBLIC_SENTRY_REPLAYS_SESSION_SAMPLE_RATE\",\n \"NEXT_PUBLIC_SENTRY_SEND_DEFAULT_PII\",\n \"NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE_NEXTJS\",\n ],\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\", \"tenant-observability\"],\n description:\n \"Tenant-owned public Sentry tuning values for Next.js client instrumentation.\",\n },\n {\n idSuffix: \"observability.sentry-webhook-secret\",\n canonicalName: \"SENTRY_WEBHOOK_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-convex-deployment\", \"tenant-observability\"],\n description: \"Tenant-owned Sentry webhook verification secret.\",\n },\n {\n idSuffix: \"lucern.gateway-api-key\",\n canonicalName: \"LUCERN_API_KEY\",\n aliases: [\"STACK_API_KEY\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description:\n \"Tenant-scoped Lucern/MC gateway API key for product front-door calls.\",\n },\n {\n idSuffix: \"lucern.gateway-base-url\",\n canonicalName: \"LUCERN_BASE_URL\",\n aliases: [\"LUCERN_API_BASE_URL\", \"LUCERN_GATEWAY_BASE_URL\"],\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description: \"Lucern/MC gateway base URL used by tenant product apps.\",\n },\n {\n idSuffix: \"lucern.proxy-token-secret\",\n canonicalName: \"LUCERN_PROXY_TOKEN_SECRET\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description:\n \"Tenant-owned secret for signing internal proxy/session tokens in product apps.\",\n },\n {\n idSuffix: \"tenant.integrations.linear-api-key\",\n canonicalName: \"LINEAR_API_KEY\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-agent-runtime\"],\n description: \"Tenant-owned Linear API key for support/slash-command flows.\",\n },\n {\n idSuffix: \"tenant.vercel.bypass-token\",\n canonicalName: \"VERCEL_AUTOMATION_BYPASS_SECRET\",\n aliases: [\"NEXT_PUBLIC_VERCEL_BYPASS_TOKEN\"],\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-vercel-app\", \"tenant-deploy-tooling\"],\n description:\n \"Tenant-owned Vercel automation bypass token. Public alias is legacy and should be removed from app code.\",\n },\n] as const;\n\nconst TENANT_PRODUCT_RUNTIME_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.filter((system) =>\n TENANT_PRODUCT_SOFTWARE_SYSTEM_IDS.includes(system.id),\n ).flatMap((system) =>\n TENANT_PRODUCT_RUNTIME_SECRET_DEFINITION_TEMPLATES.map(\n (template): InfisicalSecretDefinition => ({\n id: `tenant.${system.id}.${template.idSuffix}`,\n canonicalName: template.canonicalName,\n aliases: \"aliases\" in template ? template.aliases : undefined,\n owner: \"tenant\",\n scope: \"tenant\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: template.required,\n secret: template.secret,\n public: template.public,\n consumers: template.consumers,\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"convex\",\n target: `${system.convex.preprodDeployment}|${system.convex.prodDeployment}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey}: ${template.description}`,\n }),\n ),\n );\n\nfunction tenantVercelConvexUrlWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n const names = [system.convex.urlEnv, \"NEXT_PUBLIC_CONVEX_URL\"];\n if (system.id === \"stack-eng\") {\n return [...names, \"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n return names;\n}\n\nfunction tenantRepositoryConvexUrlWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n if (system.id === \"stack-eng\") {\n return [system.convex.urlEnv, \"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n return [system.convex.urlEnv];\n}\n\nfunction tenantRepositoryConvexDeployKeyWriteNames(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] {\n if (system.id === \"stack-eng\") {\n return [system.convex.deployKeyEnv, \"STACKOS_ENGINEERING_GRAPH_DEPLOY_KEY\"];\n }\n return [system.convex.deployKeyEnv];\n}\n\nfunction tenantConvexUrlAliases(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] | undefined {\n if (system.id === \"stack-frontend\") {\n return [\n \"CONVEX_PROD_URL\",\n \"CONVEX_STACK_V2_PROD_URL\",\n \"CONVEX_STACK_V2_STAGING_URL\",\n \"STACK_CONVEX_URL\",\n ];\n }\n if (system.id === \"stackos\") {\n return [\n \"CONVEX_CLOUD_URL\",\n \"CONVEX_STACK_URL\",\n \"CONVEX_URL\",\n \"CONVEX_URL_DEVELOPMENT\",\n \"CONVEX_URL_PRODUCTION\",\n \"STACK_CONVEX_URL\",\n ];\n }\n if (system.id === \"stack-eng\") {\n return [\"STACKOS_ENGINEERING_GRAPH_CONVEX_URL\"];\n }\n if (system.id === \"lucern-graph\") {\n return [\n \"CONVEX_GRAPH_URL\",\n \"LUCERN_PROD_URL\",\n \"NEXT_PUBLIC_LUCERN_GRAPH_URL\",\n ];\n }\n return undefined;\n}\n\nfunction tenantConvexDeployKeyAliases(\n system: InfisicalTenantSoftwareSystem,\n): readonly string[] | undefined {\n if (system.id === \"stack-frontend\") {\n return [\n \"CONVEX_STACK_V2_PROD_DEPLOY_KEY\",\n \"CONVEX_STACK_V2_STAGING_DEPLOY_KEY\",\n \"STACK_DEPLOY_KEY\",\n ];\n }\n if (system.id === \"stackos\") {\n return [\n \"CONVEX_DEPLOY_KEY\",\n \"CONVEX_DEV_DEPLOY_KEY\",\n \"CONVEX_PROD_DEPLOY_KEY\",\n \"CONVEX_STACK_DEPLOY_KEY\",\n \"STACK_DEPLOY_KEY\",\n ];\n }\n if (system.id === \"stack-eng\") {\n return [\"CONVEX_DEPLOY_KEY\", \"STACKOS_ENGINEERING_GRAPH_DEPLOY_KEY\"];\n }\n if (system.id === \"lucern-graph\") {\n return [\n \"CONVEX_DEPLOY_KEY\",\n \"CONVEX_GRAPH_DEPLOY_KEY\",\n \"LUCERN_CONVEX_DEPLOY_KEY\",\n \"LUCERN_DEV_DEPLOY_KEY\",\n \"LUCERN_PROD_DEPLOY_KEY\",\n ];\n }\n return undefined;\n}\n\nconst TENANT_GRAPH_PUBLIC_CONFIG_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap(\n (system): readonly InfisicalSecretDefinition[] => {\n if (system.id === \"lucern-graph\") {\n return [\n {\n id: \"tenant.lucern-graph.public.tenant-id\",\n canonicalName: \"NEXT_PUBLIC_LUCERN_GRAPH_TENANT_ID\",\n aliases: [\"NEXT_PUBLIC_LUCERN_TENANT_ID\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Lucern graph public tenant id used by the standalone graph explorer.\",\n },\n {\n id: \"tenant.lucern-graph.public.tenant-label\",\n canonicalName: \"NEXT_PUBLIC_LUCERN_GRAPH_TENANT_LABEL\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Lucern graph public tenant label used by the standalone graph explorer.\",\n },\n ] as const satisfies readonly InfisicalSecretDefinition[];\n }\n if (system.id === \"stack-eng\") {\n return [\n {\n id: \"tenant.stack-eng.public.tenant-id\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_TENANT_ID\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public tenant id used by the graph explorer.\",\n },\n {\n id: \"tenant.stack-eng.public.tenant-label\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_TENANT_LABEL\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public tenant label used by the graph explorer.\",\n },\n {\n id: \"tenant.stack-eng.public.environment\",\n canonicalName: \"NEXT_PUBLIC_STACKOS_ENGINEERING_GRAPH_ENV\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: true,\n consumers: [\"tenant-vercel-app\"],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph public environment label used by the graph explorer.\",\n },\n ] as const satisfies readonly InfisicalSecretDefinition[];\n }\n return [] as const;\n });\n\nconst STACK_ENG_GRAPH_STORE_SECRET_DEFINITIONS = [\n {\n id: \"tenant.stack-eng.neo4j.uri\",\n canonicalName: \"NEO4J_URI\",\n aliases: [\"NEO4J_ENG_URI\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph Neo4j runtime URI. NEO4J_ENG_URI is the source alias used to avoid StackOS front-office collisions.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.user\",\n canonicalName: \"NEO4J_USER\",\n aliases: [\"NEO4J_ENG_USER\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: false,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: \"Stack engineering graph Neo4j runtime user.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.password\",\n canonicalName: \"NEO4J_PASSWORD\",\n aliases: [\"NEO4J_ENG_PASSWORD\"],\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description: \"Stack engineering graph Neo4j runtime password.\",\n },\n {\n id: \"tenant.stack-eng.neo4j.sync-secret\",\n canonicalName: \"NEO4J_SYNC_SECRET\",\n owner: \"tenant\",\n scope: \"workspace\",\n sourcePath: \"/tenants/stack/engineering\",\n environmentPolicy: \"environment_specific\",\n required: false,\n secret: true,\n public: false,\n consumers: [\"tenant-graph-sync\", \"tenant-convex-deployment\"],\n destinations: [\n {\n kind: \"convex\",\n target: \"small-oyster-270|bold-cuttlefish-804\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"vercel\",\n target: \"stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: \"stack-vc/stackos-engineering-graph\",\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n ],\n description:\n \"Stack engineering graph sync secret for Convex-to-HTTP graph query/sync calls.\",\n },\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nconst TENANT_CONVEX_SECRET_DEFINITIONS =\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.flatMap((system) => [\n {\n id: `tenant.${system.id}.convex.url`,\n canonicalName: system.convex.urlEnv,\n aliases: tenantConvexUrlAliases(system),\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"preprod_staging_prod_prod\",\n required: true,\n secret: false,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-agent-runtime\",\n \"mc-operator-tooling\",\n ],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantVercelConvexUrlWriteNames(system),\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantRepositoryConvexUrlWriteNames(system),\n notes:\n \"Only if that repository deploy/test workflow owns this software system.\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey} Convex URL. Pre-prod resolves to ${system.convex.preprodDeployment}; prod resolves to ${system.convex.prodDeployment}.`,\n },\n {\n id: `tenant.${system.id}.convex.deploy-key`,\n canonicalName: system.convex.deployKeyEnv,\n aliases: tenantConvexDeployKeyAliases(system),\n owner: \"tenant\",\n scope: \"software_system\",\n sourcePath: system.sharedSourcePath,\n environmentPolicy: \"preprod_staging_prod_prod\",\n required: true,\n secret: true,\n public: false,\n consumers: [\n \"tenant-vercel-app\",\n \"tenant-agent-runtime\",\n \"mc-operator-tooling\",\n ],\n destinations: [\n {\n kind: \"vercel\",\n target: system.vercelProjectName,\n environmentPolicy: \"preprod_staging_prod_prod\",\n },\n {\n kind: \"github_actions\",\n target: `${system.repository.owner}/${system.repository.name}`,\n environmentPolicy: \"preprod_staging_prod_prod\",\n writeNames: tenantRepositoryConvexDeployKeyWriteNames(system),\n notes:\n \"Only if that repository deploy/test workflow owns this software system.\",\n },\n ],\n description: `${system.tenantKey}/${system.workspaceKey} Convex deploy/admin key. Never route to sibling workspaces.`,\n },\n ] as const satisfies readonly InfisicalSecretDefinition[]);\n\nexport const INFISICAL_SECRET_DEFINITIONS = [\n ...PLATFORM_SECRET_DEFINITIONS,\n ...PLATFORM_AI_SECRET_DEFINITIONS,\n ...PLATFORM_LANGFUSE_SECRET_DEFINITIONS,\n ...PLATFORM_GRAPH_STORE_SECRET_DEFINITIONS,\n ...PLATFORM_VECTOR_STORE_SECRET_DEFINITIONS,\n ...PLATFORM_SENTRY_SECRET_DEFINITIONS,\n ...PLATFORM_DEPLOY_AUTOMATION_SECRET_DEFINITIONS,\n ...PLATFORM_LOCAL_OPERATOR_CONFIG_SECRET_DEFINITIONS,\n ...TENANT_SHARED_SECRET_DEFINITIONS,\n ...TENANT_INSTALL_SECRET_DEFINITIONS,\n ...TENANT_PRODUCT_RUNTIME_SECRET_DEFINITIONS,\n ...TENANT_GRAPH_PUBLIC_CONFIG_SECRET_DEFINITIONS,\n ...STACK_ENG_GRAPH_STORE_SECRET_DEFINITIONS,\n ...TENANT_CONVEX_SECRET_DEFINITIONS,\n] as const satisfies readonly InfisicalSecretDefinition[];\n\nexport type InfisicalSecretId = (typeof INFISICAL_SECRET_DEFINITIONS)[number][\"id\"];\n\nexport function findInfisicalSecretDefinition(\n secretId: InfisicalSecretId,\n): InfisicalSecretDefinition | undefined {\n return INFISICAL_SECRET_DEFINITIONS.find((secret) => secret.id === secretId);\n}\n\nexport function infisicalSecretDefinitionsForConsumer(\n consumer: InfisicalSecretConsumer,\n): readonly InfisicalSecretDefinition[] {\n return INFISICAL_SECRET_DEFINITIONS.filter((secret) =>\n (secret.consumers as readonly InfisicalSecretConsumer[]).includes(consumer),\n );\n}\n\nexport function infisicalSecretDefinitionsForDestination(\n kind: InfisicalSecretDestinationKind,\n target: string,\n): readonly InfisicalSecretDefinition[] {\n return INFISICAL_SECRET_DEFINITIONS.filter((secret) =>\n secret.destinations.some(\n (destination) => destination.kind === kind && destination.target === target,\n ),\n );\n}\n\nexport function validateInfisicalSecretDefinitions(\n definitions: readonly InfisicalSecretDefinition[] = INFISICAL_SECRET_DEFINITIONS,\n): readonly string[] {\n const errors: string[] = [];\n const ids = new Set<string>();\n const platformOnlyNames = new Set([\"CONVEX_MC_URL\", \"CONVEX_MC_DEPLOY_KEY\"]);\n\n for (const definition of definitions) {\n if (ids.has(definition.id)) {\n errors.push(`Duplicate secret definition id: ${definition.id}`);\n }\n ids.add(definition.id);\n\n if (!definition.canonicalName.startsWith(\"CONVEX_\")) {\n continue;\n }\n\n if (platformOnlyNames.has(definition.canonicalName)) {\n if (definition.owner !== \"lucern_platform\") {\n errors.push(`${definition.canonicalName} must be Lucern platform-owned.`);\n }\n for (const destination of definition.destinations) {\n if (\n destination.kind === \"vercel\" &&\n INFISICAL_TENANT_SOFTWARE_SYSTEMS.some(\n (system) => system.vercelProjectName === destination.target,\n )\n ) {\n errors.push(\n `${definition.canonicalName} must not route to tenant Vercel project ${destination.target}.`,\n );\n }\n }\n continue;\n }\n\n const owner = INFISICAL_TENANT_SOFTWARE_SYSTEMS.find(\n (system) =>\n system.convex.urlEnv === definition.canonicalName ||\n system.convex.deployKeyEnv === definition.canonicalName,\n );\n if (!owner) {\n errors.push(\n `${definition.canonicalName} is a Convex variable without a tenant software owner.`,\n );\n continue;\n }\n for (const destination of definition.destinations) {\n if (\n destination.kind === \"vercel\" &&\n destination.target !== owner.vercelProjectName\n ) {\n errors.push(\n `${definition.canonicalName} routes to ${destination.target}; expected ${owner.vercelProjectName}.`,\n );\n }\n }\n }\n\n return errors;\n}\n"]}
|