@lucern/sdk 0.3.0-alpha.3 → 0.3.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adminClient.js +4 -3
- package/dist/adminClient.js.map +1 -1
- package/dist/answersClient.js +4 -3
- package/dist/answersClient.js.map +1 -1
- package/dist/audiencesClient.js +4 -3
- package/dist/audiencesClient.js.map +1 -1
- package/dist/auditClient.js +4 -3
- package/dist/auditClient.js.map +1 -1
- package/dist/authContext.js +4 -3
- package/dist/authContext.js.map +1 -1
- package/dist/beliefs/index.d.ts +1 -1
- package/dist/beliefs/index.js +301 -7
- package/dist/beliefs/index.js.map +1 -1
- package/dist/beliefsClient.js +4 -3
- package/dist/beliefsClient.js.map +1 -1
- package/dist/{client-EiG9nJOY.d.ts → client-DOLqClbU.d.ts} +183 -3
- package/dist/client.d.ts +1 -1
- package/dist/client.js +301 -7
- package/dist/client.js.map +1 -1
- package/dist/contextClient.js +4 -3
- package/dist/contextClient.js.map +1 -1
- package/dist/contracts/api-enums.contract.d.ts +1 -1
- package/dist/contracts/api-enums.contract.js.map +1 -1
- package/dist/contracts/index.js.map +1 -1
- package/dist/contradictions/index.d.ts +1 -1
- package/dist/contradictions/index.js +301 -7
- package/dist/contradictions/index.js.map +1 -1
- package/dist/coreClient.js +4 -3
- package/dist/coreClient.js.map +1 -1
- package/dist/decisions/index.d.ts +1 -1
- package/dist/decisions/index.js +301 -7
- package/dist/decisions/index.js.map +1 -1
- package/dist/decisionsClient.js +4 -3
- package/dist/decisionsClient.js.map +1 -1
- package/dist/edges/index.d.ts +1 -1
- package/dist/edges/index.js +301 -7
- package/dist/edges/index.js.map +1 -1
- package/dist/embeddingsClient.js +4 -3
- package/dist/embeddingsClient.js.map +1 -1
- package/dist/eventingClient.js +4 -3
- package/dist/eventingClient.js.map +1 -1
- package/dist/eventsCore.js +4 -3
- package/dist/eventsCore.js.map +1 -1
- package/dist/evidence/index.d.ts +1 -1
- package/dist/evidence/index.js +301 -7
- package/dist/evidence/index.js.map +1 -1
- package/dist/evidenceClient.js +4 -3
- package/dist/evidenceClient.js.map +1 -1
- package/dist/gatewayFacades.d.ts +34 -1
- package/dist/gatewayFacades.js +4 -3
- package/dist/gatewayFacades.js.map +1 -1
- package/dist/graphAnalysisClient.d.ts +7 -0
- package/dist/graphAnalysisClient.js +7 -4
- package/dist/graphAnalysisClient.js.map +1 -1
- package/dist/graphClient.js +4 -3
- package/dist/graphClient.js.map +1 -1
- package/dist/graphRecommendationsClient.js +4 -3
- package/dist/graphRecommendationsClient.js.map +1 -1
- package/dist/graphStateClassifierClient.js +4 -3
- package/dist/graphStateClassifierClient.js.map +1 -1
- package/dist/harnessClient.js +4 -3
- package/dist/harnessClient.js.map +1 -1
- package/dist/identityClient.js +4 -3
- package/dist/identityClient.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +593 -8
- package/dist/index.js.map +1 -1
- package/dist/infisicalRuntime.d.ts +42 -0
- package/dist/infisicalRuntime.js +291 -0
- package/dist/infisicalRuntime.js.map +1 -0
- package/dist/jobsClient.js +4 -3
- package/dist/jobsClient.js.map +1 -1
- package/dist/learningClient.js +4 -3
- package/dist/learningClient.js.map +1 -1
- package/dist/lenses/index.d.ts +25 -1
- package/dist/lenses/index.js +301 -7
- package/dist/lenses/index.js.map +1 -1
- package/dist/mcpClient.js +4 -3
- package/dist/mcpClient.js.map +1 -1
- package/dist/modelRuntimeClient.js +4 -3
- package/dist/modelRuntimeClient.js.map +1 -1
- package/dist/nodes/index.d.ts +19 -1
- package/dist/nodes/index.js +301 -7
- package/dist/nodes/index.js.map +1 -1
- package/dist/ontologies/index.d.ts +1 -1
- package/dist/ontologies/index.js +301 -7
- package/dist/ontologies/index.js.map +1 -1
- package/dist/ontologyClient.js +4 -3
- package/dist/ontologyClient.js.map +1 -1
- package/dist/ontologyLinksClient.js +4 -3
- package/dist/ontologyLinksClient.js.map +1 -1
- package/dist/orgGraphSearchClient.js +4 -3
- package/dist/orgGraphSearchClient.js.map +1 -1
- package/dist/packsClient.js +4 -3
- package/dist/packsClient.js.map +1 -1
- package/dist/policyClient.js +4 -3
- package/dist/policyClient.js.map +1 -1
- package/dist/questions/index.d.ts +1 -1
- package/dist/questions/index.js +301 -7
- package/dist/questions/index.js.map +1 -1
- package/dist/reportsClient.js +4 -3
- package/dist/reportsClient.js.map +1 -1
- package/dist/schemaClient.js +4 -3
- package/dist/schemaClient.js.map +1 -1
- package/dist/sourcesClient.js +4 -3
- package/dist/sourcesClient.js.map +1 -1
- package/dist/telemetryClient.js +4 -3
- package/dist/telemetryClient.js.map +1 -1
- package/dist/toolRegistryClient.js +4 -3
- package/dist/toolRegistryClient.js.map +1 -1
- package/dist/topics/index.d.ts +1 -1
- package/dist/topics/index.js +301 -7
- package/dist/topics/index.js.map +1 -1
- package/dist/topicsClient.js +4 -3
- package/dist/topicsClient.js.map +1 -1
- package/dist/workflowClient.d.ts +41 -7
- package/dist/workflowClient.js +4 -3
- package/dist/workflowClient.js.map +1 -1
- package/dist/worktrees/index.d.ts +25 -1
- package/dist/worktrees/index.js +301 -7
- package/dist/worktrees/index.js.map +1 -1
- package/package.json +3 -3
package/dist/topics/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/authContext.ts","../../src/coreClient.ts","../../src/sdkSurface.ts","../../src/adminClient.ts","../../src/answersClient.ts","../../src/audiencesClient.ts","../../src/auditClient.ts","../../src/authDeviceClient.ts","../../src/beliefsClient.ts","../../src/sourcesClient.ts","../../src/evidenceClient.ts","../../src/boundaryClientSurface.ts","../../src/eventingClient.ts","../../src/customTools.ts","../../src/ontologyClient.ts","../../src/graphClient.ts","../../src/identityClient.ts","../../src/topicsClient.ts","../../src/gatewayFacades.ts","../../src/decisionsClient.ts","../../src/embeddingsClient.ts","../../src/contextClient.ts","../../src/graphAnalysisClient.ts","../../src/graphRecommendationsClient.ts","../../src/graphStateClassifierClient.ts","../../src/harnessClient.ts","../../src/jobsClient.ts","../../src/learningClient.ts","../../src/mcpClient.ts","../../src/generated/functionSurface.ts","../../src/modelRuntimeClient.ts","../../src/ontologyLinksClient.ts","../../src/orgGraphSearchClient.ts","../../src/packsClient.ts","../../src/policyClient.ts","../../src/reportsClient.ts","../../src/schemaClient.ts","../../src/telemetryClient.ts","../../src/toolRegistryClient.ts","../../src/version.ts","../../src/workflowClient.ts","../../src/client.ts","../../src/topics/index.ts"],"names":["cleanString","query","body","asRecord","readString","readTopicId","requireTopicId","assertKnownKeys","serialized","listQuery","config","createTopicsClient"],"mappings":";;;;;;;;AA2DO,IAAM,yBAAA,GAAN,cAAwC,KAAA,CAAM;AAAA,EAC1C,MAAA;AAAA,EAET,WAAA,CAAY,QAAoC,OAAA,EAAiB;AAC/D,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,2BAAA;AACZ,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AACF,CAAA;AAEA,SAAS,YAAY,KAAA,EAA+C;AAClE,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK;AAC/B,EAAA,OAAO,aAAa,UAAA,GAAa,MAAA;AACnC;AAEA,SAAS,gBAAgB,MAAA,EAAiD;AACxE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,OACJ,GAAA,CAAI,CAAC,UAAU,KAAA,CAAM,IAAA,EAAM,CAAA,CAC3B,MAAA;AAAA,IACC,CAAC,KAAA,EAAO,KAAA,EAAO,IAAA,KACb,KAAA,CAAM,SAAS,CAAA,IAAK,IAAA,CAAK,OAAA,CAAQ,KAAK,CAAA,KAAM;AAAA,GAChD;AACJ;AAEA,SAAS,aAAA,CACP,KAAA,EACA,MAAA,EACA,KAAA,EACQ;AACR,EAAA,MAAM,UAAA,GAAa,YAAY,KAAK,CAAA;AACpC,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,MAAA;AAAA,MACA,gDAAgD,KAAK,CAAA,CAAA;AAAA,KACvD;AAAA,EACF;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,qBACP,aAAA,EACsB;AACtB,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,mBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,aAAA;AACT;AAEA,SAAS,gBAAgB,QAAA,EAAwD;AAC/E,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,mBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,kBAAkB,IAAA,EAIxB;AACD,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AACtC,EAAA,IAAI,MAAA,IAAU,MAAA,KAAW,IAAA,CAAK,QAAA,EAAU;AACtC,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,eAAA;AAAA,MACA,CAAA,yDAAA,EAA4D,KAAK,KAAK,CAAA,CAAA;AAAA,KACxE;AAAA,EACF;AACF;AAEO,SAAS,oCACd,KAAA,EAC+B;AAC/B,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,mBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,IAAI,KAAA,CAAM,mBAAmB,MAAA,EAAQ;AACnC,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,eAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,WAAA,GAAc,aAAA;AAAA,IAClB,KAAA,CAAM,WAAA;AAAA,IACN,mBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,QAAA,GAAW,aAAA,CAAc,KAAA,CAAM,QAAA,EAAU,kBAAkB,UAAU,CAAA;AAC3E,EAAA,MAAM,WAAA,GAAc,aAAA;AAAA,IAClB,KAAA,CAAM,WAAA;AAAA,IACN,mBAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,KAAA,CAAM,KAAK,CAAA;AACzC,EAAA,MAAM,MAAA,GAAS,eAAA,CAAgB,KAAA,CAAM,MAAM,CAAA;AAC3C,EAAA,IAAI,KAAA,CAAM,MAAA,KAAW,CAAA,IAAK,MAAA,CAAO,WAAW,CAAA,EAAG;AAC7C,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR,oBAAA;AAAA,MACA;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB,oBAAA,CAAqB,KAAA,CAAM,aAAa,CAAA;AAC9D,EAAA,MAAM,QAAA,GAAW,eAAA,CAAgB,KAAA,CAAM,QAAQ,CAAA;AAC/C,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,OAAO,CAAA,IAAK,WAAA;AACtD,EAAA,MAAM,MAAA,GAAS,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,MAAM,CAAA,IAAK,QAAA;AACpD,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,SAAS,CAAA,IAAK,WAAA;AAE1D,EAAA,iBAAA,CAAkB;AAAA,IAChB,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,WAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACT,CAAA;AACD,EAAA,iBAAA,CAAkB,EAAE,KAAA,EAAO,QAAA,EAAU,UAAU,QAAA,EAAU,MAAA,EAAQ,QAAQ,CAAA;AACzE,EAAA,iBAAA,CAAkB;AAAA,IAChB,KAAA,EAAO,WAAA;AAAA,IACP,QAAA,EAAU,WAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACT,CAAA;AAED,EAAA,MAAM,OAAA,GAAU,MAAM,MAAA,EAAQ,OAAA,GACzB,EAAE,GAAG,KAAA,CAAM,MAAA,CAAO,OAAA,EAAQ,GAC3B,MAAA;AAEJ,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,WAAA,CAAY,KAAA,CAAM,OAAO,CAAA;AAAA,IAClC,WAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,eAAA,EAAiB,MAAM,eAAA,GAAkB,CAAC,GAAG,KAAA,CAAM,eAAe,IAAI,EAAC;AAAA,IACvE,aAAA,EAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA;AAAA,IAC9C,aAAA,EAAe,WAAA,CAAY,KAAA,CAAM,aAAa,CAAA;AAAA,IAC9C,YAAA,EAAc,WAAA,CAAY,KAAA,CAAM,YAAY,CAAA;AAAA,IAC5C,MAAA,EAAQ;AAAA,MACN,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA,EAAU,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,QAAQ,CAAA;AAAA,MAC5C,MAAA,EAAQ,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,MAAM,CAAA;AAAA,MACxC,QAAA,EAAU,WAAA,CAAY,KAAA,CAAM,MAAA,EAAQ,QAAQ,CAAA;AAAA,MAC5C;AAAA;AACF,GACF;AACF;AAEO,SAAS,2BACd,WAAA,EACwB;AACxB,EAAA,MAAM,OAAA,GAAkC;AAAA,IACtC,yBAAyB,WAAA,CAAY,WAAA;AAAA,IACrC,2BAA2B,WAAA,CAAY,aAAA;AAAA,IACvC,mBAAmB,WAAA,CAAY,QAAA;AAAA,IAC/B,sBAAsB,WAAA,CAAY,QAAA;AAAA,IAClC,sBAAsB,WAAA,CAAY,WAAA;AAAA,IAClC,yBAAyB,WAAA,CAAY,WAAA;AAAA,IACrC,sBAAsB,WAAA,CAAY,QAAA;AAAA,IAClC,gBAAA,EAAkB,WAAA,CAAY,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA;AAAA,IAC5C,iBAAA,EAAmB,WAAA,CAAY,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAAA,IAC9C,yBAAA,EAA2B,IAAA,CAAK,SAAA,CAAU,WAAA,CAAY,MAAM;AAAA,GAC9D;AAEA,EAAA,IAAI,YAAY,OAAA,EAAS;AACvB,IAAA,OAAA,CAAQ,mBAAmB,IAAI,WAAA,CAAY,OAAA;AAC3C,IAAA,OAAA,CAAQ,kBAAkB,IAAI,WAAA,CAAY,OAAA;AAAA,EAC5C;AACA,EAAA,IAAI,WAAA,CAAY,eAAA,CAAgB,MAAA,GAAS,CAAA,EAAG;AAC1C,IAAA,OAAA,CAAQ,2BAA2B,IAAI,IAAA,CAAK,SAAA;AAAA,MAC1C,WAAA,CAAY;AAAA,KACd;AAAA,EACF;AACA,EAAA,IAAI,YAAY,aAAA,EAAe;AAC7B,IAAA,OAAA,CAAQ,0BAA0B,IAAI,WAAA,CAAY,aAAA;AAAA,EACpD;AACA,EAAA,IAAI,YAAY,aAAA,EAAe;AAC7B,IAAA,OAAA,CAAQ,kBAAkB,IAAI,WAAA,CAAY,aAAA;AAC1C,IAAA,OAAA,CAAQ,yBAAyB,IAAI,WAAA,CAAY,aAAA;AAAA,EACnD;AACA,EAAA,IAAI,YAAY,YAAA,EAAc;AAC5B,IAAA,OAAA,CAAQ,wBAAwB,IAAI,WAAA,CAAY,YAAA;AAAA,EAClD;AAEA,EAAA,OAAO,OAAA;AACT;;;ACrMO,IAAM,cAAA,GAAN,cAA6B,KAAA,CAAM;AAAA,EACxB,IAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EAEhB,YAAY,IAAA,EAUT;AACD,IAAA,KAAA,CAAM,KAAK,OAAO,CAAA;AAClB,IAAA,IAAA,CAAK,IAAA,GAAO,gBAAA;AACZ,IAAA,IAAA,CAAK,OAAO,IAAA,CAAK,IAAA;AACjB,IAAA,IAAA,CAAK,SAAS,IAAA,CAAK,MAAA;AACnB,IAAA,IAAA,CAAK,YAAY,IAAA,CAAK,SAAA;AACtB,IAAA,IAAA,CAAK,aAAa,IAAA,CAAK,UAAA;AACvB,IAAA,IAAA,CAAK,UAAU,IAAA,CAAK,OAAA;AACpB,IAAA,IAAA,CAAK,YAAY,IAAA,CAAK,SAAA;AACtB,IAAA,IAAA,CAAK,gBAAgB,IAAA,CAAK,aAAA;AAC1B,IAAA,IAAA,CAAK,gBAAgB,IAAA,CAAK,aAAA;AAAA,EAC5B;AACF,CAAA;AA+EO,SAAS,cACd,KAAA,EACQ;AACR,EAAA,MAAM,MAAA,GAAS,IAAI,eAAA,EAAgB;AACnC,EAAA,IAAI,MAAM,QAAA,EAAU;AAClB,IAAA,MAAA,CAAO,GAAA,CAAI,UAAA,EAAY,KAAA,CAAM,QAAQ,CAAA;AAAA,EACvC;AACA,EAAA,IAAI,MAAM,WAAA,EAAa;AACrB,IAAA,MAAA,CAAO,GAAA,CAAI,aAAA,EAAe,KAAA,CAAM,WAAW,CAAA;AAAA,EAC7C;AACA,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,IAAA,IAAI,GAAA,KAAQ,UAAA,IAAc,GAAA,KAAQ,aAAA,EAAe;AAC/C,MAAA;AAAA,IACF;AACA,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA;AAAA,IACF;AACA,IAAA,MAAA,CAAO,GAAA,CAAI,GAAA,EAAK,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,EAC/B;AACA,EAAA,MAAM,UAAA,GAAa,OAAO,QAAA,EAAS;AACnC,EAAA,OAAO,UAAA,CAAW,MAAA,GAAS,CAAA,GAAI,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,GAAK,EAAA;AACpD;AAEA,SAAS,gBAAgB,MAAA,EAA4B;AACnD,EAAA,MAAM,KAAA,GAAQ,IAAI,UAAA,CAAW,MAAM,CAAA;AACnC,EAAA,IAAI,OAAO,UAAA,CAAW,MAAA,EAAQ,eAAA,KAAoB,UAAA,EAAY;AAC5D,IAAA,UAAA,CAAW,MAAA,CAAO,gBAAgB,KAAK,CAAA;AACvC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,KAAA,IAAS,KAAA,GAAQ,CAAA,EAAG,KAAA,GAAQ,MAAA,EAAQ,SAAS,CAAA,EAAG;AAC9C,IAAA,KAAA,CAAM,KAAK,CAAA,GAAI,IAAA,CAAK,MAAM,IAAA,CAAK,MAAA,KAAW,GAAG,CAAA;AAAA,EAC/C;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,yBAAA,GAAoC;AAC3C,EAAA,IAAI,OAAO,UAAA,CAAW,MAAA,EAAQ,UAAA,KAAe,UAAA,EAAY;AACvD,IAAA,OAAO,UAAA,CAAW,OAAO,UAAA,EAAW;AAAA,EACtC;AAEA,EAAA,MAAM,KAAA,GAAQ,gBAAgB,EAAE,CAAA;AAChC,EAAA,KAAA,CAAM,CAAC,CAAA,GAAK,KAAA,CAAM,CAAC,IAAI,EAAA,GAAQ,EAAA;AAC/B,EAAA,KAAA,CAAM,CAAC,CAAA,GAAK,KAAA,CAAM,CAAC,IAAI,EAAA,GAAQ,GAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,KAAA,CAAM,IAAA,CAAK,KAAA,EAAO,CAAC,KAAA,KAAU,KAAA,CAAM,QAAA,CAAS,EAAE,CAAA,CAAE,QAAA,CAAS,CAAA,EAAG,GAAG,CAAC,CAAA;AAC5E,EAAA,OAAO,GAAG,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,EAAE,CAAC,IAAI,GAAA,CAAI,KAAA,CAAM,GAAG,CAAC,CAAA,CAAE,KAAK,EAAE,CAAC,IAAI,GAAA,CAAI,KAAA;AAAA,IACpE,CAAA;AAAA,IACA;AAAA,GACF,CAAE,KAAK,EAAE,CAAC,IAAI,GAAA,CAAI,KAAA,CAAM,GAAG,EAAE,CAAA,CAAE,KAAK,EAAE,CAAC,IAAI,GAAA,CAAI,KAAA,CAAM,EAAE,CAAA,CAAE,IAAA,CAAK,EAAE,CAAC,CAAA,CAAA;AACnE;AAKO,SAAS,oBAAA,GAA+B;AAC7C,EAAA,OAAO,yBAAA,EAA0B;AACnC;AAEA,SAAS,kBAAkB,MAAA,EAAyB;AAClD,EAAA,OAAO,MAAA,IAAU,GAAA,IAAO,MAAA,KAAW,GAAA,IAAO,MAAA,KAAW,GAAA;AACvD;AAEA,SAAS,kBAAkB,MAAA,EAAwB;AACjD,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,yBAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,WAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,WAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,gBAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,GAAA,EAAK;AAClB,IAAA,OAAO,qBAAA;AAAA,EACT;AACA,EAAA,IAAI,UAAU,GAAA,EAAK;AACjB,IAAA,OAAO,gBAAA;AAAA,EACT;AACA,EAAA,OAAO,gBAAA;AACT;AAEA,SAAS,MAAM,EAAA,EAA2B;AACxC,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,YAAY,UAAA,CAAW,OAAA,EAAS,EAAE,CAAC,CAAA;AACzD;AAEA,SAAS,kBAAkB,KAAA,EAAqC;AAC9D,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,OAAA,GAAU,OAAO,OAAO,CAAA;AAC9B,EAAA,IAAI,MAAA,CAAO,QAAA,CAAS,OAAO,CAAA,EAAG;AAC5B,IAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,KAAA,CAAM,OAAA,GAAU,GAAI,CAAC,CAAA;AAAA,EAC/C;AACA,EAAA,MAAM,UAAA,GAAa,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA;AACrC,EAAA,IAAI,MAAA,CAAO,QAAA,CAAS,UAAU,CAAA,EAAG;AAC/B,IAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,UAAA,GAAa,IAAA,CAAK,KAAK,CAAA;AAAA,EAC5C;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,oBAAoB,IAAA,EAIlB;AACT,EAAA,MAAM,SAAA,GACJ,IAAA,CAAK,MAAA,KAAW,GAAA,GACZ,IAAA,CAAK,GAAA;AAAA,IACH,KAAK,YAAA,IAAgB,CAAA;AAAA,IACrB,KAAK,GAAA,CAAI,GAAA,GAAO,CAAA,IAAK,IAAA,CAAK,SAAS,GAAM;AAAA,MAE3C,IAAA,CAAK,GAAA,CAAI,MAAO,CAAA,IAAK,IAAA,CAAK,SAAS,GAAI,CAAA;AAE7C,EAAA,IAAI,IAAA,CAAK,WAAW,GAAA,EAAK;AACvB,IAAA,OAAO,SAAA;AAAA,EACT;AAEA,EAAA,MAAM,YAAA,GAAe,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,KAAA,CAAM,SAAA,GAAY,IAAI,CAAC,CAAA;AAC/D,EAAA,OAAO,YAAY,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,MAAA,KAAW,YAAY,CAAA;AAC5D;AAEA,SAAS,aAAa,SAAA,EAA0B;AAC9C,EAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,CAAA,wBAAA,EAA2B,SAAS,CAAA,EAAA,CAAI,CAAA;AAChE,EAAA,KAAA,CAAM,IAAA,GAAO,YAAA;AACb,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,6BAA6B,OAAA,EAAoC;AACxE,EAAA,IAAI,CAAC,WAAW,OAAO,OAAA,KAAY,YAAY,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,EAAG;AACrE,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAiB,OAAA,CAAoC,OAAA;AAC3D,EAAA,IAAI,OAAO,aAAA,KAAkB,QAAA,IAAY,cAAc,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG;AACxE,IAAA,OAAO,cAAc,IAAA,EAAK;AAAA,EAC5B;AAEA,EAAA,MAAM,SAAU,OAAA,CAAmC,MAAA;AACnD,EAAA,IAAI,CAAC,UAAU,OAAO,MAAA,KAAW,YAAY,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,EAAG;AAClE,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,cAAe,MAAA,CAAuC,WAAA;AAC5D,EAAA,IAAI,CAAC,eAAe,OAAO,WAAA,KAAgB,YAAY,KAAA,CAAM,OAAA,CAAQ,WAAW,CAAA,EAAG;AACjF,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,gBAAiB,WAAA,CAAwC,OAAA;AAC/D,EAAA,IAAI,OAAO,aAAA,KAAkB,QAAA,IAAY,cAAc,IAAA,EAAK,CAAE,SAAS,CAAA,EAAG;AACxE,IAAA,OAAO,cAAc,IAAA,EAAK;AAAA,EAC5B;AAEA,EAAA,OAAO,IAAA;AACT;AAEA,eAAe,6BACb,WAAA,EACgD;AAChD,EAAA,IAAI,OAAO,gBAAgB,UAAA,EAAY;AACrC,IAAA,OAAO,MAAM,WAAA,EAAY;AAAA,EAC3B;AACA,EAAA,OAAO,WAAA;AACT;AAEA,SAAS,iBAAA,CACP,MACA,QAAA,EACwB;AACxB,EAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,IAAI,CAAA;AAChC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,EAAG;AACnD,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAChC,IAAA,IAAI,QAAA,KAAa,IAAA,IAAQ,QAAA,KAAa,KAAA,EAAO;AAC3C,MAAA,MAAM,IAAI,yBAAA;AAAA,QACR,eAAA;AAAA,QACA,6DAA6D,GAAG,CAAA,QAAA;AAAA,OAClE;AAAA,IACF;AACA,IAAA,OAAA,CAAQ,GAAA,CAAI,KAAK,KAAK,CAAA;AAAA,EACxB;AACA,EAAA,OAAO,MAAA,CAAO,WAAA,CAAY,OAAA,CAAQ,OAAA,EAAS,CAAA;AAC7C;AAKO,SAAS,0BAAA,CAA2B,MAAA,GAA8B,EAAC,EAAG;AAC3E,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,KAAA;AACtC,EAAA,MAAM,UAAU,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA,IAAK,EAAA;AACvD,EAAA,MAAM,UAAA,GAAa,OAAO,UAAA,IAAc,CAAA;AACxC,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAO,gBAAA,KAAqB,MAAM,yBAAA,EAA0B,CAAA;AAErF,EAAA,eAAe,kBAAA,GAAsD;AACnE,IAAA,MAAM,OAAO,MAAA,CAAO,cAAA,GAAiB,MAAM,MAAA,CAAO,cAAA,KAAmB,EAAC;AACtE,IAAA,MAAM,mBAAmB,MAAM,4BAAA;AAAA,MAC7B,MAAA,CAAO;AAAA,KACT;AACA,IAAA,IAAI,CAAC,gBAAA,IAAoB,CAAC,MAAA,CAAO,2BAAA,EAA6B;AAC5D,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,MAAM,WAAA,GAAc,oCAAoC,gBAAgB,CAAA;AACxE,IAAA,OAAO,iBAAA,CAAkB,IAAA,EAAM,0BAAA,CAA2B,WAAW,CAAC,CAAA;AAAA,EACxE;AAEA,EAAA,eAAe,gBAAA,CACb,GAAA,EACA,IAAA,EACA,SAAA,EACmB;AACnB,IAAA,MAAM,UAAA,GAAa,IAAI,eAAA,EAAgB;AACvC,IAAA,MAAM,QAAQ,UAAA,CAAW,MAAM,UAAA,CAAW,KAAA,IAAS,SAAS,CAAA;AAC5D,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,UAAU,GAAA,EAAK,EAAE,GAAG,IAAA,EAAM,MAAA,EAAQ,UAAA,CAAW,MAAA,EAAQ,CAAA;AAAA,IACpE,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,UAAA,CAAW,OAAO,OAAA,EAAS;AAC7B,QAAA,MAAM,aAAa,SAAS,CAAA;AAAA,MAC9B;AACA,MAAA,MAAM,KAAA;AAAA,IACR,CAAA,SAAE;AACA,MAAA,YAAA,CAAa,KAAK,CAAA;AAAA,IACpB;AAAA,EACF;AAEA,EAAA,eAAe,aACb,QAAA,EAC4C;AAC5C,IAAA,MAAM,IAAA,GAAO,MAAM,QAAA,CAAS,IAAA,EAAK;AACjC,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,OAAO,IAAA;AAAA,IACT;AACA,IAAA,IAAI;AACF,MAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,IACxB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,SAAS,gBAAA,CACP,QACA,gBAAA,EACQ;AACR,IAAA,IAAI,OAAO,qBAAqB,QAAA,EAAU;AACxC,MAAA,OAAO,gBAAA;AAAA,IACT;AACA,IAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,iBAAA,GAAoB,MAAM,CAAA;AACzD,IAAA,IAAI,OAAO,oBAAoB,QAAA,EAAU;AACvC,MAAA,OAAO,eAAA;AAAA,IACT;AACA,IAAA,OAAO,OAAO,SAAA,IAAa,IAAA;AAAA,EAC7B;AAEA,EAAA,SAAS,cAAc,IAAA,EAIJ;AACjB,IAAA,MAAM,UAAU,IAAA,CAAK,OAAA;AACrB,IAAA,MAAM,WAAA,GACJ,OAAA,IAAW,OAAO,OAAA,CAAQ,KAAA,KAAU,QAAA,IAAY,OAAA,CAAQ,KAAA,KAAU,IAAA,GAC9D,OAAA,CAAQ,KAAA,GACR,OAAA,EAAS,WAAA;AACf,IAAA,MAAM,aAAA,GACJ,OAAA,EAAS,aAAA,IACT,IAAA,CAAK,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,yBAAyB,CAAA,EAAG,IAAA,EAAK,IAC3D,IAAA,CAAK,SAAA;AACP,IAAA,MAAM,aAAA,GACJ,OAAA,EAAS,aAAA,IACT,IAAA,CAAK,QAAA,CAAS,QAAQ,GAAA,CAAI,0BAA0B,CAAA,EAAG,IAAA,EAAK,IAC5D,IAAA;AACF,IAAA,MAAM,OAAA,GAAU,OAAA,EAAS,OAAA,IAAW,WAAA,EAAa,OAAA;AACjD,IAAA,MAAM,aAAA,GAAgB,6BAA6B,OAAO,CAAA;AAE1D,IAAA,OAAO,IAAI,cAAA,CAAe;AAAA,MACxB,IAAA,EAAM,SAAS,IAAA,IAAQ,WAAA,EAAa,QAAQ,iBAAA,CAAkB,IAAA,CAAK,SAAS,MAAM,CAAA;AAAA,MAClF,OAAA,EACE,aAAA,KACC,OAAO,OAAA,EAAS,KAAA,KAAU,QAAA,GACvB,OAAA,CAAQ,KAAA,GACR,WAAA,EAAa,OAAA,KACZ,IAAA,CAAK,QAAA,CAAS,KACX,mDAAA,GACA,8BAAA,CAAA,CAAA;AAAA,MACV,MAAA,EAAQ,KAAK,QAAA,CAAS,MAAA;AAAA,MACtB,WAAW,OAAA,EAAS,SAAA;AAAA,MACpB,YAAY,OAAA,EAAS,UAAA;AAAA,MACrB,OAAA;AAAA,MACA,WAAW,IAAA,CAAK,SAAA;AAAA,MAChB,aAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,eAAe,QAAW,IAAA,EAOa;AACrC,IAAA,MAAM,WAAA,GAAc,MAAM,kBAAA,EAAmB;AAC7C,IAAA,MAAM,MAAA,GAAS,KAAK,MAAA,IAAU,KAAA;AAC9B,IAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,MAAA,EAAQ,IAAA,CAAK,SAAS,CAAA;AACzD,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ;AAAA,MAC1B,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAG;AAAA,KACJ,CAAA;AACD,IAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,MAAA,OAAA,CAAQ,GAAA,CAAI,iBAAA,EAAmB,IAAA,CAAK,cAAc,CAAA;AAAA,IACpD;AACA,IAAA,MAAM,SAAA,GACJ,OAAA,CAAQ,GAAA,CAAI,kBAAkB,GAAG,IAAA,EAAK,IACtC,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,EAAG,IAAA,EAAK,IAClC,IAAA,CAAK,aACL,gBAAA,EAAiB;AACnB,IAAA,IAAI,CAAC,QAAQ,GAAA,CAAI,kBAAkB,KAAK,CAAC,OAAA,CAAQ,GAAA,CAAI,cAAc,CAAA,EAAG;AACpE,MAAA,OAAA,CAAQ,GAAA,CAAI,oBAAoB,SAAS,CAAA;AAAA,IAC3C;AAEA,IAAA,MAAM,GAAA,GAAM,CAAA,EAAG,OAAO,CAAA,EAAG,KAAK,IAAI,CAAA,CAAA;AAClC,IAAA,MAAM,iBAAiB,IAAA,CAAK,IAAA,GAAO,KAAK,SAAA,CAAU,IAAA,CAAK,IAAI,CAAA,GAAI,MAAA;AAC/D,IAAA,MAAM,IAAA,GAAoB;AAAA,MACxB,MAAA;AAAA,MACA,OAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACR;AAEA,IAAA,IAAI,SAAA;AAEJ,IAAA,KAAA,IAAS,OAAA,GAAU,CAAA,EAAG,OAAA,IAAW,UAAA,EAAY,OAAA,EAAA,EAAW;AACtD,MAAA,MAAM,kBAAA,GAAgD;AAAA,QACpD,SAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,MAAA;AAAA,QACA,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,GAAA;AAAA,QACA,OAAA,EAAS,IAAI,OAAA,CAAQ,OAAO,CAAA;AAAA,QAC5B,IAAA,EAAM,cAAA;AAAA,QACN;AAAA,OACF;AACA,MAAA,MAAM,MAAA,CAAO,YAAY,kBAAkB,CAAA;AAC3C,MAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAC3B,MAAA,IAAI;AACF,QAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,CAAiB,GAAA,EAAK,MAAM,SAAS,CAAA;AAC5D,QAAA,MAAM,aAAA,GAAgB,SAAS,KAAA,EAAM;AACrC,QAAA,MAAM,OAAA,GAAU,MAAM,YAAA,CAAgB,QAAQ,CAAA;AAC9C,QAAA,MAAM,YAAA,GAAe,iBAAA;AAAA,UACnB,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,aAAa;AAAA,SACpC;AAEA,QAAA,IAAI,CAAC,QAAA,CAAS,EAAA,IAAM,CAAC,SAAS,OAAA,EAAS;AACrC,UAAA,MAAM,OAAA,GACJ,OAAA,IAAW,CAAC,OAAA,CAAQ,UAAW,OAAA,GAAqC,IAAA;AACtE,UAAA,MAAM,WAAW,aAAA,CAAc;AAAA,YAC7B,SAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,WACD,CAAA;AACD,UAAA,MAAM,SAAA,GAAY,OAAA,GAAU,UAAA,IAAc,iBAAA,CAAkB,SAAS,MAAM,CAAA;AAE3E,UAAA,MAAM,OAAO,UAAA,GAAa;AAAA,YACxB,GAAG,kBAAA;AAAA,YACH,UAAA,EAAY,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAAA,YACzB,QAAQ,QAAA,CAAS,MAAA;AAAA,YACjB,QAAA,EAAU,aAAA;AAAA,YACV,KAAA,EAAO,QAAA;AAAA,YACP,aAAA,EAAe,SAAS,aAAA,IAAiB,SAAA;AAAA,YACzC,aAAA,EAAe,SAAS,aAAA,IAAiB,IAAA;AAAA,YACzC,YAAA;AAAA,YACA;AAAA,WACD,CAAA;AAED,UAAA,IAAI,SAAA,EAAW;AACb,YAAA,SAAA,GAAY,QAAA;AACZ,YAAA,MAAM,KAAA;AAAA,cACJ,mBAAA,CAAoB;AAAA,gBAClB,OAAA;AAAA,gBACA,QAAQ,QAAA,CAAS,MAAA;AAAA,gBACjB;AAAA,eACD;AAAA,aACH;AACA,YAAA;AAAA,UACF;AAEA,UAAA,MAAM,QAAA;AAAA,QACR;AAEA,QAAA,MAAM,cAAA,GAAiB,OAAA;AACvB,QAAA,MAAM,OAAO,UAAA,GAAa;AAAA,UACxB,GAAG,kBAAA;AAAA,UACH,UAAA,EAAY,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAAA,UACzB,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB,QAAA,EAAU,aAAA;AAAA,UACV,aAAA,EACE,eAAe,aAAA,IACf,QAAA,CAAS,QAAQ,GAAA,CAAI,yBAAyB,CAAA,EAAG,IAAA,EAAK,IACtD,SAAA;AAAA,UACF,aAAA,EACE,eAAe,aAAA,IACf,QAAA,CAAS,QAAQ,GAAA,CAAI,0BAA0B,CAAA,EAAG,IAAA,EAAK,IACvD,IAAA;AAAA,UACF,kBAAkB,cAAA,CAAe,gBAAA;AAAA,UACjC,YAAA;AAAA,UACA,SAAA,EAAW;AAAA,SACZ,CAAA;AAED,QAAA,OAAO,cAAA;AAAA,MACT,SAAS,UAAA,EAAY;AACnB,QAAA,IAAI,sBAAsB,cAAA,EAAgB;AACxC,UAAA,MAAM,UAAA;AAAA,QACR;AACA,QAAA,MAAM,YAAY,OAAA,GAAU,UAAA;AAC5B,QAAA,MAAM,OAAO,UAAA,GAAa;AAAA,UACxB,GAAG,kBAAA;AAAA,UACH,UAAA,EAAY,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA;AAAA,UACzB,KAAA,EAAO,UAAA;AAAA,UACP,aAAA,EAAe,SAAA;AAAA,UACf,aAAA,EAAe,IAAA;AAAA,UACf;AAAA,SACD,CAAA;AACD,QAAA,SAAA,GAAY,UAAA;AACZ,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,MAAM,KAAA,CAAM,mBAAA,CAAoB,EAAE,OAAA,EAAS,CAAC,CAAA;AAAA,QAC9C;AAAA,MACF;AAAA,IACF;AAEA,IAAA,MAAM,SAAA,YAAqB,KAAA,GACvB,SAAA,GACA,IAAI,MAAM,4CAA4C,CAAA;AAAA,EAC5D;AAEA,EAAA,OAAO;AAAA,IACL;AAAA,GACF;AACF;;;AC3lBA,SAAS,SAAS,KAAA,EAA2B;AAC3C,EAAA,OAAO,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,GAAY,QAAsB,EAAC;AACtE;AAEA,SAASA,aAAY,KAAA,EAAoC;AACvD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,GAAO,MAAA,GAAS,CAAA,GACtD,KAAA,CAAM,IAAA,EAAK,GACX,MAAA;AACN;AAEA,SAAS,4BAA4B,KAAA,EAAoC;AACvE,EAAA,MAAM,MAAA,GAASA,aAAY,KAAK,CAAA;AAChC,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,UAAA,EAAY;AACzB,IAAA,OAAO,gBAAA;AAAA,EACT;AACA,EAAA,IAAI,WAAW,UAAA,EAAY;AACzB,IAAA,OAAO,cAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,SAAA,CAA+B,OAAU,KAAA,EAAqB;AACrE,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,GAAG,KAAA,EAAM;AAC9B;AAKO,SAAS,eAAe,KAAA,EAA6C;AAC1E,EAAA,OAAOA,YAAAA,CAAY,MAAM,OAAO,CAAA;AAClC;AAKO,SAAS,YAAY,KAAA,EAA4C;AACtE,EAAA,OAAOA,aAAY,KAAA,CAAM,IAAI,CAAA,IAAKA,YAAAA,CAAY,MAAM,aAAa,CAAA;AACnE;AAKO,SAAS,eAAoC,KAAA,EAAa;AAC/D,EAAA,MAAM,OAAA,GAAUA,YAAAA,CAAY,KAAA,CAAM,OAAO,CAAA,IAAK,MAAA;AAC9C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA,CAAU,KAAA,EAAO,EAAE,OAAA,EAAS,CAAA;AACrC;AAKO,SAAS,cAAmC,KAAA,EAAa;AAC9D,EAAA,MAAM,IAAA,GACJA,aAAY,KAAA,CAAM,IAAI,KAAKA,YAAAA,CAAY,KAAA,CAAM,aAAa,CAAA,IAAK,MAAA;AACjE,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,UAAU,KAAA,EAAO,EAAE,IAAA,EAAM,aAAA,EAAe,MAAM,CAAA;AACvD;AAKO,SAAS,eAAoC,KAAA,EAAa;AAC/D,EAAA,OAAO,cAAA,CAAe,aAAA,CAAc,KAAK,CAAC,CAAA;AAC5C;AAKO,SAAS,wBAA8C,KAAA,EAAa;AACzE,EAAA,MAAM,OAAA,GAAU,eAAe,KAAK,CAAA;AACpC,EAAA,MAAM,IAAA,GAAO,YAAY,KAAK,CAAA;AAC9B,EAAA,MAAM,kBAAA,GAAqB,2BAAA,CAA4B,KAAA,CAAM,kBAAkB,CAAA;AAC/E,EAAA,MAAM,IAAA,GAAO,EAAE,GAAG,KAAA,EAAM;AAExB,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACA,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,IAAA,CAAK,IAAA,GAAO,IAAA;AACZ,IAAA,IAAA,CAAK,aAAA,GAAgB,IAAA;AAAA,EACvB;AACA,EAAA,IAAI,kBAAA,EAAoB;AACtB,IAAA,IAAA,CAAK,kBAAA,GAAqB,kBAAA;AAAA,EAC5B;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,gCAAgC,KAAA,EAAgB;AAC9D,EAAA,OAAO,4BAA4B,KAAK,CAAA;AAC1C;AAKO,SAAS,oBAA0C,KAAA,EAAa;AACrE,EAAA,MAAM,OAAA,GAAUA,YAAAA,CAAY,KAAA,CAAM,OAAO,CAAA;AACzC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,OAAA,EAAQ;AAC7B;AAKO,SAAS,WAAA,CAAe,MAAe,SAAA,EAAyB;AACrE,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAAS,SAAS,IAAI,CAAA;AAC5B,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA,EAAG;AAC/B,IAAA,OAAO,MAAA,CAAO,KAAA;AAAA,EAChB;AACA,EAAA,IAAI,aAAa,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,SAAS,CAAC,CAAA,EAAG;AACjD,IAAA,OAAO,OAAO,SAAS,CAAA;AAAA,EACzB;AAEA,EAAA,OAAO,EAAC;AACV;AAKO,SAAS,gBAAA,CACd,OACA,SAAA,EAC0B;AAC1B,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,KAAA;AAAA,IACA,OAAO,KAAA,CAAM;AAAA,GACf;AAEA,EAAA,IAAI,SAAA,EAAW;AACb,IAAC,MAAA,CAAmC,SAAS,CAAA,GAAI,KAAA;AAAA,EACnD;AAEA,EAAA,OAAO,MAAA;AACT;AAKO,SAAS,cAAA,CACd,UACA,MAAA,EAC2B;AAC3B,EAAA,OAAO;AAAA,IACL,GAAG,QAAA;AAAA,IACH,IAAA,EAAM,MAAA,CAAO,QAAA,CAAS,IAAI;AAAA,GAC5B;AACF;AAKO,SAAS,cAAA,CAId,MACA,SAAA,EAC8B;AAC9B,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAmB,IAAA,EAAM,SAAS,CAAA,CAAE,GAAA;AAAA,IAAI,CAAC,IAAA,KACrD,cAAA,CAAe,IAAI;AAAA,GACrB;AACA,EAAA,OAAO,gBAAA,CAAiB,OAAO,SAAS,CAAA;AAC1C;;;AC3CA,SAAS,qBAAqB,IAAA,EAA0C;AACtE,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,oBAAoB,IAAA,EAAqC;AAChE,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,IAAA,CACJ,IAAI,oBAAoB,CAAA,CACxB,OAAO,CAAC,GAAA,KAAmC,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC5D;AAEA,SAAS,0BACP,IAAA,EACgC;AAChC,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,yBAAyB,IAAA,EAA0C;AAC1E,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,IAAA,CACJ,IAAI,yBAAyB,CAAA,CAC7B,OAAO,CAAC,GAAA,KAAwC,OAAA,CAAQ,GAAG,CAAC,CAAA;AACjE;AAOO,SAAS,iBAAA,CAAkB,MAAA,GAA4B,EAAC,EAAG;AAChE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,WAAA,CACJC,MAAAA,GAQI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,wBAAA,EAA2B,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OACtD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,KAAA,EAiBA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,0BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,yBAAA,GAA4B;AAChC,MAAA,OAAO,QAAQ,OAAA,CAAwC;AAAA,QACrD,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iCAAA,GAAoC;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAwC;AAAA,QACrD,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJA,MAAAA,GAGI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,2BAAA,EAA8B,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OACzD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,KAAA,EAeA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,6BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJA,MAAAA,GAYI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC1D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EAqBA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EAqBA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EAqBA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBACJ,KAAA,EAGA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAA8B;AAAA,QAC3D,IAAA,EAAM,CAAA,gCAAA,EAAmC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC9D,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,IAAA,EAAM,mBAAA,CAAoB,QAAA,CAAS,IAAA,EAAM,IAAI;AAAA;AAC/C,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EAKA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAG5B;AAAA,QACD,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,GAAA,EAAK,oBAAA,CAAqB,QAAA,CAAS,IAAA,EAAM,GAAG,CAAA;AAAA,UAC5C,YAAA,EACE,OAAO,QAAA,CAAS,IAAA,EAAM,iBAAiB,QAAA,GACnC,QAAA,CAAS,KAAK,YAAA,GACd;AAAA;AACR,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,KAAA,GAA4C,IAC5C,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,QACnE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAuB,KAAA,EAAqB;AAChD,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAAiC;AAAA,QAC9D,IAAA,EAAM,CAAA,qCAAA,EAAwC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OACnE,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,OAAA,EAAS,wBAAA,CAAyB,QAAA,CAAS,IAAA,EAAM,OAAO;AAAA;AAC1D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAA,CACJ,KAAA,EAKA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAA8B;AAAA,QAC3D,IAAA,EAAM,uCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,yBAAA,CAA0B,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AACzD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAA,CACJ,QAAA,EACA,KAAA,EAKA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAA8B;AAAA,QAC3D,IAAA,EAAM,CAAA,sCAAA,EAAyC,kBAAA,CAAmB,QAAQ,CAAC,CAAA,CAAA;AAAA,QAC3E,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,yBAAA,CAA0B,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AACzD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAA,CACJ,QAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,MAAM,CAAA,sCAAA,EAAyC,kBAAA;AAAA,UAC7C;AAAA,SACD,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QACxB,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBACJ,KAAA,EAIA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC7D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EAQA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,SAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,SAAS,CAAC,CAAA,OAAA,CAAA;AAAA,QACtE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAgB,KAAA,EAA4C;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,8BAAA,EAAiC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC5D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,sBAAsB,KAAA,EAA4C;AACtE,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,IAAA,EAAM,CAAA,4CAAA,EAA+C,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC1E,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,GAA2C,EAAC,EAAG;AAC9D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,uBAAA,EAA0B,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OACrD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,KAAA,EAMA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,yBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,OAAA,EACA,KAAA,EAMA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,wBAAA,EAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA;AAAA,QAC5D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,OAAA,EACA,KAAA,GAAsB,IACtB,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,2BAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QACnF,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAiBA,MAAAA,EAA2C;AAChE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC7D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJ,KAAA,EAIA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QAC5D,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,wBAAA,CACJA,MAAAA,GAGI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC3D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EAKA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QAC1D,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACnzBO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAML,MAAM,IAAI,UAAA,EAAoB;AAC5B,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,UAAU,CAAC,CAAA,OAAA;AAAA,OACnE,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACeO,SAAS,qBAAA,CAAsB,MAAA,GAAgC,EAAC,EAAG;AACxE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,YAAA,CACJA,MAAAA,GAGI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,sCAAsC,aAAA,CAAc;AAAA,UACxD,GAAGA,MAAAA;AAAA,UACH,SAAA,EACE,OAAOA,MAAAA,CAAM,SAAA,KAAc,YACvBA,MAAAA,CAAM,SAAA,GACJ,SACA,OAAA,GACF,MAAA;AAAA,UACN,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJA,MAAAA,GAGI,EAAC,EACL;AACA,MAAA,OAAO,IAAA,CAAK,aAAaA,MAAK,CAAA;AAAA,IAChC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,qCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,mBAAA,CAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,mBAAA,CAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CACJA,MAAAA,GAKI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,oCAAoC,aAAA,CAAc;AAAA,UACtD,GAAGA,MAAAA;AAAA,UACH,aAAaA,MAAAA,CAAM,WAAA;AAAA,UACnB,aAAaA,MAAAA,CAAM,WAAA;AAAA,UACnB,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,QAAQ;AAAA;AAC5D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CACJA,MAAAA,GAKI,EAAC,EACL;AACA,MAAA,OAAO,IAAA,CAAK,WAAWA,MAAK,CAAA;AAAA,IAC9B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CAAY,KAAA,EAA2B,cAAA,EAAyB;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,mCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,KAAA,CAAM,KAAA,EAA2B,cAAA,EAAyB;AAC9D,MAAA,OAAO,IAAA,CAAK,WAAA,CAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/C,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,WAAA,CAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/C;AAAA,GACF;AACF;;;AC3LO,SAAS,iBAAA,CAAkB,MAAA,GAA4B,EAAC,EAAG;AAChE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,UAAA,CACJA,MAAAA,GAO2B,EAAC,EAC5B;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,MAAM,CAAA,6BAAA,EAAgC,aAAA;AAAA,UACpC,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,QAAQ;AAAA;AAC5D,OACF;AAAA,IACF;AAAA,GACF;AACF;;;ACXO,IAAM,wBAAA,GAAN,cAAuC,KAAA,CAAM;AAAA,EACzC,KAAA;AAAA,EACA,QAAA;AAAA,EAET,YAAY,IAAA,EAIT;AACD,IAAA,KAAA,CAAM,IAAA,CAAK,WAAA,IAAe,IAAA,CAAK,KAAK,CAAA;AACpC,IAAA,IAAA,CAAK,IAAA,GAAO,0BAAA;AACZ,IAAA,IAAA,CAAK,QAAQ,IAAA,CAAK,KAAA;AAClB,IAAA,IAAA,CAAK,WAAW,IAAA,CAAK,QAAA;AAAA,EACvB;AACF,CAAA;AAEA,SAAS,YAAY,MAAA,EAAqC;AACxD,EAAA,OAAO,MAAA,CAAO,OAAA,EAAS,OAAA,CAAQ,MAAA,EAAQ,EAAE,CAAA,IAAK,EAAA;AAChD;AAEA,eAAe,SAAS,QAAA,EAAsD;AAC5E,EAAA,MAAM,OAAA,GAAW,MAAM,QAAA,CAAS,IAAA,GAAO,KAAA,CAAM,OAAO,EAAC,CAAE,CAAA;AACvD,EAAA,OAAO,OAAA,IAAW,OAAO,OAAA,KAAY,QAAA,IAAY,CAAC,MAAM,OAAA,CAAQ,OAAO,CAAA,GAClE,OAAA,GACD,EAAC;AACP;AAEA,SAAS,WAAW,KAAA,EAAoC;AACtD,EAAA,MAAM,aAAa,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,CAAM,MAAK,GAAI,EAAA;AAC9D,EAAA,OAAO,UAAA,IAAc,MAAA;AACvB;AAEA,SAAS,yBAAyB,OAAA,EAAsD;AACtF,EAAA,MAAM,UAAA,GAAa,UAAA,CAAW,OAAA,CAAQ,WAAW,CAAA;AACjD,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,OAAA,CAAQ,SAAS,CAAA;AAC7C,EAAA,MAAM,eAAA,GAAkB,UAAA,CAAW,OAAA,CAAQ,gBAAgB,CAAA;AAC3D,EAAA,MAAM,uBAAA,GAA0B,UAAA,CAAW,OAAA,CAAQ,yBAAyB,CAAA;AAC5E,EAAA,MAAM,YAAY,OAAA,CAAQ,UAAA;AAC1B,EAAA,MAAM,WAAW,OAAA,CAAQ,QAAA;AACzB,EAAA,IACE,CAAC,UAAA,IACD,CAAC,QAAA,IACD,CAAC,eAAA,IACD,CAAC,uBAAA,IACD,OAAO,SAAA,KAAc,QAAA,IACrB,OAAO,aAAa,QAAA,EACpB;AACA,IAAA,MAAM,IAAI,MAAM,mDAAmD,CAAA;AAAA,EACrE;AACA,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,UAAA;AAAA,IACb,SAAA,EAAW,QAAA;AAAA,IACX,gBAAA,EAAkB,eAAA;AAAA,IAClB,yBAAA,EAA2B,uBAAA;AAAA,IAC3B,UAAA,EAAY,SAAA;AAAA,IACZ;AAAA,GACF;AACF;AAEA,SAAS,0BACP,OAAA,EACqB;AACrB,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,OAAA,CAAQ,YAAY,CAAA;AACnD,EAAA,MAAM,SAAA,GAAY,UAAA,CAAW,OAAA,CAAQ,UAAU,CAAA;AAC/C,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,OAAA,CAAQ,KAAK,CAAA;AACtC,EAAA,MAAM,QAAA,GAAW,UAAA,CAAW,OAAA,CAAQ,SAAS,CAAA;AAC7C,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,OAAA,CAAQ,YAAY,CAAA;AACnD,EAAA,IACE,CAAC,WAAA,IACD,SAAA,KAAc,QAAA,IACd,OAAO,OAAA,CAAQ,UAAA,KAAe,QAAA,IAC9B,CAAC,KAAA,IACD,CAAC,QAAA,IACD,CAAC,WAAA,EACD;AACA,IAAA,MAAM,IAAI,MAAM,oDAAoD,CAAA;AAAA,EACtE;AACA,EAAA,OAAO;AAAA,IACL,YAAA,EAAc,WAAA;AAAA,IACd,UAAA,EAAY,QAAA;AAAA,IACZ,YAAY,OAAA,CAAQ,UAAA;AAAA,IACpB,KAAA;AAAA,IACA,SAAA,EAAW,QAAA;AAAA,IACX,YAAA,EAAc,UAAA,CAAW,OAAA,CAAQ,YAAY,CAAA;AAAA,IAC7C,YAAA,EAAc,WAAA;AAAA,IACd,IAAA,EACE,OAAA,CAAQ,IAAA,IAAQ,OAAO,QAAQ,IAAA,KAAS,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,GAC1E,QAAQ,IAAA,GACT;AAAA,GACR;AACF;AAEA,SAAS,sBAAsB,OAAA,EAAyC;AACtE,EAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,OAAA,CAAQ,KAAK,CAAA;AACtC,EAAA,MAAM,IAAI,wBAAA,CAAyB;AAAA,IACjC,OAAO,KAAA,IAAS,iBAAA;AAAA,IAChB,WAAA,EAAa,UAAA,CAAW,OAAA,CAAQ,iBAAiB,CAAA;AAAA,IACjD,UACE,OAAO,OAAA,CAAQ,QAAA,KAAa,QAAA,GAAW,QAAQ,QAAA,GAAW;AAAA,GAC7D,CAAA;AACH;AAEO,SAAS,sBAAA,CAAuB,MAAA,GAA8B,EAAC,EAAG;AACvE,EAAA,MAAM,SAAA,GAAY,OAAO,SAAA,IAAa,KAAA;AACtC,EAAA,MAAM,OAAA,GAAU,YAAY,MAAM,CAAA;AAElC,EAAA,eAAe,IAAA,CAAK,MAAcC,KAAAA,EAA+B;AAC/D,IAAA,OAAO,SAAA,CAAU,CAAA,EAAG,OAAO,CAAA,EAAG,IAAI,CAAA,CAAA,EAAI;AAAA,MACpC,MAAA,EAAQ,MAAA;AAAA,MACR,OAAA,EAAS,EAAE,cAAA,EAAgB,kBAAA,EAAmB;AAAA,MAC9C,IAAA,EAAM,IAAA,CAAK,SAAA,CAAUA,KAAI;AAAA,KAC1B,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,MAAM,gBAAA,CAAiB,KAAA,GAAyB,EAAC,EAAG;AAClD,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,mCAAA,EAAqC;AAAA,QAC/D,SAAA,EAAW,MAAM,QAAA,IAAY,YAAA;AAAA,QAC7B,KAAA,EAAO,MAAM,KAAA,IAAS;AAAA,OACvB,CAAA;AACD,MAAA,MAAM,OAAA,GAAU,MAAM,QAAA,CAAS,QAAQ,CAAA;AACvC,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,qBAAA,CAAsB,OAAO,CAAA;AAAA,MAC/B;AACA,MAAA,OAAO,yBAAyB,OAAO,CAAA;AAAA,IACzC,CAAA;AAAA,IACA,MAAM,gBAAgB,UAAA,EAAoB;AACxC,MAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,oCAAA,EAAsC;AAAA,QAChE,UAAA,EAAY,8CAAA;AAAA,QACZ,WAAA,EAAa;AAAA,OACd,CAAA;AACD,MAAA,MAAM,OAAA,GAAU,MAAM,QAAA,CAAS,QAAQ,CAAA;AACvC,MAAA,IAAI,CAAC,SAAS,EAAA,EAAI;AAChB,QAAA,qBAAA,CAAsB,OAAO,CAAA;AAAA,MAC/B;AACA,MAAA,OAAO,0BAA0B,OAAO,CAAA;AAAA,IAC1C;AAAA,GACF;AACF;;;AC/HA,SAASC,UAAS,KAAA,EAA+B;AAC/C,EAAA,OAAO,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,MAAM,OAAA,CAAQ,KAAK,CAAA,GAC5D,KAAA,GACD,EAAC;AACP;AAEA,SAASC,YAAW,KAAA,EAAoC;AACtD,EAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,MAAM,UAAA,GAAa,MAAM,IAAA,EAAK;AAC9B,EAAA,OAAO,UAAA,CAAW,MAAA,GAAS,CAAA,GAAI,UAAA,GAAa,MAAA;AAC9C;AAEA,SAAS,WAAW,KAAA,EAAoC;AACtD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,MAAA;AACvE;AAEA,SAAS,QAAQ,KAAA,EAAuB;AACtC,EAAA,OAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAA;AACvC;AAEA,SAAS,sBAAsB,MAAA,EAK7B;AACA,EAAA,MAAM,OAAA,GAAUD,SAAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AACvC,EAAA,MAAM,YAAY,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,OAAO,MAAM,CAAA;AACnE,EAAA,MAAM,eAAe,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,OAAO,SAAS,CAAA;AACzE,EAAA,MAAM,iBAAiB,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,OAAO,WAAW,CAAA;AAC7E,EAAA,MAAM,cAAc,UAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,IAAK,UAAA,CAAW,OAAO,QAAQ,CAAA;AAEvE,EAAA,IACE,cAAc,MAAA,IACd,YAAA,KAAiB,UACjB,cAAA,KAAmB,MAAA,IACnB,gBAAgB,MAAA,EAChB;AACA,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,CAAA,EAAG,QAAQ,SAAS,CAAA;AAAA,IACpB,CAAA,EAAG,QAAQ,YAAY,CAAA;AAAA,IACvB,CAAA,EAAG,QAAQ,cAAc,CAAA;AAAA,IACzB,CAAA,EAAG,QAAQ,WAAW;AAAA,GACxB;AACF;AAEO,SAAS,wCACd,OAAA,EACuB;AACvB,EAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,CAAQ,UAAU,EAAC;AACpE,EAAA,OAAO,OAAA,CACJ,GAAA,CAAI,CAAC,KAAA,KAAU;AACd,IAAA,MAAM,MAAA,GAASA,UAAS,KAAK,CAAA;AAC7B,IAAA,MAAM,KAAA,GAAQ,sBAAsB,MAAM,CAAA;AAC1C,IAAA,MAAM,SAAA,GACJ,UAAA,CAAW,MAAA,CAAO,UAAU,CAAA,IAAK,OAAA,CAAQ,KAAA,CAAM,CAAA,GAAI,KAAA,CAAM,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AACtE,IAAA,MAAM,oBAAA,GAAuBC,WAAAA,CAAW,MAAA,CAAO,oBAAoB,CAAA;AACnE,IAAA,MAAM,oBAAA,GAAuBA,WAAAA,CAAW,MAAA,CAAO,oBAAoB,CAAA;AACnE,IAAA,MAAM,kBAAA,GAAqBA,WAAAA,CAAW,MAAA,CAAO,kBAAkB,CAAA;AAC/D,IAAA,MAAM,yBAAA,GAA4BA,WAAAA;AAAA,MAChC,MAAA,CAAO;AAAA,KACT;AACA,IAAA,MAAM,oBAAA,GAAuBA,WAAAA,CAAW,MAAA,CAAO,oBAAoB,CAAA;AACnE,IAAA,MAAM,aAAA,GAAgB,oBAAA,GACjB,EAAE,IAAA,EAAM,YAAY,EAAA,EAAI,oBAAA,EAAqB,GAC9C,oBAAA,GACG,EAAE,IAAA,EAAM,UAAA,EAAY,EAAA,EAAI,oBAAA,KACzB,kBAAA,GACG,EAAE,IAAA,EAAM,QAAA,EAAU,IAAI,kBAAA,EAAmB,GAC1C,yBAAA,GACG,EAAE,MAAM,eAAA,EAAiB,EAAA,EAAI,yBAAA,EAA0B,GACxD,uBACG,EAAE,IAAA,EAAM,UAAA,EAAY,EAAA,EAAI,sBAAqB,GAC9C,MAAA;AACZ,IAAA,MAAM,OAAA,GAAUA,WAAAA,CAAW,MAAA,CAAO,OAAO,CAAA;AACzC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,uDAAuD,CAAA;AAAA,IACzE;AAEA,IAAA,OAAO;AAAA,MACL,CAAA,EAAG,WAAW,MAAA,CAAO,SAAS,KAAK,UAAA,CAAW,MAAA,CAAO,UAAU,CAAA,IAAK,CAAA;AAAA,MACpE,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,GAAG,KAAA,CAAM,CAAA;AAAA,MACT,CAAA,EAAG,QAAQ,SAAS,CAAA;AAAA,MACpB,OAAA;AAAA,MACA,GAAI,aAAA,GAAgB,EAAE,aAAA,KAAkB,EAAC;AAAA,MACzC,GAAIA,WAAAA,CAAW,MAAA,CAAO,SAAS,CAAA,GAC3B,EAAE,SAAA,EAAWA,WAAAA,CAAW,MAAA,CAAO,SAAS,CAAA,EAAG,GAC3C,EAAC;AAAA,MACL,GAAIA,WAAAA,CAAW,MAAA,CAAO,MAAM,CAAA,GAAI,EAAE,MAAA,EAAQA,WAAAA,CAAW,MAAA,CAAO,MAAM,CAAA,EAAG,GAAI,EAAC;AAAA,MAC1E,GAAIA,WAAAA,CAAW,MAAA,CAAO,UAAU,CAAA,GAC5B,EAAE,UAAA,EAAYA,WAAAA,CAAW,MAAA,CAAO,UAAU,CAAA,EAAG,GAC7C;AAAC,KACP;AAAA,EACF,CAAC,EACA,IAAA,CAAK,CAAC,MAAM,KAAA,KAAU,IAAA,CAAK,CAAA,GAAI,KAAA,CAAM,CAAC,CAAA;AAC3C;AA+EA,SAAS,iCACP,KAAA,EACY;AACZ,EAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AAEtB,EAAA,OAAO;AAAA,IACL,QAAQ,OAAA,CAAQ,CAAA;AAAA,IAChB,WAAW,OAAA,CAAQ,CAAA;AAAA,IACnB,aAAa,OAAA,CAAQ,CAAA;AAAA,IACrB,UAAU,OAAA,CAAQ,CAAA;AAAA,IAClB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,oBAAoB,KAAA,CAAM,kBAAA;AAAA,IAC1B,2BAA2B,KAAA,CAAM,yBAAA;AAAA,IACjC,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,6BAA6B,KAAA,CAAM;AAAA,GACrC;AACF;AAiGO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,SAAS,kBAAkB,KAAA,EAAwB;AACjD,IAAA,MAAM,QAAA,GAAW,WAAW,KAAK,CAAA;AACjC,IAAA,MAAM,aAAa,QAAA,IAAY,GAAA;AAC/B,IAAA,IAAI,UAAA,GAAa,CAAA,IAAK,UAAA,GAAa,CAAA,EAAG;AACpC,MAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAAA,IACnD;AACA,IAAA,OAAO,UAAA;AAAA,EACT;AACA,EAAA,MAAM,qBAMF,OACF,QAAA,EACA,KAAA,EACA,cAAA,KAEA,QAAQ,OAAA,CAAoC;AAAA,IAC1C,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA,WAAA,CAAA;AAAA,IAC9D,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA,EAAM,iCAAiC,KAAK,CAAA;AAAA,IAC5C,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,GACxD,CAAA;AAEH,EAAA,eAAe,kBACb,QAAA,EACgC;AAChC,IAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAAuB;AAAA,MACpD,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA,mBAAA;AAAA,KAC/D,CAAA;AACD,IAAA,OAAO,uCAAA,CAAwC,SAAS,IAAI,CAAA;AAAA,EAC9D;AAEA,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,YAAA,CAAa,KAAA,EAA0B,cAAA,EAAyB;AACpE,MAAA,MAAM,QAAA,GAAW,iBAAA,CAAkB,KAAA,CAAM,QAAQ,CAAA;AACjD,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,0BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,GAAI,wBAAwB,KAAK,CAAA;AAAA,UACjC;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,QAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA,CAAA;AAAA,QAC9D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,wBAAwB,KAAmB,CAAA;AAAA,QACjD,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeA,MAAM,kBAAkB,QAAA,EAAkD;AACxE,MAAA,OAAO,kBAAkB,QAAQ,CAAA;AAAA,IACnC,CAAA;AAAA;AAAA,IAGA,MAAM,qBACJ,QAAA,EACgC;AAChC,MAAA,OAAO,kBAAkB,QAAQ,CAAA;AAAA,IACnC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CACJ,QAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA,KAAA,CAAA;AAAA,QAC9D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,2CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CAAY,KAAA,EAAyB,cAAA,EAAyB;AAClE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,4BAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,mDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC3hBO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,IAAA,EACA,cAAA,GAAiB,sBAAqB,EACtC;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,QAAA,EAAkB;AAC1B,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,OAC/D,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC2FO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,gBAAA,CACJ,QAAA,EACA,UAAA,EACA,sBACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,oCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,QAAA;AAAA,UACA,UAAA;AAAA,UACA,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,qBAAA,CACJ,QAAA,EACA,QAAA,EACA,sBACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAqC;AAAA,QAClD,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,QAAA;AAAA,UACA,QAAA;AAAA,UACA,MAAA,EAAQ;AAAA,SACV;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC5KO,SAAS,oBAAoB,KAAA,EAA2B;AAC7D,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK;AAC/B,EAAA,OAAO,aAAa,UAAA,GAAa,MAAA;AACnC;AAEO,SAAS,mBAAA,CACd,OACA,KAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,oBAAoB,KAAK,CAAA;AAC5C,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA,YAAA,CAAc,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,UAAA;AACT;AAEO,SAAS,YAAY,KAAA,EAA+B;AACzD,EAAA,OAAO,oBAAoB,KAAA,CAAM,OAAO,CAAA,IAAK,mBAAA,CAAoB,MAAM,SAAS,CAAA;AAClF;AAEO,SAAS,eAAe,KAAA,EAA+B;AAC5D,EAAA,MAAM,OAAA,GAAU,YAAY,KAAK,CAAA;AACjC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEO,SAAS,eAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAY,OAAO,CAAA;AAC1C,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,UAAA,CAAW,GAAA,CAAI,GAAG,CAAC,CAAA;AAC3E,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,SAAS,CAAA,gCAAA,EAAmC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvE;AAAA,EACF;AACF;AAEO,SAAS,YAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,eAAA,CAAgB,KAAA,EAAO,SAAS,SAAS,CAAA;AACzC,EAAA,OAAO,EAAE,GAAG,KAAA,EAAM;AACpB;AAEO,SAAS,YAAA,CACd,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,eAAA,CAAgB,KAAA,EAAO,SAAS,SAAS,CAAA;AACzC,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,GACb;AACF;AAEO,SAAS,sBAAA,CACd,MACA,SAAA,EAC0B;AAC1B,EAAA,MAAM,SAAS,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,GAAW,OAAO,EAAC;AAC1D,EAAA,OAAO,gBAAA;AAAA,IACL,KAAA,CAAM,OAAA,CAAS,MAAA,CAAmC,SAAS,CAAC,CAAA,GACtD,MAAA,CAA+B,SAAS,CAAA,GAC1C,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GACf,OACD,EAAC;AAAA,IACP;AAAA,GACF;AACF;;;ACtEO,IAAM,eAAA,GAAkB;AAAA,EAC7B,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAgGA,SAAS,MAAM,KAAA,EAAsB;AACnC,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAAS,IAAA,CAAK,OAAgC,SAAA,EAAmB;AAC/D,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,eAAA,EAAiB,SAAS,CAAA;AACvD;AAEO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,WAAA,CAAY,OAAyB,cAAA,EAAyB;AAC5D,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,WAAW,WAAW,CAAA;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAwB;AAAA,QACrC,IAAA,EAAM,yBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,WAAW,KAAA,EAAsB;AAC/B,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,MAAM,CAAA,uBAAA,EAA0B,aAAA,CAAc,KAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OAC5D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAiD,IAAA,EAAM,QAAQ;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,aAAa,KAAA,EAAsB;AACjC,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,MAAM,CAAA,yBAAA,EAA4B,aAAA,CAAc,KAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OAC9D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,eAAA,CAAgB,OAA6B,cAAA,EAAyB;AACpE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,mBAAA,CAAoB,KAAA,CAAM,WAAW,WAAW,CAAA;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,oCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,qBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,YAAY,YAAY,CAAA;AAClD,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,MAAM,CAAA,mCAAA,EAAsC,kBAAA;AAAA,UAC1C,KAAA,CAAM;AAAA,SACP,CAAA,SAAA,CAAA;AAAA,QACD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,oBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,YAAY,YAAY,CAAA;AAClD,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,MAAM,CAAA,mCAAA,EAAsC,kBAAA;AAAA,UAC1C,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,IAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AC1OA,IAAM,wBAAA,GAA2B,QAAA;AAGjC,IAAM,mBAAA,mBAAsB,IAAI,GAAA,CAAI,CAAC,QAAQ,CAAC,CAAA;AAuDvC,IAAM,uBAAA,GAAN,cAAsC,KAAA,CAAM;AAAA,EACjD,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AACF,CAAA;AAEA,IAAM,kBAAA,uBAAyB,GAAA,EAAkC;AAEjE,SAAS,gBAAA,CAAiB,OAAe,KAAA,EAAqC;AAC5E,EAAA,MAAM,UAAA,GAAa,MAAM,IAAA,EAAK;AAC9B,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,uBAAA,CAAwB,CAAA,YAAA,EAAe,KAAK,CAAA,aAAA,CAAe,CAAA;AAAA,EACvE;AACA,EAAA,IAAI,CAAC,0BAAA,CAA2B,IAAA,CAAK,UAAU,CAAA,EAAG;AAChD,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,CAAA,oBAAA,EAAuB,KAAK,CAAA,GAAA,EAAM,KAAK,CAAA,oCAAA;AAAA,KACzC;AAAA,EACF;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,mBAAmB,SAAA,EAA4B;AACtD,EAAA,MAAM,QAAA,GAAW,gBAAA;AAAA,IACf,SAAA,IAAa,wBAAA;AAAA,IACb;AAAA,GACF;AACA,EAAA,IAAI,mBAAA,CAAoB,GAAA,CAAI,QAAA,CAAS,WAAA,EAAa,CAAA,EAAG;AACnD,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,cAAc,QAAQ,CAAA,iCAAA;AAAA,KACxB;AAAA,EACF;AACA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,cAAc,IAAA,EAAsB;AAC3C,EAAA,IAAI,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,EAAG;AACtB,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,qBAAqB,IAAI,CAAA,6CAAA;AAAA,KAC3B;AAAA,EACF;AACA,EAAA,OAAO,gBAAA,CAAiB,MAAM,MAAM,CAAA;AACtC;AAEA,SAAS,aAAA,CAAc,WAAmB,SAAA,EAA2B;AACnE,EAAA,OAAO,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAClC;AAEA,SAAS,aAAa,MAAA,EAGpB;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,WAAA,EAAa;AACnC,IAAA,OAAO,EAAE,MAAA,EAAQ,MAAA,CAAO,MAAA,EAAO,EAAG,UAAU,KAAA,EAAM;AAAA,EACpD;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,UAAA,EAAY;AAClC,IAAA,MAAM,gBACJ,MAAA,CACA,aAAA;AACF,IAAA,IAAI,OAAO,kBAAkB,UAAA,EAAY;AACvC,MAAA,OAAO,EAAE,MAAA,EAAQ,aAAA,CAAc,KAAK,MAAM,CAAA,EAAG,UAAU,KAAA,EAAM;AAAA,IAC/D;AACA,IAAA,MAAM,KAAA,GAAS,OACZ,IAAA,EAAM,SAAA;AACT,IAAA,OAAO,EAAE,MAAA,EAAQ,KAAA,IAAS,MAAA,EAAQ,UAAU,KAAA,EAAM;AAAA,EACpD;AACA,EAAA,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAK;AAClC;AAEA,SAAS,qBAAqB,MAAA,EAG5B;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,SAAA,EAAW;AACjC,IAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,EAC1B;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,OAAA,EAAS;AAC/B,IAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,OAAO,OAAA,EAAQ;AAAA,EAChD;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,aAAA,EAAe;AACrC,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,MAAA,CAAO,IAAI,CAAA,CAAE,MAAA;AAAA,MACxC,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU;AAAA,KAC/C;AACA,IAAA,OAAO,MAAA,CAAO,MAAA,GAAS,CAAA,GACnB,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,MAAA,EAAO,GAC/B,EAAE,IAAA,EAAM,QAAA,EAAS;AAAA,EACvB;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,UAAA,EAAY;AAClC,IAAA,MAAM,eAAe,MAAA,CAAO,KAAA;AAC5B,IAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,MAAA,OAAO,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,CAAC,YAAY,CAAA,EAAE;AAAA,IAChD;AACA,IAAA,IAAI,OAAO,iBAAiB,QAAA,EAAU;AACpC,MAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,IAC1B;AACA,IAAA,IAAI,OAAO,iBAAiB,SAAA,EAAW;AACrC,MAAA,OAAO,EAAE,MAAM,SAAA,EAAU;AAAA,IAC3B;AACA,IAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,EAC1B;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,SAAA,EAAW;AACjC,IAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAAA,EAC1B;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,UAAA,EAAY;AAClC,IAAA,OAAO,EAAE,MAAM,SAAA,EAAU;AAAA,EAC3B;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,QAAA,EAAU;AAChC,IAAA,OAAO,EAAE,MAAM,OAAA,EAAQ;AAAA,EACzB;AACA,EAAA,OAAO,EAAE,MAAM,QAAA,EAAS;AAC1B;AAEA,SAAS,gBAAgB,MAAA,EAA8B;AACrD,EAAA,IAAI,MAAA,YAAkB,CAAA,CAAE,SAAA,IAAa,MAAA,YAAkB,EAAE,OAAA,EAAS;AAChE,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,SAAA,EAAW;AACjC,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,UAAA,EAAY;AAClC,IAAA,OAAO,SAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,QAAA,EAAU;AAChC,IAAA,OAAO,OAAA;AAAA,EACT;AACA,EAAA,IAAI,MAAA,YAAkB,EAAE,SAAA,EAAW;AACjC,IAAA,OAAO,QAAA;AAAA,EACT;AACA,EAAA,OAAO,SAAA;AACT;AAEA,SAAS,iBAAA,CACP,OACA,SAAA,EACQ;AACR,EAAA,IAAI,EAAE,KAAA,YAAiB,CAAA,CAAE,SAAA,CAAA,EAAY;AACnC,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,GAAG,SAAS,CAAA,6BAAA;AAAA,KACd;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,iBAAiB,MAAA,EAGxB;AACA,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,EAAA,MAAM,aAA8C,EAAC;AACrD,EAAA,MAAM,WAAqB,EAAC;AAE5B,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,GAAG,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAC9C,IAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAW,QAAA,EAAU,YAAW,GAAI,YAAA;AAAA,MAClD;AAAA,KACF;AACA,IAAA,MAAM,aAAA,GAAgB,qBAAqB,SAAS,CAAA;AACpD,IAAA,UAAA,CAAW,GAAG,CAAA,GAAI;AAAA,MAChB,MAAM,aAAA,CAAc,IAAA;AAAA,MACpB,WAAA,EAAc,GAAA,CAAqB,WAAA,IAAe,CAAA,EAAG,GAAG,CAAA,UAAA,CAAA;AAAA,MACxD,GAAI,cAAc,IAAA,GAAO,EAAE,MAAM,aAAA,CAAc,IAAA,KAAS;AAAC,KAC3D;AACA,IAAA,IAAI,UAAA,EAAY;AACd,MAAA,QAAA,CAAS,KAAK,GAAG,CAAA;AAAA,IACnB;AAAA,EACF;AAEA,EAAA,OAAO,EAAE,YAAY,QAAA,EAAS;AAChC;AAEA,SAAS,eAAe,MAAA,EAAsC;AAC5D,EAAA,IAAI,MAAA,YAAkB,EAAE,SAAA,EAAW;AACjC,IAAA,MAAM,SAAS,MAAA,CAAO,WAAA;AAAA,MACpB,MAAA,CAAO,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AACjD,QAAA,MAAM,QAAA,GAAW,KAAA;AACjB,QAAA,MAAM,KAAA,GAAQ,eAAA,CAAgB,YAAA,CAAa,QAAQ,EAAE,MAAM,CAAA;AAC3D,QAAA,MAAM,WAAA,GAAc,SAAS,WAAA,IAAe,qBAAA;AAC5C,QAAA,OAAO,CAAC,GAAA,EAAK,CAAA,EAAG,KAAK,CAAA,QAAA,EAAM,WAAW,CAAA,CAAE,CAAA;AAAA,MAC1C,CAAC;AAAA,KACH;AACA,IAAA,OAAO;AAAA,MACL,WAAA,EAAa,4BAAA;AAAA,MACb;AAAA,KACF;AAAA,EACF;AAEA,EAAA,OAAO;AAAA,IACL,WAAA,EAAa,4BAAA;AAAA,IACb,MAAA,EAAQ;AAAA,MACN,MAAA,EAAQ,CAAA,EAAG,eAAA,CAAgB,MAAM,CAAC,CAAA,6BAAA;AAAA;AACpC,GACF;AACF;AAEA,SAAS,aAAA,CAIP,QAAA,EACA,SAAA,EACA,YAAA,EACA,WAAA,EACiB;AACjB,EAAA,MAAM,EAAE,UAAA,EAAY,QAAA,EAAS,GAAI,iBAAiB,WAAW,CAAA;AAC7D,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,QAAA;AAAA,IACN,aAAa,YAAA,CAAa,WAAA;AAAA,IAC1B,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA,EAAU,cAAA,CAAe,YAAA,CAAa,YAAY,CAAA;AAAA,IAClD,WAAA,EAAa,YAAA,CAAa,WAAA,IAAe,CAAA,EAAG,SAAS,CAAA,UAAA,CAAA;AAAA,IACrD,iBAAA,EAAmB,aAAa,iBAAA,IAAqB,MAAA;AAAA,IACrD,IAAA,EAAM,aAAa,IAAA,IAAQ;AAAA,GAC7B;AACF;AAQO,SAAS,kBAAA,CAId,YAAA,EACA,OAAA,GAAiC,EAAC,EACZ;AACtB,EAAA,MAAM,SAAA,GAAY,kBAAA,CAAmB,YAAA,CAAa,SAAS,CAAA;AAC3D,EAAA,MAAM,SAAA,GAAY,aAAA,CAAc,YAAA,CAAa,IAAI,CAAA;AACjD,EAAA,MAAM,QAAA,GAAW,aAAA,CAAc,SAAA,EAAW,SAAS,CAAA;AAEnD,EAAA,IAAI,mBAAmB,GAAA,CAAI,QAAQ,CAAA,IAAK,CAAC,QAAQ,OAAA,EAAS;AACxD,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,gBAAgB,QAAQ,CAAA,wBAAA;AAAA,KAC1B;AAAA,EACF;AAEA,EAAA,MAAM,WAAA,GAAc,iBAAA;AAAA,IAClB,YAAA,CAAa,WAAA;AAAA,IACb;AAAA,GACF;AACA,EAAA,MAAM,eAAe,YAAA,CAAa,YAAA;AAClC,EAAA,MAAM,QAAA,GAAW,aAAA;AAAA,IACf,QAAA;AAAA,IACA,SAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,MAAM,QAAA,GAA+B;AAAA,IACnC,QAAA,EAAU,aAAa,QAAA,EAAU,QAAA;AAAA,IACjC,IAAA,EAAM,YAAA,CAAa,QAAA,EAAU,IAAA,IAAQ,EAAC;AAAA,IACtC,cAAA,EAAgB,YAAA,CAAa,QAAA,EAAU,cAAA,IAAkB,CAAC,gBAAgB;AAAA,GAC5E;AAEA,EAAA,MAAM,UAAA,GAAmC;AAAA,IACvC,QAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA,EAAQ,OAAO,KAAA,EAAO,OAAA,KAAY;AAChC,MAAA,MAAM,WAAA,GAAc,WAAA,CAAY,KAAA,CAAM,KAAK,CAAA;AAC3C,MAAA,MAAM,SAAA,GAAY,MAAM,YAAA,CAAa,OAAA,CAAQ,aAAa,OAAO,CAAA;AACjE,MAAA,OAAO,YAAA,CAAa,MAAM,SAAS,CAAA;AAAA,IACrC;AAAA,GACF;AAEA,EAAA,kBAAA,CAAmB,GAAA,CAAI,UAAU,UAAU,CAAA;AAC3C,EAAA,OAAO,UAAA;AACT;AAOO,SAAS,qBAAqB,QAAA,EAA2B;AAC9D,EAAA,OAAO,kBAAA,CAAmB,MAAA,CAAO,QAAA,CAAS,IAAA,EAAM,CAAA;AAClD;AAOO,SAAS,wBACd,QAAA,EACkC;AAClC,EAAA,OAAO,kBAAA,CAAmB,GAAA,CAAI,QAAA,CAAS,IAAA,EAAM,CAAA;AAC/C;AAMO,SAAS,yBAAA,GAAoD;AAClE,EAAA,OAAO,CAAC,GAAG,kBAAA,CAAmB,MAAA,EAAQ,CAAA,CAAE,IAAA;AAAA,IAAK,CAAC,IAAA,EAAM,KAAA,KAClD,KAAK,QAAA,CAAS,aAAA,CAAc,MAAM,QAAQ;AAAA,GAC5C;AACF;AAKO,SAAS,0BAAA,GAAmC;AACjD,EAAA,kBAAA,CAAmB,KAAA,EAAM;AAC3B;AASA,eAAsB,0BAAA,CACpB,QAAA,EACA,MAAA,EACA,OAAA,EACkB;AAClB,EAAA,MAAM,UAAA,GAAa,wBAAwB,QAAQ,CAAA;AACnD,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,uBAAA;AAAA,MACR,gBAAgB,QAAQ,CAAA,oBAAA;AAAA,KAC1B;AAAA,EACF;AACA,EAAA,OAAO,UAAA,CAAW,MAAA,CAAO,MAAA,EAAQ,OAAO,CAAA;AAC1C;;;AChVO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,IAAA,CACJ,OAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,QACJ,OAAA,CAAiB;AAAA,QAChB,IAAA,EAAM,CAAA,2BAAA,EAA8B,aAAA,CAAc,OAAO,CAAC,CAAA;AAAA,OAC3D,CAAA,CACA,IAAA;AAAA,QAAK,CAAC,QAAA,KACL,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,MAAA,GACJ,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAClD,IAAA,GACD,EAAC;AACP,UAAA,MAAM,UAAA,GAAa,MAAM,OAAA,CAAQ,MAAA,CAAO,UAAU,CAAA,GAC9C,MAAA,CAAO,aACP,KAAA,CAAM,OAAA,CAAQ,OAAO,WAAW,CAAA,GAC9B,OAAO,WAAA,GACP,KAAA,CAAM,QAAQ,IAAI,CAAA,GAChB,OACA,EAAC;AACT,UAAA,MAAM,KAAA,GACJ,OAAO,MAAA,CAAO,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,MAAA,CAAO,KAAK,CAAA,GAC5D,MAAA,CAAO,KAAA,GACP,UAAA,CAAW,MAAA;AACjB,UAAA,OAAO;AAAA,YACL,GAAG,MAAA;AAAA,YACH,GAAG,gBAAA,CAAiB,UAAA,EAAY,aAAa,CAAA;AAAA,YAC7C,UAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACJ,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,IAAI,EAAA,EAAY;AACpB,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAC5D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,IAAA,CAAK,KAAA,EAA6B,cAAA,EAAyB;AAC/D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,KAAA,CAAM,UAAU,CAAC,CAAA,KAAA,CAAA;AAAA,QACzE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,SAAS,KAAA,CAAM;AAAA,SACjB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,OAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,IAAA,CAAK,KAAK,OAAO,CAAA;AAAA,IAC1B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAc,EAAA,EAAY;AAC9B,MAAA,OAAO,IAAA,CAAK,IAAI,EAAE,CAAA;AAAA,IACpB,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,6BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QAC3D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CAAkB,EAAA,EAAY,cAAA,EAAyB;AAC3D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QAC3D,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,UAAA,EACA,OAAA,GAA8C,EAAC,EAC/C;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAA+B,kBAAA,CAAmB,UAAU,CAAC,CAAA,SAAA,EAAY,aAAA,CAAc,OAAO,CAAC,CAAA;AAAA,OACtG,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,UAAU;AAAA;AAC9D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CACJ,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,UAAU,CAAC,CAAA,SAAA,CAAA;AAAA,QACnE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJ,UAAA,EACA,SAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAA+B,kBAAA,CAAmB,UAAU,CAAC,CAAA,UAAA,EAAa,kBAAA,CAAmB,SAAS,CAAC,CAAA,QAAA,CAAA;AAAA,QAC7G,MAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,UAAA,EACA,SAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAA+B,kBAAA,CAAmB,UAAU,CAAC,CAAA,UAAA,EAAa,kBAAA,CAAmB,SAAS,CAAC,CAAA,UAAA,CAAA;AAAA,QAC7G,MAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,MAAM,WAAW,UAAA,EAAoB;AACnC,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,mCAAA,EAAsC,kBAAA,CAAmB,UAAU,CAAC,CAAA;AAAA,OAC3E,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,QAAQ;AAAA;AAC5D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAqB,UAAA,EAAoB;AAC7C,MAAA,OAAO,IAAA,CAAK,WAAW,UAAU,CAAA;AAAA,IACnC;AAAA,GACF;AACF;;;AC5BO,SAAS,iBAAA,CAAkB,MAAA,GAA4B,EAAC,EAAG;AAChE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,UAAUH,MAAAA,EAAuB;AACrC,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,MAAM,CAAA,4BAAA,EAA+B,aAAA;AAAA,UACnC,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,aACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS,cAAA,CAA2C,IAAA,EAAM,OAAO,CAAC;AAAA,OAC9F;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAWA,MAAAA,EAAwB;AACvC,MAAA,OAAO,IAAA,CAAK,UAAUA,MAAK,CAAA;AAAA,IAC7B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQA,MAAAA,EAAqB;AACjC,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,CAAA,4BAAA,EAA+B,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC1D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,wBAAwB,KAAK,CAAA;AAAA,QACnC,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,wBAAwB,KAAqC,CAAA;AAAA,QACnE,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,oCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAM,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,KAAS,uBAAA,CAAwB,IAAI,CAAC;AAAA,SAChE;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CAAc,KAAA,EAA2B,cAAA,EAAyB;AACtE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,MAAM,kBAAA,GACJ,+BAAA,CAAgC,KAAA,CAAM,kBAAkB,KACxD,KAAA,CAAM,kBAAA;AACR,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,qCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,GAAG,KAAA;AAAA,UACH;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CAAe,KAAA,EAA4B,cAAA,EAAyB;AACxE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAUA,MAAAA,EAAuB;AACrC,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,MAAM,CAAA,4BAAA,EAA+B,aAAA;AAAA,UACnC,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAA2C,IAAA,EAAM,OAAO;AAAA;AAC1D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAWA,MAAAA,EAAwB;AACvC,MAAA,OAAO,IAAA,CAAK,UAAUA,MAAK,CAAA;AAAA,IAC7B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAqC,CAAA;AAAA,QAC/D,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAWA,MAAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,4BAAA,EAA+B,aAAA,CAAcA,MAAK,CAAC,CAAA,CAAA;AAAA,QACzD,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAaA,MAAAA,EAA0B;AAC3C,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,IAAA,EAAM,CAAA,mCAAA,EAAsC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OACjE,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAASA,MAAAA,EAAsB;AACnC,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoBA,MAAmC;AAAA,OAC9D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAA,CAAQA,MAAAA,GAAsB,EAAC,EAAG;AACtC,MAAA,MAAM,UAAA,GAAa,oBAAoBA,MAAkC,CAAA;AACzE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,iCAAiC,aAAA,CAAc;AAAA,UACnD,SACE,OAAO,UAAA,CAAW,OAAA,KAAY,QAAA,GAAW,WAAW,OAAA,GAAU,MAAA;AAAA,UAChE,QACE,OAAO,UAAA,CAAW,MAAA,KAAW,QAAA,GAAW,WAAW,MAAA,GAAS,MAAA;AAAA,UAC9D,OACE,OAAO,UAAA,CAAW,KAAA,KAAU,QAAA,GAAW,WAAW,KAAA,GAAQ;AAAA,SAC7D,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,IAAA,CAAKA,MAAAA,GAAmB,EAAC,EAAG;AAChC,MAAA,MAAM,UAAA,GAAa,oBAAoBA,MAA+B,CAAA;AACtE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,8BAA8B,aAAA,CAAc;AAAA,UAChD,SACE,OAAO,UAAA,CAAW,OAAA,KAAY,QAAA,GAAW,WAAW,OAAA,GAAU,MAAA;AAAA,UAChE,WACE,OAAO,UAAA,CAAW,SAAA,KAAc,QAAA,GAC5B,WAAW,SAAA,GACX,MAAA;AAAA,UACN,OACE,OAAO,UAAA,CAAW,KAAA,KAAU,QAAA,GAAW,WAAW,KAAA,GAAQ;AAAA,SAC7D,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,KAAKA,MAAAA,EAAkB;AAC3B,MAAA,MAAM,UAAA,GAAa,oBAAoBA,MAA+B,CAAA;AACtE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,8BAA8B,aAAA,CAAc;AAAA,UAChD,SACE,OAAO,UAAA,CAAW,OAAA,KAAY,QAAA,GAAW,WAAW,OAAA,GAAU,MAAA;AAAA,UAChE,eACE,OAAO,UAAA,CAAW,aAAA,KAAkB,QAAA,GAChC,WAAW,aAAA,GACX;AAAA,SACP,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAOA,MAAAA,EAAoB;AAC/B,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,yBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoBA,MAAiC;AAAA,OAC5D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAgBA,MAAAA,EAA0B;AAC9C,MAAA,OAAO,IAAA,CAAK,aAAaA,MAAK,CAAA;AAAA,IAChC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAQA,MAAAA,EAAkB;AAC9B,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,CAAA,2BAAA,EAA8B,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OACzD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CAAaA,MAAAA,GAAwB,EAAC,EAAG;AAC7C,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,CAAA,gCAAA,EAAmC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC9D,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACzfA,SAAS,0BAAA,CACP,MAAA,GAA8B,EAAC,EAC/B;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,GAA0C;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAiBO,IAAM,sBAAA,GAAyB;AAAA,EACpC,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AA2FA,SAAS,oBAAoB,KAAA,EAA4B;AACvD,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAAS,kBAAA,CAAmB,OAAgC,SAAA,EAAmB;AAC7E,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,sBAAA,EAAwB,SAAS,CAAA;AAC9D;AAOO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AACjD,EAAA,MAAM,YAAA,GAAe,2BAA2B,MAAM,CAAA;AAEtD,EAAA,MAAM,wBAAwB,CAC5B,MAAA,EACA,KAAA,EASA,cAAA,KAEA,QAAQ,OAAA,CAAiB;AAAA,IACvB,IAAA,EAAM,sCAAA;AAAA,IACN,MAAA;AAAA,IACA,IAAA,EAAM,KAAA;AAAA,IACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,GACxD,CAAA;AAEH,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,MAAA,GAAS;AACb,MAAA,OAAO,YAAA,CAAa,QAAO,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACjC,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,MAAU;AAAA,UAClC,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,eAAe,IAAA,CAAK,aAAA;AAAA,UACpB,QAAA,EAAU,KAAK,QAAA,IAAY,IAAA;AAAA,UAC3B,WAAA,EAAa,KAAK,WAAA,IAAe,IAAA;AAAA,UACjC,MAAA,EAAQ,MAAM,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAA,GAAI,IAAA,CAAK,SAAS,EAAC;AAAA,UACpD,KAAA,EAAO,MAAM,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,GAAI,IAAA,CAAK,QAAQ,EAAC;AAAA,UACjD,eAAA,EAAiB,KAAK,eAAA,KAAoB,IAAA;AAAA,UAC1C,aAAA,EAAe,KAAK,aAAA,KAAkB,IAAA;AAAA,UACtC,gBAAA,EAAkB,KAAK,gBAAA,KAAqB,IAAA;AAAA,UAC5C,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,WAAW,IAAA,CAAK;AAAA,SAClB,CAAE;AAAA,OACJ;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJA,MAAAA,GAKI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,oCAAA,EAAuC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAClE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAAA,YAC9B;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,qBAAA,CAAsB,MAAA,EAAQ,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,qBAAA,CAAsB,OAAA,EAAS,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,qBAAA,CAAsB,OAAA,EAAS,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,QAAA,CACJA,MAAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC5D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,MAAM;AAAA;AAC1D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CACJ,KAAA,EAUA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CACJ,KAAA,EACA,KAAA,GAKI,IACJ,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,QACjE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CACJ,KAAA,EACA,KAAA,GAA6B,IAC7B,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,QACjE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CACJ,KAAA,EACA,KAAA,GAA6B,IAC7B,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,SAAA,CAAU,KAAA,EAAO,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAiB,CAAA,EAAW;AAChC,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,MAAM,CAAA,qCAAA,EAAwC,aAAA,CAAc,EAAE,CAAA,EAAG,CAAC,CAAA;AAAA,OACnE,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,gBAAgB,KAAA,EAA4B;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,MAAM,CAAA,uCAAA,EAA0C,aAAA;AAAA,UAC9C,oBAAoB,KAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,kBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,iBAAiB,KAAA,EAA4B;AACjD,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,MAAM,CAAA,sCAAA,EAAyC,aAAA;AAAA,UAC7C,oBAAoB,KAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,gBAAgB,gBAAgB,CAAA;AAC1D,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,kBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,YAAY,KAAA,EAA4B;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,MAAM,CAAA,iCAAA,EAAoC,aAAA;AAAA,UACxC,oBAAoB,KAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,WAAW,WAAW,CAAA;AAChD,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,mCAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,kBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,cAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,eAAe,eAAe,CAAA;AACxD,MAAA,mBAAA,CAAoB,KAAA,CAAM,cAAc,cAAc,CAAA;AACtD,MAAA,mBAAA,CAAoB,KAAA,CAAM,gBAAgB,gBAAgB,CAAA;AAC1D,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,2CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,kBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,oBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,4CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,kBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACtbA,SAASE,UAAS,KAAA,EAAyC;AACzD,EAAA,OAAO,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,GAC5B,QACD,EAAC;AACP;AAEA,SAASH,aAAY,KAAA,EAAoC;AACvD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,GAAO,MAAA,GAAS,CAAA,GACtD,KAAA,CAAM,IAAA,EAAK,GACX,MAAA;AACN;AAEA,SAAS,qBAAqB,KAAA,EAA6B;AACzD,EAAA,MAAM,MAAA,GAASG,UAAS,KAAK,CAAA;AAC7B,EAAA,MAAM,OAAA,GACJH,YAAAA,CAAY,MAAA,CAAO,OAAO,CAAA,IAC1BA,YAAAA,CAAY,MAAA,CAAO,EAAE,CAAA,IACrBA,YAAAA,CAAY,MAAA,CAAO,GAAG,CAAA;AAExB,EAAA,OAAO,cAAA,CAAe;AAAA,IACpB,GAAG,MAAA;AAAA,IACH,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY;AAAC,GAC9B,CAAA;AACH;AAEA,SAAS,uBAAuB,KAAA,EAA+B;AAC7D,EAAA,OAAO,qBAAqB,KAAK,CAAA;AACnC;AAQO,SAAS,kBAAA,CAAmB,MAAA,GAA6B,EAAC,EAAG;AAClE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,IAAA,CAAKC,MAAAA,GAAwB,EAAC,EAAG;AACrC,MAAA,MAAM,OAAA,GAAU,eAAeA,MAAK,CAAA;AACpC,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,0BAA0B,aAAA,CAAc;AAAA,UAC5C,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,UAC7B,YAAYA,MAAAA,CAAM,UAAA;AAAA,UAClB,eAAeA,MAAAA,CAAM,aAAA;AAAA,UACrB,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,MAAMA,MAAAA,CAAM;AAAA,SACb,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,MAAA,GAASE,UAAS,IAAI,CAAA;AAC5B,UAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,MAAM,CAAA,GACrC,MAAA,CAAO,MAAA,CAAO,GAAA,CAAI,oBAAoB,CAAA,GACtC,EAAC;AAEL,UAAA,OAAO;AAAA,YACL,GAAG,gBAAA,CAAiB,KAAA,EAAO,QAAQ,CAAA;AAAA,YACnC,GAAG,MAAA;AAAA,YACH,MAAA,EAAQ,KAAA;AAAA,YACR,OACE,OAAO,MAAA,CAAO,UAAU,QAAA,GAAW,MAAA,CAAO,QAAQ,KAAA,CAAM;AAAA,WAC5D;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,IAAI,OAAA,EAAiB;AACzB,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,CAAA,wBAAA,EAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA;AAAA,OAC7D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,oBAAA,CAAqBA,UAAS,IAAI,CAAA,CAAE,SAAS,IAAI;AAAA;AACnD,OACF;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,MAAA,CAAO,KAAA,EAAyB,cAAA,EAAyB;AAC7D,MAAA,MAAM,OAAA,GAAU,eAAe,KAAK,CAAA;AACpC,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,yBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,GAAG,KAAA;AAAA,UACH,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,UAC7B,IAAA,EAAM,MAAM,IAAA,IAAQ;AAAA,SACtB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,aACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS,oBAAA,CAAqB,IAAI,CAAC;AAAA,OAC/D;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,OAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,CAAA,wBAAA,EAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA;AAAA,QAC5D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,aACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS,oBAAA,CAAqB,IAAI,CAAC;AAAA,OAC/D;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,OAAA,CAAQ,OAAA,EAAiBF,MAAAA,GAAwB,EAAC,EAAG;AACzD,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,CAAA,wBAAA,EAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA,KAAA,EAAQ,aAAA;AAAA,UAClEA;AAAA,SACD,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,MAAA,GAASE,UAAS,IAAI,CAAA;AAC5B,UAAA,OAAO;AAAA,YACL,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,IAAI,CAAA,GAC3B,MAAA,CAAO,IAAA,CAAK,GAAA,CAAI,sBAAsB,CAAA,GACtC;AAAC,WACP;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA,IAEA,MAAM,WAAA,CAAY,OAAA,EAAiBF,MAAAA,GAA4B,EAAC,EAAG;AACjE,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,CAAA,wBAAA,EAA2B,kBAAA,CAAmB,OAAO,CAAC,CAAA,SAAA,EAAY,aAAA;AAAA,UACtEA;AAAA,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CAAO,OAAA,EAAiB,cAAA,EAAyB;AACrD,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,EAAE,EAAA,EAAI,OAAA,EAAQ;AAAA,QACpB,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,UAAA,CAAW,KAAA,EAA6B,cAAA,EAAyB;AACrE,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACnFA,SAAS,+BACP,KAAA,EACY;AACZ,EAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AAEtB,EAAA,OAAO;AAAA,IACL,QAAQ,OAAA,CAAQ,CAAA;AAAA,IAChB,WAAW,OAAA,CAAQ,CAAA;AAAA,IACnB,aAAa,OAAA,CAAQ,CAAA;AAAA,IACrB,UAAU,OAAA,CAAQ,CAAA;AAAA,IAClB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,oBAAoB,KAAA,CAAM,kBAAA;AAAA,IAC1B,2BAA2B,KAAA,CAAM,yBAAA;AAAA,IACjC,sBAAsB,KAAA,CAAM,oBAAA;AAAA,IAC5B,6BAA6B,KAAA,CAAM;AAAA,GACrC;AACF;AAyQA,SAAS,eAAe,KAAA,EAA6B;AACnD,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IAAK,KAAA,CAAM,SAAS,CAAA,GAAI,KAAA,CAAM,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA;AACtE;AAEO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACS;AAC/C,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,0BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAA2D;AACnE,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OACzD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EACoD;AACpD,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,2BAA2B,aAAA,CAAc;AAAA,UAC7C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,YAAYA,MAAAA,CAAM,UAAA;AAAA,UAClB,eAAeA,MAAAA,CAAM,aAAA;AAAA,UACrB,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACS;AAC/C,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACS;AAC/C,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,KAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,gBAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,WAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,+BAA+B,KAAK,CAAA;AAAA,QAC1C;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,YAAA,CACJ,KAAA,EAOA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,eAAA,CACJ,KAAA,EAMA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,2CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,WAAA,CACJ,KAAA,EAOA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,cAAA,CACJ,KAAA,EAMA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,iBAAA,CACJ,KAAA,EAMA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,sBAAA,CACJ,KAAA,EAGA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,mDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,aAAA,CACJ,KAAA,EAMA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QACJ,EAAA,EACA,KAAA,GAA4B,EAAC,EAC7B,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,QAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QACJ,EAAA,EACuD;AACvD,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,QAAA;AAAA,OACzD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,kBACJ,EAAA,EACgD;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,mBAAA;AAAA,OACzD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,eACJ,EAAA,EACgD;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,mBAAA;AAAA,OACzD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,cAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,UAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA,CAAA;AAAA,QACxD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,0BAAA,CAA2B,MAAA,GAA8B,EAAC,EAAG;AAC3E,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,IAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EAM2D;AAC3D,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,kCAAkC,aAAA,CAAc;AAAA,UACpD,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAA4D;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAChE,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,iBAAA,CAAkB,MAAA,GAA8B,EAAC,EAAG;AAClE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,wBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EAC8C;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,yBAAyB,aAAA,CAAc;AAAA,UAC3C,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EAOA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,aAAA,CACJ,KAAA,EAKA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,uCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,WAAA,CACJ,KAAA,EAIA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,8BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,oBAAA,CAAqB,MAAA,GAA8B,EAAC,EAAG;AACrE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACiB;AACvD,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,2BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAA4D;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAC1D,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EAC8C;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,4BAA4B,aAAA,CAAc;AAAA,UAC9C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACe;AACrD,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,KAAA,CAAM,UAAU,CAAC,CAAA,KAAA,CAAA;AAAA,QACvE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,WAAW,KAAA,CAAM;AAAA,SACnB;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJA,MAAAA,EACA,cAAA,GAAiB,sBAAqB,EACQ;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAqB;AAAA,QAClC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,MAAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,YAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,aAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,wBAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,sDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,kBAAA,CAAmB,MAAA,GAA8B,EAAC,EAAG;AACnE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,IAAA,CACJA,MAAAA,GAAyB,EAAC,EACyB;AACnD,MAAA,OAAO,QAAQ,OAAA,CAA0B;AAAA,QACvC,IAAA,EAAM,0BAA0B,aAAA,CAAc;AAAA,UAC5C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,KAAA,EAAO,cAAA,CAAeA,MAAAA,CAAM,KAAK,CAAA;AAAA,UACjC,WAAWA,MAAAA,CAAM,SAAA;AAAA,UACjB,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,iBAAA,CAAkB,MAAA,GAA8B,EAAC,EAAG;AAClE,EAAA,MAAM,WAAA,GAAc,kBAAkB,MAAM,CAAA;AAC5C,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,aAAa,KAAA,EAA+B;AAChD,MAAA,OAAO,YAAY,YAAA,CAAa;AAAA,QAC9B,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,SAAA,EAAW,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,SAAS,CAAA,GACpC,KAAA,CAAM,SAAA,CAAU,IAAA,CAAK,GAAG,CAAA,GACxB,KAAA,CAAM,SAAA;AAAA,QACV,UAAU,KAAA,CAAM;AAAA,OACjB,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,SAAS,KAAA,EAA2B;AACxC,MAAA,OAAO,WAAA,CAAY,SAAS,KAAK,CAAA;AAAA,IACnC,CAAA;AAAA,IAEA,MAAM,OAAA,CAAQ,KAAA,GAA2B,EAAC,EAAG;AAC3C,MAAA,OAAO,WAAA,CAAY,QAAQ,KAAK,CAAA;AAAA,IAClC,CAAA;AAAA,IAEA,MAAM,IAAA,CAAK,KAAA,GAAwB,EAAC,EAAG;AACrC,MAAA,OAAO,WAAA,CAAY,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IAEA,MAAM,KAAK,KAAA,EAAuB;AAChC,MAAA,OAAO,WAAA,CAAY,KAAK,KAAK,CAAA;AAAA,IAC/B,CAAA;AAAA,IAEA,MAAM,OAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,oBAAA,CAAqB,MAAA,GAA8B,EAAC,EAAG;AACrE,EAAA,MAAM,cAAA,GAAiB,qBAAqB,MAAM,CAAA;AAElD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,GAAS;AACb,MAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,MAAA,EAAO;AAC7C,MAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAAA,IAClD;AAAA,GACF;AACF;AAEO,SAAS,sBAAA,CAAuB,MAAA,GAA8B,EAAC,EAAG;AACvE,EAAA,MAAM,cAAA,GAAiB,qBAAqB,MAAM,CAAA;AAClD,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,IAAI,EAAA,EAA4D;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAC5D,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAA,CAAKA,MAAAA,GAA2B,EAAC,EAAG;AACxC,MAAA,OAAO,cAAA,CAAe,KAAKA,MAAK,CAAA;AAAA,IAClC,CAAA;AAAA,IAEA,MAAM,IAAA,CACJ,KAAA,EACA,cAAA,EACgD;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,KAAA,CAAM,UAAU,CAAC,CAAA,KAAA,CAAA;AAAA,QACzE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,SAAS,KAAA,CAAM;AAAA,SACjB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KAAA,CACJ,KAAA,EACA,cAAA,EACgD;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,mCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,qBAAA,CAAsB,MAAA,GAA8B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,4BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAA4D;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAC3D,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EACsD;AACtD,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,6BAA6B,aAAA,CAAc;AAAA,UAC/C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,YAAYA,MAAAA,CAAM,UAAA;AAAA,UAClB,OAAOA,MAAAA,CAAM,KAAA;AAAA,UACb,QAAQA,MAAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA,CAAA;AAAA,QAC1D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA,CAAA;AAAA,QAC1D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QACJ,EAAA,EACA,KAAA,GAA8B,EAAC,EAC/B,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QAC1D,MAAA,EAAQ,QAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,YAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA,CAAA;AAAA,QAC1D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,WAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,GAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,cAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,4CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,mBAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,kDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,gBAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,8CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,gDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,mCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,mCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,kBAAA,CAAmB,MAAA,GAA8B,EAAC,EAAG;AACnE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MACJ,KAAA,EAC+C;AAC/C,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,yBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,iBAAA,CAAkB,MAAA,GAA8B,EAAC,EAAG;AAClE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,wBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AAAA,QAC5D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,UAAU,KAAA,CAAM;AAAA,SAClB;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,SAAA,CAAA;AAAA,QAC5D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,eAAe,KAAA,CAAM;AAAA,SACvB;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EACiD;AACjD,MAAA,OAAO,QAAQ,OAAA,CAAwB;AAAA,QACrC,IAAA,EAAM,yBAAyB,aAAA,CAAc;AAAA,UAC3C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,YAAYA,MAAAA,CAAM,UAAA;AAAA,UAClB,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,kBAAA,CAAmB,MAAA,GAA8B,EAAC,EAAG;AACnE,EAAA,MAAM,YAAA,GAAe,mBAAmB,MAAM,CAAA;AAE9C,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CAAO,KAAA,EAAyB,cAAA,EAAyB;AAC7D,MAAA,OAAO,YAAA,CAAa,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA;AAAA,IAClD,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAAY;AACpB,MAAA,OAAO,YAAA,CAAa,IAAI,EAAE,CAAA;AAAA,IAC5B,CAAA;AAAA,IAEA,MAAM,IAAA,CAAKA,MAAAA,GAAwB,EAAC,EAAG;AACrC,MAAA,OAAO,YAAA,CAAa,KAAKA,MAAK,CAAA;AAAA,IAChC,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,MAAM,EAAE,EAAA,EAAI,GAAG,IAAA,EAAK,GAAI,KAAA;AACxB,MAAA,OAAO,YAAA,CAAa,MAAA,CAAO,EAAA,EAAI,IAAA,EAAM,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IAEA,MAAM,KAAK,KAAA,EAAwC;AACjD,MAAA,OAAO,YAAA,CAAa,OAAA,CAAQ,KAAA,CAAM,EAAA,EAAI;AAAA,QACpC,UAAU,KAAA,CAAM;AAAA,OACjB,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,SAAS,KAAA,EAA4C;AACzD,MAAA,OAAO,YAAA,CAAa,WAAA,CAAY,KAAA,CAAM,EAAA,EAAI;AAAA,QACxC,oBAAoB,KAAA,CAAM,kBAAA;AAAA,QAC1B,UAAU,KAAA,CAAM;AAAA,OACjB,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CAAO,EAAA,EAAY,cAAA,GAAiB,sBAAqB,EAAG;AAChE,MAAA,OAAO,YAAA,CAAa,MAAA,CAAO,EAAA,EAAI,cAAc,CAAA;AAAA,IAC/C,CAAA;AAAA,IAEA,MAAM,UAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACtC;AACA,MAAA,OAAO,YAAA,CAAa,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD;AAAA,GACF;AACF;AAEO,SAAS,oBAAA,CAAqB,MAAA,GAA8B,EAAC,EAAG;AACrE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,2BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAA,CACJA,MAAAA,GAA0B,EAAC,EAC0B;AACrD,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,4BAA4B,aAAA,CAAc;AAAA,UAC9C,SAASA,MAAAA,CAAM;AAAA,SAChB,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,IAAI,EAAA,EAA4D;AACpE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA;AAAA,OAC1D,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QACzD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,EAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QACzD,MAAA,EAAQ,QAAA;AAAA,QACR;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJ,EAAA,EACA,KAAA,GAA0B,EAAC,EAC3B,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA,KAAA,CAAA;AAAA,QACzD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,UAAA,CACJ,EAAA,EACAA,MAAAA,GAAgC,EAAC,EACe;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,MAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,cAAc,aAAA,CAAc;AAAA,UACnF,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,OAAO,EAAA,EAA4D;AACvE,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,0BAAA,EAA6B,kBAAA,CAAmB,EAAE,CAAC,CAAA,OAAA;AAAA,OAC1D,CAAA;AAAA,IACH;AAAA,GACF;AACF;AAEO,SAAS,qBAAA,CAAsB,MAAA,GAA8B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,4BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KACJA,MAAAA,EACsD;AACtD,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,6BAA6B,aAAA,CAAc;AAAA,UAC/C,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,MAAMA,MAAAA,CAAM,IAAA;AAAA,UACZ,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,aAAA,CACJA,MAAAA,GAII,EAAC,EAC2C;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,uCAAuC,aAAA,CAAc;AAAA,UACzD,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,SAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,MAAM,EAAC;AAAA,QACP;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,MAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,qBAAqB,KAAA,CAAM,mBAAA;AAAA,UAC3B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,oBAAoB,KAAA,CAAM,kBAAA;AAAA,UAC1B,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,QAAQ,KAAA,CAAM;AAAA,SAChB;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,KAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,MAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,UAAU,KAAA,CAAM;AAAA,SAClB;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,aAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,KAAA,CAAM,EAAE,CAAC,CAAA,QAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,mBAAmB,KAAA,CAAM;AAAA,SAC3B;AAAA,QACA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QAAA,CACJ,KAAA,EAMA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,qCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,YAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,QAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,UAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,MAAM,UAAA,CACJ,KAAA,EACA,cAAA,GAAiB,sBAAqB,EACU;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN;AAAA,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC1kDO,SAAS,qBAAA,CAAsB,MAAA,GAAgC,EAAC,EAAG;AACxE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,cAAcA,MAAAA,EAA2B;AAC7C,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,mCAAmC,aAAA,CAAc;AAAA,UACrD,GAAG,oBAAoBA,MAAK,CAAA;AAAA,UAC5B,eAAA,EACE,OAAOA,MAAAA,CAAM,eAAA,KAAoB,YAC7BA,MAAAA,CAAM,eAAA,GACJ,SACA,OAAA,GACF,MAAA;AAAA,UACN,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,OAAO,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAC3C,UAAA,MAAM,YAAY,IAAA,CAAK,GAAA;AAAA,YAAI,CAAC,GAAA,KAC1B,cAAA,CAAe,GAA8B;AAAA,WAC/C;AACA,UAAA,OAAO;AAAA,YACL,GAAG,gBAAA,CAAiB,SAAA,EAAW,WAAW;AAAA,WAC5C;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAY,UAAA,EAAoB;AACpC,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,UAAU,CAAC,CAAA;AAAA,OACzE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,IAAA,IAAQ,OAAO,SAAS,QAAA,GACnB,cAAA;AAAA,YACC;AAAA,WACF,GACA;AAAA;AACN,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAqBA,MAAAA,EAED;AACxB,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,MAAM,CAAA,0CAAA,EAA6C,aAAA;AAAA,UACjD,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAuBA,MAAAA,EAAoC;AAC/D,MAAA,OAAO,QAAQ,OAAA,CAAqC;AAAA,QAClD,MAAM,CAAA,4CAAA,EAA+C,aAAA;AAAA,UACnD,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,0BACJA,MAAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8C;AAAA,QAC3D,MAAM,CAAA,uDAAA,EAA0D,aAAA;AAAA,UAC9D,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,OAAO,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAO,EAAC;AAC3C,UAAA,MAAM,UAAU,IAAA,CAAK,GAAA;AAAA,YAAI,CAAC,GAAA,KACxB,cAAA;AAAA,cACE;AAAA;AACF,WACF;AACA,UAAA,OAAO,gBAAA,CAAiB,SAAS,SAAS,CAAA;AAAA,QAC5C,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iCACJA,MAAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,0BAA0BA,MAAK,CAAA;AAAA,IAC7C,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oCACJA,MAAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAkD;AAAA,QAC/D,MAAM,CAAA,2DAAA,EAA8D,aAAA;AAAA,UAClE;AAAA,YACE,GAAG,oBAAoBA,MAAK,CAAA;AAAA,YAC5B,YAAYA,MAAAA,CAAM,UAAA;AAAA,YAClB,cAAA,EACE,OAAOA,MAAAA,CAAM,cAAA,KAAmB,YAC5BA,MAAAA,CAAM,cAAA,GACJ,SACA,OAAA,GACF;AAAA;AACR,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CAAe,KAAA,EAA4B,cAAA,EAAyB;AACxE,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAK,CAAA;AAAA,QAC/B,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA;AAAA,YACE;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CAAe,KAAA,EAA4B,cAAA,EAAyB;AACxE,MAAA,OAAO,IAAA,CAAK,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IAClD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAuC;AAAA,QACpD,IAAA,EAAM,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,UAAU,CAAC,CAAA,QAAA,CAAA;AAAA,QACxE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,qBAAA,CAAsB,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IACrE;AAAA,GACF;AACF;;;AC3QO,IAAM,iBAAA,GAAoB;AAAA,EAC/B,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAgGA,SAAS,cAAc,OAAA,EAAmB;AACxC,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,IAAK,OAAA,CAAQ,WAAW,CAAA,EAAG;AACnD,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACF;AAEA,SAAS,aAAa,KAAA,EAAmC;AACvD,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,IAC7B,WAAA,EAAa,mBAAA,CAAoB,KAAA,CAAM,WAAA,EAAa,aAAa,CAAA;AAAA,IACjE,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,gBAAgB,KAAA,CAAM,cAAA;AAAA,IACtB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEO,SAAS,sBAAA,CAAuB,MAAA,GAAiC,EAAC,EAAG;AAC1E,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,aAAa,KAAA,EAAoC;AAC/C,MAAA,aAAA,CAAc,MAAM,OAAO,CAAA;AAC3B,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ;AAAA,YACE,GAAG,KAAA;AAAA,YACH,WAAA,EAAa,mBAAA,CAAoB,KAAA,CAAM,WAAA,EAAa,aAAa;AAAA,WACnE;AAAA,UACA,iBAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,oBAAoB,KAAA,EAAmC;AACrD,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,MAAM,CAAA,mCAAA,EAAsC,aAAA;AAAA,UAC1C,aAAa,KAAK;AAAA,SACnB,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,oBAAoB,KAAA,EAAiC;AACnD,MAAA,IAAI,CAAC,KAAA,CAAM,SAAA,IAAa,CAAC,MAAM,WAAA,EAAa;AAC1C,QAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAAA,MACxD;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,2CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ;AAAA,YACE,GAAG,KAAA;AAAA,YACH,WAAA,EAAa,mBAAA,CAAoB,KAAA,CAAM,WAAA,EAAa,aAAa;AAAA,WACnE;AAAA,UACA,iBAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAqD,IAAA,EAAM,SAAS;AAAA;AACtE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,2BAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,aAAA,CAAc,MAAM,OAAO,CAAA;AAC3B,MAAA,OAAO,QAAQ,OAAA,CAKZ;AAAA,QACD,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ;AAAA,YACE,GAAG,KAAA;AAAA,YACH,WAAA,EAAa,mBAAA,CAAoB,KAAA,CAAM,WAAA,EAAa,aAAa;AAAA,WACnE;AAAA,UACA,iBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AClNA,SAASD,aAAY,KAAA,EAAoC;AACvD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,GAAO,MAAA,GAAS,CAAA,GACtD,KAAA,CAAM,IAAA,EAAK,GACX,MAAA;AACN;AAEA,SAAS,YAAY,KAAA,EAAoC;AACvD,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,QAAA,CAAS,KAAK,IAAI,KAAA,GAAQ,MAAA;AACvE;AAEA,SAAS,aAAa,KAAA,EAAqC;AACzD,EAAA,OAAO,OAAO,KAAA,KAAU,SAAA,GAAY,KAAA,GAAQ,MAAA;AAC9C;AAEA,SAAS,0BAAA,CACP,OAAA,EACA,KAAA,GAA6B,EAAC,EACR;AACtB,EAAA,MAAM,OAAA,GAAmC,EAAE,OAAA,EAAQ;AAEnD,EAAA,MAAMC,MAAAA,GAAQD,YAAAA,CAAY,KAAA,CAAM,KAAK,CAAA;AACrC,EAAA,IAAIC,MAAAA,EAAO;AACT,IAAA,OAAA,CAAQ,KAAA,GAAQA,MAAAA;AAAA,EAClB;AAEA,EAAA,MAAM,SAAS,WAAA,CAAY,KAAA,CAAM,MAAM,CAAA,IAAK,WAAA,CAAY,MAAM,WAAW,CAAA;AACzE,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAA,CAAQ,MAAA,GAAS,MAAA;AAAA,EACnB;AAEA,EAAA,MAAM,UAAUD,YAAAA,CAAY,KAAA,CAAM,OAAO,CAAA,IAAKA,YAAAA,CAAY,MAAM,cAAc,CAAA;AAC9E,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,OAAA,CAAQ,OAAA,GAAU,OAAA;AAAA,EACpB;AAEA,EAAA,MAAM,KAAA,GAAQ,WAAA,CAAY,KAAA,CAAM,KAAK,CAAA;AACrC,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAA,CAAQ,KAAA,GAAQ,KAAA;AAAA,EAClB;AAEA,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,KAAA,CAAM,QAAQ,CAAA;AAC3C,EAAA,IAAI,aAAa,MAAA,EAAW;AAC1B,IAAA,OAAA,CAAQ,QAAA,GAAW,QAAA;AAAA,EACrB;AAEA,EAAA,MAAM,eAAA,GAAkB,YAAA,CAAa,KAAA,CAAM,eAAe,CAAA;AAC1D,EAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,IAAA,OAAA,CAAQ,eAAA,GAAkB,eAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,IAAA,GAAOA,YAAAA,CAAY,KAAA,CAAM,IAAI,CAAA;AACnC,EAAA,IAAI,IAAA,EAAM;AACR,IAAA,OAAA,CAAQ,IAAA,GAAO,IAAA;AAAA,EACjB;AAEA,EAAA,MAAM,eAAA,GAAkB,YAAA,CAAa,KAAA,CAAM,eAAe,CAAA;AAC1D,EAAA,IAAI,oBAAoB,MAAA,EAAW;AACjC,IAAA,OAAA,CAAQ,eAAA,GAAkB,eAAA;AAAA,EAC5B;AAEA,EAAA,MAAM,UAAA,GAAaA,YAAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAC/C,EAAA,IAAI,UAAA,EAAY;AACd,IAAA,OAAA,CAAQ,UAAA,GAAa,UAAA;AAAA,EACvB;AAEA,EAAA,MAAM,SAAA,GAAYA,YAAAA,CAAY,KAAA,CAAM,SAAS,CAAA;AAC7C,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,OAAA,CAAQ,SAAA,GAAY,SAAA;AAAA,EACtB;AAEA,EAAA,IAAI,KAAA,CAAM,QAAQ,KAAA,CAAM,mBAAmB,KAAK,KAAA,CAAM,mBAAA,CAAoB,SAAS,CAAA,EAAG;AACpF,IAAA,OAAA,CAAQ,sBAAsB,KAAA,CAAM,mBAAA;AAAA,EACtC;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,kCAAA;AAAA,IACN,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA,EAAM;AAAA,GACR;AACF;AAOO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOL,MAAM,OAAA,CAAQ,OAAA,EAAiB,KAAA,GAA6B,EAAC,EAAG;AAC9D,MAAA,MAAM,OAAA,GAAU,0BAAA,CAA2B,OAAA,EAAS,KAAK,CAAA;AACzD,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,GAAG,OAAA;AAAA,QACH,MAAM,OAAA,CAAQ;AAAA,OACf,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACpHO,IAAM,8BAAA,GAAiC;AAAA,EAC5C,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,gCAAA,GAAmC;AAAA,EAC9C,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA;AAEO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,eAAA;AAAA,EACA,kBAAA;AAAA,EACA;AACF,CAAA;AAuJA,SAASK,aAAY,KAAA,EAAmD;AACtE,EAAA,OAAO,MAAM,OAAA,EAAS,IAAA,MAAU,KAAA,CAAM,SAAA,EAAW,MAAK,IAAK,MAAA;AAC7D;AAEA,SAASC,gBAAe,KAAA,EAAuC;AAC7D,EAAA,MAAM,OAAA,GAAUD,aAAY,KAAK,CAAA;AACjC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEA,SAASE,gBAAAA,CACP,KAAA,EACA,OAAA,EACA,SAAA,EACA;AACA,EAAA,MAAM,UAAA,GAAa,IAAI,GAAA,CAAY,OAAO,CAAA;AAC1C,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,UAAA,CAAW,GAAA,CAAI,GAAG,CAAC,CAAA;AAC3E,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,SAAS,CAAA,gCAAA,EAAmC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvE;AAAA,EACF;AACF;AAEA,SAAS,yBAAyB,KAAA,EAA2C;AAC3E,EAAAA,gBAAAA;AAAA,IACE,KAAA;AAAA,IACA,8BAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,OAAA,EAASD,gBAAe,KAAK,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,GACb;AACF;AAEA,SAAS,2BAA2B,KAAA,EAA8C;AAChF,EAAAC,gBAAAA;AAAA,IACE,KAAA;AAAA,IACA,gCAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,OAAA,EAASD,gBAAe,KAAK,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,GACb;AACF;AAEA,SAAS,wBACP,KAAA,EACY;AACZ,EAAAC,gBAAAA;AAAA,IACE,KAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,OAAA,EAASD,gBAAe,KAAK,CAAA;AAAA,IAC7B,SAAA,EAAW;AAAA,GACb;AACF;AAEA,SAAS,mBAAmB,KAAA,EAA+B;AACzD,EAAA,OAAO;AAAA,IACL,OAAA,EAASA,gBAAe,KAAK,CAAA;AAAA,IAC7B,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,cAAc,KAAA,CAAM,YAAA;AAAA,IACpB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEO,SAAS,yBAAA,CACd,MAAA,GAAoC,EAAC,EACrC;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,YAAA,CAAa,OAA+B,cAAA,EAAyB;AACnE,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,yBAAyB,KAAK,CAAA;AAAA,QACpC,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,aAAa,KAAA,EAA+B;AAC1C,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,MAAM,CAAA,wCAAA,EAA2C,aAAA;AAAA,UAC/C,mBAAmB,KAAK;AAAA,SACzB,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAS,IAAA,CAAkC,QAAQ,CAAA,GACnD,IAAA,CAA6C,QAAA,GAC/C,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAChB,IAAA,GACA,EAAC;AAAA,YACP;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,kBAAkB,KAAA,EAAoC;AACpD,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,kDAAkD,aAAA,CAAc;AAAA,UACpE,OAAA,EAASA,gBAAe,KAAK,CAAA;AAAA,UAC7B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,cAAc,KAAA,CAAM;AAAA,SACrB,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,eAAA,CAAgB,OAAkC,cAAA,EAAyB;AACzE,MAAA,OAAO,QAAQ,OAAA,CAA0C;AAAA,QACvD,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,2BAA2B,KAAK,CAAA;AAAA,QACtC,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,sBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,MAAM,CAAA,4CAAA,EAA+C,kBAAA;AAAA,UACnD,KAAA,CAAM;AAAA,SACP,CAAA,CAAA;AAAA,QACD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,UAAU,KAAA,CAAM;AAAA,SAClB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,gBAAgB,KAAA,EAAkC;AAChD,MAAA,OAAO,QAAQ,OAAA,CAA0C;AAAA,QACvD,IAAA,EAAM,8CAA8C,aAAA,CAAc;AAAA,UAChE,OAAA,EAASA,gBAAe,KAAK,CAAA;AAAA,UAC7B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,QAAQ,KAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAS,IAAA,CAAqC,WAAW,CAAA,GACzD,IAAA,CAAoD,WAAA,GACtD,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAChB,IAAA,GACA,EAAC;AAAA,YACP;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,iBAAiB,KAAA,EAA8B;AAC7C,MAAA,OAAO,QAAQ,OAAA,CAAsC;AAAA,QACnD,IAAA,EAAM,0CAA0C,aAAA,CAAc;AAAA,UAC5D,OAAA,EAASA,gBAAe,KAAK,CAAA;AAAA,UAC7B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,QAAQ,KAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA,CAAS,IAAA,CAAiC,OAAO,CAAA,GACjD,IAAA,CAAkD,OAAA,GACpD,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAChB,IAAA,GACA,EAAC;AAAA,YACP;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,wBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,wBAAwB,KAAK,CAAA;AAAA,QACnC,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACxYO,IAAM,2BAAA,GAA8B;AAAA,EACzC,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA;AA+DA,SAASD,aAAY,KAAA,EAAiD;AACpE,EAAA,OAAO,MAAM,OAAA,EAAS,IAAA,MAAU,KAAA,CAAM,SAAA,EAAW,MAAK,IAAK,MAAA;AAC7D;AAEA,SAASC,gBAAe,KAAA,EAAiD;AACvE,EAAA,MAAM,OAAA,GAAUD,aAAY,KAAK,CAAA;AACjC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEA,SAASE,gBAAAA,CACP,OACA,SAAA,EACA;AACA,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAY,2BAA2B,CAAA;AAC3D,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAC,CAAA;AACxE,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,SAAS,CAAA,gCAAA,EAAmC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvE;AAAA,EACF;AACF;AAEA,SAAS,UAAU,KAAA,EAAqC;AACtD,EAAAA,gBAAAA;AAAA,IACE,KAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,OAAA,EAASD,gBAAe,KAAK,CAAA;AAAA,IAC7B,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,YAAY,KAAA,CAAM,UAAA;AAAA,IAClB,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,aAAA,EAAe,KAAA,CAAM,aAAA,EAAe,IAAA,CAAK,GAAG,CAAA;AAAA,IAC5C,aAAa,KAAA,CAAM;AAAA,GACrB;AACF;AAEO,SAAS,gCAAA,CACd,MAAA,GAA2C,EAAC,EAC5C;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,aAAa,KAAA,EAAqC;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAyC;AAAA,QACtD,MAAM,CAAA,sCAAA,EAAyC,aAAA;AAAA,UAC7C,UAAU,KAAK;AAAA,SAChB,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA;AAAA,YACE,KAAA,CAAM,OAAA;AAAA,cACH,IAAA,CAAyC;AAAA,aAC5C,GACK,KACE,eAAA,GACH,KAAA,CAAM,QAAQ,IAAI,CAAA,GAChB,OACA,EAAC;AAAA,YACP;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,kBAAkB,gBAAA,EAA0B;AAC1C,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,MAAM,CAAA,uCAAA,EAA0C,kBAAA;AAAA,UAC9C;AAAA,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,wBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAmC;AAAA,QAChD,MAAM,CAAA,uCAAA,EAA0C,kBAAA;AAAA,UAC9C,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,UAAU,KAAA,CAAM;AAAA,SAClB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACvKO,IAAM,6BAAA,GAAgC;AAAA,EAC3C,SAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA,aAAA;AAAA,EACA,kBAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAiEA,SAAS,uBAAuB,KAAA,EAA4C;AAC1E,EAAA,mBAAA,CAAoB,KAAA,CAAM,aAAa,aAAa,CAAA;AACpD,EAAA,mBAAA,CAAoB,KAAA,CAAM,QAAQ,QAAQ,CAAA;AAC1C,EAAA,OAAO,YAAA;AAAA,IACL,KAAA;AAAA,IACA,6BAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,gCAAA,CACd,MAAA,GAA2C,EAAC,EAC5C;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,YAAA,CAAa,OAA0B,cAAA,EAAyB;AAC9D,MAAA,mBAAA,CAAoB,KAAA,CAAM,aAAa,aAAa,CAAA;AACpD,MAAA,mBAAA,CAAoB,KAAA,CAAM,QAAQ,QAAQ,CAAA;AAC1C,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,uDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ,KAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,aAAA,CAAc,OAA2B,cAAA,EAAyB;AAChE,MAAA,mBAAA,CAAoB,KAAA,CAAM,aAAa,aAAa,CAAA;AACpD,MAAA,OAAO,QAAQ,OAAA,CAA2C;AAAA,QACxD,IAAA,EAAM,wDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ,KAAA;AAAA,UACA,6BAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,oBAAoB,KAAA,EAA2C;AAC7D,MAAA,OAAO,QAAQ,OAAA,CAA2C;AAAA,QACxD,IAAA,EAAM,0DAA0D,aAAA,CAAc;AAAA,UAC5E,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,UAC7B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,QAAQ,KAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA,IAEA,oBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,yDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,uBAAuB,KAAK,CAAA;AAAA,QAClC,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC4DO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,oBAAA,CACJ,KAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC7D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,QAAQ;AAAA;AAC5D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CAAmB,OAAA,EAAiB,KAAA,GAAsB,EAAC,EAAG;AAClE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,mCAAmC,kBAAA,CAAmB,OAAO,CAAC,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC5F,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,uBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,qBAAA,CAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,OAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,OAAO,CAAC,CAAA,CAAA;AAAA,QACpE,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,4BAAA,CACJ,OAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,OAAO,CAAC,CAAA,KAAA,CAAA;AAAA,QACpE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,iBAAA,EAAmB,OAAA;AAAA,UACnB,GAAG;AAAA,SACL;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CACJ,OAAA,EACA,KAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,mCAAmC,kBAAA,CAAmB,OAAO,CAAC,CAAA,KAAA,EAAQ,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OACjG,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,MAAM;AAAA;AAC1D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,OAAA,EACA,KAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,IAAA,CAAK,aAAA,CAAc,OAAA,EAAS,KAAK,CAAA;AAAA,IAC1C,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,GAKI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC5D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,OAAO;AAAA;AAC3D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CAAkB,MAAA,EAAgB,KAAA,GAAsB,EAAC,EAAG;AAChE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,kCAAkC,kBAAA,CAAmB,MAAM,CAAC,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC1F,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,sBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,oBAAA,CAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,MAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,MAAM,CAAC,CAAA,CAAA;AAAA,QAClE,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,MAAA,EACA,KAAA,GAAiC,EAAC,EAClC;AACA,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,CAAA,+BAAA,EAAkC,kBAAA,CAAmB,MAAM,CAAC,CAAA,QAAA,CAAA;AAAA,QAClE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJ,KAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC3D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,MAAM;AAAA;AAC1D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,KAAA,GAII,EAAC,EACL;AACA,MAAA,OAAO,IAAA,CAAK,eAAe,KAAK,CAAA;AAAA,IAClC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAK,CAAA;AAAA,QAC/B,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAkB,KAAA,EAAe;AACrC,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,KAAK,CAAC,CAAA;AAAA,OACjE,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,KAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,KAAK,CAAC,CAAA,UAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,KAAK,CAAC,CAAA,SAAA,CAAA;AAAA,QAChE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJL,MAAAA,GAAiE,EAAC,EAClE;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,gCAAA,EAAmC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC9D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,SAAS;AAAA;AAC7D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,GAAmB;AACvB,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACxjBO,IAAM,WAAA,GAAc;AAAA,EACzB,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAgGA,SAASA,OAAM,KAAA,EAAkB;AAC/B,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,YAAY,KAAA,CAAM,UAAA;AAAA,IAClB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAASC,KAAAA,CAAK,OAAgC,SAAA,EAAmB;AAC/D,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,WAAA,EAAa,SAAS,CAAA;AACnD;AAEO,SAAS,gBAAA,CAAiB,MAAA,GAA2B,EAAC,EAAG;AAC9D,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,OAAA,CAAQ,OAAwB,cAAA,EAAyB;AACvD,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAAmB;AAAA,QAChC,IAAA,EAAM,uBAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA,CAAK,KAAA,EAA6C,cAAc,CAAA;AAAA,QACtE,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAK,KAAA,EAAkB;AACrB,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,MAAM,CAAA,qBAAA,EAAwB,aAAA,CAAcD,MAAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OAC1D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAA0C,IAAA,EAAM,MAAM;AAAA;AACxD,OACF;AAAA,IACF,CAAA;AAAA,IAEA,KAAA,CAAM,OAAsB,cAAA,EAAyB;AACnD,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAmB;AAAA,QAChC,IAAA,EAAM,6BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMC,KAAAA,CAAK,KAAA,EAA6C,YAAY,CAAA;AAAA,QACpE,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,YAAA,CAAa,OAA6B,cAAA,EAAyB;AACjE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,OAAO,OAAO,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAmB;AAAA,QAChC,IAAA,EAAM,CAAA,sBAAA,EAAyB,kBAAA,CAAmB,KAAA,CAAM,KAAK,CAAC,CAAA,OAAA,CAAA;AAAA,QAC9D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,KAAA,CAAM,OAAsB,cAAA,EAAyB;AACnD,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,OAAO,OAAO,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAmB;AAAA,QAChC,IAAA,EAAM,CAAA,sBAAA,EAAyB,kBAAA,CAAmB,KAAA,CAAM,KAAK,CAAC,CAAA,MAAA,CAAA;AAAA,QAC9D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA,CAAK,KAAA,EAA6C,YAAY,CAAA;AAAA,QACpE,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,cAAA,CAAe,OAA+B,cAAA,EAAyB;AACrE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,eAAA,CAAgB,OAAgC,cAAA,EAAyB;AACvE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,OAAO,OAAO,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAsB;AAAA,QACnC,MAAM,CAAA,2BAAA,EAA8B,kBAAA;AAAA,UAClC,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC9NO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,oBAAA,CACJ,IAAA,GAM2B,EAAC,EAC5B;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,8CAA8C,aAAA,CAAc;AAAA,UAChE,GAAG,oBAAoB,IAAI,CAAA;AAAA,UAC3B,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,OAAA,EACE,OAAO,IAAA,CAAK,OAAA,KAAY,YACpB,IAAA,CAAK,OAAA,GACH,SACA,OAAA,GACF,MAAA;AAAA,UACN,KAAA,EACE,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,GACxD,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GACjB;AAAA,SACP,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,YAAY;AAAA;AAChE,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,IAAA,GAM2B,EAAC,EAC5B;AACA,MAAA,OAAO,IAAA,CAAK,qBAAqB,IAAI,CAAA;AAAA,IACvC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,IAAA,GAK2B,EAAC,EAC5B;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,6CAA6C,aAAA,CAAc;AAAA,UAC/D,GAAG,oBAAoB,IAAI,CAAA;AAAA,UAC3B,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,cAAc,IAAA,CAAK,YAAA;AAAA,UACnB,KAAA,EACE,OAAO,IAAA,CAAK,KAAA,KAAU,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,KAAK,CAAA,GACxD,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,GACjB;AAAA,SACP,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH;AAAA,GACF;AACF;ACtCA,SAAS,YAAY,KAAA,EAAuC;AAC1D,EAAA,IAAI,UAAU,MAAA,EAAW;AACvB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,uBAAW,OAAA,EAAgB;AACjC,EAAA,MAAM,OAAO,IAAA,CAAK,SAAA,CAAU,KAAA,EAAO,CAAC,MAAM,SAAA,KAAc;AACtD,IAAA,IAAI,OAAO,cAAc,QAAA,EAAU;AACjC,MAAA,OAAO,UAAU,QAAA,EAAS;AAAA,IAC5B;AAEA,IAAA,IACE,OAAO,cAAc,UAAA,IACrB,OAAO,cAAc,QAAA,IACrB,OAAO,cAAc,WAAA,EACrB;AACA,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,IAAI,SAAA,IAAa,OAAO,SAAA,KAAc,QAAA,EAAU;AAC9C,MAAA,IAAI,IAAA,CAAK,GAAA,CAAI,SAAS,CAAA,EAAG;AACvB,QAAA,OAAO,YAAA;AAAA,MACT;AACA,MAAA,IAAA,CAAK,IAAI,SAAS,CAAA;AAAA,IACpB;AAEA,IAAA,OAAO,SAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,IAAI,SAAS,MAAA,EAAW;AACtB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA,CAAK,MAAM,IAAI,CAAA;AACxB;AAEO,SAAS,eAAA,CAAgB,MAAA,GAA0B,EAAC,EAAG;AAC5D,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,gBAAA,CACE,KAAA,GAAkC,EAAC,EACG;AACtC,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,aAAa,KAAA,CAAM;AAAA,OACrB;AACA,MAAA,MAAMA,KAAAA,GAAmC;AAAA,QACvC,eAAe,KAAA,CAAM,aAAA;AAAA,QACrB,WAAW,KAAA,CAAM,SAAA;AAAA,QACjB,eAAe,KAAA,CAAM,aAAA;AAAA,QACrB,aAAa,KAAA,CAAM;AAAA,OACrB;AAEA,MAAA,OAAO,QAAQ,OAAA,CAAqC;AAAA,QAClD,MAAM,CAAA,EAAG,8BAA8B,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QAC9D,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAAA;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,iBACE,KAAA,EACsC;AACtC,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,aAAa,KAAA,CAAM;AAAA,OACrB;AAEA,MAAA,OAAO,QAAQ,OAAA,CAA4C;AAAA,QACzD,MAAM,CAAA,EAAG,uCAAuC,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QACvE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,UAAU,KAAA,CAAM;AAAA;AAClB,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,kBACE,KAAA,EACuC;AACvC,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,aAAa,KAAA,CAAM;AAAA,OACrB;AAEA,MAAA,OAAO,QAAQ,OAAA,CAA6C;AAAA,QAC1D,MAAM,CAAA,EAAG,wCAAwC,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QACxE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,oBAAoB,KAAA,CAAM;AAAA;AAC5B,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,4BACE,KAAA,EACwC;AACxC,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,aAAa,KAAA,CAAM;AAAA,OACrB;AAEA,MAAA,OAAO,QAAQ,OAAA,CAA8C;AAAA,QAC3D,MAAM,CAAA,EAAG,kDAAkD,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QAClF,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,YAAA,EAAc,WAAA,CAAY,KAAA,CAAM,YAAY,CAAA;AAAA,UAC5C,OAAA,EAAS,WAAA,CAAY,KAAA,CAAM,OAAO,CAAA;AAAA,UAClC,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAAA,UACxC,SAAA,EAAW,WAAA,CAAY,KAAA,CAAM,SAAS,CAAA;AAAA,UACtC,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAAA,UACxC,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,UAAU;AAAA;AAC1C,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,yBACE,KAAA,EACwC;AACxC,MAAA,MAAM,KAAA,GAAQ;AAAA,QACZ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,aAAa,KAAA,CAAM;AAAA,OACrB;AAEA,MAAA,OAAO,QAAQ,OAAA,CAA8C;AAAA,QAC3D,MAAM,CAAA,EAAG,+CAA+C,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QAC/E,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,YAAA,EAAc,WAAA,CAAY,KAAA,CAAM,YAAY,CAAA;AAAA,UAC5C,OAAA,EAAS,WAAA,CAAY,KAAA,CAAM,OAAO,CAAA;AAAA,UAClC,UAAA,EAAY,WAAA,CAAY,KAAA,CAAM,UAAU,CAAA;AAAA,UACxC,kBAAA,EAAoB,WAAA,CAAY,KAAA,CAAM,kBAAkB,CAAA;AAAA,UACxD,eAAA,EAAiB,WAAA,CAAY,KAAA,CAAM,eAAe,CAAA;AAAA,UAClD,YAAA,EAAc,WAAA,CAAY,KAAA,CAAM,YAAY;AAAA;AAC9C,OACD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC7EA,IAAM,SAAA,GAAY;AAAA,EAChB,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACtI,cAAA,EAAgB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,eAAA,EAAgB;AAAA,EAC5H,cAAA,EAAgB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACxH,uBAAA,EAAyB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,sBAAA,EAAwB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACzI,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,eAAA,EAAgB;AAAA,EACnI,sBAAA,EAAwB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EAC3I,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EAClI,gBAAA,EAAkB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACjI,gBAAA,EAAkB,EAAE,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACtH,kBAAA,EAAoB,EAAE,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACjI,kBAAA,EAAoB,EAAE,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAC1H,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,4BAAA,EAA8B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACvI,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kCAAA,EAAoC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAC7I,kBAAA,EAAoB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,4BAAA,EAA8B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACtI,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,2BAAA,EAA6B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAChI,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC3H,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EAC9H,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACnH,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACnH,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACnH,2BAAA,EAA6B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACvI,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACtH,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACtH,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EAC9H,yBAAA,EAA2B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,sBAAA,EAAwB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EAC/I,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACvH,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACnH,cAAA,EAAgB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACjH,4BAAA,EAA8B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gCAAA,EAAkC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EAC5J,0BAAA,EAA4B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,0BAAA,EAA4B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAChJ,UAAA,EAAY,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,eAAA,EAAgB;AAAA,EAC1H,6BAAA,EAA+B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,6BAAA,EAA+B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACtJ,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,2BAAA,EAA6B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAChI,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACxI,sBAAA,EAAwB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gCAAA,EAAkC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC9I,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACxI,wBAAA,EAA0B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,oBAAA,EAAsB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACpI,oBAAA,EAAsB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACnI,aAAA,EAAe,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACtH,0BAAA,EAA4B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,4BAAA,EAA8B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAC5I,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,8BAAA,EAAgC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EACrI,YAAA,EAAc,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACjH,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,wBAAA,EAA0B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAC/H,YAAA,EAAc,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACjH,oBAAA,EAAsB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,wBAAA,EAA0B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAClI,kBAAA,EAAoB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EACzH,wBAAA,EAA0B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,6BAAA,EAA+B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,eAAA,EAAgB;AAAA,EAClJ,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACtI,cAAA,EAAgB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACpH,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAC5H,6BAAA,EAA+B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,0BAAA,EAA4B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC/I,gBAAA,EAAkB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACzH,wBAAA,EAA0B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACzI,8BAAA,EAAgC,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,2BAAA,EAA6B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACrJ,6BAAA,EAA+B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,0BAAA,EAA4B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC/I,sBAAA,EAAwB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gCAAA,EAAkC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAC5I,yBAAA,EAA2B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC5I,cAAA,EAAgB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC1H,cAAA,EAAgB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACrH,WAAA,EAAa,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC/G,oBAAA,EAAsB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACvI,gBAAA,EAAkB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,cAAA,EAAgB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACrH,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iCAAA,EAAmC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAC5I,iBAAA,EAAmB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC1H,oBAAA,EAAsB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,sBAAA,EAAwB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACxI,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,eAAA,EAAgB;AAAA,EAC9H,yBAAA,EAA2B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAC1I,2BAAA,EAA6B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,yBAAA,EAA2B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAC9I,sBAAA,EAAwB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,+BAAA,EAAiC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EAC3I,oBAAA,EAAsB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC/H,cAAA,EAAgB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,UAAA,EAAY,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC/G,gBAAA,EAAkB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,sBAAA,EAAwB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACjI,eAAA,EAAiB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACjH,aAAA,EAAe,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACjH,iBAAA,EAAmB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACzH,gBAAA,EAAkB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACnH,YAAA,EAAc,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC/G,aAAA,EAAe,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC7G,gBAAA,EAAkB,EAAE,MAAA,EAAQ,KAAA,EAAO,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EACvH,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,6BAAA,EAA+B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EAClJ,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,+BAAA,EAAiC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC9I,OAAA,EAAS,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACvH,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACpI,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,8BAAA,EAAgC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EACzI,mBAAA,EAAqB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,8BAAA,EAAgC,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,QAAA,EAAS;AAAA,EACvI,0BAAA,EAA4B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,8BAAA,EAAgC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EACxJ,MAAA,EAAQ,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAC/G,eAAA,EAAiB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gBAAA,EAAkB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC3H,gBAAA,EAAkB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAC1H,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,YAAA,EAAc,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EACrH,uBAAA,EAAyB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EACjI,eAAA,EAAiB,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAC3H,iBAAA,EAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAC/H,kBAAA,EAAoB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,gCAAA,EAAkC,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EAC1I,wBAAA,EAA0B,EAAE,MAAA,EAAQ,QAAA,EAAU,IAAA,EAAM,eAAA,EAAiB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACvI,4BAAA,EAA8B,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,uBAAA,EAAyB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC/I,gBAAA,EAAkB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EACzH,iBAAA,EAAmB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,UAAA,EAAW;AAAA,EAC3H,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,4BAAA,EAA8B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EACzI,oBAAA,EAAsB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,6BAAA,EAA+B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,QAAA,EAAS;AAAA,EACzI,qBAAA,EAAuB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,4BAAA,EAA8B,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC7I,gBAAA,EAAkB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,iBAAA,EAAmB,IAAA,EAAM,OAAA,EAAS,UAAA,EAAY,KAAA,EAAO,aAAA,EAAe,cAAA,EAAe;AAAA,EAC7H,uBAAA,EAAyB,EAAE,MAAA,EAAQ,MAAA,EAAQ,IAAA,EAAM,wBAAA,EAA0B,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EAC7I,iBAAA,EAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,aAAA,EAAe,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,gBAAA,EAAiB;AAAA,EAC/H,wBAAA,EAA0B,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,mBAAA,EAAqB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EACtI,aAAA,EAAe,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EACpH,cAAA,EAAgB,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,UAAA,EAAW;AAAA,EAClH,0BAAA,EAA4B,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,qBAAA,EAAuB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA,EAAe;AAAA,EAC9I,yBAAA,EAA2B,EAAE,MAAA,EAAQ,OAAA,EAAS,IAAA,EAAM,oBAAA,EAAsB,IAAA,EAAM,UAAA,EAAY,UAAA,EAAY,IAAA,EAAM,aAAA,EAAe,cAAA;AAC/H,CAAA;AAEA,SAAS,eAAA,GAA0B;AACjC,EAAA,OAAO,OAAO,MAAA,KAAW,WAAA,IAAe,OAAO,MAAA,CAAO,eAAe,UAAA,GACjE,MAAA,CAAO,UAAA,EAAW,GAClB,oBAAA,EAAqB;AAC3B;AAEA,SAAS,gBAAA,CAAiB,OAA6B,SAAA,EAAyC;AAC9F,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,gBAAgB,OAAO,KAAA,CAAM,cAAA,KAAmB,QAAA,GAAW,MAAM,cAAA,GAAiB;AAAA,GACpF;AACF;AAEA,SAAS,uBAAuB,KAAA,EAAqC;AACnE,EAAA,MAAM,MAAA,GAAS,IAAI,eAAA,EAAgB;AACnC,EAAA,KAAA,MAAW,CAAC,GAAA,EAAK,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,EAAG;AAChD,IAAA,IAAI,UAAU,MAAA,EAAW;AACvB,MAAA;AAAA,IACF;AACA,IAAA,MAAMM,cACJ,OAAO,KAAA,KAAU,WAAW,KAAA,GAAQ,IAAA,CAAK,UAAU,KAAK,CAAA;AAC1D,IAAA,IAAIA,gBAAe,MAAA,EAAW;AAC5B,MAAA,MAAA,CAAO,GAAA,CAAI,KAAKA,WAAU,CAAA;AAAA,IAC5B;AAAA,EACF;AACA,EAAA,MAAM,UAAA,GAAa,OAAO,QAAA,EAAS;AACnC,EAAA,OAAO,UAAA,GAAa,CAAA,CAAA,EAAI,UAAU,CAAA,CAAA,GAAK,EAAA;AACzC;AAEO,SAAS,2BAAA,CAA4B,MAAA,GAAsC,EAAC,EAAG;AACpF,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AACjD,EAAA,MAAM,YAAY,eAAA,EAAgB;AAElC,EAAA,SAAS,OAAA,CACP,IAAA,EACA,KAAA,EACA,cAAA,EAC0B;AAC1B,IAAA,MAAM,QAAA,GAAW,UAAU,IAAI,CAAA;AAC/B,IAAA,MAAM,OAAA,GAAU,gBAAA,CAAiB,KAAA,EAAO,SAAS,CAAA;AACjD,IAAA,MAAM,IAAA,GACJ,QAAA,CAAS,MAAA,KAAW,KAAA,GAChB,CAAA,EAAG,QAAA,CAAS,IAAI,CAAA,EAAG,sBAAA,CAAuB,OAAO,CAAC,CAAA,CAAA,GAClD,QAAA,CAAS,IAAA;AACf,IAAA,OAAO,QAAQ,OAAA,CAAW;AAAA,MACxB,IAAA,EAAM,mBAAmB,IAAI,CAAA,CAAA;AAAA,MAC7B,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,IAAA,EAAM,QAAA,CAAS,MAAA,KAAW,KAAA,GAAQ,MAAA,GAAY,OAAA;AAAA,MAC9C,cAAA,EACE,QAAA,CAAS,IAAA,KAAS,OAAA,IAAW,OAAA,CAAQ,SAAS,UAAU,CAAA,GACpD,cAAA,IAAkB,oBAAA,EAAqB,GACvC;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,OAAO;AAAA,IACL,SAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,mBAAA,CAAoB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC7E,MAAA,OAAO,OAAA,CAAQ,uBAAA,EAAyB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,sBAAA,EAAwB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC9D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,kBAAA,EAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC1D,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,kBAAA,EAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC1D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,kBAAA,EAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC1D,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,uBAAA,CAAwB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACjF,MAAA,OAAO,OAAA,CAAQ,2BAAA,EAA6B,KAAA,EAAO,cAAc,CAAA;AAAA,IACnE,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,qBAAA,CAAsB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC/E,MAAA,OAAO,OAAA,CAAQ,yBAAA,EAA2B,KAAA,EAAO,cAAc,CAAA;AAAA,IACjE,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,wBAAA,CAAyB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAClF,MAAA,OAAO,OAAA,CAAQ,4BAAA,EAA8B,KAAA,EAAO,cAAc,CAAA;AAAA,IACpE,CAAA;AAAA,IACA,sBAAA,CAAuB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChF,MAAA,OAAO,OAAA,CAAQ,0BAAA,EAA4B,KAAA,EAAO,cAAc,CAAA;AAAA,IAClE,CAAA;AAAA,IACA,QAAA,CAAS,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAClE,MAAA,OAAO,OAAA,CAAQ,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IAClD,CAAA;AAAA,IACA,yBAAA,CAA0B,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnF,MAAA,OAAO,OAAA,CAAQ,6BAAA,EAA+B,KAAA,EAAO,cAAc,CAAA;AAAA,IACrE,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,sBAAA,EAAwB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC9D,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,oBAAA,CAAqB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9E,MAAA,OAAO,OAAA,CAAQ,wBAAA,EAA0B,KAAA,EAAO,cAAc,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,sBAAA,CAAuB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChF,MAAA,OAAO,OAAA,CAAQ,0BAAA,EAA4B,KAAA,EAAO,cAAc,CAAA;AAAA,IAClE,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,SAAA,CAAU,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnE,MAAA,OAAO,OAAA,CAAQ,YAAA,EAAc,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,SAAA,CAAU,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnE,MAAA,OAAO,OAAA,CAAQ,YAAA,EAAc,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,kBAAA,EAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC1D,CAAA;AAAA,IACA,oBAAA,CAAqB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9E,MAAA,OAAO,OAAA,CAAQ,wBAAA,EAA0B,KAAA,EAAO,cAAc,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,yBAAA,CAA0B,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnF,MAAA,OAAO,OAAA,CAAQ,6BAAA,EAA+B,KAAA,EAAO,cAAc,CAAA;AAAA,IACrE,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,oBAAA,CAAqB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9E,MAAA,OAAO,OAAA,CAAQ,wBAAA,EAA0B,KAAA,EAAO,cAAc,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,yBAAA,CAA0B,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnF,MAAA,OAAO,OAAA,CAAQ,8BAAA,EAAgC,KAAA,EAAO,cAAc,CAAA;AAAA,IACtE,CAAA;AAAA,IACA,wBAAA,CAAyB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAClF,MAAA,OAAO,OAAA,CAAQ,6BAAA,EAA+B,KAAA,EAAO,cAAc,CAAA;AAAA,IACrE,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,sBAAA,EAAwB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC9D,CAAA;AAAA,IACA,qBAAA,CAAsB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC/E,MAAA,OAAO,OAAA,CAAQ,yBAAA,EAA2B,KAAA,EAAO,cAAc,CAAA;AAAA,IACjE,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,QAAA,CAAS,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAClE,MAAA,OAAO,OAAA,CAAQ,WAAA,EAAa,KAAA,EAAO,cAAc,CAAA;AAAA,IACnD,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,MAAA,CAAO,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,oBAAA,CAAqB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9E,MAAA,OAAO,OAAA,CAAQ,yBAAA,EAA2B,KAAA,EAAO,cAAc,CAAA;AAAA,IACjE,CAAA;AAAA,IACA,sBAAA,CAAuB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChF,MAAA,OAAO,OAAA,CAAQ,2BAAA,EAA6B,KAAA,EAAO,cAAc,CAAA;AAAA,IACnE,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,sBAAA,EAAwB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC9D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,SAAA,CAAU,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACnE,MAAA,OAAO,OAAA,CAAQ,YAAA,EAAc,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,KAAA,CAAM,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC/D,MAAA,OAAO,OAAA,CAAQ,OAAA,EAAS,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/C,CAAA;AAAA,IACA,kBAAA,CAAmB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC5E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,mBAAA,EAAqB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,sBAAA,CAAuB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChF,MAAA,OAAO,OAAA,CAAQ,0BAAA,EAA4B,KAAA,EAAO,cAAc,CAAA;AAAA,IAClE,CAAA;AAAA,IACA,IAAA,CAAK,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9D,MAAA,OAAO,OAAA,CAAQ,MAAA,EAAQ,KAAA,EAAO,cAAc,CAAA;AAAA,IAC9C,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,mBAAA,CAAoB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC7E,MAAA,OAAO,OAAA,CAAQ,uBAAA,EAAyB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,YAAA,CAAa,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACtE,MAAA,OAAO,OAAA,CAAQ,eAAA,EAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,eAAA,CAAgB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACzE,MAAA,OAAO,OAAA,CAAQ,kBAAA,EAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC1D,CAAA;AAAA,IACA,mBAAA,CAAoB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC7E,MAAA,OAAO,OAAA,CAAQ,wBAAA,EAA0B,KAAA,EAAO,cAAc,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,wBAAA,CAAyB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAClF,MAAA,OAAO,OAAA,CAAQ,4BAAA,EAA8B,KAAA,EAAO,cAAc,CAAA;AAAA,IACpE,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,gBAAA,CAAiB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC1E,MAAA,OAAO,OAAA,CAAQ,oBAAA,EAAsB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC5D,CAAA;AAAA,IACA,iBAAA,CAAkB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC3E,MAAA,OAAO,OAAA,CAAQ,qBAAA,EAAuB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC7D,CAAA;AAAA,IACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACvE,MAAA,OAAO,OAAA,CAAQ,gBAAA,EAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,mBAAA,CAAoB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC7E,MAAA,OAAO,OAAA,CAAQ,uBAAA,EAAyB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC/D,CAAA;AAAA,IACA,cAAA,CAAe,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACxE,MAAA,OAAO,OAAA,CAAQ,iBAAA,EAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,oBAAA,CAAqB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC9E,MAAA,OAAO,OAAA,CAAQ,wBAAA,EAA0B,KAAA,EAAO,cAAc,CAAA;AAAA,IAChE,CAAA;AAAA,IACA,UAAA,CAAW,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACpE,MAAA,OAAO,OAAA,CAAQ,aAAA,EAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,WAAA,CAAY,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AACrE,MAAA,OAAO,OAAA,CAAQ,cAAA,EAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD,CAAA;AAAA,IACA,sBAAA,CAAuB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAChF,MAAA,OAAO,OAAA,CAAQ,0BAAA,EAA4B,KAAA,EAAO,cAAc,CAAA;AAAA,IAClE,CAAA;AAAA,IACA,qBAAA,CAAsB,KAAA,GAA8B,EAAC,EAAG,cAAA,EAAyB;AAC/E,MAAA,OAAO,OAAA,CAAQ,yBAAA,EAA2B,KAAA,EAAO,cAAc,CAAA;AAAA,IACjE;AAAA,GACF;AACF;;;AC9lBO,IAAM,oBAAA,GAAuB;AAAA,EAClC,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAyDA,SAAS,WAAW,KAAA,EAA0B;AAC5C,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,UAAU,KAAA,CAAM,QAAA;AAAA,IAChB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAAS,gBAAA,CAAiB,OAAgC,SAAA,EAAmB;AAC3E,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,oBAAA,EAAsB,SAAS,CAAA;AAC5D;AAEO,SAAS,wBAAA,CACd,MAAA,GAAmC,EAAC,EACpC;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,WAAW,KAAA,EAA0B;AACnC,MAAA,OAAO,QAAQ,OAAA,CAAwB;AAAA,QACrC,MAAM,CAAA,qCAAA,EAAwC,aAAA;AAAA,UAC5C,WAAW,KAAK;AAAA,SACjB,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAsD,IAAA,EAAM,QAAQ;AAAA;AACtE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,SAAS,KAAA,EAAgD;AACvD,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,MAAM,CAAA,sCAAA,EAAyC,kBAAA;AAAA,UAC7C,KAAA,CAAM;AAAA,SACP,GAAG,aAAA,CAAc;AAAA,UAChB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,aAAa,KAAA,CAAM;AAAA,SACpB,CAAC,CAAA;AAAA,OACH,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,kBAAkB,KAAA,EAAsD;AACtE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,gDAAgD,aAAA,CAAc;AAAA,UAClE,GAAG,WAAW,KAAK,CAAA;AAAA,UACnB,cAAc,KAAA,CAAM;AAAA,SACrB,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAmD,IAAA,EAAM,OAAO;AAAA;AAClE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,WAAA,CAAY,OAA8B,cAAA,EAAyB;AACjE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,cAAc,cAAc,CAAA;AACtD,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,uDAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,gBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,gBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,cAAc,cAAc,CAAA;AACtD,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA2B;AAAA,QACxC,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,gBAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACjKO,IAAM,oBAAA,GAAuB;AAAA,EAClC,SAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAkEA,SAAS,gBAAgB,KAAA,EAA+B;AACtD,EAAA,IAAI,CAAC,KAAA,CAAM,YAAA,IAAgB,CAAC,MAAM,cAAA,EAAgB;AAChD,IAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,EAC9D;AACA,EAAA,IAAI,CAAC,KAAA,CAAM,YAAA,IAAgB,CAAC,MAAM,cAAA,EAAgB;AAChD,IAAA,MAAM,IAAI,MAAM,4CAA4C,CAAA;AAAA,EAC9D;AACF;AAEA,SAAS,oBAAA,CACP,OACA,SAAA,EACA;AACA,EAAA,eAAA,CAAgB,KAAK,CAAA;AACrB,EAAA,mBAAA,CAAoB,KAAA,CAAM,YAAY,YAAY,CAAA;AAClD,EAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,EAAA,OAAO,YAAA,CAAa,KAAA,EAAkC,oBAAA,EAAsB,SAAS,CAAA;AACvF;AAEO,SAAS,yBAAA,CACd,MAAA,GAAoC,EAAC,EACrC;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,UAAA,CAAW,OAA+B,cAAA,EAAyB;AACjE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAA,CAAqB,KAAA,EAAO,0BAA0B,CAAA;AAAA,QAC5D,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,UAAA,CAAW,OAA+B,cAAA,EAAyB;AACjE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM,oBAAA,CAAqB,KAAA,EAAO,0BAA0B,CAAA;AAAA,QAC5D,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,iBAAiB,KAAA,EAAsC;AACrD,MAAA,MAAM,MAAA,GAAS,mBAAA,CAAoB,KAAA,CAAM,MAAM,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,mBAAA,CAAoB,KAAA,CAAM,QAAQ,CAAA;AACnD,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,QAAA,EAAU;AACxB,QAAA,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAAA,MAClD;AACA,MAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,MAAA,IAAU,QAAA,IAAY,EAAE,CAAA;AAC1D,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,CAAA,sCAAA,EAAyC,MAAM,CAAA,EAAG,aAAA,CAAc;AAAA,UACpE,SAAS,KAAA,CAAM,OAAA;AAAA,UACf,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,QAAA,EAAU,SAAS,MAAA,GAAY,QAAA;AAAA,UAC/B,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,QAAQ,KAAA,CAAM;AAAA,SACf,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAoD,IAAA,EAAM,OAAO;AAAA;AACnE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,gBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,MAAM,CAAA,gCAAA,EAAmC,kBAAA;AAAA,UACvC,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,YAAA;AAAA,UACJ,KAAA;AAAA,UACA,oBAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC/KO,IAAM,uBAAA,GAA0B;AAAA,EACrC,UAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,eAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA;AAyFA,SAASR,YAAAA,CAAY,OAA2B,KAAA,EAAe;AAC7D,EAAA,MAAM,UAAA,GAAa,OAAO,IAAA,EAAK;AAC/B,EAAA,IAAI,CAAC,UAAA,EAAY;AACf,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA,YAAA,CAAc,CAAA;AAAA,EACxC;AACA,EAAA,OAAO,UAAA;AACT;AAEA,SAAS,qBAAA,CAAsB,OAAgC,SAAA,EAAmB;AAChF,EAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAY,uBAAuB,CAAA;AACvD,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,KAAQ,CAAC,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAC,CAAA;AACxE,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,MAAM,IAAI,KAAA;AAAA,MACR,GAAG,SAAS,CAAA,gCAAA,EAAmC,WAAA,CAAY,IAAA,CAAK,IAAI,CAAC,CAAA;AAAA,KACvE;AAAA,EACF;AACF;AAEA,SAAS,WAAW,KAAA,EAAwC;AAC1D,EAAA,qBAAA;AAAA,IACE,KAAA;AAAA,IACA;AAAA,GACF;AACA,EAAA,OAAO;AAAA,IACL,QAAA,EAAUA,YAAAA,CAAY,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IAChD,WAAA,EAAaA,YAAAA,CAAY,KAAA,CAAM,WAAA,EAAa,aAAa,CAAA;AAAA,IACzD,KAAA,EAAOA,YAAAA,CAAY,KAAA,CAAM,KAAA,EAAO,OAAO,CAAA;AAAA,IACvC,WAAW,KAAA,CAAM,SAAA;AAAA,IACjB,eAAe,KAAA,CAAM,aAAA;AAAA,IACrB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,iBAAiB,KAAA,CAAM;AAAA,GACzB;AACF;AAEA,SAASS,WACP,KAAA,EACA;AACA,EAAA,OAAO;AAAA,IACL,QAAA,EAAUT,YAAAA,CAAY,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IAChD,WAAA,EAAaA,YAAAA,CAAY,KAAA,CAAM,WAAA,EAAa,aAAa,CAAA;AAAA,IACzD,SAAA,EAAW,KAAA,CAAM,SAAA,EAAW,IAAA,CAAK,GAAG,CAAA;AAAA,IACpC,eAAe,KAAA,CAAM,aAAA;AAAA,IACrB,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAAS,WAAW,IAAA,EAAuC;AACzD,EAAA,MAAM,SAAS,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,GAAW,OAAO,EAAC;AAC1D,EAAA,OAAO,gBAAA;AAAA,IACL,KAAA,CAAM,OAAA,CAAS,MAAA,CAAmC,OAAO,CAAA,GACpD,MAAA,CAA+C,OAAA,GAChD,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAChB,IAAA,GACA,EAAC;AAAA,IACP;AAAA,GACF;AACF;AAEO,SAAS,0BAAA,CACd,MAAA,GAAqC,EAAC,EACtC;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,OAAO,KAAA,EAA4B;AACjC,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,WAAW,KAAK;AAAA,OACvB,EAAE,IAAA,CAAK,CAAC,aAAa,cAAA,CAAe,QAAA,EAAU,UAAU,CAAC,CAAA;AAAA,IAC5D,CAAA;AAAA,IAEA,QAAQ,KAAA,EAA6B;AACnC,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,MAAA,EAAQ,IAAA,EAAK;AAClC,MAAA,MAAM,QAAA,GAAW,KAAA,CAAM,QAAA,EAAU,IAAA,EAAK;AACtC,MAAA,IAAI,CAAC,MAAA,IAAU,CAAC,QAAA,EAAU;AACxB,QAAA,MAAM,IAAI,MAAM,gCAAgC,CAAA;AAAA,MAClD;AACA,MAAA,MAAM,QAAA,GAAW,kBAAA,CAAmB,MAAA,IAAU,QAAA,IAAY,EAAE,CAAA;AAC5D,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,CAAA,wCAAA,EAA2C,QAAQ,CAAA,EAAG,aAAA;AAAA,UAC1D;AAAA,YACE,QAAA,EAAUA,YAAAA,CAAY,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,YAChD,WAAA,EAAaA,YAAAA,CAAY,KAAA,CAAM,WAAA,EAAa,aAAa,CAAA;AAAA,YACzD,QAAA,EAAU,SAAS,MAAA,GAAY;AAAA;AACjC,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,iBAAiB,KAAA,EAAsC;AACrD,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,+CAA+C,aAAA,CAAc;AAAA,UACjE,GAAGS,WAAU,KAAK,CAAA;AAAA,UAClB,iBAAiB,KAAA,CAAM;AAAA,SACxB,CAAC,CAAA;AAAA,OACH,EAAE,IAAA,CAAK,CAAC,aAAa,cAAA,CAAe,QAAA,EAAU,UAAU,CAAC,CAAA;AAAA,IAC5D,CAAA;AAAA,IAEA,2BAA2B,KAAA,EAAwC;AACjE,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,8CAA8C,aAAA,CAAc;AAAA,UAChE,GAAGA,WAAU,KAAK,CAAA;AAAA,UAClB,mBAAmB,KAAA,CAAM;AAAA,SAC1B,CAAC,CAAA;AAAA,OACH,EAAE,IAAA,CAAK,CAAC,aAAa,cAAA,CAAe,QAAA,EAAU,UAAU,CAAC,CAAA;AAAA,IAC5D;AAAA,GACF;AACF;;;ACvJO,SAAS,iBAAA,CAAkB,MAAA,GAA4B,EAAC,EAAG;AAChE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,WAAA,GAAc;AAClB,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM;AAAA,OACP,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,SAAS;AAAA;AAC7D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,GAAa;AACjB,MAAA,OAAO,KAAK,WAAA,EAAY;AAAA,IAC1B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,GAAsB;AAC1B,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAmB,OAAA,EAAiB;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,iCAAA,EAAoC,kBAAA,CAAmB,OAAO,CAAC,CAAA;AAAA,OACtE,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAWR,MAAAA,GAAsB,EAAC,EAAG;AACzC,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC3D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,QAAQ;AAAA;AAC5D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CAAUA,MAAAA,GAAsB,EAAC,EAAG;AACxC,MAAA,OAAO,IAAA,CAAK,WAAWA,MAAK,CAAA;AAAA,IAC9B,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CAAU,OAAA,EAAiBA,MAAAA,GAAsB,EAAC,EAAG;AACzD,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,uBAAA,EAA0B,kBAAA,CAAmB,OAAO,CAAC,CAAA,OAAA,EAAU,aAAA;AAAA,UACnEA;AAAA,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CACJA,MAAAA,GAAmE,EAAC,EACpE;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,gCAAA,EAAmC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC9D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,WAAW;AAAA;AAC/D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJA,MAAAA,GAAmE,EAAC,EACpE;AACA,MAAA,OAAO,IAAA,CAAK,cAAcA,MAAK,CAAA;AAAA,IACjC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,qCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAA,CAAQ,KAAA,EAAyB,cAAA,EAAyB;AAC9D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAA,CAAO,KAAA,EAAwB,cAAA,EAAyB;AAC5D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAA,CAAQ,KAAA,EAAyB,cAAA,EAAyB;AAC9D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,SAAA,CAAU,KAAA,EAA2B,cAAA,EAAyB;AAClE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAA,CAAQ,KAAA,EAAyB,cAAA,EAAyB;AAC9D,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACzHA,SAAS,aAAa,IAAA,EAA8B;AAClD,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACvB,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,MACV,CAAC,GAAA,KAA4B,OAAA,CAAQ,GAAG,CAAA,IAAK,OAAO,GAAA,KAAQ;AAAA,KAC9D;AAAA,EACF;AACA,EAAA,OAAO,EAAC;AACV;AAEA,SAAS,oBAAoB,IAAA,EAAyC;AACpE,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,mBAAmB,IAAA,EAAoC;AAC9D,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,IAAA,CACJ,IAAI,mBAAmB,CAAA,CACvB,OAAO,CAAC,GAAA,KAAkC,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC3D;AAEA,SAAS,mBAAmB,IAAA,EAA0C;AACpE,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,kBAAkB,IAAA,EAAqC;AAC9D,EAAA,IAAI,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,EAAG;AACxB,IAAA,OAAO,EAAC;AAAA,EACV;AACA,EAAA,OAAO,IAAA,CACJ,IAAI,kBAAkB,CAAA,CACtB,OAAO,CAAC,GAAA,KAAmC,OAAA,CAAQ,GAAG,CAAC,CAAA;AAC5D;AAOO,SAAS,kBAAA,CAAmB,MAAA,GAA6B,EAAC,EAAG;AAClE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,aAAA,CACJA,MAAAA,GAOI,EAAC,EACL;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,iCAAA,EAAoC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC/D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,WAAW;AAAA;AAC/D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,KAAA,CACJ,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,MAAA,CACJ,KAAA,EAOA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJA,MAAAA,GAKI,EAAC,EACL;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAAkC;AAAA,QAC/D,IAAA,EAAM,CAAA,sCAAA,EAAyC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OACpE,CAAA;AACD,MAAA,MAAM,WAAA,GACJ,QAAA,CAAS,IAAA,IAAQ,OAAO,QAAA,CAAS,SAAS,QAAA,GACrC,QAAA,CAAS,IAAA,CAAkC,QAAA,GAC5C,QAAA,CAAS,IAAA;AAEf,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,QAAA,EAAU,mBAAmB,WAAW;AAAA;AAC1C,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAI5B;AAAA,QACD,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,EAAA,EACE,OAAO,QAAA,CAAS,IAAA,EAAM,OAAO,QAAA,GAAW,QAAA,CAAS,KAAK,EAAA,GAAK,MAAA;AAAA,UAC7D,OAAA,EAAS,QAAA,CAAS,IAAA,EAAM,OAAA,KAAY,IAAA;AAAA,UACpC,MAAA,EAAQ,mBAAA,CAAoB,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AACnD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,EAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAI5B;AAAA,QACD,IAAA,EAAM,CAAA,uCAAA,EAA0C,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QACtE,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,EAAA,EACE,OAAO,QAAA,CAAS,IAAA,EAAM,OAAO,QAAA,GAAW,QAAA,CAAS,KAAK,EAAA,GAAK,MAAA;AAAA,UAC7D,OAAA,EAAS,QAAA,CAAS,IAAA,EAAM,OAAA,KAAY,IAAA;AAAA,UACpC,MAAA,EAAQ,mBAAA,CAAoB,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AACnD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,EAAA,EACA,KAAA,GAAsB,IACtB,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4C;AAAA,QACzD,MAAM,CAAA,uCAAA,EAA0C,kBAAA;AAAA,UAC9C;AAAA,SACD,CAAA,EAAG,aAAA,CAAc,KAAK,CAAC,CAAA,CAAA;AAAA,QACxB,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CAAiBA,MAAAA,GAAsB,EAAC,EAAG;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAAkC;AAAA,QAC/D,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC3D,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,QAAA,EAAU,iBAAA,CAAkB,QAAA,CAAS,IAAA,EAAM,QAAQ;AAAA;AACrD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EAMA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAA8B;AAAA,QAC3D,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,kBAAA,CAAmB,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AAClD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,EAAA,EACA,KAAA,EAMA,cAAA,EACA;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAA8B;AAAA,QAC3D,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAA;AAAA,QAC7D,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,kBAAA,CAAmB,QAAA,CAAS,IAAA,EAAM,MAAM;AAAA;AAClD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,EAAA,EACA,KAAA,GAAsB,IACtB,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,EAAE,CAAC,CAAA,EAAG,aAAA;AAAA,UAC9D;AAAA,SACD,CAAA,CAAA;AAAA,QACD,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBACJA,MAAAA,EAOA;AACA,MAAA,IAAI,CAACA,OAAM,OAAA,EAAS;AAClB,QAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,MACvC;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAcA,MAAK,CAAC,CAAA;AAAA,OAC3D,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJA,MAAAA,GAMI,EAAC,EACL;AACA,MAAA,MAAM,UAAA,GAAaA,OAAM,UAAA,IAAc,MAAA;AACvC,MAAA,MAAM,SAAA,GAAYA,MAAAA,CAAM,SAAA,IAAaA,MAAAA,CAAM,WAAA;AAC3C,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAQ5B;AAAA,QACD,IAAA,EAAM,iCAAiC,aAAA,CAAc;AAAA,UACnD,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,aAAaA,MAAAA,CAAM,WAAA;AAAA,UACnB,UAAA;AAAA,UACA,eAAeA,MAAAA,CAAM,aAAA;AAAA,UACrB,SAAA;AAAA,UACA,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA;AAED,MAAA,OAAO;AAAA,QACL,GAAG,QAAA;AAAA,QACH,IAAA,EAAM;AAAA,UACJ,UAAA;AAAA,UACA,MAAA,EAAQ,YAAA,CAAa,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA;AAAA,UAC1C,KAAA,EACE,OAAO,QAAA,CAAS,IAAA,EAAM,KAAA,KAAU,QAAA,GAC5B,QAAA,CAAS,IAAA,CAAK,KAAA,GACd,YAAA,CAAa,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA,CAAE,MAAA;AAAA,UAC1C,YAAA,EAAc,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM,YAAY,CAAA,GACnD,QAAA,CAAS,IAAA,CAAK,YAAA,GACd;AAAC;AACP,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBACJ,KAAA,EAMA;AACA,MAAA,MAAM,UAAA,GAAa,MAAM,UAAA,IAAc,MAAA;AACvC,MAAA,MAAM,SAAA,GAAY,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,WAAA;AAC3C,MAAA,MAAM,cAAA,GAAiB,CAAC,GAAG,IAAI,GAAA,CAAI,MAAM,QAAA,IAAY,EAAE,CAAC,CAAA,CAAE,MAAA;AAAA,QACxD,CAAC,YAAY,OAAO,OAAA,KAAY,YAAY,OAAA,CAAQ,IAAA,GAAO,MAAA,GAAS;AAAA,OACtE;AACA,MAAA,MAAM,QAAA,GAAW,MAAM,OAAA,CAAQ,OAAA,CAQ5B;AAAA,QACD,IAAA,EAAM,gCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,QAAA,EAAU,cAAA;AAAA,UACV,UAAA;AAAA,UACA;AAAA;AACF,OACD,CAAA;AAED,MAAA,MAAM,eAAA,GAAkB,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM,eAAe,CAAA,GAChE,QAAA,CAAS,IAAA,CAAK,eAAA,GACd,EAAC;AACL,MAAA,MAAM,YAAA,GAAe,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM,YAAY,CAAA,GAC1D,QAAA,CAAS,IAAA,CAAK,YAAA,GACd,EAAC;AAEL,MAAA,OAAO;AAAA,QACL,OAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM;AAAA,UACJ,UAAA;AAAA,UACA,eAAA;AAAA,UACA,YAAA;AAAA,UACA,KAAA,EACE,OAAO,QAAA,CAAS,IAAA,EAAM,UAAU,QAAA,GAC5B,QAAA,CAAS,IAAA,CAAK,KAAA,GACd,eAAA,CAAgB;AAAA;AACxB,OACF;AAAA,IACF;AAAA,GACF;AACF;;;ACjiBO,SAAS,mBAAA,CAAoB,MAAA,GAA8B,EAAC,EAAG;AACpE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,aAAA,CAAc,IAAA,GAA0B,EAAC,EAAG;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,qCAAqC,aAAA,CAAc;AAAA,UACvD,MAAM,IAAA,CAAK;AAAA,SACZ,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,SACJ,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,GACnB,OACD,EAAC;AACP,UAAA,MAAM,IAAA,GAAO,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAC3B,IAAA,GACA,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,SAAS,CAAA,GAC5B,MAAA,CAAO,YACP,EAAC;AACP,UAAA,OAAO,gBAAA,CAAiB,MAAM,WAAW,CAAA;AAAA,QAC3C,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CAAa,IAAA,GAA0B,EAAC,EAAG;AAC/C,MAAA,OAAO,IAAA,CAAK,cAAc,IAAI,CAAA;AAAA,IAChC,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CACJ,KAAA,EACA,IAAA,GAA8B,EAAC,EAC/B;AACA,MAAA,MAAM,OAAA,GAAU,eAAe,KAAK,CAAA;AACpC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,MACvC;AACA,MAAA,OAAO,QAAQ,OAAA,CAAgC;AAAA,QAC7C,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,OAAO,CAAC,CAAA,EAAG,aAAA;AAAA,UACrE;AAAA,YACE,OAAA,EACE,OAAO,IAAA,CAAK,OAAA,KAAY,YACpB,IAAA,CAAK,OAAA,GACH,SACA,OAAA,GACF;AAAA;AACR,SACD,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,SAAS;AAAA;AAC7D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAIA,MAAM,UAAU,QAAA,EAAkB;AAChC,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,IAAA,EAAM,CAAA,yBAAA,EAA4B,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,OAC/D,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;AC1DO,SAAS,kBAAA,CAAmB,MAAA,GAA6B,EAAC,EAAG;AAClE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA;AAAA;AAAA;AAAA,IAIL,MAAM,SAAA,CAAU,KAAA,GAAsB,EAAC,EAAG;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,6BAAA,EAAgC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAC3D,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,OAAO;AAAA;AAC3D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CAAY,KAAA,EAA+B,cAAA,EAAyB;AACxE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,OAAA,CAAQ,MAAA,EAAgB,KAAA,GAAsB,EAAC,EAAG;AACtD,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,8BAAA,EAAiC,kBAAA,CAAmB,MAAM,CAAC,CAAA,EAAG,aAAA;AAAA,UAClE;AAAA,SACD,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CAAiB,KAAA,GAA6C,EAAC,EAAG;AACtE,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,CAAA,oCAAA,EAAuC,aAAA,CAAc,KAAK,CAAC,CAAA;AAAA,OAClE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,gBAAA,CAAiB,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAAI,IAAA,GAAO,EAAC,EAAG,cAAc;AAAA;AAClE,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiB;AAAA,QAC9B,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,iBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,IAAA,CAAK,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD;AAAA,GACF;AACF;;;AChHO,IAAM,gBAAA,GAAmB;AAAA,EAC9B,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,eAAA;AAAA,EACA,cAAA;AAAA,EACA,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,YAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAyEA,SAASA,OAAM,KAAA,EAAuB;AACpC,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,YAAY,KAAA,CAAM,UAAA;AAAA,IAClB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAASC,KAAAA,CAAK,OAAgC,SAAA,EAAmB;AAC/D,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,gBAAA,EAAkB,SAAS,CAAA;AACxD;AAEO,SAAS,qBAAA,CAAsB,MAAA,GAAgC,EAAC,EAAG;AACxE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,cAAA,CAAe,OAA4B,cAAA,EAAyB;AAClE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,WAAW,WAAW,CAAA;AAChD,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAAiD;AAAA,QAC9D,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,iBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,oBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,WAAW,WAAW,CAAA;AAChD,MAAA,OAAO,QAAQ,OAAA,CAAiD;AAAA,QAC9D,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,oBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAoD;AAAA,QACjE,IAAA,EAAM,6CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,QAAA,CAAS,OAA+B,cAAA,EAAyB;AAC/D,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,uCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,SAAA,CAAU,OAAgC,cAAA,EAAyB;AACjE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,OAAO,OAAO,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,MAAM,CAAA,gCAAA,EAAmC,kBAAA;AAAA,UACvC,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAMA,KAAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,SAAS,KAAA,EAAuB;AAC9B,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,MAAM,CAAA,+BAAA,EAAkC,aAAA,CAAcD,MAAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OACpE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAmD,IAAA,EAAM,MAAM;AAAA;AACjE,OACF;AAAA,IACF;AAAA,GACF;AACF;;;AC/NO,IAAM,oBAAA,GAAuB;AAAA,EAClC,UAAA;AAAA,EACA,aAAA;AAAA,EACA,aAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,iBAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,kBAAA;AAAA,EACA,gBAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA;AAkGA,SAASA,OAAM,KAAA,EAA0B;AACvC,EAAA,OAAO;AAAA,IACL,QAAA,EAAU,mBAAA,CAAoB,KAAA,CAAM,QAAA,EAAU,UAAU,CAAA;AAAA,IACxD,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,aAAa,KAAA,CAAM,WAAA;AAAA,IACnB,SAAS,KAAA,CAAM,OAAA;AAAA,IACf,QAAQ,KAAA,CAAM,MAAA;AAAA,IACd,OAAO,KAAA,CAAM,KAAA;AAAA,IACb,QAAQ,KAAA,CAAM;AAAA,GAChB;AACF;AAEA,SAAS,SAAA,CAAU,OAAgC,SAAA,EAAmB;AACpE,EAAA,OAAO,YAAA,CAAa,KAAA,EAAO,oBAAA,EAAsB,SAAS,CAAA;AAC5D;AAEO,SAAS,wBAAA,CACd,MAAA,GAAmC,EAAC,EACpC;AACA,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AAEjD,EAAA,OAAO;AAAA,IACL,YAAY,KAAA,EAA0B;AACpC,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,MAAM,CAAA,8BAAA,EAAiC,aAAA,CAAcA,MAAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OACnE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAkD,IAAA,EAAM,OAAO;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,eAAe,KAAA,EAA0B;AACvC,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,MAAM,CAAA,iCAAA,EAAoC,aAAA,CAAcA,MAAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OACtE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAkD,IAAA,EAAM,OAAO;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,mBAAmB,KAAA,EAA0B;AAC3C,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,MAAM,CAAA,gCAAA,EAAmC,aAAA,CAAcA,MAAAA,CAAM,KAAK,CAAC,CAAC,CAAA;AAAA,OACrE,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAkD,IAAA,EAAM,OAAO;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,eAAA,CAAgB,OAA6B,cAAA,EAAyB;AACpE,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,6BAAA;AAAA,QACN,MAAA,EAAQ,KAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,OAAO,KAAA,CAAM;AAAA,SACf;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAkD,IAAA,EAAM,OAAO;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,kBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,SAAS,SAAS,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,MAAM,CAAA,6BAAA,EAAgC,kBAAA;AAAA,UACpC,KAAA,CAAM;AAAA,SACP,CAAA,OAAA,CAAA;AAAA,QACD,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,sBAAA,CAAkD,IAAA,EAAM,OAAO;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IAEA,SAAA,CAAU,OAA2B,cAAA,EAAyB;AAC5D,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,aAAa,aAAa,CAAA;AACpD,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAAuB;AAAA,QACpC,IAAA,EAAM,6BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,SAAA,CAAU,OAA2B,cAAA,EAAyB;AAC5D,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,OAAO,OAAO,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAA6C;AAAA,QAC1D,IAAA,EAAM,CAAA,4BAAA,EAA+B,kBAAA,CAAmB,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAAA,QACpE,MAAA,EAAQ,QAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA,IAEA,kBAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,mBAAA,CAAoB,KAAA,CAAM,UAAU,UAAU,CAAA;AAC9C,MAAA,OAAO,QAAQ,OAAA,CAA0B;AAAA,QACvC,IAAA,EAAM,+BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,SAAA;AAAA,UACJ,KAAA;AAAA,UACA;AAAA,SACF;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH;AAAA,GACF;AACF;;;ACjRO,IAAM,kBAAA,GAAqB,eAAA;;;ACqNlC,SAAS,mBACP,KAAA,EACA;AACA,EAAA,MAAM,OAAA,GAAU,eAAe,KAAK,CAAA;AACpC,EAAA,OAAO;AAAA,IACL,GAAG,KAAA;AAAA,IACH,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY;AAAC,GAC/B;AACF;AAQO,SAAS,oBAAA,CAAqB,MAAA,GAA+B,EAAC,EAAG;AACtE,EAAA,MAAM,OAAA,GAAU,2BAA2B,MAAM,CAAA;AACjD,EAAA,MAAM,MAAA,GAAS;AAAA;AAAA;AAAA;AAAA,IAIb,MAAM,aAAaA,MAAAA,EAIO;AACxB,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,MAAM,CAAA,kCAAA,EAAqC,aAAA;AAAA,UACzC,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAiD,IAAA,EAAM,UAAU;AAAA;AACnE,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,KAAA,EAMA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,oCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAK,CAAA;AAAA,QAC/B,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAWA,MAAAA,EAKS;AACxB,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,MAAM,CAAA,gCAAA,EAAmC,aAAA;AAAA,UACvC,mBAAmBA,MAAK;AAAA,SACzB,CAAA;AAAA,OACF,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAA6C,IAAA,EAAM,QAAQ;AAAA;AAC7D,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CACJ,KAAA,EAWA,cAAA,EACA;AACA,MAAA,MAAM,OAAA,GAAU,mBAAmB,KAAK,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,kCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,OAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EAKA,cAAA,EACA;AACA,MAAA,MAAM,OAAA,GAAU,mBAAmB,KAAK,CAAA;AACxC,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,OAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EAIA,cAAA,EACA;AACA,MAAA,MAAM,OAAA,GAAU,eAAe,KAAK,CAAA;AACpC,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAI,cAAA,CAAe;AAAA,UACvB,IAAA,EAAM,iBAAA;AAAA,UACN,OAAA,EAAS,qBAAA;AAAA,UACT,MAAA,EAAQ;AAAA,SACT,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,QAAQ,OAAA,CAAkC;AAAA,QAC/C,IAAA,EAAM,0CAA0C,aAAA,CAAc;AAAA,UAC5D,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd;AAAA,SACD,CAAC,CAAA,CAAA;AAAA,QACF,MAAA,EAAQ,QAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAcA,MAAAA,EAQM;AACxB,MAAA,MAAM,UAAA,GAAa,oBAAoBA,MAAK,CAAA;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,iCAAiC,aAAA,CAAc;AAAA,UACnD,GAAG,UAAA;AAAA,UACH,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,MAAMA,MAAAA,CAAM,IAAA;AAAA,UACZ,UAAUA,MAAAA,CAAM;AAAA,SACjB,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA;AAAA,YACE,IAAA;AAAA,YACA;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CAAiBA,MAAAA,GAMnB,EAAC,EAAG;AACN,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,6BAA6B,aAAA,CAAc;AAAA,UAC/C,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,SAASA,MAAAA,CAAM,OAAA;AAAA,UACf,MAAMA,MAAAA,CAAM,IAAA;AAAA,UACZ,UAAUA,MAAAA,CAAM,QAAA;AAAA,UAChB,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,MAAA,GACJ,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,IAAI,CAAA,GAClD,IAAA,GACD,EAAC;AACP,UAAA,MAAM,IAAA,GAAO,cAAA;AAAA,YACX,IAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,GAAI,MAAA,CAAO,KAAA,IACX,OAAO,MAAA,CAAO,KAAA,KAAU,YACxB,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,KAAK,CAAA,GACvB,EAAE,OAAO,MAAA,CAAO,KAAA,KAChB,EAAC;AAAA,YACL,GAAI,MAAA,CAAO,SAAA,IACX,OAAO,MAAA,CAAO,SAAA,KAAc,YAC5B,CAAC,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,SAAS,CAAA,GAC3B,EAAE,WAAW,MAAA,CAAO,SAAA,KACpB;AAAC,WACP;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CAAcA,MAAAA,GAIO,EAAC,EAAG;AAC7B,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,MAAM,CAAA,oCAAA,EAAuC,aAAA;AAAA,UAC3C,oBAAoBA,MAAK;AAAA,SAC1B,CAAA;AAAA,OACF,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CAAe,KAAA,EAAyB,cAAA,EAAyB;AACrE,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,4BAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAK,CAAA;AAAA,QAC/B,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,WAAA,CAAY,KAAA,EAAyB,cAAA,EAAyB;AAClE,MAAA,OAAO,MAAA,CAAO,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,KAAA,CACJ,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA+B;AAAA,QAC5C,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,UAAU,CAAC,CAAA,MAAA,CAAA;AAAA,QAClE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CAAiB,UAAA,EAAoB,cAAA,EAAyB;AAClE,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,UAAU,CAAC,CAAA,SAAA,CAAA;AAAA,QAClE,MAAA,EAAQ,MAAA;AAAA,QACR,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,qBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,MAAM,EAAE,UAAA,EAAY,GAAGC,KAAAA,EAAK,GAAI,KAAA;AAChC,MAAA,OAAO,QAAQ,OAAA,CAA6B;AAAA,QAC1C,IAAA,EAAM,CAAA,2BAAA,EAA8B,kBAAA,CAAmB,UAAU,CAAC,CAAA,QAAA,CAAA;AAAA,QAClE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAAA,KAAAA;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA,CAAe,IAA+B;AAAA;AAChD,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,qCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,oBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,0CAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,gBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,sCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,wCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,mBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,UAAA,EACA,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAiC;AAAA,QAC9C,IAAA,EAAM,CAAA,oCAAA,EAAuC,kBAAA,CAAmB,UAAU,CAAC,CAAA,aAAA,CAAA;AAAA,QAC3E,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,IAAA,CACJ,UAAA,EACA,KAAA,EAKA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,CAAA,oCAAA,EAAuC,kBAAA,CAAmB,UAAU,CAAC,CAAA,KAAA,CAAA;AAAA,QAC3E,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAWD,MAAAA,GAAyB,EAAC,EAAG;AAC5C,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,mCAAmC,aAAA,CAAc;AAAA,UACrD,aAAA,EACE,OAAOA,MAAAA,CAAM,aAAA,KAAkB,YAC3BA,MAAAA,CAAM,aAAA,GACJ,SACA,OAAA,GACF,MAAA;AAAA,UACN,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAC,CAAA;AAAA,OACH,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA,CAAe,QAAA,EAAU,CAAC,IAAA,KAAS;AACjC,UAAA,MAAM,KAAA,GAAQ,WAAA,CAAiC,IAAA,EAAM,QAAQ,CAAA,CAAE,GAAA;AAAA,YAC7D,CAAC,IAAA,KACC,cAAA;AAAA,cACE;AAAA;AACF,WACJ;AACA,UAAA,MAAM,SACJ,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,GACnB,OACD,EAAC;AACP,UAAA,OAAO;AAAA,YACL,GAAG,MAAA;AAAA,YACH,GAAG,gBAAA,CAAiB,KAAA,EAAO,QAAQ,CAAA;AAAA,YACnC,OACE,OAAO,MAAA,CAAO,UAAU,QAAA,GAAW,MAAA,CAAO,QAAQ,KAAA,CAAM;AAAA,WAC5D;AAAA,QACF,CAAC;AAAA,OACH;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,kBAAA,CACJ,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAAoC;AAAA,QACjD,IAAA,EAAM,yCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM;AAAA,UACJ,iBAAiB,KAAA,CAAM;AAAA,SACzB;AAAA,QACA,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA,CAAE,IAAA;AAAA,QAAK,CAAC,QAAA,KACP,cAAA;AAAA,UAAe,QAAA;AAAA,UAAU,CAAC,IAAA,KACxB,cAAA;AAAA,YACE;AAAA;AACF;AACF,OACF;AAAA,IACF,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CAAW,KAAA,EAAwB,cAAA,EAAyB;AAChE,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,iCAAA;AAAA,QACN,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,oBAAoB,KAAK,CAAA;AAAA,QAC/B,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,MAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA8B;AAAA,QAC3C,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,MAAM,CAAC,CAAA,SAAA,CAAA;AAAA,QACnE,MAAA,EAAQ,MAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,UAAA,CACJ,MAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,QAAQ,OAAA,CAA4B;AAAA,QACzC,IAAA,EAAM,CAAA,gCAAA,EAAmC,kBAAA,CAAmB,MAAM,CAAC,CAAA,CAAA;AAAA,QACnE,MAAA,EAAQ,OAAA;AAAA,QACR,IAAA,EAAM,KAAA;AAAA,QACN,cAAA,EAAgB,kBAAkB,oBAAA;AAAqB,OACxD,CAAA;AAAA,IACH,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,KAAA,EAMA,cAAA,EACA;AACA,MAAA,OAAO,MAAA,CAAO,YAAA,CAAa,KAAA,EAAO,cAAc,CAAA;AAAA,IAClD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,YAAA,CACJ,KAAA,EAOA,cAAA,EACA;AACA,MAAA,OAAO,MAAA,CAAO,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACpD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,cAAA,CACJ,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,MAAA,OAAO,MAAA,CAAO,KAAA,CAAM,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IACvD,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,aAAA,CACJ,UAAA,EACA,KAAA,EASA,cAAA,EACA;AACA,MAAA,OAAO,MAAA,CAAO,eAAA,CAAgB,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IACjE,CAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAM,eAAA,CACJ,UAAA,EACA,KAAA,EAKA,cAAA,EACA;AACA,MAAA,OAAO,MAAA,CAAO,IAAA,CAAK,UAAA,EAAY,KAAA,EAAO,cAAc,CAAA;AAAA,IACtD;AAAA,GACF;AAEA,EAAA,OAAO,MAAA;AACT;;;AC3mBA,SAAS,YAAY,IAAA,EAA2B;AAC9C,EAAA,MAAM,IAAA,GAAO,WAAA,CAAsB,IAAA,EAAM,OAAO,CAAA;AAChD,EAAA,IAAI,IAAA,CAAK,SAAS,CAAA,EAAG;AACnB,IAAA,OAAO,IAAA,CAAK,MAAA;AAAA,MACV,CAAC,KAAA,KAA6B,OAAA,CAAQ,KAAK,CAAA,IAAK,OAAO,KAAA,KAAU;AAAA,KACnE;AAAA,EACF;AACA,EAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACpC,IAAA,OAAO,CAAC,IAAgB,CAAA;AAAA,EAC1B;AACA,EAAA,OAAO,EAAC;AACV;AAyCA,SAAS,gBAAgB,MAAA,EAAiD;AACxE,EAAA,OAAO;AAAA,IACL,SAAS,MAAA,CAAO,OAAA;AAAA,IAChB,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB,mBAAmB,MAAA,CAAO,iBAAA;AAAA,IAC1B,kBAAkB,MAAA,CAAO,gBAAA;AAAA,IACzB,WAAW,MAAA,CAAO,SAAA;AAAA,IAClB,YAAY,MAAA,CAAO,UAAA;AAAA,IACnB,aAAa,MAAA,CAAO,WAAA;AAAA,IACpB,6BAA6B,MAAA,CAAO,2BAAA;AAAA,IACpC,gBAAgB,YAAY;AAC1B,MAAA,MAAM,OACJ,MAAA,CAAO,cAAA,GAAiB,MAAM,MAAA,CAAO,cAAA,KAAmB,EAAC;AAE3D,MAAA,IAAI,MAAA,CAAO,UAAU,CAAC,IAAA,CAAK,cAAc,CAAA,IAAK,CAAC,KAAK,aAAA,EAAe;AACjE,QAAA,IAAA,CAAK,cAAc,IAAI,MAAA,CAAO,MAAA;AAAA,MAChC;AACA,MAAA,IAAI,MAAA,CAAO,SAAA,IAAa,CAAC,IAAA,CAAK,wBAAwB,CAAA,EAAG;AACvD,QAAA,IAAA,CAAK,wBAAwB,IAAI,MAAA,CAAO,SAAA;AAAA,MAC1C;AACA,MAAA,IAAI,MAAA,CAAO,WAAA,IAAe,CAAC,IAAA,CAAK,sBAAsB,CAAA,EAAG;AACvD,QAAA,IAAA,CAAK,sBAAsB,IAAI,MAAA,CAAO,WAAA;AAAA,MACxC;AACA,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,GACF;AACF;AAEA,SAASK,gBAAe,IAAA,EAAoC;AAC1D,EAAA,MAAM,OAAA,GAAU,eAAe,IAAI,CAAA;AACnC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,EACvC;AACA,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,gCAAA,GACJ,6KAAA;AAEF,SAAS,yBAAA,CAA0B,OAAgB,MAAA,EAAyB;AAC1E,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AACxB,IAAA,OAAO,MAAM,IAAA,CAAK,CAAC,UAAU,yBAAA,CAA0B,KAAA,EAAO,MAAM,CAAC,CAAA;AAAA,EACvE;AAEA,EAAA,IAAI,CAAC,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,EAAU;AACvC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,MAAA,CAAO,QAAQ,KAAgC,CAAA,CAAE,KAAK,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC7E,IAAA,IACE,OAAO,UAAU,QAAA,IACjB,KAAA,KAAU,UACV,gCAAA,CAAiC,IAAA,CAAK,GAAG,CAAA,EACzC;AACA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IACE,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,IACnB,iCAAiC,IAAA,CAAK,GAAG,CAAA,IACzC,KAAA,CAAM,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,KAAS,MAAM,CAAA,EACpC;AACA,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAO,yBAAA,CAA0B,OAAO,MAAM,CAAA;AAAA,EAChD,CAAC,CAAA;AACH;AAEA,SAAS,YAAY,IAAA,EAKV;AACT,EAAA,MAAM,IAAA,GAAO,YAAY,IAAI,CAAA;AAC7B,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,IAAI,MAAM,kBAAkB,CAAA;AAAA,EACpC;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,gBAAgB,IAAA,EAAqC;AAC5D,EAAA,MAAM,QAAA,GACJ,OAAO,IAAA,CAAK,QAAA,KAAa,QAAA,IAAY,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,QAAQ,CAAA,GAC9D,IAAA,CAAK,QAAA,GACL,GAAA;AACN,EAAA,IAAI,QAAA,GAAW,CAAA,IAAK,QAAA,GAAW,CAAA,EAAG;AAChC,IAAA,MAAM,IAAI,MAAM,iCAAiC,CAAA;AAAA,EACnD;AACA,EAAA,OAAO,QAAA;AACT;AAEA,SAAS,kBACP,QAAA,EACwB;AACxB,EAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAClD;AAkCO,SAAS,kBAAA,CAAmB,MAAA,GAA6B,EAAC,EAAG;AAClE,EAAA,MAAM,aAAA,GAAgB,gBAAgB,MAAM,CAAA;AAC5C,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,aAAa,CAAA;AAC7D,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,mBAAA,GAAsB,0BAA0B,aAAa,CAAA;AACnE,EAAA,MAAM,0BAAA,GACJ,iCAAiC,aAAa,CAAA;AAChD,EAAA,MAAM,0BAAA,GACJ,iCAAiC,aAAa,CAAA;AAChD,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,aAAa,CAAA;AAC7D,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,oBAAA,GAAuB,2BAA2B,aAAa,CAAA;AACrE,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,gBAAA,GAAmB,uBAAuB,aAAa,CAAA;AAC7D,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,mBAAA,GAAsB,0BAA0B,aAAa,CAAA;AACnE,EAAA,MAAM,oBAAA,GAAuB,2BAA2B,aAAa,CAAA;AACrE,EAAA,MAAM,qBAAA,GAAwB,4BAA4B,aAAa,CAAA;AACvE,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,aAAa,CAAA;AACjE,EAAA,MAAM,kBAAA,GAAqB,yBAAyB,aAAa,CAAA;AACjE,EAAA,MAAM,WAAA,GAAc,kBAAkB,aAAa,CAAA;AACnD,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,cAAA,GAAiB,qBAAqB,aAAa,CAAA;AACzD,EAAA,MAAM,SAAA,GAAY,gBAAgB,aAAa,CAAA;AAC/C,EAAA,MAAM,UAAA,GAAa,iBAAiB,aAAa,CAAA;AACjD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,aAAA,GAAgB,oBAAoB,aAAa,CAAA;AACvD,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,eAAA,GAAkB,sBAAsB,aAAa,CAAA;AAC3D,EAAA,MAAM,YAAA,GAAe,mBAAmB,aAAa,CAAA;AACrD,EAAA,MAAM,OAAA,GAAU,2BAA2B,aAAa,CAAA;AACxD,EAAA,MAAM,oBAAA,uBAA2B,GAAA,EAAiC;AAIlE,EAAA,IAAI,cAAA,GAAiB,CAAC,MAAA,CAAO,OAAA;AAC7B,EAAA,IAAI,mBAAA,GAA4C,IAAA;AAEhD,EAAA,eAAe,UAAA,GAA4B;AACzC,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA;AAAA,IACF;AACA,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,OAAO,mBAAA;AAAA,IACT;AAEA,IAAA,MAAM,kBAAkB,YAAY;AAClC,MAAA,IAAI;AACF,QAAA,MAAM,YAAY,OAAA,CAAQ;AAAA,UACxB,SAAS,MAAA,CAAO,OAAA;AAAA,UAChB,UAAA,EAAY;AAAA,SACb,CAAA;AACD,QAAA,cAAA,GAAiB,IAAA;AAAA,MACnB,SAAS,GAAA,EAAK;AAEZ,QAAA,IAAI,GAAA,YAAe,cAAA,IAAkB,GAAA,CAAI,IAAA,KAAS,gBAAA,EAAkB;AAClE,UAAA,cAAA,GAAiB,IAAA;AACjB,UAAA;AAAA,QACF;AAEA,QAAA,MAAM,GAAA;AAAA,MACR;AAAA,IACF,CAAA,GAAG;AAEH,IAAA,mBAAA,GAAsB,cAAA;AAEtB,IAAA,IAAI;AACF,MAAA,MAAM,cAAA;AAAA,IACR,SAAS,KAAA,EAAO;AACd,MAAA,IAAI,wBAAwB,cAAA,EAAgB;AAC1C,QAAA,mBAAA,GAAsB,IAAA;AAAA,MACxB;AACA,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAEA,EAAA,MAAM,gBAAA,GAAmB,OACvB,QAAA,EACA,KAAA,GAAyB,EAAC,KACL;AACrB,IAAA,MAAM,OAAA,GACJ,KAAA,IAAS,OAAO,KAAA,KAAU,QAAA,IAAY,CAAC,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,EAAC;AACzE,IAAA,OAAO,2BAA2B,QAAA,EAAU,OAAA,EAAS,EAAE,MAAA,EAAQ,OAAO,CAAA;AAAA,EACxE,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,SAAA,KAA2C;AACrE,IAAA,MAAM,UAAA,GAAa,SAAA,CAAU,IAAA,EAAK,IAAK,QAAA;AACvC,IAAA,MAAM,MAAA,GAAS,oBAAA,CAAqB,GAAA,CAAI,UAAU,CAAA;AAClD,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,OAAO,MAAA;AAAA,IACT;AAEA,IAAA,MAAM,QAAQ,IAAI,KAAA;AAAA,MAChB,EAAC;AAAA,MACD;AAAA,QACE,GAAA,CAAI,SAAS,QAAA,EAAmB;AAC9B,UAAA,IAAI,OAAO,QAAA,KAAa,QAAA,IAAY,QAAA,KAAa,MAAA,EAAQ;AACvD,YAAA;AAAA,UACF;AACA,UAAA,OAAO,OAAO,KAAA,GAAyB,EAAC,KACtC,gBAAA,CAAiB,GAAG,UAAU,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA;AAAA,QACvD;AAAA;AACF,KACF;AAEA,IAAA,oBAAA,CAAqB,GAAA,CAAI,YAAY,KAAK,CAAA;AAC1C,IAAA,OAAO,KAAA;AAAA,EACT,CAAA;AAEA,EAAA,MAAM,sBAAsB,IAAI,KAAA;AAAA,IAC9B,EAAC;AAAA,IACD;AAAA,MACE,GAAA,CAAI,SAAS,SAAA,EAAoB;AAC/B,QAAA,IAAI,OAAO,SAAA,KAAc,QAAA,IAAY,SAAA,KAAc,MAAA,EAAQ;AACzD,UAAA;AAAA,QACF;AACA,QAAA,OAAO,mBAAmB,SAAS,CAAA;AAAA,MACrC;AAAA;AACF,GACF;AAEA,EAAA,eAAe,qBAAqB,IAAA,EAmBjC;AACD,IAAA,MAAM,IAAA,GAAO,YAAY,IAAI,CAAA;AAC7B,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,MAAM,kBAAkB,CAAA;AAAA,IACpC;AACA,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,SAAA,IAAa,IAAA,CAAK,QAAA,EAAU,SAAA;AACnD,IAAA,IAAI,CAAC,SAAA,EAAW;AACd,MAAA,MAAM,IAAI,MAAM,uBAAuB,CAAA;AAAA,IACzC;AACA,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,GAAI,IAAA,CAAK,QAAA,IAAY,EAAC;AAAA,MACtB;AAAA,KACF;AAEA,IAAA,OAAO,eAAe,MAAA,CAAO;AAAA,MAC3B,OAAA,EAAS,eAAe,IAAI,CAAA;AAAA,MAC5B,IAAA;AAAA,MACA,MAAA,EAAQ,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,SAAA;AAAA,MAC5B,QAAA,EAAU,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,QAAA,EAAU,MAAA;AAAA,MAC1C,MAAA,EAAQ,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,QAAA,EAAU,MAAA;AAAA,MACtC,SAAA;AAAA,MACA,UAAU,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA,CAAE,MAAA,GAAS,IAAI,QAAA,GAAW,MAAA;AAAA,MACxD,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,SAAS,IAAA,CAAK,OAAA;AAAA,MACd,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,MAAM,IAAA,CAAK;AAAA,KACZ,CAAA;AAAA,EACH;AAEA,EAAA,eAAe,YAAY,IAAA,EAmBxB;AACD,IAAA,MAAM,OAAA,GAAU,MAAM,oBAAA,CAAqB;AAAA,MACzC,GAAG,IAAA;AAAA,MACH,QAAA,EAAU,IAAA,CAAK,QAAA,GAAW,MAAA,GAAY,IAAA,CAAK,QAAA;AAAA,MAC3C,MAAA,EAAQ,IAAA,CAAK,QAAA,GAAW,MAAA,GAAY,IAAA,CAAK;AAAA,KAC1C,CAAA;AAED,IAAA,IAAI,CAAC,KAAK,QAAA,EAAU;AAClB,MAAA,OAAO,OAAA,CAAQ,IAAA;AAAA,IACjB;AAEA,IAAA,MAAM,UAAA,GAAa,QAAQ,IAAA,CAAK,EAAA;AAChC,IAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,CAAW,WAAW,CAAA,EAAG;AAC7D,MAAA,MAAM,IAAI,MAAM,sCAAsC,CAAA;AAAA,IACxD;AAEA,IAAA,MAAM,MAAA,GAAS,MAAM,cAAA,CAAe,IAAA,CAAK;AAAA,MACvC,UAAA;AAAA,MACA,QAAA,EAAU,KAAK,QAAA,CAAS,MAAA;AAAA,MACxB,MAAA,EAAQ,KAAK,QAAA,CAAS,MAAA;AAAA,MACtB,SAAA,EAAW,KAAK,QAAA,CAAS;AAAA,KAC1B,CAAA;AAED,IAAA,OAAO;AAAA,MACL,GAAG,OAAA,CAAQ,IAAA;AAAA,MACX,MAAA,EAAQ,OAAO,IAAA,CAAK;AAAA,KACtB;AAAA,EACF;AAEA,EAAA,eAAe,YAAY,IAAA,EAOxB;AACD,IAAA,MAAM,QAAA,GAAW,MAAM,aAAA,CAAc,IAAA,CAAK;AAAA,MACxC,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,MAC5B,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,YAAY,IAAA,CAAK,UAAA;AAAA,MACjB,eAAe,IAAA,CAAK,aAAA;AAAA,MACpB,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,QAAQ,IAAA,CAAK;AAAA,KACd,CAAA;AACD,IAAA,OAAO,KAAA,CAAM,QAAQ,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,GAAI,QAAA,CAAS,IAAA,CAAK,OAAA,GAAU,EAAC;AAAA,EACzE;AAEA,EAAA,eAAe,cAAc,IAAA,EAM1B;AACD,IAAA,MAAM,OAAA,GAAU,eAAe,IAAI,CAAA;AACnC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,OAAO,EAAE,OAAA,EAAS,EAAC,EAAE;AAAA,IACvB;AACA,IAAA,MAAM,QAAA,GAAW,MAAM,YAAA,CAAa,KAAA,CAAM;AAAA,MACxC,GAAG,IAAA,CAAK,KAAA;AAAA,MACR,OAAA;AAAA,MACA,KAAA,EAAO,CAAC,QAAQ,CAAA;AAAA,MAChB,QAAQ,IAAA,CAAK,MAAA;AAAA,MACb,eAAe,IAAA,CAAK,aAAA;AAAA,MACpB,OAAO,IAAA,CAAK;AAAA,KACb,CAAA;AACD,IAAA,MAAM,IAAA,GAAO,kBAAkB,QAAQ,CAAA;AACvC,IAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,GAC5C,IAAA,CAAK,UACN,EAAC;AACL,IAAA,MAAM,aAAA,GAAgB,MAAM,OAAA,CAAQ,IAAA,CAAK,OAAO,CAAA,GAC3C,IAAA,CAAK,UACN,EAAC;AACL,IAAA,MAAM,OAAA,GACJ,cAAA,CAAe,MAAA,GAAS,CAAA,GACpB,cAAA,GACA,aAAA,CAAc,MAAA,CAAO,CAAC,MAAA,KAAW,MAAA,CAAO,IAAA,KAAS,QAAQ,CAAA;AAC/D,IAAA,OAAO,EAAE,OAAA,EAAQ;AAAA,EACnB;AAEA,EAAA,eAAe,eAAA,CACbL,MAAAA,EACA,OAAA,GAOI,EAAC,EACL;AACA,IAAA,MAAM,OAAA,GAAU,eAAe,OAAO,CAAA;AACtC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,MAAM,qBAAqB,CAAA;AAAA,IACvC;AAEA,IAAA,OAAO,aACJ,KAAA,CAAM;AAAA,MACL,CAAA,EAAGA,MAAAA;AAAA,MACH,OAAA;AAAA,MACA,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,eAAe,OAAA,CAAQ,aAAA;AAAA,MACvB,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,QAAQ,OAAA,CAAQ;AAAA,KACjB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,mBAAmB,IAAA,EAI/B;AACD,IAAA,MAAM,OAAA,GAAU,eAAe,IAAI,CAAA;AACnC,IAAA,MAAM,QAAA,GAAW,OAAA,GACb,MAAM,WAAA,CAAY,SAAA,CAAU;AAAA,MAC1B,OAAA;AAAA,MACA,QAAA,EAAU,eAAA;AAAA,MACV,KAAA,EAAO;AAAA,KACR,CAAA,GACD,IAAA,CAAK,MAAA,GACH,MAAM,YAAY,UAAA,CAAW,EAAE,MAAA,EAAQ,IAAA,CAAK,QAAQ,CAAA,GACpD,EAAE,IAAA,EAAM,EAAC,EAAE;AACjB,IAAA,MAAM,iBAAiB,WAAA,CAAY,QAAA,CAAS,IAAI,CAAA,CAC7C,MAAA,CAAO,CAAC,IAAA,KAAS;AAChB,MAAA,MAAM,MAAA,GACJ,OAAO,IAAA,CAAK,QAAA,EAAU,WAAW,QAAA,GAC7B,IAAA,CAAK,QAAA,CAAS,MAAA,GACd,OAAO,IAAA,CAAK,MAAA,KAAW,QAAA,GACrB,KAAK,MAAA,GACL,YAAA;AACR,MAAA,IAAI,IAAA,CAAK,MAAA,IAAU,MAAA,KAAW,IAAA,CAAK,MAAA,EAAQ;AACzC,QAAA,OAAO,KAAA;AAAA,MACT;AACA,MAAA,OAAO,IAAA;AAAA,IACT,CAAC,CAAA,CACA,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MACd,OAAA,EACE,OAAO,IAAA,CAAK,QAAA,EAAU,YAAY,QAAA,GAC9B,IAAA,CAAK,SAAS,OAAA,GACd,EAAA;AAAA,MACN,OAAA,EACE,OAAO,IAAA,CAAK,QAAA,EAAU,YAAY,QAAA,GAC9B,IAAA,CAAK,SAAS,OAAA,GACd,EAAA;AAAA,MACN,WAAA,EAAa,KAAK,aAAA,IAAiB,EAAA;AAAA,MACnC,QAAA,EACE,OAAO,IAAA,CAAK,QAAA,EAAU,aAAa,QAAA,GAC/B,IAAA,CAAK,SAAS,QAAA,GACd,QAAA;AAAA,MACN,MAAA,EACE,OAAO,IAAA,CAAK,QAAA,EAAU,WAAW,QAAA,GAC7B,IAAA,CAAK,SAAS,MAAA,GACd,YAAA;AAAA,MACN,UAAA,EACE,OAAO,IAAA,CAAK,QAAA,EAAU,eAAe,QAAA,GACjC,IAAA,CAAK,SAAS,UAAA,GACd;AAAA,KACR,CAAE,CAAA;AACJ,IAAA,OAAO,EAAE,cAAA,EAAe;AAAA,EAC1B;AAEA,EAAA,eAAe,YAAA,CAAa,MAAA,EAAgB,KAAA,GAAQ,CAAA,EAAG;AACrD,IAAA,MAAM,QAAA,GAAW,MAAM,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA;AACnD,IAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,CAAK,OAAO,CAAA,GAC/C,QAAA,CAAS,IAAA,CAAK,OAAA,GACd,EAAC;AACL,IAAA,MAAM,KAAA,GACJ,OAAA,CAAQ,MAAA,GAAS,CAAA,GACb,OAAA,CACG,KAAA,CAAM,CAAA,EAAG,KAAA,GAAQ,CAAC,CAAA,CAClB,GAAA,CAAI,CAAC,OAAO,KAAA,MAAW;AAAA,MACtB,MAAA,EAAQ,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,QAAA,IAAY,EAAA;AAAA,MAC1C,QAAA,EAAU,KAAA,KAAU,CAAA,GAAI,MAAA,GAAS;AAAA,MACjC,CAAA,GACJ,CAAC,EAAE,MAAA,EAAQ,QAAA,EAAU,QAAQ,CAAA;AACnC,IAAA,OAAO;AAAA,MACL,KAAA;AAAA,MACA,QAAA,EAAU;AAAA,QACR,MAAA;AAAA,QACA,aAAa,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAA,CAAQ,SAAS,CAAC,CAAA;AAAA,QAC3C,UAAA,EAAY,CAAA;AAAA,QACZ,UAAU;AAAC,OACb;AAAA,MACA,KAAA;AAAA,MACA,QAAA,EAAU,SAAS,IAAA,CAAK,QAAA;AAAA,MACxB;AAAA,KACF;AAAA,EACF;AAEA,EAAA,eAAe,qBAAqB,MAAA,EAAgB;AAClD,IAAA,OAAO,aAAA,CAAc,iBAAA,CAAkB,MAAM,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,EACvE;AAEA,EAAA,eAAe,kBAAkB,MAAA,EAAgD;AAC/E,IAAA,MAAM,QAAA,GAAW,MAAM,aAAA,CAAc,cAAA,CAAe,MAAM,CAAA;AAC1D,IAAA,OAAO,uCAAA,CAAwC,SAAS,IAAI,CAAA;AAAA,EAC9D;AAEA,EAAA,eAAe,aAAA,CAAc,MAAA,EAAgB,KAAA,GAAQ,EAAA,EAAI;AACvD,IAAA,MAAM,SAAS,MAAM,WAAA,CAAY,UAAA,CAAW,EAAE,OAAO,CAAA;AACrD,IAAA,MAAM,OAAA,GAAU,YAAwB,MAAA,CAAO,IAAA,EAAM,QAAQ,CAAA,CAC1D,MAAA,CAAO,CAAC,KAAA,KAAU,yBAAA,CAA0B,OAAO,MAAM,CAAC,EAC1D,KAAA,CAAM,CAAA,EAAG,KAAK,CAAA,CACd,GAAA,CAAI,CAAC,KAAA,KAAU;AACd,MAAA,MAAM,GAAA,GAAM,KAAA;AACZ,MAAA,OAAO;AAAA,QACL,QAAQ,OAAO,GAAA,CAAI,MAAA,KAAW,QAAA,GAAW,IAAI,MAAA,GAAS,SAAA;AAAA,QACtD,OAAO,OAAO,GAAA,CAAI,KAAA,KAAU,QAAA,GAAW,IAAI,KAAA,GAAQ,SAAA;AAAA,QACnD,SAAA,EACE,OAAO,GAAA,CAAI,SAAA,KAAc,WAAW,GAAA,CAAI,SAAA,GAAY,KAAK,GAAA,EAAI;AAAA,QAC/D,WACE,OAAO,GAAA,CAAI,SAAA,KAAc,QAAA,GACrB,IAAI,SAAA,GACJ,wBAAA;AAAA,QACN,MAAA,EAAQ,IAAI,MAAA,IAAU,IAAA;AAAA,QACtB,KAAA,EAAO,IAAI,KAAA,IAAS;AAAA,OACtB;AAAA,IACF,CAAC,CAAA;AACH,IAAA,OAAO,EAAE,OAAA,EAAQ;AAAA,EACnB;AAEA,EAAA,eAAe,gBAAA,CACb,QACA,IAAA,EACA;AACA,IAAA,OAAO,cAAc,MAAA,CAAO,MAAA,EAAQ,IAAI,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,EAClE;AAEA,EAAA,eAAe,cAAA,CAAe,KAAA,GAAoB,EAAC,EAAG;AACpD,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,mCAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,yBAAA,CAA0B,KAAA,GAAoB,EAAC,EAAG;AAC/D,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,6CAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,mBAAA,CAAoB,KAAA,GAAoB,EAAC,EAAG;AACzD,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,wCAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAA;AAAA,MACN,gBAAgB,oBAAA;AAAqB,KACtC,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,oBAAA,CAAqB,KAAA,GAAoB,EAAC,EAAG;AAC1D,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,4BAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAA;AAAA,MACN,gBAAgB,oBAAA;AAAqB,KACtC,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,sBAAA,CAAuB,KAAA,GAAoB,EAAC,EAAG;AAC5D,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,qCAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAA;AAAA,MACN,gBAAgB,oBAAA;AAAqB,KACtC,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,uBAAA,CAAwB,KAAA,GAAoB,EAAC,EAAG;AAC7D,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,mCAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,mBAAA,CAAoB,KAAA,GAAoB,EAAC,EAAG;AACzD,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,6BAA6B,aAAA,CAAc;AAAA,QAC/C,cACE,OAAO,KAAA,CAAM,YAAA,KAAiB,QAAA,GAC1B,MAAM,YAAA,GACN,MAAA;AAAA,QACN,YACE,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GAAW,MAAM,UAAA,GAAa,MAAA;AAAA,QAC5D,QAAQ,OAAO,KAAA,CAAM,MAAA,KAAW,QAAA,GAAW,MAAM,MAAA,GAAS;AAAA,OAC3D,CAAC,CAAA;AAAA,KACH,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,oBAAA,CAAqB,KAAA,GAAoB,EAAC,EAAG;AAC1D,IAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,gBAAA;AAAA,MACpC;AAAA,KACF;AACA,IAAA,MAAM,QAAA,GAAW,QAAA;AACjB,IAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAAA,EAClD;AAEA,EAAA,eAAe,oBAAA,CAAqB,KAAA,GAAoB,EAAC,EAAG;AAC1D,IAAA,MAAM,KAAK,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,GAAW,MAAM,EAAA,GAAK,EAAA;AACrD,IAAA,MAAM,EAAE,EAAA,EAAI,GAAA,EAAK,GAAG,MAAK,GAAI,KAAA;AAC7B,IAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,gBAAA;AAAA,MACpC,EAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,QAAA,GAAW,QAAA;AACjB,IAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAAA,EAClD;AAEA,EAAA,eAAe,qBAAA,CAAsB,KAAA,GAAoB,EAAC,EAAG;AAC3D,IAAA,MAAM,KAAK,OAAO,KAAA,CAAM,EAAA,KAAO,QAAA,GAAW,MAAM,EAAA,GAAK,EAAA;AACrD,IAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,iBAAA,CAAkB,EAAE,CAAA;AAC1D,IAAA,MAAM,QAAA,GAAW,QAAA;AACjB,IAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAAA,EAClD;AAEA,EAAA,eAAe,2BAAA,CAA4B,KAAA,GAAoB,EAAC,EAAG;AACjE,IAAA,MAAM,aACJ,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GAAW,MAAM,UAAA,GAAa,EAAA;AAC5D,IAAA,MAAM,EAAE,UAAA,EAAY,WAAA,EAAa,GAAG,MAAK,GAAI,KAAA;AAC7C,IAAA,MAAM,QAAA,GAAW,MAAM,cAAA,CAAe,aAAA;AAAA,MACpC,UAAA;AAAA,MACA;AAAA,KACF;AACA,IAAA,MAAM,QAAA,GAAW,QAAA;AACjB,IAAA,OAAO,OAAO,MAAA,CAAO,EAAC,EAAG,QAAA,EAAU,SAAS,IAAI,CAAA;AAAA,EAClD;AAEA,EAAA,eAAe,4BAAA,CAA6B,KAAA,GAAoB,EAAC,EAAG;AAClE,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,8CAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAA;AAAA,MACN,gBAAgB,oBAAA;AAAqB,KACtC,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,8BAAA,CAA+B,KAAA,GAAoB,EAAC,EAAG;AACpE,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,gDAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM,KAAA;AAAA,MACN,gBAAgB,oBAAA;AAAqB,KACtC,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,8BAAA,CAA+B,KAAA,GAAoB,EAAC,EAAG;AACpE,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,uCAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,eAAe,uBAAA,CAAwB,KAAA,GAAoB,EAAC,EAAG;AAC7D,IAAA,OAAO,QACJ,OAAA,CAAiC;AAAA,MAChC,IAAA,EAAM,4CAAA;AAAA,MACN,MAAA,EAAQ,MAAA;AAAA,MACR,IAAA,EAAM;AAAA,KACP,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,EAC3B;AAEA,EAAA,MAAM,cAAA,GAAiB;AAAA,IACrB,KAAKA,MAAAA,EAAoD;AACvD,MAAA,OAAO,WAAA,CAAY,UAAUA,MAAK,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,IAAI,KAAA,EAA2D;AAC7D,MAAA,OAAO,WAAA,CAAY,OAAA;AAAA,QACjB,OAAO,KAAA,KAAU,QAAA,GAAW,EAAE,MAAA,EAAQ,OAAM,GAAI;AAAA,OAClD;AAAA,IACF,CAAA;AAAA,IACA,MAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,MAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,WAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,IAC3D,CAAA;AAAA,IACA,SAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,aAAA,CAAc,KAAA,EAAO,cAAc,CAAA;AAAA,IACxD,CAAA;AAAA,IACA,MAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,IACrD,CAAA;AAAA,IACA,UAAA,CACE,OACA,cAAA,EACA;AACA,MAAA,OAAO,WAAA,CAAY,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA;AAAA,IACzD;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA,EAAS,kBAAA;AAAA,IACT,MAAA,CACEA,QACA,OAAA,EAQA;AACA,MAAA,OAAO,eAAA,CAAgBA,QAAO,OAAO,CAAA;AAAA,IACvC,CAAA;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,CAAKA,MAAAA,GAAiD,EAAC,EAAG;AACxD,QAAA,OAAO,YAAA,CAAa,IAAA,CAAKA,MAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACxD,CAAA;AAAA,MACA,OACE,KAAA,EACA;AACA,QAAA,OAAO,YAAA,CAAa,MAAA,CAAO,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC1D,CAAA;AAAA,MACA,aAAa,cAAA,CAAe,WAAA;AAAA,MAC5B,YAAY,cAAA,CAAe,UAAA;AAAA,MAC3B,cAAc,cAAA,CAAe,YAAA;AAAA,MAC7B,iBAAiB,cAAA,CAAe,eAAA;AAAA,MAChC,uBAAuB,cAAA,CAAe,qBAAA;AAAA,MACtC,sBAAsB,cAAA,CAAe;AAAA,KACvC;AAAA,IACA,OAAA,EAAS;AAAA,MACP,OAAO,KAAA,EAAiC;AACtC,QAAA,OAAO,cACJ,MAAA,CAAO;AAAA,UACN,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,UAC7B,IAAA,EAAM,YAAY,KAAK,CAAA;AAAA,UACvB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,QAAA,EAAU,gBAAgB,KAAK,CAAA;AAAA,UAC/B,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,UAAU,KAAA,CAAM;AAAA,SACjB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,IAAI,MAAA,EAAgB;AAClB,QAAA,OAAO,aAAA,CAAc,GAAA,CAAI,MAAM,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,MAAA,CACE,MAAA,EACA,WAAA,EACA,SAAA,EACA;AACA,QAAA,MAAM,OAAA,GACJ,OAAO,WAAA,KAAgB,QAAA,GACnB,EAAE,IAAA,EAAM,WAAA,EAAa,WAAU,GAC/B;AAAA,UACE,MAAM,WAAA,CAAY,IAAA;AAAA,UAClB,WAAW,WAAA,CAAY;AAAA,SACzB;AACN,QAAA,OAAO,cAAc,MAAA,CAAO,MAAA,EAAQ,OAAO,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACrE,CAAA;AAAA,MACA,gBAAA,CACE,QACA,KAAA,EACA;AACA,QAAA,OAAO,cAAc,gBAAA,CAAiB,MAAA,EAAQ,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7E,CAAA;AAAA,MACA,kBAAA,CACE,QACA,KAAA,EACA;AACA,QAAA,OAAO,cAAc,gBAAA,CAAiB,MAAA,EAAQ,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7E,CAAA;AAAA,MACA,YAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,YAAA,CAAa,KAAA,EAAO,cAAc,CAAA,CAClC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,eAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,eAAA,CAAgB,KAAA,EAAO,cAAc,CAAA,CACrC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,WAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,WAAA,CAAY,KAAA,EAAO,cAAc,CAAA,CACjC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,cAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA,CACpC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,iBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA,CACvC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,sBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,sBAAA,CAAuB,KAAA,EAAO,cAAc,CAAA,CAC5C,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,aAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cACJ,aAAA,CAAc,KAAA,EAAO,cAAc,CAAA,CACnC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,IAAA,CAAK,QAAgB,KAAA,EAA+B;AAClD,QAAA,OAAO,aAAA,CACJ,KAAK,MAAA,EAAQ;AAAA,UACZ,IAAA,EAAM,YAAY,KAAK,CAAA;AAAA,UACvB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM;AAAA,SAClB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,OAAA,CACE,QACA,KAAA,EACA;AACA,QAAA,MAAM,OAAA,GACJ,OAAO,KAAA,KAAU,QAAA,GACb,EAAE,MAAA,EAAQ,KAAA,EAAM,GAChB,KAAA,GACE,EAAE,MAAA,EAAQ,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,WAAU,GAC1C,MAAA;AACR,QAAA,OAAO,cAAc,OAAA,CAAQ,MAAA,EAAQ,OAAO,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACtE,CAAA;AAAA,MACA,KAAK,IAAA,EAOF;AACD,QAAA,OAAO,cACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASK,gBAAe,IAAI,CAAA;AAAA,UAC5B,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,eAAe,IAAA,CAAK,aAAA;AAAA,UACpB,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,EAAQ,aAAA;AAAA,MACR,QAAQ,MAAA,EAAgB;AACtB,QAAA,OAAO,aAAA,CAAc,OAAA,CAAQ,MAAM,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7D,CAAA;AAAA,MACA,kBAAkB,MAAA,EAAgB;AAChC,QAAA,OAAO,aAAA,CAAc,iBAAA,CAAkB,MAAM,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACvE,CAAA;AAAA,MACA,eAAe,MAAA,EAAgB;AAC7B,QAAA,OAAO,kBAAkB,MAAM,CAAA;AAAA,MACjC,CAAA;AAAA,MACA,cAAA,CACE,QACA,KAAA,EACA;AACA,QAAA,OAAO,cACJ,cAAA,CAAe,MAAA,EAAQ,KAAK,CAAA,CAC5B,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,QACA,KAAA,EACA;AACA,QAAA,OAAO,cAAc,MAAA,CAAO,MAAA,EAAQ,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACnE;AAAA,KACF;AAAA,IACA,QAAA,EAAU;AAAA,MACR,OAAO,KAAA,EAAoD;AACzD,QAAA,OAAO,cAAA,CAAe,MAAA,CAAO,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC5D,CAAA;AAAA,MACA,KAAKL,MAAAA,EAAmD;AACtD,QAAA,OAAO,cAAA,CAAe,IAAA,CAAKA,MAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC1D,CAAA;AAAA,MACA,IAAI,EAAA,EAAY;AACd,QAAA,OAAO,cAAA,CAAe,GAAA,CAAI,EAAE,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACtD,CAAA;AAAA,MACA,MAAA,CACE,IACA,KAAA,EACA;AACA,QAAA,OAAO,eAAe,MAAA,CAAO,EAAA,EAAI,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAChE,CAAA;AAAA,MACA,OAAO,EAAA,EAAY;AACjB,QAAA,OAAO,cAAA,CAAe,MAAA,CAAO,EAAE,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,IAAA,CAAK,IAAY,KAAA,EAAmD;AAClE,QAAA,OAAO,eAAe,IAAA,CAAK,EAAA,EAAI,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC9D,CAAA;AAAA,MACA,UAAA,CACE,IACAA,MAAAA,EACA;AACA,QAAA,OAAO,eAAe,UAAA,CAAW,EAAA,EAAIA,MAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACpE,CAAA;AAAA,MACA,OAAO,EAAA,EAAY;AACjB,QAAA,OAAO,cAAA,CAAe,MAAA,CAAO,EAAE,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzD;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAO,IAAA,EASJ;AACD,QAAA,OAAO,YACJ,MAAA,CAAO;AAAA,UACN,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,OAAA,EAAS,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK;AAAA,SAC/B,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YAAY,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzE,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YAAY,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzE,CAAA;AAAA,MACA,aAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YACJ,aAAA,CAAc,KAAA,EAAO,cAAc,CAAA,CACnC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,WAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YACJ,WAAA,CAAY,KAAA,EAAO,cAAc,CAAA,CACjC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YAAY,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzE,CAAA;AAAA,MACA,KAAK,IAAA,EAKF;AACD,QAAA,OAAO,YACJ,IAAA,CAAK;AAAA,UACJ,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,SAAS,IAAA,EAKN;AACD,QAAA,OAAO,YACJ,QAAA,CAAS;AAAA,UACR,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,SAAS,IAAA,CAAK;AAAA,SACf,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,QAAA,EAAU;AAAA,MACR,OAAO,IAAA,EAkBJ;AACD,QAAA,OAAO,oBAAA,CAAqB,IAAI,CAAA,CAAE,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC1D,CAAA;AAAA,MACA,GAAA,EAAK,WAAA;AAAA,MACL,IAAI,UAAA,EAAoB;AACtB,QAAA,OAAO,cAAA,CAAe,GAAA,CAAI,UAAU,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC9D,CAAA;AAAA,MACA,KAAK,IAAA,EAKF;AACD,QAAA,OAAO,eACJ,IAAA,CAAK;AAAA,UACJ,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,OAAO,IAAA,EAQJ;AACD,QAAA,MAAM,CAAA,GAAI,IAAA,CAAK,CAAA,IAAK,IAAA,CAAK,KAAA;AACzB,QAAA,IAAI,CAAC,CAAA,EAAG;AACN,UAAA,MAAM,IAAI,MAAM,eAAe,CAAA;AAAA,QACjC;AACA,QAAA,OAAO,eACJ,MAAA,CAAO;AAAA,UACN,CAAA;AAAA,UACA,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,KAAK,IAAA,EAQF;AACD,QAAA,MAAM,QAAA,GAAW,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,cAAc,IAAA,CAAK,QAAA;AAC1D,QAAA,IAAI,CAAC,QAAA,EAAU;AACb,UAAA,MAAM,IAAI,MAAM,sBAAsB,CAAA;AAAA,QACxC;AACA,QAAA,MAAM,UAAA,GACJ,OAAO,IAAA,CAAK,UAAA,KAAe,QAAA,GACvB,IAAA,CAAK,UAAA,GACL,IAAA,CAAK,UAAA,GACH,UAAA,GACA,IAAA,CAAK,QAAA,GACH,QAAA,GACA,MAAA;AACV,QAAA,OAAO,eACJ,IAAA,CAAK;AAAA,UACJ,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,QAAA;AAAA,UACA,UAAA;AAAA,UACA,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,WAAW,IAAA,CAAK;AAAA,SACjB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,aAAa,IAAA,EAKV;AACD,QAAA,OAAO,eACJ,IAAA,CAAK;AAAA,UACJ,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,WAAW,IAAA,CAAK;AAAA,SACjB,CAAA,CACA,IAAA,CAAK,CAAC,QAAA,MAAc;AAAA,UACnB,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,UAAU,IAAA,CAAK;AAAA,SACjB,CAAE,CAAA;AAAA,MACN,CAAA;AAAA,MACA,gBAAA,CACE,QAAA,EACA,UAAA,EACAS,OAAAA,EACA,cAAA,EACA;AACA,QAAA,OAAO,cAAA,CACJ,iBAAiB,QAAA,EAAU,UAAA,EAAYA,SAAQ,cAAc,CAAA,CAC7D,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,qBAAA,CACE,QAAA,EACA,QAAA,EACAA,OAAAA,EACA,cAAA,EACA;AACA,QAAA,OAAO,cAAA,CACJ,sBAAsB,QAAA,EAAU,QAAA,EAAUA,SAAQ,cAAc,CAAA,CAChE,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,YAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eACJ,YAAA,CAAa,KAAA,EAAO,cAAc,CAAA,CAClC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAe,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC5E,CAAA;AAAA,MACA,aAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eACJ,aAAA,CAAc,KAAA,EAAO,cAAc,CAAA,CACnC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAe,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC5E,CAAA;AAAA,MACA,wBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eACJ,wBAAA,CAAyB,KAAA,EAAO,cAAc,CAAA,CAC9C,KAAK,iBAAiB,CAAA;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,cAAc,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC3E,CAAA;AAAA,MACA,IAAI,QAAA,EAAkB;AACpB,QAAA,OAAO,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC3D;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,OAAO,IAAA,EAMJ;AACD,QAAA,OAAO,gBACJ,MAAA,CAAO;AAAA,UACN,OAAA,EAAS,eAAe,IAAI,CAAA;AAAA,UAC5B,MAAM,IAAA,CAAK,IAAA;AAAA,UACX,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,gBAAgB,IAAA,CAAK,cAAA;AAAA,UACrB,UAAU,IAAA,CAAK;AAAA,SAChB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,IAAI,UAAA,EAAoB;AACtB,QAAA,OAAO,eAAA,CAAgB,GAAA,CAAI,UAAU,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC/D,CAAA;AAAA,MACA,MAAA,CACE,UAAA,EACA,IAAA,EACA,gBAAA,EACA;AACA,QAAA,OAAO,eAAA,CACJ,OAAO,UAAA,EAAY;AAAA,UAClB,IAAA;AAAA,UACA,SAAA,EAAW;AAAA,SACZ,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,KAAK,IAAA,EAOF;AACD,QAAA,OAAO,gBACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASJ,gBAAe,IAAI,CAAA;AAAA,UAC5B,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,YAAA,CAAa,UAAA,EAAoB,MAAA,EAAgB,SAAA,EAAoB;AACnE,QAAA,OAAO,eAAA,CACJ,aAAa,UAAA,EAAY;AAAA,UACxB,MAAA;AAAA,UACA;AAAA,SACD,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,WAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CACJ,WAAA;AAAA,UACC;AAAA,YACE,GAAG,KAAA;AAAA,YACH,OAAA,EAAS,eAAe,KAAK;AAAA,WAC/B;AAAA,UACA;AAAA,SACF,CACC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,GAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CACJ,GAAA;AAAA,UACC;AAAA,YACE,GAAG,KAAA;AAAA,YACH,OAAA,EAAS,eAAe,KAAK;AAAA,WAC/B;AAAA,UACA;AAAA,SACF,CACC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,cAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBACJ,cAAA,CAAe,KAAA,EAAO,cAAc,CAAA,CACpC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,mBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBACJ,mBAAA,CAAoB,KAAA,EAAO,cAAc,CAAA,CACzC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,gBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBACJ,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA,CACtC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,kBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBACJ,kBAAA,CAAmB,KAAA,EAAO,cAAc,CAAA,CACxC,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBAAgB,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7E,CAAA;AAAA,MACA,MAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBAAgB,MAAA,CAAO,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7E,CAAA;AAAA,MACA,MAAA,CACE,YACA,KAAA,EAMA;AACA,QAAA,OAAO,gBACJ,MAAA,CAAO,UAAA,EAAY,KAAK,CAAA,CACxB,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,OAAA,CAAQ,YAAoB,MAAA,EAAiB;AAC3C,QAAA,OAAO,eAAA,CACJ,QAAQ,UAAA,EAAY,EAAE,QAAQ,CAAA,CAC9B,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,aAAa,IAAA,EAMV;AACD,QAAA,MAAM,MAAA,GAAS,IAAA,CAAK,MAAA,IAAU,IAAA,CAAK,SAAA;AACnC,QAAA,OAAO,eACJ,IAAA,CAAK;AAAA,UACJ,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,UAAU,IAAA,CAAK,UAAA;AAAA,UACf,UAAA,EAAY,UAAA;AAAA,UACZ,MAAA;AAAA,UACA,WAAW,IAAA,CAAK;AAAA,SACjB,CAAA,CACA,IAAA,CAAK,CAAC,QAAA,MAAc;AAAA,UACnB,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,YAAY,IAAA,CAAK,UAAA;AAAA,UACjB,SAAA,EAAW;AAAA,SACb,CAAE,CAAA;AAAA,MACN,CAAA;AAAA,MACA,gBAAgB,IAAA,EAIb;AACD,QAAA,OAAO,KAAK,IAAA,CAAK;AAAA,UACf,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,UAC5B,MAAA,EAAQ,IAAA,CAAK,eAAA,GAAkB,MAAA,GAAY;AAAA,SAC5C,CAAA,CAAE,IAAA,CAAK,CAAC,IAAA,KAAS;AAChB,UAAA,MAAM,SAAA,GACJ,MAAM,OAAA,CAAQ,IAAA,CAAK,SAAS,CAAA,GAAI,IAAA,CAAK,YAAY,EAAC;AAEpD,UAAA,MAAM,IAAA,GAAO,CAAC,QAAA,KAAyC;AACrD,YAAA,QAAQ,QAAA;AAAU,cAChB,KAAK,QAAA;AACH,gBAAA,OAAO,CAAA;AAAA,cACT,KAAK,MAAA;AACH,gBAAA,OAAO,CAAA;AAAA,cACT,KAAK,QAAA;AACH,gBAAA,OAAO,CAAA;AAAA,cACT,KAAK,KAAA;AACH,gBAAA,OAAO,CAAA;AAAA,cACT;AACE,gBAAA,OAAO,CAAA;AAAA;AACX,UACF,CAAA;AAEA,UAAA,OAAO;AAAA,YACL,SAAA,EAAW,CAAC,GAAG,SAAS,EACrB,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,IAAA,CAAK,CAAA,CAAE,QAAQ,CAAA,GAAI,IAAA,CAAK,EAAE,QAAQ,CAAC,EAClD,KAAA,CAAM,CAAA,EAAG,IAAA,CAAK,KAAA,IAAS,EAAE;AAAA,WAC9B;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,MAAM,YAAY,IAAA,EAGf;AACD,QAAA,OAAO,YACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,UAC5B,eAAe,IAAA,CAAK;AAAA,SACrB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,cAAA;AAAA,MACP,WAAW,KAAA,EAAqD;AAC9D,QAAA,OAAO,WAAA,CAAY,WAAW,KAAK,CAAA;AAAA,MACrC,CAAA;AAAA,MACA,aAAa,IAAA,EAAsD;AACjE,QAAA,OAAO,YACJ,YAAA,CAAa;AAAA,UACZ,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,SAAA,EACE,OAAO,IAAA,CAAK,SAAA,KAAc,WACtB,IAAA,CAAK,SAAA,CACF,KAAA,CAAM,GAAG,CAAA,CACT,GAAA,CAAI,CAAC,KAAA,KAAU,KAAA,CAAM,IAAA,EAAM,CAAA,CAC3B,MAAA,CAAO,CAAC,KAAA,KAAU,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GACrC,MAAA;AAAA,UACN,UAAU,IAAA,CAAK;AAAA,SAChB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,YAAA;AAAA,MACA,oBAAA;AAAA,MACA,iBAAA;AAAA,MACA,aAAA;AAAA,MACA,SAAS,IAAA,EAKN;AACD,QAAA,OAAO,YACJ,QAAA,CAAS;AAAA,UACR,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,QAAA,EAAU,KAAK,QAAA,IAAY,CAAA;AAAA,UAC3B,SAAS,IAAA,CAAK;AAAA,SACf,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,QAAQ,IAAA,EAIL;AACD,QAAA,OAAO,YACJ,OAAA,CAAQ;AAAA,UACP,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,UAC5B,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,KAAK,IAAA,EAIF;AACD,QAAA,OAAO,YACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,UAC5B,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,OAAO,IAAA,CAAK;AAAA,SACb,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,KAAK,IAAA,EAGF;AACD,QAAA,OAAO,YACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASA,gBAAe,IAAI,CAAA;AAAA,UAC5B,eAAe,IAAA,CAAK;AAAA,SACrB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,QAAQ,IAAA,EAKL;AACD,QAAA,OAAO,YACJ,OAAA,CAAQ;AAAA,UACP,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,WAAW,IAAA,CAAK,SAAA;AAAA,UAChB,eAAe,IAAA,CAAK;AAAA,SACrB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,kBAAkB,IAAA,EAA4C;AAC5D,QAAA,OAAO,uBAAA,CAAwB;AAAA,UAC7B,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,SAAS,IAAA,CAAK;AAAA,SACf,CAAA;AAAA,MACH,CAAA;AAAA,MACA,aAAA;AAAA,MACA,kBAAA;AAAA,MACA,gBAAA;AAAA,MACA,WAAA;AAAA,MACA,sBAAA,CACE,SACA,SAAA,EACA;AACA,QAAA,OAAO,KAAK,IAAA,CAAK;AAAA,UACf,OAAA;AAAA,UACA,SAAA;AAAA,UACA,KAAA,EAAO;AAAA,SACR,CAAA,CAAE,IAAA,CAAK,CAAC,QAAA,MAAc;AAAA,UACrB,GAAG,QAAA;AAAA,UACH,OAAA;AAAA,UACA,WAAW,SAAA,IAAa;AAAA,SAC1B,CAAE,CAAA;AAAA,MACJ,CAAA;AAAA,MACA,qBAAqB,OAAA,EAAiB;AACpC,QAAA,OAAO,KAAK,OAAA,CAAQ;AAAA,UAClB,OAAA;AAAA,UACA,KAAA,EAAO;AAAA,SACR,CAAA,CAAE,IAAA,CAAK,CAAC,QAAA,MAAc;AAAA,UACrB,GAAG,QAAA;AAAA,UACH;AAAA,SACF,CAAE,CAAA;AAAA,MACJ,CAAA;AAAA,MACA,yBAAA,CACE,SACA,SAAA,EACA;AACA,QAAA,OAAO,YACJ,OAAA,CAAQ;AAAA,UACP,OAAA;AAAA,UACA;AAAA,SACD,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA,CACtB,IAAA,CAAK,CAAC,QAAA,MAAc;AAAA,UACnB,OAAA;AAAA,UACA,WAAW,QAAA,CAAS;AAAA,SACtB,CAAE,CAAA;AAAA,MACN;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,OAAO,KAAA,EAA4B;AACjC,QAAA,OAAO,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,MAC7C,CAAA;AAAA,MACA,OAAO,KAAA,EAA4B;AACjC,QAAA,OAAO,eAAA,CAAgB,eAAe,KAAK,CAAA;AAAA,MAC7C,CAAA;AAAA,MACA,KAAKL,MAAAA,EAA4D;AAC/D,QAAA,OAAO,eAAA,CAAgB,cAAcA,MAAK,CAAA;AAAA,MAC5C,CAAA;AAAA,MACA,IAAI,UAAA,EAAoB;AACtB,QAAA,OAAO,eAAA,CAAgB,YAAY,UAAU,CAAA;AAAA,MAC/C,CAAA;AAAA,MACA,aAAA,CACE,YACA,KAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,qBAAA,CAAsB,UAAA,EAAY,KAAK,CAAA;AAAA,MAChE,CAAA;AAAA,MACA,aAAA,CACE,YACA,KAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,qBAAA,CAAsB,UAAA,EAAY,KAAK,CAAA;AAAA,MAChE,CAAA;AAAA,MACA,UAAU,OAAA,EAAiB;AACzB,QAAA,OAAO,gBAAgB,oBAAA,CAAqB;AAAA,UAC1C;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,YAAY,OAAA,EAAiB;AAC3B,QAAA,OAAO,gBAAgB,sBAAA,CAAuB;AAAA,UAC5C;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,qBAAqB,OAAA,EAAiB;AACpC,QAAA,OAAO,gBAAgB,gCAAA,CAAiC;AAAA,UACtD;AAAA,SACD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,yBAAyB,IAAA,EAItB;AACD,QAAA,OAAO,gBAAgB,mCAAA,CAAoC;AAAA,UACzD,GAAG,IAAA;AAAA,UACH,OAAA,EAASK,gBAAe,IAAI;AAAA,SAC7B,CAAA;AAAA,MACH;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,aAAa,KAAA,EAA0D;AACrE,QAAA,OAAO,cAAA,CAAe,aAAa,KAAK,CAAA;AAAA,MAC1C,CAAA;AAAA,MACA,WAAW,KAAA,EAAwD;AACjE,QAAA,OAAO,cAAA,CAAe,WAAW,KAAK,CAAA;AAAA,MACxC,CAAA;AAAA,MACA,WAAWL,MAAAA,EAAwD;AACjE,QAAA,OAAO,cAAA,CAAe,WAAWA,MAAK,CAAA;AAAA,MACxC,CAAA;AAAA,MACA,iBACE,KAAA,EACA;AACA,QAAA,OAAO,cAAA,CAAe,iBAAiB,KAAK,CAAA;AAAA,MAC9C,CAAA;AAAA,MACA,oBACE,KAAA,EACA;AACA,QAAA,OAAO,cAAA,CAAe,oBAAoB,KAAK,CAAA;AAAA,MACjD,CAAA;AAAA,MACA,OAAO,KAAA,EAAyB;AAC9B,QAAA,OAAO,gBAAgB,MAAA,CAAO;AAAA,UAC5B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,OAAA,EAASK,gBAAe,KAAK,CAAA;AAAA,UAC7B,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,qBAAqB,KAAA,CAAM,mBAAA;AAAA,UAC3B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,cACE,OAAO,KAAA,CAAM,YAAA,KAAiB,QAAA,GAC1B,MAAM,YAAA,GACN,MAAA;AAAA,UACN,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAI,KAAA,EAAyB;AAC3B,QAAA,OAAO,gBAAgB,MAAA,CAAO;AAAA,UAC5B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,OAAA,EAASA,gBAAe,KAAK,CAAA;AAAA,UAC7B,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,qBAAqB,KAAA,CAAM,mBAAA;AAAA,UAC3B,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,WAAW,KAAA,CAAM,SAAA;AAAA,UACjB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,cACE,OAAO,KAAA,CAAM,YAAA,KAAiB,QAAA,GAC1B,MAAM,YAAA,GACN,MAAA;AAAA,UACN,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,KAAKL,MAAAA,EAA2D;AAC9D,QAAA,OAAO,gBAAgB,IAAA,CAAK;AAAA,UAC1B,OAAA,EAASK,gBAAeL,MAAK,CAAA;AAAA,UAC7B,QAAQA,MAAAA,CAAM,MAAA;AAAA,UACd,OAAOA,MAAAA,CAAM;AAAA,SACd,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAS,UAAA,EAAoB;AAC3B,QAAA,OAAO,eAAA,CAAgB,QAAA,CAAS,EAAE,EAAA,EAAI,YAAY,CAAA;AAAA,MACpD,CAAA;AAAA,MACA,eACE,KAAA,EACA;AACA,QAAA,MAAM,YAAY,KAAA,CAAM,OAAA,CAAQ,MAAM,SAAS,CAAA,GAC3C,MAAM,SAAA,CAAU,MAAA;AAAA,UACd,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU;AAAA,SAC/C,GACA,MAAA;AACJ,QAAA,MAAM,MAAA,GAAS,KAAA,CAAM,OAAA,CAAQ,KAAA,CAAM,MAAM,CAAA,GACrC,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU,QAAQ,CAAA,GACzE,MAAA;AACJ,QAAA,OAAO,gBAAgB,MAAA,CAAO;AAAA,UAC5B,IAAI,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GAAW,MAAM,UAAA,GAAa,EAAA;AAAA,UAC9D,YAAY,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GAAW,MAAM,UAAA,GAAa,MAAA;AAAA,UACtE,UACE,OAAO,KAAA,CAAM,QAAA,KAAa,QAAA,GAAW,MAAM,QAAA,GAAW,MAAA;AAAA,UACxD,MAAM,OAAO,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,MAAM,IAAA,GAAO,MAAA;AAAA,UACpD,qBACE,OAAO,KAAA,CAAM,mBAAA,KAAwB,QAAA,GACjC,MAAM,mBAAA,GACN,MAAA;AAAA,UACN,aACE,OAAO,KAAA,CAAM,WAAA,KAAgB,QAAA,GAAW,MAAM,WAAA,GAAc,MAAA;AAAA,UAC9D,SAAA;AAAA,UACA,MAAA;AAAA,UACA,MAAM,OAAO,KAAA,CAAM,IAAA,KAAS,QAAA,GAAW,MAAM,IAAA,GAAO;AAAA,SACrD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,OACE,KAAA,EACA;AACA,QAAA,OAAO,IAAA,CAAK,eAAe,KAAK,CAAA;AAAA,MAClC,CAAA;AAAA,MACA,cACE,KAAA,EACA;AACA,QAAA,OAAO,gBAAgB,aAAA,CAAc;AAAA,UACnC,IAAI,KAAA,CAAM,UAAA;AAAA,UACV,cAAc,KAAA,CAAM,YAAA;AAAA,UACpB,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,mBAAmB,KAAA,CAAM;AAAA,SAC1B,CAAA;AAAA,MACH,CAAA;AAAA,MACA,OAAA,CACEA,MAAAA,GAA+D,EAAC,EAChE;AACA,QAAA,OAAO,cAAA,CAAe,iBAAiBA,MAAK,CAAA;AAAA,MAC9C,CAAA;AAAA,MACA,KAAA,CAAM,YAAoB,KAAA,EAAmB;AAC3C,QAAA,OAAO,gBAAgB,KAAA,CAAM;AAAA,UAC3B,EAAA,EAAI,UAAA;AAAA,UACJ,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,SAAS,KAAA,CAAM;AAAA,SAChB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAA,CACE,YACA,KAAA,EACA;AACA,QAAA,OAAO,cAAA,CAAe,IAAA,CAAK,UAAA,EAAY,KAAK,CAAA;AAAA,MAC9C,CAAA;AAAA,MACA,eAAA,CACE,YACA,KAAA,EACA;AACA,QAAA,OAAO,cAAA,CAAe,eAAA,CAAgB,UAAA,EAAY,KAAK,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,iBAAiB,OAAA,EAAiB;AAChC,QAAA,OAAO,qBAAA,CAAsB,gBAAA,CAAiB,EAAE,OAAA,EAAS,CAAA;AAAA,MAC3D,CAAA;AAAA,MACA,QAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,QAAA,CAAS,KAAA,EAAO,cAAc,CAAA;AAAA,MACvD,CAAA;AAAA,MACA,YAAA,CACE,YACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,YAAA;AAAA,UACrB,EAAE,UAAA,EAAW;AAAA,UACb;AAAA,SACF;AAAA,MACF,CAAA;AAAA,MACA,QAAA,CACE,UAAA,EACA,KAAA,EACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,QAAA;AAAA,UACrB,EAAE,YAAY,KAAA,EAAM;AAAA,UACpB;AAAA,SACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,UAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,eAAA,CAAgB,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,MACzD;AAAA,KACF;AAAA,IACA,OAAA,EAAS;AAAA,MACP,UAAA,CAAWA,MAAAA,GAAiD,EAAC,EAAG;AAC9D,QAAA,OAAO,aAAa,IAAA,CAAK;AAAA,UACvB,YAAYA,MAAAA,CAAM,UAAA;AAAA,UAClB,eAAeA,MAAAA,CAAM,aAAA;AAAA,UACrB,QAAQA,MAAAA,CAAM,MAAA;AAAA,UAKd,MAAMA,MAAAA,CAAM;AAAA,SACb,CAAA;AAAA,MACH,CAAA;AAAA,MACA,OAAA,CACE,OAAA,EACA,KAAA,GAAqD,EAAC,EACtD;AACA,QAAA,OAAO,aAAA,CAAc,OAAA,CAAQ,OAAA,EAAS,KAAK,CAAA;AAAA,MAC7C,CAAA;AAAA,MACA,mBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,mBAAA,CAAoB,KAAA,EAAO,cAAc,CAAA;AAAA,MACxE,CAAA;AAAA,MACA,SAAS,KAAA,EAA6B;AACpC,QAAA,OAAO,eAAe,KAAmB,CAAA;AAAA,MAC3C,CAAA;AAAA,MACA,oBACE,KAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,oBAAoB,KAAK,CAAA;AAAA,MACxD,CAAA;AAAA,MACA,kBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,kBAAA,CAAmB,KAAA,EAAO,cAAc,CAAA;AAAA,MACvE,CAAA;AAAA,MACA,iBAAA,CACE,KAAA,GAA8B,EAAC,EAC/B,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,MACtE,CAAA;AAAA,MACA,kBAAA,CACE,KAAA,GAA8B,EAAC,EAC/B;AACA,QAAA,OAAO,qBAAA,CAAsB,mBAAmB,KAAK,CAAA;AAAA,MACvD,CAAA;AAAA,MACA,gBACE,KAAA,EACA;AACA,QAAA,OAAO,gBAAA,CACJ,KAAA,CAAM,KAAqD,CAAA,CAC3D,KAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,0BACE,KAAA,EACA;AACA,QAAA,OAAO,0BAA0B,KAAmB,CAAA;AAAA,MACtD,CAAA;AAAA,MACA,oBACE,KAAA,EACA;AACA,QAAA,OAAO,oBAAoB,KAAmB,CAAA;AAAA,MAChD;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAO,KAAA,EAAwB;AAC7B,QAAA,OAAO,YAAY,MAAA,CAAO;AAAA,UACxB,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,UAC7B,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,kBAAkB,KAAA,CAAM;AAAA,SACzB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,QAAA,CAAS,QAAgB,KAAA,EAA0B;AACjD,QAAA,OAAO,YAAY,QAAA,CAAS;AAAA,UAC1B,EAAA,EAAI,MAAA;AAAA,UACJ,eAAe,KAAA,CAAM;AAAA,SACtB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,MAAA,CAAO,QAAgB,KAAA,EAAwB;AAC7C,QAAA,OAAO,YAAY,MAAA,CAAO;AAAA,UACxB,EAAA,EAAI,MAAA;AAAA,UACJ,OAAO,KAAA,CAAM,KAAA;AAAA,UACb,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,gBAAgB,KAAA,CAAM,cAAA;AAAA,UACtB,kBAAkB,KAAA,CAAM,gBAAA;AAAA,UACxB,kBAAkB,KAAA,CAAM;AAAA,SACzB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,KAAK,KAAA,EAA6B;AAChC,QAAA,OAAO,YAAY,IAAA,CAAK;AAAA,UACtB,OAAA,EAAS,eAAe,KAAK,CAAA;AAAA,UAC7B,UAAA,EACE,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GACxB,KAAA,CAAM,UAAA,GACN,OAAO,KAAA,CAAM,gBAAA,KAAqB,QAAA,GAChC,KAAA,CAAM,gBAAA,GACN,MAAA;AAAA,UACR,QAAQ,OAAO,KAAA,CAAM,MAAA,KAAW,QAAA,GAAW,MAAM,MAAA,GAAS,MAAA;AAAA,UAC1D,OAAO,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,GAAW,MAAM,KAAA,GAAQ;AAAA,SACxD,CAAA;AAAA,MACH;AAAA,KACF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,IAAA,CAAK,KAAA,GAAiD,EAAC,EAAG;AACxD,QAAA,OAAO,aAAa,IAAA,CAAK;AAAA,UACvB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,MAAM,KAAA,CAAM;AAAA,SACb,CAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAI,OAAA,EAAiB;AACnB,QAAA,OAAO,YAAA,CAAa,IAAI,OAAO,CAAA;AAAA,MACjC,CAAA;AAAA,MACA,OAAO,KAAA,EAAkD;AACvD,QAAA,OAAO,aAAa,MAAA,CAAO;AAAA,UACzB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,eAAe,KAAA,CAAM,aAAA;AAAA,UACrB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,UAAU,KAAA,CAAM,QAAA;AAAA,UAChB,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,WAAW,KAAA,CAAM;AAAA,SAClB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,MAAA,CACE,SACA,KAAA,EACA;AACA,QAAA,OAAO,aAAa,MAAA,CAAO;AAAA,UACzB,EAAA,EAAI,OAAA;AAAA,UACJ,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,aAAa,KAAA,CAAM,WAAA;AAAA,UACnB,MAAM,KAAA,CAAM,IAAA;AAAA,UACZ,YAAY,KAAA,CAAM,UAAA;AAAA,UAClB,iBAAiB,KAAA,CAAM,eAAA;AAAA,UACvB,QAAQ,KAAA,CAAM,MAAA;AAAA,UACd,YAAY,KAAA,CAAM;AAAA,SACnB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAA,CACE,OAAA,EACAA,MAAAA,GAAoD,EAAC,EACrD;AACA,QAAA,OAAO,aAAa,IAAA,CAAK;AAAA,UACvB,EAAA,EAAI,OAAA;AAAA,UACJ,UAAUA,MAAAA,CAAM;AAAA,SACjB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,QAAQ,KAAA,EAA8C;AACpD,QAAA,OAAO,aAAa,IAAA,CAAK;AAAA,UACvB,IAAI,KAAA,CAAM,MAAA;AAAA,UACV,UAAU,KAAA,CAAM;AAAA,SACjB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,QAAA,CACE,OAAA,EACAA,MAAAA,GAAwD,EAAC,EACzD;AACA,QAAA,OAAO,aAAa,QAAA,CAAS;AAAA,UAC3B,EAAA,EAAI,OAAA;AAAA,UACJ,oBAAoBA,MAAAA,CAAM,kBAAA;AAAA,UAC1B,UAAUA,MAAAA,CAAM;AAAA,SACjB,CAAA;AAAA,MACH,CAAA;AAAA,MACA,MAAA,CAAO,SAAiB,cAAA,EAAyB;AAC/C,QAAA,OAAO,YAAA,CAAa,MAAA,CAAO,OAAA,EAAS,cAAc,CAAA;AAAA,MACpD,CAAA;AAAA,MACA,UAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,YAAA,CAAa,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,MACtD;AAAA,KACF;AAAA,IACA,OAAA,EAAS;AAAA,MACP,OAAO,KAAA,EAA6B;AAClC,QAAA,MAAM,aACJ,OAAO,KAAA,CAAM,cAAA,KAAmB,QAAA,GAAW,MAAM,cAAA,GAAiB,EAAA;AACpE,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,QAC9C;AACA,QAAA,MAAM,OACJ,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GAAW,MAAM,UAAA,GAAa,EAAA;AAC5D,QAAA,IAAI,CAAC,IAAA,EAAM;AACT,UAAA,MAAM,IAAI,MAAM,wBAAwB,CAAA;AAAA,QAC1C;AACA,QAAA,MAAM,UAAA,GACJ,KAAA,CAAM,UAAA,KAAe,UAAA,GAAa,WAAW,KAAA,CAAM,UAAA;AAErD,QAAA,OAAO,eAAA,CAAgB,OAAO,UAAA,EAAY;AAAA,UACxC,IAAA;AAAA,UACA,UAAA,EACE,OAAO,UAAA,KAAe,QAAA,GAAW,UAAA,GAAa,MAAA;AAAA,UAChD,aAAa,KAAA,CAAM,OAAA,CAAQ,MAAM,eAAe,CAAA,GAC5C,MAAM,eAAA,CAAgB,MAAA;AAAA,YACpB,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU;AAAA,WAC/C,GACA;AAAA,SACL,CAAA;AAAA,MACH,CAAA;AAAA,MACA,IAAI,KAAA,EAA6B;AAC/B,QAAA,MAAM,aACJ,OAAO,KAAA,CAAM,cAAA,KAAmB,QAAA,GAAW,MAAM,cAAA,GAAiB,EAAA;AACpE,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,QAC9C;AACA,QAAA,OAAO,aAAA,CAAc,IAAI,UAAU,CAAA;AAAA,MACrC;AAAA,KACF;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,KAAK,IAAA,EAOF;AACD,QAAA,OAAO,qBACJ,IAAA,CAAK;AAAA,UACJ,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,SAAS,IAAA,CAAK,OAAA;AAAA,UACd,aAAa,IAAA,CAAK,WAAA;AAAA,UAClB,OAAA,EAAS,eAAe,IAAI,CAAA;AAAA,UAC5B,UAAU,IAAA,CAAK,QAAA;AAAA,UACf,YAAY,IAAA,CAAK;AAAA,SAClB,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,KAAK,IAAA,EAKF;AACD,QAAA,OAAO,qBACJ,IAAA,CAAK;AAAA,UACJ,OAAA,EAASK,gBAAe,IAAI,CAAA;AAAA,UAC5B,QAAQ,IAAA,CAAK,MAAA;AAAA,UACb,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,QAAQ,IAAA,CAAK;AAAA,SACd,CAAA,CACA,IAAA,CAAK,iBAAiB,CAAA;AAAA,MAC3B,CAAA;AAAA,MACA,IAAI,eAAA,EAAyB;AAC3B,QAAA,OAAO,oBAAA,CAAqB,GAAA,CAAI,eAAe,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MACzE,CAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACR;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,CACE,KAAA,GAII,EAAC,EACL;AACA,QAAA,OAAO,gBAAA,CAAiB,IAAA,CAAK,KAAK,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC5D,CAAA;AAAA,MACA,IAAI,UAAA,EAAoB;AACtB,QAAA,OAAO,gBAAA,CACJ,IAAI,UAAU,CAAA,CACd,KAAK,CAAC,QAAA,KAAa,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,IAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,gBAAA,CACJ,IAAA,CAAK,KAAA,EAAO,cAAc,CAAA,CAC1B,KAAK,CAAC,QAAA,KAAa,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,KAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,iBAAiB,KAAA,CAAM,KAAA,EAAO,cAAc,CAAA,CAAE,KAAK,iBAAiB,CAAA;AAAA,MAC7E,CAAA;AAAA,MACA,OAAO,KAAA,EAA6B;AAClC,QAAA,OAAO,qBAAqB,KAAmB,CAAA;AAAA,MACjD,CAAA;AAAA,MACA,OAAO,KAAA,EAA6B;AAClC,QAAA,OAAO,qBAAqB,KAAmB,CAAA;AAAA,MACjD,CAAA;AAAA,MACA,QAAQ,KAAA,EAA6B;AACnC,QAAA,OAAO,sBAAsB,KAAmB,CAAA;AAAA,MAClD,CAAA;AAAA,MACA,cACE,KAAA,EACA;AACA,QAAA,OAAO,4BAA4B,KAAmB,CAAA;AAAA,MACxD,CAAA;AAAA,MACA,eACE,KAAA,EACA;AACA,QAAA,OAAO,6BAA6B,KAAmB,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,uBAAuB,KAAA,EAA6B;AAClD,QAAA,OAAO,6BAA6B,KAAmB,CAAA;AAAA,MACzD,CAAA;AAAA,MACA,iBACE,KAAA,EACA;AACA,QAAA,OAAO,+BAA+B,KAAmB,CAAA;AAAA,MAC3D,CAAA;AAAA,MACA,yBAAyB,KAAA,EAA6B;AACpD,QAAA,OAAO,+BAA+B,KAAmB,CAAA;AAAA,MAC3D,CAAA;AAAA,MACA,iBACE,KAAA,EACA;AACA,QAAA,OAAO,+BAA+B,KAAmB,CAAA;AAAA,MAC3D,CAAA;AAAA,MACA,yBAAyB,KAAA,EAA6B;AACpD,QAAA,OAAO,+BAA+B,KAAmB,CAAA;AAAA,MAC3D,CAAA;AAAA,MACA,GAAA,EAAK;AAAA,KACP;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,eAAA,CACE,KAAA,GAA8B,EAAC,EAC/B,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,eAAA,CAAgB,KAAA,EAAO,cAAc,CAAA;AAAA,MACpE,CAAA;AAAA,MACA,gBAAA,CACE,KAAA,GAA8B,EAAC,EAC/B,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,MACrE,CAAA;AAAA,MACA,UAAA,CACE,KAAA,GAA8B,EAAC,EAC/B,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,MAC/D,CAAA;AAAA,MACA,kBAAA,CACE,KAAA,GAA8B,EAAC,EAC/B;AACA,QAAA,OAAO,qBAAA,CAAsB,mBAAmB,KAAK,CAAA;AAAA,MACvD,CAAA;AAAA,MACA,gBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,MACrE,CAAA;AAAA,MACA,gBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,gBAAA,CAAiB,KAAA,EAAO,cAAc,CAAA;AAAA,MACrE,CAAA;AAAA,MACA,QAAA,CACE,KAAA,GAA8B,EAAC,EAC/B;AACA,QAAA,OAAO,qBAAA,CAAsB,cAAc,KAAK,CAAA;AAAA,MAClD,CAAA;AAAA,MACA,aAAA,CAAc,KAAA,GAA8B,EAAC,EAAG;AAC9C,QAAA,OAAO,qBAAA,CAAsB,cAAc,KAAK,CAAA;AAAA,MAClD,CAAA;AAAA,MACA,UAAA,CAAW,OAA6B,cAAA,EAAyB;AAC/D,QAAA,OAAO,qBAAA,CAAsB,UAAA,CAAW,KAAA,EAAO,cAAc,CAAA;AAAA,MAC/D;AAAA,KACF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,gBACE,KAAA,EACA;AACA,QAAA,OAAO,aAAa,eAAA,CAAgB;AAAA,UAClC,SAAS,OAAO,KAAA,CAAM,OAAA,KAAY,QAAA,GAAW,MAAM,OAAA,GAAU,MAAA;AAAA,UAC7D,YACE,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GACvB,MAAM,UAAA,GACP,MAAA;AAAA,UACN,WACE,OAAO,KAAA,CAAM,SAAA,KAAc,QAAA,GAAW,MAAM,SAAA,GAAY,MAAA;AAAA,UAC1D,aACE,OAAO,KAAA,CAAM,WAAA,KAAgB,QAAA,GAAW,MAAM,WAAA,GAAc,MAAA;AAAA,UAC9D,iBACE,OAAO,KAAA,CAAM,eAAA,KAAoB,QAAA,GAC7B,MAAM,eAAA,GACN;AAAA,SACP,CAAA;AAAA,MACH,CAAA;AAAA,MACA,oBAAA,CACE,KAAA,GAAiE,EAAC,EAClE;AACA,QAAA,OAAO,aAAa,oBAAA,CAAqB;AAAA,UACvC,YACE,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GACvB,MAAM,UAAA,GACP,MAAA;AAAA,UACN,eACE,OAAO,KAAA,CAAM,aAAA,KAAkB,SAAA,GAC3B,MAAM,aAAA,GACN,MAAA;AAAA,UACN,WACE,OAAO,KAAA,CAAM,SAAA,KAAc,QAAA,GAAW,MAAM,SAAA,GAAY,MAAA;AAAA,UAC1D,aACE,OAAO,KAAA,CAAM,WAAA,KAAgB,QAAA,GAAW,MAAM,WAAA,GAAc,MAAA;AAAA,UAC9D,OAAO,OAAO,KAAA,CAAM,KAAA,KAAU,QAAA,GAAW,MAAM,KAAA,GAAQ;AAAA,SACxD,CAAA;AAAA,MACH,CAAA;AAAA,MACA,mBACE,KAAA,EACA;AACA,QAAA,OAAO,aAAa,kBAAA,CAAmB;AAAA,UACrC,UAAU,KAAA,CAAM,OAAA,CAAQ,MAAM,QAAQ,CAAA,GAClC,MAAM,QAAA,CAAS,MAAA;AAAA,YACb,CAAC,KAAA,KAA2B,OAAO,KAAA,KAAU;AAAA,WAC/C,GACA,MAAA;AAAA,UACJ,YACE,OAAO,KAAA,CAAM,UAAA,KAAe,QAAA,GACvB,MAAM,UAAA,GACP,MAAA;AAAA,UACN,WACE,OAAO,KAAA,CAAM,SAAA,KAAc,QAAA,GAAW,MAAM,SAAA,GAAY,MAAA;AAAA,UAC1D,aACE,OAAO,KAAA,CAAM,WAAA,KAAgB,QAAA,GAAW,MAAM,WAAA,GAAc;AAAA,SAC/D,CAAA;AAAA,MACH,CAAA;AAAA,MACA,iBAAA,CACE,OACA,cAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,MACtE,CAAA;AAAA,MACA,GAAA,EAAK;AAAA,KACP;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,MAAA,CAAO,OAA6B,cAAA,EAAyB;AAC3D,QAAA,OAAO,qBAAA,CAAsB,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,MACtE,CAAA;AAAA,MACA,iBAAA,CAAkB,OAA6B,cAAA,EAAyB;AACtE,QAAA,OAAO,qBAAA,CAAsB,iBAAA,CAAkB,KAAA,EAAO,cAAc,CAAA;AAAA,MACtE,CAAA;AAAA,MACA,WACE,KAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,sBAAsB,KAAK,CAAA;AAAA,MAC1D,CAAA;AAAA,MACA,sBAAsB,KAAA,EAA6B;AACjD,QAAA,OAAO,qBAAA,CAAsB,sBAAsB,KAAK,CAAA;AAAA,MAC1D;AAAA,KACF;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,eAAe,KAAA,EAA6B;AAC1C,QAAA,OAAO,qBAAA,CAAsB,eAAe,KAAK,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,iBACE,KAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,iBAAiB,KAAK,CAAA;AAAA,MACrD,CAAA;AAAA,MACA,aAAA,CAAc,OAA6B,cAAA,EAAyB;AAClE,QAAA,OAAO,qBAAA,CAAsB,aAAA,CAAc,KAAA,EAAO,cAAc,CAAA;AAAA,MAClE,CAAA;AAAA,MACA,cAAc,KAAA,EAA6B;AACzC,QAAA,OAAO,qBAAA,CAAsB,cAAc,KAAK,CAAA;AAAA,MAClD;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,OACE,KAAA,EACA;AACA,QAAA,OAAO,qBAAqB,KAAmB,CAAA;AAAA,MACjD,CAAA;AAAA,MACA,wBAAwB,KAAA,EAA6B;AACnD,QAAA,OAAO,qBAAqB,KAAmB,CAAA;AAAA,MACjD,CAAA;AAAA,MACA,IAAA,CACE,KAAA,GAII,EAAC,EACL;AACA,QAAA,OAAO,oBAAoB,KAAmB,CAAA;AAAA,MAChD,CAAA;AAAA,MACA,SAAS,KAAA,EAA6B;AACpC,QAAA,OAAO,uBAAuB,KAAmB,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,iBAAiB,KAAA,EAA6B;AAC5C,QAAA,OAAO,uBAAuB,KAAmB,CAAA;AAAA,MACnD,CAAA;AAAA,MACA,UAAU,KAAA,EAA6B;AACrC,QAAA,OAAO,wBAAwB,KAAmB,CAAA;AAAA,MACpD,CAAA;AAAA,MACA,kBAAkB,KAAA,EAA6B;AAC7C,QAAA,OAAO,wBAAwB,KAAmB,CAAA;AAAA,MACpD;AAAA,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,uBACE,KAAA,EACA;AACA,QAAA,OAAO,qBAAA,CAAsB,uBAAuB,KAAK,CAAA;AAAA,MAC3D;AAAA,KACF;AAAA,IACA,UAAA,EAAY,gBAAA;AAAA,IACZ,aAAA,EAAe,mBAAA;AAAA,IACf,oBAAA,EAAsB,0BAAA;AAAA,IACtB,cAAA,EAAgB,oBAAA;AAAA,IAChB,aAAA,EAAe,mBAAA;AAAA,IACf,oBAAA,EAAsB,0BAAA;AAAA,IACtB,YAAA,EAAc,kBAAA;AAAA,IACd,IAAA,EAAM,UAAA;AAAA,IACN,SAAA,EAAW,eAAA;AAAA,IACX,KAAA,EAAO;AAAA,MACL,aAAa,kBAAA,CAAmB,WAAA;AAAA,MAChC,gBAAgB,kBAAA,CAAmB,cAAA;AAAA,MACnC,oBAAoB,kBAAA,CAAmB,kBAAA;AAAA,MACvC,iBAAiB,kBAAA,CAAmB,eAAA;AAAA,MACpC,oBAAoB,kBAAA,CAAmB,kBAAA;AAAA,MACvC,WAAW,kBAAA,CAAmB,SAAA;AAAA,MAC9B,WAAW,kBAAA,CAAmB,SAAA;AAAA,MAC9B,oBAAoB,kBAAA,CAAmB,kBAAA;AAAA,MACvC,SAAS,YAAA,EAAsC;AAC7C,QAAA,OAAO,mBAAmB,YAAY,CAAA;AAAA,MACxC,CAAA;AAAA,MACA,WAAW,QAAA,EAAkB;AAC3B,QAAA,OAAO,qBAAqB,QAAQ,CAAA;AAAA,MACtC,CAAA;AAAA,MACA,IAAA,GAAO;AACL,QAAA,OAAO,yBAAA,EAA0B;AAAA,MACnC,CAAA;AAAA,MACA,KAAA,GAAQ;AACN,QAAA,0BAAA,EAA2B;AAAA,MAC7B,CAAA;AAAA,MACA,MAAA,CAAO,IAAA,EAAc,KAAA,GAAyB,EAAC,EAAG;AAChD,QAAA,MAAM,WAAW,IAAA,CAAK,QAAA,CAAS,GAAG,CAAA,GAAI,IAAA,GAAO,UAAU,IAAI,CAAA,CAAA;AAC3D,QAAA,OAAO,gBAAA,CAAiB,UAAU,KAAK,CAAA;AAAA,MACzC,CAAA;AAAA,MACA,UAAU,SAAA,EAAmB;AAC3B,QAAA,OAAO,mBAAmB,SAAS,CAAA;AAAA,MACrC;AAAA,KACF;AAAA,IACA,KAAA,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAML,UAAA;AAAA;AAAA;AAAA;AAAA,MAIA,IAAI,WAAA,GAAc;AAChB,QAAA,OAAO,cAAA;AAAA,MACT,CAAA;AAAA,MACA,WAAA,GAAc;AACZ,QAAA,OAAO,YAAY,WAAA,EAAY;AAAA,MACjC,CAAA;AAAA,MACA,OAAA,GAAU;AACR,QAAA,OAAO,YAAY,UAAA,EAAW;AAAA,MAChC,CAAA;AAAA,MACA,WAAW,KAAA,EAAsD;AAC/D,QAAA,OAAO,WAAA,CAAY,WAAW,KAAK,CAAA;AAAA,MACrC,CAAA;AAAA,MACA,OAAO,KAAA,EAAqD;AAC1D,QAAA,OAAO,WAAA,CAAY,UAAU,KAAK,CAAA;AAAA,MACpC,CAAA;AAAA,MACA,QAAQ,KAAA,EAAkD;AACxD,QAAA,OAAO,WAAA,CAAY,QAAQ,KAAK,CAAA;AAAA,MAClC,CAAA;AAAA,MACA,OAAO,KAAA,EAAiD;AACtD,QAAA,OAAO,WAAA,CAAY,OAAO,KAAK,CAAA;AAAA,MACjC,CAAA;AAAA,MACA,QAAQ,KAAA,EAAkD;AACxD,QAAA,OAAO,WAAA,CAAY,QAAQ,KAAK,CAAA;AAAA,MAClC;AAAA,KACF;AAAA,IACA,KAAA,EAAO,cAAA;AAAA,IACP,QAAA,EAAU;AAAA,MACR,GAAG,cAAA;AAAA,MACH,gBAAgB,cAAA,CAAe,cAAA;AAAA,MAC/B,sBAAsB,cAAA,CAAe,oBAAA;AAAA,MACrC,oBAAoB,cAAA,CAAe,kBAAA;AAAA,MACnC,iBAAiB,cAAA,CAAe,eAAA;AAAA,MAChC,iBAAiB,cAAA,CAAe,eAAA;AAAA,MAChC,GAAA,EAAK;AAAA,KACP;AAAA,IACA,GAAA,EAAK;AAAA,MACH,iBAAiB,KAAA,EAA0D;AACzE,QAAA,OAAO,SAAA,CAAU,iBAAiB,KAAK,CAAA;AAAA,MACzC,CAAA;AAAA,MACA,iBAAiB,KAAA,EAAyD;AACxE,QAAA,OAAO,SAAA,CAAU,iBAAiB,KAAK,CAAA;AAAA,MACzC,CAAA;AAAA,MACA,kBAAkB,KAAA,EAA0D;AAC1E,QAAA,OAAO,SAAA,CAAU,kBAAkB,KAAK,CAAA;AAAA,MAC1C,CAAA;AAAA,MACA,4BACE,KAAA,EACA;AACA,QAAA,OAAO,SAAA,CAAU,4BAA4B,KAAK,CAAA;AAAA,MACpD,CAAA;AAAA,MACA,yBACE,KAAA,EACA;AACA,QAAA,OAAO,SAAA,CAAU,yBAAyB,KAAK,CAAA;AAAA,MACjD;AAAA,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,MAAA,EAAQ;AAAA,QACN,WAAW,KAAA,EAAyB;AAClC,UAAA,OAAO,gBAAA,CAAiB,iBAAiB,KAAK,CAAA;AAAA,QAChD,CAAA;AAAA,QACA,UAAU,UAAA,EAAoB;AAC5B,UAAA,OAAO,gBAAA,CAAiB,gBAAgB,UAAU,CAAA;AAAA,QACpD;AAAA;AACF,KACF;AAAA,IACA,MAAA,EAAQ,mBAAmB,QAAQ,CAAA;AAAA,IACnC,UAAA,EAAY,mBAAA;AAAA,IACZ,GAAA,EAAK;AAAA,MACH,OAAA,EAAS,aAAA;AAAA,MACT,OAAA,EAAS,aAAA;AAAA,MACT,QAAA,EAAU,cAAA;AAAA,MACV,UAAA,EAAY,gBAAA;AAAA,MACZ,QAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,WAAA;AAAA,MACP,aAAA,EAAe,mBAAA;AAAA,MACf,oBAAA,EAAsB,0BAAA;AAAA,MACtB,oBAAA,EAAsB,0BAAA;AAAA,MACtB,SAAA,EAAW,eAAA;AAAA,MACX,QAAA,EAAU,cAAA;AAAA,MACV,KAAA,EAAO,WAAA;AAAA,MACP,UAAA,EAAY,gBAAA;AAAA,MACZ,KAAA,EAAO,WAAA;AAAA,MACP,QAAA,EAAU,cAAA;AAAA,MACV,MAAA,EAAQ,YAAA;AAAA,MACR,OAAA,EAAS,aAAA;AAAA,MACT,QAAA,EAAU,cAAA;AAAA,MACV,aAAA,EAAe,mBAAA;AAAA,MACf,cAAA,EAAgB,oBAAA;AAAA,MAChB,eAAA,EAAiB,qBAAA;AAAA,MACjB,YAAA,EAAc,kBAAA;AAAA,MACd,YAAA,EAAc,kBAAA;AAAA,MACd,KAAA,EAAO,WAAA;AAAA,MACP,OAAA,EAAS,aAAA;AAAA,MACT,QAAA,EAAU,cAAA;AAAA,MACV,GAAA,EAAK,SAAA;AAAA,MACL,IAAA,EAAM,UAAA;AAAA,MACN,SAAA,EAAW,eAAA;AAAA,MACX,OAAA,EAAS,aAAA;AAAA,MACT,MAAA,EAAQ,YAAA;AAAA,MACR,SAAA,EAAW,eAAA;AAAA,MACX,MAAA,EAAQ;AAAA;AACV,GACF;AACF;ACpwFO,SAASK,mBAAAA,CAAmB,MAAA,GAA6B,EAAC,EAAG;AAClE,EAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,MAAM,CAAA,CAAE,MAAA;AAE1C,EAAA,OAAO;AAAA,IACL,aAAa,MAAA,CAAO,MAAA;AAAA,IACpB,UAAU,MAAA,CAAO,GAAA;AAAA,IACjB,YAAY,MAAA,CAAO,IAAA;AAAA,IACnB,aAAa,MAAA,CAAO,MAAA;AAAA,IACpB,cAAc,MAAA,CAAO,OAAA;AAAA,IACrB,kBAAkB,MAAA,CAAO,QAAA;AAAA,IACzB,aAAa,MAAA,CAAO,MAAA;AAAA,IACpB,GAAA,EAAK;AAAA,GACP;AACF","file":"index.js","sourcesContent":["import type {\n SessionAuthMode,\n SessionDelegationHop,\n SessionPrincipalType,\n} from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type LucernSdkAuthFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"membership_missing\"\n | \"workspace_missing\"\n | \"policy_denied\";\n\nexport type PermitReadyAuthContext = {\n subject: string;\n tenant: string;\n workspace: string;\n resource?: string;\n action?: string;\n relation?: string;\n context?: JsonObject;\n};\n\nexport type LucernSdkAuthPolicyDecision = \"allow\" | \"deny\" | \"unknown\";\n\nexport type LucernSdkAuthContextInput = {\n clerkId?: string;\n principalId?: string;\n tenantId?: string;\n workspaceId?: string;\n principalType?: SessionPrincipalType;\n authMode?: SessionAuthMode;\n roles?: readonly string[];\n scopes?: readonly string[];\n delegationChain?: readonly SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n policyDecision?: LucernSdkAuthPolicyDecision;\n permit?: Partial<PermitReadyAuthContext>;\n};\n\nexport type CanonicalLucernSdkAuthContext = {\n clerkId?: string;\n principalId: string;\n tenantId: string;\n workspaceId: string;\n principalType: SessionPrincipalType;\n authMode: SessionAuthMode;\n roles: string[];\n scopes: string[];\n delegationChain: SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n permit: PermitReadyAuthContext;\n};\n\nexport class LucernSdkAuthContextError extends Error {\n readonly reason: LucernSdkAuthFailureReason;\n\n constructor(reason: LucernSdkAuthFailureReason, message: string) {\n super(message);\n this.name = \"LucernSdkAuthContextError\";\n this.reason = reason;\n }\n}\n\nfunction cleanString(value: string | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return values\n .map((value) => value.trim())\n .filter(\n (value, index, list) =>\n value.length > 0 && list.indexOf(value) === index\n );\n}\n\nfunction requireString(\n value: string | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernSdkAuthContextError(\n reason,\n `Canonical Lucern SDK auth context is missing ${label}.`\n );\n }\n return normalized;\n}\n\nfunction requirePrincipalType(\n principalType: SessionPrincipalType | undefined\n): SessionPrincipalType {\n if (!principalType) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing principalType.\"\n );\n }\n return principalType;\n}\n\nfunction requireAuthMode(authMode: SessionAuthMode | undefined): SessionAuthMode {\n if (!authMode) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing authMode.\"\n );\n }\n return authMode;\n}\n\nfunction ensurePermitMatch(args: {\n field: keyof PermitReadyAuthContext;\n expected: string;\n actual?: string;\n}) {\n const actual = cleanString(args.actual);\n if (actual && actual !== args.expected) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context has conflicting Permit ${args.field}.`\n );\n }\n}\n\nexport function normalizeCanonicalLucernAuthContext(\n input: LucernSdkAuthContextInput | undefined\n): CanonicalLucernSdkAuthContext {\n if (!input) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is required.\"\n );\n }\n\n if (input.policyDecision === \"deny\") {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n \"Canonical Lucern SDK auth context carries a denied policy decision.\"\n );\n }\n\n const principalId = requireString(\n input.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const tenantId = requireString(input.tenantId, \"tenant_missing\", \"tenantId\");\n const workspaceId = requireString(\n input.workspaceId,\n \"workspace_missing\",\n \"workspaceId\"\n );\n const roles = cleanStringList(input.roles);\n const scopes = cleanStringList(input.scopes);\n if (roles.length === 0 || scopes.length === 0) {\n throw new LucernSdkAuthContextError(\n \"membership_missing\",\n \"Canonical Lucern SDK auth context requires non-empty roles and scopes.\"\n );\n }\n\n const principalType = requirePrincipalType(input.principalType);\n const authMode = requireAuthMode(input.authMode);\n const subject = cleanString(input.permit?.subject) ?? principalId;\n const tenant = cleanString(input.permit?.tenant) ?? tenantId;\n const workspace = cleanString(input.permit?.workspace) ?? workspaceId;\n\n ensurePermitMatch({\n field: \"subject\",\n expected: principalId,\n actual: subject,\n });\n ensurePermitMatch({ field: \"tenant\", expected: tenantId, actual: tenant });\n ensurePermitMatch({\n field: \"workspace\",\n expected: workspaceId,\n actual: workspace,\n });\n\n const context = input.permit?.context\n ? ({ ...input.permit.context } as JsonObject)\n : undefined;\n\n return {\n clerkId: cleanString(input.clerkId),\n principalId,\n tenantId,\n workspaceId,\n principalType,\n authMode,\n roles,\n scopes,\n delegationChain: input.delegationChain ? [...input.delegationChain] : [],\n policyTraceId: cleanString(input.policyTraceId),\n correlationId: cleanString(input.correlationId),\n membershipId: cleanString(input.membershipId),\n permit: {\n subject,\n tenant,\n workspace,\n resource: cleanString(input.permit?.resource),\n action: cleanString(input.permit?.action),\n relation: cleanString(input.permit?.relation),\n context,\n },\n };\n}\n\nexport function createCanonicalAuthHeaders(\n authContext: CanonicalLucernSdkAuthContext\n): Record<string, string> {\n const headers: Record<string, string> = {\n \"x-lucern-principal-id\": authContext.principalId,\n \"x-lucern-principal-type\": authContext.principalType,\n \"x-lucern-tenant\": authContext.tenantId,\n \"x-lucern-tenant-id\": authContext.tenantId,\n \"x-lucern-workspace\": authContext.workspaceId,\n \"x-lucern-workspace-id\": authContext.workspaceId,\n \"x-lucern-auth-mode\": authContext.authMode,\n \"x-lucern-roles\": authContext.roles.join(\",\"),\n \"x-lucern-scopes\": authContext.scopes.join(\",\"),\n \"x-lucern-permit-context\": JSON.stringify(authContext.permit),\n };\n\n if (authContext.clerkId) {\n headers[\"x-lucern-clerk-id\"] = authContext.clerkId;\n headers[\"x-lucern-user-id\"] = authContext.clerkId;\n }\n if (authContext.delegationChain.length > 0) {\n headers[\"x-lucern-delegation-chain\"] = JSON.stringify(\n authContext.delegationChain\n );\n }\n if (authContext.policyTraceId) {\n headers[\"x-lucern-policy-trace-id\"] = authContext.policyTraceId;\n }\n if (authContext.correlationId) {\n headers[\"x-correlation-id\"] = authContext.correlationId;\n headers[\"x-lucern-correlation-id\"] = authContext.correlationId;\n }\n if (authContext.membershipId) {\n headers[\"x-lucern-membership-id\"] = authContext.membershipId;\n }\n\n return headers;\n}\n","import {\n createCanonicalAuthHeaders,\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n} from \"./authContext\";\nimport type { JsonObject, JsonValue } from \"./types\";\n\n/** Tenant and workspace identifiers used to scope gateway requests. */\nexport type GatewayScope = {\n tenantId?: string;\n workspaceId?: string;\n};\n\n/** Successful response envelope from the platform gateway with correlation metadata. */\nexport type PlatformGatewaySuccess<T> = {\n success: true;\n data: T;\n correlationId: string;\n policyTraceId: string | null;\n idempotentReplay: boolean;\n};\n\n/** Failed response envelope with structured error codes and optional invariant references. */\nexport type PlatformGatewayFailure = {\n success: false;\n /**\n * Error string is the canonical envelope field.\n * Object form is legacy-only compatibility for older gateway responses.\n */\n error:\n | string\n | {\n code: string;\n message: string;\n details?: JsonValue;\n };\n code?: string;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n legacyError?: {\n code: string;\n message: string;\n details?: JsonValue;\n };\n correlationId: string;\n policyTraceId: string | null;\n};\n\n/** Discriminated union of success and failure gateway responses. */\nexport type PlatformGatewayEnvelope<T> =\n | PlatformGatewaySuccess<T>\n | PlatformGatewayFailure;\n\n/**\n * Structured error thrown when a platform API request fails.\n *\n * Includes HTTP status, machine-readable error code, optional invariant\n * reference, and actionable suggestions for common failure modes.\n */\nexport class LucernApiError extends Error {\n public readonly code: string;\n public readonly status: number;\n public readonly invariant?: string | null;\n public readonly suggestion?: string | null;\n public readonly details?: JsonValue;\n public readonly requestId?: string;\n public readonly correlationId?: string;\n public readonly policyTraceId?: string | null;\n\n constructor(args: {\n code: string;\n message: string;\n status: number;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n requestId?: string;\n correlationId?: string;\n policyTraceId?: string | null;\n }) {\n super(args.message);\n this.name = \"LucernApiError\";\n this.code = args.code;\n this.status = args.status;\n this.invariant = args.invariant;\n this.suggestion = args.suggestion;\n this.details = args.details;\n this.requestId = args.requestId;\n this.correlationId = args.correlationId;\n this.policyTraceId = args.policyTraceId;\n }\n}\n\n/** Supported HTTP methods for gateway requests. */\nexport type GatewayHttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\ntype FetchLike = (\n input: RequestInfo | URL,\n init?: RequestInit\n) => Promise<Response>;\n\n/** Context passed to the `onRequest` hook before each gateway request attempt. */\nexport type GatewayRequestHookContext = {\n requestId: string;\n attempt: number;\n maxRetries: number;\n method: GatewayHttpMethod;\n path: string;\n url: string;\n headers: Headers;\n body?: string;\n timeoutMs: number;\n};\n\n/** Context passed to the `onResponse` hook after each gateway request attempt (including retries and failures). */\nexport type GatewayResponseHookContext = GatewayRequestHookContext & {\n durationMs: number;\n status?: number;\n response?: Response;\n error?: unknown;\n correlationId?: string;\n policyTraceId?: string | null;\n idempotentReplay?: boolean;\n retryAfterMs?: number | null;\n willRetry: boolean;\n};\n\n/**\n * Low-level transport configuration for the platform gateway client.\n *\n * Most developers should use {@link createLucernClient} instead, which wraps\n * this config with higher-level conveniences like `apiKey` and `environment`.\n */\nexport type GatewayClientConfig = {\n baseUrl?: string;\n fetchImpl?: FetchLike;\n getAuthHeaders?:\n | (() => Promise<Record<string, string>>)\n | (() => Record<string, string>);\n /**\n * Canonical Master Control identity tuple applied to every SDK request.\n * Use this for tenant/workspace-scoped graph and identity operations.\n */\n authContext?:\n | LucernSdkAuthContextInput\n | (() => Promise<LucernSdkAuthContextInput | undefined>)\n | (() => LucernSdkAuthContextInput | undefined);\n /** When true, requests fail before fetch if `authContext` is absent. */\n requireCanonicalAuthContext?: boolean;\n /** Max retries for transient errors (5xx, network). Defaults to 2. */\n maxRetries?: number;\n /** Request timeout in ms. Defaults to 15000. */\n timeoutMs?: number;\n /** Optional timeout overrides by HTTP method. */\n timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;\n /** Optional request ID factory used for correlation headers. */\n requestIdFactory?: () => string;\n /** Invoked before each request attempt, including retries. */\n onRequest?:\n | ((context: GatewayRequestHookContext) => void)\n | ((context: GatewayRequestHookContext) => Promise<void>);\n /** Invoked after each request attempt, including retries and failures. */\n onResponse?:\n | ((context: GatewayResponseHookContext) => void)\n | ((context: GatewayResponseHookContext) => Promise<void>);\n};\n\n/**\n * Serialize a gateway query object into a URL query string.\n */\nexport function toQueryString(\n scope: GatewayScope & Record<string, string | number | boolean | undefined>\n): string {\n const params = new URLSearchParams();\n if (scope.tenantId) {\n params.set(\"tenantId\", scope.tenantId);\n }\n if (scope.workspaceId) {\n params.set(\"workspaceId\", scope.workspaceId);\n }\n for (const [key, value] of Object.entries(scope)) {\n if (key === \"tenantId\" || key === \"workspaceId\") {\n continue;\n }\n if (value === undefined) {\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized.length > 0 ? `?${serialized}` : \"\";\n}\n\nfunction fillRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n if (typeof globalThis.crypto?.getRandomValues === \"function\") {\n globalThis.crypto.getRandomValues(bytes);\n return bytes;\n }\n\n for (let index = 0; index < length; index += 1) {\n bytes[index] = Math.floor(Math.random() * 256);\n }\n return bytes;\n}\n\nfunction generatePortableRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n\n const bytes = fillRandomBytes(16);\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const hex = Array.from(bytes, (value) => value.toString(16).padStart(2, \"0\"));\n return `${hex.slice(0, 4).join(\"\")}-${hex.slice(4, 6).join(\"\")}-${hex.slice(\n 6,\n 8\n ).join(\"\")}-${hex.slice(8, 10).join(\"\")}-${hex.slice(10).join(\"\")}`;\n}\n\n/**\n * Generate a random idempotency key for retry-safe writes.\n */\nexport function randomIdempotencyKey(): string {\n return generatePortableRequestId();\n}\n\nfunction isRetryableStatus(status: number): boolean {\n return status >= 500 || status === 408 || status === 429;\n}\n\nfunction fallbackErrorCode(status: number): string {\n if (status === 401) {\n return \"AUTHENTICATION_REQUIRED\";\n }\n if (status === 403) {\n return \"FORBIDDEN\";\n }\n if (status === 404) {\n return \"NOT_FOUND\";\n }\n if (status === 408) {\n return \"UPSTREAM_ERROR\";\n }\n if (status === 409) {\n return \"CONFLICT\";\n }\n if (status === 429) {\n return \"RATE_LIMIT_EXCEEDED\";\n }\n if (status >= 500) {\n return \"UPSTREAM_ERROR\";\n }\n return \"INTERNAL_ERROR\";\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction parseRetryAfterMs(value: string | null): number | null {\n if (!value) {\n return null;\n }\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const numeric = Number(trimmed);\n if (Number.isFinite(numeric)) {\n return Math.max(0, Math.round(numeric * 1000));\n }\n const parsedDate = Date.parse(trimmed);\n if (Number.isFinite(parsedDate)) {\n return Math.max(0, parsedDate - Date.now());\n }\n return null;\n}\n\nfunction computeRetryDelayMs(args: {\n attempt: number;\n status?: number;\n retryAfterMs?: number | null;\n}): number {\n const baseDelay =\n args.status === 429\n ? Math.max(\n args.retryAfterMs ?? 0,\n Math.min(1000 * 2 ** args.attempt, 10_000)\n )\n : Math.min(1000 * 2 ** args.attempt, 4000);\n\n if (args.status !== 429) {\n return baseDelay;\n }\n\n const jitterWindow = Math.max(250, Math.round(baseDelay * 0.25));\n return baseDelay + Math.round(Math.random() * jitterWindow);\n}\n\nfunction timeoutError(timeoutMs: number): Error {\n const error = new Error(`Request timed out after ${timeoutMs}ms`);\n error.name = \"AbortError\";\n return error;\n}\n\nfunction readPolicySummaryFromDetails(details?: JsonValue): string | null {\n if (!details || typeof details !== \"object\" || Array.isArray(details)) {\n return null;\n }\n\n const directSummary = (details as { summary?: JsonValue }).summary;\n if (typeof directSummary === \"string\" && directSummary.trim().length > 0) {\n return directSummary.trim();\n }\n\n const policy = (details as { policy?: JsonValue }).policy;\n if (!policy || typeof policy !== \"object\" || Array.isArray(policy)) {\n return null;\n }\n\n const explanation = (policy as { explanation?: JsonValue }).explanation;\n if (!explanation || typeof explanation !== \"object\" || Array.isArray(explanation)) {\n return null;\n }\n\n const nestedSummary = (explanation as { summary?: JsonValue }).summary;\n if (typeof nestedSummary === \"string\" && nestedSummary.trim().length > 0) {\n return nestedSummary.trim();\n }\n\n return null;\n}\n\nasync function resolveConfiguredAuthContext(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nfunction mergeHeaderRecord(\n base: Record<string, string>,\n addition: Record<string, string>\n): Record<string, string> {\n const headers = new Headers(base);\n for (const [key, value] of Object.entries(addition)) {\n const existing = headers.get(key);\n if (existing !== null && existing !== value) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context conflicts with existing ${key} header.`\n );\n }\n headers.set(key, value);\n }\n return Object.fromEntries(headers.entries());\n}\n\n/**\n * Create the transport client used by all SDK modules.\n */\nexport function createGatewayRequestClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n const maxRetries = config.maxRetries ?? 2;\n const requestIdFactory = config.requestIdFactory ?? (() => generatePortableRequestId());\n\n async function resolveAuthHeaders(): Promise<Record<string, string>> {\n const base = config.getAuthHeaders ? await config.getAuthHeaders() : {};\n const authContextInput = await resolveConfiguredAuthContext(\n config.authContext\n );\n if (!authContextInput && !config.requireCanonicalAuthContext) {\n return base;\n }\n const authContext = normalizeCanonicalLucernAuthContext(authContextInput);\n return mergeHeaderRecord(base, createCanonicalAuthHeaders(authContext));\n }\n\n async function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs: number\n ): Promise<Response> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n return await fetchImpl(url, { ...init, signal: controller.signal });\n } catch (error) {\n if (controller.signal.aborted) {\n throw timeoutError(timeoutMs);\n }\n throw error;\n } finally {\n clearTimeout(timer);\n }\n }\n\n async function parsePayload<T>(\n response: Response\n ): Promise<PlatformGatewayEnvelope<T> | null> {\n const text = await response.text();\n if (!text) {\n return null;\n }\n try {\n return JSON.parse(text) as PlatformGatewayEnvelope<T>;\n } catch {\n return null;\n }\n }\n\n function resolveTimeoutMs(\n method: GatewayHttpMethod,\n requestTimeoutMs?: number\n ): number {\n if (typeof requestTimeoutMs === \"number\") {\n return requestTimeoutMs;\n }\n const methodTimeoutMs = config.timeoutMsByMethod?.[method];\n if (typeof methodTimeoutMs === \"number\") {\n return methodTimeoutMs;\n }\n return config.timeoutMs ?? 15_000;\n }\n\n function buildApiError(args: {\n requestId: string;\n response: Response;\n failure?: PlatformGatewayFailure | null;\n }): LucernApiError {\n const failure = args.failure;\n const legacyError =\n failure && typeof failure.error === \"object\" && failure.error !== null\n ? failure.error\n : failure?.legacyError;\n const correlationId =\n failure?.correlationId ??\n args.response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n args.requestId;\n const policyTraceId =\n failure?.policyTraceId ??\n args.response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null;\n const details = failure?.details ?? legacyError?.details;\n const policySummary = readPolicySummaryFromDetails(details);\n\n return new LucernApiError({\n code: failure?.code ?? legacyError?.code ?? fallbackErrorCode(args.response.status),\n message:\n policySummary ??\n (typeof failure?.error === \"string\"\n ? failure.error\n : legacyError?.message ??\n (args.response.ok\n ? \"Platform API returned an invalid success payload.\"\n : \"Platform API request failed.\")),\n status: args.response.status,\n invariant: failure?.invariant,\n suggestion: failure?.suggestion,\n details,\n requestId: args.requestId,\n correlationId,\n policyTraceId,\n });\n }\n\n async function request<T>(args: {\n path: string;\n method?: GatewayHttpMethod;\n body?: JsonObject;\n idempotencyKey?: string;\n requestId?: string;\n timeoutMs?: number;\n }): Promise<PlatformGatewaySuccess<T>> {\n const authHeaders = await resolveAuthHeaders();\n const method = args.method ?? \"GET\";\n const timeoutMs = resolveTimeoutMs(method, args.timeoutMs);\n const headers = new Headers({\n \"content-type\": \"application/json\",\n ...authHeaders,\n });\n if (args.idempotencyKey) {\n headers.set(\"idempotency-key\", args.idempotencyKey);\n }\n const requestId =\n headers.get(\"x-correlation-id\")?.trim() ||\n headers.get(\"x-request-id\")?.trim() ||\n args.requestId ||\n requestIdFactory();\n if (!headers.has(\"x-correlation-id\") && !headers.has(\"x-request-id\")) {\n headers.set(\"x-correlation-id\", requestId);\n }\n\n const url = `${baseUrl}${args.path}`;\n const serializedBody = args.body ? JSON.stringify(args.body) : undefined;\n const init: RequestInit = {\n method,\n headers,\n body: serializedBody,\n };\n\n let lastError: unknown;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const hookRequestContext: GatewayRequestHookContext = {\n requestId,\n attempt,\n maxRetries,\n method,\n path: args.path,\n url,\n headers: new Headers(headers),\n body: serializedBody,\n timeoutMs,\n };\n await config.onRequest?.(hookRequestContext);\n const startedAt = Date.now();\n try {\n const response = await fetchWithTimeout(url, init, timeoutMs);\n const responseClone = response.clone();\n const payload = await parsePayload<T>(response);\n const retryAfterMs = parseRetryAfterMs(\n response.headers.get(\"Retry-After\")\n );\n\n if (!response.ok || !payload?.success) {\n const failure =\n payload && !payload.success ? (payload as PlatformGatewayFailure) : null;\n const apiError = buildApiError({\n requestId,\n response,\n failure,\n });\n const willRetry = attempt < maxRetries && isRetryableStatus(response.status);\n\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n error: apiError,\n correlationId: apiError.correlationId ?? requestId,\n policyTraceId: apiError.policyTraceId ?? null,\n retryAfterMs,\n willRetry,\n });\n\n if (willRetry) {\n lastError = apiError;\n await delay(\n computeRetryDelayMs({\n attempt,\n status: response.status,\n retryAfterMs,\n })\n );\n continue;\n }\n\n throw apiError;\n }\n\n const successPayload = payload as PlatformGatewaySuccess<T>;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n correlationId:\n successPayload.correlationId ??\n response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n requestId,\n policyTraceId:\n successPayload.policyTraceId ??\n response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null,\n idempotentReplay: successPayload.idempotentReplay,\n retryAfterMs,\n willRetry: false,\n });\n\n return successPayload;\n } catch (fetchError) {\n if (fetchError instanceof LucernApiError) {\n throw fetchError;\n }\n const willRetry = attempt < maxRetries;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n error: fetchError,\n correlationId: requestId,\n policyTraceId: null,\n willRetry,\n });\n lastError = fetchError;\n if (willRetry) {\n await delay(computeRetryDelayMs({ attempt }));\n }\n }\n }\n\n throw lastError instanceof Error\n ? lastError\n : new Error(\"Platform API request failed after retries.\");\n }\n\n return {\n request,\n };\n}\n","import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport type { JsonObject, ListResult } from \"./types\";\n\ntype TopicScopedValue = {\n topicId?: string;\n};\n\ntype TextScopedValue = {\n text?: string;\n canonicalText?: string;\n};\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): AnyRecord {\n return value && typeof value === \"object\" ? (value as AnyRecord) : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeVerificationStatus(value: unknown): string | undefined {\n const status = cleanString(value);\n if (!status) {\n return undefined;\n }\n if (status === \"verified\") {\n return \"human_verified\";\n }\n if (status === \"rejected\") {\n return \"contradicted\";\n }\n return status;\n}\n\nfunction cloneWith<T extends AnyRecord>(value: T, patch: AnyRecord): T {\n return { ...value, ...patch } as T;\n}\n\n/**\n * Resolve the canonical topic identifier.\n */\nexport function resolveTopicId(value: TopicScopedValue): string | undefined {\n return cleanString(value.topicId);\n}\n\n/**\n * Resolve the canonical text field from text-first or legacy canonicalText-first inputs.\n */\nexport function resolveText(value: TextScopedValue): string | undefined {\n return cleanString(value.text) ?? cleanString(value.canonicalText);\n}\n\n/**\n * Attach the topicId to a record.\n */\nexport function withTopicAlias<T extends AnyRecord>(value: T): T {\n const topicId = cleanString(value.topicId) ?? undefined;\n if (!topicId) {\n return value;\n }\n return cloneWith(value, { topicId });\n}\n\n/**\n * Attach the text/canonicalText alias pair to a record.\n */\nexport function withTextAlias<T extends AnyRecord>(value: T): T {\n const text =\n cleanString(value.text) ?? cleanString(value.canonicalText) ?? undefined;\n if (!text) {\n return value;\n }\n return cloneWith(value, { text, canonicalText: text });\n}\n\n/**\n * Attach topic and text aliases to SDK node-like records.\n */\nexport function withSdkAliases<T extends AnyRecord>(value: T): T {\n return withTopicAlias(withTextAlias(value));\n}\n\n/**\n * Normalize a belief/question/evidence write payload to the canonical gateway shape.\n */\nexport function normalizeNodeWriteInput<T extends JsonObject>(value: T): T {\n const topicId = resolveTopicId(value);\n const text = resolveText(value);\n const verificationStatus = normalizeVerificationStatus(value.verificationStatus);\n const next = { ...value } as JsonObject;\n\n if (topicId) {\n next.topicId = topicId;\n }\n if (text) {\n next.text = text;\n next.canonicalText = text;\n }\n if (verificationStatus) {\n next.verificationStatus = verificationStatus;\n }\n\n return next as T;\n}\n\nexport function normalizeNodeVerificationStatus(value: unknown) {\n return normalizeVerificationStatus(value);\n}\n\n/**\n * Build a topic-aware query object.\n */\nexport function normalizeTopicQuery<T extends JsonObject>(value: T): T {\n const topicId = cleanString(value.topicId);\n if (!topicId) {\n return value;\n }\n return { ...value, topicId } as T;\n}\n\n/**\n * Extract list items from array or list-envelope payloads.\n */\nexport function asListItems<T>(data: unknown, legacyKey?: string): T[] {\n if (Array.isArray(data)) {\n return data as T[];\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items as T[];\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey] as T[];\n }\n\n return [];\n}\n\n/**\n * Standardize list data to { items, total } while retaining an optional legacy array key.\n */\nexport function createListResult<T, LegacyKey extends string>(\n items: T[],\n legacyKey?: LegacyKey\n): ListResult<T, LegacyKey> {\n const result = {\n items,\n total: items.length,\n } as ListResult<T, LegacyKey>;\n\n if (legacyKey) {\n (result as Record<string, unknown>)[legacyKey] = items;\n }\n\n return result;\n}\n\n/**\n * Map a gateway success envelope's data while preserving the transport metadata.\n */\nexport function mapGatewayData<T, U>(\n response: PlatformGatewaySuccess<T>,\n mapper: (data: T) => U\n): PlatformGatewaySuccess<U> {\n return {\n ...response,\n data: mapper(response.data),\n };\n}\n\n/**\n * Apply SDK aliases across all items in a list-like payload.\n */\nexport function mapAliasedList<\n TItem extends AnyRecord,\n LegacyKey extends string,\n>(\n data: unknown,\n legacyKey?: LegacyKey\n): ListResult<TItem, LegacyKey> {\n const items = asListItems<TItem>(data, legacyKey).map((item) =>\n withSdkAliases(item)\n );\n return createListResult(items, legacyKey);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { ControlObjectOwnershipContract } from \"./controlObjectOwnership\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the admin client. */\nexport type AdminClientConfig = GatewayClientConfig;\n\nexport type TenantApiKeyRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n label?: string;\n keyPrefix?: string;\n hashedKey?: string;\n scopes?: string[];\n status?: string;\n expiresAt?: number;\n lastUsedAt?: number;\n revokedAt?: number;\n revokedBy?: string;\n createdBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantVaultSecretRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n name?: string;\n description?: string;\n lastRotated?: number;\n createdBy?: string;\n updatedBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantAuthPolicyMode = \"open\" | \"invite_only\" | \"sso_required\";\nexport type TenantTopicVisibility = \"private\" | \"tenant\" | \"public\";\nexport type TenantFeatureFlags = Record<string, boolean>;\nexport type TenantModelSlotOverrides = Record<string, string>;\n\nexport type TenantConfigRecord = {\n tenantId: string;\n authPolicyMode: TenantAuthPolicyMode;\n defaultSessionTTL: number;\n defaultTopicVisibility: TenantTopicVisibility;\n featureFlags: TenantFeatureFlags;\n maxWorkspaceCount: number;\n defaultModelSlotOverrides: TenantModelSlotOverrides;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantModelRoutingSlotRecord = {\n slot: string;\n category?: string;\n description?: string;\n modelKey: string;\n promptName?: string;\n temperature?: number;\n maxTokens?: number;\n enabled?: boolean;\n};\n\nexport type TenantModelRoutingModelRecord = {\n key: string;\n name?: string;\n modelId?: string;\n provider?: string;\n enabled?: boolean;\n recommended?: boolean;\n notes?: string;\n};\n\nexport type TenantModelRoutingBindingRecord = {\n slot: string;\n providerId: string;\n secretRef: string;\n label?: string;\n keyHint?: string;\n};\n\nexport type TenantModelRouteOverrideStatus =\n | \"inherit\"\n | \"active\"\n | \"blocked_missing_model\"\n | \"blocked_missing_binding\";\n\nexport type TenantModelRouteBindingState = \"ready\" | \"missing\";\nexport type TenantModelRouteSource = \"platform_default\" | \"tenant_override\";\n\nexport type TenantModelRouteRow = {\n slot: string;\n category: string;\n description?: string;\n promptName?: string;\n slotEnabled: boolean;\n platformModelKey: string;\n platformModelName?: string;\n platformProviderId?: string;\n overrideModelKey?: string;\n overrideModelName?: string;\n overrideProviderId?: string;\n effectiveModelKey: string;\n effectiveModelName?: string;\n effectiveProviderId?: string;\n effectiveSource: TenantModelRouteSource;\n overrideStatus: TenantModelRouteOverrideStatus;\n bindingState: TenantModelRouteBindingState;\n bindingLabel?: string;\n bindingKeyHint?: string;\n bindingSecretRef?: string;\n};\n\nexport type TenantModelRoutingSummary = {\n totalSlots: number;\n promptBoundSlots: number;\n activeOverrides: number;\n blockedOverrides: number;\n readyBindings: number;\n};\n\nexport type TenantModelRoutingSnapshot = {\n tenantId: string;\n defaultModelSlotOverrides: Record<string, string>;\n slots: TenantModelRoutingSlotRecord[];\n models: TenantModelRoutingModelRecord[];\n bindings: TenantModelRoutingBindingRecord[];\n rows: TenantModelRouteRow[];\n summary: TenantModelRoutingSummary;\n notes: string[];\n};\n\nfunction asTenantApiKeyRecord(data: unknown): TenantApiKeyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantApiKeyRecord;\n}\n\nfunction asTenantApiKeyArray(data: unknown): TenantApiKeyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantApiKeyRecord)\n .filter((row): row is TenantApiKeyRecord => Boolean(row));\n}\n\nfunction asTenantVaultSecretRecord(\n data: unknown\n): TenantVaultSecretRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantVaultSecretRecord;\n}\n\nfunction asTenantVaultSecretArray(data: unknown): TenantVaultSecretRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantVaultSecretRecord)\n .filter((row): row is TenantVaultSecretRecord => Boolean(row));\n}\n\n/**\n * Create the admin client for tenant, workspace, and membership administration.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage tenants, workspaces, and memberships.\n */\nexport function createAdminClient(config: AdminClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List tenants visible to the current principal.\n */\n async listTenants(\n query: {\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenants${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"tenants\"\n )\n )\n );\n },\n\n /**\n * Create a tenant.\n */\n async createTenant(\n input: {\n key: string;\n slug?: string;\n name: string;\n tier?: \"free\" | \"developer\" | \"team\" | \"enterprise\";\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n ownerClerkId?: string;\n ownerEmail?: string;\n lucernDeploymentUrl?: string;\n appDeploymentUrl?: string;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get the control-object ownership contract.\n */\n async getControlObjectOwnership() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * @deprecated Use getControlObjectOwnership.\n */\n async getControlObjectOwnershipContract() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * List workspaces for the current admin scope.\n */\n async listWorkspaces(\n query: GatewayScope & {\n status?: \"active\" | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/workspaces${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"workspaces\"\n )\n )\n );\n },\n\n /**\n * Create a workspace.\n */\n async createWorkspace(\n input: GatewayScope & {\n workspaceId?: string;\n key?: string;\n slug?: string;\n name?: string;\n status?: \"active\" | \"archived\";\n defaultProjectVisibility?:\n | \"private\"\n | \"team\"\n | \"firm\"\n | \"external\"\n | \"public\";\n restore?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/workspaces\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List memberships for the current admin scope.\n */\n async listMemberships(\n query: GatewayScope & {\n principalId?: string;\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n role?:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/memberships${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"memberships\"\n )\n )\n );\n },\n\n /**\n * Create a membership.\n */\n async createMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/memberships\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a membership.\n */\n async updateMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createMembership or updateMembership.\n */\n async upsertMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * List tenant API keys in the current admin scope.\n */\n async listTenantApiKeys(\n scope: GatewayScope & {\n status?: \"active\" | \"revoked\" | \"expired\";\n }\n ) {\n const response = await gateway.request<{ keys?: unknown[] }>({\n path: `/api/platform/v1/tenant-api-keys${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n keys: asTenantApiKeyArray(response.data?.keys),\n },\n };\n },\n\n /**\n * Create a tenant API key.\n */\n async createTenantApiKey(\n input: GatewayScope & {\n label?: string;\n scopes: string[];\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n key?: unknown;\n plaintextKey?: string;\n }>({\n path: \"/api/platform/v1/tenant-api-keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n key: asTenantApiKeyRecord(response.data?.key),\n plaintextKey:\n typeof response.data?.plaintextKey === \"string\"\n ? response.data.plaintextKey\n : undefined,\n },\n };\n },\n\n /**\n * Revoke a tenant API key.\n */\n async revokeTenantApiKey(\n keyId: string,\n input: GatewayScope & { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-api-keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant vault secrets.\n */\n async listTenantVaultSecrets(scope: GatewayScope) {\n const response = await gateway.request<{ secrets?: unknown[] }>({\n path: `/api/platform/v1/tenant-vault-secrets${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n secrets: asTenantVaultSecretArray(response.data?.secrets),\n },\n };\n },\n\n /**\n * Create a tenant vault secret.\n */\n async createTenantVaultSecret(\n input: GatewayScope & {\n name: string;\n description?: string;\n value: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: \"/api/platform/v1/tenant-vault-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Update a tenant vault secret.\n */\n async updateTenantVaultSecret(\n secretId: string,\n input: GatewayScope & {\n name: string;\n description?: string;\n value?: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(secretId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Delete a tenant vault secret.\n */\n async deleteTenantVaultSecret(\n secretId: string,\n scope: GatewayScope,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(\n secretId\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant provider secrets.\n */\n async listTenantSecrets(\n scope: GatewayScope & {\n providerId?: string;\n status?: \"active\" | \"revoked\";\n }\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert a tenant provider secret.\n */\n async upsertTenantSecret(\n input: GatewayScope & {\n providerId: string;\n apiKey: string;\n label?: string;\n modelSlotIds?: string[];\n passThroughOnly?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenant-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Revoke a tenant provider secret.\n */\n async revokeTenantSecret(\n secretRef: string,\n input: GatewayScope & { reason?: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets/${encodeURIComponent(secretRef)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get tenant configuration.\n */\n async getTenantConfig(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantConfigRecord>({\n path: `/api/platform/v1/tenant-config${toQueryString(scope)}`,\n });\n },\n\n /**\n * Get tenant model routing.\n */\n async getTenantModelRouting(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantModelRoutingSnapshot>({\n path: `/api/platform/v1/tenant-config/model-routing${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert tenant configuration.\n */\n async upsertTenantConfig(\n input: GatewayScope & Omit<TenantConfigRecord, \"updatedAt\" | \"updatedBy\">,\n idempotencyKey?: string\n ) {\n return gateway.request<TenantConfigRecord>({\n path: \"/api/platform/v1/tenant-config\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List groups.\n */\n async listGroups(scope: GatewayScope & { limit?: number } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a group.\n */\n async createGroup(\n input: GatewayScope & {\n name: string;\n groupKey?: string;\n groupType?: string;\n description?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a group.\n */\n async updateGroup(\n groupId: string,\n input: GatewayScope & {\n name?: string;\n description?: string;\n workspaceId?: string;\n clearWorkspaceId?: boolean;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a group.\n */\n async deleteGroup(\n groupId: string,\n input: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List group members.\n */\n async listGroupMembers(query: GatewayScope & { groupId: string }) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(query)}`,\n });\n },\n\n /**\n * Add a group member.\n */\n async addGroupMember(\n input: GatewayScope & {\n groupId: string;\n principalId: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/members\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a group member.\n */\n async removeGroupMember(\n input: GatewayScope & { groupId: string; principalId: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List pack-to-group assignments.\n */\n async listPackGroupAssignments(\n query: GatewayScope & {\n groupId?: string;\n status?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(query)}`,\n });\n },\n\n /**\n * Assign a pack to a group.\n */\n async assignPackToGroup(\n input: GatewayScope & {\n groupId: string;\n packKey: string;\n packVersion?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a pack from a group.\n */\n async removePackFromGroup(\n input: GatewayScope & { groupId: string; packKey: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\n\n/** Configuration for the answers client. */\nexport type AnswersClientConfig = GatewayClientConfig;\n\n/**\n * Create the answers client for retrieving question answers.\n * @param config - Gateway transport configuration.\n * @returns An object with a `get` method to fetch the answer for a question.\n */\nexport function createAnswersClient(config: AnswersClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Get the current answer for a question.\n * @param questionId - The question node identifier.\n * @returns The answer record for the given question.\n */\n async get(questionId: string) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/questions/${encodeURIComponent(questionId)}/answer`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the audiences client. */\nexport type AudiencesClientConfig = GatewayClientConfig;\n\n/** Input for creating or updating an audience registry entry. */\nexport type AudienceRegistryInput = GatewayScope & {\n audienceKey: string;\n audienceLabel: string;\n audienceClass: \"internal\" | \"restricted_external\" | \"public\";\n status?: \"active\" | \"disabled\" | \"archived\";\n description?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating an audience access grant. */\nexport type AudienceGrantInput = GatewayScope & {\n audienceKey: string;\n audienceClass?: \"internal\" | \"restricted_external\" | \"public\";\n principalId?: string;\n groupId?: string;\n expiresAt?: number;\n metadata?: JsonObject;\n};\n\n/** Input for revoking an audience grant by its identifier. */\nexport type AudienceGrantRevokeInput = GatewayScope & {\n grantId: string;\n};\n\n/**\n * Create the audiences client for registry entries and grants.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage audience registry entries and grants.\n */\nexport function createAudiencesClient(config: AudiencesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audience registry entries.\n */\n async listRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/registry${toQueryString({\n ...query,\n effective:\n typeof query.effective === \"boolean\"\n ? query.effective\n ? \"true\"\n : \"false\"\n : undefined,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"registryEntries\"\n )\n )\n );\n },\n\n /**\n * @deprecated Use listRegistry.\n */\n async getRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return this.listRegistry(query);\n },\n\n /**\n * Create an audience registry entry.\n */\n async createRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/registry\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an audience registry entry.\n */\n async updateRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createRegistryEntry or updateRegistryEntry.\n */\n async upsertRegistry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * List audience grants.\n */\n async listGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/grants${toQueryString({\n ...query,\n audienceKey: query.audienceKey,\n principalId: query.principalId,\n groupId: query.groupId,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"grants\")\n )\n );\n },\n\n /**\n * @deprecated Use listGrants.\n */\n async getGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return this.listGrants(query);\n },\n\n /**\n * Create an audience grant.\n */\n async createGrant(input: AudienceGrantInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createGrant.\n */\n async grant(input: AudienceGrantInput, idempotencyKey?: string) {\n return this.createGrant(input, idempotencyKey);\n },\n\n /**\n * Delete an audience grant by revoking it.\n */\n async deleteGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteGrant.\n */\n async revokeGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return this.deleteGrant(input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the audit client. */\nexport type AuditClientConfig = GatewayClientConfig;\n\n/**\n * Create the audit client for transport-level audit event reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list audit events.\n */\nexport function createAuditClient(config: AuditClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audit events for the current scope.\n */\n async listEvents(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audit/events${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"events\")\n )\n );\n },\n };\n}\n","import type { GatewayClientConfig } from \"./coreClient\";\n\nexport type DeviceCodeInput = {\n clientId?: string;\n scope?: string;\n};\n\nexport type DeviceCodeResponse = {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n};\n\nexport type DeviceTokenResponse = {\n access_token: string;\n token_type: \"Bearer\";\n expires_in: number;\n scope: string;\n tenant_id: string;\n workspace_id?: string;\n principal_id: string;\n user?: {\n id: string;\n principalId: string;\n };\n};\n\nexport type DeviceTokenErrorCode =\n | \"authorization_pending\"\n | \"slow_down\"\n | \"access_denied\"\n | \"expired_token\"\n | \"invalid_grant\"\n | \"invalid_request\";\n\nexport class DeviceAuthorizationError extends Error {\n readonly error: DeviceTokenErrorCode;\n readonly interval?: number;\n\n constructor(args: {\n error: DeviceTokenErrorCode;\n description?: string;\n interval?: number;\n }) {\n super(args.description ?? args.error);\n this.name = \"DeviceAuthorizationError\";\n this.error = args.error;\n this.interval = args.interval;\n }\n}\n\nfunction authBaseUrl(config: GatewayClientConfig): string {\n return config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown>> {\n const payload = (await response.json().catch(() => ({}))) as unknown;\n return payload && typeof payload === \"object\" && !Array.isArray(payload)\n ? (payload as Record<string, unknown>)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}\n\nfunction assertDeviceCodeResponse(payload: Record<string, unknown>): DeviceCodeResponse {\n const deviceCode = readString(payload.device_code);\n const userCode = readString(payload.user_code);\n const verificationUri = readString(payload.verification_uri);\n const verificationUriComplete = readString(payload.verification_uri_complete);\n const expiresIn = payload.expires_in;\n const interval = payload.interval;\n if (\n !deviceCode ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete ||\n typeof expiresIn !== \"number\" ||\n typeof interval !== \"number\"\n ) {\n throw new Error(\"Gateway returned an invalid device-code response.\");\n }\n return {\n device_code: deviceCode,\n user_code: userCode,\n verification_uri: verificationUri,\n verification_uri_complete: verificationUriComplete,\n expires_in: expiresIn,\n interval,\n };\n}\n\nfunction assertDeviceTokenResponse(\n payload: Record<string, unknown>\n): DeviceTokenResponse {\n const accessToken = readString(payload.access_token);\n const tokenType = readString(payload.token_type);\n const scope = readString(payload.scope);\n const tenantId = readString(payload.tenant_id);\n const principalId = readString(payload.principal_id);\n if (\n !accessToken ||\n tokenType !== \"Bearer\" ||\n typeof payload.expires_in !== \"number\" ||\n !scope ||\n !tenantId ||\n !principalId\n ) {\n throw new Error(\"Gateway returned an invalid device token response.\");\n }\n return {\n access_token: accessToken,\n token_type: \"Bearer\",\n expires_in: payload.expires_in,\n scope,\n tenant_id: tenantId,\n workspace_id: readString(payload.workspace_id),\n principal_id: principalId,\n user:\n payload.user && typeof payload.user === \"object\" && !Array.isArray(payload.user)\n ? (payload.user as DeviceTokenResponse[\"user\"])\n : undefined,\n };\n}\n\nfunction maybeThrowDeviceError(payload: Record<string, unknown>): never {\n const error = readString(payload.error) as DeviceTokenErrorCode | undefined;\n throw new DeviceAuthorizationError({\n error: error ?? \"invalid_request\",\n description: readString(payload.error_description),\n interval:\n typeof payload.interval === \"number\" ? payload.interval : undefined,\n });\n}\n\nexport function createAuthDeviceClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = authBaseUrl(config);\n\n async function post(path: string, body: Record<string, unknown>) {\n return fetchImpl(`${baseUrl}${path}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n }\n\n return {\n async createDeviceCode(input: DeviceCodeInput = {}) {\n const response = await post(\"/api/platform/v1/auth/device/code\", {\n client_id: input.clientId ?? \"lucern-cli\",\n scope: input.scope ?? \"graph.read graph.write\",\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceCodeResponse(payload);\n },\n async pollDeviceToken(deviceCode: string) {\n const response = await post(\"/api/platform/v1/auth/device/token\", {\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n device_code: deviceCode,\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceTokenResponse(payload);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n type Opinion,\n} from \"./opinion\";\nimport { normalizeNodeWriteInput } from \"./sdkSurface\";\nimport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n JsonObject,\n ModulateConfidenceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n ModulateConfidenceResponse,\n} from \"./types\";\nexport type { Opinion } from \"./opinion\";\n\n/** Configuration for the beliefs client. Inherits gateway transport settings. */\nexport type BeliefsClientConfig = GatewayClientConfig;\n\nexport type OpinionHistoryEntry = {\n t: number;\n b: number;\n d: number;\n u: number;\n a: number;\n P: number;\n trigger: string;\n triggeringRef?: {\n kind: \"evidence\" | \"question\" | \"answer\" | \"contradiction\" | \"worktree\";\n id: string;\n };\n rationale?: string;\n userId?: string;\n slOperator?: string;\n};\n\ntype GatewayRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): GatewayRecord {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as GatewayRecord)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction normalizeOpinionTuple(record: GatewayRecord): {\n b: number;\n d: number;\n u: number;\n a: number;\n} {\n const opinion = asRecord(record.opinion);\n const rawBelief = readNumber(opinion.b) ?? readNumber(record.belief);\n const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);\n const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);\n const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);\n\n if (\n rawBelief === undefined ||\n rawDisbelief === undefined ||\n rawUncertainty === undefined ||\n rawBaseRate === undefined\n ) {\n throw new Error(\n \"Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate.\"\n );\n }\n\n return {\n b: clamp01(rawBelief),\n d: clamp01(rawDisbelief),\n u: clamp01(rawUncertainty),\n a: clamp01(rawBaseRate),\n };\n}\n\nexport function mapOpinionHistoryEntriesFromGatewayData(\n payload: GatewayRecord\n): OpinionHistoryEntry[] {\n const entries = Array.isArray(payload.entries) ? payload.entries : [];\n return entries\n .map((value) => {\n const record = asRecord(value);\n const tuple = normalizeOpinionTuple(record);\n const projected =\n readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);\n const triggeringEvidenceId = readString(record.triggeringEvidenceId);\n const triggeringQuestionId = readString(record.triggeringQuestionId);\n const triggeringAnswerId = readString(record.triggeringAnswerId);\n const triggeringContradictionId = readString(\n record.triggeringContradictionId\n );\n const triggeringWorktreeId = readString(record.triggeringWorktreeId);\n const triggeringRef = triggeringEvidenceId\n ? ({ kind: \"evidence\", id: triggeringEvidenceId } as const)\n : triggeringQuestionId\n ? ({ kind: \"question\", id: triggeringQuestionId } as const)\n : triggeringAnswerId\n ? ({ kind: \"answer\", id: triggeringAnswerId } as const)\n : triggeringContradictionId\n ? ({ kind: \"contradiction\", id: triggeringContradictionId } as const)\n : triggeringWorktreeId\n ? ({ kind: \"worktree\", id: triggeringWorktreeId } as const)\n : undefined;\n const trigger = readString(record.trigger);\n if (!trigger) {\n throw new Error(\"Gateway opinion history entries must include trigger.\");\n }\n\n return {\n t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,\n b: tuple.b,\n d: tuple.d,\n u: tuple.u,\n a: tuple.a,\n P: clamp01(projected),\n trigger,\n ...(triggeringRef ? { triggeringRef } : {}),\n ...(readString(record.rationale)\n ? { rationale: readString(record.rationale)! }\n : {}),\n ...(readString(record.userId) ? { userId: readString(record.userId)! } : {}),\n ...(readString(record.slOperator)\n ? { slOperator: readString(record.slOperator)! }\n : {}),\n };\n })\n .sort((left, right) => left.t - right.t);\n}\n\n/**\n * Input for creating a new belief within a topic scope.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n * Beliefs start as drafts with a vacuous prior `(0, 0, 1, a)`. When omitted,\n * `baseRate` defaults to the canonical neutral prior `0.5`.\n */\nexport type CreateBeliefInput = {\n topicId?: string;\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n layer?: \"L1\" | \"L2\" | \"L3\" | \"L4\";\n domain?: string;\n sourceType?: \"human\" | \"ai\" | \"agent\" | \"imported\";\n content?: string;\n contentHash?: string;\n globalId?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n baseRate?: number;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: \"unverified\" | \"verified\" | \"rejected\";\n};\n\n/**\n * Input for refining an existing draft belief.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n */\nexport type RefineBeliefInput = {\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n rationale?: string;\n title?: string;\n};\n\ntype BeliefConfidenceTrigger =\n | \"evidence_added\"\n | \"evidence_removed\"\n | \"contradiction_detected\"\n | \"contradiction_resolved\"\n | \"agent_assessment\"\n | \"worktree_outcome\"\n | \"worktree_completed\"\n | \"fusion\"\n | \"discount\"\n | \"deduction\";\n\ntype ModulateConfidenceInputBase = {\n trigger: BeliefConfidenceTrigger;\n rationale: string;\n triggeringEvidenceId?: string;\n triggeringQuestionId?: string;\n triggeringAnswerId?: string;\n triggeringContradictionId?: string;\n triggeringWorktreeId?: string;\n maxInlinePropagationTargets?: number;\n};\n\n/**\n * Record an append-only confidence change using an explicit subjective-logic\n * opinion tuple.\n */\nexport type ModulateConfidenceOpinionInput = ModulateConfidenceInputBase & {\n opinion: Opinion;\n};\n\nexport type ModulateConfidenceInput = ModulateConfidenceOpinionInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\n/**\n * Input for forking a scored belief into a new formulation.\n * Scored beliefs are immutable — fork to evolve understanding.\n */\nexport type ForkBeliefInput = {\n newFormulation: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\n/** Input for changing a belief's lifecycle status. */\nexport type UpdateBeliefStatusInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n};\n\n/** Input for updating a belief's rationale without refining its text. */\nexport type UpdateBeliefRationaleInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n};\n\n/** Input for creating a belief-to-belief reasoning edge. */\nexport type LinkBeliefsInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n};\n\n/** Input for unlinking a belief from an attached evidence item. */\nexport type UnlinkBeliefEvidenceInput = {\n beliefNodeId?: string;\n beliefId?: string;\n nodeId?: string;\n insightId?: string;\n evidenceId?: string;\n};\n\n/** Input for updating a belief's criticality classification. */\nexport type UpdateBeliefCriticalityInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n};\n\n/** Input for bulk-updating multiple beliefs' criticality. */\nexport type BatchUpdateBeliefCriticalityInput = {\n updates: Array<{\n beliefId: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n ifFalseImpact?: string;\n triagePriority?: number;\n reasoning?: string;\n dependentBeliefIds?: string[];\n blockedByBeliefIds?: string[];\n }>;\n};\n\n/** Input for moving beliefs into a different topic scope. */\nexport type ReassignBeliefsTopicInput = {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n};\n\n/**\n * Create the beliefs client for belief lifecycle operations.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `createBelief`, `refineBelief`, `modulateConfidence`, and `forkBelief` methods.\n */\nexport function createBeliefsClient(config: BeliefsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n function normalizeBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n const normalized = baseRate ?? 0.5;\n if (normalized < 0 || normalized > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return normalized;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n } = async (\n beliefId: string,\n input: ModulateConfidenceInput,\n idempotencyKey?: string\n ) =>\n gateway.request<ModulateConfidenceResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,\n method: \"POST\",\n body: normalizeModulateConfidenceInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n async function getOpinionHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n const response = await gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence-history`,\n });\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n return {\n /**\n * Create a belief within a topic scope.\n */\n async createBelief(input: CreateBeliefInput, idempotencyKey?: string) {\n const baseRate = normalizeBaseRate(input.baseRate);\n return gateway.request<CreateBeliefResponse>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: {\n ...(normalizeNodeWriteInput(input) as JsonObject),\n baseRate,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Refine a draft belief in place.\n */\n async refineBelief(\n beliefId: string,\n input: RefineBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}`,\n method: \"PATCH\",\n body: normalizeNodeWriteInput(input as JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Record a confidence change for an existing belief.\n */\n modulateConfidence,\n\n /**\n * Returns the belief's confidence trajectory as a chronological array.\n *\n * Canonical UI trend shape (what every trend component consumes):\n * { t: number, b: number, d: number, u: number, a: number, P: number, trigger: string, triggeringRef?: { kind: \"evidence\" | \"worktree\"; id: string } }[]\n *\n * Where:\n * t = assessedAt (epoch ms)\n * b, d, u, a = Opinion 4-tuple components\n * P = projected probability = b + a*u (precomputed for UI convenience)\n * trigger = cause of the score change\n * triggeringRef = optional pointer to the evidence or worktree that drove the change\n */\n async getOpinionHistory(beliefId: string): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /** @deprecated Use getOpinionHistory(). */\n async getConfidenceHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /**\n * Fork a scored belief into a new formulation.\n */\n async forkBelief(\n beliefId: string,\n input: ForkBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<ForkBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/fork`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's lifecycle status.\n */\n async updateBeliefStatus(\n input: UpdateBeliefStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's rationale without changing its text.\n */\n async updateBeliefRationale(\n input: UpdateBeliefRationaleInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Create a typed relationship between two beliefs.\n */\n async linkBeliefs(input: LinkBeliefsInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove an evidence attachment from a belief.\n */\n async unlinkBeliefEvidence(\n input: UnlinkBeliefEvidenceInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's criticality metadata.\n */\n async updateBeliefCriticality(\n input: UpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update multiple beliefs' criticality in one mutation.\n */\n async batchUpdateBeliefCriticality(\n input: BatchUpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Reassign beliefs to a different topic scope.\n */\n async reassignBeliefsTopic(\n input: ReassignBeliefsTopicInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport type {\n GetSourceResponse,\n JsonObject,\n UpsertSourceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type { GetSourceResponse, UpsertSourceResponse } from \"./types\";\n\nexport type SourcesClientConfig = GatewayClientConfig;\n\nexport type UpsertSourceSpec = {\n url?: string;\n sha?: string;\n kind: string;\n title?: string;\n capturedAt?: number;\n topicId?: string;\n metadata?: JsonObject;\n};\n\nexport function createSourcesClient(config: SourcesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async upsert(\n spec: UpsertSourceSpec,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return gateway.request<UpsertSourceResponse>({\n path: \"/api/platform/v1/sources/upsert\",\n method: \"POST\",\n body: spec,\n idempotencyKey,\n });\n },\n\n async get(sourceId: string) {\n return gateway.request<GetSourceResponse>({\n path: `/api/platform/v1/sources/${encodeURIComponent(sourceId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n} from \"./coreClient\";\n\ntype EvidenceClassificationRelation =\n | \"supports\"\n | \"contradicts\"\n | \"irrelevant\";\n\ntype ModelFallbackConfig = {\n modelKey: string;\n modelId: string;\n temperature: number;\n maxTokens: number;\n};\n\ntype ResolvedModelConfig = ModelFallbackConfig & {\n promptName: string;\n};\n\ntype TracingAdapter = {\n startGeneration(input: {\n name: string;\n userId?: string;\n promptName: string;\n model: string;\n input: unknown;\n }): Promise<{\n start: () => void;\n end: (output: unknown) => Promise<void>;\n error: (err: unknown) => Promise<void>;\n }>;\n};\n\ntype PromptResolver = (name: string) => Promise<string | null>;\n\ntype ModelResolver = (\n slotKey: string,\n fallback: ResolvedModelConfig\n) => Promise<ResolvedModelConfig>;\n\ntype ClassificationRuntimeAdapter = (input: {\n beliefId: string;\n evidenceId: string;\n belief: string;\n evidence: string;\n prompt: string;\n model: ResolvedModelConfig;\n}) => Promise<{\n relation: EvidenceClassificationRelation;\n rationale: string;\n}>;\n\n// Local mirror of the kernel adapter types so SDK DTS generation stays inside\n// packages/sdk rootDir. Source of truth:\n// packages/reasoning-kernel/src/adapters/evidenceClassifier.ts\nexport type SerializableClassifyEvidenceConfig = {\n promptName?: string;\n modelSlotKey?: string;\n modelFallback?: ModelFallbackConfig;\n edgeWeightPolicy?: {\n supports: number;\n contradicts: number;\n };\n statusTransition?: {\n onSupports: string;\n onContradicts: string;\n };\n writeLegacyTables?: boolean;\n};\n\nexport type ClassifyEvidenceConfig = SerializableClassifyEvidenceConfig & {\n trustDiscountPolicy?: (\n relation: Exclude<EvidenceClassificationRelation, \"irrelevant\">,\n rationale: string\n ) => number;\n tracing?: TracingAdapter;\n promptResolver?: PromptResolver;\n modelResolver?: ModelResolver;\n classifier?: ClassificationRuntimeAdapter;\n};\n\nexport type ClassifyEvidenceResult = {\n beliefId: string;\n evidenceId: string;\n relation: EvidenceClassificationRelation;\n rationale: string;\n usedFallback: boolean;\n edgeWeight?: number;\n promptName: string;\n model: ResolvedModelConfig;\n link?: {\n edgeGlobalId: string;\n linkId?: string;\n confidence: number;\n writeLegacyTables: boolean;\n };\n statusUpdate?: {\n previousStatus?: string;\n newStatus: string;\n historyWritten: boolean;\n };\n};\n\nexport type ClassifyEvidenceBatchItem = {\n evidenceId?: string;\n insightId?: string;\n nodeId?: string;\n text?: string;\n};\n\nexport type ClassifyEvidenceBatchResult = {\n items: ClassifyEvidenceResult[];\n summary: {\n supporting: number;\n contradicting: number;\n irrelevant: number;\n };\n};\n\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the evidence classification client. */\nexport type EvidenceClientConfig = GatewayClientConfig;\n\n/**\n * Serializable config accepted by the HTTP SDK surface.\n * Runtime-only ports stay inside the kernel adapter.\n */\nexport type EvidenceClassificationRequestConfig =\n SerializableClassifyEvidenceConfig;\n\n/**\n * Create the evidence classification client.\n *\n * This surface mirrors the promoted kernel primitive through the platform\n * gateway. Auth-scoped callers do not provide `createdBy`; the gateway derives\n * it from the authenticated principal.\n */\nexport function createEvidenceClient(config: EvidenceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async classifyEvidence(\n beliefId: string,\n evidenceId: string,\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceResult>({\n path: \"/api/platform/v1/evidence/classify\",\n method: \"POST\",\n body: {\n beliefId,\n evidenceId,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async classifyEvidenceBatch(\n beliefId: string,\n evidence: ClassifyEvidenceBatchItem[],\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceBatchResult>({\n path: \"/api/platform/v1/evidence/classify-batch\",\n method: \"POST\",\n body: {\n beliefId,\n evidence,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import { createListResult } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport function cleanOptionalString(value: string | undefined) {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nexport function cleanRequiredString(\n value: string | undefined,\n label: string\n) {\n const normalized = cleanOptionalString(value);\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nexport function readTopicId(input: TopicProjectAliasInput) {\n return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);\n}\n\nexport function requireTopicId(input: TopicProjectAliasInput) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nexport function knownPayload<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return { ...input } as JsonObject;\n}\n\nexport function topicPayload<T extends string>(\n input: TopicProjectAliasInput & Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function listResultFromEnvelope<T, LegacyKey extends string>(\n data: unknown,\n legacyKey: LegacyKey\n): ListResult<T, LegacyKey> {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as Record<string, unknown>)[legacyKey])\n ? ((record as Record<string, T[]>)[legacyKey])\n : Array.isArray(data)\n ? (data as T[])\n : [],\n legacyKey\n );\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EventingClientConfig = GatewayClientConfig;\n\nexport const EVENTING_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"eventId\",\n \"eventType\",\n \"eventPayload\",\n \"webhookId\",\n \"deliveryId\",\n \"status\",\n \"attempt\",\n \"statusCode\",\n \"error\",\n \"responseBody\",\n \"durationMs\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type EventingStatus =\n | \"pending\"\n | \"delivering\"\n | \"succeeded\"\n | \"failed\"\n | \"dead_letter\";\n\nexport type EventingRecord = {\n eventId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType: string;\n eventPayload?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type EventingWebhookRecord = {\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n topicId?: string;\n url?: string;\n events?: string[];\n status?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EventingDeliveryRecord = {\n deliveryId: string;\n eventId?: string;\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n status: EventingStatus | string;\n attempt?: number;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type EventingScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType?: string;\n webhookId?: string;\n status?: EventingStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordEventInput = EventingScope & {\n eventId?: string;\n eventType: string;\n eventPayload?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type EnqueueDeliveryInput = EventingScope & {\n eventId: string;\n webhookId: string;\n deliveryId?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordDeliveryAttemptInput = EventingScope & {\n deliveryId: string;\n webhookId: string;\n attempt: number;\n status: EventingStatus;\n statusCode?: number;\n error?: string;\n responseBody?: string;\n durationMs?: number;\n metadata?: JsonObject;\n};\n\nexport type UpdateDeliveryStatusInput = EventingScope & {\n deliveryId: string;\n webhookId?: string;\n status: EventingStatus;\n attempt?: number;\n metadata?: JsonObject;\n};\n\nexport type EventingEventsResponse = ListResult<EventingRecord, \"events\">;\nexport type EventingWebhooksResponse = ListResult<\n EventingWebhookRecord,\n \"webhooks\"\n>;\n\nfunction query(input: EventingScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n eventType: input.eventType,\n webhookId: input.webhookId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, EVENTING_FIELDS, operation);\n}\n\nexport function createEventingClient(config: EventingClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n recordEvent(input: RecordEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<EventingRecord>({\n path: \"/api/platform/v1/events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listEvents(input: EventingScope) {\n return gateway.request<EventingEventsResponse>({\n path: `/api/platform/v1/events${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingRecord, \"events\">(data, \"events\")\n )\n );\n },\n\n listWebhooks(input: EventingScope) {\n return gateway.request<EventingWebhooksResponse>({\n path: `/api/platform/v1/webhooks${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingWebhookRecord, \"webhooks\">(\n data,\n \"webhooks\"\n )\n )\n );\n },\n\n enqueueDelivery(input: EnqueueDeliveryInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventId, \"eventId\");\n cleanRequiredString(input.webhookId, \"webhookId\");\n return gateway.request<EventingDeliveryRecord>({\n path: \"/api/platform/v1/events/deliveries\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.enqueueDelivery\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordDeliveryAttempt(\n input: RecordDeliveryAttemptInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/attempts`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordDeliveryAttempt\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateDeliveryStatus(\n input: UpdateDeliveryStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.updateDeliveryStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import { z } from \"zod\";\nimport type {\n McpParameterDef,\n McpResponseDef,\n McpToolContract,\n} from \"./contracts/mcpTools\";\nimport type { JsonObject } from \"./types\";\n\n/** Default namespace assigned to custom tools when none is specified. */\nconst DEFAULT_CUSTOM_NAMESPACE = \"custom\";\n\n/** Namespace strings reserved for platform-internal tools. */\nconst RESERVED_NAMESPACES = new Set([\"lucern\"]);\n\ntype AnyZodObject = z.ZodObject<z.ZodRawShape>;\n\n/** Origin of a custom tool invocation (SDK call or MCP request). */\nexport type CustomToolInvocationSource = \"sdk\" | \"mcp\";\n\n/** Runtime context passed to a custom tool handler during invocation. */\nexport type CustomToolInvocationContext = {\n source: CustomToolInvocationSource;\n};\n\n/** Optional metadata attached to a custom tool registration. */\nexport type CustomToolMetadata = {\n category?: string;\n tags?: string[];\n requiredScopes?: string[];\n};\n\n/** Input descriptor for registering a custom tool with its schemas and handler. */\nexport type CustomToolRegistration<\n TInput extends AnyZodObject = AnyZodObject,\n TOutput extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n namespace?: string;\n name: string;\n description: string;\n inputSchema: TInput;\n outputSchema: TOutput;\n handler: (\n input: z.infer<TInput>,\n context: CustomToolInvocationContext\n ) => Promise<z.infer<TOutput>> | z.infer<TOutput>;\n metadata?: CustomToolMetadata;\n ownerModule?: string;\n ontologyPrimitive?: McpToolContract[\"ontologyPrimitive\"];\n tier?: McpToolContract[\"tier\"];\n};\n\n/** A fully resolved custom tool entry stored in the in-memory registry. */\nexport type RegisteredCustomTool = {\n fullName: string;\n namespace: string;\n shortName: string;\n metadata: CustomToolMetadata;\n contract: McpToolContract;\n inputSchema: AnyZodObject;\n outputSchema: z.ZodTypeAny;\n invoke: (\n input: JsonObject,\n context: CustomToolInvocationContext\n ) => Promise<unknown>;\n};\n\n/** Error thrown when custom tool registration or invocation fails validation. */\nexport class CustomToolRegistryError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CustomToolRegistryError\";\n }\n}\n\nconst customToolRegistry = new Map<string, RegisteredCustomTool>();\n\nfunction normalizeSegment(value: string, field: \"namespace\" | \"name\"): string {\n const normalized = value.trim();\n if (!normalized) {\n throw new CustomToolRegistryError(`Custom tool ${field} is required.`);\n }\n if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(normalized)) {\n throw new CustomToolRegistryError(\n `Invalid custom tool ${field}: \"${value}\". Use letters, numbers, \"_\" or \"-\".`\n );\n }\n return normalized;\n}\n\nfunction normalizeNamespace(namespace?: string): string {\n const resolved = normalizeSegment(\n namespace ?? DEFAULT_CUSTOM_NAMESPACE,\n \"namespace\"\n );\n if (RESERVED_NAMESPACES.has(resolved.toLowerCase())) {\n throw new CustomToolRegistryError(\n `Namespace \"${resolved}\" is reserved for platform tools.`\n );\n }\n return resolved;\n}\n\nfunction normalizeName(name: string): string {\n if (name.includes(\".\")) {\n throw new CustomToolRegistryError(\n `Custom tool name \"${name}\" must not include \".\"; use namespace + name.`\n );\n }\n return normalizeSegment(name, \"name\");\n}\n\nfunction buildFullName(namespace: string, shortName: string): string {\n return `${namespace}.${shortName}`;\n}\n\nfunction unwrapSchema(schema: z.ZodTypeAny): {\n schema: z.ZodTypeAny;\n required: boolean;\n} {\n if (schema instanceof z.ZodOptional) {\n return { schema: schema.unwrap(), required: false };\n }\n if (schema instanceof z.ZodDefault) {\n const removeDefault = (\n schema as unknown as { removeDefault?: () => z.ZodTypeAny }\n ).removeDefault;\n if (typeof removeDefault === \"function\") {\n return { schema: removeDefault.call(schema), required: false };\n }\n const inner = (schema as unknown as { _def?: { innerType?: z.ZodTypeAny } })\n ._def?.innerType;\n return { schema: inner ?? schema, required: false };\n }\n return { schema, required: true };\n}\n\nfunction resolveParameterType(schema: z.ZodTypeAny): {\n type: McpParameterDef[\"type\"];\n enum?: string[];\n} {\n if (schema instanceof z.ZodString) {\n return { type: \"string\" };\n }\n if (schema instanceof z.ZodEnum) {\n return { type: \"string\", enum: schema.options };\n }\n if (schema instanceof z.ZodNativeEnum) {\n const values = Object.values(schema.enum).filter(\n (value): value is string => typeof value === \"string\"\n );\n return values.length > 0\n ? { type: \"string\", enum: values }\n : { type: \"string\" };\n }\n if (schema instanceof z.ZodLiteral) {\n const literalValue = schema.value;\n if (typeof literalValue === \"string\") {\n return { type: \"string\", enum: [literalValue] };\n }\n if (typeof literalValue === \"number\") {\n return { type: \"number\" };\n }\n if (typeof literalValue === \"boolean\") {\n return { type: \"boolean\" };\n }\n return { type: \"object\" };\n }\n if (schema instanceof z.ZodNumber) {\n return { type: \"number\" };\n }\n if (schema instanceof z.ZodBoolean) {\n return { type: \"boolean\" };\n }\n if (schema instanceof z.ZodArray) {\n return { type: \"array\" };\n }\n return { type: \"object\" };\n}\n\nfunction schemaTypeLabel(schema: z.ZodTypeAny): string {\n if (schema instanceof z.ZodString || schema instanceof z.ZodEnum) {\n return \"string\";\n }\n if (schema instanceof z.ZodNumber) {\n return \"number\";\n }\n if (schema instanceof z.ZodBoolean) {\n return \"boolean\";\n }\n if (schema instanceof z.ZodArray) {\n return \"array\";\n }\n if (schema instanceof z.ZodObject) {\n return \"object\";\n }\n return \"unknown\";\n}\n\nfunction parseObjectSchema<TInput extends AnyZodObject>(\n value: TInput,\n fieldName: string\n): TInput {\n if (!(value instanceof z.ZodObject)) {\n throw new CustomToolRegistryError(\n `${fieldName} must be a Zod object schema.`\n );\n }\n return value;\n}\n\nfunction deriveParameters(schema: AnyZodObject): {\n parameters: Record<string, McpParameterDef>;\n required: string[];\n} {\n const shape = schema.shape;\n const parameters: Record<string, McpParameterDef> = {};\n const required: string[] = [];\n\n for (const [key, raw] of Object.entries(shape)) {\n const { schema: unwrapped, required: isRequired } = unwrapSchema(\n raw as z.ZodTypeAny\n );\n const parameterType = resolveParameterType(unwrapped);\n parameters[key] = {\n type: parameterType.type,\n description: (raw as z.ZodTypeAny).description ?? `${key} parameter`,\n ...(parameterType.enum ? { enum: parameterType.enum } : {}),\n };\n if (isRequired) {\n required.push(key);\n }\n }\n\n return { parameters, required };\n}\n\nfunction deriveResponse(schema: z.ZodTypeAny): McpResponseDef {\n if (schema instanceof z.ZodObject) {\n const fields = Object.fromEntries(\n Object.entries(schema.shape).map(([key, value]) => {\n const zodValue = value as z.ZodTypeAny;\n const label = schemaTypeLabel(unwrapSchema(zodValue).schema);\n const description = zodValue.description ?? \"custom output field\";\n return [key, `${label} — ${description}`];\n })\n );\n return {\n description: \"Custom tool result payload\",\n fields,\n };\n }\n\n return {\n description: \"Custom tool result payload\",\n fields: {\n result: `${schemaTypeLabel(schema)} — custom output payload`,\n },\n };\n}\n\nfunction buildContract<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n fullName: string,\n namespace: string,\n registration: CustomToolRegistration<TInput, TOutput>,\n inputSchema: TInput\n): McpToolContract {\n const { parameters, required } = deriveParameters(inputSchema);\n return {\n name: fullName,\n description: registration.description,\n parameters,\n required,\n response: deriveResponse(registration.outputSchema),\n ownerModule: registration.ownerModule ?? `${namespace}-extension`,\n ontologyPrimitive: registration.ontologyPrimitive ?? \"task\",\n tier: registration.tier ?? \"workhorse\",\n };\n}\n\n/**\n * Register a custom SDK tool in the in-memory registry.\n * @param registration - The tool definition including name, schemas, and handler.\n * @param options - Optional flags; set `replace` to overwrite an existing registration.\n * @returns The fully resolved registered tool entry.\n */\nexport function registerCustomTool<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n registration: CustomToolRegistration<TInput, TOutput>,\n options: { replace?: boolean } = {}\n): RegisteredCustomTool {\n const namespace = normalizeNamespace(registration.namespace);\n const shortName = normalizeName(registration.name);\n const fullName = buildFullName(namespace, shortName);\n\n if (customToolRegistry.has(fullName) && !options.replace) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is already registered.`\n );\n }\n\n const inputSchema = parseObjectSchema(\n registration.inputSchema,\n \"inputSchema\"\n );\n const outputSchema = registration.outputSchema;\n const contract = buildContract(\n fullName,\n namespace,\n registration,\n inputSchema\n );\n const metadata: CustomToolMetadata = {\n category: registration.metadata?.category,\n tags: registration.metadata?.tags ?? [],\n requiredScopes: registration.metadata?.requiredScopes ?? [\"custom:execute\"],\n };\n\n const registered: RegisteredCustomTool = {\n fullName,\n namespace,\n shortName,\n metadata,\n contract,\n inputSchema,\n outputSchema,\n invoke: async (input, context) => {\n const parsedInput = inputSchema.parse(input);\n const rawOutput = await registration.handler(parsedInput, context);\n return outputSchema.parse(rawOutput);\n },\n };\n\n customToolRegistry.set(fullName, registered);\n return registered;\n}\n\n/**\n * Remove a custom SDK tool from the registry.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns `true` if the tool was found and removed, `false` otherwise.\n */\nexport function unregisterCustomTool(fullName: string): boolean {\n return customToolRegistry.delete(fullName.trim());\n}\n\n/**\n * Get a custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns The registered tool entry, or `undefined` if not found.\n */\nexport function getRegisteredCustomTool(\n fullName: string\n): RegisteredCustomTool | undefined {\n return customToolRegistry.get(fullName.trim());\n}\n\n/**\n * List all registered custom SDK tools, sorted alphabetically by full name.\n * @returns An array of all registered tool entries.\n */\nexport function listRegisteredCustomTools(): RegisteredCustomTool[] {\n return [...customToolRegistry.values()].sort((left, right) =>\n left.fullName.localeCompare(right.fullName)\n );\n}\n\n/**\n * Clear the registered custom tool registry.\n */\nexport function clearRegisteredCustomTools(): void {\n customToolRegistry.clear();\n}\n\n/**\n * Invoke a registered custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @param params - JSON-serializable input parameters for the tool handler.\n * @param context - Invocation context indicating the call source.\n * @returns The validated output from the tool handler.\n */\nexport async function invokeRegisteredCustomTool(\n fullName: string,\n params: JsonObject,\n context: CustomToolInvocationContext\n): Promise<unknown> {\n const registered = getRegisteredCustomTool(fullName);\n if (!registered) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is not registered.`\n );\n }\n return registered.invoke(params, context);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the ontology client. */\nexport type OntologyClientConfig = GatewayClientConfig;\n\n/** Input for binding an ontology to a topic. */\nexport type OntologyBindingInput = GatewayScope & {\n ontologyId: string;\n topicId: string;\n};\n\n/** Input for creating an ontology definition. */\nexport type OntologyDefinitionInput = GatewayScope & {\n ontologyKey: string;\n name: string;\n description?: string;\n tenantId?: string;\n tier?: \"platform\" | \"pack\" | \"tenant\";\n};\n\n/** Input for updating mutable fields on an ontology definition. */\nexport type OntologyDefinitionUpdateInput = GatewayScope & {\n name?: string;\n description?: string;\n status?: \"draft\" | \"active\" | \"deprecated\";\n};\n\n/** Input for creating a versioned snapshot of entity and edge type definitions. */\nexport type OntologyVersionInput = GatewayScope & {\n version: string;\n entityTypes: Array<{\n value: string;\n label: string;\n description?: string;\n schema?: JsonObject;\n subtypes?: Array<{ value: string; label: string; description?: string }>;\n }>;\n edgeTypes: Array<{\n value: string;\n label: string;\n description?: string;\n sourceTypes?: string[];\n targetTypes?: string[];\n constraintSeverity?: \"warn\" | \"info\";\n }>;\n releaseNotes?: string;\n};\n\n/**\n * Create the ontology client for ontology definitions and versions.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage ontology definitions, versions, and bindings.\n */\nexport function createOntologyClient(config: OntologyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List ontology definitions matching optional filters.\n */\n async list(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return gateway\n .request<unknown>({\n path: `/api/platform/v1/ontologies${toQueryString(filters)}`,\n })\n .then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const ontologies = Array.isArray(record.ontologies)\n ? record.ontologies\n : Array.isArray(record.definitions)\n ? record.definitions\n : Array.isArray(data)\n ? data\n : [];\n const total =\n typeof record.total === \"number\" && Number.isFinite(record.total)\n ? record.total\n : ontologies.length;\n return {\n ...record,\n ...createListResult(ontologies, \"definitions\"),\n ontologies,\n total,\n };\n })\n );\n },\n\n /**\n * Get an ontology definition by identifier.\n */\n async get(id: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n /**\n * Bind an ontology definition to a topic.\n */\n async bind(input: OntologyBindingInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List ontology definitions.\n */\n async listDefinitions(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return this.list(filters);\n },\n\n /**\n * Get an ontology definition.\n */\n async getDefinition(id: string) {\n return this.get(id);\n },\n\n /**\n * Create an ontology definition.\n */\n async createDefinition(\n input: OntologyDefinitionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/ontologies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an ontology definition.\n */\n async updateDefinition(\n id: string,\n input: OntologyDefinitionUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Archive an ontology definition.\n */\n async archiveDefinition(id: string, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List versions for an ontology definition.\n */\n async listVersions(\n ontologyId: string,\n filters: GatewayScope & { status?: string } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions${toQueryString(filters)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"versions\")\n )\n );\n },\n\n /**\n * Create an ontology version.\n */\n async createVersion(\n ontologyId: string,\n input: OntologyVersionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Publish an ontology version.\n */\n async publishVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/publish`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Deprecate an ontology version.\n */\n async deprecateVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/deprecate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List topics directly bound to a specific ontology definition.\n * Uses the topics gateway with ontologyId filter.\n */\n async listTopics(ontologyId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/topics?ontologyId=${encodeURIComponent(ontologyId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"topics\")\n )\n );\n },\n\n /**\n * @deprecated Use listTopics.\n */\n async listTopicsByOntology(ontologyId: string) {\n return this.listTopics(ontologyId);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n mapAliasedList,\n mapGatewayData,\n normalizeNodeWriteInput,\n normalizeNodeVerificationStatus,\n normalizeTopicQuery,\n withSdkAliases,\n} from \"./sdkSurface\";\nimport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n JsonObject,\n ListResult,\n PlatformGraphEdge,\n PlatformGraphNode,\n QueryEdgesResponse,\n QueryNodesResponse,\n TextAliasInput,\n TopicIdentifierInput,\n UpdateNodeResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n ListResult,\n QueryEdgesResponse,\n QueryNodesResponse,\n UpdateNodeResponse,\n} from \"./types\";\n\n/** Configuration for the graph client. */\nexport type GraphClientConfig = GatewayClientConfig;\n\n/** Filter parameters for listing graph nodes. */\nexport type ListNodesInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n nodeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph nodes. */\nexport type ListNodesResponse = ListResult<PlatformGraphNode, \"nodes\">;\n\n/** @deprecated Use ListNodesInput. */\nexport type QueryNodesInput = ListNodesInput;\n\n/** Input for creating a new graph node. */\nexport type CreateNodeInput = {\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n nodeType: string;\n topicId?: string;\n content?: string;\n contentHash?: string;\n globalId?: string;\n sourceType?: string;\n subtype?: string;\n title?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput &\n TopicIdentifierInput;\n\n/** Input for updating an existing graph node. */\nexport type UpdateNodeInput = {\n nodeId: string;\n text?: string;\n canonicalText?: string;\n content?: string;\n contentHash?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput;\n\n/** Input for retrieving a single graph node by canonical identifier. */\nexport type GetNodeInput = {\n nodeId?: string;\n globalId?: string;\n};\n\n/** Filter parameters for listing graph edges. */\nexport type ListEdgesInput = {\n edgeId?: string;\n topicId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph edges. */\nexport type ListEdgesResponse = ListResult<PlatformGraphEdge, \"edges\">;\n\n/** @deprecated Use ListEdgesInput. */\nexport type QueryEdgesInput = ListEdgesInput;\n\n/** Input for creating a typed edge between two graph nodes. */\nexport type CreateEdgeInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n globalId?: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n derivationType?: string;\n} & TopicIdentifierInput;\n\n/** Filter for selecting edges to delete. */\nexport type DeleteEdgeInput = {\n edgeId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n};\n\n/** Input for batch-creating multiple graph nodes. */\nexport type BatchCreateNodesInput = {\n nodes: Array<CreateNodeInput>;\n};\n\n/** Input for superseding an existing graph node with a new version. */\nexport type SupersedeNodeInput = {\n oldNodeId?: string;\n nodeId?: string;\n newGlobalId?: string;\n newCanonicalText?: string;\n text?: string;\n canonicalText?: string;\n newContentHash?: string;\n reason?: string;\n};\n\n/** Input for updating a node's verification state. */\nexport type VerifyNodeInput = {\n nodeId?: string;\n id?: string;\n verificationStatus: string;\n confidence?: number;\n};\n\n/** Input for permanently deleting a node via admin-only API. */\nexport type HardDeleteNodeInput = {\n nodeId?: string;\n id?: string;\n reason: string;\n allowBeliefHardDelete?: boolean;\n};\n\n/** Input for retrieving the local neighborhood around a graph node. */\nexport type NeighborhoodInput = {\n globalId?: string;\n globalIds?: string;\n maxDepth?: number;\n};\n\n/** Input for finding the shortest path between two graph nodes. */\nexport type PathInput = {\n fromGlobalId: string;\n toGlobalId: string;\n maxDepth?: number;\n};\n\n/** Input for retrieving a specific graph analytics metric. */\nexport type AnalyticsInput = {\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\n/** Input for traversing the graph from a starting node. */\nexport type TraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for structural analysis of a topic graph. */\nexport type AnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for detecting confirmation-bias patterns in a topic graph. */\nexport type BiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for finding beliefs without sufficient testing questions. */\nexport type GapsInput = {\n topicId?: string;\n minConfidence?: number;\n} & TopicIdentifierInput;\n\n/** Input for cross-resource search within a topic scope. */\nexport type SearchInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n} & TopicIdentifierInput;\n\n/**\n * Create the low-level graph client for nodes, edges, and graph analytics.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for CRUD on nodes/edges plus analytics, traversal, and search.\n */\nexport function createGraphClient(config: GraphClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List graph nodes matching the provided filters.\n */\n async listNodes(query: ListNodesInput) {\n return gateway.request<ListNodesResponse>({\n path: `/api/platform/v1/graph/nodes${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => mapAliasedList<PlatformGraphNode, \"nodes\">(data, \"nodes\"))\n );\n },\n\n /**\n * @deprecated Use listNodes.\n */\n async queryNodes(query: QueryNodesInput) {\n return this.listNodes(query);\n },\n\n /**\n * Retrieve a single graph node by nodeId or globalId.\n */\n async getNode(query: GetNodeInput) {\n return gateway.request<PlatformGraphNode>({\n path: `/api/platform/v1/graph/nodes${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as PlatformGraphNode\n )\n );\n },\n\n /**\n * Create a graph node.\n */\n async createNode(input: CreateNodeInput, idempotencyKey?: string) {\n return gateway.request<CreateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"POST\",\n body: normalizeNodeWriteInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as CreateNodeResponse\n )\n );\n },\n\n /**\n * Update a graph node.\n */\n async updateNode(input: UpdateNodeInput, idempotencyKey?: string) {\n return gateway.request<UpdateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"PUT\",\n body: normalizeNodeWriteInput(input as UpdateNodeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as UpdateNodeResponse\n )\n );\n },\n\n /**\n * Batch create graph nodes through the admin route surface.\n */\n async batchCreateNodes(\n input: BatchCreateNodesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/batch\",\n method: \"POST\",\n body: {\n nodes: input.nodes.map((node) => normalizeNodeWriteInput(node)),\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Supersede an existing graph node with a new canonical version.\n */\n async supersedeNode(input: SupersedeNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/supersede\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a node's verification status.\n */\n async verifyNode(input: VerifyNodeInput, idempotencyKey?: string) {\n const verificationStatus =\n normalizeNodeVerificationStatus(input.verificationStatus) ??\n input.verificationStatus;\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/verify\",\n method: \"POST\",\n body: {\n ...input,\n verificationStatus,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Permanently delete a node via the admin-only hard-delete route.\n */\n async hardDeleteNode(input: HardDeleteNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/hard-delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List graph edges matching the provided filters.\n */\n async listEdges(query: ListEdgesInput) {\n return gateway.request<ListEdgesResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<PlatformGraphEdge, \"edges\">(data, \"edges\")\n )\n );\n },\n\n /**\n * @deprecated Use listEdges.\n */\n async queryEdges(query: QueryEdgesInput) {\n return this.listEdges(query);\n },\n\n /**\n * Create a graph edge.\n */\n async createEdge(input: CreateEdgeInput, idempotencyKey?: string) {\n return gateway.request<CreateEdgeResponse>({\n path: \"/api/platform/v1/graph/edges\",\n method: \"POST\",\n body: normalizeTopicQuery(input as CreateEdgeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete one or more edges matching the provided filter.\n */\n async deleteEdge(query: DeleteEdgeInput, idempotencyKey?: string) {\n return gateway.request<DeleteEdgeResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(query)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async neighborhood(query: NeighborhoodInput) {\n return gateway.request<GraphNeighborhoodResponse>({\n path: `/api/platform/v1/graph/neighborhood${toQueryString(query)}`,\n });\n },\n\n /**\n * Traverse the graph from a starting node.\n */\n async traverse(query: TraverseInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/traverse\",\n method: \"POST\",\n body: normalizeTopicQuery(query as TraverseInput & JsonObject),\n });\n },\n\n /**\n * Analyze graph structure for a topic.\n */\n async analyze(query: AnalyzeInput = {}) {\n const normalized = normalizeTopicQuery(query as AnalyzeInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/analyze${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n metric:\n typeof normalized.metric === \"string\" ? normalized.metric : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Detect confirmation-bias patterns for a topic graph.\n */\n async bias(query: BiasInput = {}) {\n const normalized = normalizeTopicQuery(query as BiasInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/bias${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n threshold:\n typeof normalized.threshold === \"number\"\n ? normalized.threshold\n : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Find graph gaps for beliefs that still need testing.\n */\n async gaps(query: GapsInput) {\n const normalized = normalizeTopicQuery(query as GapsInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/gaps${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n minConfidence:\n typeof normalized.minConfidence === \"number\"\n ? normalized.minConfidence\n : undefined,\n })}`,\n });\n },\n\n /**\n * Search across graph resources within a topic.\n */\n async search(query: SearchInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: normalizeTopicQuery(query as SearchInput & JsonObject),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async getNeighborhood(query: NeighborhoodInput) {\n return this.neighborhood(query);\n },\n\n /**\n * Retrieve the shortest known path between two graph nodes.\n */\n async getPath(query: PathInput) {\n return gateway.request<GraphPathResponse>({\n path: `/api/platform/v1/graph/path${toQueryString(query)}`,\n });\n },\n\n /**\n * Retrieve graph analytics for the requested metric.\n */\n async getAnalytics(query: AnalyticsInput = {}) {\n return gateway.request<GraphAnalyticsResponse>({\n path: `/api/platform/v1/graph/analytics${toQueryString(query)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult, SdkPrincipalContext } from \"./types\";\n\n/** Summary of the currently authenticated principal and their scopes. */\nexport type IdentitySummary = SdkPrincipalContext;\n\n/** Gateway response wrapping an identity summary payload. */\nexport type IdentityWhoamiResponse = PlatformGatewaySuccess<IdentitySummary>;\n\nfunction createIdentityWhoamiClient(\n config: GatewayClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async whoami(): Promise<IdentityWhoamiResponse> {\n return gateway.request<SdkPrincipalContext>({\n path: \"/api/platform/v1/identity/whoami\",\n });\n },\n };\n}\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the identity client. */\nexport type IdentityClientConfig = GatewayClientConfig;\n\nexport type ClerkUserSearchResult = {\n clerkId: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n displayName: string | null;\n imageUrl: string | null;\n};\n\nexport const TENANT_IDENTITY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"integrationKey\",\n \"secretRef\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"decision\",\n \"config\",\n \"configKey\",\n \"configValue\",\n \"provider\",\n \"status\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TenantIdentityConfigRecord = {\n tenantId: string;\n workspaceId?: string;\n config?: JsonObject | null;\n metadata?: JsonObject | null;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantIntegrationRecord = {\n tenantId: string;\n workspaceId?: string;\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantSecretReference = {\n tenantId: string;\n workspaceId?: string;\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type PolicyDecisionRecord = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n policySubject: string;\n policyAction: string;\n policyResource: string;\n decision: \"allow\" | \"deny\" | string;\n reason?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TenantIdentityScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateTenantConfigInput = TenantIdentityScope & {\n config?: JsonObject;\n configKey?: string;\n configValue?: JsonObject | string | number | boolean | null;\n metadata?: JsonObject;\n};\n\nexport type UpsertTenantIntegrationInput = TenantIdentityScope & {\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PutTenantSecretReferenceInput = TenantIdentityScope & {\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PolicyEvaluationInput = TenantIdentityScope & {\n policySubject: string;\n policyAction: string;\n policyResource: string;\n metadata?: JsonObject;\n};\n\nexport type RecordPolicyDecisionInput = PolicyEvaluationInput & {\n decision: \"allow\" | \"deny\" | string;\n};\n\nexport type TenantIntegrationsResponse = ListResult<\n TenantIntegrationRecord,\n \"integrations\"\n>;\nexport type TenantSecretsResponse = ListResult<TenantSecretReference, \"secrets\">;\n\nfunction tenantIdentityQuery(input: TenantIdentityScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction tenantIdentityBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TENANT_IDENTITY_FIELDS, operation);\n}\n\n/**\n * Create the identity client for principals and API keys.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for whoami, principal management, and key management.\n */\nexport function createIdentityClient(config: IdentityClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const whoamiClient = createIdentityWhoamiClient(config);\n\n const requestPrincipalWrite = (\n method: \"POST\" | \"PATCH\",\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) =>\n gateway.request<unknown>({\n path: \"/api/platform/v1/identity/principals\",\n method,\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n /**\n * Resolve the current authenticated identity summary.\n */\n async whoami() {\n return whoamiClient.whoami().then((response) =>\n mapGatewayData(response, (data) => ({\n principalId: data.principalId,\n principalType: data.principalType,\n tenantId: data.tenantId ?? null,\n workspaceId: data.workspaceId ?? null,\n scopes: Array.isArray(data.scopes) ? data.scopes : [],\n roles: Array.isArray(data.roles) ? data.roles : [],\n isPlatformAdmin: data.isPlatformAdmin === true,\n isTenantAdmin: data.isTenantAdmin === true,\n isWorkspaceAdmin: data.isWorkspaceAdmin === true,\n authMode: data.authMode,\n sessionId: data.sessionId,\n delegatedBy: data.delegatedBy,\n expiresAt: data.expiresAt,\n }))\n );\n },\n\n /**\n * List principals in the current identity scope.\n */\n async listPrincipals(\n query: GatewayScope & {\n status?: string;\n principalType?: string;\n query?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/principals${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"principals\"\n )\n )\n );\n },\n\n /**\n * Create a principal.\n */\n async createPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"POST\", input, idempotencyKey);\n },\n\n /**\n * Update a principal.\n */\n async updatePrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createPrincipal or updatePrincipal.\n */\n async upsertPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * List keys in the current identity scope.\n */\n async listKeys(\n query: GatewayScope & {\n principalId?: string;\n status?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"keys\")\n )\n );\n },\n\n /**\n * Create an API key.\n */\n async createKey(\n input: GatewayScope & {\n principalId: string;\n keyId?: string;\n token?: string;\n scopes?: string[];\n environment?: \"sandbox\" | \"production\";\n expiresInDays?: number;\n rateLimitTier?: \"free\" | \"developer\" | \"partner\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/identity/keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Rotate an API key.\n */\n async rotateKey(\n keyId: string,\n input: {\n replacementKeyId?: string;\n replacementToken?: string;\n replacementExpiresInDays?: number;\n gracePeriodHours?: number;\n } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/rotate`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete an API key by revoking it.\n */\n async deleteKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteKey.\n */\n async revokeKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return this.deleteKey(keyId, input, idempotencyKey);\n },\n\n /**\n * Search Clerk users by email or display attributes.\n */\n async searchClerkUsers(q: string) {\n return gateway.request<ClerkUserSearchResult[]>({\n path: `/api/platform/v1/identity/clerk-users${toQueryString({ q })}`,\n });\n },\n\n async getTenantConfig(input: TenantIdentityScope) {\n return gateway.request<TenantIdentityConfigRecord>({\n path: `/api/platform/v1/identity/tenant-config${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n });\n },\n\n async updateTenantConfig(\n input: UpdateTenantConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<TenantIdentityConfigRecord>({\n path: \"/api/platform/v1/identity/tenant-config\",\n method: \"PATCH\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.updateTenantConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listIntegrations(input: TenantIdentityScope) {\n return gateway.request<TenantIntegrationsResponse>({\n path: `/api/platform/v1/identity/integrations${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantIntegrationRecord, \"integrations\">(\n data,\n \"integrations\"\n )\n )\n );\n },\n\n async upsertIntegration(\n input: UpsertTenantIntegrationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.integrationKey, \"integrationKey\");\n return gateway.request<TenantIntegrationRecord>({\n path: \"/api/platform/v1/identity/integrations\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.upsertIntegration\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listSecrets(input: TenantIdentityScope) {\n return gateway.request<TenantSecretsResponse>({\n path: `/api/platform/v1/identity/secrets${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantSecretReference, \"secrets\">(\n data,\n \"secrets\"\n )\n )\n );\n },\n\n async putSecretReference(\n input: PutTenantSecretReferenceInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.secretRef, \"secretRef\");\n return gateway.request<TenantSecretReference>({\n path: \"/api/platform/v1/identity/secrets\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.putSecretReference\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async evaluatePolicy(\n input: PolicyEvaluationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.policySubject, \"policySubject\");\n cleanRequiredString(input.policyAction, \"policyAction\");\n cleanRequiredString(input.policyResource, \"policyResource\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/evaluate\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.evaluatePolicy\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async recordPolicyDecision(\n input: RecordPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/decisions\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n JsonObject,\n TopicCoverageResponse,\n TopicIdentifierInput,\n TopicListResponse,\n TopicRecord,\n TopicTreeNode,\n TopicTreeResponse,\n} from \"./types\";\n\n/** Configuration for the topics client. Inherits gateway transport settings. */\nexport type TopicsClientConfig = GatewayClientConfig;\n\n/** Filters for listing topics within a scope. */\nexport type TopicListInput = TopicIdentifierInput & {\n ontologyId?: string;\n parentTopicId?: string;\n status?: string;\n type?: string;\n};\n\n/** Input for creating a new topic. Name is required; all other fields are optional. */\nexport type TopicCreateInput = TopicIdentifierInput & {\n name: string;\n description?: string;\n type?: string;\n parentTopicId?: string;\n ontologyId?: string;\n tenantId?: string;\n workspaceId?: string;\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n createdBy?: string;\n metadata?: JsonObject;\n};\n\n/** Input for updating an existing topic's metadata. All fields are optional. */\nexport type TopicUpdateInput = TopicIdentifierInput & {\n name?: string;\n description?: string;\n type?: string;\n ontologyId?: string;\n clearOntologyId?: boolean;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n};\n\n/** Options for retrieving the topic hierarchy. */\nexport type TopicTreeQuery = {\n maxDepth?: number;\n};\n\n/** Options for retrieving belief/question/evidence coverage across a topic tree. */\nexport type TopicCoverageQuery = {\n includeDescendants?: boolean;\n maxDepth?: number;\n};\n\n/** Input for batch-creating topics. */\nexport type TopicBulkCreateInput = {\n topics: Array<\n TopicIdentifierInput & {\n globalId?: string;\n name: string;\n description?: string;\n type: string;\n parentTopicId?: string;\n depth?: number;\n path?: string[];\n tenantId?: string;\n workspaceId?: string;\n graphScopeProjectId?: string;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n metadata?: JsonObject;\n createdBy?: string;\n }\n >;\n};\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\"\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeTopicRecord(value: unknown): TopicRecord {\n const record = asRecord(value);\n const topicId =\n cleanString(record.topicId) ??\n cleanString(record.id) ??\n cleanString(record._id);\n\n return withTopicAlias({\n ...record,\n ...(topicId ? { topicId } : {}),\n }) as TopicRecord;\n}\n\nfunction normalizeTopicTreeNode(value: unknown): TopicTreeNode {\n return normalizeTopicRecord(value) as TopicTreeNode;\n}\n\n/**\n * Create the topics client for managing hierarchical knowledge containers.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `list`, `get`, `create`, `update`, `getTree`, and `getCoverage` methods.\n */\nexport function createTopicsClient(config: TopicsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(query: TopicListInput = {}) {\n const topicId = resolveTopicId(query);\n return gateway.request<TopicListResponse>({\n path: `/api/platform/v1/topics${toQueryString({\n ...(topicId ? { topicId } : {}),\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status,\n type: query.type,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n const items = Array.isArray(record.topics)\n ? record.topics.map(normalizeTopicRecord)\n : [];\n\n return {\n ...createListResult(items, \"topics\"),\n ...record,\n topics: items,\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as TopicListResponse;\n })\n );\n },\n\n async get(topicId: string) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n normalizeTopicRecord(asRecord(data).topic ?? data)\n )\n );\n },\n\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n const topicId = resolveTopicId(input);\n return gateway.request<TopicRecord>({\n path: \"/api/platform/v1/topics\",\n method: \"POST\",\n body: {\n ...input,\n ...(topicId ? { topicId } : {}),\n type: input.type ?? \"theme\",\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async update(\n topicId: string,\n input: TopicUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async getTree(topicId: string, query: TopicTreeQuery = {}) {\n return gateway.request<TopicTreeResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/tree${toQueryString(\n query\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n return {\n tree: Array.isArray(record.tree)\n ? record.tree.map(normalizeTopicTreeNode)\n : [],\n } as TopicTreeResponse;\n })\n );\n },\n\n async getCoverage(topicId: string, query: TopicCoverageQuery = {}) {\n return gateway.request<TopicCoverageResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/coverage${toQueryString(\n query\n )}`,\n });\n },\n\n async remove(topicId: string, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/remove\",\n method: \"POST\",\n body: { id: topicId },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async bulkCreate(input: TopicBulkCreateInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/bulk\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport type { ModulateConfidenceInput } from \"./beliefsClient\";\nimport {\n createOntologyClient,\n type OntologyBindingInput,\n} from \"./ontologyClient\";\nimport { createGraphClient } from \"./graphClient\";\nimport { createIdentityClient } from \"./identityClient\";\nimport {\n createTopicsClient,\n type TopicBulkCreateInput,\n type TopicCreateInput,\n type TopicCoverageQuery,\n type TopicListInput,\n type TopicTreeQuery,\n type TopicUpdateInput,\n} from \"./topicsClient\";\nimport type { GraphAnalyticsMetric, JsonObject } from \"./types\";\n\ntype GatewayRecord = Record<string, unknown>;\ntype GatewayList = GatewayRecord & { cursor?: string; total?: number };\n\ntype BeliefRecord = GatewayRecord & {\n id?: string;\n beliefId?: string;\n nodeId?: string;\n};\n\ntype BeliefsListResult = GatewayList & {\n beliefs?: BeliefRecord[];\n};\n\ntype BeliefsLineageResult = GatewayRecord & {\n beliefId?: string;\n lineage?: GatewayRecord[];\n};\n\ntype SearchResult = GatewayList & {\n beliefs?: GatewayRecord[];\n results?: GatewayRecord[];\n};\n\ntype GraphNeighborhoodInput = {\n globalId?: string;\n globalIds?: string | string[];\n maxDepth?: number;\n};\n\ntype GraphTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype GraphAnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\ntype GraphBiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n};\n\ntype GraphGapsInput = {\n topicId?: string;\n minConfidence?: number;\n};\n\ntype GraphFalsifyInput = {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n};\n\ntype EventsListResult = GatewayList & {\n events?: GatewayRecord[];\n};\n\ntype WebhooksListResult = GatewayList & {\n webhooks?: GatewayRecord[];\n};\n\ntype QuestionsListResult = GatewayList & {\n questions?: Array<GatewayRecord & { priority?: string }>;\n};\n\ntype ContradictionsListResult = GatewayList & {\n contradictions?: GatewayRecord[];\n};\n\ntype WorktreesListResult = GatewayList & {\n worktrees?: GatewayRecord[];\n};\n\ntype TaskListResult = GatewayList & {\n tasks?: GatewayRecord[];\n};\n\ntype EvidenceCreateResult = GatewayRecord & {\n id?: string;\n};\n\ntype EvidenceLinkResult = GatewayRecord & {\n edgeId?: string;\n};\n\ntype BeliefCreateInput = {\n topicId?: string;\n text: string;\n baseRate?: number;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsListQuery = {\n topicId?: string;\n status?: string;\n worktreeId?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype BeliefRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype BeliefForkInput = {\n text: string;\n forkReason?: string;\n rationale?: string;\n};\n\ntype BeliefConfidenceInput = ModulateConfidenceInput;\n\ntype BeliefArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\ntype BeliefContractInput = GatewayRecord;\n\ntype BeliefBisectInput = {\n expectedDirection: \"overconfident\" | \"underconfident\";\n timeRange?: {\n start: number;\n end: number;\n };\n};\n\ntype EdgeCreateInput = {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n};\n\ntype EdgeListQuery = {\n sourceId?: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EdgeTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype EvidenceCreateInput = {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n};\n\ntype EvidenceListQuery = {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceSearchInput = {\n q: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceLinkInput = {\n evidenceId: string;\n targetId: string;\n targetType?: \"belief\" | \"question\";\n weight?: number;\n rationale?: string;\n};\n\ntype QuestionsListQuery = {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype QuestionCreateInput = {\n topicId?: string;\n text: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n};\n\ntype QuestionAnswerInput = {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n};\n\ntype QuestionRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype QuestionArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\ntype QuestionStatusInput = {\n status: string;\n rationale?: string;\n};\n\ntype SearchQueryInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype TaskCreateInput = {\n topicId?: string;\n title: string;\n description?: string;\n taskType?: string;\n priority?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n};\n\ntype TaskUpdateInput = {\n id: string;\n title?: string;\n description?: string;\n priority?: string;\n status?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n metadata?: JsonObject;\n};\n\ntype TaskCompleteInput = {\n id: string;\n outputSummary: string;\n};\n\ntype TaskListQuery = {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n limit?: number;\n};\n\ntype WorktreeCreateInput = {\n title: string;\n topicId?: string;\n objective?: string;\n hypothesis?: string;\n beliefIds?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n};\n\ntype WorktreeListQuery = {\n topicId?: string;\n status?: string;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n};\n\ntype WorktreeActivateInput = {\n id: string;\n};\n\ntype WorktreeUpdateInput = {\n id: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n status?: string;\n topicId?: string;\n additionalTopicIds?: string[];\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\ntype WorktreeMergeInput = {\n id: string;\n summary?: string;\n outcomes: Array<{\n beliefId: string;\n confidence: number;\n rationale: string;\n }>;\n};\n\ntype WorktreeTargetsInput = {\n id: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\ntype OntologyListInput = {\n tenantId?: string;\n tier?: string;\n status?: string;\n};\n\ntype OntologyMatchInput = GatewayRecord;\n\ntype WebhookCreateInput = GatewayRecord;\ntype WebhookUpdateInput = GatewayRecord;\ntype WebhookListQuery = {\n topicId?: string;\n};\ntype WebhookTestInput = {\n topicId?: string;\n};\ntype WebhookDeliveriesQuery = {\n limit?: number;\n};\n\ntype EventsListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\ntype ReplayEventsInput = GatewayRecord;\n\nfunction serializeTypes(types: string[] | undefined) {\n return Array.isArray(types) && types.length > 0 ? types.join(\",\") : undefined;\n}\n\nexport function createBeliefsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: BeliefCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: BeliefsListQuery\n ): Promise<PlatformGatewaySuccess<BeliefsListResult>> {\n return gateway.request<BeliefsListResult>({\n path: `/api/platform/v1/beliefs${toQueryString({\n topicId: query.topicId,\n status: query.status,\n worktreeId: query.worktreeId,\n minConfidence: query.minConfidence,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async refine(\n id: string,\n input: BeliefRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async fork(\n id: string,\n input: BeliefForkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/fork`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConfidence(\n id: string,\n input: BeliefConfidenceInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence`,\n method: \"POST\",\n body: normalizeBeliefConfidenceInput(input),\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateRationale(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async linkBeliefs(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async unlinkEvidence(\n input: {\n beliefNodeId?: string;\n beliefId?: string;\n insightId?: string;\n evidenceId?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateCriticality(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchUpdateCriticality(\n input: {\n updates: GatewayRecord[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async reassignTopic(\n input: {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: BeliefArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async lineage(\n id: string\n ): Promise<PlatformGatewaySuccess<BeliefsLineageResult>> {\n return gateway.request<BeliefsLineageResult>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/lineage`,\n });\n },\n\n async confidenceHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async opinionHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async createContract(\n id: string,\n input: BeliefContractInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/contracts`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bisect(\n id: string,\n input: BeliefBisectInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/bisect`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createContradictionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async flag(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/contradictions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }\n ): Promise<PlatformGatewaySuccess<ContradictionsListResult>> {\n return gateway.request<ContradictionsListResult>({\n path: `/api/platform/v1/contradictions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/contradictions/${encodeURIComponent(id)}`,\n });\n },\n };\n}\n\nexport function createEdgesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EdgeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: EdgeListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/edges${toQueryString({\n sourceId: query.sourceId,\n edgeType: query.edgeType,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async traverse(\n input: EdgeTraverseInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/traverse\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: {\n edgeId: string;\n weight?: number;\n confidence?: number;\n context?: string;\n derivationType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: { edgeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async removeBetween(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove-between\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: {\n edges: GatewayRecord[];\n skipLayerValidation?: boolean;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: { edgeIds: string[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEvidenceFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EvidenceCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceCreateResult>> {\n return gateway.request<EvidenceCreateResult>({\n path: \"/api/platform/v1/evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: EvidenceListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/evidence${toQueryString({\n topicId: query.topicId,\n targetId: query.targetId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async link(\n input: EvidenceLinkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceLinkResult>> {\n return gateway.request<EvidenceLinkResult>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(input.evidenceId)}/link`,\n method: \"POST\",\n body: {\n targetId: input.targetId,\n targetType: input.targetType,\n weight: input.weight,\n rationale: input.rationale,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async search(\n query: EvidenceSearchInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: \"/api/platform/v1/evidence/search\",\n method: \"POST\",\n body: query as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async flagIncorrect(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/flag-incorrect\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateVerificationStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-verification-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEventsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(\n query: EventsListQuery = {}\n ): Promise<PlatformGatewaySuccess<EventsListResult>> {\n return gateway.request<EventsListResult>({\n path: `/api/platform/v1/events${toQueryString({\n topicId: query.topicId,\n after: query.after,\n types: serializeTypes(query.types),\n startTime: query.startTime,\n endTime: query.endTime,\n limit: query.limit,\n })}`,\n });\n },\n\n async replay(\n input: ReplayEventsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/events/replay\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createGraphFacade(config: GatewayClientConfig = {}) {\n const graphClient = createGraphClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async neighborhood(input: GraphNeighborhoodInput) {\n return graphClient.neighborhood({\n globalId: input.globalId,\n globalIds: Array.isArray(input.globalIds)\n ? input.globalIds.join(\",\")\n : input.globalIds,\n maxDepth: input.maxDepth,\n });\n },\n\n async traverse(input: GraphTraverseInput) {\n return graphClient.traverse(input);\n },\n\n async analyze(input: GraphAnalyzeInput = {}) {\n return graphClient.analyze(input);\n },\n\n async bias(input: GraphBiasInput = {}) {\n return graphClient.bias(input);\n },\n\n async gaps(input: GraphGapsInput) {\n return graphClient.gaps(input);\n },\n\n async falsify(\n input: GraphFalsifyInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/graph/falsify\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createIdentityFacade(config: GatewayClientConfig = {}) {\n const identityClient = createIdentityClient(config);\n\n return {\n async whoami() {\n const response = await identityClient.whoami();\n return Object.assign({}, response, response.data);\n },\n };\n}\n\nexport function createOntologiesFacade(config: GatewayClientConfig = {}) {\n const ontologyClient = createOntologyClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n async list(query: OntologyListInput = {}) {\n return ontologyClient.list(query);\n },\n\n async bind(\n input: OntologyBindingInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async match(\n input: OntologyMatchInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/ontologies/match\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createQuestionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: QuestionCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: QuestionsListQuery\n ): Promise<PlatformGatewaySuccess<QuestionsListResult>> {\n return gateway.request<QuestionsListResult>({\n path: `/api/platform/v1/questions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n priority: query.priority,\n worktreeId: query.worktreeId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async answer(\n id: string,\n input: QuestionAnswerInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/answer`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async refine(\n id: string,\n input: QuestionRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/refine`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: QuestionArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n id: string,\n input: QuestionStatusInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/status`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async add(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/add\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updatePriority(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-priority\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advanceToConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/advance-to-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async finalizeConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/finalize-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createSearchFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async query(\n input: SearchQueryInput\n ): Promise<PlatformGatewaySuccess<SearchResult>> {\n return gateway.request<SearchResult>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: input as JsonObject,\n });\n },\n };\n}\n\nexport function createTasksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: TaskCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/tasks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: TaskUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n metadata: input.metadata,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: TaskCompleteInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}/complete`,\n method: \"POST\",\n body: {\n outputSummary: input.outputSummary,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: TaskListQuery\n ): Promise<PlatformGatewaySuccess<TaskListResult>> {\n return gateway.request<TaskListResult>({\n path: `/api/platform/v1/tasks${toQueryString({\n topicId: query.topicId,\n worktreeId: query.worktreeId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n };\n}\n\nexport function createTopicsFacade(config: GatewayClientConfig = {}) {\n const topicsClient = createTopicsClient(config);\n\n return {\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n return topicsClient.create(input, idempotencyKey);\n },\n\n async get(id: string) {\n return topicsClient.get(id);\n },\n\n async list(query: TopicListInput = {}) {\n return topicsClient.list(query);\n },\n\n async update(\n input: TopicUpdateInput & { id: string },\n idempotencyKey?: string\n ) {\n const { id, ...rest } = input;\n return topicsClient.update(id, rest, idempotencyKey);\n },\n\n async tree(input: TopicTreeQuery & { id: string }) {\n return topicsClient.getTree(input.id, {\n maxDepth: input.maxDepth,\n });\n },\n\n async coverage(input: TopicCoverageQuery & { id: string }) {\n return topicsClient.getCoverage(input.id, {\n includeDescendants: input.includeDescendants,\n maxDepth: input.maxDepth,\n });\n },\n\n async remove(id: string, idempotencyKey = randomIdempotencyKey()) {\n return topicsClient.remove(id, idempotencyKey);\n },\n\n async bulkCreate(\n input: TopicBulkCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return topicsClient.bulkCreate(input, idempotencyKey);\n },\n };\n}\n\nexport function createWebhooksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WebhookCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/webhooks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WebhookListQuery = {}\n ): Promise<PlatformGatewaySuccess<WebhooksListResult>> {\n return gateway.request<WebhooksListResult>({\n path: `/api/platform/v1/webhooks${toQueryString({\n topicId: query.topicId,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n });\n },\n\n async update(\n id: string,\n input: WebhookUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n id: string,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey,\n });\n },\n\n async test(\n id: string,\n input: WebhookTestInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/test`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async deliveries(\n id: string,\n query: WebhookDeliveriesQuery = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/deliveries${toQueryString({\n limit: query.limit,\n })}`,\n });\n },\n\n async health(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/health`,\n });\n },\n };\n}\n\nexport function createWorktreesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WorktreeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WorktreeListQuery\n ): Promise<PlatformGatewaySuccess<WorktreesListResult>> {\n return gateway.request<WorktreesListResult>({\n path: `/api/platform/v1/worktrees${toQueryString({\n topicId: query.topicId,\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n });\n },\n\n async listCampaigns(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n } = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n\n async activate(\n input: WorktreeActivateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/activate`,\n method: \"POST\",\n body: {} as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: WorktreeUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n status: input.status,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async merge(\n input: WorktreeMergeInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/merge`,\n method: \"POST\",\n body: {\n summary: input.summary,\n outcomes: input.outcomes,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateTargets(\n input: WorktreeTargetsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/targets`,\n method: \"POST\",\n body: {\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advancePhase(\n input: { worktreeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async setPhase(\n input: { worktreeId: string; phase: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async patchState(\n input: { worktreeId: string; patch: GatewayRecord },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bulkCreate(\n input: { worktrees: unknown[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n normalizeTopicQuery,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentRecord,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n PendingJudgmentOutcomeRecord,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n TopicIdentifierInput,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n} from \"./types\";\n\n/** Configuration for the decisions client. */\nexport type DecisionsClientConfig = GatewayClientConfig;\n\n/** Input for recording a new judgment (irreversible decision commitment). */\nexport type RecordJudgmentInput = {\n title: string;\n summary?: string;\n rationale: string;\n topicId?: string;\n confidence?: number;\n decisionConfidence?: number;\n judgmentType?: string;\n decisionType?: string;\n beliefIds?: string[];\n keyUncertainties?: string[];\n alternativesConsidered?: string[];\n decisionMakers?: string[];\n companyId?: string;\n amount?: number;\n valuation?: number;\n terms?: string;\n themeIds?: string[];\n} & TopicIdentifierInput;\n\n/** Filter parameters for listing judgments within a topic scope. */\nexport type ListJudgmentsInput = {\n topicId?: string;\n includeArchived?: boolean;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for recording the real-world outcome of a judgment. */\nexport type RecordJudgmentOutcomeInput = {\n outcome:\n | \"pending\"\n | \"successful\"\n | \"unsuccessful\"\n | \"mixed\"\n | \"unknown\"\n | \"too_early\";\n outcomeNotes?: string;\n notes?: string;\n};\n\n/** Input for retrieving judgment calibration analytics. */\nexport type GetJudgmentCalibrationInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for listing judgments still awaiting outcome review. */\nexport type ListPendingJudgmentOutcomeReviewInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for checking audit integrity of judgment state transitions. */\nexport type GetJudgmentTransitionAuditIntegrityInput = {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n} & TopicIdentifierInput;\n\n/**\n * Create the judgments client for decision lifecycle operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage judgments, outcomes, readiness, and calibration.\n */\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List judgments for a topic scope.\n */\n async listJudgments(query: ListJudgmentsInput) {\n return gateway.request<ListJudgmentsResponse>({\n path: `/api/platform/v1/graph/judgments${toQueryString({\n ...normalizeTopicQuery(query),\n includeArchived:\n typeof query.includeArchived === \"boolean\"\n ? query.includeArchived\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const judgments = rows.map((row) =>\n withTopicAlias(row as Record<string, unknown>) as JudgmentRecord\n );\n return {\n ...createListResult(judgments, \"judgments\"),\n } as ListJudgmentsResponse;\n })\n );\n },\n\n /**\n * Get a single judgment by identifier.\n */\n async getJudgment(judgmentId: string) {\n return gateway.request<GetJudgmentResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n data && typeof data === \"object\"\n ? (withTopicAlias(\n data as Record<string, unknown>\n ) as GetJudgmentResponse)\n : data\n )\n );\n },\n\n /**\n * Get readiness signals for creating a judgment.\n */\n async getJudgmentReadiness(query: {\n topicId?: string;\n } & TopicIdentifierInput) {\n return gateway.request<JudgmentReadinessResponse>({\n path: `/api/platform/v1/graph/judgments/readiness${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Get calibration analytics for judgment outcomes.\n */\n async getJudgmentCalibration(query: GetJudgmentCalibrationInput) {\n return gateway.request<JudgmentCalibrationResponse>({\n path: `/api/platform/v1/graph/judgments/calibration${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * List judgments still awaiting outcome review.\n */\n async listPendingOutcomeReviews(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return gateway.request<PendingJudgmentOutcomeReviewResponse>({\n path: `/api/platform/v1/graph/judgments/pending-outcome-review${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const reviews = rows.map((row) =>\n withTopicAlias(\n row as Record<string, unknown>\n ) as PendingJudgmentOutcomeRecord\n );\n return createListResult(reviews, \"reviews\");\n })\n );\n },\n\n /**\n * @deprecated Use listPendingOutcomeReviews.\n */\n async listPendingJudgmentOutcomeReview(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return this.listPendingOutcomeReviews(query);\n },\n\n /**\n * Get audit integrity checks for judgment transitions.\n */\n async getJudgmentTransitionAuditIntegrity(\n query: GetJudgmentTransitionAuditIntegrityInput\n ) {\n return gateway.request<JudgmentTransitionAuditIntegrityResponse>({\n path: `/api/platform/v1/graph/judgments/transition-audit-integrity${toQueryString(\n {\n ...normalizeTopicQuery(query),\n judgmentId: query.judgmentId,\n includePassing:\n typeof query.includePassing === \"boolean\"\n ? query.includePassing\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n });\n },\n\n /**\n * Create a judgment.\n */\n async createJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return gateway.request<RecordJudgmentResponse>({\n path: \"/api/platform/v1/graph/judgments\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as RecordJudgmentResponse\n )\n );\n },\n\n /**\n * @deprecated Use createJudgment.\n */\n async recordJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return this.createJudgment(input, idempotencyKey);\n },\n\n /**\n * Update the outcome for an existing judgment.\n */\n async updateJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<RecordJudgmentOutcomeResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}/outcome`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use updateJudgmentOutcome.\n */\n async recordJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return this.updateJudgmentOutcome(judgmentId, input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EmbeddingsClientConfig = GatewayClientConfig;\n\nexport const EMBEDDINGS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeIds\",\n \"nodeType\",\n \"embeddingModel\",\n \"queryText\",\n \"queryVector\",\n \"minScore\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type EmbeddingProvenance = {\n sourceNodeId?: string;\n sourceGlobalId?: string;\n embeddingModel?: string;\n embeddedAt?: number;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EmbeddingRecord = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n vectorDimensions?: number;\n hasEmbedding?: boolean;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type MissingEmbeddingCandidate = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n reason?: string;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type VectorSearchMatch = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n score: number;\n text?: string;\n title?: string;\n embeddingModel?: string;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n};\n\nexport type GetEmbeddingsByNodeIdsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListMissingEmbeddingsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type VectorSearchByTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n queryText?: string;\n queryVector?: number[];\n nodeType?: string;\n embeddingModel?: string;\n minScore?: number;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type MarkEmbeddingBackfillQueuedInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n metadata?: JsonObject;\n};\n\nexport type EmbeddingsLookupResponse = ListResult<EmbeddingRecord, \"embeddings\">;\nexport type MissingEmbeddingsResponse = ListResult<\n MissingEmbeddingCandidate,\n \"nodes\"\n>;\nexport type VectorSearchResponse = ListResult<VectorSearchMatch, \"results\">;\n\nfunction assertNodeIds(nodeIds: string[]) {\n if (!Array.isArray(nodeIds) || nodeIds.length === 0) {\n throw new Error(\"nodeIds is required\");\n }\n}\n\nfunction missingQuery(input: ListMissingEmbeddingsInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n nodeType: input.nodeType,\n embeddingModel: input.embeddingModel,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createEmbeddingsClient(config: EmbeddingsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n getByNodeIds(input: GetEmbeddingsByNodeIdsInput) {\n assertNodeIds(input.nodeIds);\n return gateway.request<EmbeddingsLookupResponse>({\n path: \"/api/platform/v1/embeddings/by-node-ids\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.getByNodeIds\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EmbeddingRecord, \"embeddings\">(\n data,\n \"embeddings\"\n )\n )\n );\n },\n\n listMissingForTopic(input: ListMissingEmbeddingsInput) {\n return gateway.request<MissingEmbeddingsResponse>({\n path: `/api/platform/v1/embeddings/missing${toQueryString(\n missingQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<MissingEmbeddingCandidate, \"nodes\">(\n data,\n \"nodes\"\n )\n )\n );\n },\n\n vectorSearchByTopic(input: VectorSearchByTopicInput) {\n if (!input.queryText && !input.queryVector) {\n throw new Error(\"queryText or queryVector is required\");\n }\n return gateway.request<VectorSearchResponse>({\n path: \"/api/platform/v1/embeddings/vector-search\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.vectorSearchByTopic\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<VectorSearchMatch, \"results\">(data, \"results\")\n )\n );\n },\n\n markEmbeddingBackfillQueued(\n input: MarkEmbeddingBackfillQueuedInput,\n idempotencyKey?: string\n ) {\n assertNodeIds(input.nodeIds);\n return gateway.request<{\n queued: number;\n topicId: string;\n workspaceId: string;\n nodeIds: string[];\n }>({\n path: \"/api/platform/v1/embeddings/backfill-queued\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.markEmbeddingBackfillQueued\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\nimport type {\n CompileContextInput,\n PublicCompiledContext,\n} from \"./contextTypes\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the context client. */\nexport type ContextClientConfig = GatewayClientConfig;\n\n/** Alias for the compiled context payload returned by the gateway. */\nexport type CompileContextResponse = PublicCompiledContext;\n\n/** Internal request shape for the context compile endpoint. */\ntype ContextClientRequest = {\n path: \"/api/platform/v1/context/compile\";\n method: \"POST\";\n body: Record<string, unknown>;\n};\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction cleanNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction cleanBoolean(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction buildCompileContextRequest(\n topicId: string,\n input: CompileContextInput = {}\n): ContextClientRequest {\n const payload: Record<string, unknown> = { topicId };\n\n const query = cleanString(input.query);\n if (query) {\n payload.query = query;\n }\n\n const budget = cleanNumber(input.budget) ?? cleanNumber(input.tokenBudget);\n if (budget !== undefined) {\n payload.budget = budget;\n }\n\n const ranking = cleanString(input.ranking) ?? cleanString(input.rankingProfile);\n if (ranking) {\n payload.ranking = ranking;\n }\n\n const limit = cleanNumber(input.limit);\n if (limit !== undefined) {\n payload.limit = limit;\n }\n\n const maxDepth = cleanNumber(input.maxDepth);\n if (maxDepth !== undefined) {\n payload.maxDepth = maxDepth;\n }\n\n const includeEntities = cleanBoolean(input.includeEntities);\n if (includeEntities !== undefined) {\n payload.includeEntities = includeEntities;\n }\n\n const mode = cleanString(input.mode);\n if (mode) {\n payload.mode = mode;\n }\n\n const includeFailures = cleanBoolean(input.includeFailures);\n if (includeFailures !== undefined) {\n payload.includeFailures = includeFailures;\n }\n\n const worktreeId = cleanString(input.worktreeId);\n if (worktreeId) {\n payload.worktreeId = worktreeId;\n }\n\n const sessionId = cleanString(input.sessionId);\n if (sessionId) {\n payload.sessionId = sessionId;\n }\n\n if (Array.isArray(input.packWeightOverrides) && input.packWeightOverrides.length > 0) {\n payload.packWeightOverrides = input.packWeightOverrides;\n }\n\n return {\n path: \"/api/platform/v1/context/compile\",\n method: \"POST\",\n body: payload,\n };\n}\n\n/**\n * Create the context client for compiling reasoning context packs.\n * @param config - Gateway transport configuration.\n * @returns An object with a `compile` method for building context packs.\n */\nexport function createContextClient(config: ContextClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Compile a focused reasoning context pack for a topic scope.\n * @param topicId - The topic to compile context for.\n * @param input - Optional compile parameters (query, budget, ranking, etc.).\n * @returns The compiled context payload with beliefs, questions, and evidence.\n */\n async compile(topicId: string, input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(topicId, input);\n return gateway.request<CompileContextResponse>({\n ...request,\n body: request.body as JsonObject,\n });\n },\n };\n}\n\nexport type { CompileContextInput, PublicCompiledContext } from \"./contextTypes\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphAnalysisClientConfig = GatewayClientConfig;\n\nexport const GRAPH_ANALYSIS_ANALYSIS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"healthScore\",\n \"findings\",\n \"suggestions\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_SUGGESTION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisId\",\n \"suggestions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_COMPUTE_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\ntype AnalysisPayloadField = (typeof GRAPH_ANALYSIS_ANALYSIS_FIELDS)[number];\ntype SuggestionPayloadField = (typeof GRAPH_ANALYSIS_SUGGESTION_FIELDS)[number];\ntype ComputePayloadField = (typeof GRAPH_ANALYSIS_COMPUTE_FIELDS)[number];\n\nexport type GraphAnalysisFinding = {\n id?: string;\n severity?: \"critical\" | \"warning\" | \"info\" | string;\n category?: string;\n title: string;\n description?: string;\n nodeIds?: string[];\n nodeLabels?: string[];\n detector?: string;\n importance?: number;\n totalCount?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestion = {\n suggestionId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: \"P0\" | \"P1\" | \"P2\" | \"P3\" | string;\n rationale?: string;\n status?: GraphAnalysisSuggestionStatus;\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestionStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphAnalysisRecord = {\n analysisId?: string;\n topicId: string;\n workspaceId: string;\n analysisType: string;\n healthScore?: number;\n findings?: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphAnalysisChangeRecord = {\n changeId?: string;\n analysisId?: string;\n topicId?: string;\n workspaceId?: string;\n changeType?: string;\n nodeIds?: string[];\n edgeIds?: string[];\n summary?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport type SaveGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType: string;\n healthScore: number;\n findings: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type ListGraphAnalysesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type GetLatestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n};\n\nexport type SaveGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisId?: string;\n suggestions: GraphAnalysisSuggestion[];\n metadata?: JsonObject;\n};\n\nexport type UpdateGraphSuggestionStatusInput = {\n suggestionId: string;\n status: GraphAnalysisSuggestionStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n findingId?: string;\n status?: GraphAnalysisSuggestionStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListGraphChangesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n since?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type ComputeOrRequestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisListResponse = ListResult<\n GraphAnalysisRecord,\n \"analyses\"\n>;\nexport type GraphAnalysisSuggestionsResponse = ListResult<\n GraphAnalysisSuggestion,\n \"suggestions\"\n>;\nexport type GraphAnalysisChangesResponse = ListResult<\n GraphAnalysisChangeRecord,\n \"changes\"\n>;\n\nfunction readTopicId(input: TopicProjectAliasInput): string | undefined {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: TopicProjectAliasInput): string {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction normalizeAnalysisPayload(input: SaveGraphAnalysisInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_ANALYSIS_FIELDS,\n \"graphAnalysis.saveAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<AnalysisPayloadField, unknown>;\n}\n\nfunction normalizeSuggestionPayload(input: SaveGraphSuggestionsInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_SUGGESTION_FIELDS,\n \"graphAnalysis.saveSuggestions\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<SuggestionPayloadField, unknown>;\n}\n\nfunction normalizeComputePayload(\n input: ComputeOrRequestGraphAnalysisInput\n): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_COMPUTE_FIELDS,\n \"graphAnalysis.computeOrRequestAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<ComputePayloadField, unknown>;\n}\n\nfunction graphAnalysisQuery(input: ListGraphAnalysesInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createGraphAnalysisClient(\n config: GraphAnalysisClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n saveAnalysis(input: SaveGraphAnalysisInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/analyses\",\n method: \"POST\",\n body: normalizeAnalysisPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listAnalyses(input: ListGraphAnalysesInput) {\n return gateway.request<GraphAnalysisListResponse>({\n path: `/api/platform/v1/graph-analysis/analyses${toQueryString(\n graphAnalysisQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { analyses?: unknown[] }).analyses)\n ? ((data as { analyses: GraphAnalysisRecord[] }).analyses)\n : Array.isArray(data)\n ? data\n : [],\n \"analyses\"\n )\n )\n );\n },\n\n getLatestAnalysis(input: GetLatestGraphAnalysisInput) {\n return gateway.request<GraphAnalysisRecord>({\n path: `/api/platform/v1/graph-analysis/analyses/latest${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n })}`,\n });\n },\n\n saveSuggestions(input: SaveGraphSuggestionsInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: \"/api/platform/v1/graph-analysis/suggestions\",\n method: \"POST\",\n body: normalizeSuggestionPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSuggestionStatus(\n input: UpdateGraphSuggestionStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisSuggestion>({\n path: `/api/platform/v1/graph-analysis/suggestions/${encodeURIComponent(\n input.suggestionId\n )}`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listSuggestions(input: ListGraphSuggestionsInput) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: `/api/platform/v1/graph-analysis/suggestions${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n findingId: input.findingId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { suggestions?: unknown[] }).suggestions)\n ? ((data as { suggestions: GraphAnalysisSuggestion[] }).suggestions)\n : Array.isArray(data)\n ? data\n : [],\n \"suggestions\"\n )\n )\n );\n },\n\n listGraphChanges(input: ListGraphChangesInput) {\n return gateway.request<GraphAnalysisChangesResponse>({\n path: `/api/platform/v1/graph-analysis/changes${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n since: input.since,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { changes?: unknown[] }).changes)\n ? ((data as { changes: GraphAnalysisChangeRecord[] }).changes)\n : Array.isArray(data)\n ? data\n : [],\n \"changes\"\n )\n )\n );\n },\n\n computeOrRequestAnalysis(\n input: ComputeOrRequestGraphAnalysisInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/compute\",\n method: \"POST\",\n body: normalizeComputePayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphRecommendationsClientConfig = GatewayClientConfig;\n\nexport const GRAPH_RECOMMENDATION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"limit\",\n \"cursor\",\n \"status\",\n \"findingId\",\n \"actionType\",\n \"targetNodeIds\",\n \"priority\",\n \"rationale\",\n \"healthScore\",\n \"metadata\",\n] as const;\n\nexport type GraphRecommendationStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphRecommendationPriority =\n | \"P0\"\n | \"P1\"\n | \"P2\"\n | \"P3\"\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\";\n\nexport type GraphRecommendationRecord = {\n recommendationId: string;\n topicId?: string;\n workspaceId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: GraphRecommendationPriority | string;\n rationale?: string;\n healthScore?: number;\n status?: GraphRecommendationStatus;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphRecommendationListInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n workspaceId?: string;\n limit?: number;\n cursor?: string;\n status?: GraphRecommendationStatus;\n findingId?: string;\n actionType?: string;\n priority?: GraphRecommendationPriority | string;\n targetNodeIds?: string[];\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type MarkGraphRecommendationStatusInput = {\n recommendationId: string;\n status: GraphRecommendationStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphRecommendationListResponse = ListResult<\n GraphRecommendationRecord,\n \"recommendations\"\n>;\n\nfunction readTopicId(input: { topicId?: string; projectId?: string }) {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: { topicId?: string; projectId?: string }) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys(\n input: Record<string, unknown>,\n operation: string\n) {\n const allowed = new Set<string>(GRAPH_RECOMMENDATION_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction listQuery(input: GraphRecommendationListInput) {\n assertKnownKeys(\n input as Record<string, unknown>,\n \"graphRecommendations.listForTopic\"\n );\n return {\n workspaceId: input.workspaceId,\n topicId: requireTopicId(input),\n limit: input.limit,\n cursor: input.cursor,\n status: input.status,\n findingId: input.findingId,\n actionType: input.actionType,\n priority: input.priority,\n targetNodeIds: input.targetNodeIds?.join(\",\"),\n healthScore: input.healthScore,\n };\n}\n\nexport function createGraphRecommendationsClient(\n config: GraphRecommendationsClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listForTopic(input: GraphRecommendationListInput) {\n return gateway.request<GraphRecommendationListResponse>({\n path: `/api/platform/v1/graph-recommendations${toQueryString(\n listQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(\n (data as { recommendations?: unknown[] }).recommendations\n )\n ? (data as { recommendations: GraphRecommendationRecord[] })\n .recommendations\n : Array.isArray(data)\n ? data\n : [],\n \"recommendations\"\n )\n )\n );\n },\n\n getRecommendation(recommendationId: string) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n recommendationId\n )}`,\n });\n },\n\n markRecommendationStatus(\n input: MarkGraphRecommendationStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n input.recommendationId\n )}/status`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphStateClassifierClientConfig = GatewayClientConfig;\n\nexport const GRAPH_STATE_CLASSIFIER_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeId\",\n \"epistemicStatus\",\n \"beliefMaturity\",\n \"answerQuality\",\n \"evidenceNetwork\",\n \"logicalRole\",\n \"questionPriority\",\n \"layer\",\n \"modelVersion\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type GraphStateClassification = {\n classificationId?: string;\n topicId: string;\n workspaceId?: string;\n nodeId?: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n confidence?: number;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ClassifyNodeInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type ClassifyTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n modelVersion?: string;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphStateClassificationsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n nodeId?: string;\n modelVersion?: string;\n layer?: string;\n epistemicStatus?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordGraphStateClassificationInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphStateClassificationsResponse = ListResult<\n GraphStateClassification,\n \"classifications\"\n>;\n\nfunction normalizeRecordPayload(input: RecordGraphStateClassificationInput) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return topicPayload(\n input as RecordGraphStateClassificationInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.recordClassification\"\n );\n}\n\nexport function createGraphStateClassifierClient(\n config: GraphStateClassifierClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n classifyNode(input: ClassifyNodeInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classify-node\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyNodeInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyNode\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n classifyTopic(input: ClassifyTopicInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n return gateway.request<GraphStateClassificationsResponse>({\n path: \"/api/platform/v1/graph-state-classifier/classify-topic\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyTopicInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyTopic\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n listClassifications(input: ListGraphStateClassificationsInput) {\n return gateway.request<GraphStateClassificationsResponse>({\n path: `/api/platform/v1/graph-state-classifier/classifications${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n nodeId: input.nodeId,\n modelVersion: input.modelVersion,\n layer: input.layer,\n epistemicStatus: input.epistemicStatus,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n recordClassification(\n input: RecordGraphStateClassificationInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classifications\",\n method: \"POST\",\n body: normalizeRecordPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the harness client. Inherits gateway transport settings. */\nexport type HarnessClientConfig = GatewayClientConfig;\n\nexport type HarnessAgentGuardrails = {\n isolationMode?: \"direct\" | \"sandbox\";\n maxExecutionMs?: number;\n heartbeatIntervalMs?: number;\n maxToolCalls?: number;\n allowNetworkEgress?: boolean;\n allowedOrigins?: string[];\n};\n\nexport type HarnessAgentRuntimeConfig = {\n entryPoint?: string;\n callbackUrl?: string;\n modelRouting?: \"model_machine\" | \"tenant_proxy\" | \"bring_your_own\";\n auditMode?: \"harness\" | \"master_control\";\n};\n\n/** Input for creating or updating an agent definition in the harness registry. */\nexport type HarnessAgentWriteInput = GatewayScope & {\n agentDefinitionId?: string;\n agentKey: string;\n displayName: string;\n description: string;\n version: string;\n status?: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n scopeRequirements?: string[];\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n promptName?: string;\n systemPrompt?: string;\n toolIds?: string[];\n modelSlot?: string;\n requiredModelCapabilities?: string[];\n parameterSchema?: JsonObject;\n outputSchema?: JsonObject;\n guardrails?: HarnessAgentGuardrails;\n runtimeConfig?: HarnessAgentRuntimeConfig;\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a tool definition in the harness registry. */\nexport type HarnessToolWriteInput = GatewayScope & {\n toolId?: string;\n toolName: string;\n description: string;\n version: string;\n status?: \"draft\" | \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification?: \"core\" | \"shimmed\";\n scopeRequirements?: string[];\n requiredRole?: string;\n requiredAction?: string;\n surfaces?: string[];\n category?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n callbackUrl?: string;\n safetyMetadata: {\n readOnly?: boolean;\n idempotent?: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\nexport type HarnessExecuteToolInput = GatewayScope & {\n input?: JsonObject;\n version?: string;\n transportKind?: string;\n};\n\nexport type HarnessExecuteToolResult = {\n tool: {\n toolId: string;\n toolName: string;\n version: string;\n status: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification: \"core\" | \"shimmed\";\n scopeRequirements: string[];\n safetyMetadata: {\n readOnly: boolean;\n idempotent: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n };\n execution: {\n input: JsonObject;\n transportKind: string;\n startedAt: number;\n completedAt: number;\n durationMs: number;\n };\n envelope: JsonObject | null;\n audit: {\n toolName: string;\n contractName: string;\n transportKind: string;\n authMode: string;\n requiredScopes: string[];\n source: \"gateway_envelope\";\n isError: boolean;\n code?: string;\n status?: number;\n correlationId?: string | null;\n policyTraceId?: string | null;\n invariant?: string | null;\n } | null;\n output: {\n isError: boolean;\n parsed: JsonValue;\n raw: JsonValue;\n };\n};\n\n/** Input for starting a new harness run (agent execution session). */\nexport type HarnessStartRunInput = GatewayScope & {\n agentDefinitionId: string;\n agentVersion: string;\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n chatId?: string;\n worktreeId?: string;\n topicId?: string;\n langfuseTraceId?: string;\n metadata?: JsonObject;\n} & TopicIdentifierInput;\n\nexport type HarnessInvokeManagedAgentInput = GatewayScope & {\n agentDefinitionId: string;\n input?: JsonObject;\n metadata?: JsonObject;\n};\n\n/** Input for reporting a ledger event (tool call, prompt resolution, or policy decision) within a run. */\nexport type HarnessRunReportInput = {\n reportingToken: string;\n type: \"tool_call\" | \"prompt_resolution\" | \"policy_decision\";\n metadata?: JsonObject;\n toolCallId?: string;\n toolName?: string;\n executionAdapter?:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n policyDecisionId?: string;\n requiredScopes?: string[];\n policyResult?: \"allowed\" | \"denied\";\n policyReasonCode?: string;\n inputHash?: string;\n outputHash?: string;\n durationMs?: number;\n success?: boolean;\n startedAt?: number;\n completedAt?: number;\n input?: JsonObject;\n result?: JsonValue;\n promptKey?: string;\n promptVersion?: string;\n decision?: string;\n reasonCode?: string;\n latencyMs?: number;\n error?:\n | string\n | {\n code?: string;\n message: string;\n details?: JsonValue;\n };\n};\n\n/** Input for completing a harness run with a terminal status. */\nexport type HarnessCompleteRunInput = {\n reportingToken: string;\n status: \"completed\" | \"failed\" | \"timeout\";\n error?: {\n category:\n | \"policy_denied\"\n | \"tool_execution\"\n | \"prompt_resolution\"\n | \"model_error\"\n | \"timeout\"\n | \"heartbeat_timeout\"\n | \"input_validation\"\n | \"internal\"\n | \"external_service\";\n message: string;\n code?: string;\n };\n};\n\n/**\n * Create the harness client for agent and tool registry operations.\n */\nexport function createHarnessClient(config: HarnessClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List agent definitions.\n */\n async listAgentDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"agents\")\n )\n );\n },\n\n /**\n * Get an agent definition.\n */\n async getAgentDefinition(agentId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create an agent definition.\n */\n async createAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/agents\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createAgentDefinition.\n */\n async registerAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return this.createAgentDefinition(input, idempotencyKey);\n },\n\n /**\n * Update an agent definition.\n */\n async updateAgentDefinition(\n agentId: string,\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Invoke a managed agent definition.\n */\n async invokeManagedAgentDefinition(\n agentId: string,\n input: Omit<HarnessInvokeManagedAgentInput, \"agentDefinitionId\">,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs`,\n method: \"POST\",\n body: {\n agentDefinitionId: agentId,\n ...input,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List runs for an agent definition.\n */\n async listAgentRuns(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listAgentRuns.\n */\n async listRunsForAgent(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listAgentRuns(agentId, scope);\n },\n\n /**\n * List tool definitions.\n */\n async listToolDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n gateClassification?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"tools\")\n )\n );\n },\n\n /**\n * Get a tool definition.\n */\n async getToolDefinition(toolId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a tool definition.\n */\n async createToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/tools\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createToolDefinition.\n */\n async registerToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return this.createToolDefinition(input, idempotencyKey);\n },\n\n /**\n * Update a tool definition.\n */\n async updateToolDefinition(\n toolId: string,\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Execute a tool definition.\n */\n async executeToolDefinition(\n toolId: string,\n input: HarnessExecuteToolInput = {}\n ) {\n return gateway.request<HarnessExecuteToolResult>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}/execute`,\n method: \"POST\",\n body: input,\n });\n },\n\n /**\n * List run ledger entries.\n */\n async listRunEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listRunEntries.\n */\n async listRunLedgerEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listRunEntries(scope);\n },\n\n /**\n * Create a harness run.\n */\n async startHarnessRun(\n input: HarnessStartRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/runs\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a run ledger entry.\n */\n async getRunLedgerEntry(runId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}`,\n });\n },\n\n /**\n * Update a harness run with a ledger event.\n */\n async reportHarnessRunEvent(\n runId: string,\n input: HarnessRunReportInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/report`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a harness run heartbeat.\n */\n async heartbeatHarnessRun(\n runId: string,\n input: { reportingToken: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/heartbeat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a harness run.\n */\n async completeHarnessRun(\n runId: string,\n input: HarnessCompleteRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List prompt resolutions.\n */\n async listPromptResolutions(\n query: { runId?: string; promptName?: string; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/prompts${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"prompts\")\n )\n );\n },\n\n /**\n * Get the harness scope taxonomy.\n */\n async getScopeTaxonomy() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/scopes\",\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type JobsClientConfig = GatewayClientConfig;\n\nexport const JOBS_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"jobId\",\n \"jobType\",\n \"payload\",\n \"status\",\n \"attempt\",\n \"runId\",\n \"queue\",\n \"priority\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type JobStatus =\n | \"queued\"\n | \"claimed\"\n | \"running\"\n | \"succeeded\"\n | \"failed\"\n | \"cancelled\";\n\nexport type JobRecord = {\n jobId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType: string;\n payload?: JsonObject | null;\n status: JobStatus | string;\n attempt?: number;\n runId?: string;\n queue?: string;\n priority?: string;\n error?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type JobRunRecord = {\n runId: string;\n jobId?: string;\n tenantId: string;\n workspaceId?: string;\n status: JobStatus | string;\n startedAt?: number;\n finishedAt?: number;\n metadata?: JsonObject | null;\n};\n\nexport type JobsScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType?: string;\n status?: JobStatus;\n queue?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EnqueueJobInput = JobsScope & {\n jobType: string;\n payload?: JsonObject;\n priority?: string;\n metadata?: JsonObject;\n};\n\nexport type ClaimJobInput = JobsScope & {\n jobType?: string;\n};\n\nexport type UpdateJobStatusInput = JobsScope & {\n jobId: string;\n status: JobStatus;\n attempt?: number;\n runId?: string;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type RetryJobInput = JobsScope & {\n jobId: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunStartInput = JobsScope & {\n jobId?: string;\n runId?: string;\n jobType?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunFinishInput = JobsScope & {\n runId: string;\n jobId?: string;\n status: JobStatus;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type JobsResponse = ListResult<JobRecord, \"jobs\">;\n\nfunction query(input: JobsScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n jobType: input.jobType,\n status: input.status,\n queue: input.queue,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, JOBS_FIELDS, operation);\n}\n\nexport function createJobsClient(config: JobsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n enqueue(input: EnqueueJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobType, \"jobType\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.enqueue\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n list(input: JobsScope) {\n return gateway.request<JobsResponse>({\n path: `/api/platform/v1/jobs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<JobRecord, \"jobs\">(data, \"jobs\")\n )\n );\n },\n\n claim(input: ClaimJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs/claim\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.claim\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateStatus(input: UpdateJobStatusInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.updateStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n retry(input: RetryJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/retry`,\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.retry\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunStart(input: RecordJobRunStartInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRunRecord>({\n path: \"/api/platform/v1/jobs/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunStart\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunFinish(input: RecordJobRunFinishInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<JobRunRecord>({\n path: `/api/platform/v1/jobs/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunFinish\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\n/** Configuration for the learning client. */\nexport type LearningClientConfig = GatewayClientConfig;\n\n/**\n * Create the learning client for execution telemetry reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list executions and retrieve stats.\n */\nexport function createLearningClient(config: LearningClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List recent execution records.\n */\n async listRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/recent${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n success:\n typeof args.success === \"boolean\"\n ? args.success\n ? \"true\"\n : \"false\"\n : undefined,\n limit:\n typeof args.limit === \"number\" && Number.isFinite(args.limit)\n ? String(args.limit)\n : undefined,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"executions\")\n )\n );\n },\n\n /**\n * @deprecated Use listRecentExecutions.\n */\n async getRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return this.listRecentExecutions(args);\n },\n\n /**\n * Get aggregate execution statistics.\n */\n async getExecutionStats(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n hours?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/stats${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n hours:\n typeof args.hours === \"number\" && Number.isFinite(args.hours)\n ? String(args.hours)\n : undefined,\n })}`,\n });\n },\n };\n}\n","import type {\n McpGatewayBootstrapRequest,\n McpGatewayBootstrapResponse,\n McpGatewayBeginBuildSessionRequest,\n McpGatewayBeginBuildSessionResponse,\n McpGatewayContractEvaluationResponse,\n McpGatewayEvaluateEngineeringContractRequest,\n McpGatewayEvaluateResearchContractRequest,\n McpGatewayWritePolicyCheckRequest,\n McpGatewayWritePolicyCheckResponse,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT,\n MCP_GATEWAY_BOOTSTRAP_ENDPOINT,\n MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT,\n MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT,\n MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n toQueryString,\n} from \"./coreClient\";\nimport type { JsonValue } from \"./types\";\n\nexport type McpClientConfig = GatewayClientConfig;\n\nexport type McpBootstrapSessionInput = GatewayScope &\n McpGatewayBootstrapRequest;\n\nexport type McpBootstrapSessionResponse =\n PlatformGatewaySuccess<McpGatewayBootstrapResponse>;\n\nexport type McpCheckWritePolicyInput = GatewayScope &\n McpGatewayWritePolicyCheckRequest;\n\nexport type McpCheckWritePolicyResponse =\n PlatformGatewaySuccess<McpGatewayWritePolicyCheckResponse>;\n\nexport type McpBeginBuildSessionInput = GatewayScope &\n McpGatewayBeginBuildSessionRequest;\n\nexport type McpBeginBuildSessionResponse =\n PlatformGatewaySuccess<McpGatewayBeginBuildSessionResponse>;\n\nexport type McpEvaluateEngineeringContractInput = GatewayScope &\n McpGatewayEvaluateEngineeringContractRequest;\n\nexport type McpEvaluateResearchContractInput = GatewayScope &\n McpGatewayEvaluateResearchContractRequest;\n\nexport type McpContractEvaluationResponse =\n PlatformGatewaySuccess<McpGatewayContractEvaluationResponse>;\n\nfunction toJsonValue(value: unknown): JsonValue | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_key, candidate) => {\n if (typeof candidate === \"bigint\") {\n return candidate.toString();\n }\n\n if (\n typeof candidate === \"function\" ||\n typeof candidate === \"symbol\" ||\n typeof candidate === \"undefined\"\n ) {\n return undefined;\n }\n\n if (candidate && typeof candidate === \"object\") {\n if (seen.has(candidate)) {\n return \"[Circular]\";\n }\n seen.add(candidate);\n }\n\n return candidate;\n });\n\n if (json === undefined) {\n return undefined;\n }\n\n return JSON.parse(json) as JsonValue;\n}\n\nexport function createMcpClient(config: McpClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n bootstrapSession(\n input: McpBootstrapSessionInput = {}\n ): Promise<McpBootstrapSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n const body: McpGatewayBootstrapRequest = {\n transportKind: input.transportKind,\n sessionId: input.sessionId,\n agentIdentity: input.agentIdentity,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBootstrapResponse>({\n path: `${MCP_GATEWAY_BOOTSTRAP_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body,\n });\n },\n\n checkWritePolicy(\n input: McpCheckWritePolicyInput\n ): Promise<McpCheckWritePolicyResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayWritePolicyCheckResponse>({\n path: `${MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n role: input.role,\n toolName: input.toolName,\n },\n });\n },\n\n beginBuildSession(\n input: McpBeginBuildSessionInput\n ): Promise<McpBeginBuildSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBeginBuildSessionResponse>({\n path: `${MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n worktreeId: input.worktreeId,\n branch: input.branch,\n branchBase: input.branchBase,\n prBase: input.prBase,\n sessionMode: input.sessionMode,\n activateIfPlanning: input.activateIfPlanning,\n },\n });\n },\n\n evaluateEngineeringContract(\n input: McpEvaluateEngineeringContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n testOutput: toJsonValue(input.testOutput),\n tscOutput: toJsonValue(input.tscOutput),\n lintOutput: toJsonValue(input.lintOutput),\n sentryData: toJsonValue(input.sentryData),\n },\n });\n },\n\n evaluateResearchContract(\n input: McpEvaluateResearchContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n metricData: toJsonValue(input.metricData),\n referenceCheckData: toJsonValue(input.referenceCheckData),\n marketIndexData: toJsonValue(input.marketIndexData),\n temporalData: toJsonValue(input.temporalData),\n },\n });\n },\n };\n}\n","/* GENERATED by scripts/generate-api-surface.ts. DO NOT EDIT. */\n\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n type PlatformGatewaySuccess,\n} from \"../coreClient\";\nimport type { JsonObject } from \"../types\";\n\nexport type FunctionSurfaceClientConfig = GatewayClientConfig;\nexport type FunctionSurfaceInput = JsonObject;\nexport type FunctionSurfaceResult<T = unknown> = Promise<PlatformGatewaySuccess<T>>;\nexport const FUNCTION_SURFACE_METHOD_PATHS = [\n \"answers.answerQuestion\",\n \"answers.createAnswer\",\n \"answers.getAnswer\",\n \"beliefs.archiveBelief\",\n \"beliefs.bisectConfidence\",\n \"beliefs.createBelief\",\n \"beliefs.forkBelief\",\n \"beliefs.getBelief\",\n \"beliefs.getConfidenceHistory\",\n \"beliefs.listBeliefs\",\n \"beliefs.modulateConfidence\",\n \"beliefs.refineBelief\",\n \"beliefs.searchBeliefs\",\n \"bootstrap.generateSessionHandoff\",\n \"coding.getChangeHistory\",\n \"coding.getCodeContext\",\n \"coding.getFailureLog\",\n \"coding.recordAttempt\",\n \"context.analyzeTopicDensity\",\n \"context.applyAutoBranching\",\n \"context.compileContext\",\n \"context.discover\",\n \"context.discoverEntityConnections\",\n \"context.getLatticeCoverage\",\n \"context.recordScopeLearning\",\n \"context.seedBeliefLattice\",\n \"context.triggerBeliefReview\",\n \"contracts.createEpistemicContract\",\n \"contracts.evaluateContract\",\n \"contracts.getContractStatus\",\n \"contradictions.flagContradiction\",\n \"coordination.broadcastMessage\",\n \"coordination.claimFiles\",\n \"coordination.endSession\",\n \"coordination.getAgentInbox\",\n \"coordination.heartbeatSession\",\n \"coordination.listActiveSessions\",\n \"coordination.registerSession\",\n \"coordination.sendAgentMessage\",\n \"edges.createEdge\",\n \"edges.queryLineage\",\n \"evidence.addEvidence\",\n \"evidence.createEvidence\",\n \"evidence.getEvidence\",\n \"evidence.linkEvidence\",\n \"evidence.linkEvidenceToBelief\",\n \"evidence.linkEvidenceToQuestion\",\n \"evidence.listEvidence\",\n \"evidence.searchEvidence\",\n \"graph.detectConfirmationBias\",\n \"graph.findContradictions\",\n \"graph.getGraphGaps\",\n \"graph.getGraphNeighborhood\",\n \"graph.getGraphStructureAnalysis\",\n \"graph.getTopicCoverage\",\n \"graph.traceEntityImpact\",\n \"graph.traverseGraph\",\n \"identity.checkPermission\",\n \"identity.filterByPermission\",\n \"identity.whoami\",\n \"judgments.getAuditTrail\",\n \"judgments.recordJudgment\",\n \"lenses.applyLensToTopic\",\n \"lenses.createLens\",\n \"lenses.listLenses\",\n \"lenses.removeLensFromTopic\",\n \"observations.getObservationContext\",\n \"observations.ingestObservation\",\n \"ontologies.applyOntology\",\n \"ontologies.archiveOntology\",\n \"ontologies.createOntology\",\n \"ontologies.createOntologyVersion\",\n \"ontologies.deprecateOntologyVersion\",\n \"ontologies.getOntology\",\n \"ontologies.listOntologies\",\n \"ontologies.matchEntityType\",\n \"ontologies.publishOntologyVersion\",\n \"ontologies.resolveEffectiveOntology\",\n \"ontologies.updateOntology\",\n \"policy.manageWritePolicy\",\n \"questions.archiveQuestion\",\n \"questions.createQuestion\",\n \"questions.findMissingQuestions\",\n \"questions.getFalsificationQuestions\",\n \"questions.getHighPriorityQuestions\",\n \"questions.getQuestion\",\n \"questions.listQuestions\",\n \"questions.refineQuestion\",\n \"questions.updateQuestionStatus\",\n \"tasks.completeTask\",\n \"tasks.createTask\",\n \"tasks.listTasks\",\n \"tasks.updateTask\",\n \"topics.createTopic\",\n \"topics.getTopic\",\n \"topics.getTopicTree\",\n \"topics.listTopics\",\n \"topics.updateTopic\",\n \"worktrees.activateWorktree\",\n \"worktrees.addWorktree\",\n \"worktrees.listAllWorktrees\",\n \"worktrees.listCampaigns\",\n \"worktrees.listWorktrees\",\n \"worktrees.merge\",\n \"worktrees.openPullRequest\",\n \"worktrees.pipelineSnapshot\",\n \"worktrees.push\",\n \"worktrees.updateWorktreeMetadata\",\n \"worktrees.updateWorktreeTargets\"\n] as const;\n\nconst CONTRACTS = {\n \"activate_worktree\": { method: \"POST\", path: \"/worktrees/activate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"add_evidence\": { method: \"POST\", path: \"/evidence/add\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"add_worktree\": { method: \"POST\", path: \"/worktrees\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"analyze_topic_density\": { method: \"POST\", path: \"/scope/topic-density\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"answer_question\": { method: \"POST\", path: \"/questions/answer\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"apply_auto_branching\": { method: \"POST\", path: \"/scope/auto-branching\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"apply_lens_to_topic\": { method: \"POST\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"apply_ontology\": { method: \"POST\", path: \"/ontologies/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"archive_belief\": { method: \"DELETE\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"archive_ontology\": { method: \"DELETE\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"archive_question\": { method: \"DELETE\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"bisect_confidence\": { method: \"POST\", path: \"/beliefs/confidence/bisect\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"broadcast_message\": { method: \"POST\", path: \"/coordination/messages/broadcast\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"check_permission\": { method: \"POST\", path: \"/identity/check-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"claim_files\": { method: \"POST\", path: \"/coordination/file-claims\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"compile_context\": { method: \"POST\", path: \"/context/compile\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"complete_task\": { method: \"POST\", path: \"/tasks/complete\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_answer\": { method: \"POST\", path: \"/answers\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_belief\": { method: \"POST\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_edge\": { method: \"POST\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"create_epistemic_contract\": { method: \"POST\", path: \"/contracts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_evidence\": { method: \"POST\", path: \"/evidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_lens\": { method: \"POST\", path: \"/lenses\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology\": { method: \"POST\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology_version\": { method: \"POST\", path: \"/ontologies/versions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_question\": { method: \"POST\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_task\": { method: \"POST\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_topic\": { method: \"POST\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"deprecate_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/deprecate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"detect_confirmation_bias\": { method: \"POST\", path: \"/graph/confirmation-bias\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"discover\": { method: \"POST\", path: \"/context/discover\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"discover_entity_connections\": { method: \"POST\", path: \"/context/entity-connections\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"end_session\": { method: \"POST\", path: \"/coordination/end-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"evaluate_contract\": { method: \"POST\", path: \"/contracts/evaluate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"filter_by_permission\": { method: \"POST\", path: \"/identity/filter-by-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"find_contradictions\": { method: \"POST\", path: \"/graph/contradictions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"find_missing_questions\": { method: \"POST\", path: \"/questions/missing\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"flag_contradiction\": { method: \"POST\", path: \"/contradictions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"fork_belief\": { method: \"POST\", path: \"/beliefs/fork\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"generate_session_handoff\": { method: \"POST\", path: \"/bootstrap/session-handoff\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_agent_inbox\": { method: \"POST\", path: \"/coordination/messages/inbox\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_answer\": { method: \"GET\", path: \"/answers/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_audit_trail\": { method: \"POST\", path: \"/judgments/audit-trail\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_belief\": { method: \"GET\", path: \"/beliefs/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_change_history\": { method: \"POST\", path: \"/coding/change-history\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_code_context\": { method: \"POST\", path: \"/coding/context\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_confidence_history\": { method: \"POST\", path: \"/beliefs/confidence-history\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"get_contract_status\": { method: \"POST\", path: \"/contracts/status\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_governance\" },\n \"get_evidence\": { method: \"GET\", path: \"/evidence/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_failure_log\": { method: \"POST\", path: \"/coding/failure-log\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_falsification_questions\": { method: \"POST\", path: \"/questions/falsification\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_graph_gaps\": { method: \"POST\", path: \"/graph/gaps\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_neighborhood\": { method: \"POST\", path: \"/graph/neighborhood\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_structure_analysis\": { method: \"POST\", path: \"/graph/structure-analysis\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_high_priority_questions\": { method: \"POST\", path: \"/questions/high-priority\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_lattice_coverage\": { method: \"POST\", path: \"/scope/belief-lattice/coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_observation_context\": { method: \"POST\", path: \"/observations/context\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_ontology\": { method: \"GET\", path: \"/ontologies/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_question\": { method: \"GET\", path: \"/questions/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic\": { method: \"GET\", path: \"/topics/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic_coverage\": { method: \"POST\", path: \"/graph/topic-coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_topic_tree\": { method: \"GET\", path: \"/topics/tree\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"heartbeat_session\": { method: \"POST\", path: \"/coordination/heartbeat-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"identity_whoami\": { method: \"GET\", path: \"/identity/whoami\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"ingest_observation\": { method: \"POST\", path: \"/observations/ingest\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"link_evidence\": { method: \"POST\", path: \"/evidence/link\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"link_evidence_to_belief\": { method: \"POST\", path: \"/evidence/link-belief\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"link_evidence_to_question\": { method: \"POST\", path: \"/evidence/link-question\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"list_active_sessions\": { method: \"POST\", path: \"/coordination/active-sessions\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"list_all_worktrees\": { method: \"GET\", path: \"/worktrees/all\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_beliefs\": { method: \"GET\", path: \"/beliefs\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_campaigns\": { method: \"GET\", path: \"/worktrees/campaigns\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_evidence\": { method: \"GET\", path: \"/evidence\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_lenses\": { method: \"GET\", path: \"/lenses\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_ontologies\": { method: \"GET\", path: \"/ontologies\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_questions\": { method: \"GET\", path: \"/questions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_tasks\": { method: \"GET\", path: \"/tasks\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_topics\": { method: \"GET\", path: \"/topics\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_worktrees\": { method: \"GET\", path: \"/worktrees\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"manage_write_policy\": { method: \"POST\", path: \"/policy/write-policy/manage\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"match_entity_type\": { method: \"POST\", path: \"/ontologies/match-entity-type\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"merge\": { method: \"POST\", path: \"/worktrees/merge\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"modulate_confidence\": { method: \"POST\", path: \"/beliefs/confidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"open_pull_request\": { method: \"POST\", path: \"/worktrees/open-pull-request\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"pipeline_snapshot\": { method: \"POST\", path: \"/worktrees/pipeline-snapshot\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"publish_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/publish\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"push\": { method: \"POST\", path: \"/worktrees/push\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"query_lineage\": { method: \"POST\", path: \"/edges/lineage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"record_attempt\": { method: \"POST\", path: \"/coding/attempts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_judgment\": { method: \"POST\", path: \"/judgments\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_scope_learning\": { method: \"POST\", path: \"/scope/learnings\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"refine_belief\": { method: \"PATCH\", path: \"/beliefs/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"refine_question\": { method: \"PATCH\", path: \"/questions/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"register_session\": { method: \"POST\", path: \"/coordination/register-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"remove_lens_from_topic\": { method: \"DELETE\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"resolve_effective_ontology\": { method: \"POST\", path: \"/ontologies/effective\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"search_beliefs\": { method: \"POST\", path: \"/beliefs/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"search_evidence\": { method: \"POST\", path: \"/evidence/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"seed_belief_lattice\": { method: \"POST\", path: \"/scope/belief-lattice/seed\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"send_agent_message\": { method: \"POST\", path: \"/coordination/messages/send\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"trace_entity_impact\": { method: \"POST\", path: \"/graph/trace-entity-impact\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"traverse_graph\": { method: \"POST\", path: \"/graph/traverse\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"trigger_belief_review\": { method: \"POST\", path: \"/context/belief-review\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"update_ontology\": { method: \"PATCH\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"update_question_status\": { method: \"PATCH\", path: \"/questions/status\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_task\": { method: \"PATCH\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_topic\": { method: \"PATCH\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_worktree_metadata\": { method: \"PATCH\", path: \"/worktrees/metadata\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_worktree_targets\": { method: \"PATCH\", path: \"/worktrees/targets\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n} as const;\n\nfunction createSessionId(): string {\n return typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\"\n ? crypto.randomUUID()\n : randomIdempotencyKey();\n}\n\nfunction withSdkSessionId(input: FunctionSurfaceInput, sessionId: string): FunctionSurfaceInput {\n return {\n ...input,\n __sdkSessionId: typeof input.__sdkSessionId === \"string\" ? input.__sdkSessionId : sessionId,\n };\n}\n\nfunction toFunctionSurfaceQuery(input: FunctionSurfaceInput): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined) {\n continue;\n }\n const serialized =\n typeof value === \"string\" ? value : JSON.stringify(value);\n if (serialized !== undefined) {\n params.set(key, serialized);\n }\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\n}\n\nexport function createFunctionSurfaceClient(config: FunctionSurfaceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const sessionId = createSessionId();\n\n function execute<T = unknown>(\n name: keyof typeof CONTRACTS,\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ): FunctionSurfaceResult<T> {\n const contract = CONTRACTS[name];\n const payload = withSdkSessionId(input, sessionId);\n const path =\n contract.method === \"GET\"\n ? `${contract.path}${toFunctionSurfaceQuery(payload)}`\n : contract.path;\n return gateway.request<T>({\n path: `/api/platform/v1${path}`,\n method: contract.method,\n body: contract.method === \"GET\" ? undefined : payload,\n idempotencyKey:\n contract.kind !== \"query\" && Boolean(contract.idempotent)\n ? idempotencyKey ?? randomIdempotencyKey()\n : undefined,\n });\n }\n\n return {\n sessionId,\n activateWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"activate_worktree\", input, idempotencyKey);\n },\n addEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_evidence\", input, idempotencyKey);\n },\n addWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_worktree\", input, idempotencyKey);\n },\n analyzeTopicDensity(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"analyze_topic_density\", input, idempotencyKey);\n },\n answerQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"answer_question\", input, idempotencyKey);\n },\n applyAutoBranching(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_auto_branching\", input, idempotencyKey);\n },\n applyLensToTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_lens_to_topic\", input, idempotencyKey);\n },\n applyOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_ontology\", input, idempotencyKey);\n },\n archiveBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_belief\", input, idempotencyKey);\n },\n archiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_ontology\", input, idempotencyKey);\n },\n archiveQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_question\", input, idempotencyKey);\n },\n bisectConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"bisect_confidence\", input, idempotencyKey);\n },\n broadcastMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"broadcast_message\", input, idempotencyKey);\n },\n checkPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"check_permission\", input, idempotencyKey);\n },\n claimFiles(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"claim_files\", input, idempotencyKey);\n },\n compileContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"compile_context\", input, idempotencyKey);\n },\n completeTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"complete_task\", input, idempotencyKey);\n },\n createAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_answer\", input, idempotencyKey);\n },\n createBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_belief\", input, idempotencyKey);\n },\n createEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_edge\", input, idempotencyKey);\n },\n createEpistemicContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_epistemic_contract\", input, idempotencyKey);\n },\n createEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_evidence\", input, idempotencyKey);\n },\n createLens(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_lens\", input, idempotencyKey);\n },\n createOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology\", input, idempotencyKey);\n },\n createOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology_version\", input, idempotencyKey);\n },\n createQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_question\", input, idempotencyKey);\n },\n createTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_task\", input, idempotencyKey);\n },\n createTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_topic\", input, idempotencyKey);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"deprecate_ontology_version\", input, idempotencyKey);\n },\n detectConfirmationBias(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"detect_confirmation_bias\", input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover\", input, idempotencyKey);\n },\n discoverEntityConnections(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover_entity_connections\", input, idempotencyKey);\n },\n endSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"end_session\", input, idempotencyKey);\n },\n evaluateContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"evaluate_contract\", input, idempotencyKey);\n },\n filterByPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"filter_by_permission\", input, idempotencyKey);\n },\n findContradictions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_contradictions\", input, idempotencyKey);\n },\n findMissingQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_missing_questions\", input, idempotencyKey);\n },\n flagContradiction(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"flag_contradiction\", input, idempotencyKey);\n },\n forkBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"fork_belief\", input, idempotencyKey);\n },\n generateSessionHandoff(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"generate_session_handoff\", input, idempotencyKey);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_agent_inbox\", input, idempotencyKey);\n },\n getAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_answer\", input, idempotencyKey);\n },\n getAuditTrail(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_audit_trail\", input, idempotencyKey);\n },\n getBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_belief\", input, idempotencyKey);\n },\n getChangeHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_change_history\", input, idempotencyKey);\n },\n getCodeContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_code_context\", input, idempotencyKey);\n },\n getConfidenceHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_confidence_history\", input, idempotencyKey);\n },\n getContractStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_contract_status\", input, idempotencyKey);\n },\n getEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_evidence\", input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_failure_log\", input, idempotencyKey);\n },\n getFalsificationQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_falsification_questions\", input, idempotencyKey);\n },\n getGraphGaps(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_gaps\", input, idempotencyKey);\n },\n getGraphNeighborhood(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_neighborhood\", input, idempotencyKey);\n },\n getGraphStructureAnalysis(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_structure_analysis\", input, idempotencyKey);\n },\n getHighPriorityQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_high_priority_questions\", input, idempotencyKey);\n },\n getLatticeCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_lattice_coverage\", input, idempotencyKey);\n },\n getObservationContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_observation_context\", input, idempotencyKey);\n },\n getOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_ontology\", input, idempotencyKey);\n },\n getQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_question\", input, idempotencyKey);\n },\n getTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic\", input, idempotencyKey);\n },\n getTopicCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_coverage\", input, idempotencyKey);\n },\n getTopicTree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_tree\", input, idempotencyKey);\n },\n heartbeatSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"heartbeat_session\", input, idempotencyKey);\n },\n whoami(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"identity_whoami\", input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"ingest_observation\", input, idempotencyKey);\n },\n linkEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence\", input, idempotencyKey);\n },\n linkEvidenceToBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_belief\", input, idempotencyKey);\n },\n linkEvidenceToQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_question\", input, idempotencyKey);\n },\n listActiveSessions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_active_sessions\", input, idempotencyKey);\n },\n listAllWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_all_worktrees\", input, idempotencyKey);\n },\n listBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_beliefs\", input, idempotencyKey);\n },\n listCampaigns(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_campaigns\", input, idempotencyKey);\n },\n listEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_evidence\", input, idempotencyKey);\n },\n listLenses(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_lenses\", input, idempotencyKey);\n },\n listOntologies(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_ontologies\", input, idempotencyKey);\n },\n listQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_questions\", input, idempotencyKey);\n },\n listTasks(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_tasks\", input, idempotencyKey);\n },\n listTopics(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_topics\", input, idempotencyKey);\n },\n listWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_worktrees\", input, idempotencyKey);\n },\n manageWritePolicy(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"manage_write_policy\", input, idempotencyKey);\n },\n matchEntityType(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"match_entity_type\", input, idempotencyKey);\n },\n merge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"merge\", input, idempotencyKey);\n },\n modulateConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"modulate_confidence\", input, idempotencyKey);\n },\n openPullRequest(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"open_pull_request\", input, idempotencyKey);\n },\n pipelineSnapshot(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"pipeline_snapshot\", input, idempotencyKey);\n },\n publishOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"publish_ontology_version\", input, idempotencyKey);\n },\n push(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"push\", input, idempotencyKey);\n },\n queryLineage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"query_lineage\", input, idempotencyKey);\n },\n recordAttempt(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_attempt\", input, idempotencyKey);\n },\n recordJudgment(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_judgment\", input, idempotencyKey);\n },\n recordScopeLearning(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_scope_learning\", input, idempotencyKey);\n },\n refineBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_belief\", input, idempotencyKey);\n },\n refineQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_question\", input, idempotencyKey);\n },\n registerSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"register_session\", input, idempotencyKey);\n },\n removeLensFromTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_lens_from_topic\", input, idempotencyKey);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_effective_ontology\", input, idempotencyKey);\n },\n searchBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_beliefs\", input, idempotencyKey);\n },\n searchEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_evidence\", input, idempotencyKey);\n },\n seedBeliefLattice(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"seed_belief_lattice\", input, idempotencyKey);\n },\n sendAgentMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"send_agent_message\", input, idempotencyKey);\n },\n traceEntityImpact(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trace_entity_impact\", input, idempotencyKey);\n },\n traverseGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"traverse_graph\", input, idempotencyKey);\n },\n triggerBeliefReview(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trigger_belief_review\", input, idempotencyKey);\n },\n updateOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_ontology\", input, idempotencyKey);\n },\n updateQuestionStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_question_status\", input, idempotencyKey);\n },\n updateTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_task\", input, idempotencyKey);\n },\n updateTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_topic\", input, idempotencyKey);\n },\n updateWorktreeMetadata(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_metadata\", input, idempotencyKey);\n },\n updateWorktreeTargets(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_targets\", input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type ModelRuntimeClientConfig = GatewayClientConfig;\n\nexport const MODEL_RUNTIME_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"functionName\",\n \"slotKey\",\n \"modelId\",\n \"provider\",\n \"routingPolicy\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ModelRegistryRecord = {\n modelId: string;\n provider: string;\n displayName?: string;\n status?: string;\n capabilities?: string[];\n contextWindow?: number;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ModelFunctionSlot = {\n functionName: string;\n slotKey: string;\n modelId?: string;\n provider?: string;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ModelRuntimeScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n provider?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ResolveModelSlotInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey?: string;\n metadata?: JsonObject;\n};\n\nexport type UpdateModelSlotConfigInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey: string;\n modelId: string;\n provider?: string;\n routingPolicy?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type ModelsResponse = ListResult<ModelRegistryRecord, \"models\">;\nexport type ModelSlotsResponse = ListResult<ModelFunctionSlot, \"slots\">;\n\nfunction scopeQuery(input: ModelRuntimeScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n provider: input.provider,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction modelRuntimeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, MODEL_RUNTIME_FIELDS, operation);\n}\n\nexport function createModelRuntimeClient(\n config: ModelRuntimeClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listModels(input: ModelRuntimeScope) {\n return gateway.request<ModelsResponse>({\n path: `/api/platform/v1/model-runtime/models${toQueryString(\n scopeQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelRegistryRecord, \"models\">(data, \"models\")\n )\n );\n },\n\n getModel(input: ModelRuntimeScope & { modelId: string }) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelRegistryRecord>({\n path: `/api/platform/v1/model-runtime/models/${encodeURIComponent(\n input.modelId\n )}${toQueryString({\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n })}`,\n });\n },\n\n listFunctionSlots(input: ModelRuntimeScope & { functionName?: string }) {\n return gateway.request<ModelSlotsResponse>({\n path: `/api/platform/v1/model-runtime/function-slots${toQueryString({\n ...scopeQuery(input),\n functionName: input.functionName,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelFunctionSlot, \"slots\">(data, \"slots\")\n )\n );\n },\n\n resolveSlot(input: ResolveModelSlotInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/function-slots/resolve\",\n method: \"POST\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.resolveSlot\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSlotConfig(\n input: UpdateModelSlotConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n cleanRequiredString(input.slotKey, \"slotKey\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/slot-configs\",\n method: \"PUT\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.updateSlotConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanOptionalString,\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OntologyLinksClientConfig = GatewayClientConfig;\n\nexport const ONTOLOGY_LINK_FIELDS = [\n \"topicId\",\n \"workspaceId\",\n \"linkId\",\n \"sourceNodeId\",\n \"sourceGlobalId\",\n \"targetNodeId\",\n \"targetGlobalId\",\n \"ontologyId\",\n \"ontologyType\",\n \"edgeType\",\n \"weight\",\n \"confidence\",\n \"status\",\n \"metadata\",\n] as const;\n\nexport type OntologyLinkStatus =\n | \"active\"\n | \"candidate\"\n | \"dismissed\"\n | \"superseded\"\n | \"archived\";\n\nexport type OntologyLinkRecord = {\n linkId?: string;\n edgeId?: string;\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type OntologyLinkWriteInput = {\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type ListOntologyLinksForNodeInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n ontologyId?: string;\n ontologyType?: string;\n edgeType?: string;\n status?: OntologyLinkStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateOntologyLinkStatusInput = {\n linkId: string;\n status: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type OntologyLinksResponse = ListResult<OntologyLinkRecord, \"links\">;\n\nfunction assertEndpoints(input: OntologyLinkWriteInput) {\n if (!input.sourceNodeId && !input.sourceGlobalId) {\n throw new Error(\"sourceNodeId or sourceGlobalId is required\");\n }\n if (!input.targetNodeId && !input.targetGlobalId) {\n throw new Error(\"targetNodeId or targetGlobalId is required\");\n }\n}\n\nfunction normalizeLinkPayload(\n input: OntologyLinkWriteInput,\n operation: string\n) {\n assertEndpoints(input);\n cleanRequiredString(input.ontologyId, \"ontologyId\");\n cleanRequiredString(input.edgeType, \"edgeType\");\n return knownPayload(input as Record<string, unknown>, ONTOLOGY_LINK_FIELDS, operation);\n}\n\nexport function createOntologyLinksClient(\n config: OntologyLinksClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n createLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"POST\",\n body: normalizeLinkPayload(input, \"ontologyLinks.createLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n upsertLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"PUT\",\n body: normalizeLinkPayload(input, \"ontologyLinks.upsertLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listLinksForNode(input: ListOntologyLinksForNodeInput) {\n const nodeId = cleanOptionalString(input.nodeId);\n const globalId = cleanOptionalString(input.globalId);\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const pathId = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OntologyLinksResponse>({\n path: `/api/platform/v1/ontology-links/nodes/${pathId}${toQueryString({\n topicId: input.topicId,\n workspaceId: input.workspaceId,\n globalId: nodeId ? undefined : globalId,\n ontologyId: input.ontologyId,\n ontologyType: input.ontologyType,\n edgeType: input.edgeType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<OntologyLinkRecord, \"links\">(data, \"links\")\n )\n );\n },\n\n updateLinkStatus(\n input: UpdateOntologyLinkStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<OntologyLinkRecord>({\n path: `/api/platform/v1/ontology-links/${encodeURIComponent(\n input.linkId\n )}/status`,\n method: \"PATCH\",\n body: knownPayload(\n input as unknown as Record<string, unknown>,\n ONTOLOGY_LINK_FIELDS,\n \"ontologyLinks.updateLinkStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OrgGraphSearchClientConfig = GatewayClientConfig;\n\nexport const ORG_GRAPH_SEARCH_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"query\",\n \"nodeTypes\",\n \"minConfidence\",\n \"limit\",\n \"cursor\",\n \"provenanceScope\",\n] as const;\n\nexport type OrgGraphProvenanceScope =\n | \"canonical\"\n | \"published\"\n | \"own_workspace\"\n | \"cross_workspace\";\n\nexport type OrgGraphVisibility =\n | \"private\"\n | \"workspace\"\n | \"tenant\"\n | \"public\";\n\nexport type OrgGraphSearchProvenance = {\n scope?: OrgGraphProvenanceScope | string;\n source?: string;\n sourceNodeId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchResult = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n visibility?: OrgGraphVisibility | string;\n confidence?: number | null;\n confidenceHistory?: Array<{\n confidence?: number;\n timestamp?: number;\n rationale?: string;\n trigger?: string;\n }>;\n provenance?: OrgGraphSearchProvenance;\n nodeType?: string;\n text?: string;\n title?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchInput = {\n tenantId: string;\n workspaceId: string;\n query: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n provenanceScope?: OrgGraphProvenanceScope;\n};\n\nexport type GetOrgGraphNodeInput = {\n tenantId: string;\n workspaceId: string;\n nodeId?: string;\n globalId?: string;\n};\n\nexport type ListOrgGraphByProvenanceInput = {\n tenantId: string;\n workspaceId: string;\n provenanceScope: OrgGraphProvenanceScope;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListPublishedFromWorkspaceInput = {\n tenantId: string;\n workspaceId: string;\n sourceWorkspaceId?: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type OrgGraphSearchResponse = ListResult<\n OrgGraphSearchResult,\n \"results\"\n>;\n\nfunction cleanString(value: string | undefined, label: string) {\n const normalized = value?.trim();\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nfunction assertKnownSearchKeys(input: Record<string, unknown>, operation: string) {\n const allowed = new Set<string>(ORG_GRAPH_SEARCH_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction searchBody(input: OrgGraphSearchInput): JsonObject {\n assertKnownSearchKeys(\n input as Record<string, unknown>,\n \"orgGraphSearch.search\"\n );\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n query: cleanString(input.query, \"query\"),\n nodeTypes: input.nodeTypes,\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n provenanceScope: input.provenanceScope,\n };\n}\n\nfunction listQuery(\n input: ListOrgGraphByProvenanceInput | ListPublishedFromWorkspaceInput\n) {\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n nodeTypes: input.nodeTypes?.join(\",\"),\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction mapResults(data: unknown): OrgGraphSearchResponse {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as { results?: unknown[] }).results)\n ? (record as { results: OrgGraphSearchResult[] }).results\n : Array.isArray(data)\n ? data\n : [],\n \"results\"\n );\n}\n\nexport function createOrgGraphSearchClient(\n config: OrgGraphSearchClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n search(input: OrgGraphSearchInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: \"/api/platform/v1/org-graph-search/search\",\n method: \"POST\",\n body: searchBody(input),\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n getNode(input: GetOrgGraphNodeInput) {\n const nodeId = input.nodeId?.trim();\n const globalId = input.globalId?.trim();\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const nodePath = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OrgGraphSearchResult>({\n path: `/api/platform/v1/org-graph-search/nodes/${nodePath}${toQueryString(\n {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n globalId: nodeId ? undefined : globalId,\n }\n )}`,\n });\n },\n\n listByProvenance(input: ListOrgGraphByProvenanceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/provenance${toQueryString({\n ...listQuery(input),\n provenanceScope: input.provenanceScope,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n listPublishedFromWorkspace(input: ListPublishedFromWorkspaceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/published${toQueryString({\n ...listQuery(input),\n sourceWorkspaceId: input.sourceWorkspaceId,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the packs client. */\nexport type PacksClientConfig = GatewayClientConfig;\n\n/** Input for installing a pack into a tenant or workspace scope. */\nexport type PackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for enabling a previously installed pack. */\nexport type PackEnableInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for disabling an active pack. */\nexport type PackDisableInput = GatewayScope & {\n packKey: string;\n force?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for uninstalling a pack from a tenant or workspace scope. */\nexport type PackUninstallInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for upgrading a pack through the prepare/canary/commit/rollback lifecycle. */\nexport type PackUpgradeInput = GatewayScope & {\n packKey: string;\n mode: \"prepare\" | \"canary\" | \"commit\" | \"rollback\";\n targetVersion?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a pack entitlement record. */\nexport type PackEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the packs client for pack catalog, state, and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage pack lifecycle, telemetry, and entitlements.\n */\nexport function createPacksClient(config: PacksClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List catalog entries for available packs.\n */\n async listCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/catalog\",\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"catalog\")\n )\n );\n },\n\n /**\n * @deprecated Use listCatalog.\n */\n async getCatalog() {\n return this.listCatalog();\n },\n\n /**\n * Get the discovery catalog for packs.\n */\n async getDiscoveryCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/discovery\",\n });\n },\n\n /**\n * Get discovery details for a specific pack.\n */\n async getDiscoveryDetail(packKey: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/discovery/${encodeURIComponent(packKey)}`,\n });\n },\n\n /**\n * List pack states for the current scope.\n */\n async listStates(query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/states${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"states\")\n )\n );\n },\n\n /**\n * @deprecated Use listStates.\n */\n async getStates(query: GatewayScope = {}) {\n return this.listStates(query);\n },\n\n /**\n * Get health details for a pack.\n */\n async getHealth(packKey: string, query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/${encodeURIComponent(packKey)}/health${toQueryString(\n query\n )}`,\n });\n },\n\n /**\n * List pack telemetry entries.\n */\n async listTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/telemetry${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"telemetry\")\n )\n );\n },\n\n /**\n * @deprecated Use listTelemetry.\n */\n async getTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return this.listTelemetry(query);\n },\n\n /**\n * Create a pack entitlement.\n */\n async createEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a pack entitlement.\n */\n async updateEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * Install a pack.\n */\n async install(input: PackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/install\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Enable a pack.\n */\n async enable(input: PackEnableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/enable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Disable a pack.\n */\n async disable(input: PackDisableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/disable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Uninstall a pack.\n */\n async uninstall(input: PackUninstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/uninstall\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Upgrade a pack.\n */\n async upgrade(input: PackUpgradeInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/upgrade\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the policy client. */\nexport type PolicyClientConfig = GatewayClientConfig;\n\n/** Permission direction: read access or write access. */\nexport type PermissionKind = \"read\" | \"write\";\n\n/** Permission level for a write policy rule. */\nexport type WritePolicyPermission = \"allow\" | \"deny\" | \"review_required\";\n\ntype TopicRecord = {\n topicId?: string;\n name?: string;\n type?: string;\n isOwner?: boolean;\n [key: string]: unknown;\n};\n\n/** Structured explanation of how a policy decision was derived. */\nexport type PolicyDecisionExplanation = {\n summary?: string;\n matchedReasonCode?: string;\n steps?: Array<{\n stage?: string;\n outcome?: string;\n reasonCode?: string;\n detail?: string;\n }>;\n [key: string]: unknown;\n};\n\n/** Result of a permission check against the policy engine. */\nexport type PermissionDecision = {\n allowed?: boolean;\n decision?: string;\n reasonCode?: string;\n principalId?: string;\n topicId?: string;\n permission?: string;\n policyVersion?: string;\n traceId?: string | null;\n explanation?: PolicyDecisionExplanation;\n};\n\n/** A persisted write policy rule controlling mutation access. */\nexport type WritePolicyRecord = {\n id?: string;\n topicId?: string;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n resolution?: string;\n [key: string]: unknown;\n};\n\n/** Input for creating a write policy rule. */\nexport type WritePolicyCreateInput = GatewayScope & {\n topicId?: string;\n role: string;\n toolCategory: string;\n permission: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdBy?: string;\n};\n\n/** Input for partially updating an existing write policy rule. */\nexport type WritePolicyUpdateInput = GatewayScope & {\n topicId?: string;\n clearTopicId?: boolean;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n clearMaxWritesPerSession?: boolean;\n enabled?: boolean;\n rationale?: string;\n clearRationale?: boolean;\n};\n\nexport type TenantPolicyPermission = {\n resource: string;\n actions: string[];\n};\n\nexport type TenantPolicyRecord = {\n id?: string;\n tenantId: string;\n workspaceId?: string;\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings: string[];\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n updatedBy?: string;\n};\n\ntype AccessibleTopicsResponse = {\n permission: PermissionKind;\n topics: TopicRecord[];\n total: number;\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n};\n\ntype FilterByPermissionResponse = {\n permission: PermissionKind;\n allowedTopicIds: string[];\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count: number;\n};\n\nfunction asTopicArray(data: unknown): TopicRecord[] {\n if (Array.isArray(data)) {\n return data.filter(\n (row): row is TopicRecord => Boolean(row) && typeof row === \"object\"\n );\n }\n return [];\n}\n\nfunction asWritePolicyRecord(data: unknown): WritePolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as WritePolicyRecord;\n}\n\nfunction asWritePolicyArray(data: unknown): WritePolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asWritePolicyRecord)\n .filter((row): row is WritePolicyRecord => Boolean(row));\n}\n\nfunction asRolePolicyRecord(data: unknown): TenantPolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantPolicyRecord;\n}\n\nfunction asRolePolicyArray(data: unknown): TenantPolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asRolePolicyRecord)\n .filter((row): row is TenantPolicyRecord => Boolean(row));\n}\n\n/**\n * Create the policy client for permission checks, grants, and write policies.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to check permissions, manage grants, and manage write policies.\n */\nexport function createPolicyClient(config: PolicyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List policy decisions in the current scope.\n */\n async listDecisions(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/decisions${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"decisions\")\n )\n );\n },\n\n /**\n * Create a permission grant.\n */\n async grant(\n input: GatewayScope & {\n topicId: string;\n permission: PermissionKind;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/grant\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a permission grant by revoking it.\n */\n async revoke(\n input: GatewayScope & {\n topicId: string;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List write policy rules for the current scope.\n */\n async listWritePolicies(\n query: GatewayScope & {\n topicId?: string;\n role?: string;\n toolCategory?: string;\n enabled?: boolean;\n } = {}\n ) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/write-policies${toQueryString(query)}`,\n });\n const rawPolicies =\n response.data && typeof response.data === \"object\"\n ? (response.data as { policies?: unknown[] }).policies\n : response.data;\n\n return {\n ...response,\n data: {\n policies: asWritePolicyArray(rawPolicies),\n },\n };\n },\n\n /**\n * Create a write policy rule.\n */\n async createWritePolicy(\n input: WritePolicyCreateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n created?: boolean;\n policy?: unknown;\n }>({\n path: \"/api/platform/v1/policy/write-policies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n created: response.data?.created === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update an existing write policy rule by identifier.\n */\n async updateWritePolicy(\n id: string,\n input: WritePolicyUpdateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n updated?: boolean;\n policy?: unknown;\n }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n updated: response.data?.updated === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a write policy rule by identifier.\n */\n async deleteWritePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<{ id?: string; deleted?: boolean }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(\n id\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant role policies for the current scope.\n */\n async listRolePolicies(query: GatewayScope = {}) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/roles${toQueryString(query)}`,\n });\n\n return {\n ...response,\n data: {\n policies: asRolePolicyArray(response.data?.policies),\n },\n };\n },\n\n /**\n * Create a tenant role policy.\n */\n async createRolePolicy(\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: \"/api/platform/v1/policy/roles\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update a tenant role policy by identifier.\n */\n async updateRolePolicy(\n id: string,\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a tenant role policy by identifier.\n */\n async deleteRolePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}${toQueryString(\n scope\n )}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Check a permission decision for a topic or project scope.\n */\n async checkPermission(\n query: GatewayScope & {\n topicId?: string;\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n beliefClusterId?: string;\n }\n ) {\n if (!query.topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<PermissionDecision>({\n path: `/api/platform/v1/policy/check${toQueryString(query)}`,\n });\n },\n\n /**\n * List accessible topics for a principal.\n */\n async listAccessibleTopics(\n query: GatewayScope & {\n permission?: PermissionKind;\n includeShared?: boolean;\n principal?: string;\n principalId?: string;\n limit?: number;\n } = {}\n ) {\n const permission = query.permission ?? \"read\";\n const principal = query.principal ?? query.principalId;\n const response = await gateway.request<{\n permission?: PermissionKind;\n topics?: unknown[];\n total?: number;\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n }>({\n path: `/api/platform/v1/policy/topics${toQueryString({\n tenantId: query.tenantId,\n workspaceId: query.workspaceId,\n permission,\n includeShared: query.includeShared,\n principal,\n limit: query.limit,\n })}`,\n });\n\n return {\n ...response,\n data: {\n permission,\n topics: asTopicArray(response.data?.topics),\n total:\n typeof response.data?.total === \"number\"\n ? response.data.total\n : asTopicArray(response.data?.topics).length,\n deniedTopics: Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [],\n } satisfies AccessibleTopicsResponse,\n };\n },\n\n /**\n * Filter topic identifiers by permission.\n */\n async filterByPermission(\n input: GatewayScope & {\n topicIds?: string[];\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n }\n ) {\n const permission = input.permission ?? \"read\";\n const principal = input.principal ?? input.principalId;\n const uniqueTopicIds = [...new Set(input.topicIds ?? [])].filter(\n (topicId) => typeof topicId === \"string\" && topicId.trim().length > 0\n );\n const response = await gateway.request<{\n permission?: PermissionKind;\n allowedTopicIds?: string[];\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count?: number;\n }>({\n path: \"/api/platform/v1/policy/filter\",\n method: \"POST\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n topicIds: uniqueTopicIds,\n permission,\n principal,\n },\n });\n\n const allowedTopicIds = Array.isArray(response.data?.allowedTopicIds)\n ? response.data.allowedTopicIds\n : [];\n const deniedTopics = Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [];\n\n return {\n success: true,\n data: {\n permission,\n allowedTopicIds,\n deniedTopics,\n count:\n typeof response.data?.count === \"number\"\n ? response.data.count\n : allowedTopicIds.length,\n } satisfies FilterByPermissionResponse,\n };\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, resolveTopicId } from \"./sdkSurface\";\nimport type {\n TopicIdentifierInput,\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/** Configuration for the reports client. */\nexport type ReportsClientConfig = GatewayClientConfig;\nexport type {\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/**\n * Create the reports client for report templates and generated reports.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list templates, list reports, and get a report.\n */\nexport function createReportsClient(config: ReportsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List report templates.\n */\n async listTemplates(args: { slug?: string } = {}) {\n return gateway.request<ReportTemplatesResponse>({\n path: `/api/platform/v1/reports/templates${toQueryString({\n slug: args.slug,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n const rows = Array.isArray(data)\n ? data\n : Array.isArray(record.templates)\n ? record.templates\n : [];\n return createListResult(rows, \"templates\") as ReportTemplatesResponse;\n })\n );\n },\n\n /**\n * @deprecated Use listTemplates.\n */\n async getTemplates(args: { slug?: string } = {}) {\n return this.listTemplates(args);\n },\n\n /**\n * List reports for a topic scope.\n */\n async listReports(\n input: TopicIdentifierInput,\n args: { summary?: boolean } = {}\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<ProjectReportsResponse>({\n path: `/api/platform/v1/reports/topics/${encodeURIComponent(topicId)}${toQueryString(\n {\n summary:\n typeof args.summary === \"boolean\"\n ? args.summary\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"reports\")\n )\n );\n },\n /**\n * Get a generated report.\n */\n async getReport(reportId: string) {\n return gateway.request<ReportWithSectionsResponse>({\n path: `/api/platform/v1/reports/${encodeURIComponent(reportId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the schema client. */\nexport type SchemaClientConfig = GatewayClientConfig;\n\n/** Input for installing a schema pack into a tenant scope. */\nexport type SchemaPackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a schema entitlement record. */\nexport type SchemaEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the schema client for pack catalog and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage schema packs and entitlements.\n */\nexport function createSchemaClient(config: SchemaClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List schema packs.\n */\n async listPacks(scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"packs\")\n )\n );\n },\n\n /**\n * Install a schema pack.\n */\n async installPack(input: SchemaPackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a schema pack by identifier.\n */\n async getPack(packId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs/${encodeURIComponent(packId)}${toQueryString(\n scope\n )}`,\n });\n },\n\n /**\n * List schema entitlements.\n */\n async listEntitlements(scope: GatewayScope & { packKey?: string } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/entitlements${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"entitlements\")\n )\n );\n },\n\n /**\n * Create a schema entitlement.\n */\n async createEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a schema entitlement.\n */\n async updateEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TelemetryClientConfig = GatewayClientConfig;\n\nexport const TELEMETRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"eventLevel\",\n \"eventType\",\n \"message\",\n \"toolName\",\n \"toolCalls\",\n \"decision\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"runId\",\n \"runType\",\n \"status\",\n \"durationMs\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TelemetryRunRecord = {\n runId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n runType?: string;\n status?: string;\n metadata?: JsonObject | null;\n startedAt?: number;\n finishedAt?: number;\n};\n\nexport type TelemetryScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n runType?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type LogSystemEventInput = TelemetryScope & {\n eventLevel: \"debug\" | \"info\" | \"warn\" | \"error\" | string;\n eventType: string;\n message: string;\n metadata?: JsonObject;\n};\n\nexport type LogToolCallsBatchInput = TelemetryScope & {\n toolCalls: Array<{\n toolName: string;\n status?: string;\n durationMs?: number;\n metadata?: JsonObject;\n }>;\n metadata?: JsonObject;\n};\n\nexport type RecordEpistemicAuditInput = TelemetryScope & {\n eventType: string;\n message?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordTelemetryPolicyDecisionInput = TelemetryScope & {\n policySubject?: string;\n policyAction?: string;\n policyResource?: string;\n decision: \"allow\" | \"deny\" | string;\n metadata?: JsonObject;\n};\n\nexport type StartTelemetryRunInput = TelemetryScope & {\n runId?: string;\n runType: string;\n metadata?: JsonObject;\n};\n\nexport type FinishTelemetryRunInput = TelemetryScope & {\n runId: string;\n status: string;\n durationMs?: number;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type TelemetryRunsResponse = ListResult<TelemetryRunRecord, \"runs\">;\n\nfunction query(input: TelemetryScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n runType: input.runType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TELEMETRY_FIELDS, operation);\n}\n\nexport function createTelemetryClient(config: TelemetryClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n logSystemEvent(input: LogSystemEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n cleanRequiredString(input.message, \"message\");\n return gateway.request<{ eventId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/system-events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logSystemEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n logToolCallsBatch(\n input: LogToolCallsBatchInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<{ recorded: number }>({\n path: \"/api/platform/v1/telemetry/tool-calls/batch\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logToolCallsBatch\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordEpistemicAudit(\n input: RecordEpistemicAuditInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<{ auditId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/epistemic-audits\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordEpistemicAudit\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordPolicyDecision(\n input: RecordTelemetryPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<{ decisionId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/policy-decisions\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n startRun(input: StartTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runType, \"runType\");\n return gateway.request<TelemetryRunRecord>({\n path: \"/api/platform/v1/telemetry/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.startRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n finishRun(input: FinishTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<TelemetryRunRecord>({\n path: `/api/platform/v1/telemetry/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.finishRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listRuns(input: TelemetryScope) {\n return gateway.request<TelemetryRunsResponse>({\n path: `/api/platform/v1/telemetry/runs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TelemetryRunRecord, \"runs\">(data, \"runs\")\n )\n );\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, ListResult } from \"./types\";\n\nexport type ToolRegistryClientConfig = GatewayClientConfig;\n\nexport const TOOL_REGISTRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"toolName\",\n \"packKey\",\n \"packVersion\",\n \"status\",\n \"permissions\",\n \"role\",\n \"surface\",\n \"parameterSchema\",\n \"returnSchema\",\n \"handlerRef\",\n \"executionAdapter\",\n \"safetyMetadata\",\n \"aclId\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ToolRegistryStatus =\n | \"enabled\"\n | \"disabled\"\n | \"deprecated\"\n | \"blocked\";\n\nexport type ToolCatalogEntry = {\n toolName: string;\n packKey?: string;\n packVersion?: string;\n status?: ToolRegistryStatus | string;\n permissions?: string[];\n role?: string;\n surface?: string;\n parameterSchema?: JsonObject | null;\n returnSchema?: JsonObject | null;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ToolAclRecord = {\n aclId?: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ToolRegistryQuery = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n packKey?: string;\n status?: ToolRegistryStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpsertCoreToolsInput = {\n tenantId: string;\n workspaceId?: string;\n tools: ToolCatalogEntry[];\n metadata?: JsonObject;\n};\n\nexport type SetPackToolsStatusInput = {\n tenantId: string;\n workspaceId?: string;\n packKey: string;\n status: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type CreateToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n principalId: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type DeleteToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n aclId: string;\n metadata?: JsonObject;\n};\n\nexport type RegisterCustomToolInput = {\n tenantId: string;\n workspaceId?: string;\n toolName: string;\n packKey?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject;\n permissions?: string[];\n metadata?: JsonObject;\n};\n\nexport type ToolCatalogResponse = ListResult<ToolCatalogEntry, \"tools\">;\nexport type ToolAclResponse = ListResult<ToolAclRecord, \"acls\">;\n\nfunction query(input: ToolRegistryQuery) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n packKey: input.packKey,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction writeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TOOL_REGISTRY_FIELDS, operation);\n}\n\nexport function createToolRegistryClient(\n config: ToolRegistryClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listCatalog(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/catalog${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listExecutable(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/executable${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listEffectiveTools(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/effective${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n upsertCoreTools(input: UpsertCoreToolsInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<ToolCatalogResponse>({\n path: \"/api/platform/v1/tools/core\",\n method: \"PUT\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n metadata: input.metadata,\n tools: input.tools as unknown as JsonValue,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n setPackToolsStatus(\n input: SetPackToolsStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.packKey, \"packKey\");\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/packs/${encodeURIComponent(\n input.packKey\n )}/status`,\n method: \"PATCH\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.setPackToolsStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n createAcl(input: CreateToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.principalId, \"principalId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolAclRecord>({\n path: \"/api/platform/v1/tools/acls\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.createAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n deleteAcl(input: DeleteToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.aclId, \"aclId\");\n return gateway.request<{ aclId: string; deleted: boolean }>({\n path: `/api/platform/v1/tools/acls/${encodeURIComponent(input.aclId)}`,\n method: \"DELETE\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.deleteAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n registerCustomTool(\n input: RegisterCustomToolInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolCatalogEntry>({\n path: \"/api/platform/v1/tools/custom\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.registerCustomTool\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","/** Current SDK package version. */\nexport const LUCERN_SDK_VERSION = \"0.2.0-alpha.1\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n asListItems,\n createListResult,\n mapAliasedList,\n mapGatewayData,\n normalizeTopicQuery,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n LensPerspectiveType,\n LensPromptTemplateReference,\n LensStatus,\n LensTaskTemplate,\n LensWorkflowTemplate,\n} from \"./contracts/lensWorkflow\";\nimport type {\n WorkflowAutoFixPolicy,\n WorkflowProofArtifact,\n WorkflowStaffingHint,\n} from \"./contracts/workflowRuntime\";\nimport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n JsonObject,\n JsonValue,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n TopicIdentifierInput,\n UpdateTaskResponse,\n WorkflowBranchRecord,\n WorkflowLensRecord,\n WorkflowTopicRecord,\n WorkflowWorktreeRecord,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n UpdateTaskResponse,\n} from \"./types\";\n\n/** Configuration for the workflow client. */\nexport type WorkflowClientConfig = GatewayClientConfig;\n\n/** Lifecycle status of a workflow branch. */\nexport type WorkflowBranchStatus = \"dormant\" | \"active\" | \"archived\";\n\n/** Lifecycle status of a workflow lens. */\nexport type WorkflowLensStatus = LensStatus;\n\n/** Analytical perspective type for a lens overlay. */\nexport type WorkflowLensPerspectiveType = LensPerspectiveType;\n\n/** Lifecycle status of a workflow worktree. */\nexport type WorkflowWorktreeStatus =\n | \"planning\"\n | \"active\"\n | \"paused\"\n | \"completed\"\n | \"merged\"\n | \"failed\"\n | \"archived\";\n\n/** Possible outcomes when merging worktree findings into the main belief line. */\nexport type WorkflowMergeOutcome =\n | \"validated\"\n | \"invalidated\"\n | \"forked\"\n | \"inconclusive\";\n\n/** Input for creating a new workflow worktree. */\nexport type AddWorktreeInput = {\n title: string;\n topicId?: string;\n branchId?: string;\n objective?: string;\n hypothesis?: string;\n beliefIds?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: WorkflowProofArtifact[];\n staffingHint?: WorkflowStaffingHint | string;\n lastReconciledAt?: number;\n autoFixPolicy?: WorkflowAutoFixPolicy;\n} & TopicIdentifierInput;\n\n/** Input for merging worktree findings with belief confidence outcomes. */\nexport type MergeInput = {\n outcomes: Array<{\n beliefId: string;\n confidence: number;\n rationale: string;\n }>;\n summary?: string;\n};\n\n/** Input for updating the beliefs and questions tracked by a worktree. */\nexport type UpdateWorktreeTargetsInput = {\n worktreeId: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\n/** Input for marking a worktree complete with recorded outcomes. */\nexport type CompleteWorktreeInput = {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n};\n\n/** Input for moving a worktree forward to its next phase. */\nexport type AdvanceWorktreePhaseInput = {\n worktreeId: string;\n};\n\n/** Input for forcing a worktree into a specific phase. */\nexport type SetWorktreePhaseInput = {\n worktreeId: string;\n phase: string;\n};\n\n/** Input for patching arbitrary structured worktree state. */\nexport type PatchWorktreeStateInput = {\n worktreeId: string;\n patch: JsonObject;\n};\n\n/** Input for batch-creating worktrees through the workflow surface. */\nexport type BulkCreateWorktreesInput = {\n worktrees: unknown[];\n};\n\n/** Input for listing accessible topic contexts. */\nexport type ListTopicsInput = {\n includeShared?: boolean;\n limit?: number;\n};\n\n/** Input for switching the active topic context by name. */\nexport type SwitchTopicContextInput = {\n targetTopicName: string;\n};\n\n/** Input for creating a workflow task linked to a question or worktree. */\nexport type CreateTaskInput = {\n title: string;\n topicId?: string;\n taskType?: \"research\" | \"interview\" | \"analysis\" | \"data_collection\";\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n linkedBeliefId?: string;\n description?: string;\n priority?: \"low\" | \"medium\" | \"high\" | \"urgent\";\n} & TopicIdentifierInput;\n\n/** Input for marking a workflow task as completed with an output summary. */\nexport type CompleteTaskInput = {\n outputSummary: string;\n evidenceCreated?: boolean;\n};\n\n/** Input for partially updating an existing workflow task. */\nexport type UpdateTaskInput = {\n title?: string;\n description?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n status?: \"todo\" | \"in_progress\" | \"blocked\" | \"done\";\n};\n\nfunction normalizeLensQuery<T extends { topicId?: string }>(\n value: T\n) {\n const topicId = resolveTopicId(value);\n return {\n ...value,\n ...(topicId ? { topicId } : {}),\n };\n}\n\n/**\n * Create the workflow client for lenses, legacy branches, worktrees, context,\n * and tasks.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage branches, lenses, worktrees, topics, and tasks.\n */\nexport function createWorkflowClient(config: WorkflowClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const client = {\n /**\n * List workflow branches for a topic scope.\n */\n async listBranches(query: {\n topicId?: string;\n status?: WorkflowBranchStatus;\n limit?: number;\n } & TopicIdentifierInput) {\n return gateway.request<ListBranchesResponse>({\n path: `/api/platform/v1/workflow/branches${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowBranchRecord, \"branches\">(data, \"branches\")\n )\n );\n },\n\n /**\n * Create a workflow branch.\n */\n async createBranch(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBranchResponse>({\n path: \"/api/platform/v1/workflow/branches\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateBranchResponse\n )\n );\n },\n\n /**\n * List reusable lenses for a workspace or topic scope.\n */\n async listLenses(query: {\n workspaceId?: string;\n topicId?: string;\n status?: WorkflowLensStatus;\n perspectiveType?: WorkflowLensPerspectiveType;\n } & TopicIdentifierInput) {\n return gateway.request<ListLensesResponse>({\n path: `/api/platform/v1/workflow/lenses${toQueryString(\n normalizeLensQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowLensRecord, \"lenses\">(data, \"lenses\")\n )\n );\n },\n\n /**\n * Create a reusable workflow lens.\n */\n async createLens(\n input: {\n name: string;\n workspaceId?: string;\n topicId?: string;\n description?: string;\n perspectiveType: WorkflowLensPerspectiveType;\n promptTemplates?: LensPromptTemplateReference[];\n workflowTemplates?: LensWorkflowTemplate[];\n taskTemplates?: LensTaskTemplate[];\n filterCriteria?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<CreateLensResponse>({\n path: \"/api/platform/v1/workflow/lenses\",\n method: \"POST\",\n body: payload as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateLensResponse\n )\n );\n },\n\n /**\n * Apply an existing lens to a topic.\n */\n async applyLensToTopic(\n input: {\n lensId: string;\n topicId?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<LensTopicBindingResponse>({\n path: \"/api/platform/v1/workflow/lens-bindings\",\n method: \"POST\",\n body: payload,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * Remove an applied lens from a topic.\n */\n async removeLensFromTopic(\n input: {\n lensId: string;\n topicId?: string;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new LucernApiError({\n code: \"INVALID_REQUEST\",\n message: \"topicId is required\",\n status: 400,\n });\n }\n\n return gateway.request<LensTopicBindingResponse>({\n path: `/api/platform/v1/workflow/lens-bindings${toQueryString({\n lensId: input.lensId,\n topicId,\n })}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * List worktrees for a topic scope.\n */\n async listWorktrees(query: {\n topicId?: string;\n branchId?: string;\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees/all${toQueryString({\n ...normalized,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n )\n )\n );\n },\n\n /**\n * List all worktrees across accessible topics.\n */\n async listAllWorktrees(query: {\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const list = mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n );\n return {\n ...list,\n ...(record.lanes &&\n typeof record.lanes === \"object\" &&\n !Array.isArray(record.lanes)\n ? { lanes: record.lanes as Record<string, number> }\n : {}),\n ...(record.campaigns &&\n typeof record.campaigns === \"object\" &&\n !Array.isArray(record.campaigns)\n ? { campaigns: record.campaigns as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\n })\n );\n },\n\n /**\n * List compact pipeline campaigns with nested lanes.\n */\n async listCampaigns(query: {\n topicId?: string;\n status?: WorkflowWorktreeStatus;\n limit?: number;\n } & TopicIdentifierInput = {}) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Create a workflow worktree.\n */\n async createWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * @deprecated Use createWorktree.\n */\n async addWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * Merge a worktree into the main belief line.\n */\n async merge(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<MergeWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/merge`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Activate a planning worktree.\n */\n async activateWorktree(worktreeId: string, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/activate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Update targeted beliefs/questions for a worktree.\n */\n async updateWorktreeTargets(\n input: UpdateWorktreeTargetsInput,\n idempotencyKey?: string\n ) {\n const { worktreeId, ...body } = input;\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/targets`,\n method: \"POST\",\n body,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Mark a worktree record complete.\n */\n async completeWorktree(\n input: CompleteWorktreeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Advance a worktree to its next lifecycle phase.\n */\n async advanceWorktreePhase(\n input: AdvanceWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Force a worktree into a specific lifecycle phase.\n */\n async setWorktreePhase(\n input: SetWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Patch opaque worktree state for orchestration flows.\n */\n async patchWorktreeState(\n input: PatchWorktreeStateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Batch create worktree records.\n */\n async bulkCreateWorktrees(\n input: BulkCreateWorktreesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as unknown as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Open a pull request for a worktree.\n */\n async openPullRequest(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<OpenPullRequestResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/pull-request`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Push scored worktree findings into another context.\n */\n async push(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<PushWorktreeResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/push`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List accessible topic contexts.\n */\n async listTopics(query: ListTopicsInput = {}) {\n return gateway.request<ListTopicsResponse>({\n path: `/api/platform/v1/workflow/topics${toQueryString({\n includeShared:\n typeof query.includeShared === \"boolean\"\n ? query.includeShared\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const items = asListItems<WorkflowTopicRecord>(data, \"topics\").map(\n (item) =>\n withTopicAlias(\n item as Record<string, unknown>\n ) as WorkflowTopicRecord\n );\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n return {\n ...record,\n ...createListResult(items, \"topics\"),\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as ListTopicsResponse;\n })\n );\n },\n\n /**\n * Switch the active context by topic or project name.\n */\n async switchTopicContext(\n input: SwitchTopicContextInput,\n idempotencyKey?: string\n ) {\n return gateway.request<SwitchTopicContextResponse>({\n path: \"/api/platform/v1/workflow/topics/switch\",\n method: \"POST\",\n body: {\n targetTopicName: input.targetTopicName,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as SwitchTopicContextResponse\n )\n );\n },\n\n /**\n * Create a workflow task.\n */\n async createTask(input: CreateTaskInput, idempotencyKey?: string) {\n return gateway.request<CreateTaskResponse>({\n path: \"/api/platform/v1/workflow/tasks\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a workflow task.\n */\n async completeTask(\n taskId: string,\n input: CompleteTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CompleteTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a workflow task.\n */\n async updateTask(\n taskId: string,\n input: UpdateTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<UpdateTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createBranch.\n */\n async createPillar(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createBranch(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use addWorktree.\n */\n async createSprint(\n input: {\n title: string;\n topicId?: string;\n branchId?: string;\n hypothesis?: string;\n beliefIds?: string[];\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use merge.\n */\n async completeSprint(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return client.merge(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use openPullRequest.\n */\n async requestReview(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return client.openPullRequest(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use push.\n */\n async publishFindings(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return client.push(worktreeId, input, idempotencyKey);\n },\n };\n\n return client;\n}\n","import { type AdminClientConfig, createAdminClient } from \"./adminClient\";\nimport {\n type AnswersClientConfig,\n createAnswersClient,\n} from \"./answersClient\";\nimport {\n type AudiencesClientConfig,\n createAudiencesClient,\n} from \"./audiencesClient\";\nimport { type AuditClientConfig, createAuditClient } from \"./auditClient\";\nimport {\n createAuthDeviceClient,\n type DeviceCodeInput,\n} from \"./authDeviceClient\";\nimport type { LucernSdkAuthContextInput } from \"./authContext\";\nimport {\n type BeliefsClientConfig,\n createBeliefsClient,\n mapOpinionHistoryEntriesFromGatewayData,\n type ModulateConfidenceInput,\n type OpinionHistoryEntry,\n} from \"./beliefsClient\";\nimport {\n type SourcesClientConfig,\n createSourcesClient,\n} from \"./sourcesClient\";\nimport {\n createEvidenceClient,\n type EvidenceClientConfig,\n} from \"./evidenceClient\";\nimport {\n createEventingClient,\n type EventingClientConfig,\n} from \"./eventingClient\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n type CustomToolRegistration,\n clearRegisteredCustomTools,\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n registerCustomTool,\n unregisterCustomTool,\n} from \"./customTools\";\nimport {\n createBeliefsFacade,\n createContradictionsFacade,\n createEdgesFacade,\n createEvidenceFacade,\n createEventsFacade,\n createGraphFacade,\n createIdentityFacade,\n createOntologiesFacade,\n createQuestionsFacade,\n createSearchFacade,\n createTasksFacade,\n createTopicsFacade,\n createWebhooksFacade,\n createWorktreesFacade,\n} from \"./gatewayFacades\";\nimport {\n createDecisionsClient,\n type DecisionsClientConfig,\n type RecordJudgmentInput,\n} from \"./decisionsClient\";\nimport {\n createEmbeddingsClient,\n type EmbeddingsClientConfig,\n} from \"./embeddingsClient\";\nimport {\n createContextClient,\n type ContextClientConfig,\n} from \"./contextClient\";\nimport {\n createGraphAnalysisClient,\n type GraphAnalysisClientConfig,\n} from \"./graphAnalysisClient\";\nimport { createGraphClient, type GraphClientConfig } from \"./graphClient\";\nimport {\n createGraphRecommendationsClient,\n type GraphRecommendationsClientConfig,\n} from \"./graphRecommendationsClient\";\nimport {\n createGraphStateClassifierClient,\n type GraphStateClassifierClientConfig,\n} from \"./graphStateClassifierClient\";\nimport { createHarnessClient, type HarnessClientConfig } from \"./harnessClient\";\nimport {\n createIdentityClient,\n type IdentityClientConfig,\n} from \"./identityClient\";\nimport { createJobsClient, type JobsClientConfig } from \"./jobsClient\";\nimport {\n createLearningClient,\n type LearningClientConfig,\n} from \"./learningClient\";\nimport { createMcpClient } from \"./mcpClient\";\nimport {\n createFunctionSurfaceClient,\n type FunctionSurfaceClientConfig,\n type FunctionSurfaceInput,\n} from \"./generated/functionSurface\";\nimport {\n createModelRuntimeClient,\n type ModelRuntimeClientConfig,\n} from \"./modelRuntimeClient\";\nimport {\n createOntologyClient,\n type OntologyClientConfig,\n} from \"./ontologyClient\";\nimport {\n createOntologyLinksClient,\n type OntologyLinksClientConfig,\n} from \"./ontologyLinksClient\";\nimport {\n createOrgGraphSearchClient,\n type OrgGraphSearchClientConfig,\n} from \"./orgGraphSearchClient\";\nimport { createPacksClient, type PacksClientConfig } from \"./packsClient\";\nimport { createPolicyClient, type PolicyClientConfig } from \"./policyClient\";\nimport { createReportsClient, type ReportsClientConfig } from \"./reportsClient\";\nimport { createSchemaClient, type SchemaClientConfig } from \"./schemaClient\";\nimport { asListItems, resolveText, resolveTopicId } from \"./sdkSurface\";\nimport {\n createTelemetryClient,\n type TelemetryClientConfig,\n} from \"./telemetryClient\";\nimport { createTopicsClient, type TopicsClientConfig } from \"./topicsClient\";\nimport {\n createToolRegistryClient,\n type ToolRegistryClientConfig,\n} from \"./toolRegistryClient\";\nimport type {\n JsonObject,\n PlatformGraphEdge,\n PlatformGraphNode,\n} from \"./types\";\nimport { LUCERN_SDK_VERSION } from \"./version\";\nimport {\n type AddWorktreeInput,\n type CompleteTaskInput,\n type CreateTaskInput,\n createWorkflowClient,\n type MergeInput,\n type UpdateTaskInput,\n type WorkflowClientConfig,\n} from \"./workflowClient\";\n\ntype ClientConfig =\n | BeliefsClientConfig\n | SourcesClientConfig\n | GraphClientConfig\n | DecisionsClientConfig\n | AnswersClientConfig\n | ContextClientConfig\n | WorkflowClientConfig\n | AuditClientConfig\n | AdminClientConfig\n | EvidenceClientConfig\n | EmbeddingsClientConfig\n | EventingClientConfig\n | GraphAnalysisClientConfig\n | GraphRecommendationsClientConfig\n | GraphStateClassifierClientConfig\n | IdentityClientConfig\n | JobsClientConfig\n | ModelRuntimeClientConfig\n | OntologyLinksClientConfig\n | OrgGraphSearchClientConfig\n | PolicyClientConfig\n | PacksClientConfig\n | ReportsClientConfig\n | LearningClientConfig\n | TelemetryClientConfig\n | ToolRegistryClientConfig\n | FunctionSurfaceClientConfig\n | OntologyClientConfig\n | HarnessClientConfig\n | SchemaClientConfig\n | AudiencesClientConfig\n | TopicsClientConfig;\n\ntype NodeLike = PlatformGraphNode;\ntype EdgeLike = PlatformGraphEdge;\ntype CustomToolInput = JsonObject;\ntype CustomToolInvoker = (input?: CustomToolInput) => Promise<unknown>;\ntype CustomToolNamespace = Record<string, CustomToolInvoker>;\ntype GatewayDataEnvelope<T extends Record<string, unknown>> =\n PlatformGatewaySuccess<T> & T;\n\ntype BeliefsCompatCreateInput = {\n topicId?: string;\n text?: string;\n canonicalText?: string;\n formulation?: string;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n baseRate?: number;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsCompatForkInput = {\n text?: string;\n newFormulation?: string;\n formulation?: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\ntype BeliefsCompatUpdateConfidenceInput = ModulateConfidenceInput;\n\nfunction asNodeArray(data: unknown): NodeLike[] {\n const rows = asListItems<NodeLike>(data, \"nodes\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is NodeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as NodeLike];\n }\n return [];\n}\n\nfunction asEdgeArray(data: unknown): EdgeLike[] {\n const rows = asListItems<EdgeLike>(data, \"edges\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is EdgeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as EdgeLike];\n }\n return [];\n}\n\nfunction normalizeBeliefStatus(status: string | undefined): string {\n if (!status) {\n return \"unscored\";\n }\n if (status === \"unscored\" || status === \"scored\" || status === \"archived\") {\n return status;\n }\n if (status === \"active\" || status === \"in_evaluation\") {\n return \"unscored\";\n }\n if (status === \"challenged\" || status === \"validated\") {\n return \"scored\";\n }\n return \"unscored\";\n}\n\nfunction confidenceFromNode(node: NodeLike): number {\n if (typeof node.confidence === \"number\") {\n return node.confidence;\n }\n if (typeof node.metadata?.confidence === \"number\") {\n return node.metadata.confidence;\n }\n return 0;\n}\n\nfunction toGatewayConfig(config: LucernClientConfig): GatewayClientConfig {\n return {\n baseUrl: config.baseUrl,\n fetchImpl: config.fetchImpl,\n maxRetries: config.maxRetries,\n timeoutMs: config.timeoutMs,\n timeoutMsByMethod: config.timeoutMsByMethod,\n requestIdFactory: config.requestIdFactory,\n onRequest: config.onRequest,\n onResponse: config.onResponse,\n authContext: config.authContext,\n requireCanonicalAuthContext: config.requireCanonicalAuthContext,\n getAuthHeaders: async () => {\n const base = (\n config.getAuthHeaders ? await config.getAuthHeaders() : {}\n ) as Record<string, string>;\n if (config.apiKey && !base[\"x-lucern-key\"] && !base.Authorization) {\n base[\"x-lucern-key\"] = config.apiKey;\n }\n if (config.userToken && !base[\"x-lucern-session-token\"]) {\n base[\"x-lucern-session-token\"] = config.userToken;\n }\n if (config.environment && !base[\"x-lucern-environment\"]) {\n base[\"x-lucern-environment\"] = config.environment;\n }\n return base;\n },\n };\n}\n\nfunction requireTopicId(args: { topicId?: string }): string {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nconst AUDIT_NODE_REFERENCE_KEY_PATTERN =\n /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;\n\nfunction matchesAuditNodeReference(value: unknown, nodeId: string): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => matchesAuditNodeReference(entry, nodeId));\n }\n\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n return Object.entries(value as Record<string, unknown>).some(([key, entry]) => {\n if (\n typeof entry === \"string\" &&\n entry === nodeId &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)\n ) {\n return true;\n }\n\n if (\n Array.isArray(entry) &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) &&\n entry.some((item) => item === nodeId)\n ) {\n return true;\n }\n\n return matchesAuditNodeReference(entry, nodeId);\n });\n}\n\nfunction requireText(args: {\n text?: string;\n canonicalText?: string;\n formulation?: string;\n newFormulation?: string;\n}): string {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n return text;\n}\n\nfunction requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nfunction exposeGatewayData<T extends Record<string, unknown>>(\n response: PlatformGatewaySuccess<T>\n): GatewayDataEnvelope<T> {\n return Object.assign({}, response, response.data);\n}\n\n/**\n * Configuration for the high-level Lucern SDK client.\n *\n * At minimum, provide `apiKey` and `baseUrl`. The SDK handles\n * authentication, retries, and idempotency automatically.\n */\nexport type LucernClientConfig = ClientConfig & {\n /** API key for authenticating with the Lucern platform. */\n apiKey?: string;\n /**\n * Optional Clerk JWT for per-user identity and RBAC.\n * When present, the SDK operates in user-scoped mode with\n * pack-aware tool filtering. When absent, operates in agent mode.\n */\n /** Lucern platform session token for interactive/user-scoped requests. */\n userToken?: string;\n /**\n * Optional pack key for auto-install convenience.\n * When set, the SDK will call `packs.install()` on first use\n * to ensure the pack is available in the workspace.\n */\n packKey?: string;\n /** Target environment. Defaults to production if not specified. */\n environment?: \"sandbox\" | \"production\";\n};\n\n/**\n * Create the high-level Lucern SDK client with all domain namespaces.\n *\n * @param config - Client configuration with API key, base URL, and optional settings.\n * @returns The Lucern client with namespaced methods for beliefs, topics, evidence, decisions, and more.\n */\nexport function createLucernClient(config: LucernClientConfig = {}) {\n const gatewayConfig = toGatewayConfig(config);\n const beliefsClient = createBeliefsClient(gatewayConfig);\n const sourcesClient = createSourcesClient(gatewayConfig);\n const beliefsFacade = createBeliefsFacade(gatewayConfig);\n const evidenceClient = createEvidenceClient(gatewayConfig);\n const embeddingsClient = createEmbeddingsClient(gatewayConfig);\n const eventingClient = createEventingClient(gatewayConfig);\n const graphClient = createGraphClient(gatewayConfig);\n const graphAnalysisClient = createGraphAnalysisClient(gatewayConfig);\n const graphRecommendationsClient =\n createGraphRecommendationsClient(gatewayConfig);\n const graphStateClassifierClient =\n createGraphStateClassifierClient(gatewayConfig);\n const graphFacade = createGraphFacade(gatewayConfig);\n const decisionsClient = createDecisionsClient(gatewayConfig);\n const contextClient = createContextClient(gatewayConfig);\n const workflowClient = createWorkflowClient(gatewayConfig);\n const auditClient = createAuditClient(gatewayConfig);\n const authDeviceClient = createAuthDeviceClient(gatewayConfig);\n const adminClient = createAdminClient(gatewayConfig);\n const answersClient = createAnswersClient(gatewayConfig);\n const contradictionsFacade = createContradictionsFacade(gatewayConfig);\n const edgesFacade = createEdgesFacade(gatewayConfig);\n const evidenceFacade = createEvidenceFacade(gatewayConfig);\n const eventsFacade = createEventsFacade(gatewayConfig);\n const identityClient = createIdentityClient(gatewayConfig);\n const identityFacade = createIdentityFacade(gatewayConfig);\n const ontologiesFacade = createOntologiesFacade(gatewayConfig);\n const questionsFacade = createQuestionsFacade(gatewayConfig);\n const searchFacade = createSearchFacade(gatewayConfig);\n const tasksFacade = createTasksFacade(gatewayConfig);\n const topicsFacade = createTopicsFacade(gatewayConfig);\n const webhooksFacade = createWebhooksFacade(gatewayConfig);\n const worktreesFacade = createWorktreesFacade(gatewayConfig);\n const policyClient = createPolicyClient(gatewayConfig);\n const ontologyClient = createOntologyClient(gatewayConfig);\n const ontologyLinksClient = createOntologyLinksClient(gatewayConfig);\n const orgGraphSearchClient = createOrgGraphSearchClient(gatewayConfig);\n const functionSurfaceClient = createFunctionSurfaceClient(gatewayConfig);\n const toolRegistryClient = createToolRegistryClient(gatewayConfig);\n const modelRuntimeClient = createModelRuntimeClient(gatewayConfig);\n const packsClient = createPacksClient(gatewayConfig);\n const reportsClient = createReportsClient(gatewayConfig);\n const learningClient = createLearningClient(gatewayConfig);\n const mcpClient = createMcpClient(gatewayConfig);\n const jobsClient = createJobsClient(gatewayConfig);\n const telemetryClient = createTelemetryClient(gatewayConfig);\n const harnessClient = createHarnessClient(gatewayConfig);\n const schemaClient = createSchemaClient(gatewayConfig);\n const audiencesClient = createAudiencesClient(gatewayConfig);\n const topicsClient = createTopicsClient(gatewayConfig);\n const gateway = createGatewayRequestClient(gatewayConfig);\n const customNamespaceCache = new Map<string, CustomToolNamespace>();\n\n // Pack auto-install: tracks whether the configured packKey has been installed.\n // Install is lazy — triggered on first API call or explicit ensurePack().\n let _packInstalled = !config.packKey; // true if no packKey configured\n let _packInstallPromise: Promise<void> | null = null;\n\n async function ensurePack(): Promise<void> {\n if (_packInstalled) {\n return;\n }\n if (_packInstallPromise) {\n return _packInstallPromise;\n }\n\n const installPromise = (async () => {\n try {\n await packsClient.install({\n packKey: config.packKey!,\n autoEnable: true,\n });\n _packInstalled = true;\n } catch (err) {\n // If the pack is already installed, treat as success\n if (err instanceof LucernApiError && err.code === \"ALREADY_EXISTS\") {\n _packInstalled = true;\n return;\n }\n // Re-throw — caller decides whether to proceed without the pack\n throw err;\n }\n })();\n\n _packInstallPromise = installPromise;\n\n try {\n await installPromise;\n } catch (error) {\n if (_packInstallPromise === installPromise) {\n _packInstallPromise = null;\n }\n throw error;\n }\n }\n\n const invokeCustomTool = async (\n fullName: string,\n input: CustomToolInput = {}\n ): Promise<unknown> => {\n const payload =\n input && typeof input === \"object\" && !Array.isArray(input) ? input : {};\n return invokeRegisteredCustomTool(fullName, payload, { source: \"sdk\" });\n };\n\n const getCustomNamespace = (namespace: string): CustomToolNamespace => {\n const normalized = namespace.trim() || \"custom\";\n const cached = customNamespaceCache.get(normalized);\n if (cached) {\n return cached;\n }\n\n const proxy = new Proxy(\n {},\n {\n get(_target, property): unknown {\n if (typeof property !== \"string\" || property === \"then\") {\n return;\n }\n return async (input: CustomToolInput = {}) =>\n invokeCustomTool(`${normalized}.${property}`, input);\n },\n }\n ) as CustomToolNamespace;\n\n customNamespaceCache.set(normalized, proxy);\n return proxy;\n };\n\n const extensionNamespaces = new Proxy(\n {},\n {\n get(_target, namespace): unknown {\n if (typeof namespace !== \"string\" || namespace === \"then\") {\n return;\n }\n return getCustomNamespace(namespace);\n },\n }\n ) as Record<string, CustomToolNamespace>;\n\n async function createEvidenceCompat(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n const rationale = args.rationale ?? args.supports?.reasoning;\n if (!rationale) {\n throw new Error(\"rationale is required\");\n }\n const metadata = {\n ...(args.metadata ?? {}),\n rationale,\n } as JsonObject;\n\n return evidenceFacade.create({\n topicId: resolveTopicId(args),\n text,\n source: args.source ?? args.sourceUrl,\n targetId: args.targetId ?? args.supports?.nodeId,\n weight: args.weight ?? args.supports?.weight,\n rationale,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n title: args.title,\n content: args.content,\n contentType: args.contentType,\n kind: args.kind,\n });\n }\n\n async function addEvidence(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const created = await createEvidenceCompat({\n ...args,\n targetId: args.supports ? undefined : args.targetId,\n weight: args.supports ? undefined : args.weight,\n });\n\n if (!args.supports) {\n return created.data;\n }\n\n const evidenceId = created.data.id;\n if (typeof evidenceId !== \"string\" || evidenceId.length === 0) {\n throw new Error(\"evidence create did not return an id\");\n }\n\n const linked = await evidenceFacade.link({\n evidenceId,\n targetId: args.supports.nodeId,\n weight: args.supports.weight,\n rationale: args.supports.reasoning,\n });\n\n return {\n ...created.data,\n edgeId: linked.data.edgeId,\n };\n }\n\n async function listBeliefs(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n const response = await beliefsFacade.list({\n topicId: requireTopicId(args),\n status: args.status,\n worktreeId: args.worktreeId,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n });\n return Array.isArray(response.data.beliefs) ? response.data.beliefs : [];\n }\n\n async function searchBeliefs(args: {\n query: string;\n topicId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n }) {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n return { results: [] };\n }\n const response = await searchFacade.query({\n q: args.query,\n topicId,\n types: [\"belief\"],\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n });\n const data = exposeGatewayData(response);\n const groupedBeliefs = Array.isArray(data.beliefs)\n ? (data.beliefs as Record<string, unknown>[])\n : [];\n const mergedResults = Array.isArray(data.results)\n ? (data.results as Record<string, unknown>[])\n : [];\n const results =\n groupedBeliefs.length > 0\n ? groupedBeliefs\n : mergedResults.filter((result) => result.type === \"belief\");\n return { results };\n }\n\n async function searchResources(\n query: string,\n options: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n const topicId = resolveTopicId(options);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return searchFacade\n .query({\n q: query,\n topicId,\n types: options.types as Array<\"belief\" | \"evidence\" | \"question\"> | undefined,\n status: options.status,\n minConfidence: options.minConfidence,\n limit: options.limit,\n cursor: options.cursor,\n })\n .then(exposeGatewayData);\n }\n\n async function findContradictions(args: {\n topicId?: string;\n nodeId?: string;\n status?: string;\n }) {\n const topicId = resolveTopicId(args);\n const response = topicId\n ? await graphClient.listNodes({\n topicId,\n nodeType: \"contradiction\",\n limit: 500,\n })\n : args.nodeId\n ? await graphClient.queryNodes({ nodeId: args.nodeId })\n : { data: [] };\n const contradictions = asNodeArray(response.data)\n .filter((node) => {\n const status =\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : typeof node.status === \"string\"\n ? node.status\n : \"unresolved\";\n if (args.status && status !== args.status) {\n return false;\n }\n return true;\n })\n .map((node) => ({\n beliefA:\n typeof node.metadata?.beliefA === \"string\"\n ? node.metadata.beliefA\n : \"\",\n beliefB:\n typeof node.metadata?.beliefB === \"string\"\n ? node.metadata.beliefB\n : \"\",\n description: node.canonicalText ?? \"\",\n severity:\n typeof node.metadata?.severity === \"string\"\n ? node.metadata.severity\n : \"medium\",\n status:\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : \"unresolved\",\n defeatType:\n typeof node.metadata?.defeatType === \"string\"\n ? node.metadata.defeatType\n : \"rebuts\",\n }));\n return { contradictions };\n }\n\n async function queryLineage(nodeId: string, depth = 5) {\n const response = await beliefsFacade.lineage(nodeId);\n const lineage = Array.isArray(response.data.lineage)\n ? response.data.lineage\n : [];\n const chain =\n lineage.length > 0\n ? lineage\n .slice(0, depth + 1)\n .map((entry, index) => ({\n nodeId: entry.nodeId ?? entry.beliefId ?? \"\",\n relation: index === 0 ? \"self\" : \"ancestor\",\n }))\n : [{ nodeId, relation: \"self\" }];\n return {\n chain,\n forkTree: {\n nodeId,\n parentCount: Math.max(0, lineage.length - 1),\n childCount: 0,\n children: [],\n },\n depth,\n beliefId: response.data.beliefId,\n lineage,\n };\n }\n\n async function getConfidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n }\n\n async function getOpinionHistory(nodeId: string): Promise<OpinionHistoryEntry[]> {\n const response = await beliefsFacade.opinionHistory(nodeId);\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n async function getAuditTrail(nodeId: string, limit = 50) {\n const events = await auditClient.listEvents({ limit });\n const entries = asListItems<JsonObject>(events.data, \"events\")\n .filter((event) => matchesAuditNodeReference(event, nodeId))\n .slice(0, limit)\n .map((event) => {\n const row = event as JsonObject;\n return {\n action: typeof row.action === \"string\" ? row.action : \"unknown\",\n actor: typeof row.actor === \"string\" ? row.actor : \"unknown\",\n timestamp:\n typeof row.timestamp === \"number\" ? row.timestamp : Date.now(),\n rationale:\n typeof row.rationale === \"string\"\n ? row.rationale\n : \"No rationale recorded.\",\n before: row.before ?? null,\n after: row.after ?? null,\n };\n });\n return { entries };\n }\n\n async function bisectConfidence(\n nodeId: string,\n args: { expectedDirection: \"overconfident\" | \"underconfident\" }\n ) {\n return beliefsFacade.bisect(nodeId, args).then(exposeGatewayData);\n }\n\n async function discoverTopics(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/discover\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function discoverEntityConnections(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/entity-connections\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function triggerBeliefReview(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/belief-review\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function createContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function evaluateContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/evaluate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function getContractStatusCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/status\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function listContractsCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/contracts${toQueryString({\n beliefNodeId:\n typeof input.beliefNodeId === \"string\"\n ? input.beliefNodeId\n : undefined,\n contractId:\n typeof input.contractId === \"string\" ? input.contractId : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n })}`,\n })\n .then(exposeGatewayData);\n }\n\n async function createOntologyCompat(input: JsonObject = {}) {\n const response = await ontologyClient.createDefinition(\n input as Parameters<typeof ontologyClient.createDefinition>[0]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function updateOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const { id: _id, ...rest } = input;\n const response = await ontologyClient.updateDefinition(\n id,\n rest as Parameters<typeof ontologyClient.updateDefinition>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function archiveOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const response = await ontologyClient.archiveDefinition(id);\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function createOntologyVersionCompat(input: JsonObject = {}) {\n const ontologyId =\n typeof input.ontologyId === \"string\" ? input.ontologyId : \"\";\n const { ontologyId: _ontologyId, ...rest } = input;\n const response = await ontologyClient.createVersion(\n ontologyId,\n rest as Parameters<typeof ontologyClient.createVersion>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function publishOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/publish\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function deprecateOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/deprecate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function resolveEffectiveOntologyCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/effective\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function traceEntityImpactCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/trace-entity-impact\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n const nodesNamespace = {\n list(query: Parameters<typeof graphClient.listNodes>[0]) {\n return graphClient.listNodes(query);\n },\n get(input: string | Parameters<typeof graphClient.getNode>[0]) {\n return graphClient.getNode(\n typeof input === \"string\" ? { nodeId: input } : input\n );\n },\n create(\n input: Parameters<typeof graphClient.createNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.createNode(input, idempotencyKey);\n },\n update(\n input: Parameters<typeof graphClient.updateNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.updateNode(input, idempotencyKey);\n },\n batchCreate(\n input: Parameters<typeof graphClient.batchCreateNodes>[0],\n idempotencyKey?: string\n ) {\n return graphClient.batchCreateNodes(input, idempotencyKey);\n },\n supersede(\n input: Parameters<typeof graphClient.supersedeNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.supersedeNode(input, idempotencyKey);\n },\n verify(\n input: Parameters<typeof graphClient.verifyNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.verifyNode(input, idempotencyKey);\n },\n hardDelete(\n input: Parameters<typeof graphClient.hardDeleteNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.hardDeleteNode(input, idempotencyKey);\n },\n };\n\n return {\n config,\n version: LUCERN_SDK_VERSION,\n search(\n query: string,\n options?: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }\n ) {\n return searchResources(query, options);\n },\n events: {\n list(query: Parameters<typeof eventsFacade.list>[0] = {}) {\n return eventsFacade.list(query).then(exposeGatewayData);\n },\n replay(\n input: Parameters<typeof eventsFacade.replay>[0]\n ) {\n return eventsFacade.replay(input).then(exposeGatewayData);\n },\n recordEvent: eventingClient.recordEvent,\n listEvents: eventingClient.listEvents,\n listWebhooks: eventingClient.listWebhooks,\n enqueueDelivery: eventingClient.enqueueDelivery,\n recordDeliveryAttempt: eventingClient.recordDeliveryAttempt,\n updateDeliveryStatus: eventingClient.updateDeliveryStatus,\n },\n beliefs: {\n create(input: BeliefsCompatCreateInput) {\n return beliefsFacade\n .create({\n topicId: resolveTopicId(input),\n text: requireText(input),\n rationale: input.rationale,\n worktreeId: input.worktreeId,\n pillar: input.pillar,\n baseRate: requireBaseRate(input),\n sourceBeliefIds: input.sourceBeliefIds,\n sourceType: input.sourceType,\n beliefType: input.beliefType,\n reversibility: input.reversibility,\n predictionMeta: input.predictionMeta,\n metadata: input.metadata,\n })\n .then(exposeGatewayData);\n },\n get(nodeId: string) {\n return beliefsFacade.get(nodeId).then(exposeGatewayData);\n },\n refine(\n nodeId: string,\n textOrInput: string | { text: string; rationale?: string },\n rationale?: string\n ) {\n const payload =\n typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : {\n text: textOrInput.text,\n rationale: textOrInput.rationale,\n };\n return beliefsFacade.refine(nodeId, payload).then(exposeGatewayData);\n },\n updateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n modulateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof beliefsFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateRationale(\n input: Parameters<typeof beliefsFacade.updateRationale>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateRationale(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n linkBeliefs(\n input: Parameters<typeof beliefsFacade.linkBeliefs>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .linkBeliefs(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n unlinkEvidence(\n input: Parameters<typeof beliefsFacade.unlinkEvidence>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .unlinkEvidence(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateCriticality(\n input: Parameters<typeof beliefsFacade.updateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchUpdateCriticality(\n input: Parameters<typeof beliefsFacade.batchUpdateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .batchUpdateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n reassignTopic(\n input: Parameters<typeof beliefsFacade.reassignTopic>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .reassignTopic(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n fork(nodeId: string, input: BeliefsCompatForkInput) {\n return beliefsFacade\n .fork(nodeId, {\n text: requireText(input),\n forkReason: input.forkReason,\n rationale: input.rationale,\n })\n .then(exposeGatewayData);\n },\n archive(\n nodeId: string,\n input?: string | { reason?: string; rationale?: string }\n ) {\n const payload =\n typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n return beliefsFacade.archive(nodeId, payload).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n return beliefsFacade\n .list({\n topicId: requireTopicId(args),\n worktreeId: args.worktreeId,\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search: searchBeliefs,\n lineage(nodeId: string) {\n return beliefsFacade.lineage(nodeId).then(exposeGatewayData);\n },\n confidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n },\n opinionHistory(nodeId: string) {\n return getOpinionHistory(nodeId);\n },\n createContract(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.createContract>[1]\n ) {\n return beliefsFacade\n .createContract(nodeId, input)\n .then(exposeGatewayData);\n },\n bisect(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.bisect>[1]\n ) {\n return beliefsFacade.bisect(nodeId, input).then(exposeGatewayData);\n },\n },\n webhooks: {\n create(input: Parameters<typeof webhooksFacade.create>[0]) {\n return webhooksFacade.create(input).then(exposeGatewayData);\n },\n list(query?: Parameters<typeof webhooksFacade.list>[0]) {\n return webhooksFacade.list(query).then(exposeGatewayData);\n },\n get(id: string) {\n return webhooksFacade.get(id).then(exposeGatewayData);\n },\n update(\n id: string,\n input: Parameters<typeof webhooksFacade.update>[1]\n ) {\n return webhooksFacade.update(id, input).then(exposeGatewayData);\n },\n delete(id: string) {\n return webhooksFacade.delete(id).then(exposeGatewayData);\n },\n test(id: string, input?: Parameters<typeof webhooksFacade.test>[1]) {\n return webhooksFacade.test(id, input).then(exposeGatewayData);\n },\n deliveries(\n id: string,\n query?: Parameters<typeof webhooksFacade.deliveries>[1]\n ) {\n return webhooksFacade.deliveries(id, query).then(exposeGatewayData);\n },\n health(id: string) {\n return webhooksFacade.health(id).then(exposeGatewayData);\n },\n },\n edges: {\n create(args: {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n }) {\n return edgesFacade\n .create({\n sourceId: args.sourceId,\n targetId: args.targetId,\n edgeType: args.edgeType,\n topicId: args.topicId,\n confidence: args.confidence,\n weight: args.weight,\n context: args.context ?? args.reasoning,\n })\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof edgesFacade.update>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof edgesFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n removeBetween(\n input: Parameters<typeof edgesFacade.removeBetween>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .removeBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof edgesFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .batchCreate(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof edgesFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n list(args: {\n sourceId: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n }) {\n return edgesFacade\n .list({\n sourceId: args.sourceId,\n edgeType: args.edgeType,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return edgesFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n },\n evidence: {\n create(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n return createEvidenceCompat(args).then(exposeGatewayData);\n },\n add: addEvidence,\n get(evidenceId: string) {\n return evidenceFacade.get(evidenceId).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return evidenceFacade\n .list({\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search(args: {\n q?: string;\n query?: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n }) {\n const q = args.q ?? args.query;\n if (!q) {\n throw new Error(\"q is required\");\n }\n return evidenceFacade\n .search({\n q,\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n link(args: {\n evidenceId: string;\n targetId?: string;\n beliefId?: string;\n questionId?: string;\n targetType?: \"belief\" | \"question\" | string;\n weight?: number;\n rationale?: string;\n }) {\n const targetId = args.targetId ?? args.questionId ?? args.beliefId;\n if (!targetId) {\n throw new Error(\"targetId is required\");\n }\n const targetType =\n typeof args.targetType === \"string\"\n ? args.targetType\n : args.questionId\n ? \"question\"\n : args.beliefId\n ? \"belief\"\n : undefined;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId,\n targetType: targetType as \"belief\" | \"question\" | undefined,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then(exposeGatewayData);\n },\n linkToBelief(args: {\n evidenceId: string;\n beliefId: string;\n weight: number;\n rationale?: string;\n }) {\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.beliefId,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n beliefId: args.beliefId,\n }));\n },\n classifyEvidence(\n beliefId: string,\n evidenceId: string,\n config?: Parameters<typeof evidenceClient.classifyEvidence>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidence(beliefId, evidenceId, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n classifyEvidenceBatch(\n beliefId: string,\n evidence: Parameters<typeof evidenceClient.classifyEvidenceBatch>[1],\n config?: Parameters<typeof evidenceClient.classifyEvidenceBatch>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidenceBatch(beliefId, evidence, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof evidenceFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof evidenceFacade.update>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n flagIncorrect(\n input: Parameters<typeof evidenceFacade.flagIncorrect>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .flagIncorrect(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof evidenceFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n updateVerificationStatus(\n input: Parameters<typeof evidenceFacade.updateVerificationStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateVerificationStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n },\n sources: {\n upsert(\n input: Parameters<typeof sourcesClient.upsert>[0],\n idempotencyKey?: Parameters<typeof sourcesClient.upsert>[1]\n ) {\n return sourcesClient.upsert(input, idempotencyKey).then(exposeGatewayData);\n },\n get(sourceId: string) {\n return sourcesClient.get(sourceId).then(exposeGatewayData);\n },\n },\n questions: {\n create(args: {\n text: string;\n topicId?: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n }) {\n return questionsFacade\n .create({\n topicId: resolveTopicId(args),\n text: args.text,\n priority: args.priority,\n linkedBeliefId: args.linkedBeliefId,\n metadata: args.metadata,\n })\n .then(exposeGatewayData);\n },\n get(questionId: string) {\n return questionsFacade.get(questionId).then(exposeGatewayData);\n },\n refine(\n questionId: string,\n text: string,\n refinementReason?: string\n ) {\n return questionsFacade\n .refine(questionId, {\n text,\n rationale: refinementReason,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return questionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n priority: args.priority,\n worktreeId: args.worktreeId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n updateStatus(questionId: string, status: string, rationale?: string) {\n return questionsFacade\n .updateStatus(questionId, {\n status,\n rationale,\n })\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof questionsFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .batchCreate(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n add(\n input: Parameters<typeof questionsFacade.add>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .add(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n updatePriority(\n input: Parameters<typeof questionsFacade.updatePriority>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updatePriority(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n advanceToConviction(\n input: Parameters<typeof questionsFacade.advanceToConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .advanceToConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateConviction(\n input: Parameters<typeof questionsFacade.updateConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updateConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n finalizeConviction(\n input: Parameters<typeof questionsFacade.finalizeConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .finalizeConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof questionsFacade.update>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof questionsFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n answer(\n questionId: string,\n input: {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n }\n ) {\n return questionsFacade\n .answer(questionId, input)\n .then(exposeGatewayData);\n },\n archive(questionId: string, reason?: string) {\n return questionsFacade\n .archive(questionId, { reason })\n .then(exposeGatewayData);\n },\n linkEvidence(args: {\n evidenceId: string;\n questionId: string;\n relevance?: number;\n weight?: number;\n rationale?: string;\n }) {\n const weight = args.weight ?? args.relevance;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.questionId,\n targetType: \"question\",\n weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n questionId: args.questionId,\n relevance: weight,\n }));\n },\n getHighPriority(args: {\n topicId?: string;\n limit?: number;\n includeAnswered?: boolean;\n }) {\n return this.list({\n topicId: requireTopicId(args),\n status: args.includeAnswered ? undefined : \"open\",\n }).then((data) => {\n const questions = (\n Array.isArray(data.questions) ? data.questions : []\n ) as Array<{ priority?: string } & Record<string, unknown>>;\n const rank = (priority: string | undefined): number => {\n switch (priority) {\n case \"urgent\":\n return 4;\n case \"high\":\n return 3;\n case \"medium\":\n return 2;\n case \"low\":\n return 1;\n default:\n return 0;\n }\n };\n\n return {\n questions: [...questions]\n .sort((a, b) => rank(b.priority) - rank(a.priority))\n .slice(0, args.limit ?? 20),\n };\n });\n },\n async findMissing(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n },\n graph: {\n nodes: nodesNamespace,\n createEdge(input: Parameters<typeof graphClient.createEdge>[0]) {\n return graphClient.createEdge(input);\n },\n neighborhood(args: Parameters<typeof graphClient.neighborhood>[0]) {\n return graphFacade\n .neighborhood({\n globalId: args.globalId,\n globalIds:\n typeof args.globalIds === \"string\"\n ? args.globalIds\n .split(\",\")\n .map((value) => value.trim())\n .filter((value) => value.length > 0)\n : undefined,\n maxDepth: args.maxDepth,\n })\n .then(exposeGatewayData);\n },\n queryLineage,\n getConfidenceHistory,\n getOpinionHistory,\n getAuditTrail,\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return graphFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth ?? 3,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n analyze(args: {\n topicId?: string;\n limit?: number;\n metric?: string;\n }) {\n return graphFacade\n .analyze({\n topicId: requireTopicId(args),\n limit: args.limit,\n metric: args.metric as never,\n })\n .then(exposeGatewayData);\n },\n bias(args: {\n topicId?: string;\n threshold?: number;\n limit?: number;\n }) {\n return graphFacade\n .bias({\n topicId: requireTopicId(args),\n threshold: args.threshold,\n limit: args.limit,\n })\n .then(exposeGatewayData);\n },\n gaps(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n falsify(args: {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n }) {\n return graphFacade\n .falsify({\n topicId: args.topicId,\n beliefId: args.beliefId,\n beliefIds: args.beliefIds,\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n traceEntityImpact(args: { nodeId: string; topicId?: string }) {\n return traceEntityImpactCompat({\n nodeId: args.nodeId,\n topicId: args.topicId,\n });\n },\n searchBeliefs,\n findContradictions,\n bisectConfidence,\n listBeliefs,\n detectConfirmationBias(\n topicId: string,\n threshold?: number\n ) {\n return this.bias({\n topicId,\n threshold,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n threshold: threshold ?? 0.7,\n }));\n },\n getStructureAnalysis(topicId: string) {\n return this.analyze({\n topicId,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n }));\n },\n getFalsificationQuestions(\n topicId: string,\n beliefIds?: string[]\n ) {\n return graphFacade\n .falsify({\n topicId,\n beliefIds,\n })\n .then(exposeGatewayData)\n .then((response) => ({\n topicId,\n questions: response.questions,\n }));\n },\n },\n judgments: {\n create(input: RecordJudgmentInput) {\n return decisionsClient.createJudgment(input);\n },\n record(input: RecordJudgmentInput) {\n return decisionsClient.recordJudgment(input);\n },\n list(query: Parameters<typeof decisionsClient.listJudgments>[0]) {\n return decisionsClient.listJudgments(query);\n },\n get(judgmentId: string) {\n return decisionsClient.getJudgment(judgmentId);\n },\n recordOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.recordJudgmentOutcome>[1]\n ) {\n return decisionsClient.recordJudgmentOutcome(judgmentId, input);\n },\n updateOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.updateJudgmentOutcome>[1]\n ) {\n return decisionsClient.updateJudgmentOutcome(judgmentId, input);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({\n topicId,\n });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({\n topicId,\n });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({\n topicId,\n });\n },\n transitionAuditIntegrity(args: {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n }) {\n return decisionsClient.getJudgmentTransitionAuditIntegrity({\n ...args,\n topicId: requireTopicId(args),\n });\n },\n },\n worktrees: {\n createBranch(input: Parameters<typeof workflowClient.createBranch>[0]) {\n return workflowClient.createBranch(input);\n },\n createLens(input: Parameters<typeof workflowClient.createLens>[0]) {\n return workflowClient.createLens(input);\n },\n listLenses(query: Parameters<typeof workflowClient.listLenses>[0]) {\n return workflowClient.listLenses(query);\n },\n applyLensToTopic(\n input: Parameters<typeof workflowClient.applyLensToTopic>[0]\n ) {\n return workflowClient.applyLensToTopic(input);\n },\n removeLensFromTopic(\n input: Parameters<typeof workflowClient.removeLensFromTopic>[0]\n ) {\n return workflowClient.removeLensFromTopic(input);\n },\n create(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n beliefIds: input.beliefIds,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n });\n },\n add(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n beliefIds: input.beliefIds,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n });\n },\n list(query: Parameters<typeof workflowClient.listWorktrees>[0]) {\n return worktreesFacade.list({\n topicId: requireTopicId(query),\n status: query.status,\n limit: query.limit,\n });\n },\n activate(worktreeId: string) {\n return worktreesFacade.activate({ id: worktreeId });\n },\n updateMetadata(\n input: FunctionSurfaceInput\n ) {\n const dependsOn = Array.isArray(input.dependsOn)\n ? input.dependsOn.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n const blocks = Array.isArray(input.blocks)\n ? input.blocks.filter((value): value is string => typeof value === \"string\")\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis: typeof input.hypothesis === \"string\" ? input.hypothesis : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\" ? input.orderInLane : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\n },\n update(\n input: FunctionSurfaceInput\n ) {\n return this.updateMetadata(input);\n },\n updateTargets(\n input: Parameters<typeof workflowClient.updateWorktreeTargets>[0]\n ) {\n return worktreesFacade.updateTargets({\n id: input.worktreeId,\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n });\n },\n listAll(\n query: Parameters<typeof workflowClient.listAllWorktrees>[0] = {}\n ) {\n return workflowClient.listAllWorktrees(query);\n },\n merge(worktreeId: string, input: MergeInput) {\n return worktreesFacade.merge({\n id: worktreeId,\n outcomes: input.outcomes,\n summary: input.summary,\n });\n },\n push(\n worktreeId: string,\n input: Parameters<typeof workflowClient.push>[1]\n ) {\n return workflowClient.push(worktreeId, input);\n },\n openPullRequest(\n worktreeId: string,\n input: Parameters<typeof workflowClient.openPullRequest>[1]\n ) {\n return workflowClient.openPullRequest(worktreeId, input);\n },\n pipelineSnapshot(topicId: string) {\n return functionSurfaceClient.pipelineSnapshot({ topicId });\n },\n complete(\n input: Parameters<typeof worktreesFacade.complete>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.complete(input, idempotencyKey);\n },\n advancePhase(\n worktreeId: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.advancePhase(\n { worktreeId },\n idempotencyKey\n );\n },\n setPhase(\n worktreeId: string,\n phase: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.setPhase(\n { worktreeId, phase },\n idempotencyKey\n );\n },\n patchState(\n input: Parameters<typeof worktreesFacade.patchState>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.patchState(input, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof worktreesFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.bulkCreate(input, idempotencyKey);\n },\n },\n context: {\n listTopics(query: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status as\n | \"active\"\n | \"archived\"\n | \"watching\"\n | undefined,\n type: query.type,\n });\n },\n compile(\n topicId: string,\n input: Parameters<typeof contextClient.compile>[1] = {}\n ) {\n return contextClient.compile(topicId, input);\n },\n recordScopeLearning(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.recordScopeLearning(input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput) {\n return discoverTopics(input as JsonObject);\n },\n analyzeTopicDensity(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.analyzeTopicDensity(input);\n },\n applyAutoBranching(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.applyAutoBranching(input, idempotencyKey);\n },\n seedBeliefLattice(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.seedBeliefLattice(input, idempotencyKey);\n },\n getLatticeCoverage(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getLatticeCoverage(input);\n },\n matchEntityType(\n input: FunctionSurfaceInput\n ) {\n return ontologiesFacade\n .match(input as Parameters<typeof ontologiesFacade.match>[0])\n .then(exposeGatewayData);\n },\n discoverEntityConnections(\n input: FunctionSurfaceInput\n ) {\n return discoverEntityConnections(input as JsonObject);\n },\n triggerBeliefReview(\n input: FunctionSurfaceInput\n ) {\n return triggerBeliefReview(input as JsonObject);\n },\n },\n tasks: {\n create(input: CreateTaskInput) {\n return tasksFacade.create({\n topicId: resolveTopicId(input),\n title: input.title,\n description: input.description,\n taskType: input.taskType,\n priority: input.priority,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n complete(taskId: string, input: CompleteTaskInput) {\n return tasksFacade.complete({\n id: taskId,\n outputSummary: input.outputSummary,\n });\n },\n update(taskId: string, input: UpdateTaskInput) {\n return tasksFacade.update({\n id: taskId,\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n list(input: FunctionSurfaceInput) {\n return tasksFacade.list({\n topicId: resolveTopicId(input),\n worktreeId:\n typeof input.worktreeId === \"string\"\n ? input.worktreeId\n : typeof input.linkedWorktreeId === \"string\"\n ? input.linkedWorktreeId\n : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n },\n topics: {\n list(input: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: input.ontologyId,\n parentTopicId: input.parentTopicId,\n status: input.status as \"active\" | \"archived\" | \"watching\" | undefined,\n type: input.type,\n });\n },\n get(topicId: string) {\n return topicsFacade.get(topicId);\n },\n create(input: Parameters<typeof topicsClient.create>[0]) {\n return topicsFacade.create({\n name: input.name,\n description: input.description,\n type: input.type,\n parentTopicId: input.parentTopicId,\n ontologyId: input.ontologyId,\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n visibility: input.visibility,\n createdBy: input.createdBy,\n });\n },\n update(\n topicId: string,\n input: Parameters<typeof topicsClient.update>[1]\n ) {\n return topicsFacade.update({\n id: topicId,\n name: input.name,\n description: input.description,\n type: input.type,\n ontologyId: input.ontologyId,\n clearOntologyId: input.clearOntologyId,\n status: input.status,\n visibility: input.visibility,\n });\n },\n tree(\n topicId: string,\n query: Parameters<typeof topicsClient.getTree>[1] = {}\n ) {\n return topicsFacade.tree({\n id: topicId,\n maxDepth: query.maxDepth,\n });\n },\n getTree(input: { rootId: string; maxDepth?: number }) {\n return topicsFacade.tree({\n id: input.rootId,\n maxDepth: input.maxDepth,\n });\n },\n coverage(\n topicId: string,\n query: Parameters<typeof topicsClient.getCoverage>[1] = {}\n ) {\n return topicsFacade.coverage({\n id: topicId,\n includeDescendants: query.includeDescendants,\n maxDepth: query.maxDepth,\n });\n },\n remove(topicId: string, idempotencyKey?: string) {\n return topicsFacade.remove(topicId, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof topicsFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return topicsFacade.bulkCreate(input, idempotencyKey);\n },\n },\n answers: {\n create(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n const text =\n typeof input.answerText === \"string\" ? input.answerText : \"\";\n if (!text) {\n throw new Error(\"answerText is required\");\n }\n const confidence =\n input.confidence === \"moderate\" ? \"medium\" : input.confidence;\n\n return questionsFacade.answer(questionId, {\n text,\n confidence:\n typeof confidence === \"string\" ? confidence : undefined,\n evidenceIds: Array.isArray(input.evidenceNodeIds)\n ? input.evidenceNodeIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n });\n },\n get(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n return answersClient.get(questionId);\n },\n },\n contradictions: {\n flag(args: {\n beliefA: string;\n beliefB: string;\n description: string;\n topicId?: string;\n severity?: string;\n defeatType?: string;\n }) {\n return contradictionsFacade\n .flag({\n beliefA: args.beliefA,\n beliefB: args.beliefB,\n description: args.description,\n topicId: resolveTopicId(args),\n severity: args.severity,\n defeatType: args.defeatType,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }) {\n return contradictionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n get(contradictionId: string) {\n return contradictionsFacade.get(contradictionId).then(exposeGatewayData);\n },\n find: findContradictions,\n },\n ontologies: {\n list(\n input: {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return ontologiesFacade.list(input).then(exposeGatewayData);\n },\n get(ontologyId: string) {\n return ontologiesFacade\n .get(ontologyId)\n .then((response) => exposeGatewayData(response));\n },\n bind(\n input: Parameters<typeof ontologiesFacade.bind>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.bind>[1]\n ) {\n return ontologiesFacade\n .bind(input, idempotencyKey)\n .then((response) => exposeGatewayData(response));\n },\n match(\n input: Parameters<typeof ontologiesFacade.match>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.match>[1]\n ) {\n return ontologiesFacade.match(input, idempotencyKey).then(exposeGatewayData);\n },\n create(input: FunctionSurfaceInput) {\n return createOntologyCompat(input as JsonObject);\n },\n update(input: FunctionSurfaceInput) {\n return updateOntologyCompat(input as JsonObject);\n },\n archive(input: FunctionSurfaceInput) {\n return archiveOntologyCompat(input as JsonObject);\n },\n createVersion(\n input: FunctionSurfaceInput\n ) {\n return createOntologyVersionCompat(input as JsonObject);\n },\n publishVersion(\n input: FunctionSurfaceInput\n ) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n publishOntologyVersion(input: FunctionSurfaceInput) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n deprecateVersion(\n input: FunctionSurfaceInput\n ) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n resolveEffective(\n input: FunctionSurfaceInput\n ) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n raw: ontologyClient,\n },\n coordination: {\n registerSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.registerSession(input, idempotencyKey);\n },\n heartbeatSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.heartbeatSession(input, idempotencyKey);\n },\n endSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.endSession(input, idempotencyKey);\n },\n listActiveSessions(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.listActiveSessions(input);\n },\n sendAgentMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.sendAgentMessage(input, idempotencyKey);\n },\n broadcastMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.broadcastMessage(input, idempotencyKey);\n },\n getInbox(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n claimFiles(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.claimFiles(input, idempotencyKey);\n },\n },\n policy: {\n checkPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.checkPermission({\n topicId: typeof input.topicId === \"string\" ? input.topicId : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n beliefClusterId:\n typeof input.beliefClusterId === \"string\"\n ? input.beliefClusterId\n : undefined,\n });\n },\n listAccessibleTopics(\n input: Parameters<typeof policyClient.listAccessibleTopics>[0] = {}\n ) {\n return policyClient.listAccessibleTopics({\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n includeShared:\n typeof input.includeShared === \"boolean\"\n ? input.includeShared\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n filterByPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.filterByPermission({\n topicIds: Array.isArray(input.topicIds)\n ? input.topicIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n });\n },\n manageWritePolicy(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.manageWritePolicy(input, idempotencyKey);\n },\n raw: policyClient,\n },\n observations: {\n ingest(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n getContext(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getObservationContext(input);\n },\n getObservationContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getObservationContext(input);\n },\n },\n coding: {\n getCodeContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getCodeContext(input);\n },\n getChangeHistory(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getChangeHistory(input);\n },\n recordAttempt(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.recordAttempt(input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getFailureLog(input);\n },\n },\n contracts: {\n create(\n input: FunctionSurfaceInput\n ) {\n return createContractCompat(input as JsonObject);\n },\n createEpistemicContract(input: FunctionSurfaceInput) {\n return createContractCompat(input as JsonObject);\n },\n list(\n input: {\n beliefNodeId?: string;\n contractId?: string;\n status?: string;\n } = {}\n ) {\n return listContractsCompat(input as JsonObject);\n },\n evaluate(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n evaluateContract(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n getStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n getContractStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n },\n bootstrap: {\n generateSessionHandoff(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.generateSessionHandoff(input);\n },\n },\n embeddings: embeddingsClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n orgGraphSearch: orgGraphSearchClient,\n ontologyLinks: ontologyLinksClient,\n graphStateClassifier: graphStateClassifierClient,\n modelRuntime: modelRuntimeClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n tools: {\n listCatalog: toolRegistryClient.listCatalog,\n listExecutable: toolRegistryClient.listExecutable,\n listEffectiveTools: toolRegistryClient.listEffectiveTools,\n upsertCoreTools: toolRegistryClient.upsertCoreTools,\n setPackToolsStatus: toolRegistryClient.setPackToolsStatus,\n createAcl: toolRegistryClient.createAcl,\n deleteAcl: toolRegistryClient.deleteAcl,\n registerCustomTool: toolRegistryClient.registerCustomTool,\n register(registration: CustomToolRegistration) {\n return registerCustomTool(registration);\n },\n unregister(fullName: string) {\n return unregisterCustomTool(fullName);\n },\n list() {\n return listRegisteredCustomTools();\n },\n clear() {\n clearRegisteredCustomTools();\n },\n invoke(name: string, input: CustomToolInput = {}) {\n const fullName = name.includes(\".\") ? name : `custom.${name}`;\n return invokeCustomTool(fullName, input);\n },\n namespace(namespace: string) {\n return getCustomNamespace(namespace);\n },\n },\n packs: {\n /**\n * Ensure the configured packKey is installed.\n * No-op if no packKey was provided or if the pack is already installed.\n * Called automatically on first API use when packKey is set.\n */\n ensurePack,\n /**\n * Check if the configured pack has been installed in this session.\n */\n get isInstalled() {\n return _packInstalled;\n },\n listCatalog() {\n return packsClient.listCatalog();\n },\n catalog() {\n return packsClient.getCatalog();\n },\n listStates(scope?: Parameters<typeof packsClient.listStates>[0]) {\n return packsClient.listStates(scope);\n },\n states(scope?: Parameters<typeof packsClient.getStates>[0]) {\n return packsClient.getStates(scope);\n },\n install(input: Parameters<typeof packsClient.install>[0]) {\n return packsClient.install(input);\n },\n enable(input: Parameters<typeof packsClient.enable>[0]) {\n return packsClient.enable(input);\n },\n disable(input: Parameters<typeof packsClient.disable>[0]) {\n return packsClient.disable(input);\n },\n },\n nodes: nodesNamespace,\n identity: {\n ...identityFacade,\n evaluatePolicy: identityClient.evaluatePolicy,\n recordPolicyDecision: identityClient.recordPolicyDecision,\n putSecretReference: identityClient.putSecretReference,\n createPrincipal: identityClient.createPrincipal,\n updatePrincipal: identityClient.updatePrincipal,\n raw: identityClient,\n },\n mcp: {\n bootstrapSession(input?: Parameters<typeof mcpClient.bootstrapSession>[0]) {\n return mcpClient.bootstrapSession(input);\n },\n checkWritePolicy(input: Parameters<typeof mcpClient.checkWritePolicy>[0]) {\n return mcpClient.checkWritePolicy(input);\n },\n beginBuildSession(input: Parameters<typeof mcpClient.beginBuildSession>[0]) {\n return mcpClient.beginBuildSession(input);\n },\n evaluateEngineeringContract(\n input: Parameters<typeof mcpClient.evaluateEngineeringContract>[0]\n ) {\n return mcpClient.evaluateEngineeringContract(input);\n },\n evaluateResearchContract(\n input: Parameters<typeof mcpClient.evaluateResearchContract>[0]\n ) {\n return mcpClient.evaluateResearchContract(input);\n },\n },\n auth: {\n device: {\n createCode(input?: DeviceCodeInput) {\n return authDeviceClient.createDeviceCode(input);\n },\n pollToken(deviceCode: string) {\n return authDeviceClient.pollDeviceToken(deviceCode);\n },\n },\n },\n custom: getCustomNamespace(\"custom\"),\n extensions: extensionNamespaces,\n raw: {\n beliefs: beliefsClient,\n sources: sourcesClient,\n evidence: evidenceClient,\n embeddings: embeddingsClient,\n eventing: eventingClient,\n graph: graphClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n graphStateClassifier: graphStateClassifierClient,\n decisions: decisionsClient,\n workflow: workflowClient,\n audit: auditClient,\n authDevice: authDeviceClient,\n admin: adminClient,\n identity: identityClient,\n policy: policyClient,\n answers: answersClient,\n ontology: ontologyClient,\n ontologyLinks: ontologyLinksClient,\n orgGraphSearch: orgGraphSearchClient,\n functionSurface: functionSurfaceClient,\n toolRegistry: toolRegistryClient,\n modelRuntime: modelRuntimeClient,\n packs: packsClient,\n reports: reportsClient,\n learning: learningClient,\n mcp: mcpClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n harness: harnessClient,\n schema: schemaClient,\n audiences: audiencesClient,\n topics: topicsClient,\n },\n };\n}\n","import { createLucernClient, type LucernClientConfig } from \"../client\";\n\nexport * as topicContracts from \"@lucern/contracts/topics/v1\";\nexport * as toolSchemas from \"@lucern/contracts/tool-contracts\";\n\nexport type TopicsClientConfig = LucernClientConfig;\nexport type TopicsClient = ReturnType<typeof createTopicsClient>;\n\nexport function createTopicsClient(config: TopicsClientConfig = {}) {\n const topics = createLucernClient(config).topics;\n\n return {\n createTopic: topics.create,\n getTopic: topics.get,\n listTopics: topics.list,\n updateTopic: topics.update,\n getTopicTree: topics.getTree,\n getTopicCoverage: topics.coverage,\n removeTopic: topics.remove,\n raw: topics,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/authContext.ts","../../src/coreClient.ts","../../src/sdkSurface.ts","../../src/adminClient.ts","../../src/answersClient.ts","../../src/audiencesClient.ts","../../src/auditClient.ts","../../src/authDeviceClient.ts","../../src/beliefsClient.ts","../../src/sourcesClient.ts","../../src/evidenceClient.ts","../../src/boundaryClientSurface.ts","../../src/eventingClient.ts","../../src/customTools.ts","../../src/ontologyClient.ts","../../src/graphClient.ts","../../src/identityClient.ts","../../src/topicsClient.ts","../../src/gatewayFacades.ts","../../src/decisionsClient.ts","../../src/embeddingsClient.ts","../../src/contextClient.ts","../../src/graphAnalysisClient.ts","../../src/graphRecommendationsClient.ts","../../src/graphStateClassifierClient.ts","../../src/harnessClient.ts","../../src/jobsClient.ts","../../src/learningClient.ts","../../src/mcpClient.ts","../../src/generated/functionSurface.ts","../../src/modelRuntimeClient.ts","../../src/ontologyLinksClient.ts","../../src/orgGraphSearchClient.ts","../../src/packsClient.ts","../../src/policyClient.ts","../../src/reportsClient.ts","../../src/schemaClient.ts","../../src/telemetryClient.ts","../../src/toolRegistryClient.ts","../../src/version.ts","../../src/workflowClient.ts","../../src/client.ts","../../src/topics/index.ts"],"names":["cleanString","query","body","asRecord","readString","readTopicId","requireTopicId","assertKnownKeys","serialized","listQuery","config","createTopicsClient"],"mappings":"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","file":"index.js","sourcesContent":["import type {\n SessionAuthMode,\n SessionDelegationHop,\n SessionPrincipalType,\n} from \"./contracts/auth-session.contract\";\nimport type { JsonObject } from \"./types\";\n\nexport type LucernSdkAuthFailureReason =\n | \"principal_missing\"\n | \"tenant_missing\"\n | \"membership_missing\"\n | \"workspace_missing\"\n | \"policy_denied\";\n\nexport type PermitReadyAuthContext = {\n subject: string;\n tenant: string;\n workspace: string;\n resource?: string;\n action?: string;\n relation?: string;\n context?: JsonObject;\n};\n\nexport type LucernSdkAuthPolicyDecision = \"allow\" | \"deny\" | \"unknown\";\n\nexport type LucernSdkAuthContextInput = {\n clerkId?: string;\n principalId?: string;\n tenantId?: string;\n workspaceId?: string;\n principalType?: SessionPrincipalType;\n authMode?: SessionAuthMode;\n roles?: readonly string[];\n scopes?: readonly string[];\n delegationChain?: readonly SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n policyDecision?: LucernSdkAuthPolicyDecision;\n permit?: Partial<PermitReadyAuthContext>;\n};\n\nexport type CanonicalLucernSdkAuthContext = {\n clerkId?: string;\n principalId: string;\n tenantId: string;\n workspaceId: string;\n principalType: SessionPrincipalType;\n authMode: SessionAuthMode;\n roles: string[];\n scopes: string[];\n delegationChain: SessionDelegationHop[];\n policyTraceId?: string;\n correlationId?: string;\n membershipId?: string;\n permit: PermitReadyAuthContext;\n};\n\nexport class LucernSdkAuthContextError extends Error {\n readonly reason: LucernSdkAuthFailureReason;\n\n constructor(reason: LucernSdkAuthFailureReason, message: string) {\n super(message);\n this.name = \"LucernSdkAuthContextError\";\n this.reason = reason;\n }\n}\n\nfunction cleanString(value: string | undefined): string | undefined {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nfunction cleanStringList(values: readonly string[] | undefined): string[] {\n if (!values) {\n return [];\n }\n return values\n .map((value) => value.trim())\n .filter(\n (value, index, list) =>\n value.length > 0 && list.indexOf(value) === index\n );\n}\n\nfunction requireString(\n value: string | undefined,\n reason: LucernSdkAuthFailureReason,\n label: string\n): string {\n const normalized = cleanString(value);\n if (!normalized) {\n throw new LucernSdkAuthContextError(\n reason,\n `Canonical Lucern SDK auth context is missing ${label}.`\n );\n }\n return normalized;\n}\n\nfunction requirePrincipalType(\n principalType: SessionPrincipalType | undefined\n): SessionPrincipalType {\n if (!principalType) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing principalType.\"\n );\n }\n return principalType;\n}\n\nfunction requireAuthMode(authMode: SessionAuthMode | undefined): SessionAuthMode {\n if (!authMode) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is missing authMode.\"\n );\n }\n return authMode;\n}\n\nfunction ensurePermitMatch(args: {\n field: keyof PermitReadyAuthContext;\n expected: string;\n actual?: string;\n}) {\n const actual = cleanString(args.actual);\n if (actual && actual !== args.expected) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context has conflicting Permit ${args.field}.`\n );\n }\n}\n\nexport function normalizeCanonicalLucernAuthContext(\n input: LucernSdkAuthContextInput | undefined\n): CanonicalLucernSdkAuthContext {\n if (!input) {\n throw new LucernSdkAuthContextError(\n \"principal_missing\",\n \"Canonical Lucern SDK auth context is required.\"\n );\n }\n\n if (input.policyDecision === \"deny\") {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n \"Canonical Lucern SDK auth context carries a denied policy decision.\"\n );\n }\n\n const principalId = requireString(\n input.principalId,\n \"principal_missing\",\n \"principalId\"\n );\n const tenantId = requireString(input.tenantId, \"tenant_missing\", \"tenantId\");\n const workspaceId = requireString(\n input.workspaceId,\n \"workspace_missing\",\n \"workspaceId\"\n );\n const roles = cleanStringList(input.roles);\n const scopes = cleanStringList(input.scopes);\n const principalType = requirePrincipalType(input.principalType);\n const authMode = requireAuthMode(input.authMode);\n const roleBasedInteractiveAuth =\n authMode === \"interactive_user\" && roles.length > 0;\n if (\n roles.length === 0 ||\n (scopes.length === 0 && !roleBasedInteractiveAuth)\n ) {\n throw new LucernSdkAuthContextError(\n \"membership_missing\",\n \"Canonical Lucern SDK auth context requires non-empty roles and scopes.\"\n );\n }\n\n const subject = cleanString(input.permit?.subject) ?? principalId;\n const tenant = cleanString(input.permit?.tenant) ?? tenantId;\n const workspace = cleanString(input.permit?.workspace) ?? workspaceId;\n\n ensurePermitMatch({\n field: \"subject\",\n expected: principalId,\n actual: subject,\n });\n ensurePermitMatch({ field: \"tenant\", expected: tenantId, actual: tenant });\n ensurePermitMatch({\n field: \"workspace\",\n expected: workspaceId,\n actual: workspace,\n });\n\n const context = input.permit?.context\n ? ({ ...input.permit.context } as JsonObject)\n : undefined;\n\n return {\n clerkId: cleanString(input.clerkId),\n principalId,\n tenantId,\n workspaceId,\n principalType,\n authMode,\n roles,\n scopes,\n delegationChain: input.delegationChain ? [...input.delegationChain] : [],\n policyTraceId: cleanString(input.policyTraceId),\n correlationId: cleanString(input.correlationId),\n membershipId: cleanString(input.membershipId),\n permit: {\n subject,\n tenant,\n workspace,\n resource: cleanString(input.permit?.resource),\n action: cleanString(input.permit?.action),\n relation: cleanString(input.permit?.relation),\n context,\n },\n };\n}\n\nexport function createCanonicalAuthHeaders(\n authContext: CanonicalLucernSdkAuthContext\n): Record<string, string> {\n const headers: Record<string, string> = {\n \"x-lucern-principal-id\": authContext.principalId,\n \"x-lucern-principal-type\": authContext.principalType,\n \"x-lucern-tenant\": authContext.tenantId,\n \"x-lucern-tenant-id\": authContext.tenantId,\n \"x-lucern-workspace\": authContext.workspaceId,\n \"x-lucern-workspace-id\": authContext.workspaceId,\n \"x-lucern-auth-mode\": authContext.authMode,\n \"x-lucern-roles\": authContext.roles.join(\",\"),\n \"x-lucern-scopes\": authContext.scopes.join(\",\"),\n \"x-lucern-permit-context\": JSON.stringify(authContext.permit),\n };\n\n if (authContext.clerkId) {\n headers[\"x-lucern-clerk-id\"] = authContext.clerkId;\n headers[\"x-lucern-user-id\"] = authContext.clerkId;\n }\n if (authContext.delegationChain.length > 0) {\n headers[\"x-lucern-delegation-chain\"] = JSON.stringify(\n authContext.delegationChain\n );\n }\n if (authContext.policyTraceId) {\n headers[\"x-lucern-policy-trace-id\"] = authContext.policyTraceId;\n }\n if (authContext.correlationId) {\n headers[\"x-correlation-id\"] = authContext.correlationId;\n headers[\"x-lucern-correlation-id\"] = authContext.correlationId;\n }\n if (authContext.membershipId) {\n headers[\"x-lucern-membership-id\"] = authContext.membershipId;\n }\n\n return headers;\n}\n","import {\n createCanonicalAuthHeaders,\n LucernSdkAuthContextError,\n normalizeCanonicalLucernAuthContext,\n type LucernSdkAuthContextInput,\n} from \"./authContext\";\nimport type { JsonObject, JsonValue } from \"./types\";\n\n/** Tenant and workspace identifiers used to scope gateway requests. */\nexport type GatewayScope = {\n tenantId?: string;\n workspaceId?: string;\n};\n\n/** Successful response envelope from the platform gateway with correlation metadata. */\nexport type PlatformGatewaySuccess<T> = {\n success: true;\n data: T;\n correlationId: string;\n policyTraceId: string | null;\n idempotentReplay: boolean;\n};\n\n/** Failed response envelope with structured error codes and optional invariant references. */\nexport type PlatformGatewayFailure = {\n success: false;\n /**\n * Error string is the canonical envelope field.\n * Object form is legacy-only compatibility for older gateway responses.\n */\n error:\n | string\n | {\n code: string;\n message: string;\n details?: JsonValue;\n };\n code?: string;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n legacyError?: {\n code: string;\n message: string;\n details?: JsonValue;\n };\n correlationId: string;\n policyTraceId: string | null;\n};\n\n/** Discriminated union of success and failure gateway responses. */\nexport type PlatformGatewayEnvelope<T> =\n | PlatformGatewaySuccess<T>\n | PlatformGatewayFailure;\n\n/**\n * Structured error thrown when a platform API request fails.\n *\n * Includes HTTP status, machine-readable error code, optional invariant\n * reference, and actionable suggestions for common failure modes.\n */\nexport class LucernApiError extends Error {\n public readonly code: string;\n public readonly status: number;\n public readonly invariant?: string | null;\n public readonly suggestion?: string | null;\n public readonly details?: JsonValue;\n public readonly requestId?: string;\n public readonly correlationId?: string;\n public readonly policyTraceId?: string | null;\n\n constructor(args: {\n code: string;\n message: string;\n status: number;\n invariant?: string | null;\n suggestion?: string | null;\n details?: JsonValue;\n requestId?: string;\n correlationId?: string;\n policyTraceId?: string | null;\n }) {\n super(args.message);\n this.name = \"LucernApiError\";\n this.code = args.code;\n this.status = args.status;\n this.invariant = args.invariant;\n this.suggestion = args.suggestion;\n this.details = args.details;\n this.requestId = args.requestId;\n this.correlationId = args.correlationId;\n this.policyTraceId = args.policyTraceId;\n }\n}\n\n/** Supported HTTP methods for gateway requests. */\nexport type GatewayHttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"PATCH\" | \"DELETE\";\n\ntype FetchLike = (\n input: RequestInfo | URL,\n init?: RequestInit\n) => Promise<Response>;\n\n/** Context passed to the `onRequest` hook before each gateway request attempt. */\nexport type GatewayRequestHookContext = {\n requestId: string;\n attempt: number;\n maxRetries: number;\n method: GatewayHttpMethod;\n path: string;\n url: string;\n headers: Headers;\n body?: string;\n timeoutMs: number;\n};\n\n/** Context passed to the `onResponse` hook after each gateway request attempt (including retries and failures). */\nexport type GatewayResponseHookContext = GatewayRequestHookContext & {\n durationMs: number;\n status?: number;\n response?: Response;\n error?: unknown;\n correlationId?: string;\n policyTraceId?: string | null;\n idempotentReplay?: boolean;\n retryAfterMs?: number | null;\n willRetry: boolean;\n};\n\n/**\n * Low-level transport configuration for the platform gateway client.\n *\n * Most developers should use {@link createLucernClient} instead, which wraps\n * this config with higher-level conveniences like `apiKey` and `environment`.\n */\nexport type GatewayClientConfig = {\n baseUrl?: string;\n fetchImpl?: FetchLike;\n getAuthHeaders?:\n | (() => Promise<Record<string, string>>)\n | (() => Record<string, string>);\n /**\n * Canonical Master Control identity tuple applied to every SDK request.\n * Use this for tenant/workspace-scoped graph and identity operations.\n */\n authContext?:\n | LucernSdkAuthContextInput\n | (() => Promise<LucernSdkAuthContextInput | undefined>)\n | (() => LucernSdkAuthContextInput | undefined);\n /** When true, requests fail before fetch if `authContext` is absent. */\n requireCanonicalAuthContext?: boolean;\n /** Max retries for transient errors (5xx, network). Defaults to 2. */\n maxRetries?: number;\n /** Request timeout in ms. Defaults to 15000. */\n timeoutMs?: number;\n /** Optional timeout overrides by HTTP method. */\n timeoutMsByMethod?: Partial<Record<GatewayHttpMethod, number>>;\n /** Optional request ID factory used for correlation headers. */\n requestIdFactory?: () => string;\n /** Invoked before each request attempt, including retries. */\n onRequest?:\n | ((context: GatewayRequestHookContext) => void)\n | ((context: GatewayRequestHookContext) => Promise<void>);\n /** Invoked after each request attempt, including retries and failures. */\n onResponse?:\n | ((context: GatewayResponseHookContext) => void)\n | ((context: GatewayResponseHookContext) => Promise<void>);\n};\n\n/**\n * Serialize a gateway query object into a URL query string.\n */\nexport function toQueryString(\n scope: GatewayScope & Record<string, string | number | boolean | undefined>\n): string {\n const params = new URLSearchParams();\n if (scope.tenantId) {\n params.set(\"tenantId\", scope.tenantId);\n }\n if (scope.workspaceId) {\n params.set(\"workspaceId\", scope.workspaceId);\n }\n for (const [key, value] of Object.entries(scope)) {\n if (key === \"tenantId\" || key === \"workspaceId\") {\n continue;\n }\n if (value === undefined) {\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized.length > 0 ? `?${serialized}` : \"\";\n}\n\nfunction fillRandomBytes(length: number): Uint8Array {\n const bytes = new Uint8Array(length);\n if (typeof globalThis.crypto?.getRandomValues === \"function\") {\n globalThis.crypto.getRandomValues(bytes);\n return bytes;\n }\n\n for (let index = 0; index < length; index += 1) {\n bytes[index] = Math.floor(Math.random() * 256);\n }\n return bytes;\n}\n\nfunction generatePortableRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\") {\n return globalThis.crypto.randomUUID();\n }\n\n const bytes = fillRandomBytes(16);\n bytes[6] = (bytes[6] & 0x0f) | 0x40;\n bytes[8] = (bytes[8] & 0x3f) | 0x80;\n const hex = Array.from(bytes, (value) => value.toString(16).padStart(2, \"0\"));\n return `${hex.slice(0, 4).join(\"\")}-${hex.slice(4, 6).join(\"\")}-${hex.slice(\n 6,\n 8\n ).join(\"\")}-${hex.slice(8, 10).join(\"\")}-${hex.slice(10).join(\"\")}`;\n}\n\n/**\n * Generate a random idempotency key for retry-safe writes.\n */\nexport function randomIdempotencyKey(): string {\n return generatePortableRequestId();\n}\n\nfunction isRetryableStatus(status: number): boolean {\n return status >= 500 || status === 408 || status === 429;\n}\n\nfunction fallbackErrorCode(status: number): string {\n if (status === 401) {\n return \"AUTHENTICATION_REQUIRED\";\n }\n if (status === 403) {\n return \"FORBIDDEN\";\n }\n if (status === 404) {\n return \"NOT_FOUND\";\n }\n if (status === 408) {\n return \"UPSTREAM_ERROR\";\n }\n if (status === 409) {\n return \"CONFLICT\";\n }\n if (status === 429) {\n return \"RATE_LIMIT_EXCEEDED\";\n }\n if (status >= 500) {\n return \"UPSTREAM_ERROR\";\n }\n return \"INTERNAL_ERROR\";\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction parseRetryAfterMs(value: string | null): number | null {\n if (!value) {\n return null;\n }\n const trimmed = value.trim();\n if (!trimmed) {\n return null;\n }\n const numeric = Number(trimmed);\n if (Number.isFinite(numeric)) {\n return Math.max(0, Math.round(numeric * 1000));\n }\n const parsedDate = Date.parse(trimmed);\n if (Number.isFinite(parsedDate)) {\n return Math.max(0, parsedDate - Date.now());\n }\n return null;\n}\n\nfunction computeRetryDelayMs(args: {\n attempt: number;\n status?: number;\n retryAfterMs?: number | null;\n}): number {\n const baseDelay =\n args.status === 429\n ? Math.max(\n args.retryAfterMs ?? 0,\n Math.min(1000 * 2 ** args.attempt, 10_000)\n )\n : Math.min(1000 * 2 ** args.attempt, 4000);\n\n if (args.status !== 429) {\n return baseDelay;\n }\n\n const jitterWindow = Math.max(250, Math.round(baseDelay * 0.25));\n return baseDelay + Math.round(Math.random() * jitterWindow);\n}\n\nfunction timeoutError(timeoutMs: number): Error {\n const error = new Error(`Request timed out after ${timeoutMs}ms`);\n error.name = \"AbortError\";\n return error;\n}\n\nfunction readPolicySummaryFromDetails(details?: JsonValue): string | null {\n if (!details || typeof details !== \"object\" || Array.isArray(details)) {\n return null;\n }\n\n const directSummary = (details as { summary?: JsonValue }).summary;\n if (typeof directSummary === \"string\" && directSummary.trim().length > 0) {\n return directSummary.trim();\n }\n\n const policy = (details as { policy?: JsonValue }).policy;\n if (!policy || typeof policy !== \"object\" || Array.isArray(policy)) {\n return null;\n }\n\n const explanation = (policy as { explanation?: JsonValue }).explanation;\n if (!explanation || typeof explanation !== \"object\" || Array.isArray(explanation)) {\n return null;\n }\n\n const nestedSummary = (explanation as { summary?: JsonValue }).summary;\n if (typeof nestedSummary === \"string\" && nestedSummary.trim().length > 0) {\n return nestedSummary.trim();\n }\n\n return null;\n}\n\nasync function resolveConfiguredAuthContext(\n authContext: GatewayClientConfig[\"authContext\"]\n): Promise<LucernSdkAuthContextInput | undefined> {\n if (typeof authContext === \"function\") {\n return await authContext();\n }\n return authContext;\n}\n\nfunction mergeHeaderRecord(\n base: Record<string, string>,\n addition: Record<string, string>\n): Record<string, string> {\n const headers = new Headers(base);\n for (const [key, value] of Object.entries(addition)) {\n const existing = headers.get(key);\n if (existing !== null && existing !== value) {\n throw new LucernSdkAuthContextError(\n \"policy_denied\",\n `Canonical Lucern SDK auth context conflicts with existing ${key} header.`\n );\n }\n headers.set(key, value);\n }\n return Object.fromEntries(headers.entries());\n}\n\n/**\n * Create the transport client used by all SDK modules.\n */\nexport function createGatewayRequestClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n const maxRetries = config.maxRetries ?? 2;\n const requestIdFactory = config.requestIdFactory ?? (() => generatePortableRequestId());\n\n async function resolveAuthHeaders(): Promise<Record<string, string>> {\n const base = config.getAuthHeaders ? await config.getAuthHeaders() : {};\n const authContextInput = await resolveConfiguredAuthContext(\n config.authContext\n );\n if (!authContextInput && !config.requireCanonicalAuthContext) {\n return base;\n }\n const authContext = normalizeCanonicalLucernAuthContext(authContextInput);\n return mergeHeaderRecord(base, createCanonicalAuthHeaders(authContext));\n }\n\n async function fetchWithTimeout(\n url: string,\n init: RequestInit,\n timeoutMs: number\n ): Promise<Response> {\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), timeoutMs);\n try {\n return await fetchImpl(url, { ...init, signal: controller.signal });\n } catch (error) {\n if (controller.signal.aborted) {\n throw timeoutError(timeoutMs);\n }\n throw error;\n } finally {\n clearTimeout(timer);\n }\n }\n\n async function parsePayload<T>(\n response: Response\n ): Promise<PlatformGatewayEnvelope<T> | null> {\n const text = await response.text();\n if (!text) {\n return null;\n }\n try {\n return JSON.parse(text) as PlatformGatewayEnvelope<T>;\n } catch {\n return null;\n }\n }\n\n function resolveTimeoutMs(\n method: GatewayHttpMethod,\n requestTimeoutMs?: number\n ): number {\n if (typeof requestTimeoutMs === \"number\") {\n return requestTimeoutMs;\n }\n const methodTimeoutMs = config.timeoutMsByMethod?.[method];\n if (typeof methodTimeoutMs === \"number\") {\n return methodTimeoutMs;\n }\n return config.timeoutMs ?? 15_000;\n }\n\n function buildApiError(args: {\n requestId: string;\n response: Response;\n failure?: PlatformGatewayFailure | null;\n }): LucernApiError {\n const failure = args.failure;\n const legacyError =\n failure && typeof failure.error === \"object\" && failure.error !== null\n ? failure.error\n : failure?.legacyError;\n const correlationId =\n failure?.correlationId ??\n args.response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n args.requestId;\n const policyTraceId =\n failure?.policyTraceId ??\n args.response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null;\n const details = failure?.details ?? legacyError?.details;\n const policySummary = readPolicySummaryFromDetails(details);\n\n return new LucernApiError({\n code: failure?.code ?? legacyError?.code ?? fallbackErrorCode(args.response.status),\n message:\n policySummary ??\n (typeof failure?.error === \"string\"\n ? failure.error\n : legacyError?.message ??\n (args.response.ok\n ? \"Platform API returned an invalid success payload.\"\n : \"Platform API request failed.\")),\n status: args.response.status,\n invariant: failure?.invariant,\n suggestion: failure?.suggestion,\n details,\n requestId: args.requestId,\n correlationId,\n policyTraceId,\n });\n }\n\n async function request<T>(args: {\n path: string;\n method?: GatewayHttpMethod;\n body?: JsonObject;\n idempotencyKey?: string;\n requestId?: string;\n timeoutMs?: number;\n }): Promise<PlatformGatewaySuccess<T>> {\n const authHeaders = await resolveAuthHeaders();\n const method = args.method ?? \"GET\";\n const timeoutMs = resolveTimeoutMs(method, args.timeoutMs);\n const headers = new Headers({\n \"content-type\": \"application/json\",\n ...authHeaders,\n });\n if (args.idempotencyKey) {\n headers.set(\"idempotency-key\", args.idempotencyKey);\n }\n const requestId =\n headers.get(\"x-correlation-id\")?.trim() ||\n headers.get(\"x-request-id\")?.trim() ||\n args.requestId ||\n requestIdFactory();\n if (!headers.has(\"x-correlation-id\") && !headers.has(\"x-request-id\")) {\n headers.set(\"x-correlation-id\", requestId);\n }\n\n const url = `${baseUrl}${args.path}`;\n const serializedBody = args.body ? JSON.stringify(args.body) : undefined;\n const init: RequestInit = {\n method,\n headers,\n body: serializedBody,\n };\n\n let lastError: unknown;\n\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const hookRequestContext: GatewayRequestHookContext = {\n requestId,\n attempt,\n maxRetries,\n method,\n path: args.path,\n url,\n headers: new Headers(headers),\n body: serializedBody,\n timeoutMs,\n };\n await config.onRequest?.(hookRequestContext);\n const startedAt = Date.now();\n try {\n const response = await fetchWithTimeout(url, init, timeoutMs);\n const responseClone = response.clone();\n const payload = await parsePayload<T>(response);\n const retryAfterMs = parseRetryAfterMs(\n response.headers.get(\"Retry-After\")\n );\n\n if (!response.ok || !payload?.success) {\n const failure =\n payload && !payload.success ? (payload as PlatformGatewayFailure) : null;\n const apiError = buildApiError({\n requestId,\n response,\n failure,\n });\n const willRetry = attempt < maxRetries && isRetryableStatus(response.status);\n\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n error: apiError,\n correlationId: apiError.correlationId ?? requestId,\n policyTraceId: apiError.policyTraceId ?? null,\n retryAfterMs,\n willRetry,\n });\n\n if (willRetry) {\n lastError = apiError;\n await delay(\n computeRetryDelayMs({\n attempt,\n status: response.status,\n retryAfterMs,\n })\n );\n continue;\n }\n\n throw apiError;\n }\n\n const successPayload = payload as PlatformGatewaySuccess<T>;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n status: response.status,\n response: responseClone,\n correlationId:\n successPayload.correlationId ??\n response.headers.get(\"x-lucern-correlation-id\")?.trim() ??\n requestId,\n policyTraceId:\n successPayload.policyTraceId ??\n response.headers.get(\"x-lucern-policy-trace-id\")?.trim() ??\n null,\n idempotentReplay: successPayload.idempotentReplay,\n retryAfterMs,\n willRetry: false,\n });\n\n return successPayload;\n } catch (fetchError) {\n if (fetchError instanceof LucernApiError) {\n throw fetchError;\n }\n const willRetry = attempt < maxRetries;\n await config.onResponse?.({\n ...hookRequestContext,\n durationMs: Date.now() - startedAt,\n error: fetchError,\n correlationId: requestId,\n policyTraceId: null,\n willRetry,\n });\n lastError = fetchError;\n if (willRetry) {\n await delay(computeRetryDelayMs({ attempt }));\n }\n }\n }\n\n throw lastError instanceof Error\n ? lastError\n : new Error(\"Platform API request failed after retries.\");\n }\n\n return {\n request,\n };\n}\n","import type { PlatformGatewaySuccess } from \"./coreClient\";\nimport type { JsonObject, ListResult } from \"./types\";\n\ntype TopicScopedValue = {\n topicId?: string;\n};\n\ntype TextScopedValue = {\n text?: string;\n canonicalText?: string;\n};\n\ntype AnyRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): AnyRecord {\n return value && typeof value === \"object\" ? (value as AnyRecord) : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeVerificationStatus(value: unknown): string | undefined {\n const status = cleanString(value);\n if (!status) {\n return undefined;\n }\n if (status === \"verified\") {\n return \"human_verified\";\n }\n if (status === \"rejected\") {\n return \"contradicted\";\n }\n return status;\n}\n\nfunction cloneWith<T extends AnyRecord>(value: T, patch: AnyRecord): T {\n return { ...value, ...patch } as T;\n}\n\n/**\n * Resolve the canonical topic identifier.\n */\nexport function resolveTopicId(value: TopicScopedValue): string | undefined {\n return cleanString(value.topicId);\n}\n\n/**\n * Resolve the canonical text field from text-first or legacy canonicalText-first inputs.\n */\nexport function resolveText(value: TextScopedValue): string | undefined {\n return cleanString(value.text) ?? cleanString(value.canonicalText);\n}\n\n/**\n * Attach the topicId to a record.\n */\nexport function withTopicAlias<T extends AnyRecord>(value: T): T {\n const topicId = cleanString(value.topicId) ?? undefined;\n if (!topicId) {\n return value;\n }\n return cloneWith(value, { topicId });\n}\n\n/**\n * Attach the text/canonicalText alias pair to a record.\n */\nexport function withTextAlias<T extends AnyRecord>(value: T): T {\n const text =\n cleanString(value.text) ?? cleanString(value.canonicalText) ?? undefined;\n if (!text) {\n return value;\n }\n return cloneWith(value, { text, canonicalText: text });\n}\n\n/**\n * Attach topic and text aliases to SDK node-like records.\n */\nexport function withSdkAliases<T extends AnyRecord>(value: T): T {\n return withTopicAlias(withTextAlias(value));\n}\n\n/**\n * Normalize a belief/question/evidence write payload to the canonical gateway shape.\n */\nexport function normalizeNodeWriteInput<T extends JsonObject>(value: T): T {\n const topicId = resolveTopicId(value);\n const text = resolveText(value);\n const verificationStatus = normalizeVerificationStatus(value.verificationStatus);\n const next = { ...value } as JsonObject;\n\n if (topicId) {\n next.topicId = topicId;\n }\n if (text) {\n next.text = text;\n next.canonicalText = text;\n }\n if (verificationStatus) {\n next.verificationStatus = verificationStatus;\n }\n\n return next as T;\n}\n\nexport function normalizeNodeVerificationStatus(value: unknown) {\n return normalizeVerificationStatus(value);\n}\n\n/**\n * Build a topic-aware query object.\n */\nexport function normalizeTopicQuery<T extends JsonObject>(value: T): T {\n const topicId = cleanString(value.topicId);\n if (!topicId) {\n return value;\n }\n return { ...value, topicId } as T;\n}\n\n/**\n * Extract list items from array or list-envelope payloads.\n */\nexport function asListItems<T>(data: unknown, legacyKey?: string): T[] {\n if (Array.isArray(data)) {\n return data as T[];\n }\n\n const record = asRecord(data);\n if (Array.isArray(record.items)) {\n return record.items as T[];\n }\n if (legacyKey && Array.isArray(record[legacyKey])) {\n return record[legacyKey] as T[];\n }\n\n return [];\n}\n\n/**\n * Standardize list data to { items, total } while retaining an optional legacy array key.\n */\nexport function createListResult<T, LegacyKey extends string>(\n items: T[],\n legacyKey?: LegacyKey\n): ListResult<T, LegacyKey> {\n const result = {\n items,\n total: items.length,\n } as ListResult<T, LegacyKey>;\n\n if (legacyKey) {\n (result as Record<string, unknown>)[legacyKey] = items;\n }\n\n return result;\n}\n\n/**\n * Map a gateway success envelope's data while preserving the transport metadata.\n */\nexport function mapGatewayData<T, U>(\n response: PlatformGatewaySuccess<T>,\n mapper: (data: T) => U\n): PlatformGatewaySuccess<U> {\n return {\n ...response,\n data: mapper(response.data),\n };\n}\n\n/**\n * Apply SDK aliases across all items in a list-like payload.\n */\nexport function mapAliasedList<\n TItem extends AnyRecord,\n LegacyKey extends string,\n>(\n data: unknown,\n legacyKey?: LegacyKey\n): ListResult<TItem, LegacyKey> {\n const items = asListItems<TItem>(data, legacyKey).map((item) =>\n withSdkAliases(item)\n );\n return createListResult(items, legacyKey);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { ControlObjectOwnershipContract } from \"./controlObjectOwnership\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the admin client. */\nexport type AdminClientConfig = GatewayClientConfig;\n\nexport type TenantApiKeyRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n label?: string;\n keyPrefix?: string;\n hashedKey?: string;\n scopes?: string[];\n status?: string;\n expiresAt?: number;\n lastUsedAt?: number;\n revokedAt?: number;\n revokedBy?: string;\n createdBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantVaultSecretRecord = {\n id?: string;\n tenantId?: string;\n workspaceId?: string;\n name?: string;\n description?: string;\n lastRotated?: number;\n createdBy?: string;\n updatedBy?: string;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantAuthPolicyMode = \"open\" | \"invite_only\" | \"sso_required\";\nexport type TenantTopicVisibility = \"private\" | \"tenant\" | \"public\";\nexport type TenantFeatureFlags = Record<string, boolean>;\nexport type TenantModelSlotOverrides = Record<string, string>;\n\nexport type TenantConfigRecord = {\n tenantId: string;\n authPolicyMode: TenantAuthPolicyMode;\n defaultSessionTTL: number;\n defaultTopicVisibility: TenantTopicVisibility;\n featureFlags: TenantFeatureFlags;\n maxWorkspaceCount: number;\n defaultModelSlotOverrides: TenantModelSlotOverrides;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantModelRoutingSlotRecord = {\n slot: string;\n category?: string;\n description?: string;\n modelKey: string;\n promptName?: string;\n temperature?: number;\n maxTokens?: number;\n enabled?: boolean;\n};\n\nexport type TenantModelRoutingModelRecord = {\n key: string;\n name?: string;\n modelId?: string;\n provider?: string;\n enabled?: boolean;\n recommended?: boolean;\n notes?: string;\n};\n\nexport type TenantModelRoutingBindingRecord = {\n slot: string;\n providerId: string;\n secretRef: string;\n label?: string;\n keyHint?: string;\n};\n\nexport type TenantModelRouteOverrideStatus =\n | \"inherit\"\n | \"active\"\n | \"blocked_missing_model\"\n | \"blocked_missing_binding\";\n\nexport type TenantModelRouteBindingState = \"ready\" | \"missing\";\nexport type TenantModelRouteSource = \"platform_default\" | \"tenant_override\";\n\nexport type TenantModelRouteRow = {\n slot: string;\n category: string;\n description?: string;\n promptName?: string;\n slotEnabled: boolean;\n platformModelKey: string;\n platformModelName?: string;\n platformProviderId?: string;\n overrideModelKey?: string;\n overrideModelName?: string;\n overrideProviderId?: string;\n effectiveModelKey: string;\n effectiveModelName?: string;\n effectiveProviderId?: string;\n effectiveSource: TenantModelRouteSource;\n overrideStatus: TenantModelRouteOverrideStatus;\n bindingState: TenantModelRouteBindingState;\n bindingLabel?: string;\n bindingKeyHint?: string;\n bindingSecretRef?: string;\n};\n\nexport type TenantModelRoutingSummary = {\n totalSlots: number;\n promptBoundSlots: number;\n activeOverrides: number;\n blockedOverrides: number;\n readyBindings: number;\n};\n\nexport type TenantModelRoutingSnapshot = {\n tenantId: string;\n defaultModelSlotOverrides: Record<string, string>;\n slots: TenantModelRoutingSlotRecord[];\n models: TenantModelRoutingModelRecord[];\n bindings: TenantModelRoutingBindingRecord[];\n rows: TenantModelRouteRow[];\n summary: TenantModelRoutingSummary;\n notes: string[];\n};\n\nfunction asTenantApiKeyRecord(data: unknown): TenantApiKeyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantApiKeyRecord;\n}\n\nfunction asTenantApiKeyArray(data: unknown): TenantApiKeyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantApiKeyRecord)\n .filter((row): row is TenantApiKeyRecord => Boolean(row));\n}\n\nfunction asTenantVaultSecretRecord(\n data: unknown\n): TenantVaultSecretRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantVaultSecretRecord;\n}\n\nfunction asTenantVaultSecretArray(data: unknown): TenantVaultSecretRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asTenantVaultSecretRecord)\n .filter((row): row is TenantVaultSecretRecord => Boolean(row));\n}\n\n/**\n * Create the admin client for tenant, workspace, and membership administration.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage tenants, workspaces, and memberships.\n */\nexport function createAdminClient(config: AdminClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List tenants visible to the current principal.\n */\n async listTenants(\n query: {\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenants${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"tenants\"\n )\n )\n );\n },\n\n /**\n * Create a tenant.\n */\n async createTenant(\n input: {\n key: string;\n slug?: string;\n name: string;\n tier?: \"free\" | \"developer\" | \"team\" | \"enterprise\";\n status?:\n | \"provisioning\"\n | \"active\"\n | \"disabled\"\n | \"suspended\"\n | \"archived\";\n ownerClerkId?: string;\n ownerEmail?: string;\n lucernDeploymentUrl?: string;\n appDeploymentUrl?: string;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get the control-object ownership contract.\n */\n async getControlObjectOwnership() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * @deprecated Use getControlObjectOwnership.\n */\n async getControlObjectOwnershipContract() {\n return gateway.request<ControlObjectOwnershipContract>({\n path: \"/api/platform/v1/admin/control-ownership\",\n });\n },\n\n /**\n * List workspaces for the current admin scope.\n */\n async listWorkspaces(\n query: GatewayScope & {\n status?: \"active\" | \"archived\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/workspaces${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"workspaces\"\n )\n )\n );\n },\n\n /**\n * Create a workspace.\n */\n async createWorkspace(\n input: GatewayScope & {\n workspaceId?: string;\n key?: string;\n slug?: string;\n name?: string;\n status?: \"active\" | \"archived\";\n defaultProjectVisibility?:\n | \"private\"\n | \"team\"\n | \"firm\"\n | \"external\"\n | \"public\";\n restore?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/workspaces\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List memberships for the current admin scope.\n */\n async listMemberships(\n query: GatewayScope & {\n principalId?: string;\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n role?:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/memberships${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"memberships\"\n )\n )\n );\n },\n\n /**\n * Create a membership.\n */\n async createMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/memberships\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a membership.\n */\n async updateMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createMembership or updateMembership.\n */\n async upsertMembership(\n input: GatewayScope & {\n membershipId?: string;\n principalId: string;\n role:\n | \"platform_admin\"\n | \"tenant_admin\"\n | \"workspace_admin\"\n | \"editor\"\n | \"viewer\"\n | \"auditor\"\n | \"service_agent\";\n status?: \"active\" | \"invited\" | \"revoked\" | \"expired\";\n source?:\n | \"bootstrap\"\n | \"manual\"\n | \"sync\"\n | \"sso\"\n | \"api\"\n | \"scim\"\n | \"invitation\";\n },\n idempotencyKey?: string\n ) {\n return this.createMembership(input, idempotencyKey);\n },\n\n /**\n * List tenant API keys in the current admin scope.\n */\n async listTenantApiKeys(\n scope: GatewayScope & {\n status?: \"active\" | \"revoked\" | \"expired\";\n }\n ) {\n const response = await gateway.request<{ keys?: unknown[] }>({\n path: `/api/platform/v1/tenant-api-keys${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n keys: asTenantApiKeyArray(response.data?.keys),\n },\n };\n },\n\n /**\n * Create a tenant API key.\n */\n async createTenantApiKey(\n input: GatewayScope & {\n label?: string;\n scopes: string[];\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n key?: unknown;\n plaintextKey?: string;\n }>({\n path: \"/api/platform/v1/tenant-api-keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n key: asTenantApiKeyRecord(response.data?.key),\n plaintextKey:\n typeof response.data?.plaintextKey === \"string\"\n ? response.data.plaintextKey\n : undefined,\n },\n };\n },\n\n /**\n * Revoke a tenant API key.\n */\n async revokeTenantApiKey(\n keyId: string,\n input: GatewayScope & { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-api-keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant vault secrets.\n */\n async listTenantVaultSecrets(scope: GatewayScope) {\n const response = await gateway.request<{ secrets?: unknown[] }>({\n path: `/api/platform/v1/tenant-vault-secrets${toQueryString(scope)}`,\n });\n\n return {\n ...response,\n data: {\n secrets: asTenantVaultSecretArray(response.data?.secrets),\n },\n };\n },\n\n /**\n * Create a tenant vault secret.\n */\n async createTenantVaultSecret(\n input: GatewayScope & {\n name: string;\n description?: string;\n value: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: \"/api/platform/v1/tenant-vault-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Update a tenant vault secret.\n */\n async updateTenantVaultSecret(\n secretId: string,\n input: GatewayScope & {\n name: string;\n description?: string;\n value?: string;\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ secret?: unknown }>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(secretId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n secret: asTenantVaultSecretRecord(response.data?.secret),\n },\n };\n },\n\n /**\n * Delete a tenant vault secret.\n */\n async deleteTenantVaultSecret(\n secretId: string,\n scope: GatewayScope,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-vault-secrets/${encodeURIComponent(\n secretId\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant provider secrets.\n */\n async listTenantSecrets(\n scope: GatewayScope & {\n providerId?: string;\n status?: \"active\" | \"revoked\";\n }\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert a tenant provider secret.\n */\n async upsertTenantSecret(\n input: GatewayScope & {\n providerId: string;\n apiKey: string;\n label?: string;\n modelSlotIds?: string[];\n passThroughOnly?: boolean;\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/tenant-secrets\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Revoke a tenant provider secret.\n */\n async revokeTenantSecret(\n secretRef: string,\n input: GatewayScope & { reason?: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/tenant-secrets/${encodeURIComponent(secretRef)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get tenant configuration.\n */\n async getTenantConfig(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantConfigRecord>({\n path: `/api/platform/v1/tenant-config${toQueryString(scope)}`,\n });\n },\n\n /**\n * Get tenant model routing.\n */\n async getTenantModelRouting(scope: GatewayScope & { tenantId: string }) {\n return gateway.request<TenantModelRoutingSnapshot>({\n path: `/api/platform/v1/tenant-config/model-routing${toQueryString(scope)}`,\n });\n },\n\n /**\n * Upsert tenant configuration.\n */\n async upsertTenantConfig(\n input: GatewayScope & Omit<TenantConfigRecord, \"updatedAt\" | \"updatedBy\">,\n idempotencyKey?: string\n ) {\n return gateway.request<TenantConfigRecord>({\n path: \"/api/platform/v1/tenant-config\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List groups.\n */\n async listGroups(scope: GatewayScope & { limit?: number } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a group.\n */\n async createGroup(\n input: GatewayScope & {\n name: string;\n groupKey?: string;\n groupType?: string;\n description?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a group.\n */\n async updateGroup(\n groupId: string,\n input: GatewayScope & {\n name?: string;\n description?: string;\n workspaceId?: string;\n clearWorkspaceId?: boolean;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a group.\n */\n async deleteGroup(\n groupId: string,\n input: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/${encodeURIComponent(groupId)}${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List group members.\n */\n async listGroupMembers(query: GatewayScope & { groupId: string }) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(query)}`,\n });\n },\n\n /**\n * Add a group member.\n */\n async addGroupMember(\n input: GatewayScope & {\n groupId: string;\n principalId: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/members\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a group member.\n */\n async removeGroupMember(\n input: GatewayScope & { groupId: string; principalId: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/members${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List pack-to-group assignments.\n */\n async listPackGroupAssignments(\n query: GatewayScope & {\n groupId?: string;\n status?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(query)}`,\n });\n },\n\n /**\n * Assign a pack to a group.\n */\n async assignPackToGroup(\n input: GatewayScope & {\n groupId: string;\n packKey: string;\n packVersion?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/groups/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove a pack from a group.\n */\n async removePackFromGroup(\n input: GatewayScope & { groupId: string; packKey: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/groups/packs${toQueryString(input)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\n\n/** Configuration for the answers client. */\nexport type AnswersClientConfig = GatewayClientConfig;\n\n/**\n * Create the answers client for retrieving question answers.\n * @param config - Gateway transport configuration.\n * @returns An object with a `get` method to fetch the answer for a question.\n */\nexport function createAnswersClient(config: AnswersClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Get the current answer for a question.\n * @param questionId - The question node identifier.\n * @returns The answer record for the given question.\n */\n async get(questionId: string) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/questions/${encodeURIComponent(questionId)}/answer`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the audiences client. */\nexport type AudiencesClientConfig = GatewayClientConfig;\n\n/** Input for creating or updating an audience registry entry. */\nexport type AudienceRegistryInput = GatewayScope & {\n audienceKey: string;\n audienceLabel: string;\n audienceClass: \"internal\" | \"restricted_external\" | \"public\";\n status?: \"active\" | \"disabled\" | \"archived\";\n description?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating an audience access grant. */\nexport type AudienceGrantInput = GatewayScope & {\n audienceKey: string;\n audienceClass?: \"internal\" | \"restricted_external\" | \"public\";\n principalId?: string;\n groupId?: string;\n expiresAt?: number;\n metadata?: JsonObject;\n};\n\n/** Input for revoking an audience grant by its identifier. */\nexport type AudienceGrantRevokeInput = GatewayScope & {\n grantId: string;\n};\n\n/**\n * Create the audiences client for registry entries and grants.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage audience registry entries and grants.\n */\nexport function createAudiencesClient(config: AudiencesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audience registry entries.\n */\n async listRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/registry${toQueryString({\n ...query,\n effective:\n typeof query.effective === \"boolean\"\n ? query.effective\n ? \"true\"\n : \"false\"\n : undefined,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"registryEntries\"\n )\n )\n );\n },\n\n /**\n * @deprecated Use listRegistry.\n */\n async getRegistry(\n query: GatewayScope & {\n effective?: boolean;\n status?: \"active\" | \"disabled\" | \"archived\";\n } = {}\n ) {\n return this.listRegistry(query);\n },\n\n /**\n * Create an audience registry entry.\n */\n async createRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/registry\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an audience registry entry.\n */\n async updateRegistryEntry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createRegistryEntry or updateRegistryEntry.\n */\n async upsertRegistry(\n input: AudienceRegistryInput,\n idempotencyKey?: string\n ) {\n return this.createRegistryEntry(input, idempotencyKey);\n },\n\n /**\n * List audience grants.\n */\n async listGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audiences/grants${toQueryString({\n ...query,\n audienceKey: query.audienceKey,\n principalId: query.principalId,\n groupId: query.groupId,\n status: query.status,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"grants\")\n )\n );\n },\n\n /**\n * @deprecated Use listGrants.\n */\n async getGrants(\n query: GatewayScope & {\n audienceKey?: string;\n principalId?: string;\n groupId?: string;\n status?: \"active\" | \"revoked\" | \"expired\";\n } = {}\n ) {\n return this.listGrants(query);\n },\n\n /**\n * Create an audience grant.\n */\n async createGrant(input: AudienceGrantInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createGrant.\n */\n async grant(input: AudienceGrantInput, idempotencyKey?: string) {\n return this.createGrant(input, idempotencyKey);\n },\n\n /**\n * Delete an audience grant by revoking it.\n */\n async deleteGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/audiences/grants/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteGrant.\n */\n async revokeGrant(\n input: AudienceGrantRevokeInput,\n idempotencyKey?: string\n ) {\n return this.deleteGrant(input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the audit client. */\nexport type AuditClientConfig = GatewayClientConfig;\n\n/**\n * Create the audit client for transport-level audit event reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list audit events.\n */\nexport function createAuditClient(config: AuditClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List audit events for the current scope.\n */\n async listEvents(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/audit/events${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"events\")\n )\n );\n },\n };\n}\n","import type { GatewayClientConfig } from \"./coreClient\";\n\nexport type DeviceCodeInput = {\n clientId?: string;\n scope?: string;\n};\n\nexport type DeviceCodeResponse = {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete: string;\n expires_in: number;\n interval: number;\n};\n\nexport type DeviceTokenResponse = {\n access_token: string;\n token_type: \"Bearer\";\n expires_in: number;\n scope: string;\n tenant_id: string;\n workspace_id?: string;\n principal_id: string;\n user?: {\n id: string;\n principalId: string;\n };\n};\n\nexport type DeviceTokenErrorCode =\n | \"authorization_pending\"\n | \"slow_down\"\n | \"access_denied\"\n | \"expired_token\"\n | \"invalid_grant\"\n | \"invalid_request\";\n\nexport class DeviceAuthorizationError extends Error {\n readonly error: DeviceTokenErrorCode;\n readonly interval?: number;\n\n constructor(args: {\n error: DeviceTokenErrorCode;\n description?: string;\n interval?: number;\n }) {\n super(args.description ?? args.error);\n this.name = \"DeviceAuthorizationError\";\n this.error = args.error;\n this.interval = args.interval;\n }\n}\n\nfunction authBaseUrl(config: GatewayClientConfig): string {\n return config.baseUrl?.replace(/\\/+$/, \"\") ?? \"\";\n}\n\nasync function readJson(response: Response): Promise<Record<string, unknown>> {\n const payload = (await response.json().catch(() => ({}))) as unknown;\n return payload && typeof payload === \"object\" && !Array.isArray(payload)\n ? (payload as Record<string, unknown>)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n const normalized = typeof value === \"string\" ? value.trim() : \"\";\n return normalized || undefined;\n}\n\nfunction assertDeviceCodeResponse(payload: Record<string, unknown>): DeviceCodeResponse {\n const deviceCode = readString(payload.device_code);\n const userCode = readString(payload.user_code);\n const verificationUri = readString(payload.verification_uri);\n const verificationUriComplete = readString(payload.verification_uri_complete);\n const expiresIn = payload.expires_in;\n const interval = payload.interval;\n if (\n !deviceCode ||\n !userCode ||\n !verificationUri ||\n !verificationUriComplete ||\n typeof expiresIn !== \"number\" ||\n typeof interval !== \"number\"\n ) {\n throw new Error(\"Gateway returned an invalid device-code response.\");\n }\n return {\n device_code: deviceCode,\n user_code: userCode,\n verification_uri: verificationUri,\n verification_uri_complete: verificationUriComplete,\n expires_in: expiresIn,\n interval,\n };\n}\n\nfunction assertDeviceTokenResponse(\n payload: Record<string, unknown>\n): DeviceTokenResponse {\n const accessToken = readString(payload.access_token);\n const tokenType = readString(payload.token_type);\n const scope = readString(payload.scope);\n const tenantId = readString(payload.tenant_id);\n const principalId = readString(payload.principal_id);\n if (\n !accessToken ||\n tokenType !== \"Bearer\" ||\n typeof payload.expires_in !== \"number\" ||\n !scope ||\n !tenantId ||\n !principalId\n ) {\n throw new Error(\"Gateway returned an invalid device token response.\");\n }\n return {\n access_token: accessToken,\n token_type: \"Bearer\",\n expires_in: payload.expires_in,\n scope,\n tenant_id: tenantId,\n workspace_id: readString(payload.workspace_id),\n principal_id: principalId,\n user:\n payload.user && typeof payload.user === \"object\" && !Array.isArray(payload.user)\n ? (payload.user as DeviceTokenResponse[\"user\"])\n : undefined,\n };\n}\n\nfunction maybeThrowDeviceError(payload: Record<string, unknown>): never {\n const error = readString(payload.error) as DeviceTokenErrorCode | undefined;\n throw new DeviceAuthorizationError({\n error: error ?? \"invalid_request\",\n description: readString(payload.error_description),\n interval:\n typeof payload.interval === \"number\" ? payload.interval : undefined,\n });\n}\n\nexport function createAuthDeviceClient(config: GatewayClientConfig = {}) {\n const fetchImpl = config.fetchImpl ?? fetch;\n const baseUrl = authBaseUrl(config);\n\n async function post(path: string, body: Record<string, unknown>) {\n return fetchImpl(`${baseUrl}${path}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify(body),\n });\n }\n\n return {\n async createDeviceCode(input: DeviceCodeInput = {}) {\n const response = await post(\"/api/platform/v1/auth/device/code\", {\n client_id: input.clientId ?? \"lucern-cli\",\n scope: input.scope ?? \"graph.read graph.write\",\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceCodeResponse(payload);\n },\n async pollDeviceToken(deviceCode: string) {\n const response = await post(\"/api/platform/v1/auth/device/token\", {\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n device_code: deviceCode,\n });\n const payload = await readJson(response);\n if (!response.ok) {\n maybeThrowDeviceError(payload);\n }\n return assertDeviceTokenResponse(payload);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport {\n type Opinion,\n} from \"./opinion\";\nimport { normalizeNodeWriteInput } from \"./sdkSurface\";\nimport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n JsonObject,\n ModulateConfidenceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateBeliefResponse,\n ForkBeliefResponse,\n ModulateConfidenceResponse,\n} from \"./types\";\nexport type { Opinion } from \"./opinion\";\n\n/** Configuration for the beliefs client. Inherits gateway transport settings. */\nexport type BeliefsClientConfig = GatewayClientConfig;\n\nexport type OpinionHistoryEntry = {\n t: number;\n b: number;\n d: number;\n u: number;\n a: number;\n P: number;\n trigger: string;\n triggeringRef?: {\n kind: \"evidence\" | \"question\" | \"answer\" | \"contradiction\" | \"worktree\";\n id: string;\n };\n rationale?: string;\n userId?: string;\n slOperator?: string;\n};\n\ntype GatewayRecord = Record<string, unknown>;\n\nfunction asRecord(value: unknown): GatewayRecord {\n return value && typeof value === \"object\" && !Array.isArray(value)\n ? (value as GatewayRecord)\n : {};\n}\n\nfunction readString(value: unknown): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const normalized = value.trim();\n return normalized.length > 0 ? normalized : undefined;\n}\n\nfunction readNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction normalizeOpinionTuple(record: GatewayRecord): {\n b: number;\n d: number;\n u: number;\n a: number;\n} {\n const opinion = asRecord(record.opinion);\n const rawBelief = readNumber(opinion.b) ?? readNumber(record.belief);\n const rawDisbelief = readNumber(opinion.d) ?? readNumber(record.disbelief);\n const rawUncertainty = readNumber(opinion.u) ?? readNumber(record.uncertainty);\n const rawBaseRate = readNumber(opinion.a) ?? readNumber(record.baseRate);\n\n if (\n rawBelief === undefined ||\n rawDisbelief === undefined ||\n rawUncertainty === undefined ||\n rawBaseRate === undefined\n ) {\n throw new Error(\n \"Gateway opinion history entries must include belief, disbelief, uncertainty, and baseRate.\"\n );\n }\n\n return {\n b: clamp01(rawBelief),\n d: clamp01(rawDisbelief),\n u: clamp01(rawUncertainty),\n a: clamp01(rawBaseRate),\n };\n}\n\nexport function mapOpinionHistoryEntriesFromGatewayData(\n payload: GatewayRecord\n): OpinionHistoryEntry[] {\n const entries = Array.isArray(payload.entries) ? payload.entries : [];\n return entries\n .map((value) => {\n const record = asRecord(value);\n const tuple = normalizeOpinionTuple(record);\n const projected =\n readNumber(record.confidence) ?? clamp01(tuple.b + tuple.a * tuple.u);\n const triggeringEvidenceId = readString(record.triggeringEvidenceId);\n const triggeringQuestionId = readString(record.triggeringQuestionId);\n const triggeringAnswerId = readString(record.triggeringAnswerId);\n const triggeringContradictionId = readString(\n record.triggeringContradictionId\n );\n const triggeringWorktreeId = readString(record.triggeringWorktreeId);\n const triggeringRef = triggeringEvidenceId\n ? ({ kind: \"evidence\", id: triggeringEvidenceId } as const)\n : triggeringQuestionId\n ? ({ kind: \"question\", id: triggeringQuestionId } as const)\n : triggeringAnswerId\n ? ({ kind: \"answer\", id: triggeringAnswerId } as const)\n : triggeringContradictionId\n ? ({ kind: \"contradiction\", id: triggeringContradictionId } as const)\n : triggeringWorktreeId\n ? ({ kind: \"worktree\", id: triggeringWorktreeId } as const)\n : undefined;\n const trigger = readString(record.trigger);\n if (!trigger) {\n throw new Error(\"Gateway opinion history entries must include trigger.\");\n }\n\n return {\n t: readNumber(record.timestamp) ?? readNumber(record.assessedAt) ?? 0,\n b: tuple.b,\n d: tuple.d,\n u: tuple.u,\n a: tuple.a,\n P: clamp01(projected),\n trigger,\n ...(triggeringRef ? { triggeringRef } : {}),\n ...(readString(record.rationale)\n ? { rationale: readString(record.rationale)! }\n : {}),\n ...(readString(record.userId) ? { userId: readString(record.userId)! } : {}),\n ...(readString(record.slOperator)\n ? { slOperator: readString(record.slOperator)! }\n : {}),\n };\n })\n .sort((left, right) => left.t - right.t);\n}\n\n/**\n * Input for creating a new belief within a topic scope.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n * Beliefs start as drafts with a vacuous prior `(0, 0, 1, a)`. When omitted,\n * `baseRate` defaults to the canonical neutral prior `0.5`.\n */\nexport type CreateBeliefInput = {\n topicId?: string;\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n layer?: \"L1\" | \"L2\" | \"L3\" | \"L4\";\n domain?: string;\n sourceType?: \"human\" | \"ai\" | \"agent\" | \"imported\";\n content?: string;\n contentHash?: string;\n globalId?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n baseRate?: number;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: \"unverified\" | \"verified\" | \"rejected\";\n};\n\n/**\n * Input for refining an existing draft belief.\n *\n * Use `text` as the canonical belief statement.\n * `canonicalText` remains available as a legacy alias for backwards compatibility.\n */\nexport type RefineBeliefInput = {\n /** Preferred belief statement alias. */\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n rationale?: string;\n title?: string;\n};\n\ntype BeliefConfidenceTrigger =\n | \"evidence_added\"\n | \"evidence_removed\"\n | \"contradiction_detected\"\n | \"contradiction_resolved\"\n | \"agent_assessment\"\n | \"worktree_outcome\"\n | \"worktree_completed\"\n | \"fusion\"\n | \"discount\"\n | \"deduction\";\n\ntype ModulateConfidenceInputBase = {\n trigger: BeliefConfidenceTrigger;\n rationale: string;\n triggeringEvidenceId?: string;\n triggeringQuestionId?: string;\n triggeringAnswerId?: string;\n triggeringContradictionId?: string;\n triggeringWorktreeId?: string;\n maxInlinePropagationTargets?: number;\n};\n\n/**\n * Record an append-only confidence change using an explicit subjective-logic\n * opinion tuple.\n */\nexport type ModulateConfidenceOpinionInput = ModulateConfidenceInputBase & {\n opinion: Opinion;\n};\n\nexport type ModulateConfidenceInput = ModulateConfidenceOpinionInput;\n\nfunction normalizeModulateConfidenceInput(\n input: ModulateConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\n/**\n * Input for forking a scored belief into a new formulation.\n * Scored beliefs are immutable — fork to evolve understanding.\n */\nexport type ForkBeliefInput = {\n newFormulation: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\n/** Input for changing a belief's lifecycle status. */\nexport type UpdateBeliefStatusInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n};\n\n/** Input for updating a belief's rationale without refining its text. */\nexport type UpdateBeliefRationaleInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n};\n\n/** Input for creating a belief-to-belief reasoning edge. */\nexport type LinkBeliefsInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n};\n\n/** Input for unlinking a belief from an attached evidence item. */\nexport type UnlinkBeliefEvidenceInput = {\n beliefNodeId?: string;\n beliefId?: string;\n nodeId?: string;\n insightId?: string;\n evidenceId?: string;\n};\n\n/** Input for updating a belief's criticality classification. */\nexport type UpdateBeliefCriticalityInput = {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n};\n\n/** Input for bulk-updating multiple beliefs' criticality. */\nexport type BatchUpdateBeliefCriticalityInput = {\n updates: Array<{\n beliefId: string;\n criticality:\n | \"blocking\"\n | \"important\"\n | \"supporting\"\n | \"essential\"\n | \"nice_to_have\";\n ifFalseImpact?: string;\n triagePriority?: number;\n reasoning?: string;\n dependentBeliefIds?: string[];\n blockedByBeliefIds?: string[];\n }>;\n};\n\n/** Input for moving beliefs into a different topic scope. */\nexport type ReassignBeliefsTopicInput = {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n};\n\n/**\n * Create the beliefs client for belief lifecycle operations.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `createBelief`, `refineBelief`, `modulateConfidence`, and `forkBelief` methods.\n */\nexport function createBeliefsClient(config: BeliefsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n function normalizeBaseRate(value: unknown): number {\n const baseRate = readNumber(value);\n const normalized = baseRate ?? 0.5;\n if (normalized < 0 || normalized > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return normalized;\n }\n const modulateConfidence: {\n (\n beliefId: string,\n input: ModulateConfidenceOpinionInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<ModulateConfidenceResponse>>;\n } = async (\n beliefId: string,\n input: ModulateConfidenceInput,\n idempotencyKey?: string\n ) =>\n gateway.request<ModulateConfidenceResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence`,\n method: \"POST\",\n body: normalizeModulateConfidenceInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n async function getOpinionHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n const response = await gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/confidence-history`,\n });\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n return {\n /**\n * Create a belief within a topic scope.\n */\n async createBelief(input: CreateBeliefInput, idempotencyKey?: string) {\n const baseRate = normalizeBaseRate(input.baseRate);\n return gateway.request<CreateBeliefResponse>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: {\n ...(normalizeNodeWriteInput(input) as JsonObject),\n baseRate,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Refine a draft belief in place.\n */\n async refineBelief(\n beliefId: string,\n input: RefineBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}`,\n method: \"PATCH\",\n body: normalizeNodeWriteInput(input as JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Record a confidence change for an existing belief.\n */\n modulateConfidence,\n\n /**\n * Returns the belief's confidence trajectory as a chronological array.\n *\n * Canonical UI trend shape (what every trend component consumes):\n * { t: number, b: number, d: number, u: number, a: number, P: number, trigger: string, triggeringRef?: { kind: \"evidence\" | \"worktree\"; id: string } }[]\n *\n * Where:\n * t = assessedAt (epoch ms)\n * b, d, u, a = Opinion 4-tuple components\n * P = projected probability = b + a*u (precomputed for UI convenience)\n * trigger = cause of the score change\n * triggeringRef = optional pointer to the evidence or worktree that drove the change\n */\n async getOpinionHistory(beliefId: string): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /** @deprecated Use getOpinionHistory(). */\n async getConfidenceHistory(\n beliefId: string\n ): Promise<OpinionHistoryEntry[]> {\n return getOpinionHistory(beliefId);\n },\n\n /**\n * Fork a scored belief into a new formulation.\n */\n async forkBelief(\n beliefId: string,\n input: ForkBeliefInput,\n idempotencyKey?: string\n ) {\n return gateway.request<ForkBeliefResponse>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(beliefId)}/fork`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's lifecycle status.\n */\n async updateBeliefStatus(\n input: UpdateBeliefStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's rationale without changing its text.\n */\n async updateBeliefRationale(\n input: UpdateBeliefRationaleInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Create a typed relationship between two beliefs.\n */\n async linkBeliefs(input: LinkBeliefsInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Remove an evidence attachment from a belief.\n */\n async unlinkBeliefEvidence(\n input: UnlinkBeliefEvidenceInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a belief's criticality metadata.\n */\n async updateBeliefCriticality(\n input: UpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update multiple beliefs' criticality in one mutation.\n */\n async batchUpdateBeliefCriticality(\n input: BatchUpdateBeliefCriticalityInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Reassign beliefs to a different topic scope.\n */\n async reassignBeliefsTopic(\n input: ReassignBeliefsTopicInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n} from \"./coreClient\";\nimport type {\n GetSourceResponse,\n JsonObject,\n UpsertSourceResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type { GetSourceResponse, UpsertSourceResponse } from \"./types\";\n\nexport type SourcesClientConfig = GatewayClientConfig;\n\nexport type UpsertSourceSpec = {\n url?: string;\n sha?: string;\n kind: string;\n title?: string;\n capturedAt?: number;\n topicId?: string;\n metadata?: JsonObject;\n};\n\nexport function createSourcesClient(config: SourcesClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async upsert(\n spec: UpsertSourceSpec,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return gateway.request<UpsertSourceResponse>({\n path: \"/api/platform/v1/sources/upsert\",\n method: \"POST\",\n body: spec,\n idempotencyKey,\n });\n },\n\n async get(sourceId: string) {\n return gateway.request<GetSourceResponse>({\n path: `/api/platform/v1/sources/${encodeURIComponent(sourceId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n} from \"./coreClient\";\n\ntype EvidenceClassificationRelation =\n | \"supports\"\n | \"contradicts\"\n | \"irrelevant\";\n\ntype ModelFallbackConfig = {\n modelKey: string;\n modelId: string;\n temperature: number;\n maxTokens: number;\n};\n\ntype ResolvedModelConfig = ModelFallbackConfig & {\n promptName: string;\n};\n\ntype TracingAdapter = {\n startGeneration(input: {\n name: string;\n userId?: string;\n promptName: string;\n model: string;\n input: unknown;\n }): Promise<{\n start: () => void;\n end: (output: unknown) => Promise<void>;\n error: (err: unknown) => Promise<void>;\n }>;\n};\n\ntype PromptResolver = (name: string) => Promise<string | null>;\n\ntype ModelResolver = (\n slotKey: string,\n fallback: ResolvedModelConfig\n) => Promise<ResolvedModelConfig>;\n\ntype ClassificationRuntimeAdapter = (input: {\n beliefId: string;\n evidenceId: string;\n belief: string;\n evidence: string;\n prompt: string;\n model: ResolvedModelConfig;\n}) => Promise<{\n relation: EvidenceClassificationRelation;\n rationale: string;\n}>;\n\n// Local mirror of the kernel adapter types so SDK DTS generation stays inside\n// packages/sdk rootDir. Source of truth:\n// packages/reasoning-kernel/src/adapters/evidenceClassifier.ts\nexport type SerializableClassifyEvidenceConfig = {\n promptName?: string;\n modelSlotKey?: string;\n modelFallback?: ModelFallbackConfig;\n edgeWeightPolicy?: {\n supports: number;\n contradicts: number;\n };\n statusTransition?: {\n onSupports: string;\n onContradicts: string;\n };\n writeLegacyTables?: boolean;\n};\n\nexport type ClassifyEvidenceConfig = SerializableClassifyEvidenceConfig & {\n trustDiscountPolicy?: (\n relation: Exclude<EvidenceClassificationRelation, \"irrelevant\">,\n rationale: string\n ) => number;\n tracing?: TracingAdapter;\n promptResolver?: PromptResolver;\n modelResolver?: ModelResolver;\n classifier?: ClassificationRuntimeAdapter;\n};\n\nexport type ClassifyEvidenceResult = {\n beliefId: string;\n evidenceId: string;\n relation: EvidenceClassificationRelation;\n rationale: string;\n usedFallback: boolean;\n edgeWeight?: number;\n promptName: string;\n model: ResolvedModelConfig;\n link?: {\n edgeGlobalId: string;\n linkId?: string;\n confidence: number;\n writeLegacyTables: boolean;\n };\n statusUpdate?: {\n previousStatus?: string;\n newStatus: string;\n historyWritten: boolean;\n };\n};\n\nexport type ClassifyEvidenceBatchItem = {\n evidenceId?: string;\n insightId?: string;\n nodeId?: string;\n text?: string;\n};\n\nexport type ClassifyEvidenceBatchResult = {\n items: ClassifyEvidenceResult[];\n summary: {\n supporting: number;\n contradicting: number;\n irrelevant: number;\n };\n};\n\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the evidence classification client. */\nexport type EvidenceClientConfig = GatewayClientConfig;\n\n/**\n * Serializable config accepted by the HTTP SDK surface.\n * Runtime-only ports stay inside the kernel adapter.\n */\nexport type EvidenceClassificationRequestConfig =\n SerializableClassifyEvidenceConfig;\n\n/**\n * Create the evidence classification client.\n *\n * This surface mirrors the promoted kernel primitive through the platform\n * gateway. Auth-scoped callers do not provide `createdBy`; the gateway derives\n * it from the authenticated principal.\n */\nexport function createEvidenceClient(config: EvidenceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async classifyEvidence(\n beliefId: string,\n evidenceId: string,\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceResult>({\n path: \"/api/platform/v1/evidence/classify\",\n method: \"POST\",\n body: {\n beliefId,\n evidenceId,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async classifyEvidenceBatch(\n beliefId: string,\n evidence: ClassifyEvidenceBatchItem[],\n classificationConfig?: EvidenceClassificationRequestConfig,\n idempotencyKey?: string\n ) {\n return gateway.request<ClassifyEvidenceBatchResult>({\n path: \"/api/platform/v1/evidence/classify-batch\",\n method: \"POST\",\n body: {\n beliefId,\n evidence,\n config: classificationConfig,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import { createListResult } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport function cleanOptionalString(value: string | undefined) {\n const normalized = value?.trim();\n return normalized ? normalized : undefined;\n}\n\nexport function cleanRequiredString(\n value: string | undefined,\n label: string\n) {\n const normalized = cleanOptionalString(value);\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nexport function readTopicId(input: TopicProjectAliasInput) {\n return cleanOptionalString(input.topicId) ?? cleanOptionalString(input.projectId);\n}\n\nexport function requireTopicId(input: TopicProjectAliasInput) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nexport function assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nexport function knownPayload<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return { ...input } as JsonObject;\n}\n\nexport function topicPayload<T extends string>(\n input: TopicProjectAliasInput & Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n assertKnownKeys(input, allowed, operation);\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject;\n}\n\nexport function listResultFromEnvelope<T, LegacyKey extends string>(\n data: unknown,\n legacyKey: LegacyKey\n): ListResult<T, LegacyKey> {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as Record<string, unknown>)[legacyKey])\n ? ((record as Record<string, T[]>)[legacyKey])\n : Array.isArray(data)\n ? (data as T[])\n : [],\n legacyKey\n );\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EventingClientConfig = GatewayClientConfig;\n\nexport const EVENTING_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"eventId\",\n \"eventType\",\n \"eventPayload\",\n \"webhookId\",\n \"deliveryId\",\n \"status\",\n \"attempt\",\n \"statusCode\",\n \"error\",\n \"responseBody\",\n \"durationMs\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type EventingStatus =\n | \"pending\"\n | \"delivering\"\n | \"succeeded\"\n | \"failed\"\n | \"dead_letter\";\n\nexport type EventingRecord = {\n eventId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType: string;\n eventPayload?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type EventingWebhookRecord = {\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n topicId?: string;\n url?: string;\n events?: string[];\n status?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EventingDeliveryRecord = {\n deliveryId: string;\n eventId?: string;\n webhookId: string;\n tenantId: string;\n workspaceId?: string;\n status: EventingStatus | string;\n attempt?: number;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type EventingScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n eventType?: string;\n webhookId?: string;\n status?: EventingStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordEventInput = EventingScope & {\n eventId?: string;\n eventType: string;\n eventPayload?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type EnqueueDeliveryInput = EventingScope & {\n eventId: string;\n webhookId: string;\n deliveryId?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordDeliveryAttemptInput = EventingScope & {\n deliveryId: string;\n webhookId: string;\n attempt: number;\n status: EventingStatus;\n statusCode?: number;\n error?: string;\n responseBody?: string;\n durationMs?: number;\n metadata?: JsonObject;\n};\n\nexport type UpdateDeliveryStatusInput = EventingScope & {\n deliveryId: string;\n webhookId?: string;\n status: EventingStatus;\n attempt?: number;\n metadata?: JsonObject;\n};\n\nexport type EventingEventsResponse = ListResult<EventingRecord, \"events\">;\nexport type EventingWebhooksResponse = ListResult<\n EventingWebhookRecord,\n \"webhooks\"\n>;\n\nfunction query(input: EventingScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n eventType: input.eventType,\n webhookId: input.webhookId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, EVENTING_FIELDS, operation);\n}\n\nexport function createEventingClient(config: EventingClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n recordEvent(input: RecordEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<EventingRecord>({\n path: \"/api/platform/v1/events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listEvents(input: EventingScope) {\n return gateway.request<EventingEventsResponse>({\n path: `/api/platform/v1/events${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingRecord, \"events\">(data, \"events\")\n )\n );\n },\n\n listWebhooks(input: EventingScope) {\n return gateway.request<EventingWebhooksResponse>({\n path: `/api/platform/v1/webhooks${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EventingWebhookRecord, \"webhooks\">(\n data,\n \"webhooks\"\n )\n )\n );\n },\n\n enqueueDelivery(input: EnqueueDeliveryInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventId, \"eventId\");\n cleanRequiredString(input.webhookId, \"webhookId\");\n return gateway.request<EventingDeliveryRecord>({\n path: \"/api/platform/v1/events/deliveries\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.enqueueDelivery\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordDeliveryAttempt(\n input: RecordDeliveryAttemptInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/attempts`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.recordDeliveryAttempt\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateDeliveryStatus(\n input: UpdateDeliveryStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.deliveryId, \"deliveryId\");\n return gateway.request<EventingDeliveryRecord>({\n path: `/api/platform/v1/events/deliveries/${encodeURIComponent(\n input.deliveryId\n )}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"events.updateDeliveryStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import { z } from \"zod\";\nimport type {\n McpParameterDef,\n McpResponseDef,\n McpToolContract,\n} from \"./contracts/mcpTools\";\nimport type { JsonObject } from \"./types\";\n\n/** Default namespace assigned to custom tools when none is specified. */\nconst DEFAULT_CUSTOM_NAMESPACE = \"custom\";\n\n/** Namespace strings reserved for platform-internal tools. */\nconst RESERVED_NAMESPACES = new Set([\"lucern\"]);\n\ntype AnyZodObject = z.ZodObject<z.ZodRawShape>;\n\n/** Origin of a custom tool invocation (SDK call or MCP request). */\nexport type CustomToolInvocationSource = \"sdk\" | \"mcp\";\n\n/** Runtime context passed to a custom tool handler during invocation. */\nexport type CustomToolInvocationContext = {\n source: CustomToolInvocationSource;\n};\n\n/** Optional metadata attached to a custom tool registration. */\nexport type CustomToolMetadata = {\n category?: string;\n tags?: string[];\n requiredScopes?: string[];\n};\n\n/** Input descriptor for registering a custom tool with its schemas and handler. */\nexport type CustomToolRegistration<\n TInput extends AnyZodObject = AnyZodObject,\n TOutput extends z.ZodTypeAny = z.ZodTypeAny,\n> = {\n namespace?: string;\n name: string;\n description: string;\n inputSchema: TInput;\n outputSchema: TOutput;\n handler: (\n input: z.infer<TInput>,\n context: CustomToolInvocationContext\n ) => Promise<z.infer<TOutput>> | z.infer<TOutput>;\n metadata?: CustomToolMetadata;\n ownerModule?: string;\n ontologyPrimitive?: McpToolContract[\"ontologyPrimitive\"];\n tier?: McpToolContract[\"tier\"];\n};\n\n/** A fully resolved custom tool entry stored in the in-memory registry. */\nexport type RegisteredCustomTool = {\n fullName: string;\n namespace: string;\n shortName: string;\n metadata: CustomToolMetadata;\n contract: McpToolContract;\n inputSchema: AnyZodObject;\n outputSchema: z.ZodTypeAny;\n invoke: (\n input: JsonObject,\n context: CustomToolInvocationContext\n ) => Promise<unknown>;\n};\n\n/** Error thrown when custom tool registration or invocation fails validation. */\nexport class CustomToolRegistryError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"CustomToolRegistryError\";\n }\n}\n\nconst customToolRegistry = new Map<string, RegisteredCustomTool>();\n\nfunction normalizeSegment(value: string, field: \"namespace\" | \"name\"): string {\n const normalized = value.trim();\n if (!normalized) {\n throw new CustomToolRegistryError(`Custom tool ${field} is required.`);\n }\n if (!/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(normalized)) {\n throw new CustomToolRegistryError(\n `Invalid custom tool ${field}: \"${value}\". Use letters, numbers, \"_\" or \"-\".`\n );\n }\n return normalized;\n}\n\nfunction normalizeNamespace(namespace?: string): string {\n const resolved = normalizeSegment(\n namespace ?? DEFAULT_CUSTOM_NAMESPACE,\n \"namespace\"\n );\n if (RESERVED_NAMESPACES.has(resolved.toLowerCase())) {\n throw new CustomToolRegistryError(\n `Namespace \"${resolved}\" is reserved for platform tools.`\n );\n }\n return resolved;\n}\n\nfunction normalizeName(name: string): string {\n if (name.includes(\".\")) {\n throw new CustomToolRegistryError(\n `Custom tool name \"${name}\" must not include \".\"; use namespace + name.`\n );\n }\n return normalizeSegment(name, \"name\");\n}\n\nfunction buildFullName(namespace: string, shortName: string): string {\n return `${namespace}.${shortName}`;\n}\n\nfunction unwrapSchema(schema: z.ZodTypeAny): {\n schema: z.ZodTypeAny;\n required: boolean;\n} {\n if (schema instanceof z.ZodOptional) {\n return { schema: schema.unwrap(), required: false };\n }\n if (schema instanceof z.ZodDefault) {\n const removeDefault = (\n schema as unknown as { removeDefault?: () => z.ZodTypeAny }\n ).removeDefault;\n if (typeof removeDefault === \"function\") {\n return { schema: removeDefault.call(schema), required: false };\n }\n const inner = (schema as unknown as { _def?: { innerType?: z.ZodTypeAny } })\n ._def?.innerType;\n return { schema: inner ?? schema, required: false };\n }\n return { schema, required: true };\n}\n\nfunction resolveParameterType(schema: z.ZodTypeAny): {\n type: McpParameterDef[\"type\"];\n enum?: string[];\n} {\n if (schema instanceof z.ZodString) {\n return { type: \"string\" };\n }\n if (schema instanceof z.ZodEnum) {\n return { type: \"string\", enum: schema.options };\n }\n if (schema instanceof z.ZodNativeEnum) {\n const values = Object.values(schema.enum).filter(\n (value): value is string => typeof value === \"string\"\n );\n return values.length > 0\n ? { type: \"string\", enum: values }\n : { type: \"string\" };\n }\n if (schema instanceof z.ZodLiteral) {\n const literalValue = schema.value;\n if (typeof literalValue === \"string\") {\n return { type: \"string\", enum: [literalValue] };\n }\n if (typeof literalValue === \"number\") {\n return { type: \"number\" };\n }\n if (typeof literalValue === \"boolean\") {\n return { type: \"boolean\" };\n }\n return { type: \"object\" };\n }\n if (schema instanceof z.ZodNumber) {\n return { type: \"number\" };\n }\n if (schema instanceof z.ZodBoolean) {\n return { type: \"boolean\" };\n }\n if (schema instanceof z.ZodArray) {\n return { type: \"array\" };\n }\n return { type: \"object\" };\n}\n\nfunction schemaTypeLabel(schema: z.ZodTypeAny): string {\n if (schema instanceof z.ZodString || schema instanceof z.ZodEnum) {\n return \"string\";\n }\n if (schema instanceof z.ZodNumber) {\n return \"number\";\n }\n if (schema instanceof z.ZodBoolean) {\n return \"boolean\";\n }\n if (schema instanceof z.ZodArray) {\n return \"array\";\n }\n if (schema instanceof z.ZodObject) {\n return \"object\";\n }\n return \"unknown\";\n}\n\nfunction parseObjectSchema<TInput extends AnyZodObject>(\n value: TInput,\n fieldName: string\n): TInput {\n if (!(value instanceof z.ZodObject)) {\n throw new CustomToolRegistryError(\n `${fieldName} must be a Zod object schema.`\n );\n }\n return value;\n}\n\nfunction deriveParameters(schema: AnyZodObject): {\n parameters: Record<string, McpParameterDef>;\n required: string[];\n} {\n const shape = schema.shape;\n const parameters: Record<string, McpParameterDef> = {};\n const required: string[] = [];\n\n for (const [key, raw] of Object.entries(shape)) {\n const { schema: unwrapped, required: isRequired } = unwrapSchema(\n raw as z.ZodTypeAny\n );\n const parameterType = resolveParameterType(unwrapped);\n parameters[key] = {\n type: parameterType.type,\n description: (raw as z.ZodTypeAny).description ?? `${key} parameter`,\n ...(parameterType.enum ? { enum: parameterType.enum } : {}),\n };\n if (isRequired) {\n required.push(key);\n }\n }\n\n return { parameters, required };\n}\n\nfunction deriveResponse(schema: z.ZodTypeAny): McpResponseDef {\n if (schema instanceof z.ZodObject) {\n const fields = Object.fromEntries(\n Object.entries(schema.shape).map(([key, value]) => {\n const zodValue = value as z.ZodTypeAny;\n const label = schemaTypeLabel(unwrapSchema(zodValue).schema);\n const description = zodValue.description ?? \"custom output field\";\n return [key, `${label} — ${description}`];\n })\n );\n return {\n description: \"Custom tool result payload\",\n fields,\n };\n }\n\n return {\n description: \"Custom tool result payload\",\n fields: {\n result: `${schemaTypeLabel(schema)} — custom output payload`,\n },\n };\n}\n\nfunction buildContract<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n fullName: string,\n namespace: string,\n registration: CustomToolRegistration<TInput, TOutput>,\n inputSchema: TInput\n): McpToolContract {\n const { parameters, required } = deriveParameters(inputSchema);\n return {\n name: fullName,\n description: registration.description,\n parameters,\n required,\n response: deriveResponse(registration.outputSchema),\n ownerModule: registration.ownerModule ?? `${namespace}-extension`,\n ontologyPrimitive: registration.ontologyPrimitive ?? \"task\",\n tier: registration.tier ?? \"workhorse\",\n };\n}\n\n/**\n * Register a custom SDK tool in the in-memory registry.\n * @param registration - The tool definition including name, schemas, and handler.\n * @param options - Optional flags; set `replace` to overwrite an existing registration.\n * @returns The fully resolved registered tool entry.\n */\nexport function registerCustomTool<\n TInput extends AnyZodObject,\n TOutput extends z.ZodTypeAny,\n>(\n registration: CustomToolRegistration<TInput, TOutput>,\n options: { replace?: boolean } = {}\n): RegisteredCustomTool {\n const namespace = normalizeNamespace(registration.namespace);\n const shortName = normalizeName(registration.name);\n const fullName = buildFullName(namespace, shortName);\n\n if (customToolRegistry.has(fullName) && !options.replace) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is already registered.`\n );\n }\n\n const inputSchema = parseObjectSchema(\n registration.inputSchema,\n \"inputSchema\"\n );\n const outputSchema = registration.outputSchema;\n const contract = buildContract(\n fullName,\n namespace,\n registration,\n inputSchema\n );\n const metadata: CustomToolMetadata = {\n category: registration.metadata?.category,\n tags: registration.metadata?.tags ?? [],\n requiredScopes: registration.metadata?.requiredScopes ?? [\"custom:execute\"],\n };\n\n const registered: RegisteredCustomTool = {\n fullName,\n namespace,\n shortName,\n metadata,\n contract,\n inputSchema,\n outputSchema,\n invoke: async (input, context) => {\n const parsedInput = inputSchema.parse(input);\n const rawOutput = await registration.handler(parsedInput, context);\n return outputSchema.parse(rawOutput);\n },\n };\n\n customToolRegistry.set(fullName, registered);\n return registered;\n}\n\n/**\n * Remove a custom SDK tool from the registry.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns `true` if the tool was found and removed, `false` otherwise.\n */\nexport function unregisterCustomTool(fullName: string): boolean {\n return customToolRegistry.delete(fullName.trim());\n}\n\n/**\n * Get a custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @returns The registered tool entry, or `undefined` if not found.\n */\nexport function getRegisteredCustomTool(\n fullName: string\n): RegisteredCustomTool | undefined {\n return customToolRegistry.get(fullName.trim());\n}\n\n/**\n * List all registered custom SDK tools, sorted alphabetically by full name.\n * @returns An array of all registered tool entries.\n */\nexport function listRegisteredCustomTools(): RegisteredCustomTool[] {\n return [...customToolRegistry.values()].sort((left, right) =>\n left.fullName.localeCompare(right.fullName)\n );\n}\n\n/**\n * Clear the registered custom tool registry.\n */\nexport function clearRegisteredCustomTools(): void {\n customToolRegistry.clear();\n}\n\n/**\n * Invoke a registered custom SDK tool by fully qualified name.\n * @param fullName - Fully qualified tool name (`namespace.name`).\n * @param params - JSON-serializable input parameters for the tool handler.\n * @param context - Invocation context indicating the call source.\n * @returns The validated output from the tool handler.\n */\nexport async function invokeRegisteredCustomTool(\n fullName: string,\n params: JsonObject,\n context: CustomToolInvocationContext\n): Promise<unknown> {\n const registered = getRegisteredCustomTool(fullName);\n if (!registered) {\n throw new CustomToolRegistryError(\n `Custom tool \"${fullName}\" is not registered.`\n );\n }\n return registered.invoke(params, context);\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the ontology client. */\nexport type OntologyClientConfig = GatewayClientConfig;\n\n/** Input for binding an ontology to a topic. */\nexport type OntologyBindingInput = GatewayScope & {\n ontologyId: string;\n topicId: string;\n};\n\n/** Input for creating an ontology definition. */\nexport type OntologyDefinitionInput = GatewayScope & {\n ontologyKey: string;\n name: string;\n description?: string;\n tenantId?: string;\n tier?: \"platform\" | \"pack\" | \"tenant\";\n};\n\n/** Input for updating mutable fields on an ontology definition. */\nexport type OntologyDefinitionUpdateInput = GatewayScope & {\n name?: string;\n description?: string;\n status?: \"draft\" | \"active\" | \"deprecated\";\n};\n\n/** Input for creating a versioned snapshot of entity and edge type definitions. */\nexport type OntologyVersionInput = GatewayScope & {\n version: string;\n entityTypes: Array<{\n value: string;\n label: string;\n description?: string;\n schema?: JsonObject;\n subtypes?: Array<{ value: string; label: string; description?: string }>;\n }>;\n edgeTypes: Array<{\n value: string;\n label: string;\n description?: string;\n sourceTypes?: string[];\n targetTypes?: string[];\n constraintSeverity?: \"warn\" | \"info\";\n }>;\n releaseNotes?: string;\n};\n\n/**\n * Create the ontology client for ontology definitions and versions.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage ontology definitions, versions, and bindings.\n */\nexport function createOntologyClient(config: OntologyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List ontology definitions matching optional filters.\n */\n async list(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return gateway\n .request<unknown>({\n path: `/api/platform/v1/ontologies${toQueryString(filters)}`,\n })\n .then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const ontologies = Array.isArray(record.ontologies)\n ? record.ontologies\n : Array.isArray(record.definitions)\n ? record.definitions\n : Array.isArray(data)\n ? data\n : [];\n const total =\n typeof record.total === \"number\" && Number.isFinite(record.total)\n ? record.total\n : ontologies.length;\n return {\n ...record,\n ...createListResult(ontologies, \"definitions\"),\n ontologies,\n total,\n };\n })\n );\n },\n\n /**\n * Get an ontology definition by identifier.\n */\n async get(id: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n /**\n * Bind an ontology definition to a topic.\n */\n async bind(input: OntologyBindingInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List ontology definitions.\n */\n async listDefinitions(\n filters: GatewayScope & {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return this.list(filters);\n },\n\n /**\n * Get an ontology definition.\n */\n async getDefinition(id: string) {\n return this.get(id);\n },\n\n /**\n * Create an ontology definition.\n */\n async createDefinition(\n input: OntologyDefinitionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/ontologies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update an ontology definition.\n */\n async updateDefinition(\n id: string,\n input: OntologyDefinitionUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Archive an ontology definition.\n */\n async archiveDefinition(id: string, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List versions for an ontology definition.\n */\n async listVersions(\n ontologyId: string,\n filters: GatewayScope & { status?: string } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions${toQueryString(filters)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"versions\")\n )\n );\n },\n\n /**\n * Create an ontology version.\n */\n async createVersion(\n ontologyId: string,\n input: OntologyVersionInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Publish an ontology version.\n */\n async publishVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/publish`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Deprecate an ontology version.\n */\n async deprecateVersion(\n ontologyId: string,\n versionId: string,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(ontologyId)}/versions/${encodeURIComponent(versionId)}/deprecate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List topics directly bound to a specific ontology definition.\n * Uses the topics gateway with ontologyId filter.\n */\n async listTopics(ontologyId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/topics?ontologyId=${encodeURIComponent(ontologyId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"topics\")\n )\n );\n },\n\n /**\n * @deprecated Use listTopics.\n */\n async listTopicsByOntology(ontologyId: string) {\n return this.listTopics(ontologyId);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n mapAliasedList,\n mapGatewayData,\n normalizeNodeWriteInput,\n normalizeNodeVerificationStatus,\n normalizeTopicQuery,\n withSdkAliases,\n} from \"./sdkSurface\";\nimport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n JsonObject,\n ListResult,\n PlatformGraphEdge,\n PlatformGraphNode,\n QueryEdgesResponse,\n QueryNodesResponse,\n TextAliasInput,\n TopicIdentifierInput,\n UpdateNodeResponse,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n CreateEdgeResponse,\n CreateNodeResponse,\n DeleteEdgeResponse,\n GraphAnalyticsMetric,\n GraphAnalyticsResponse,\n GraphNeighborhoodResponse,\n GraphPathResponse,\n ListResult,\n QueryEdgesResponse,\n QueryNodesResponse,\n UpdateNodeResponse,\n} from \"./types\";\n\n/** Configuration for the graph client. */\nexport type GraphClientConfig = GatewayClientConfig;\n\n/** Filter parameters for listing graph nodes. */\nexport type ListNodesInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n nodeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph nodes. */\nexport type ListNodesResponse = ListResult<PlatformGraphNode, \"nodes\">;\n\n/** @deprecated Use ListNodesInput. */\nexport type QueryNodesInput = ListNodesInput;\n\n/** Input for creating a new graph node. */\nexport type CreateNodeInput = {\n text?: string;\n /** @deprecated Use text. */\n canonicalText?: string;\n nodeType: string;\n topicId?: string;\n content?: string;\n contentHash?: string;\n globalId?: string;\n sourceType?: string;\n subtype?: string;\n title?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput &\n TopicIdentifierInput;\n\n/** Input for updating an existing graph node. */\nexport type UpdateNodeInput = {\n nodeId: string;\n text?: string;\n canonicalText?: string;\n content?: string;\n contentHash?: string;\n title?: string;\n subtype?: string;\n confidence?: number;\n status?: string;\n tags?: string[];\n metadata?: JsonObject;\n verificationStatus?: string;\n} & TextAliasInput;\n\n/** Input for retrieving a single graph node by canonical identifier. */\nexport type GetNodeInput = {\n nodeId?: string;\n globalId?: string;\n};\n\n/** Filter parameters for listing graph edges. */\nexport type ListEdgesInput = {\n edgeId?: string;\n topicId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Paginated list response containing graph edges. */\nexport type ListEdgesResponse = ListResult<PlatformGraphEdge, \"edges\">;\n\n/** @deprecated Use ListEdgesInput. */\nexport type QueryEdgesInput = ListEdgesInput;\n\n/** Input for creating a typed edge between two graph nodes. */\nexport type CreateEdgeInput = {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n globalId?: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n derivationType?: string;\n} & TopicIdentifierInput;\n\n/** Filter for selecting edges to delete. */\nexport type DeleteEdgeInput = {\n edgeId?: string;\n fromNodeId?: string;\n toNodeId?: string;\n edgeType?: string;\n};\n\n/** Input for batch-creating multiple graph nodes. */\nexport type BatchCreateNodesInput = {\n nodes: Array<CreateNodeInput>;\n};\n\n/** Input for superseding an existing graph node with a new version. */\nexport type SupersedeNodeInput = {\n oldNodeId?: string;\n nodeId?: string;\n newGlobalId?: string;\n newCanonicalText?: string;\n text?: string;\n canonicalText?: string;\n newContentHash?: string;\n reason?: string;\n};\n\n/** Input for updating a node's verification state. */\nexport type VerifyNodeInput = {\n nodeId?: string;\n id?: string;\n verificationStatus: string;\n confidence?: number;\n};\n\n/** Input for permanently deleting a node via admin-only API. */\nexport type HardDeleteNodeInput = {\n nodeId?: string;\n id?: string;\n reason: string;\n allowBeliefHardDelete?: boolean;\n};\n\n/** Input for retrieving the local neighborhood around a graph node. */\nexport type NeighborhoodInput = {\n globalId?: string;\n globalIds?: string;\n maxDepth?: number;\n};\n\n/** Input for finding the shortest path between two graph nodes. */\nexport type PathInput = {\n fromGlobalId: string;\n toGlobalId: string;\n maxDepth?: number;\n};\n\n/** Input for retrieving a specific graph analytics metric. */\nexport type AnalyticsInput = {\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\n/** Input for traversing the graph from a starting node. */\nexport type TraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for structural analysis of a topic graph. */\nexport type AnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for detecting confirmation-bias patterns in a topic graph. */\nexport type BiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for finding beliefs without sufficient testing questions. */\nexport type GapsInput = {\n topicId?: string;\n minConfidence?: number;\n} & TopicIdentifierInput;\n\n/** Input for cross-resource search within a topic scope. */\nexport type SearchInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n} & TopicIdentifierInput;\n\n/**\n * Create the low-level graph client for nodes, edges, and graph analytics.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for CRUD on nodes/edges plus analytics, traversal, and search.\n */\nexport function createGraphClient(config: GraphClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List graph nodes matching the provided filters.\n */\n async listNodes(query: ListNodesInput) {\n return gateway.request<ListNodesResponse>({\n path: `/api/platform/v1/graph/nodes${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => mapAliasedList<PlatformGraphNode, \"nodes\">(data, \"nodes\"))\n );\n },\n\n /**\n * @deprecated Use listNodes.\n */\n async queryNodes(query: QueryNodesInput) {\n return this.listNodes(query);\n },\n\n /**\n * Retrieve a single graph node by nodeId or globalId.\n */\n async getNode(query: GetNodeInput) {\n return gateway.request<PlatformGraphNode>({\n path: `/api/platform/v1/graph/nodes${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as PlatformGraphNode\n )\n );\n },\n\n /**\n * Create a graph node.\n */\n async createNode(input: CreateNodeInput, idempotencyKey?: string) {\n return gateway.request<CreateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"POST\",\n body: normalizeNodeWriteInput(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as CreateNodeResponse\n )\n );\n },\n\n /**\n * Update a graph node.\n */\n async updateNode(input: UpdateNodeInput, idempotencyKey?: string) {\n return gateway.request<UpdateNodeResponse>({\n path: \"/api/platform/v1/graph/nodes\",\n method: \"PUT\",\n body: normalizeNodeWriteInput(input as UpdateNodeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withSdkAliases(data as Record<string, unknown>) as UpdateNodeResponse\n )\n );\n },\n\n /**\n * Batch create graph nodes through the admin route surface.\n */\n async batchCreateNodes(\n input: BatchCreateNodesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/batch\",\n method: \"POST\",\n body: {\n nodes: input.nodes.map((node) => normalizeNodeWriteInput(node)),\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Supersede an existing graph node with a new canonical version.\n */\n async supersedeNode(input: SupersedeNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/supersede\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a node's verification status.\n */\n async verifyNode(input: VerifyNodeInput, idempotencyKey?: string) {\n const verificationStatus =\n normalizeNodeVerificationStatus(input.verificationStatus) ??\n input.verificationStatus;\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/verify\",\n method: \"POST\",\n body: {\n ...input,\n verificationStatus,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Permanently delete a node via the admin-only hard-delete route.\n */\n async hardDeleteNode(input: HardDeleteNodeInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/nodes/hard-delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List graph edges matching the provided filters.\n */\n async listEdges(query: ListEdgesInput) {\n return gateway.request<ListEdgesResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<PlatformGraphEdge, \"edges\">(data, \"edges\")\n )\n );\n },\n\n /**\n * @deprecated Use listEdges.\n */\n async queryEdges(query: QueryEdgesInput) {\n return this.listEdges(query);\n },\n\n /**\n * Create a graph edge.\n */\n async createEdge(input: CreateEdgeInput, idempotencyKey?: string) {\n return gateway.request<CreateEdgeResponse>({\n path: \"/api/platform/v1/graph/edges\",\n method: \"POST\",\n body: normalizeTopicQuery(input as CreateEdgeInput & JsonObject),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete one or more edges matching the provided filter.\n */\n async deleteEdge(query: DeleteEdgeInput, idempotencyKey?: string) {\n return gateway.request<DeleteEdgeResponse>({\n path: `/api/platform/v1/graph/edges${toQueryString(query)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async neighborhood(query: NeighborhoodInput) {\n return gateway.request<GraphNeighborhoodResponse>({\n path: `/api/platform/v1/graph/neighborhood${toQueryString(query)}`,\n });\n },\n\n /**\n * Traverse the graph from a starting node.\n */\n async traverse(query: TraverseInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/traverse\",\n method: \"POST\",\n body: normalizeTopicQuery(query as TraverseInput & JsonObject),\n });\n },\n\n /**\n * Analyze graph structure for a topic.\n */\n async analyze(query: AnalyzeInput = {}) {\n const normalized = normalizeTopicQuery(query as AnalyzeInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/analyze${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n metric:\n typeof normalized.metric === \"string\" ? normalized.metric : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Detect confirmation-bias patterns for a topic graph.\n */\n async bias(query: BiasInput = {}) {\n const normalized = normalizeTopicQuery(query as BiasInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/bias${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n threshold:\n typeof normalized.threshold === \"number\"\n ? normalized.threshold\n : undefined,\n limit:\n typeof normalized.limit === \"number\" ? normalized.limit : undefined,\n })}`,\n });\n },\n\n /**\n * Find graph gaps for beliefs that still need testing.\n */\n async gaps(query: GapsInput) {\n const normalized = normalizeTopicQuery(query as GapsInput & JsonObject);\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/graph/gaps${toQueryString({\n topicId:\n typeof normalized.topicId === \"string\" ? normalized.topicId : undefined,\n minConfidence:\n typeof normalized.minConfidence === \"number\"\n ? normalized.minConfidence\n : undefined,\n })}`,\n });\n },\n\n /**\n * Search across graph resources within a topic.\n */\n async search(query: SearchInput) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: normalizeTopicQuery(query as SearchInput & JsonObject),\n });\n },\n\n /**\n * Retrieve a graph neighborhood around a root node.\n */\n async getNeighborhood(query: NeighborhoodInput) {\n return this.neighborhood(query);\n },\n\n /**\n * Retrieve the shortest known path between two graph nodes.\n */\n async getPath(query: PathInput) {\n return gateway.request<GraphPathResponse>({\n path: `/api/platform/v1/graph/path${toQueryString(query)}`,\n });\n },\n\n /**\n * Retrieve graph analytics for the requested metric.\n */\n async getAnalytics(query: AnalyticsInput = {}) {\n return gateway.request<GraphAnalyticsResponse>({\n path: `/api/platform/v1/graph/analytics${toQueryString(query)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult, SdkPrincipalContext } from \"./types\";\n\n/** Summary of the currently authenticated principal and their scopes. */\nexport type IdentitySummary = SdkPrincipalContext;\n\n/** Gateway response wrapping an identity summary payload. */\nexport type IdentityWhoamiResponse = PlatformGatewaySuccess<IdentitySummary>;\n\nfunction createIdentityWhoamiClient(\n config: GatewayClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async whoami(): Promise<IdentityWhoamiResponse> {\n return gateway.request<SdkPrincipalContext>({\n path: \"/api/platform/v1/identity/whoami\",\n });\n },\n };\n}\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the identity client. */\nexport type IdentityClientConfig = GatewayClientConfig;\n\nexport type ClerkUserSearchResult = {\n clerkId: string;\n email: string | null;\n firstName: string | null;\n lastName: string | null;\n displayName: string | null;\n imageUrl: string | null;\n};\n\nexport const TENANT_IDENTITY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"integrationKey\",\n \"secretRef\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"decision\",\n \"config\",\n \"configKey\",\n \"configValue\",\n \"provider\",\n \"status\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TenantIdentityConfigRecord = {\n tenantId: string;\n workspaceId?: string;\n config?: JsonObject | null;\n metadata?: JsonObject | null;\n updatedAt?: number;\n updatedBy?: string;\n};\n\nexport type TenantIntegrationRecord = {\n tenantId: string;\n workspaceId?: string;\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type TenantSecretReference = {\n tenantId: string;\n workspaceId?: string;\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject | null;\n updatedAt?: number;\n};\n\nexport type PolicyDecisionRecord = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n policySubject: string;\n policyAction: string;\n policyResource: string;\n decision: \"allow\" | \"deny\" | string;\n reason?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TenantIdentityScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateTenantConfigInput = TenantIdentityScope & {\n config?: JsonObject;\n configKey?: string;\n configValue?: JsonObject | string | number | boolean | null;\n metadata?: JsonObject;\n};\n\nexport type UpsertTenantIntegrationInput = TenantIdentityScope & {\n integrationKey: string;\n provider?: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PutTenantSecretReferenceInput = TenantIdentityScope & {\n integrationKey?: string;\n secretRef: string;\n status?: string;\n metadata?: JsonObject;\n};\n\nexport type PolicyEvaluationInput = TenantIdentityScope & {\n policySubject: string;\n policyAction: string;\n policyResource: string;\n metadata?: JsonObject;\n};\n\nexport type RecordPolicyDecisionInput = PolicyEvaluationInput & {\n decision: \"allow\" | \"deny\" | string;\n};\n\nexport type TenantIntegrationsResponse = ListResult<\n TenantIntegrationRecord,\n \"integrations\"\n>;\nexport type TenantSecretsResponse = ListResult<TenantSecretReference, \"secrets\">;\n\nfunction tenantIdentityQuery(input: TenantIdentityScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction tenantIdentityBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TENANT_IDENTITY_FIELDS, operation);\n}\n\n/**\n * Create the identity client for principals and API keys.\n * @param config - Gateway transport configuration.\n * @returns An object with methods for whoami, principal management, and key management.\n */\nexport function createIdentityClient(config: IdentityClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const whoamiClient = createIdentityWhoamiClient(config);\n\n const requestPrincipalWrite = (\n method: \"POST\" | \"PATCH\",\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) =>\n gateway.request<unknown>({\n path: \"/api/platform/v1/identity/principals\",\n method,\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n /**\n * Resolve the current authenticated identity summary.\n */\n async whoami() {\n return whoamiClient.whoami().then((response) =>\n mapGatewayData(response, (data) => ({\n principalId: data.principalId,\n principalType: data.principalType,\n tenantId: data.tenantId ?? null,\n workspaceId: data.workspaceId ?? null,\n scopes: Array.isArray(data.scopes) ? data.scopes : [],\n roles: Array.isArray(data.roles) ? data.roles : [],\n isPlatformAdmin: data.isPlatformAdmin === true,\n isTenantAdmin: data.isTenantAdmin === true,\n isWorkspaceAdmin: data.isWorkspaceAdmin === true,\n authMode: data.authMode,\n sessionId: data.sessionId,\n delegatedBy: data.delegatedBy,\n expiresAt: data.expiresAt,\n }))\n );\n },\n\n /**\n * List principals in the current identity scope.\n */\n async listPrincipals(\n query: GatewayScope & {\n status?: string;\n principalType?: string;\n query?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/principals${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(data) ? data : [],\n \"principals\"\n )\n )\n );\n },\n\n /**\n * Create a principal.\n */\n async createPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"POST\", input, idempotencyKey);\n },\n\n /**\n * Update a principal.\n */\n async updatePrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createPrincipal or updatePrincipal.\n */\n async upsertPrincipal(\n input: GatewayScope & {\n principalId: string;\n principalType: \"user\" | \"group\" | \"service\" | \"external_viewer\";\n clerkId?: string;\n email?: string;\n displayName?: string;\n status?: \"active\" | \"invited\" | \"suspended\" | \"disabled\" | \"revoked\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return requestPrincipalWrite(\"PATCH\", input, idempotencyKey);\n },\n\n /**\n * List keys in the current identity scope.\n */\n async listKeys(\n query: GatewayScope & {\n principalId?: string;\n status?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"keys\")\n )\n );\n },\n\n /**\n * Create an API key.\n */\n async createKey(\n input: GatewayScope & {\n principalId: string;\n keyId?: string;\n token?: string;\n scopes?: string[];\n environment?: \"sandbox\" | \"production\";\n expiresInDays?: number;\n rateLimitTier?: \"free\" | \"developer\" | \"partner\";\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/identity/keys\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Rotate an API key.\n */\n async rotateKey(\n keyId: string,\n input: {\n replacementKeyId?: string;\n replacementToken?: string;\n replacementExpiresInDays?: number;\n gracePeriodHours?: number;\n } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/rotate`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete an API key by revoking it.\n */\n async deleteKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/identity/keys/${encodeURIComponent(keyId)}/revoke`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use deleteKey.\n */\n async revokeKey(\n keyId: string,\n input: { reason?: string } = {},\n idempotencyKey?: string\n ) {\n return this.deleteKey(keyId, input, idempotencyKey);\n },\n\n /**\n * Search Clerk users by email or display attributes.\n */\n async searchClerkUsers(q: string) {\n return gateway.request<ClerkUserSearchResult[]>({\n path: `/api/platform/v1/identity/clerk-users${toQueryString({ q })}`,\n });\n },\n\n async getTenantConfig(input: TenantIdentityScope) {\n return gateway.request<TenantIdentityConfigRecord>({\n path: `/api/platform/v1/identity/tenant-config${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n });\n },\n\n async updateTenantConfig(\n input: UpdateTenantConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<TenantIdentityConfigRecord>({\n path: \"/api/platform/v1/identity/tenant-config\",\n method: \"PATCH\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.updateTenantConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listIntegrations(input: TenantIdentityScope) {\n return gateway.request<TenantIntegrationsResponse>({\n path: `/api/platform/v1/identity/integrations${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantIntegrationRecord, \"integrations\">(\n data,\n \"integrations\"\n )\n )\n );\n },\n\n async upsertIntegration(\n input: UpsertTenantIntegrationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.integrationKey, \"integrationKey\");\n return gateway.request<TenantIntegrationRecord>({\n path: \"/api/platform/v1/identity/integrations\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.upsertIntegration\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async listSecrets(input: TenantIdentityScope) {\n return gateway.request<TenantSecretsResponse>({\n path: `/api/platform/v1/identity/secrets${toQueryString(\n tenantIdentityQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TenantSecretReference, \"secrets\">(\n data,\n \"secrets\"\n )\n )\n );\n },\n\n async putSecretReference(\n input: PutTenantSecretReferenceInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.secretRef, \"secretRef\");\n return gateway.request<TenantSecretReference>({\n path: \"/api/platform/v1/identity/secrets\",\n method: \"PUT\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.putSecretReference\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async evaluatePolicy(\n input: PolicyEvaluationInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.policySubject, \"policySubject\");\n cleanRequiredString(input.policyAction, \"policyAction\");\n cleanRequiredString(input.policyResource, \"policyResource\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/evaluate\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.evaluatePolicy\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async recordPolicyDecision(\n input: RecordPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<PolicyDecisionRecord>({\n path: \"/api/platform/v1/identity/policy/decisions\",\n method: \"POST\",\n body: tenantIdentityBody(\n input as unknown as Record<string, unknown>,\n \"identity.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n JsonObject,\n TopicCoverageResponse,\n TopicIdentifierInput,\n TopicListResponse,\n TopicRecord,\n TopicTreeNode,\n TopicTreeResponse,\n} from \"./types\";\n\n/** Configuration for the topics client. Inherits gateway transport settings. */\nexport type TopicsClientConfig = GatewayClientConfig;\n\n/** Filters for listing topics within a scope. */\nexport type TopicListInput = TopicIdentifierInput & {\n ontologyId?: string;\n parentTopicId?: string;\n status?: string;\n type?: string;\n};\n\n/** Input for creating a new topic. Name is required; all other fields are optional. */\nexport type TopicCreateInput = TopicIdentifierInput & {\n name: string;\n description?: string;\n type?: string;\n parentTopicId?: string;\n ontologyId?: string;\n tenantId?: string;\n workspaceId?: string;\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n createdBy?: string;\n metadata?: JsonObject;\n};\n\n/** Input for updating an existing topic's metadata. All fields are optional. */\nexport type TopicUpdateInput = TopicIdentifierInput & {\n name?: string;\n description?: string;\n type?: string;\n ontologyId?: string;\n clearOntologyId?: boolean;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n};\n\n/** Options for retrieving the topic hierarchy. */\nexport type TopicTreeQuery = {\n maxDepth?: number;\n};\n\n/** Options for retrieving belief/question/evidence coverage across a topic tree. */\nexport type TopicCoverageQuery = {\n includeDescendants?: boolean;\n maxDepth?: number;\n};\n\n/** Input for batch-creating topics. */\nexport type TopicBulkCreateInput = {\n topics: Array<\n TopicIdentifierInput & {\n globalId?: string;\n name: string;\n description?: string;\n type: string;\n parentTopicId?: string;\n depth?: number;\n path?: string[];\n tenantId?: string;\n workspaceId?: string;\n graphScopeProjectId?: string;\n status?: \"active\" | \"archived\" | \"watching\";\n visibility?: \"private\" | \"team\" | \"firm\" | \"external\" | \"public\";\n metadata?: JsonObject;\n createdBy?: string;\n }\n >;\n};\n\nfunction asRecord(value: unknown): Record<string, unknown> {\n return value && typeof value === \"object\"\n ? (value as Record<string, unknown>)\n : {};\n}\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction normalizeTopicRecord(value: unknown): TopicRecord {\n const record = asRecord(value);\n const topicId =\n cleanString(record.topicId) ??\n cleanString(record.id) ??\n cleanString(record._id);\n\n return withTopicAlias({\n ...record,\n ...(topicId ? { topicId } : {}),\n }) as TopicRecord;\n}\n\nfunction normalizeTopicTreeNode(value: unknown): TopicTreeNode {\n return normalizeTopicRecord(value) as TopicTreeNode;\n}\n\n/**\n * Create the topics client for managing hierarchical knowledge containers.\n *\n * @param config - Gateway transport configuration.\n * @returns An object with `list`, `get`, `create`, `update`, `getTree`, and `getCoverage` methods.\n */\nexport function createTopicsClient(config: TopicsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(query: TopicListInput = {}) {\n const topicId = resolveTopicId(query);\n return gateway.request<TopicListResponse>({\n path: `/api/platform/v1/topics${toQueryString({\n ...(topicId ? { topicId } : {}),\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status,\n type: query.type,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n const items = Array.isArray(record.topics)\n ? record.topics.map(normalizeTopicRecord)\n : [];\n\n return {\n ...createListResult(items, \"topics\"),\n ...record,\n topics: items,\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as TopicListResponse;\n })\n );\n },\n\n async get(topicId: string) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n normalizeTopicRecord(asRecord(data).topic ?? data)\n )\n );\n },\n\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n const topicId = resolveTopicId(input);\n return gateway.request<TopicRecord>({\n path: \"/api/platform/v1/topics\",\n method: \"POST\",\n body: {\n ...input,\n ...(topicId ? { topicId } : {}),\n type: input.type ?? \"theme\",\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async update(\n topicId: string,\n input: TopicUpdateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<TopicRecord>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) => normalizeTopicRecord(data))\n );\n },\n\n async getTree(topicId: string, query: TopicTreeQuery = {}) {\n return gateway.request<TopicTreeResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/tree${toQueryString(\n query\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record = asRecord(data);\n return {\n tree: Array.isArray(record.tree)\n ? record.tree.map(normalizeTopicTreeNode)\n : [],\n } as TopicTreeResponse;\n })\n );\n },\n\n async getCoverage(topicId: string, query: TopicCoverageQuery = {}) {\n return gateway.request<TopicCoverageResponse>({\n path: `/api/platform/v1/topics/${encodeURIComponent(topicId)}/coverage${toQueryString(\n query\n )}`,\n });\n },\n\n async remove(topicId: string, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/remove\",\n method: \"POST\",\n body: { id: topicId },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async bulkCreate(input: TopicBulkCreateInput, idempotencyKey?: string) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/topics/bulk\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n randomIdempotencyKey,\n toQueryString,\n type GatewayClientConfig,\n type PlatformGatewaySuccess,\n} from \"./coreClient\";\nimport type { ModulateConfidenceInput } from \"./beliefsClient\";\nimport {\n createOntologyClient,\n type OntologyBindingInput,\n} from \"./ontologyClient\";\nimport { createGraphClient } from \"./graphClient\";\nimport { createIdentityClient } from \"./identityClient\";\nimport {\n createTopicsClient,\n type TopicBulkCreateInput,\n type TopicCreateInput,\n type TopicCoverageQuery,\n type TopicListInput,\n type TopicTreeQuery,\n type TopicUpdateInput,\n} from \"./topicsClient\";\nimport type { GraphAnalyticsMetric, JsonObject } from \"./types\";\n\ntype GatewayRecord = Record<string, unknown>;\ntype GatewayList = GatewayRecord & { cursor?: string; total?: number };\n\ntype BeliefRecord = GatewayRecord & {\n id?: string;\n beliefId?: string;\n nodeId?: string;\n};\n\ntype BeliefsListResult = GatewayList & {\n beliefs?: BeliefRecord[];\n};\n\ntype BeliefsLineageResult = GatewayRecord & {\n beliefId?: string;\n lineage?: GatewayRecord[];\n};\n\ntype SearchResult = GatewayList & {\n beliefs?: GatewayRecord[];\n results?: GatewayRecord[];\n};\n\ntype GraphNeighborhoodInput = {\n globalId?: string;\n globalIds?: string | string[];\n maxDepth?: number;\n};\n\ntype GraphTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype GraphAnalyzeInput = {\n topicId?: string;\n metric?: GraphAnalyticsMetric;\n limit?: number;\n};\n\ntype GraphBiasInput = {\n topicId?: string;\n threshold?: number;\n limit?: number;\n};\n\ntype GraphGapsInput = {\n topicId?: string;\n minConfidence?: number;\n};\n\ntype GraphFalsifyInput = {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n};\n\ntype EventsListResult = GatewayList & {\n events?: GatewayRecord[];\n};\n\ntype WebhooksListResult = GatewayList & {\n webhooks?: GatewayRecord[];\n};\n\ntype QuestionsListResult = GatewayList & {\n questions?: Array<GatewayRecord & { priority?: string }>;\n};\n\ntype ContradictionsListResult = GatewayList & {\n contradictions?: GatewayRecord[];\n};\n\ntype WorktreesListResult = GatewayList & {\n worktrees?: GatewayRecord[];\n};\n\ntype TaskListResult = GatewayList & {\n tasks?: GatewayRecord[];\n};\n\ntype EvidenceCreateResult = GatewayRecord & {\n id?: string;\n};\n\ntype EvidenceLinkResult = GatewayRecord & {\n edgeId?: string;\n};\n\ntype BeliefCreateInput = {\n topicId?: string;\n text: string;\n baseRate?: number;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsListQuery = {\n topicId?: string;\n status?: string;\n worktreeId?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype BeliefRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype BeliefForkInput = {\n text: string;\n forkReason?: string;\n rationale?: string;\n};\n\ntype BeliefConfidenceInput = ModulateConfidenceInput;\n\ntype BeliefArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\nfunction normalizeBeliefConfidenceInput(\n input: BeliefConfidenceInput\n): JsonObject {\n const opinion = input.opinion;\n\n return {\n belief: opinion.b,\n disbelief: opinion.d,\n uncertainty: opinion.u,\n baseRate: opinion.a,\n trigger: input.trigger,\n rationale: input.rationale,\n triggeringEvidenceId: input.triggeringEvidenceId,\n triggeringQuestionId: input.triggeringQuestionId,\n triggeringAnswerId: input.triggeringAnswerId,\n triggeringContradictionId: input.triggeringContradictionId,\n triggeringWorktreeId: input.triggeringWorktreeId,\n maxInlinePropagationTargets: input.maxInlinePropagationTargets,\n };\n}\n\ntype BeliefContractInput = GatewayRecord;\n\ntype BeliefBisectInput = {\n expectedDirection: \"overconfident\" | \"underconfident\";\n timeRange?: {\n start: number;\n end: number;\n };\n};\n\ntype EdgeCreateInput = {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n};\n\ntype EdgeListQuery = {\n sourceId?: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EdgeTraverseInput = {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n};\n\ntype EvidenceCreateInput = {\n topicId?: string;\n text: string;\n source?: string;\n targetId?: string;\n weight?: number;\n rationale: string;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n};\n\ntype EvidenceListQuery = {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceSearchInput = {\n q: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype EvidenceLinkInput = {\n evidenceId: string;\n targetId: string;\n targetType?: \"belief\" | \"question\";\n weight?: number;\n rationale?: string;\n};\n\ntype QuestionsListQuery = {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n};\n\ntype QuestionCreateInput = {\n topicId?: string;\n text: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n};\n\ntype QuestionAnswerInput = {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n};\n\ntype QuestionRefineInput = {\n text: string;\n rationale?: string;\n};\n\ntype QuestionArchiveInput = {\n reason?: string;\n rationale?: string;\n};\n\ntype QuestionStatusInput = {\n status: string;\n rationale?: string;\n};\n\ntype SearchQueryInput = {\n q?: string;\n query?: string;\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\ntype TaskCreateInput = {\n topicId?: string;\n title: string;\n description?: string;\n taskType?: string;\n priority?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n};\n\ntype TaskUpdateInput = {\n id: string;\n title?: string;\n description?: string;\n priority?: string;\n status?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n metadata?: JsonObject;\n};\n\ntype TaskCompleteInput = {\n id: string;\n outputSummary: string;\n};\n\ntype TaskListQuery = {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n limit?: number;\n};\n\ntype WorktreeCreateInput = {\n title: string;\n topicId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\ntype WorktreeListQuery = {\n topicId?: string;\n status?: string;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n};\n\ntype WorktreeActivateInput = {\n id: string;\n};\n\ntype WorktreeUpdateInput = {\n id: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n status?: string;\n topicId?: string;\n additionalTopicIds?: string[];\n proofArtifacts?: unknown[];\n staffingHint?: string;\n lastReconciledAt?: number;\n autoFixPolicy?: unknown;\n lensId?: string;\n};\n\ntype WorktreeMergeInput = {\n id: string;\n summary?: string;\n outcomes: Array<\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n }\n >;\n};\n\ntype WorktreeTargetsInput = {\n id: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\ntype OntologyListInput = {\n tenantId?: string;\n tier?: string;\n status?: string;\n};\n\ntype OntologyMatchInput = GatewayRecord;\n\ntype WebhookCreateInput = GatewayRecord;\ntype WebhookUpdateInput = GatewayRecord;\ntype WebhookListQuery = {\n topicId?: string;\n};\ntype WebhookTestInput = {\n topicId?: string;\n};\ntype WebhookDeliveriesQuery = {\n limit?: number;\n};\n\ntype EventsListQuery = {\n topicId?: string;\n after?: string;\n types?: string[];\n startTime?: number;\n endTime?: number;\n limit?: number;\n};\n\ntype ReplayEventsInput = GatewayRecord;\n\nfunction serializeTypes(types: string[] | undefined) {\n return Array.isArray(types) && types.length > 0 ? types.join(\",\") : undefined;\n}\n\nexport function createBeliefsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: BeliefCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: \"/api/platform/v1/beliefs\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: BeliefsListQuery\n ): Promise<PlatformGatewaySuccess<BeliefsListResult>> {\n return gateway.request<BeliefsListResult>({\n path: `/api/platform/v1/beliefs${toQueryString({\n topicId: query.topicId,\n status: query.status,\n worktreeId: query.worktreeId,\n minConfidence: query.minConfidence,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async refine(\n id: string,\n input: BeliefRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async fork(\n id: string,\n input: BeliefForkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<BeliefRecord>> {\n return gateway.request<BeliefRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/fork`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConfidence(\n id: string,\n input: BeliefConfidenceInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence`,\n method: \"POST\",\n body: normalizeBeliefConfidenceInput(input),\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n status: \"active\" | \"superseded\" | \"archived\";\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateRationale(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n rationale?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-rationale\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async linkBeliefs(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType: string;\n weight?: number;\n context?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/link\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async unlinkEvidence(\n input: {\n beliefNodeId?: string;\n beliefId?: string;\n insightId?: string;\n evidenceId?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/unlink-evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateCriticality(\n input: {\n id?: string;\n nodeId?: string;\n beliefId?: string;\n criticality: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchUpdateCriticality(\n input: {\n updates: GatewayRecord[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/batch-update-criticality\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async reassignTopic(\n input: {\n beliefNodeIds?: string[];\n beliefIds?: string[];\n targetTopicId: string;\n reason?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/beliefs/reassign-topic\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: BeliefArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async lineage(\n id: string\n ): Promise<PlatformGatewaySuccess<BeliefsLineageResult>> {\n return gateway.request<BeliefsLineageResult>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/lineage`,\n });\n },\n\n async confidenceHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async opinionHistory(\n id: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/confidence-history`,\n });\n },\n\n async createContract(\n id: string,\n input: BeliefContractInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/contracts`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bisect(\n id: string,\n input: BeliefBisectInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/beliefs/${encodeURIComponent(id)}/bisect`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createContradictionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async flag(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/contradictions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }\n ): Promise<PlatformGatewaySuccess<ContradictionsListResult>> {\n return gateway.request<ContradictionsListResult>({\n path: `/api/platform/v1/contradictions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/contradictions/${encodeURIComponent(id)}`,\n });\n },\n };\n}\n\nexport function createEdgesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EdgeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: EdgeListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/edges${toQueryString({\n sourceId: query.sourceId,\n edgeType: query.edgeType,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async traverse(\n input: EdgeTraverseInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/traverse\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: {\n edgeId: string;\n weight?: number;\n confidence?: number;\n context?: string;\n derivationType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: { edgeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async removeBetween(\n input: {\n fromNodeId: string;\n toNodeId: string;\n edgeType?: string;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/remove-between\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: {\n edges: GatewayRecord[];\n skipLayerValidation?: boolean;\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: { edgeIds: string[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/edges/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEvidenceFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: EvidenceCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceCreateResult>> {\n return gateway.request<EvidenceCreateResult>({\n path: \"/api/platform/v1/evidence\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: EvidenceListQuery\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: `/api/platform/v1/evidence${toQueryString({\n topicId: query.topicId,\n targetId: query.targetId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async link(\n input: EvidenceLinkInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<EvidenceLinkResult>> {\n return gateway.request<EvidenceLinkResult>({\n path: `/api/platform/v1/evidence/${encodeURIComponent(input.evidenceId)}/link`,\n method: \"POST\",\n body: {\n targetId: input.targetId,\n targetType: input.targetType,\n weight: input.weight,\n rationale: input.rationale,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async search(\n query: EvidenceSearchInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayList>> {\n return gateway.request<GatewayList>({\n path: \"/api/platform/v1/evidence/search\",\n method: \"POST\",\n body: query as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async flagIncorrect(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/flag-incorrect\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async remove(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/remove\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateVerificationStatus(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/evidence/update-verification-status\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createEventsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async list(\n query: EventsListQuery = {}\n ): Promise<PlatformGatewaySuccess<EventsListResult>> {\n return gateway.request<EventsListResult>({\n path: `/api/platform/v1/events${toQueryString({\n topicId: query.topicId,\n after: query.after,\n types: serializeTypes(query.types),\n startTime: query.startTime,\n endTime: query.endTime,\n limit: query.limit,\n })}`,\n });\n },\n\n async replay(\n input: ReplayEventsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/events/replay\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createGraphFacade(config: GatewayClientConfig = {}) {\n const graphClient = createGraphClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async neighborhood(input: GraphNeighborhoodInput) {\n return graphClient.neighborhood({\n globalId: input.globalId,\n globalIds: Array.isArray(input.globalIds)\n ? input.globalIds.join(\",\")\n : input.globalIds,\n maxDepth: input.maxDepth,\n });\n },\n\n async traverse(input: GraphTraverseInput) {\n return graphClient.traverse(input);\n },\n\n async analyze(input: GraphAnalyzeInput = {}) {\n return graphClient.analyze(input);\n },\n\n async bias(input: GraphBiasInput = {}) {\n return graphClient.bias(input);\n },\n\n async gaps(input: GraphGapsInput) {\n return graphClient.gaps(input);\n },\n\n async falsify(\n input: GraphFalsifyInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/graph/falsify\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createIdentityFacade(config: GatewayClientConfig = {}) {\n const identityClient = createIdentityClient(config);\n\n return {\n async whoami() {\n const response = await identityClient.whoami();\n return Object.assign({}, response, response.data);\n },\n };\n}\n\nexport function createOntologiesFacade(config: GatewayClientConfig = {}) {\n const ontologyClient = createOntologyClient(config);\n const gateway = createGatewayRequestClient(config);\n\n return {\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(id)}`,\n });\n },\n\n async list(query: OntologyListInput = {}) {\n return ontologyClient.list(query);\n },\n\n async bind(\n input: OntologyBindingInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/ontologies/${encodeURIComponent(input.ontologyId)}/bind`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n } as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n async match(\n input: OntologyMatchInput,\n idempotencyKey?: string\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/ontologies/match\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createQuestionsFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: QuestionCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n });\n },\n\n async list(\n query: QuestionsListQuery\n ): Promise<PlatformGatewaySuccess<QuestionsListResult>> {\n return gateway.request<QuestionsListResult>({\n path: `/api/platform/v1/questions${toQueryString({\n topicId: query.topicId,\n status: query.status,\n priority: query.priority,\n worktreeId: query.worktreeId,\n limit: query.limit,\n cursor: query.cursor,\n })}`,\n });\n },\n\n async answer(\n id: string,\n input: QuestionAnswerInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/answer`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async refine(\n id: string,\n input: QuestionRefineInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/refine`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async archive(\n id: string,\n input: QuestionArchiveInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateStatus(\n id: string,\n input: QuestionStatusInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/questions/${encodeURIComponent(id)}/status`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async batchCreate(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/batch\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async add(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/add\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updatePriority(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-priority\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advanceToConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/advance-to-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async finalizeConviction(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/finalize-conviction\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/update\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n input: GatewayRecord,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/questions/delete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n\nexport function createSearchFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async query(\n input: SearchQueryInput\n ): Promise<PlatformGatewaySuccess<SearchResult>> {\n return gateway.request<SearchResult>({\n path: \"/api/platform/v1/search\",\n method: \"POST\",\n body: input as JsonObject,\n });\n },\n };\n}\n\nexport function createTasksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: TaskCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/tasks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: TaskUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n metadata: input.metadata,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: TaskCompleteInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(input.id)}/complete`,\n method: \"POST\",\n body: {\n outputSummary: input.outputSummary,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: TaskListQuery\n ): Promise<PlatformGatewaySuccess<TaskListResult>> {\n return gateway.request<TaskListResult>({\n path: `/api/platform/v1/tasks${toQueryString({\n topicId: query.topicId,\n worktreeId: query.worktreeId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n };\n}\n\nexport function createTopicsFacade(config: GatewayClientConfig = {}) {\n const topicsClient = createTopicsClient(config);\n\n return {\n async create(input: TopicCreateInput, idempotencyKey?: string) {\n return topicsClient.create(input, idempotencyKey);\n },\n\n async get(id: string) {\n return topicsClient.get(id);\n },\n\n async list(query: TopicListInput = {}) {\n return topicsClient.list(query);\n },\n\n async update(\n input: TopicUpdateInput & { id: string },\n idempotencyKey?: string\n ) {\n const { id, ...rest } = input;\n return topicsClient.update(id, rest, idempotencyKey);\n },\n\n async tree(input: TopicTreeQuery & { id: string }) {\n return topicsClient.getTree(input.id, {\n maxDepth: input.maxDepth,\n });\n },\n\n async coverage(input: TopicCoverageQuery & { id: string }) {\n return topicsClient.getCoverage(input.id, {\n includeDescendants: input.includeDescendants,\n maxDepth: input.maxDepth,\n });\n },\n\n async remove(id: string, idempotencyKey = randomIdempotencyKey()) {\n return topicsClient.remove(id, idempotencyKey);\n },\n\n async bulkCreate(\n input: TopicBulkCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ) {\n return topicsClient.bulkCreate(input, idempotencyKey);\n },\n };\n}\n\nexport function createWebhooksFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WebhookCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/webhooks\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WebhookListQuery = {}\n ): Promise<PlatformGatewaySuccess<WebhooksListResult>> {\n return gateway.request<WebhooksListResult>({\n path: `/api/platform/v1/webhooks${toQueryString({\n topicId: query.topicId,\n })}`,\n });\n },\n\n async get(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n });\n },\n\n async update(\n id: string,\n input: WebhookUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async delete(\n id: string,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}`,\n method: \"DELETE\",\n idempotencyKey,\n });\n },\n\n async test(\n id: string,\n input: WebhookTestInput = {},\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/test`,\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async deliveries(\n id: string,\n query: WebhookDeliveriesQuery = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/deliveries${toQueryString({\n limit: query.limit,\n })}`,\n });\n },\n\n async health(id: string): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/webhooks/${encodeURIComponent(id)}/health`,\n });\n },\n };\n}\n\nexport function createWorktreesFacade(config: GatewayClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n async create(\n input: WorktreeCreateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async list(\n query: WorktreeListQuery\n ): Promise<PlatformGatewaySuccess<WorktreesListResult>> {\n return gateway.request<WorktreesListResult>({\n path: `/api/platform/v1/worktrees${toQueryString({\n topicId: query.topicId,\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n });\n },\n\n async listCampaigns(\n query: {\n topicId?: string;\n status?: string;\n limit?: number;\n } = {}\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString({\n topicId: query.topicId,\n status: query.status,\n limit: query.limit,\n })}`,\n });\n },\n\n async activate(\n input: WorktreeActivateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/activate`,\n method: \"POST\",\n body: {} as JsonObject,\n idempotencyKey,\n });\n },\n\n async update(\n input: WorktreeUpdateInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}`,\n method: \"PATCH\",\n body: {\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n status: input.status,\n topicId: input.topicId,\n additionalTopicIds: input.additionalTopicIds,\n proofArtifacts: input.proofArtifacts,\n staffingHint: input.staffingHint,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async merge(\n input: WorktreeMergeInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/merge`,\n method: \"POST\",\n body: {\n summary: input.summary,\n outcomes: input.outcomes,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async updateTargets(\n input: WorktreeTargetsInput,\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(input.id)}/targets`,\n method: \"POST\",\n body: {\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n } as JsonObject,\n idempotencyKey,\n });\n },\n\n async complete(\n input: {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async advancePhase(\n input: { worktreeId: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async setPhase(\n input: { worktreeId: string; phase: string },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async patchState(\n input: { worktreeId: string; patch: GatewayRecord },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n\n async bulkCreate(\n input: { worktrees: unknown[] },\n idempotencyKey = randomIdempotencyKey()\n ): Promise<PlatformGatewaySuccess<GatewayRecord>> {\n return gateway.request<GatewayRecord>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as JsonObject,\n idempotencyKey,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n createListResult,\n mapGatewayData,\n normalizeTopicQuery,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentRecord,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n PendingJudgmentOutcomeRecord,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n TopicIdentifierInput,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n GetJudgmentResponse,\n JudgmentCalibrationResponse,\n JudgmentReadinessResponse,\n JudgmentTransitionAuditIntegrityResponse,\n ListJudgmentsResponse,\n PendingJudgmentOutcomeReviewResponse,\n RecordJudgmentOutcomeResponse,\n RecordJudgmentResponse,\n} from \"./types\";\n\n/** Configuration for the decisions client. */\nexport type DecisionsClientConfig = GatewayClientConfig;\n\n/** Input for recording a new judgment (irreversible decision commitment). */\nexport type RecordJudgmentInput = {\n title: string;\n summary?: string;\n rationale: string;\n topicId?: string;\n confidence?: number;\n decisionConfidence?: number;\n judgmentType?: string;\n decisionType?: string;\n beliefIds?: string[];\n keyUncertainties?: string[];\n alternativesConsidered?: string[];\n decisionMakers?: string[];\n companyId?: string;\n amount?: number;\n valuation?: number;\n terms?: string;\n themeIds?: string[];\n} & TopicIdentifierInput;\n\n/** Filter parameters for listing judgments within a topic scope. */\nexport type ListJudgmentsInput = {\n topicId?: string;\n includeArchived?: boolean;\n limit?: number;\n} & TopicIdentifierInput;\n\n/** Input for recording the real-world outcome of a judgment. */\nexport type RecordJudgmentOutcomeInput = {\n outcome:\n | \"pending\"\n | \"successful\"\n | \"unsuccessful\"\n | \"mixed\"\n | \"unknown\"\n | \"too_early\";\n outcomeNotes?: string;\n notes?: string;\n};\n\n/** Input for retrieving judgment calibration analytics. */\nexport type GetJudgmentCalibrationInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for listing judgments still awaiting outcome review. */\nexport type ListPendingJudgmentOutcomeReviewInput = {\n topicId?: string;\n} & TopicIdentifierInput;\n\n/** Input for checking audit integrity of judgment state transitions. */\nexport type GetJudgmentTransitionAuditIntegrityInput = {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n} & TopicIdentifierInput;\n\n/**\n * Create the judgments client for decision lifecycle operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage judgments, outcomes, readiness, and calibration.\n */\nexport function createDecisionsClient(config: DecisionsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List judgments for a topic scope.\n */\n async listJudgments(query: ListJudgmentsInput) {\n return gateway.request<ListJudgmentsResponse>({\n path: `/api/platform/v1/graph/judgments${toQueryString({\n ...normalizeTopicQuery(query),\n includeArchived:\n typeof query.includeArchived === \"boolean\"\n ? query.includeArchived\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const judgments = rows.map((row) =>\n withTopicAlias(row as Record<string, unknown>) as JudgmentRecord\n );\n return {\n ...createListResult(judgments, \"judgments\"),\n } as ListJudgmentsResponse;\n })\n );\n },\n\n /**\n * Get a single judgment by identifier.\n */\n async getJudgment(judgmentId: string) {\n return gateway.request<GetJudgmentResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n data && typeof data === \"object\"\n ? (withTopicAlias(\n data as Record<string, unknown>\n ) as GetJudgmentResponse)\n : data\n )\n );\n },\n\n /**\n * Get readiness signals for creating a judgment.\n */\n async getJudgmentReadiness(query: {\n topicId?: string;\n } & TopicIdentifierInput) {\n return gateway.request<JudgmentReadinessResponse>({\n path: `/api/platform/v1/graph/judgments/readiness${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Get calibration analytics for judgment outcomes.\n */\n async getJudgmentCalibration(query: GetJudgmentCalibrationInput) {\n return gateway.request<JudgmentCalibrationResponse>({\n path: `/api/platform/v1/graph/judgments/calibration${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * List judgments still awaiting outcome review.\n */\n async listPendingOutcomeReviews(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return gateway.request<PendingJudgmentOutcomeReviewResponse>({\n path: `/api/platform/v1/graph/judgments/pending-outcome-review${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const rows = Array.isArray(data) ? data : [];\n const reviews = rows.map((row) =>\n withTopicAlias(\n row as Record<string, unknown>\n ) as PendingJudgmentOutcomeRecord\n );\n return createListResult(reviews, \"reviews\");\n })\n );\n },\n\n /**\n * @deprecated Use listPendingOutcomeReviews.\n */\n async listPendingJudgmentOutcomeReview(\n query: ListPendingJudgmentOutcomeReviewInput\n ) {\n return this.listPendingOutcomeReviews(query);\n },\n\n /**\n * Get audit integrity checks for judgment transitions.\n */\n async getJudgmentTransitionAuditIntegrity(\n query: GetJudgmentTransitionAuditIntegrityInput\n ) {\n return gateway.request<JudgmentTransitionAuditIntegrityResponse>({\n path: `/api/platform/v1/graph/judgments/transition-audit-integrity${toQueryString(\n {\n ...normalizeTopicQuery(query),\n judgmentId: query.judgmentId,\n includePassing:\n typeof query.includePassing === \"boolean\"\n ? query.includePassing\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n });\n },\n\n /**\n * Create a judgment.\n */\n async createJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return gateway.request<RecordJudgmentResponse>({\n path: \"/api/platform/v1/graph/judgments\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as RecordJudgmentResponse\n )\n );\n },\n\n /**\n * @deprecated Use createJudgment.\n */\n async recordJudgment(input: RecordJudgmentInput, idempotencyKey?: string) {\n return this.createJudgment(input, idempotencyKey);\n },\n\n /**\n * Update the outcome for an existing judgment.\n */\n async updateJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<RecordJudgmentOutcomeResponse>({\n path: `/api/platform/v1/graph/judgments/${encodeURIComponent(judgmentId)}/outcome`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use updateJudgmentOutcome.\n */\n async recordJudgmentOutcome(\n judgmentId: string,\n input: RecordJudgmentOutcomeInput,\n idempotencyKey?: string\n ) {\n return this.updateJudgmentOutcome(judgmentId, input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type EmbeddingsClientConfig = GatewayClientConfig;\n\nexport const EMBEDDINGS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeIds\",\n \"nodeType\",\n \"embeddingModel\",\n \"queryText\",\n \"queryVector\",\n \"minScore\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type EmbeddingProvenance = {\n sourceNodeId?: string;\n sourceGlobalId?: string;\n embeddingModel?: string;\n embeddedAt?: number;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type EmbeddingRecord = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n vectorDimensions?: number;\n hasEmbedding?: boolean;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type MissingEmbeddingCandidate = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n embeddingModel?: string;\n reason?: string;\n contentHash?: string;\n metadata?: JsonObject | null;\n};\n\nexport type VectorSearchMatch = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n nodeType?: string;\n score: number;\n text?: string;\n title?: string;\n embeddingModel?: string;\n provenance?: EmbeddingProvenance;\n metadata?: JsonObject | null;\n};\n\nexport type GetEmbeddingsByNodeIdsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListMissingEmbeddingsInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeType?: string;\n embeddingModel?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type VectorSearchByTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n queryText?: string;\n queryVector?: number[];\n nodeType?: string;\n embeddingModel?: string;\n minScore?: number;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type MarkEmbeddingBackfillQueuedInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeIds: string[];\n nodeType?: string;\n embeddingModel?: string;\n metadata?: JsonObject;\n};\n\nexport type EmbeddingsLookupResponse = ListResult<EmbeddingRecord, \"embeddings\">;\nexport type MissingEmbeddingsResponse = ListResult<\n MissingEmbeddingCandidate,\n \"nodes\"\n>;\nexport type VectorSearchResponse = ListResult<VectorSearchMatch, \"results\">;\n\nfunction assertNodeIds(nodeIds: string[]) {\n if (!Array.isArray(nodeIds) || nodeIds.length === 0) {\n throw new Error(\"nodeIds is required\");\n }\n}\n\nfunction missingQuery(input: ListMissingEmbeddingsInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n nodeType: input.nodeType,\n embeddingModel: input.embeddingModel,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createEmbeddingsClient(config: EmbeddingsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n getByNodeIds(input: GetEmbeddingsByNodeIdsInput) {\n assertNodeIds(input.nodeIds);\n return gateway.request<EmbeddingsLookupResponse>({\n path: \"/api/platform/v1/embeddings/by-node-ids\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.getByNodeIds\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<EmbeddingRecord, \"embeddings\">(\n data,\n \"embeddings\"\n )\n )\n );\n },\n\n listMissingForTopic(input: ListMissingEmbeddingsInput) {\n return gateway.request<MissingEmbeddingsResponse>({\n path: `/api/platform/v1/embeddings/missing${toQueryString(\n missingQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<MissingEmbeddingCandidate, \"nodes\">(\n data,\n \"nodes\"\n )\n )\n );\n },\n\n vectorSearchByTopic(input: VectorSearchByTopicInput) {\n if (!input.queryText && !input.queryVector) {\n throw new Error(\"queryText or queryVector is required\");\n }\n return gateway.request<VectorSearchResponse>({\n path: \"/api/platform/v1/embeddings/vector-search\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.vectorSearchByTopic\"\n ),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<VectorSearchMatch, \"results\">(data, \"results\")\n )\n );\n },\n\n markEmbeddingBackfillQueued(\n input: MarkEmbeddingBackfillQueuedInput,\n idempotencyKey?: string\n ) {\n assertNodeIds(input.nodeIds);\n return gateway.request<{\n queued: number;\n topicId: string;\n workspaceId: string;\n nodeIds: string[];\n }>({\n path: \"/api/platform/v1/embeddings/backfill-queued\",\n method: \"POST\",\n body: topicPayload(\n {\n ...input,\n workspaceId: cleanRequiredString(input.workspaceId, \"workspaceId\"),\n },\n EMBEDDINGS_FIELDS,\n \"embeddings.markEmbeddingBackfillQueued\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n} from \"./coreClient\";\nimport type {\n CompileContextInput,\n PublicCompiledContext,\n} from \"./contextTypes\";\nimport type { JsonObject } from \"./types\";\n\n/** Configuration for the context client. */\nexport type ContextClientConfig = GatewayClientConfig;\n\n/** Alias for the compiled context payload returned by the gateway. */\nexport type CompileContextResponse = PublicCompiledContext;\n\n/** Internal request shape for the context compile endpoint. */\ntype ContextClientRequest = {\n path: \"/api/platform/v1/context/compile\";\n method: \"POST\";\n body: Record<string, unknown>;\n};\n\nfunction cleanString(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim().length > 0\n ? value.trim()\n : undefined;\n}\n\nfunction cleanNumber(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction cleanBoolean(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nfunction buildCompileContextRequest(\n topicId: string,\n input: CompileContextInput = {}\n): ContextClientRequest {\n const payload: Record<string, unknown> = { topicId };\n\n const query = cleanString(input.query);\n if (query) {\n payload.query = query;\n }\n\n const budget = cleanNumber(input.budget) ?? cleanNumber(input.tokenBudget);\n if (budget !== undefined) {\n payload.budget = budget;\n }\n\n const ranking = cleanString(input.ranking) ?? cleanString(input.rankingProfile);\n if (ranking) {\n payload.ranking = ranking;\n }\n\n const limit = cleanNumber(input.limit);\n if (limit !== undefined) {\n payload.limit = limit;\n }\n\n const maxDepth = cleanNumber(input.maxDepth);\n if (maxDepth !== undefined) {\n payload.maxDepth = maxDepth;\n }\n\n const includeEntities = cleanBoolean(input.includeEntities);\n if (includeEntities !== undefined) {\n payload.includeEntities = includeEntities;\n }\n\n const mode = cleanString(input.mode);\n if (mode) {\n payload.mode = mode;\n }\n\n const includeFailures = cleanBoolean(input.includeFailures);\n if (includeFailures !== undefined) {\n payload.includeFailures = includeFailures;\n }\n\n const worktreeId = cleanString(input.worktreeId);\n if (worktreeId) {\n payload.worktreeId = worktreeId;\n }\n\n const sessionId = cleanString(input.sessionId);\n if (sessionId) {\n payload.sessionId = sessionId;\n }\n\n if (Array.isArray(input.packWeightOverrides) && input.packWeightOverrides.length > 0) {\n payload.packWeightOverrides = input.packWeightOverrides;\n }\n\n return {\n path: \"/api/platform/v1/context/compile\",\n method: \"POST\",\n body: payload,\n };\n}\n\n/**\n * Create the context client for compiling reasoning context packs.\n * @param config - Gateway transport configuration.\n * @returns An object with a `compile` method for building context packs.\n */\nexport function createContextClient(config: ContextClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * Compile a focused reasoning context pack for a topic scope.\n * @param topicId - The topic to compile context for.\n * @param input - Optional compile parameters (query, budget, ranking, etc.).\n * @returns The compiled context payload with beliefs, questions, and evidence.\n */\n async compile(topicId: string, input: CompileContextInput = {}) {\n const request = buildCompileContextRequest(topicId, input);\n return gateway.request<CompileContextResponse>({\n ...request,\n body: request.body as JsonObject,\n });\n },\n };\n}\n\nexport type { CompileContextInput, PublicCompiledContext } from \"./contextTypes\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphAnalysisClientConfig = GatewayClientConfig;\n\nexport const GRAPH_ANALYSIS_ANALYSIS_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"healthScore\",\n \"findings\",\n \"suggestions\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_SUGGESTION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisId\",\n \"suggestions\",\n \"metadata\",\n] as const;\n\nexport const GRAPH_ANALYSIS_COMPUTE_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"analysisType\",\n \"sourceNodeIds\",\n \"sourceEdgeIds\",\n \"detectorVersions\",\n \"metadata\",\n] as const;\n\ntype AnalysisPayloadField = (typeof GRAPH_ANALYSIS_ANALYSIS_FIELDS)[number];\ntype SuggestionPayloadField = (typeof GRAPH_ANALYSIS_SUGGESTION_FIELDS)[number];\ntype ComputePayloadField = (typeof GRAPH_ANALYSIS_COMPUTE_FIELDS)[number];\n\nexport type GraphAnalysisFinding = {\n id?: string;\n severity?: \"critical\" | \"warning\" | \"info\" | string;\n category?: string;\n title: string;\n description?: string;\n nodeIds?: string[];\n nodeLabels?: string[];\n detector?: string;\n importance?: number;\n totalCount?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestion = {\n suggestionId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: \"P0\" | \"P1\" | \"P2\" | \"P3\" | string;\n rationale?: string;\n status?: GraphAnalysisSuggestionStatus;\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisSuggestionStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphAnalysisRecord = {\n analysisId?: string;\n topicId: string;\n workspaceId: string;\n analysisType: string;\n healthScore?: number;\n findings?: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphAnalysisChangeRecord = {\n changeId?: string;\n analysisId?: string;\n topicId?: string;\n workspaceId?: string;\n changeType?: string;\n nodeIds?: string[];\n edgeIds?: string[];\n summary?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n};\n\nexport type TopicProjectAliasInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n};\n\nexport type SaveGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType: string;\n healthScore: number;\n findings: GraphAnalysisFinding[];\n suggestions?: GraphAnalysisSuggestion[];\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type ListGraphAnalysesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type GetLatestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisType?: string;\n};\n\nexport type SaveGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisId?: string;\n suggestions: GraphAnalysisSuggestion[];\n metadata?: JsonObject;\n};\n\nexport type UpdateGraphSuggestionStatusInput = {\n suggestionId: string;\n status: GraphAnalysisSuggestionStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphSuggestionsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n findingId?: string;\n status?: GraphAnalysisSuggestionStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListGraphChangesInput = TopicProjectAliasInput & {\n workspaceId?: string;\n analysisId?: string;\n minimumCreatedAt?: number;\n since?: number;\n createdAt?: number;\n analysisCreatedAt?: number;\n nodeId?: string;\n edgeId?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n limit?: number;\n cursor?: string;\n};\n\nexport type ComputeOrRequestGraphAnalysisInput = TopicProjectAliasInput & {\n workspaceId: string;\n analysisType?: string;\n sourceNodeIds?: string[];\n sourceEdgeIds?: string[];\n detectorVersions?: Record<string, string>;\n metadata?: JsonObject;\n};\n\nexport type GraphAnalysisListResponse = ListResult<\n GraphAnalysisRecord,\n \"analyses\"\n>;\nexport type GraphAnalysisSuggestionsResponse = ListResult<\n GraphAnalysisSuggestion,\n \"suggestions\"\n>;\nexport type GraphAnalysisChangesResponse = ListResult<\n GraphAnalysisChangeRecord,\n \"changes\"\n>;\n\nfunction readTopicId(input: TopicProjectAliasInput): string | undefined {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: TopicProjectAliasInput): string {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys<T extends string>(\n input: Record<string, unknown>,\n allowed: readonly T[],\n operation: string\n) {\n const allowedSet = new Set<string>(allowed);\n const unknownKeys = Object.keys(input).filter((key) => !allowedSet.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction normalizeAnalysisPayload(input: SaveGraphAnalysisInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_ANALYSIS_FIELDS,\n \"graphAnalysis.saveAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<AnalysisPayloadField, unknown>;\n}\n\nfunction normalizeSuggestionPayload(input: SaveGraphSuggestionsInput): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_SUGGESTION_FIELDS,\n \"graphAnalysis.saveSuggestions\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<SuggestionPayloadField, unknown>;\n}\n\nfunction normalizeComputePayload(\n input: ComputeOrRequestGraphAnalysisInput\n): JsonObject {\n assertKnownKeys(\n input as Record<string, unknown>,\n GRAPH_ANALYSIS_COMPUTE_FIELDS,\n \"graphAnalysis.computeOrRequestAnalysis\"\n );\n return {\n ...input,\n topicId: requireTopicId(input),\n projectId: undefined,\n } as JsonObject & Record<ComputePayloadField, unknown>;\n}\n\nfunction graphAnalysisQuery(input: ListGraphAnalysesInput) {\n return {\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nexport function createGraphAnalysisClient(\n config: GraphAnalysisClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n saveAnalysis(input: SaveGraphAnalysisInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/analyses\",\n method: \"POST\",\n body: normalizeAnalysisPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listAnalyses(input: ListGraphAnalysesInput) {\n return gateway.request<GraphAnalysisListResponse>({\n path: `/api/platform/v1/graph-analysis/analyses${toQueryString(\n graphAnalysisQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { analyses?: unknown[] }).analyses)\n ? ((data as { analyses: GraphAnalysisRecord[] }).analyses)\n : Array.isArray(data)\n ? data\n : [],\n \"analyses\"\n )\n )\n );\n },\n\n getLatestAnalysis(input: GetLatestGraphAnalysisInput) {\n return gateway.request<GraphAnalysisRecord>({\n path: `/api/platform/v1/graph-analysis/analyses/latest${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisType: input.analysisType,\n })}`,\n });\n },\n\n saveSuggestions(input: SaveGraphSuggestionsInput, idempotencyKey?: string) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: \"/api/platform/v1/graph-analysis/suggestions\",\n method: \"POST\",\n body: normalizeSuggestionPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSuggestionStatus(\n input: UpdateGraphSuggestionStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisSuggestion>({\n path: `/api/platform/v1/graph-analysis/suggestions/${encodeURIComponent(\n input.suggestionId\n )}`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listSuggestions(input: ListGraphSuggestionsInput) {\n return gateway.request<GraphAnalysisSuggestionsResponse>({\n path: `/api/platform/v1/graph-analysis/suggestions${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n findingId: input.findingId,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { suggestions?: unknown[] }).suggestions)\n ? ((data as { suggestions: GraphAnalysisSuggestion[] }).suggestions)\n : Array.isArray(data)\n ? data\n : [],\n \"suggestions\"\n )\n )\n );\n },\n\n listGraphChanges(input: ListGraphChangesInput) {\n return gateway.request<GraphAnalysisChangesResponse>({\n path: `/api/platform/v1/graph-analysis/changes${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n analysisId: input.analysisId,\n minimumCreatedAt:\n input.minimumCreatedAt ??\n input.since ??\n input.createdAt ??\n input.analysisCreatedAt,\n sourceNodeIds:\n input.sourceNodeIds?.join(\",\") ??\n (input.nodeId ? input.nodeId : undefined),\n sourceEdgeIds:\n input.sourceEdgeIds?.join(\",\") ??\n (input.edgeId ? input.edgeId : undefined),\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray((data as { changes?: unknown[] }).changes)\n ? ((data as { changes: GraphAnalysisChangeRecord[] }).changes)\n : Array.isArray(data)\n ? data\n : [],\n \"changes\"\n )\n )\n );\n },\n\n computeOrRequestAnalysis(\n input: ComputeOrRequestGraphAnalysisInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphAnalysisRecord>({\n path: \"/api/platform/v1/graph-analysis/compute\",\n method: \"POST\",\n body: normalizeComputePayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphRecommendationsClientConfig = GatewayClientConfig;\n\nexport const GRAPH_RECOMMENDATION_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"limit\",\n \"cursor\",\n \"status\",\n \"findingId\",\n \"actionType\",\n \"targetNodeIds\",\n \"priority\",\n \"rationale\",\n \"healthScore\",\n \"metadata\",\n] as const;\n\nexport type GraphRecommendationStatus =\n | \"open\"\n | \"accepted\"\n | \"dismissed\"\n | \"applied\"\n | \"superseded\";\n\nexport type GraphRecommendationPriority =\n | \"P0\"\n | \"P1\"\n | \"P2\"\n | \"P3\"\n | \"critical\"\n | \"high\"\n | \"medium\"\n | \"low\";\n\nexport type GraphRecommendationRecord = {\n recommendationId: string;\n topicId?: string;\n workspaceId?: string;\n findingId?: string;\n actionType: string;\n targetNodeIds?: string[];\n priority?: GraphRecommendationPriority | string;\n rationale?: string;\n healthScore?: number;\n status?: GraphRecommendationStatus;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type GraphRecommendationListInput = {\n topicId?: string;\n /** @deprecated Use topicId. */\n projectId?: string;\n workspaceId?: string;\n limit?: number;\n cursor?: string;\n status?: GraphRecommendationStatus;\n findingId?: string;\n actionType?: string;\n priority?: GraphRecommendationPriority | string;\n targetNodeIds?: string[];\n healthScore?: number;\n metadata?: JsonObject;\n};\n\nexport type MarkGraphRecommendationStatusInput = {\n recommendationId: string;\n status: GraphRecommendationStatus;\n rationale?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphRecommendationListResponse = ListResult<\n GraphRecommendationRecord,\n \"recommendations\"\n>;\n\nfunction readTopicId(input: { topicId?: string; projectId?: string }) {\n return input.topicId?.trim() || input.projectId?.trim() || undefined;\n}\n\nfunction requireTopicId(input: { topicId?: string; projectId?: string }) {\n const topicId = readTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction assertKnownKeys(\n input: Record<string, unknown>,\n operation: string\n) {\n const allowed = new Set<string>(GRAPH_RECOMMENDATION_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction listQuery(input: GraphRecommendationListInput) {\n assertKnownKeys(\n input as Record<string, unknown>,\n \"graphRecommendations.listForTopic\"\n );\n return {\n workspaceId: input.workspaceId,\n topicId: requireTopicId(input),\n limit: input.limit,\n cursor: input.cursor,\n status: input.status,\n findingId: input.findingId,\n actionType: input.actionType,\n priority: input.priority,\n targetNodeIds: input.targetNodeIds?.join(\",\"),\n healthScore: input.healthScore,\n };\n}\n\nexport function createGraphRecommendationsClient(\n config: GraphRecommendationsClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listForTopic(input: GraphRecommendationListInput) {\n return gateway.request<GraphRecommendationListResponse>({\n path: `/api/platform/v1/graph-recommendations${toQueryString(\n listQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(\n Array.isArray(\n (data as { recommendations?: unknown[] }).recommendations\n )\n ? (data as { recommendations: GraphRecommendationRecord[] })\n .recommendations\n : Array.isArray(data)\n ? data\n : [],\n \"recommendations\"\n )\n )\n );\n },\n\n getRecommendation(recommendationId: string) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n recommendationId\n )}`,\n });\n },\n\n markRecommendationStatus(\n input: MarkGraphRecommendationStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphRecommendationRecord>({\n path: `/api/platform/v1/graph-recommendations/${encodeURIComponent(\n input.recommendationId\n )}/status`,\n method: \"PATCH\",\n body: {\n status: input.status,\n rationale: input.rationale,\n metadata: input.metadata,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n requireTopicId,\n topicPayload,\n type TopicProjectAliasInput,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type GraphStateClassifierClientConfig = GatewayClientConfig;\n\nexport const GRAPH_STATE_CLASSIFIER_FIELDS = [\n \"topicId\",\n \"projectId\",\n \"workspaceId\",\n \"nodeId\",\n \"epistemicStatus\",\n \"beliefMaturity\",\n \"answerQuality\",\n \"evidenceNetwork\",\n \"logicalRole\",\n \"questionPriority\",\n \"layer\",\n \"modelVersion\",\n \"limit\",\n \"cursor\",\n \"metadata\",\n] as const;\n\nexport type GraphStateClassification = {\n classificationId?: string;\n topicId: string;\n workspaceId?: string;\n nodeId?: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n confidence?: number;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ClassifyNodeInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type ClassifyTopicInput = TopicProjectAliasInput & {\n workspaceId: string;\n modelVersion?: string;\n limit?: number;\n cursor?: string;\n metadata?: JsonObject;\n};\n\nexport type ListGraphStateClassificationsInput = TopicProjectAliasInput & {\n workspaceId?: string;\n nodeId?: string;\n modelVersion?: string;\n layer?: string;\n epistemicStatus?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type RecordGraphStateClassificationInput = TopicProjectAliasInput & {\n workspaceId: string;\n nodeId: string;\n epistemicStatus?: string;\n beliefMaturity?: string;\n answerQuality?: string;\n evidenceNetwork?: string;\n logicalRole?: string;\n questionPriority?: string;\n layer?: string;\n modelVersion?: string;\n metadata?: JsonObject;\n};\n\nexport type GraphStateClassificationsResponse = ListResult<\n GraphStateClassification,\n \"classifications\"\n>;\n\nfunction normalizeRecordPayload(input: RecordGraphStateClassificationInput) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return topicPayload(\n input as RecordGraphStateClassificationInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.recordClassification\"\n );\n}\n\nexport function createGraphStateClassifierClient(\n config: GraphStateClassifierClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n classifyNode(input: ClassifyNodeInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n cleanRequiredString(input.nodeId, \"nodeId\");\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classify-node\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyNodeInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyNode\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n classifyTopic(input: ClassifyTopicInput, idempotencyKey?: string) {\n cleanRequiredString(input.workspaceId, \"workspaceId\");\n return gateway.request<GraphStateClassificationsResponse>({\n path: \"/api/platform/v1/graph-state-classifier/classify-topic\",\n method: \"POST\",\n body: topicPayload(\n input as ClassifyTopicInput & Record<string, unknown>,\n GRAPH_STATE_CLASSIFIER_FIELDS,\n \"graphStateClassifier.classifyTopic\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n listClassifications(input: ListGraphStateClassificationsInput) {\n return gateway.request<GraphStateClassificationsResponse>({\n path: `/api/platform/v1/graph-state-classifier/classifications${toQueryString({\n topicId: requireTopicId(input),\n workspaceId: input.workspaceId,\n nodeId: input.nodeId,\n modelVersion: input.modelVersion,\n layer: input.layer,\n epistemicStatus: input.epistemicStatus,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<GraphStateClassification, \"classifications\">(\n data,\n \"classifications\"\n )\n )\n );\n },\n\n recordClassification(\n input: RecordGraphStateClassificationInput,\n idempotencyKey?: string\n ) {\n return gateway.request<GraphStateClassification>({\n path: \"/api/platform/v1/graph-state-classifier/classifications\",\n method: \"POST\",\n body: normalizeRecordPayload(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, TopicIdentifierInput } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the harness client. Inherits gateway transport settings. */\nexport type HarnessClientConfig = GatewayClientConfig;\n\nexport type HarnessAgentGuardrails = {\n isolationMode?: \"direct\" | \"sandbox\";\n maxExecutionMs?: number;\n heartbeatIntervalMs?: number;\n maxToolCalls?: number;\n allowNetworkEgress?: boolean;\n allowedOrigins?: string[];\n};\n\nexport type HarnessAgentRuntimeConfig = {\n entryPoint?: string;\n callbackUrl?: string;\n modelRouting?: \"model_machine\" | \"tenant_proxy\" | \"bring_your_own\";\n auditMode?: \"harness\" | \"master_control\";\n};\n\n/** Input for creating or updating an agent definition in the harness registry. */\nexport type HarnessAgentWriteInput = GatewayScope & {\n agentDefinitionId?: string;\n agentKey: string;\n displayName: string;\n description: string;\n version: string;\n status?: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n scopeRequirements?: string[];\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n promptName?: string;\n systemPrompt?: string;\n toolIds?: string[];\n modelSlot?: string;\n requiredModelCapabilities?: string[];\n parameterSchema?: JsonObject;\n outputSchema?: JsonObject;\n guardrails?: HarnessAgentGuardrails;\n runtimeConfig?: HarnessAgentRuntimeConfig;\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a tool definition in the harness registry. */\nexport type HarnessToolWriteInput = GatewayScope & {\n toolId?: string;\n toolName: string;\n description: string;\n version: string;\n status?: \"draft\" | \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification?: \"core\" | \"shimmed\";\n scopeRequirements?: string[];\n requiredRole?: string;\n requiredAction?: string;\n surfaces?: string[];\n category?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n callbackUrl?: string;\n safetyMetadata: {\n readOnly?: boolean;\n idempotent?: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n exampleInvocations?: Array<{\n input: JsonObject;\n expectedOutput?: JsonValue;\n }>;\n metadata?: JsonObject;\n};\n\nexport type HarnessExecuteToolInput = GatewayScope & {\n input?: JsonObject;\n version?: string;\n transportKind?: string;\n};\n\nexport type HarnessExecuteToolResult = {\n tool: {\n toolId: string;\n toolName: string;\n version: string;\n status: \"active\" | \"deprecated\" | \"disabled\";\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n gateClassification: \"core\" | \"shimmed\";\n scopeRequirements: string[];\n safetyMetadata: {\n readOnly: boolean;\n idempotent: boolean;\n sideEffectLevel: \"none\" | \"low\" | \"high\";\n };\n };\n execution: {\n input: JsonObject;\n transportKind: string;\n startedAt: number;\n completedAt: number;\n durationMs: number;\n };\n envelope: JsonObject | null;\n audit: {\n toolName: string;\n contractName: string;\n transportKind: string;\n authMode: string;\n requiredScopes: string[];\n source: \"gateway_envelope\";\n isError: boolean;\n code?: string;\n status?: number;\n correlationId?: string | null;\n policyTraceId?: string | null;\n invariant?: string | null;\n } | null;\n output: {\n isError: boolean;\n parsed: JsonValue;\n raw: JsonValue;\n };\n};\n\n/** Input for starting a new harness run (agent execution session). */\nexport type HarnessStartRunInput = GatewayScope & {\n agentDefinitionId: string;\n agentVersion: string;\n executionAdapter:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n promptReleaseChannel?: \"dev\" | \"staging\" | \"prod\";\n chatId?: string;\n worktreeId?: string;\n topicId?: string;\n langfuseTraceId?: string;\n metadata?: JsonObject;\n} & TopicIdentifierInput;\n\nexport type HarnessInvokeManagedAgentInput = GatewayScope & {\n agentDefinitionId: string;\n input?: JsonObject;\n metadata?: JsonObject;\n};\n\n/** Input for reporting a ledger event (tool call, prompt resolution, or policy decision) within a run. */\nexport type HarnessRunReportInput = {\n reportingToken: string;\n type: \"tool_call\" | \"prompt_resolution\" | \"policy_decision\";\n metadata?: JsonObject;\n toolCallId?: string;\n toolName?: string;\n executionAdapter?:\n | \"convex_mutation\"\n | \"convex_action\"\n | \"http_callback\"\n | \"mcp_tool\"\n | \"sdk_invocation\"\n | \"external_observed\";\n policyDecisionId?: string;\n requiredScopes?: string[];\n policyResult?: \"allowed\" | \"denied\";\n policyReasonCode?: string;\n inputHash?: string;\n outputHash?: string;\n durationMs?: number;\n success?: boolean;\n startedAt?: number;\n completedAt?: number;\n input?: JsonObject;\n result?: JsonValue;\n promptKey?: string;\n promptVersion?: string;\n decision?: string;\n reasonCode?: string;\n latencyMs?: number;\n error?:\n | string\n | {\n code?: string;\n message: string;\n details?: JsonValue;\n };\n};\n\n/** Input for completing a harness run with a terminal status. */\nexport type HarnessCompleteRunInput = {\n reportingToken: string;\n status: \"completed\" | \"failed\" | \"timeout\";\n error?: {\n category:\n | \"policy_denied\"\n | \"tool_execution\"\n | \"prompt_resolution\"\n | \"model_error\"\n | \"timeout\"\n | \"heartbeat_timeout\"\n | \"input_validation\"\n | \"internal\"\n | \"external_service\";\n message: string;\n code?: string;\n };\n};\n\n/**\n * Create the harness client for agent and tool registry operations.\n */\nexport function createHarnessClient(config: HarnessClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List agent definitions.\n */\n async listAgentDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"agents\")\n )\n );\n },\n\n /**\n * Get an agent definition.\n */\n async getAgentDefinition(agentId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create an agent definition.\n */\n async createAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/agents\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createAgentDefinition.\n */\n async registerAgentDefinition(\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return this.createAgentDefinition(input, idempotencyKey);\n },\n\n /**\n * Update an agent definition.\n */\n async updateAgentDefinition(\n agentId: string,\n input: HarnessAgentWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Invoke a managed agent definition.\n */\n async invokeManagedAgentDefinition(\n agentId: string,\n input: Omit<HarnessInvokeManagedAgentInput, \"agentDefinitionId\">,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs`,\n method: \"POST\",\n body: {\n agentDefinitionId: agentId,\n ...input,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List runs for an agent definition.\n */\n async listAgentRuns(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/agents/${encodeURIComponent(agentId)}/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listAgentRuns.\n */\n async listRunsForAgent(\n agentId: string,\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listAgentRuns(agentId, scope);\n },\n\n /**\n * List tool definitions.\n */\n async listToolDefinitions(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n gateClassification?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"tools\")\n )\n );\n },\n\n /**\n * Get a tool definition.\n */\n async getToolDefinition(toolId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}${toQueryString(scope)}`,\n });\n },\n\n /**\n * Create a tool definition.\n */\n async createToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/tools\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createToolDefinition.\n */\n async registerToolDefinition(\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return this.createToolDefinition(input, idempotencyKey);\n },\n\n /**\n * Update a tool definition.\n */\n async updateToolDefinition(\n toolId: string,\n input: HarnessToolWriteInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}`,\n method: \"PUT\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Execute a tool definition.\n */\n async executeToolDefinition(\n toolId: string,\n input: HarnessExecuteToolInput = {}\n ) {\n return gateway.request<HarnessExecuteToolResult>({\n path: `/api/platform/v1/harness/tools/${encodeURIComponent(toolId)}/execute`,\n method: \"POST\",\n body: input,\n });\n },\n\n /**\n * List run ledger entries.\n */\n async listRunEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"runs\")\n )\n );\n },\n\n /**\n * @deprecated Use listRunEntries.\n */\n async listRunLedgerEntries(\n scope: GatewayScope & {\n status?: string;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n return this.listRunEntries(scope);\n },\n\n /**\n * Create a harness run.\n */\n async startHarnessRun(\n input: HarnessStartRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/runs\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a run ledger entry.\n */\n async getRunLedgerEntry(runId: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}`,\n });\n },\n\n /**\n * Update a harness run with a ledger event.\n */\n async reportHarnessRunEvent(\n runId: string,\n input: HarnessRunReportInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/report`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a harness run heartbeat.\n */\n async heartbeatHarnessRun(\n runId: string,\n input: { reportingToken: string },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/heartbeat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a harness run.\n */\n async completeHarnessRun(\n runId: string,\n input: HarnessCompleteRunInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/runs/${encodeURIComponent(runId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List prompt resolutions.\n */\n async listPromptResolutions(\n query: { runId?: string; promptName?: string; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/harness/prompts${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"prompts\")\n )\n );\n },\n\n /**\n * Get the harness scope taxonomy.\n */\n async getScopeTaxonomy() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/harness/scopes\",\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type JobsClientConfig = GatewayClientConfig;\n\nexport const JOBS_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"jobId\",\n \"jobType\",\n \"payload\",\n \"status\",\n \"attempt\",\n \"runId\",\n \"queue\",\n \"priority\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type JobStatus =\n | \"queued\"\n | \"claimed\"\n | \"running\"\n | \"succeeded\"\n | \"failed\"\n | \"cancelled\";\n\nexport type JobRecord = {\n jobId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType: string;\n payload?: JsonObject | null;\n status: JobStatus | string;\n attempt?: number;\n runId?: string;\n queue?: string;\n priority?: string;\n error?: string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type JobRunRecord = {\n runId: string;\n jobId?: string;\n tenantId: string;\n workspaceId?: string;\n status: JobStatus | string;\n startedAt?: number;\n finishedAt?: number;\n metadata?: JsonObject | null;\n};\n\nexport type JobsScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n jobType?: string;\n status?: JobStatus;\n queue?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type EnqueueJobInput = JobsScope & {\n jobType: string;\n payload?: JsonObject;\n priority?: string;\n metadata?: JsonObject;\n};\n\nexport type ClaimJobInput = JobsScope & {\n jobType?: string;\n};\n\nexport type UpdateJobStatusInput = JobsScope & {\n jobId: string;\n status: JobStatus;\n attempt?: number;\n runId?: string;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type RetryJobInput = JobsScope & {\n jobId: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunStartInput = JobsScope & {\n jobId?: string;\n runId?: string;\n jobType?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordJobRunFinishInput = JobsScope & {\n runId: string;\n jobId?: string;\n status: JobStatus;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type JobsResponse = ListResult<JobRecord, \"jobs\">;\n\nfunction query(input: JobsScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n jobType: input.jobType,\n status: input.status,\n queue: input.queue,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, JOBS_FIELDS, operation);\n}\n\nexport function createJobsClient(config: JobsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n enqueue(input: EnqueueJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobType, \"jobType\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.enqueue\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n list(input: JobsScope) {\n return gateway.request<JobsResponse>({\n path: `/api/platform/v1/jobs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<JobRecord, \"jobs\">(data, \"jobs\")\n )\n );\n },\n\n claim(input: ClaimJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRecord>({\n path: \"/api/platform/v1/jobs/claim\",\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.claim\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateStatus(input: UpdateJobStatusInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/status`,\n method: \"PATCH\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.updateStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n retry(input: RetryJobInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.jobId, \"jobId\");\n return gateway.request<JobRecord>({\n path: `/api/platform/v1/jobs/${encodeURIComponent(input.jobId)}/retry`,\n method: \"POST\",\n body: body(input as unknown as Record<string, unknown>, \"jobs.retry\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunStart(input: RecordJobRunStartInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<JobRunRecord>({\n path: \"/api/platform/v1/jobs/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunStart\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordRunFinish(input: RecordJobRunFinishInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<JobRunRecord>({\n path: `/api/platform/v1/jobs/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"jobs.recordRunFinish\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, normalizeTopicQuery } from \"./sdkSurface\";\nimport type { TopicIdentifierInput } from \"./types\";\n\n/** Configuration for the learning client. */\nexport type LearningClientConfig = GatewayClientConfig;\n\n/**\n * Create the learning client for execution telemetry reads.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list executions and retrieve stats.\n */\nexport function createLearningClient(config: LearningClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List recent execution records.\n */\n async listRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/recent${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n success:\n typeof args.success === \"boolean\"\n ? args.success\n ? \"true\"\n : \"false\"\n : undefined,\n limit:\n typeof args.limit === \"number\" && Number.isFinite(args.limit)\n ? String(args.limit)\n : undefined,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"executions\")\n )\n );\n },\n\n /**\n * @deprecated Use listRecentExecutions.\n */\n async getRecentExecutions(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n success?: boolean;\n limit?: number;\n } & TopicIdentifierInput = {}\n ) {\n return this.listRecentExecutions(args);\n },\n\n /**\n * Get aggregate execution statistics.\n */\n async getExecutionStats(\n args: {\n namespace?: string;\n topicId?: string;\n audienceMode?: string;\n hours?: number;\n } & TopicIdentifierInput = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/learning/executions/stats${toQueryString({\n ...normalizeTopicQuery(args),\n namespace: args.namespace,\n audienceMode: args.audienceMode,\n hours:\n typeof args.hours === \"number\" && Number.isFinite(args.hours)\n ? String(args.hours)\n : undefined,\n })}`,\n });\n },\n };\n}\n","import type {\n McpGatewayBootstrapRequest,\n McpGatewayBootstrapResponse,\n McpGatewayBeginBuildSessionRequest,\n McpGatewayBeginBuildSessionResponse,\n McpGatewayContractEvaluationResponse,\n McpGatewayEvaluateEngineeringContractRequest,\n McpGatewayEvaluateResearchContractRequest,\n McpGatewayWritePolicyCheckRequest,\n McpGatewayWritePolicyCheckResponse,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT,\n MCP_GATEWAY_BOOTSTRAP_ENDPOINT,\n MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT,\n MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT,\n MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT,\n} from \"@lucern/contracts/mcp-gateway-boundary.contract\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n type PlatformGatewaySuccess,\n toQueryString,\n} from \"./coreClient\";\nimport type { JsonValue } from \"./types\";\n\nexport type McpClientConfig = GatewayClientConfig;\n\nexport type McpBootstrapSessionInput = GatewayScope &\n McpGatewayBootstrapRequest;\n\nexport type McpBootstrapSessionResponse =\n PlatformGatewaySuccess<McpGatewayBootstrapResponse>;\n\nexport type McpCheckWritePolicyInput = GatewayScope &\n McpGatewayWritePolicyCheckRequest;\n\nexport type McpCheckWritePolicyResponse =\n PlatformGatewaySuccess<McpGatewayWritePolicyCheckResponse>;\n\nexport type McpBeginBuildSessionInput = GatewayScope &\n McpGatewayBeginBuildSessionRequest;\n\nexport type McpBeginBuildSessionResponse =\n PlatformGatewaySuccess<McpGatewayBeginBuildSessionResponse>;\n\nexport type McpEvaluateEngineeringContractInput = GatewayScope &\n McpGatewayEvaluateEngineeringContractRequest;\n\nexport type McpEvaluateResearchContractInput = GatewayScope &\n McpGatewayEvaluateResearchContractRequest;\n\nexport type McpContractEvaluationResponse =\n PlatformGatewaySuccess<McpGatewayContractEvaluationResponse>;\n\nfunction toJsonValue(value: unknown): JsonValue | undefined {\n if (value === undefined) {\n return undefined;\n }\n\n const seen = new WeakSet<object>();\n const json = JSON.stringify(value, (_key, candidate) => {\n if (typeof candidate === \"bigint\") {\n return candidate.toString();\n }\n\n if (\n typeof candidate === \"function\" ||\n typeof candidate === \"symbol\" ||\n typeof candidate === \"undefined\"\n ) {\n return undefined;\n }\n\n if (candidate && typeof candidate === \"object\") {\n if (seen.has(candidate)) {\n return \"[Circular]\";\n }\n seen.add(candidate);\n }\n\n return candidate;\n });\n\n if (json === undefined) {\n return undefined;\n }\n\n return JSON.parse(json) as JsonValue;\n}\n\nexport function createMcpClient(config: McpClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n bootstrapSession(\n input: McpBootstrapSessionInput = {}\n ): Promise<McpBootstrapSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n const body: McpGatewayBootstrapRequest = {\n transportKind: input.transportKind,\n sessionId: input.sessionId,\n agentIdentity: input.agentIdentity,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBootstrapResponse>({\n path: `${MCP_GATEWAY_BOOTSTRAP_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body,\n });\n },\n\n checkWritePolicy(\n input: McpCheckWritePolicyInput\n ): Promise<McpCheckWritePolicyResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayWritePolicyCheckResponse>({\n path: `${MCP_GATEWAY_WRITE_POLICY_CHECK_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n topicId: input.topicId,\n role: input.role,\n toolName: input.toolName,\n },\n });\n },\n\n beginBuildSession(\n input: McpBeginBuildSessionInput\n ): Promise<McpBeginBuildSessionResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayBeginBuildSessionResponse>({\n path: `${MCP_GATEWAY_BEGIN_BUILD_SESSION_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n worktreeId: input.worktreeId,\n branch: input.branch,\n branchBase: input.branchBase,\n prBase: input.prBase,\n sessionMode: input.sessionMode,\n activateIfPlanning: input.activateIfPlanning,\n },\n });\n },\n\n evaluateEngineeringContract(\n input: McpEvaluateEngineeringContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_ENGINEERING_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n testOutput: toJsonValue(input.testOutput),\n tscOutput: toJsonValue(input.tscOutput),\n lintOutput: toJsonValue(input.lintOutput),\n sentryData: toJsonValue(input.sentryData),\n },\n });\n },\n\n evaluateResearchContract(\n input: McpEvaluateResearchContractInput\n ): Promise<McpContractEvaluationResponse> {\n const scope = {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n };\n\n return gateway.request<McpGatewayContractEvaluationResponse>({\n path: `${MCP_GATEWAY_EVALUATE_RESEARCH_CONTRACT_ENDPOINT}${toQueryString(scope)}`,\n method: \"POST\",\n body: {\n beliefNodeId: toJsonValue(input.beliefNodeId),\n trigger: toJsonValue(input.trigger),\n metricData: toJsonValue(input.metricData),\n referenceCheckData: toJsonValue(input.referenceCheckData),\n marketIndexData: toJsonValue(input.marketIndexData),\n temporalData: toJsonValue(input.temporalData),\n },\n });\n },\n };\n}\n","/* GENERATED by scripts/generate-api-surface.ts. DO NOT EDIT. */\n\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n type PlatformGatewaySuccess,\n} from \"../coreClient\";\nimport type { JsonObject } from \"../types\";\n\nexport type FunctionSurfaceClientConfig = GatewayClientConfig;\nexport type FunctionSurfaceInput = JsonObject;\nexport type FunctionSurfaceResult<T = unknown> = Promise<PlatformGatewaySuccess<T>>;\nexport const FUNCTION_SURFACE_METHOD_PATHS = [\n \"answers.answerQuestion\",\n \"answers.createAnswer\",\n \"answers.getAnswer\",\n \"beliefs.archiveBelief\",\n \"beliefs.bisectConfidence\",\n \"beliefs.createBelief\",\n \"beliefs.forkBelief\",\n \"beliefs.getBelief\",\n \"beliefs.getConfidenceHistory\",\n \"beliefs.listBeliefs\",\n \"beliefs.modulateConfidence\",\n \"beliefs.refineBelief\",\n \"beliefs.searchBeliefs\",\n \"bootstrap.generateSessionHandoff\",\n \"coding.getChangeHistory\",\n \"coding.getCodeContext\",\n \"coding.getFailureLog\",\n \"coding.recordAttempt\",\n \"context.analyzeTopicDensity\",\n \"context.applyAutoBranching\",\n \"context.compileContext\",\n \"context.discover\",\n \"context.discoverEntityConnections\",\n \"context.getLatticeCoverage\",\n \"context.recordScopeLearning\",\n \"context.seedBeliefLattice\",\n \"context.triggerBeliefReview\",\n \"contracts.createEpistemicContract\",\n \"contracts.evaluateContract\",\n \"contracts.getContractStatus\",\n \"contradictions.flagContradiction\",\n \"coordination.broadcastMessage\",\n \"coordination.claimFiles\",\n \"coordination.endSession\",\n \"coordination.getAgentInbox\",\n \"coordination.heartbeatSession\",\n \"coordination.listActiveSessions\",\n \"coordination.registerSession\",\n \"coordination.sendAgentMessage\",\n \"edges.createEdge\",\n \"edges.queryLineage\",\n \"evidence.addEvidence\",\n \"evidence.createEvidence\",\n \"evidence.getEvidence\",\n \"evidence.linkEvidence\",\n \"evidence.linkEvidenceToBelief\",\n \"evidence.linkEvidenceToQuestion\",\n \"evidence.listEvidence\",\n \"evidence.searchEvidence\",\n \"graph.detectConfirmationBias\",\n \"graph.findContradictions\",\n \"graph.getGraphGaps\",\n \"graph.getGraphNeighborhood\",\n \"graph.getGraphStructureAnalysis\",\n \"graph.getTopicCoverage\",\n \"graph.traceEntityImpact\",\n \"graph.traverseGraph\",\n \"identity.checkPermission\",\n \"identity.filterByPermission\",\n \"identity.whoami\",\n \"judgments.getAuditTrail\",\n \"judgments.recordJudgment\",\n \"lenses.applyLensToTopic\",\n \"lenses.createLens\",\n \"lenses.listLenses\",\n \"lenses.removeLensFromTopic\",\n \"observations.getObservationContext\",\n \"observations.ingestObservation\",\n \"ontologies.applyOntology\",\n \"ontologies.archiveOntology\",\n \"ontologies.createOntology\",\n \"ontologies.createOntologyVersion\",\n \"ontologies.deprecateOntologyVersion\",\n \"ontologies.getOntology\",\n \"ontologies.listOntologies\",\n \"ontologies.matchEntityType\",\n \"ontologies.publishOntologyVersion\",\n \"ontologies.resolveEffectiveOntology\",\n \"ontologies.updateOntology\",\n \"policy.manageWritePolicy\",\n \"questions.archiveQuestion\",\n \"questions.createQuestion\",\n \"questions.findMissingQuestions\",\n \"questions.getFalsificationQuestions\",\n \"questions.getHighPriorityQuestions\",\n \"questions.getQuestion\",\n \"questions.listQuestions\",\n \"questions.refineQuestion\",\n \"questions.updateQuestionStatus\",\n \"tasks.completeTask\",\n \"tasks.createTask\",\n \"tasks.listTasks\",\n \"tasks.updateTask\",\n \"topics.createTopic\",\n \"topics.getTopic\",\n \"topics.getTopicTree\",\n \"topics.listTopics\",\n \"topics.updateTopic\",\n \"worktrees.activateWorktree\",\n \"worktrees.addWorktree\",\n \"worktrees.beginBuildSession\",\n \"worktrees.listAllWorktrees\",\n \"worktrees.listCampaigns\",\n \"worktrees.listWorktrees\",\n \"worktrees.merge\",\n \"worktrees.openPullRequest\",\n \"worktrees.pipelineSnapshot\",\n \"worktrees.push\",\n \"worktrees.updateWorktreeMetadata\",\n \"worktrees.updateWorktreeTargets\"\n] as const;\n\nconst CONTRACTS = {\n \"activate_worktree\": { method: \"POST\", path: \"/worktrees/activate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"add_evidence\": { method: \"POST\", path: \"/evidence/add\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"add_worktree\": { method: \"POST\", path: \"/worktrees\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"analyze_topic_density\": { method: \"POST\", path: \"/scope/topic-density\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"answer_question\": { method: \"POST\", path: \"/questions/answer\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"apply_auto_branching\": { method: \"POST\", path: \"/scope/auto-branching\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"apply_lens_to_topic\": { method: \"POST\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"apply_ontology\": { method: \"POST\", path: \"/ontologies/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"archive_belief\": { method: \"DELETE\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"archive_ontology\": { method: \"DELETE\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"archive_question\": { method: \"DELETE\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"begin_build_session\": { method: \"POST\", path: \"/mcp/build-session/begin\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"bisect_confidence\": { method: \"POST\", path: \"/beliefs/confidence/bisect\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"broadcast_message\": { method: \"POST\", path: \"/coordination/messages/broadcast\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"check_permission\": { method: \"POST\", path: \"/identity/check-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"claim_files\": { method: \"POST\", path: \"/coordination/file-claims\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"compile_context\": { method: \"POST\", path: \"/context/compile\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"complete_task\": { method: \"POST\", path: \"/tasks/complete\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_answer\": { method: \"POST\", path: \"/answers\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_belief\": { method: \"POST\", path: \"/beliefs\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_edge\": { method: \"POST\", path: \"/edges\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"create_epistemic_contract\": { method: \"POST\", path: \"/contracts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_evidence\": { method: \"POST\", path: \"/evidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_lens\": { method: \"POST\", path: \"/lenses\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology\": { method: \"POST\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_ontology_version\": { method: \"POST\", path: \"/ontologies/versions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"create_question\": { method: \"POST\", path: \"/questions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"create_task\": { method: \"POST\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"create_topic\": { method: \"POST\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"deprecate_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/deprecate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"detect_confirmation_bias\": { method: \"POST\", path: \"/graph/confirmation-bias\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"discover\": { method: \"POST\", path: \"/context/discover\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"discover_entity_connections\": { method: \"POST\", path: \"/context/entity-connections\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"end_session\": { method: \"POST\", path: \"/coordination/end-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"evaluate_contract\": { method: \"POST\", path: \"/contracts/evaluate\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"filter_by_permission\": { method: \"POST\", path: \"/identity/filter-by-permission\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"find_contradictions\": { method: \"POST\", path: \"/graph/contradictions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"find_missing_questions\": { method: \"POST\", path: \"/questions/missing\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"flag_contradiction\": { method: \"POST\", path: \"/contradictions\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"fork_belief\": { method: \"POST\", path: \"/beliefs/fork\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"generate_session_handoff\": { method: \"POST\", path: \"/bootstrap/session-handoff\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_agent_inbox\": { method: \"POST\", path: \"/coordination/messages/inbox\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_answer\": { method: \"GET\", path: \"/answers/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_audit_trail\": { method: \"POST\", path: \"/judgments/audit-trail\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_belief\": { method: \"GET\", path: \"/beliefs/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_change_history\": { method: \"POST\", path: \"/coding/change-history\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_code_context\": { method: \"POST\", path: \"/coding/context\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_confidence_history\": { method: \"POST\", path: \"/beliefs/confidence-history\", kind: \"query\", idempotent: false, surfaceIntent: \"compatibility\" },\n \"get_contract_status\": { method: \"POST\", path: \"/contracts/status\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_governance\" },\n \"get_evidence\": { method: \"GET\", path: \"/evidence/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_failure_log\": { method: \"POST\", path: \"/coding/failure-log\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_falsification_questions\": { method: \"POST\", path: \"/questions/falsification\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_graph_gaps\": { method: \"POST\", path: \"/graph/gaps\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_neighborhood\": { method: \"POST\", path: \"/graph/neighborhood\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_graph_structure_analysis\": { method: \"POST\", path: \"/graph/structure-analysis\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_high_priority_questions\": { method: \"POST\", path: \"/questions/high-priority\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_lattice_coverage\": { method: \"POST\", path: \"/scope/belief-lattice/coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"get_observation_context\": { method: \"POST\", path: \"/observations/context\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_ontology\": { method: \"GET\", path: \"/ontologies/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"get_question\": { method: \"GET\", path: \"/questions/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic\": { method: \"GET\", path: \"/topics/get\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"get_topic_coverage\": { method: \"POST\", path: \"/graph/topic-coverage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"get_topic_tree\": { method: \"GET\", path: \"/topics/tree\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"heartbeat_session\": { method: \"POST\", path: \"/coordination/heartbeat-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"identity_whoami\": { method: \"GET\", path: \"/identity/whoami\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"ingest_observation\": { method: \"POST\", path: \"/observations/ingest\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"link_evidence\": { method: \"POST\", path: \"/evidence/link\", kind: \"mutation\", idempotent: true, surfaceIntent: \"compatibility\" },\n \"link_evidence_to_belief\": { method: \"POST\", path: \"/evidence/link-belief\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"link_evidence_to_question\": { method: \"POST\", path: \"/evidence/link-question\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"list_active_sessions\": { method: \"POST\", path: \"/coordination/active-sessions\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"list_all_worktrees\": { method: \"GET\", path: \"/worktrees/all\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_beliefs\": { method: \"GET\", path: \"/beliefs\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_campaigns\": { method: \"GET\", path: \"/worktrees/campaigns\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_evidence\": { method: \"GET\", path: \"/evidence\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_lenses\": { method: \"GET\", path: \"/lenses\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_ontologies\": { method: \"GET\", path: \"/ontologies\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_questions\": { method: \"GET\", path: \"/questions\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_tasks\": { method: \"GET\", path: \"/tasks\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"list_topics\": { method: \"GET\", path: \"/topics\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"list_worktrees\": { method: \"GET\", path: \"/worktrees\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"manage_write_policy\": { method: \"POST\", path: \"/policy/write-policy/manage\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"match_entity_type\": { method: \"POST\", path: \"/ontologies/match-entity-type\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"merge\": { method: \"POST\", path: \"/worktrees/merge\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"modulate_confidence\": { method: \"POST\", path: \"/beliefs/confidence\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"open_pull_request\": { method: \"POST\", path: \"/worktrees/open-pull-request\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"pipeline_snapshot\": { method: \"POST\", path: \"/worktrees/pipeline-snapshot\", kind: \"query\", idempotent: false, surfaceIntent: \"system\" },\n \"publish_ontology_version\": { method: \"POST\", path: \"/ontologies/versions/publish\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"push\": { method: \"POST\", path: \"/worktrees/push\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"query_lineage\": { method: \"POST\", path: \"/edges/lineage\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"record_attempt\": { method: \"POST\", path: \"/coding/attempts\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_judgment\": { method: \"POST\", path: \"/judgments\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"record_scope_learning\": { method: \"POST\", path: \"/scope/learnings\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"refine_belief\": { method: \"PATCH\", path: \"/beliefs/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"refine_question\": { method: \"PATCH\", path: \"/questions/refine\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"register_session\": { method: \"POST\", path: \"/coordination/register-session\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"remove_lens_from_topic\": { method: \"DELETE\", path: \"/lenses/apply\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"resolve_effective_ontology\": { method: \"POST\", path: \"/ontologies/effective\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_workflow\" },\n \"search_beliefs\": { method: \"POST\", path: \"/beliefs/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"search_evidence\": { method: \"POST\", path: \"/evidence/search\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_core\" },\n \"seed_belief_lattice\": { method: \"POST\", path: \"/scope/belief-lattice/seed\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"send_agent_message\": { method: \"POST\", path: \"/coordination/messages/send\", kind: \"mutation\", idempotent: true, surfaceIntent: \"system\" },\n \"trace_entity_impact\": { method: \"POST\", path: \"/graph/trace-entity-impact\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"traverse_graph\": { method: \"POST\", path: \"/graph/traverse\", kind: \"query\", idempotent: false, surfaceIntent: \"mcp_analysis\" },\n \"trigger_belief_review\": { method: \"POST\", path: \"/context/belief-review\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_analysis\" },\n \"update_ontology\": { method: \"PATCH\", path: \"/ontologies\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_governance\" },\n \"update_question_status\": { method: \"PATCH\", path: \"/questions/status\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_task\": { method: \"PATCH\", path: \"/tasks\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_topic\": { method: \"PATCH\", path: \"/topics\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_core\" },\n \"update_worktree_metadata\": { method: \"PATCH\", path: \"/worktrees/metadata\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n \"update_worktree_targets\": { method: \"PATCH\", path: \"/worktrees/targets\", kind: \"mutation\", idempotent: true, surfaceIntent: \"mcp_workflow\" },\n} as const;\n\nfunction createSessionId(): string {\n return typeof crypto !== \"undefined\" && typeof crypto.randomUUID === \"function\"\n ? crypto.randomUUID()\n : randomIdempotencyKey();\n}\n\nfunction withSdkSessionId(input: FunctionSurfaceInput, sessionId: string): FunctionSurfaceInput {\n return {\n ...input,\n __sdkSessionId: typeof input.__sdkSessionId === \"string\" ? input.__sdkSessionId : sessionId,\n };\n}\n\nfunction toFunctionSurfaceQuery(input: FunctionSurfaceInput): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined) {\n continue;\n }\n const serialized =\n typeof value === \"string\" ? value : JSON.stringify(value);\n if (serialized !== undefined) {\n params.set(key, serialized);\n }\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\n}\n\nexport function createFunctionSurfaceClient(config: FunctionSurfaceClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const sessionId = createSessionId();\n\n function execute<T = unknown>(\n name: keyof typeof CONTRACTS,\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ): FunctionSurfaceResult<T> {\n const contract = CONTRACTS[name];\n const payload = withSdkSessionId(input, sessionId);\n const path =\n contract.method === \"GET\"\n ? `${contract.path}${toFunctionSurfaceQuery(payload)}`\n : contract.path;\n return gateway.request<T>({\n path: `/api/platform/v1${path}`,\n method: contract.method,\n body: contract.method === \"GET\" ? undefined : payload,\n idempotencyKey:\n contract.kind !== \"query\" && Boolean(contract.idempotent)\n ? idempotencyKey ?? randomIdempotencyKey()\n : undefined,\n });\n }\n\n return {\n sessionId,\n activateWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"activate_worktree\", input, idempotencyKey);\n },\n addEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_evidence\", input, idempotencyKey);\n },\n addWorktree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"add_worktree\", input, idempotencyKey);\n },\n analyzeTopicDensity(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"analyze_topic_density\", input, idempotencyKey);\n },\n answerQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"answer_question\", input, idempotencyKey);\n },\n applyAutoBranching(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_auto_branching\", input, idempotencyKey);\n },\n applyLensToTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_lens_to_topic\", input, idempotencyKey);\n },\n applyOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"apply_ontology\", input, idempotencyKey);\n },\n archiveBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_belief\", input, idempotencyKey);\n },\n archiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_ontology\", input, idempotencyKey);\n },\n archiveQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"archive_question\", input, idempotencyKey);\n },\n beginBuildSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"begin_build_session\", input, idempotencyKey);\n },\n bisectConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"bisect_confidence\", input, idempotencyKey);\n },\n broadcastMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"broadcast_message\", input, idempotencyKey);\n },\n checkPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"check_permission\", input, idempotencyKey);\n },\n claimFiles(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"claim_files\", input, idempotencyKey);\n },\n compileContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"compile_context\", input, idempotencyKey);\n },\n completeTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"complete_task\", input, idempotencyKey);\n },\n createAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_answer\", input, idempotencyKey);\n },\n createBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_belief\", input, idempotencyKey);\n },\n createEdge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_edge\", input, idempotencyKey);\n },\n createEpistemicContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_epistemic_contract\", input, idempotencyKey);\n },\n createEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_evidence\", input, idempotencyKey);\n },\n createLens(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_lens\", input, idempotencyKey);\n },\n createOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology\", input, idempotencyKey);\n },\n createOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_ontology_version\", input, idempotencyKey);\n },\n createQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_question\", input, idempotencyKey);\n },\n createTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_task\", input, idempotencyKey);\n },\n createTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"create_topic\", input, idempotencyKey);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"deprecate_ontology_version\", input, idempotencyKey);\n },\n detectConfirmationBias(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"detect_confirmation_bias\", input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover\", input, idempotencyKey);\n },\n discoverEntityConnections(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"discover_entity_connections\", input, idempotencyKey);\n },\n endSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"end_session\", input, idempotencyKey);\n },\n evaluateContract(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"evaluate_contract\", input, idempotencyKey);\n },\n filterByPermission(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"filter_by_permission\", input, idempotencyKey);\n },\n findContradictions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_contradictions\", input, idempotencyKey);\n },\n findMissingQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"find_missing_questions\", input, idempotencyKey);\n },\n flagContradiction(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"flag_contradiction\", input, idempotencyKey);\n },\n forkBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"fork_belief\", input, idempotencyKey);\n },\n generateSessionHandoff(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"generate_session_handoff\", input, idempotencyKey);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_agent_inbox\", input, idempotencyKey);\n },\n getAnswer(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_answer\", input, idempotencyKey);\n },\n getAuditTrail(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_audit_trail\", input, idempotencyKey);\n },\n getBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_belief\", input, idempotencyKey);\n },\n getChangeHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_change_history\", input, idempotencyKey);\n },\n getCodeContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_code_context\", input, idempotencyKey);\n },\n getConfidenceHistory(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_confidence_history\", input, idempotencyKey);\n },\n getContractStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_contract_status\", input, idempotencyKey);\n },\n getEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_evidence\", input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_failure_log\", input, idempotencyKey);\n },\n getFalsificationQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_falsification_questions\", input, idempotencyKey);\n },\n getGraphGaps(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_gaps\", input, idempotencyKey);\n },\n getGraphNeighborhood(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_neighborhood\", input, idempotencyKey);\n },\n getGraphStructureAnalysis(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_graph_structure_analysis\", input, idempotencyKey);\n },\n getHighPriorityQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_high_priority_questions\", input, idempotencyKey);\n },\n getLatticeCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_lattice_coverage\", input, idempotencyKey);\n },\n getObservationContext(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_observation_context\", input, idempotencyKey);\n },\n getOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_ontology\", input, idempotencyKey);\n },\n getQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_question\", input, idempotencyKey);\n },\n getTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic\", input, idempotencyKey);\n },\n getTopicCoverage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_coverage\", input, idempotencyKey);\n },\n getTopicTree(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"get_topic_tree\", input, idempotencyKey);\n },\n heartbeatSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"heartbeat_session\", input, idempotencyKey);\n },\n whoami(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"identity_whoami\", input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"ingest_observation\", input, idempotencyKey);\n },\n linkEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence\", input, idempotencyKey);\n },\n linkEvidenceToBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_belief\", input, idempotencyKey);\n },\n linkEvidenceToQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"link_evidence_to_question\", input, idempotencyKey);\n },\n listActiveSessions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_active_sessions\", input, idempotencyKey);\n },\n listAllWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_all_worktrees\", input, idempotencyKey);\n },\n listBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_beliefs\", input, idempotencyKey);\n },\n listCampaigns(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_campaigns\", input, idempotencyKey);\n },\n listEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_evidence\", input, idempotencyKey);\n },\n listLenses(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_lenses\", input, idempotencyKey);\n },\n listOntologies(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_ontologies\", input, idempotencyKey);\n },\n listQuestions(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_questions\", input, idempotencyKey);\n },\n listTasks(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_tasks\", input, idempotencyKey);\n },\n listTopics(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_topics\", input, idempotencyKey);\n },\n listWorktrees(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"list_worktrees\", input, idempotencyKey);\n },\n manageWritePolicy(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"manage_write_policy\", input, idempotencyKey);\n },\n matchEntityType(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"match_entity_type\", input, idempotencyKey);\n },\n merge(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"merge\", input, idempotencyKey);\n },\n modulateConfidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"modulate_confidence\", input, idempotencyKey);\n },\n openPullRequest(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"open_pull_request\", input, idempotencyKey);\n },\n pipelineSnapshot(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"pipeline_snapshot\", input, idempotencyKey);\n },\n publishOntologyVersion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"publish_ontology_version\", input, idempotencyKey);\n },\n push(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"push\", input, idempotencyKey);\n },\n queryLineage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"query_lineage\", input, idempotencyKey);\n },\n recordAttempt(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_attempt\", input, idempotencyKey);\n },\n recordJudgment(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_judgment\", input, idempotencyKey);\n },\n recordScopeLearning(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"record_scope_learning\", input, idempotencyKey);\n },\n refineBelief(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_belief\", input, idempotencyKey);\n },\n refineQuestion(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"refine_question\", input, idempotencyKey);\n },\n registerSession(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"register_session\", input, idempotencyKey);\n },\n removeLensFromTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"remove_lens_from_topic\", input, idempotencyKey);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"resolve_effective_ontology\", input, idempotencyKey);\n },\n searchBeliefs(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_beliefs\", input, idempotencyKey);\n },\n searchEvidence(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"search_evidence\", input, idempotencyKey);\n },\n seedBeliefLattice(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"seed_belief_lattice\", input, idempotencyKey);\n },\n sendAgentMessage(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"send_agent_message\", input, idempotencyKey);\n },\n traceEntityImpact(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trace_entity_impact\", input, idempotencyKey);\n },\n traverseGraph(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"traverse_graph\", input, idempotencyKey);\n },\n triggerBeliefReview(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"trigger_belief_review\", input, idempotencyKey);\n },\n updateOntology(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_ontology\", input, idempotencyKey);\n },\n updateQuestionStatus(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_question_status\", input, idempotencyKey);\n },\n updateTask(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_task\", input, idempotencyKey);\n },\n updateTopic(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_topic\", input, idempotencyKey);\n },\n updateWorktreeMetadata(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_metadata\", input, idempotencyKey);\n },\n updateWorktreeTargets(input: FunctionSurfaceInput = {}, idempotencyKey?: string) {\n return execute(\"update_worktree_targets\", input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type ModelRuntimeClientConfig = GatewayClientConfig;\n\nexport const MODEL_RUNTIME_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"functionName\",\n \"slotKey\",\n \"modelId\",\n \"provider\",\n \"routingPolicy\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ModelRegistryRecord = {\n modelId: string;\n provider: string;\n displayName?: string;\n status?: string;\n capabilities?: string[];\n contextWindow?: number;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ModelFunctionSlot = {\n functionName: string;\n slotKey: string;\n modelId?: string;\n provider?: string;\n routingPolicy?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ModelRuntimeScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n provider?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type ResolveModelSlotInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey?: string;\n metadata?: JsonObject;\n};\n\nexport type UpdateModelSlotConfigInput = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n functionName: string;\n slotKey: string;\n modelId: string;\n provider?: string;\n routingPolicy?: JsonObject;\n metadata?: JsonObject;\n};\n\nexport type ModelsResponse = ListResult<ModelRegistryRecord, \"models\">;\nexport type ModelSlotsResponse = ListResult<ModelFunctionSlot, \"slots\">;\n\nfunction scopeQuery(input: ModelRuntimeScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n provider: input.provider,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction modelRuntimeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, MODEL_RUNTIME_FIELDS, operation);\n}\n\nexport function createModelRuntimeClient(\n config: ModelRuntimeClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listModels(input: ModelRuntimeScope) {\n return gateway.request<ModelsResponse>({\n path: `/api/platform/v1/model-runtime/models${toQueryString(\n scopeQuery(input)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelRegistryRecord, \"models\">(data, \"models\")\n )\n );\n },\n\n getModel(input: ModelRuntimeScope & { modelId: string }) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelRegistryRecord>({\n path: `/api/platform/v1/model-runtime/models/${encodeURIComponent(\n input.modelId\n )}${toQueryString({\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n })}`,\n });\n },\n\n listFunctionSlots(input: ModelRuntimeScope & { functionName?: string }) {\n return gateway.request<ModelSlotsResponse>({\n path: `/api/platform/v1/model-runtime/function-slots${toQueryString({\n ...scopeQuery(input),\n functionName: input.functionName,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ModelFunctionSlot, \"slots\">(data, \"slots\")\n )\n );\n },\n\n resolveSlot(input: ResolveModelSlotInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/function-slots/resolve\",\n method: \"POST\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.resolveSlot\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n updateSlotConfig(\n input: UpdateModelSlotConfigInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.functionName, \"functionName\");\n cleanRequiredString(input.slotKey, \"slotKey\");\n cleanRequiredString(input.modelId, \"modelId\");\n return gateway.request<ModelFunctionSlot>({\n path: \"/api/platform/v1/model-runtime/slot-configs\",\n method: \"PUT\",\n body: modelRuntimeBody(\n input as unknown as Record<string, unknown>,\n \"modelRuntime.updateSlotConfig\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanOptionalString,\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OntologyLinksClientConfig = GatewayClientConfig;\n\nexport const ONTOLOGY_LINK_FIELDS = [\n \"topicId\",\n \"workspaceId\",\n \"linkId\",\n \"sourceNodeId\",\n \"sourceGlobalId\",\n \"targetNodeId\",\n \"targetGlobalId\",\n \"ontologyId\",\n \"ontologyType\",\n \"edgeType\",\n \"weight\",\n \"confidence\",\n \"status\",\n \"metadata\",\n] as const;\n\nexport type OntologyLinkStatus =\n | \"active\"\n | \"candidate\"\n | \"dismissed\"\n | \"superseded\"\n | \"archived\";\n\nexport type OntologyLinkRecord = {\n linkId?: string;\n edgeId?: string;\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type OntologyLinkWriteInput = {\n topicId?: string;\n workspaceId?: string;\n sourceNodeId?: string;\n sourceGlobalId?: string;\n targetNodeId?: string;\n targetGlobalId?: string;\n ontologyId: string;\n ontologyType?: string;\n edgeType: string;\n weight?: number;\n confidence?: number;\n status?: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type ListOntologyLinksForNodeInput = {\n nodeId?: string;\n globalId?: string;\n topicId?: string;\n workspaceId?: string;\n ontologyId?: string;\n ontologyType?: string;\n edgeType?: string;\n status?: OntologyLinkStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpdateOntologyLinkStatusInput = {\n linkId: string;\n status: OntologyLinkStatus;\n metadata?: JsonObject;\n};\n\nexport type OntologyLinksResponse = ListResult<OntologyLinkRecord, \"links\">;\n\nfunction assertEndpoints(input: OntologyLinkWriteInput) {\n if (!input.sourceNodeId && !input.sourceGlobalId) {\n throw new Error(\"sourceNodeId or sourceGlobalId is required\");\n }\n if (!input.targetNodeId && !input.targetGlobalId) {\n throw new Error(\"targetNodeId or targetGlobalId is required\");\n }\n}\n\nfunction normalizeLinkPayload(\n input: OntologyLinkWriteInput,\n operation: string\n) {\n assertEndpoints(input);\n cleanRequiredString(input.ontologyId, \"ontologyId\");\n cleanRequiredString(input.edgeType, \"edgeType\");\n return knownPayload(input as Record<string, unknown>, ONTOLOGY_LINK_FIELDS, operation);\n}\n\nexport function createOntologyLinksClient(\n config: OntologyLinksClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n createLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"POST\",\n body: normalizeLinkPayload(input, \"ontologyLinks.createLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n upsertLink(input: OntologyLinkWriteInput, idempotencyKey?: string) {\n return gateway.request<OntologyLinkRecord>({\n path: \"/api/platform/v1/ontology-links\",\n method: \"PUT\",\n body: normalizeLinkPayload(input, \"ontologyLinks.upsertLink\"),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listLinksForNode(input: ListOntologyLinksForNodeInput) {\n const nodeId = cleanOptionalString(input.nodeId);\n const globalId = cleanOptionalString(input.globalId);\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const pathId = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OntologyLinksResponse>({\n path: `/api/platform/v1/ontology-links/nodes/${pathId}${toQueryString({\n topicId: input.topicId,\n workspaceId: input.workspaceId,\n globalId: nodeId ? undefined : globalId,\n ontologyId: input.ontologyId,\n ontologyType: input.ontologyType,\n edgeType: input.edgeType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<OntologyLinkRecord, \"links\">(data, \"links\")\n )\n );\n },\n\n updateLinkStatus(\n input: UpdateOntologyLinkStatusInput,\n idempotencyKey?: string\n ) {\n return gateway.request<OntologyLinkRecord>({\n path: `/api/platform/v1/ontology-links/${encodeURIComponent(\n input.linkId\n )}/status`,\n method: \"PATCH\",\n body: knownPayload(\n input as unknown as Record<string, unknown>,\n ONTOLOGY_LINK_FIELDS,\n \"ontologyLinks.updateLinkStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type OrgGraphSearchClientConfig = GatewayClientConfig;\n\nexport const ORG_GRAPH_SEARCH_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"query\",\n \"nodeTypes\",\n \"minConfidence\",\n \"limit\",\n \"cursor\",\n \"provenanceScope\",\n] as const;\n\nexport type OrgGraphProvenanceScope =\n | \"canonical\"\n | \"published\"\n | \"own_workspace\"\n | \"cross_workspace\";\n\nexport type OrgGraphVisibility =\n | \"private\"\n | \"workspace\"\n | \"tenant\"\n | \"public\";\n\nexport type OrgGraphSearchProvenance = {\n scope?: OrgGraphProvenanceScope | string;\n source?: string;\n sourceNodeId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchResult = {\n nodeId: string;\n globalId?: string;\n topicId?: string;\n sourceWorkspaceId?: string;\n publishedAt?: number;\n publishedByPrincipalId?: string;\n visibility?: OrgGraphVisibility | string;\n confidence?: number | null;\n confidenceHistory?: Array<{\n confidence?: number;\n timestamp?: number;\n rationale?: string;\n trigger?: string;\n }>;\n provenance?: OrgGraphSearchProvenance;\n nodeType?: string;\n text?: string;\n title?: string;\n metadata?: JsonObject | null;\n};\n\nexport type OrgGraphSearchInput = {\n tenantId: string;\n workspaceId: string;\n query: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n provenanceScope?: OrgGraphProvenanceScope;\n};\n\nexport type GetOrgGraphNodeInput = {\n tenantId: string;\n workspaceId: string;\n nodeId?: string;\n globalId?: string;\n};\n\nexport type ListOrgGraphByProvenanceInput = {\n tenantId: string;\n workspaceId: string;\n provenanceScope: OrgGraphProvenanceScope;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type ListPublishedFromWorkspaceInput = {\n tenantId: string;\n workspaceId: string;\n sourceWorkspaceId?: string;\n nodeTypes?: string[];\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n};\n\nexport type OrgGraphSearchResponse = ListResult<\n OrgGraphSearchResult,\n \"results\"\n>;\n\nfunction cleanString(value: string | undefined, label: string) {\n const normalized = value?.trim();\n if (!normalized) {\n throw new Error(`${label} is required`);\n }\n return normalized;\n}\n\nfunction assertKnownSearchKeys(input: Record<string, unknown>, operation: string) {\n const allowed = new Set<string>(ORG_GRAPH_SEARCH_FIELDS);\n const unknownKeys = Object.keys(input).filter((key) => !allowed.has(key));\n if (unknownKeys.length > 0) {\n throw new Error(\n `${operation} received unsupported field(s): ${unknownKeys.join(\", \")}`\n );\n }\n}\n\nfunction searchBody(input: OrgGraphSearchInput): JsonObject {\n assertKnownSearchKeys(\n input as Record<string, unknown>,\n \"orgGraphSearch.search\"\n );\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n query: cleanString(input.query, \"query\"),\n nodeTypes: input.nodeTypes,\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n provenanceScope: input.provenanceScope,\n };\n}\n\nfunction listQuery(\n input: ListOrgGraphByProvenanceInput | ListPublishedFromWorkspaceInput\n) {\n return {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n nodeTypes: input.nodeTypes?.join(\",\"),\n minConfidence: input.minConfidence,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction mapResults(data: unknown): OrgGraphSearchResponse {\n const record = data && typeof data === \"object\" ? data : {};\n return createListResult(\n Array.isArray((record as { results?: unknown[] }).results)\n ? (record as { results: OrgGraphSearchResult[] }).results\n : Array.isArray(data)\n ? data\n : [],\n \"results\"\n );\n}\n\nexport function createOrgGraphSearchClient(\n config: OrgGraphSearchClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n search(input: OrgGraphSearchInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: \"/api/platform/v1/org-graph-search/search\",\n method: \"POST\",\n body: searchBody(input),\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n getNode(input: GetOrgGraphNodeInput) {\n const nodeId = input.nodeId?.trim();\n const globalId = input.globalId?.trim();\n if (!nodeId && !globalId) {\n throw new Error(\"nodeId or globalId is required\");\n }\n const nodePath = encodeURIComponent(nodeId ?? globalId ?? \"\");\n return gateway.request<OrgGraphSearchResult>({\n path: `/api/platform/v1/org-graph-search/nodes/${nodePath}${toQueryString(\n {\n tenantId: cleanString(input.tenantId, \"tenantId\"),\n workspaceId: cleanString(input.workspaceId, \"workspaceId\"),\n globalId: nodeId ? undefined : globalId,\n }\n )}`,\n });\n },\n\n listByProvenance(input: ListOrgGraphByProvenanceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/provenance${toQueryString({\n ...listQuery(input),\n provenanceScope: input.provenanceScope,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n\n listPublishedFromWorkspace(input: ListPublishedFromWorkspaceInput) {\n return gateway.request<OrgGraphSearchResponse>({\n path: `/api/platform/v1/org-graph-search/published${toQueryString({\n ...listQuery(input),\n sourceWorkspaceId: input.sourceWorkspaceId,\n })}`,\n }).then((response) => mapGatewayData(response, mapResults));\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the packs client. */\nexport type PacksClientConfig = GatewayClientConfig;\n\n/** Input for installing a pack into a tenant or workspace scope. */\nexport type PackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for enabling a previously installed pack. */\nexport type PackEnableInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for disabling an active pack. */\nexport type PackDisableInput = GatewayScope & {\n packKey: string;\n force?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for uninstalling a pack from a tenant or workspace scope. */\nexport type PackUninstallInput = GatewayScope & {\n packKey: string;\n metadata?: JsonObject;\n};\n\n/** Input for upgrading a pack through the prepare/canary/commit/rollback lifecycle. */\nexport type PackUpgradeInput = GatewayScope & {\n packKey: string;\n mode: \"prepare\" | \"canary\" | \"commit\" | \"rollback\";\n targetVersion?: string;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a pack entitlement record. */\nexport type PackEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the packs client for pack catalog, state, and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage pack lifecycle, telemetry, and entitlements.\n */\nexport function createPacksClient(config: PacksClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List catalog entries for available packs.\n */\n async listCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/catalog\",\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"catalog\")\n )\n );\n },\n\n /**\n * @deprecated Use listCatalog.\n */\n async getCatalog() {\n return this.listCatalog();\n },\n\n /**\n * Get the discovery catalog for packs.\n */\n async getDiscoveryCatalog() {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/discovery\",\n });\n },\n\n /**\n * Get discovery details for a specific pack.\n */\n async getDiscoveryDetail(packKey: string) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/discovery/${encodeURIComponent(packKey)}`,\n });\n },\n\n /**\n * List pack states for the current scope.\n */\n async listStates(query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/states${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"states\")\n )\n );\n },\n\n /**\n * @deprecated Use listStates.\n */\n async getStates(query: GatewayScope = {}) {\n return this.listStates(query);\n },\n\n /**\n * Get health details for a pack.\n */\n async getHealth(packKey: string, query: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/${encodeURIComponent(packKey)}/health${toQueryString(\n query\n )}`,\n });\n },\n\n /**\n * List pack telemetry entries.\n */\n async listTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/packs/telemetry${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"telemetry\")\n )\n );\n },\n\n /**\n * @deprecated Use listTelemetry.\n */\n async getTelemetry(\n query: GatewayScope & { lookbackHours?: number; limit?: number } = {}\n ) {\n return this.listTelemetry(query);\n },\n\n /**\n * Create a pack entitlement.\n */\n async createEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a pack entitlement.\n */\n async updateEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: PackEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * Install a pack.\n */\n async install(input: PackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/install\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Enable a pack.\n */\n async enable(input: PackEnableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/enable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Disable a pack.\n */\n async disable(input: PackDisableInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/disable\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Uninstall a pack.\n */\n async uninstall(input: PackUninstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/uninstall\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Upgrade a pack.\n */\n async upgrade(input: PackUpgradeInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/packs/upgrade\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the policy client. */\nexport type PolicyClientConfig = GatewayClientConfig;\n\n/** Permission direction: read access or write access. */\nexport type PermissionKind = \"read\" | \"write\";\n\n/** Permission level for a write policy rule. */\nexport type WritePolicyPermission = \"allow\" | \"deny\" | \"review_required\";\n\ntype TopicRecord = {\n topicId?: string;\n name?: string;\n type?: string;\n isOwner?: boolean;\n [key: string]: unknown;\n};\n\n/** Structured explanation of how a policy decision was derived. */\nexport type PolicyDecisionExplanation = {\n summary?: string;\n matchedReasonCode?: string;\n steps?: Array<{\n stage?: string;\n outcome?: string;\n reasonCode?: string;\n detail?: string;\n }>;\n [key: string]: unknown;\n};\n\n/** Result of a permission check against the policy engine. */\nexport type PermissionDecision = {\n allowed?: boolean;\n decision?: string;\n reasonCode?: string;\n principalId?: string;\n topicId?: string;\n permission?: string;\n policyVersion?: string;\n traceId?: string | null;\n explanation?: PolicyDecisionExplanation;\n};\n\n/** A persisted write policy rule controlling mutation access. */\nexport type WritePolicyRecord = {\n id?: string;\n topicId?: string;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n resolution?: string;\n [key: string]: unknown;\n};\n\n/** Input for creating a write policy rule. */\nexport type WritePolicyCreateInput = GatewayScope & {\n topicId?: string;\n role: string;\n toolCategory: string;\n permission: WritePolicyPermission;\n maxWritesPerSession?: number;\n enabled?: boolean;\n rationale?: string;\n createdBy?: string;\n};\n\n/** Input for partially updating an existing write policy rule. */\nexport type WritePolicyUpdateInput = GatewayScope & {\n topicId?: string;\n clearTopicId?: boolean;\n role?: string;\n toolCategory?: string;\n permission?: WritePolicyPermission;\n maxWritesPerSession?: number;\n clearMaxWritesPerSession?: boolean;\n enabled?: boolean;\n rationale?: string;\n clearRationale?: boolean;\n};\n\nexport type TenantPolicyPermission = {\n resource: string;\n actions: string[];\n};\n\nexport type TenantPolicyRecord = {\n id?: string;\n tenantId: string;\n workspaceId?: string;\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings: string[];\n createdAt?: number;\n updatedAt?: number;\n createdBy?: string;\n updatedBy?: string;\n};\n\ntype AccessibleTopicsResponse = {\n permission: PermissionKind;\n topics: TopicRecord[];\n total: number;\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n};\n\ntype FilterByPermissionResponse = {\n permission: PermissionKind;\n allowedTopicIds: string[];\n deniedTopics: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count: number;\n};\n\nfunction asTopicArray(data: unknown): TopicRecord[] {\n if (Array.isArray(data)) {\n return data.filter(\n (row): row is TopicRecord => Boolean(row) && typeof row === \"object\"\n );\n }\n return [];\n}\n\nfunction asWritePolicyRecord(data: unknown): WritePolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as WritePolicyRecord;\n}\n\nfunction asWritePolicyArray(data: unknown): WritePolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asWritePolicyRecord)\n .filter((row): row is WritePolicyRecord => Boolean(row));\n}\n\nfunction asRolePolicyRecord(data: unknown): TenantPolicyRecord | null {\n if (!data || typeof data !== \"object\") {\n return null;\n }\n return data as TenantPolicyRecord;\n}\n\nfunction asRolePolicyArray(data: unknown): TenantPolicyRecord[] {\n if (!Array.isArray(data)) {\n return [];\n }\n return data\n .map(asRolePolicyRecord)\n .filter((row): row is TenantPolicyRecord => Boolean(row));\n}\n\n/**\n * Create the policy client for permission checks, grants, and write policies.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to check permissions, manage grants, and manage write policies.\n */\nexport function createPolicyClient(config: PolicyClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List policy decisions in the current scope.\n */\n async listDecisions(\n query: GatewayScope & {\n action?: string;\n decision?: string;\n traceId?: string;\n principalId?: string;\n topicId?: string;\n limit?: number;\n } = {}\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/decisions${toQueryString(query)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"decisions\")\n )\n );\n },\n\n /**\n * Create a permission grant.\n */\n async grant(\n input: GatewayScope & {\n topicId: string;\n permission: PermissionKind;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n expiresAt?: number;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/grant\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Delete a permission grant by revoking it.\n */\n async revoke(\n input: GatewayScope & {\n topicId: string;\n principal?: string;\n principalId?: string;\n groupId?: string;\n beliefClusterId?: string;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/policy/revoke\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List write policy rules for the current scope.\n */\n async listWritePolicies(\n query: GatewayScope & {\n topicId?: string;\n role?: string;\n toolCategory?: string;\n enabled?: boolean;\n } = {}\n ) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/write-policies${toQueryString(query)}`,\n });\n const rawPolicies =\n response.data && typeof response.data === \"object\"\n ? (response.data as { policies?: unknown[] }).policies\n : response.data;\n\n return {\n ...response,\n data: {\n policies: asWritePolicyArray(rawPolicies),\n },\n };\n },\n\n /**\n * Create a write policy rule.\n */\n async createWritePolicy(\n input: WritePolicyCreateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n created?: boolean;\n policy?: unknown;\n }>({\n path: \"/api/platform/v1/policy/write-policies\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n created: response.data?.created === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update an existing write policy rule by identifier.\n */\n async updateWritePolicy(\n id: string,\n input: WritePolicyUpdateInput,\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{\n id?: string;\n updated?: boolean;\n policy?: unknown;\n }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n id:\n typeof response.data?.id === \"string\" ? response.data.id : undefined,\n updated: response.data?.updated === true,\n policy: asWritePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a write policy rule by identifier.\n */\n async deleteWritePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<{ id?: string; deleted?: boolean }>({\n path: `/api/platform/v1/policy/write-policies/${encodeURIComponent(\n id\n )}${toQueryString(scope)}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List tenant role policies for the current scope.\n */\n async listRolePolicies(query: GatewayScope = {}) {\n const response = await gateway.request<{ policies?: unknown[] }>({\n path: `/api/platform/v1/policy/roles${toQueryString(query)}`,\n });\n\n return {\n ...response,\n data: {\n policies: asRolePolicyArray(response.data?.policies),\n },\n };\n },\n\n /**\n * Create a tenant role policy.\n */\n async createRolePolicy(\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: \"/api/platform/v1/policy/roles\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Update a tenant role policy by identifier.\n */\n async updateRolePolicy(\n id: string,\n input: GatewayScope & {\n roleName: string;\n description?: string;\n permissions: TenantPolicyPermission[];\n groupBindings?: string[];\n },\n idempotencyKey?: string\n ) {\n const response = await gateway.request<{ policy?: unknown }>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n\n return {\n ...response,\n data: {\n policy: asRolePolicyRecord(response.data?.policy),\n },\n };\n },\n\n /**\n * Delete a tenant role policy by identifier.\n */\n async deleteRolePolicy(\n id: string,\n scope: GatewayScope = {},\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/policy/roles/${encodeURIComponent(id)}${toQueryString(\n scope\n )}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Check a permission decision for a topic or project scope.\n */\n async checkPermission(\n query: GatewayScope & {\n topicId?: string;\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n beliefClusterId?: string;\n }\n ) {\n if (!query.topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<PermissionDecision>({\n path: `/api/platform/v1/policy/check${toQueryString(query)}`,\n });\n },\n\n /**\n * List accessible topics for a principal.\n */\n async listAccessibleTopics(\n query: GatewayScope & {\n permission?: PermissionKind;\n includeShared?: boolean;\n principal?: string;\n principalId?: string;\n limit?: number;\n } = {}\n ) {\n const permission = query.permission ?? \"read\";\n const principal = query.principal ?? query.principalId;\n const response = await gateway.request<{\n permission?: PermissionKind;\n topics?: unknown[];\n total?: number;\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n }>({\n path: `/api/platform/v1/policy/topics${toQueryString({\n tenantId: query.tenantId,\n workspaceId: query.workspaceId,\n permission,\n includeShared: query.includeShared,\n principal,\n limit: query.limit,\n })}`,\n });\n\n return {\n ...response,\n data: {\n permission,\n topics: asTopicArray(response.data?.topics),\n total:\n typeof response.data?.total === \"number\"\n ? response.data.total\n : asTopicArray(response.data?.topics).length,\n deniedTopics: Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [],\n } satisfies AccessibleTopicsResponse,\n };\n },\n\n /**\n * Filter topic identifiers by permission.\n */\n async filterByPermission(\n input: GatewayScope & {\n topicIds?: string[];\n permission?: PermissionKind;\n principal?: string;\n principalId?: string;\n }\n ) {\n const permission = input.permission ?? \"read\";\n const principal = input.principal ?? input.principalId;\n const uniqueTopicIds = [...new Set(input.topicIds ?? [])].filter(\n (topicId) => typeof topicId === \"string\" && topicId.trim().length > 0\n );\n const response = await gateway.request<{\n permission?: PermissionKind;\n allowedTopicIds?: string[];\n deniedTopics?: Array<{\n topicId: string;\n reasonCode: string;\n }>;\n count?: number;\n }>({\n path: \"/api/platform/v1/policy/filter\",\n method: \"POST\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n topicIds: uniqueTopicIds,\n permission,\n principal,\n },\n });\n\n const allowedTopicIds = Array.isArray(response.data?.allowedTopicIds)\n ? response.data.allowedTopicIds\n : [];\n const deniedTopics = Array.isArray(response.data?.deniedTopics)\n ? response.data.deniedTopics\n : [];\n\n return {\n success: true,\n data: {\n permission,\n allowedTopicIds,\n deniedTopics,\n count:\n typeof response.data?.count === \"number\"\n ? response.data.count\n : allowedTopicIds.length,\n } satisfies FilterByPermissionResponse,\n };\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData, resolveTopicId } from \"./sdkSurface\";\nimport type {\n TopicIdentifierInput,\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/** Configuration for the reports client. */\nexport type ReportsClientConfig = GatewayClientConfig;\nexport type {\n ProjectReportsResponse,\n ReportTemplatesResponse,\n ReportWithSectionsResponse,\n} from \"./types\";\n\n/**\n * Create the reports client for report templates and generated reports.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to list templates, list reports, and get a report.\n */\nexport function createReportsClient(config: ReportsClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List report templates.\n */\n async listTemplates(args: { slug?: string } = {}) {\n return gateway.request<ReportTemplatesResponse>({\n path: `/api/platform/v1/reports/templates${toQueryString({\n slug: args.slug,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n const rows = Array.isArray(data)\n ? data\n : Array.isArray(record.templates)\n ? record.templates\n : [];\n return createListResult(rows, \"templates\") as ReportTemplatesResponse;\n })\n );\n },\n\n /**\n * @deprecated Use listTemplates.\n */\n async getTemplates(args: { slug?: string } = {}) {\n return this.listTemplates(args);\n },\n\n /**\n * List reports for a topic scope.\n */\n async listReports(\n input: TopicIdentifierInput,\n args: { summary?: boolean } = {}\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return gateway.request<ProjectReportsResponse>({\n path: `/api/platform/v1/reports/topics/${encodeURIComponent(topicId)}${toQueryString(\n {\n summary:\n typeof args.summary === \"boolean\"\n ? args.summary\n ? \"true\"\n : \"false\"\n : undefined,\n }\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"reports\")\n )\n );\n },\n /**\n * Get a generated report.\n */\n async getReport(reportId: string) {\n return gateway.request<ReportWithSectionsResponse>({\n path: `/api/platform/v1/reports/${encodeURIComponent(reportId)}`,\n });\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n type GatewayScope,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport { createListResult, mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject } from \"./types\";\n\nexport { LucernApiError };\nexport type { GatewayScope, PlatformGatewaySuccess } from \"./coreClient\";\n\n/** Configuration for the schema client. */\nexport type SchemaClientConfig = GatewayClientConfig;\n\n/** Input for installing a schema pack into a tenant scope. */\nexport type SchemaPackInstallInput = GatewayScope & {\n packKey: string;\n version?: string;\n autoEnable?: boolean;\n metadata?: JsonObject;\n};\n\n/** Input for creating or updating a schema entitlement record. */\nexport type SchemaEntitlementInput = GatewayScope & {\n packKey: string;\n status: \"active\" | \"disabled\" | \"revoked\";\n allowedLifecycles?: Array<\"active\" | \"beta\" | \"experimental\">;\n minVersion?: string;\n maxVersion?: string;\n metadata?: JsonObject;\n};\n\n/**\n * Create the schema client for pack catalog and entitlement operations.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage schema packs and entitlements.\n */\nexport function createSchemaClient(config: SchemaClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n /**\n * List schema packs.\n */\n async listPacks(scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"packs\")\n )\n );\n },\n\n /**\n * Install a schema pack.\n */\n async installPack(input: SchemaPackInstallInput, idempotencyKey?: string) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/packs\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Get a schema pack by identifier.\n */\n async getPack(packId: string, scope: GatewayScope = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/packs/${encodeURIComponent(packId)}${toQueryString(\n scope\n )}`,\n });\n },\n\n /**\n * List schema entitlements.\n */\n async listEntitlements(scope: GatewayScope & { packKey?: string } = {}) {\n return gateway.request<unknown>({\n path: `/api/platform/v1/schema/entitlements${toQueryString(scope)}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n createListResult(Array.isArray(data) ? data : [], \"entitlements\")\n )\n );\n },\n\n /**\n * Create a schema entitlement.\n */\n async createEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return gateway.request<unknown>({\n path: \"/api/platform/v1/schema/entitlements\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a schema entitlement.\n */\n async updateEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use createEntitlement or updateEntitlement.\n */\n async upsertEntitlement(\n input: SchemaEntitlementInput,\n idempotencyKey?: string\n ) {\n return this.createEntitlement(input, idempotencyKey);\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, ListResult } from \"./types\";\n\nexport type TelemetryClientConfig = GatewayClientConfig;\n\nexport const TELEMETRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"topicId\",\n \"worktreeId\",\n \"eventLevel\",\n \"eventType\",\n \"message\",\n \"toolName\",\n \"toolCalls\",\n \"decision\",\n \"policySubject\",\n \"policyAction\",\n \"policyResource\",\n \"runId\",\n \"runType\",\n \"status\",\n \"durationMs\",\n \"error\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type TelemetryRunRecord = {\n runId: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n runType?: string;\n status?: string;\n metadata?: JsonObject | null;\n startedAt?: number;\n finishedAt?: number;\n};\n\nexport type TelemetryScope = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n topicId?: string;\n worktreeId?: string;\n runType?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n};\n\nexport type LogSystemEventInput = TelemetryScope & {\n eventLevel: \"debug\" | \"info\" | \"warn\" | \"error\" | string;\n eventType: string;\n message: string;\n metadata?: JsonObject;\n};\n\nexport type LogToolCallsBatchInput = TelemetryScope & {\n toolCalls: Array<{\n toolName: string;\n status?: string;\n durationMs?: number;\n metadata?: JsonObject;\n }>;\n metadata?: JsonObject;\n};\n\nexport type RecordEpistemicAuditInput = TelemetryScope & {\n eventType: string;\n message?: string;\n metadata?: JsonObject;\n};\n\nexport type RecordTelemetryPolicyDecisionInput = TelemetryScope & {\n policySubject?: string;\n policyAction?: string;\n policyResource?: string;\n decision: \"allow\" | \"deny\" | string;\n metadata?: JsonObject;\n};\n\nexport type StartTelemetryRunInput = TelemetryScope & {\n runId?: string;\n runType: string;\n metadata?: JsonObject;\n};\n\nexport type FinishTelemetryRunInput = TelemetryScope & {\n runId: string;\n status: string;\n durationMs?: number;\n error?: string;\n metadata?: JsonObject;\n};\n\nexport type TelemetryRunsResponse = ListResult<TelemetryRunRecord, \"runs\">;\n\nfunction query(input: TelemetryScope) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n topicId: input.topicId,\n worktreeId: input.worktreeId,\n runType: input.runType,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction body(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TELEMETRY_FIELDS, operation);\n}\n\nexport function createTelemetryClient(config: TelemetryClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n logSystemEvent(input: LogSystemEventInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n cleanRequiredString(input.message, \"message\");\n return gateway.request<{ eventId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/system-events\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logSystemEvent\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n logToolCallsBatch(\n input: LogToolCallsBatchInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<{ recorded: number }>({\n path: \"/api/platform/v1/telemetry/tool-calls/batch\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.logToolCallsBatch\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordEpistemicAudit(\n input: RecordEpistemicAuditInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.eventType, \"eventType\");\n return gateway.request<{ auditId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/epistemic-audits\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordEpistemicAudit\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n recordPolicyDecision(\n input: RecordTelemetryPolicyDecisionInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.decision, \"decision\");\n return gateway.request<{ decisionId?: string; recorded: boolean }>({\n path: \"/api/platform/v1/telemetry/policy-decisions\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.recordPolicyDecision\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n startRun(input: StartTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runType, \"runType\");\n return gateway.request<TelemetryRunRecord>({\n path: \"/api/platform/v1/telemetry/runs/start\",\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.startRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n finishRun(input: FinishTelemetryRunInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.runId, \"runId\");\n return gateway.request<TelemetryRunRecord>({\n path: `/api/platform/v1/telemetry/runs/${encodeURIComponent(\n input.runId\n )}/finish`,\n method: \"POST\",\n body: body(\n input as unknown as Record<string, unknown>,\n \"telemetry.finishRun\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n listRuns(input: TelemetryScope) {\n return gateway.request<TelemetryRunsResponse>({\n path: `/api/platform/v1/telemetry/runs${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<TelemetryRunRecord, \"runs\">(data, \"runs\")\n )\n );\n },\n };\n}\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n cleanRequiredString,\n knownPayload,\n listResultFromEnvelope,\n} from \"./boundaryClientSurface\";\nimport { mapGatewayData } from \"./sdkSurface\";\nimport type { JsonObject, JsonValue, ListResult } from \"./types\";\n\nexport type ToolRegistryClientConfig = GatewayClientConfig;\n\nexport const TOOL_REGISTRY_FIELDS = [\n \"tenantId\",\n \"workspaceId\",\n \"principalId\",\n \"toolName\",\n \"packKey\",\n \"packVersion\",\n \"status\",\n \"permissions\",\n \"role\",\n \"surface\",\n \"parameterSchema\",\n \"returnSchema\",\n \"handlerRef\",\n \"executionAdapter\",\n \"safetyMetadata\",\n \"aclId\",\n \"metadata\",\n \"limit\",\n \"cursor\",\n] as const;\n\nexport type ToolRegistryStatus =\n | \"enabled\"\n | \"disabled\"\n | \"deprecated\"\n | \"blocked\";\n\nexport type ToolCatalogEntry = {\n toolName: string;\n packKey?: string;\n packVersion?: string;\n status?: ToolRegistryStatus | string;\n permissions?: string[];\n role?: string;\n surface?: string;\n parameterSchema?: JsonObject | null;\n returnSchema?: JsonObject | null;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject | null;\n metadata?: JsonObject | null;\n};\n\nexport type ToolAclRecord = {\n aclId?: string;\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus | string;\n metadata?: JsonObject | null;\n createdAt?: number;\n updatedAt?: number;\n};\n\nexport type ToolRegistryQuery = {\n tenantId: string;\n workspaceId?: string;\n principalId?: string;\n packKey?: string;\n status?: ToolRegistryStatus;\n limit?: number;\n cursor?: string;\n};\n\nexport type UpsertCoreToolsInput = {\n tenantId: string;\n workspaceId?: string;\n tools: ToolCatalogEntry[];\n metadata?: JsonObject;\n};\n\nexport type SetPackToolsStatusInput = {\n tenantId: string;\n workspaceId?: string;\n packKey: string;\n status: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type CreateToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n principalId: string;\n toolName: string;\n packKey?: string;\n permissions?: string[];\n status?: ToolRegistryStatus;\n metadata?: JsonObject;\n};\n\nexport type DeleteToolAclInput = {\n tenantId: string;\n workspaceId?: string;\n aclId: string;\n metadata?: JsonObject;\n};\n\nexport type RegisterCustomToolInput = {\n tenantId: string;\n workspaceId?: string;\n toolName: string;\n packKey?: string;\n parameterSchema?: JsonObject;\n returnSchema?: JsonObject;\n handlerRef?: string;\n executionAdapter?: string;\n safetyMetadata?: JsonObject;\n permissions?: string[];\n metadata?: JsonObject;\n};\n\nexport type ToolCatalogResponse = ListResult<ToolCatalogEntry, \"tools\">;\nexport type ToolAclResponse = ListResult<ToolAclRecord, \"acls\">;\n\nfunction query(input: ToolRegistryQuery) {\n return {\n tenantId: cleanRequiredString(input.tenantId, \"tenantId\"),\n workspaceId: input.workspaceId,\n principalId: input.principalId,\n packKey: input.packKey,\n status: input.status,\n limit: input.limit,\n cursor: input.cursor,\n };\n}\n\nfunction writeBody(input: Record<string, unknown>, operation: string) {\n return knownPayload(input, TOOL_REGISTRY_FIELDS, operation);\n}\n\nexport function createToolRegistryClient(\n config: ToolRegistryClientConfig = {}\n) {\n const gateway = createGatewayRequestClient(config);\n\n return {\n listCatalog(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/catalog${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listExecutable(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/executable${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n listEffectiveTools(input: ToolRegistryQuery) {\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/effective${toQueryString(query(input))}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n upsertCoreTools(input: UpsertCoreToolsInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n return gateway.request<ToolCatalogResponse>({\n path: \"/api/platform/v1/tools/core\",\n method: \"PUT\",\n body: {\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n metadata: input.metadata,\n tools: input.tools as unknown as JsonValue,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n setPackToolsStatus(\n input: SetPackToolsStatusInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.packKey, \"packKey\");\n return gateway.request<ToolCatalogResponse>({\n path: `/api/platform/v1/tools/packs/${encodeURIComponent(\n input.packKey\n )}/status`,\n method: \"PATCH\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.setPackToolsStatus\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n listResultFromEnvelope<ToolCatalogEntry, \"tools\">(data, \"tools\")\n )\n );\n },\n\n createAcl(input: CreateToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.principalId, \"principalId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolAclRecord>({\n path: \"/api/platform/v1/tools/acls\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.createAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n deleteAcl(input: DeleteToolAclInput, idempotencyKey?: string) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.aclId, \"aclId\");\n return gateway.request<{ aclId: string; deleted: boolean }>({\n path: `/api/platform/v1/tools/acls/${encodeURIComponent(input.aclId)}`,\n method: \"DELETE\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.deleteAcl\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n registerCustomTool(\n input: RegisterCustomToolInput,\n idempotencyKey?: string\n ) {\n cleanRequiredString(input.tenantId, \"tenantId\");\n cleanRequiredString(input.toolName, \"toolName\");\n return gateway.request<ToolCatalogEntry>({\n path: \"/api/platform/v1/tools/custom\",\n method: \"POST\",\n body: writeBody(\n input as unknown as Record<string, unknown>,\n \"tools.registerCustomTool\"\n ),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n };\n}\n","/** Current SDK package version. */\nexport const LUCERN_SDK_VERSION = \"0.2.0-alpha.1\";\n","import {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n asListItems,\n createListResult,\n mapAliasedList,\n mapGatewayData,\n normalizeTopicQuery,\n resolveTopicId,\n withTopicAlias,\n} from \"./sdkSurface\";\nimport type {\n LensPerspectiveType,\n LensPromptTemplateReference,\n LensStatus,\n LensTaskTemplate,\n LensWorkflowTemplate,\n} from \"./contracts/lensWorkflow\";\nimport type {\n WorkflowAutoFixPolicy,\n WorkflowProofArtifact,\n WorkflowStaffingHint,\n} from \"./contracts/workflowRuntime\";\nimport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n JsonObject,\n JsonValue,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n TopicIdentifierInput,\n UpdateTaskResponse,\n WorkflowBranchRecord,\n WorkflowLensRecord,\n WorkflowTopicRecord,\n WorkflowWorktreeRecord,\n} from \"./types\";\n\nexport { LucernApiError };\nexport type { PlatformGatewaySuccess } from \"./coreClient\";\nexport type {\n AddWorktreeResponse,\n CompleteTaskResponse,\n CreateBranchResponse,\n CreateLensResponse,\n CreateTaskResponse,\n LensTopicBindingResponse,\n ListBranchesResponse,\n ListLensesResponse,\n ListTopicsResponse,\n ListWorktreesResponse,\n MergeWorktreeResponse,\n OpenPullRequestResponse,\n PushWorktreeResponse,\n SwitchTopicContextResponse,\n UpdateTaskResponse,\n} from \"./types\";\n\n/** Configuration for the workflow client. */\nexport type WorkflowClientConfig = GatewayClientConfig;\n\n/** Lifecycle status of a workflow branch. */\nexport type WorkflowBranchStatus = \"dormant\" | \"active\" | \"archived\";\n\n/** Lifecycle status of a workflow lens. */\nexport type WorkflowLensStatus = LensStatus;\n\n/** Analytical perspective type for a lens overlay. */\nexport type WorkflowLensPerspectiveType = LensPerspectiveType;\n\n/** Lifecycle status of a workflow worktree. */\nexport type WorkflowWorktreeStatus =\n | \"planning\"\n | \"active\"\n | \"paused\"\n | \"completed\"\n | \"merged\"\n | \"failed\"\n | \"archived\";\n\n/** Possible outcomes when merging worktree findings into the main belief line. */\nexport type WorkflowMergeOutcome =\n | \"validated\"\n | \"invalidated\"\n | \"forked\"\n | \"inconclusive\";\n\n/** Input for creating a new workflow worktree. */\nexport type AddWorktreeInput = {\n title: string;\n topicId?: string;\n branchId?: string;\n objective?: string;\n hypothesis?: string;\n rationale?: string;\n worktreeType?: string;\n startDate?: number;\n endDate?: number;\n durationWeeks?: number;\n confidenceImpact?: \"high\" | \"medium\" | \"low\";\n beliefFocus?: string;\n beliefIds?: string[];\n targetBeliefIds?: string[];\n targetQuestionIds?: string[];\n keyQuestions?: Array<{\n question: string;\n status?: \"open\" | \"answered\" | \"forked\";\n answer?: string;\n answerConfidence?: \"high\" | \"medium\" | \"low\";\n linkedQuestionId?: string;\n }>;\n evidenceSignals?: Array<{\n signal: string;\n collected?: boolean;\n progress?: string;\n notes?: string;\n }>;\n decisionGate?: {\n goCriteria: string[];\n noGoSignals: string[];\n verdict?: \"go\" | \"no_go\" | \"pivot\" | \"pending\";\n verdictRationale?: string;\n decidedAt?: number;\n decidedBy?: string;\n };\n goCriteria?: string[];\n noGoSignals?: string[];\n autoShape?: boolean;\n domainPackId?: string;\n campaign?: number;\n lane?: string;\n laneOrderInCampaign?: number;\n orderInLane?: number;\n dependsOn?: string[];\n blocks?: string[];\n gate?: string;\n proofArtifacts?: WorkflowProofArtifact[];\n staffingHint?: WorkflowStaffingHint | string;\n lastReconciledAt?: number;\n autoFixPolicy?: WorkflowAutoFixPolicy;\n lensId?: string;\n} & TopicIdentifierInput;\n\nexport type WorkflowMergeInputOutcome =\n | string\n | {\n beliefId: string;\n confidence: number;\n rationale: string;\n };\n\n/** Input for merging worktree findings with optional belief confidence outcomes. */\nexport type MergeInput = {\n outcomes: WorkflowMergeInputOutcome[];\n summary?: string;\n};\n\n/** Input for updating the beliefs and questions tracked by a worktree. */\nexport type UpdateWorktreeTargetsInput = {\n worktreeId: string;\n addBeliefIds?: string[];\n addQuestionIds?: string[];\n removeBeliefIds?: string[];\n removeQuestionIds?: string[];\n};\n\n/** Input for marking a worktree complete with recorded outcomes. */\nexport type CompleteWorktreeInput = {\n worktreeId: string;\n keyFindings?: string[];\n decisionsReached?: string[];\n nextSteps?: string[];\n};\n\n/** Input for moving a worktree forward to its next phase. */\nexport type AdvanceWorktreePhaseInput = {\n worktreeId: string;\n};\n\n/** Input for forcing a worktree into a specific phase. */\nexport type SetWorktreePhaseInput = {\n worktreeId: string;\n phase: string;\n};\n\n/** Input for patching arbitrary structured worktree state. */\nexport type PatchWorktreeStateInput = {\n worktreeId: string;\n patch: JsonObject;\n};\n\n/** Input for batch-creating worktrees through the workflow surface. */\nexport type BulkCreateWorktreesInput = {\n worktrees: unknown[];\n};\n\n/** Input for listing accessible topic contexts. */\nexport type ListTopicsInput = {\n includeShared?: boolean;\n limit?: number;\n};\n\n/** Input for switching the active topic context by name. */\nexport type SwitchTopicContextInput = {\n targetTopicName: string;\n};\n\n/** Input for creating a workflow task linked to a question or worktree. */\nexport type CreateTaskInput = {\n title: string;\n topicId?: string;\n taskType?: \"research\" | \"interview\" | \"analysis\" | \"data_collection\";\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n linkedBeliefId?: string;\n description?: string;\n priority?: \"low\" | \"medium\" | \"high\" | \"urgent\";\n} & TopicIdentifierInput;\n\n/** Input for marking a workflow task as completed with an output summary. */\nexport type CompleteTaskInput = {\n outputSummary: string;\n evidenceCreated?: boolean;\n};\n\n/** Input for partially updating an existing workflow task. */\nexport type UpdateTaskInput = {\n title?: string;\n description?: string;\n linkedBeliefId?: string;\n linkedQuestionId?: string;\n linkedWorktreeId?: string;\n priority?: \"critical\" | \"high\" | \"medium\" | \"low\";\n status?: \"todo\" | \"in_progress\" | \"blocked\" | \"done\";\n};\n\nfunction normalizeLensQuery<T extends { topicId?: string }>(\n value: T\n) {\n const topicId = resolveTopicId(value);\n return {\n ...value,\n ...(topicId ? { topicId } : {}),\n };\n}\n\n/**\n * Create the workflow client for lenses, legacy branches, worktrees, context,\n * and tasks.\n * @param config - Gateway transport configuration.\n * @returns An object with methods to manage branches, lenses, worktrees, topics, and tasks.\n */\nexport function createWorkflowClient(config: WorkflowClientConfig = {}) {\n const gateway = createGatewayRequestClient(config);\n const client = {\n /**\n * List workflow branches for a topic scope.\n */\n async listBranches(query: {\n topicId?: string;\n status?: WorkflowBranchStatus;\n limit?: number;\n } & TopicIdentifierInput) {\n return gateway.request<ListBranchesResponse>({\n path: `/api/platform/v1/workflow/branches${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowBranchRecord, \"branches\">(data, \"branches\")\n )\n );\n },\n\n /**\n * Create a workflow branch.\n */\n async createBranch(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CreateBranchResponse>({\n path: \"/api/platform/v1/workflow/branches\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateBranchResponse\n )\n );\n },\n\n /**\n * List reusable lenses for a workspace or topic scope.\n */\n async listLenses(query: {\n workspaceId?: string;\n topicId?: string;\n status?: WorkflowLensStatus;\n perspectiveType?: WorkflowLensPerspectiveType;\n } & TopicIdentifierInput) {\n return gateway.request<ListLensesResponse>({\n path: `/api/platform/v1/workflow/lenses${toQueryString(\n normalizeLensQuery(query)\n )}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowLensRecord, \"lenses\">(data, \"lenses\")\n )\n );\n },\n\n /**\n * Create a reusable workflow lens.\n */\n async createLens(\n input: {\n name: string;\n workspaceId?: string;\n topicId?: string;\n description?: string;\n perspectiveType: WorkflowLensPerspectiveType;\n promptTemplates?: LensPromptTemplateReference[];\n workflowTemplates?: LensWorkflowTemplate[];\n taskTemplates?: LensTaskTemplate[];\n filterCriteria?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<CreateLensResponse>({\n path: \"/api/platform/v1/workflow/lenses\",\n method: \"POST\",\n body: payload as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as CreateLensResponse\n )\n );\n },\n\n /**\n * Apply an existing lens to a topic.\n */\n async applyLensToTopic(\n input: {\n lensId: string;\n topicId?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const payload = normalizeLensQuery(input);\n return gateway.request<LensTopicBindingResponse>({\n path: \"/api/platform/v1/workflow/lens-bindings\",\n method: \"POST\",\n body: payload,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * Remove an applied lens from a topic.\n */\n async removeLensFromTopic(\n input: {\n lensId: string;\n topicId?: string;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n const topicId = resolveTopicId(input);\n if (!topicId) {\n throw new LucernApiError({\n code: \"INVALID_REQUEST\",\n message: \"topicId is required\",\n status: 400,\n });\n }\n\n return gateway.request<LensTopicBindingResponse>({\n path: `/api/platform/v1/workflow/lens-bindings${toQueryString({\n lensId: input.lensId,\n topicId,\n })}`,\n method: \"DELETE\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as LensTopicBindingResponse\n )\n );\n },\n\n /**\n * List worktrees for a topic scope.\n */\n async listWorktrees(query: {\n topicId?: string;\n branchId?: string;\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } & TopicIdentifierInput) {\n const normalized = normalizeTopicQuery(query);\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees/all${toQueryString({\n ...normalized,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) =>\n mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n )\n )\n );\n },\n\n /**\n * List all worktrees across accessible topics.\n */\n async listAllWorktrees(query: {\n status?: WorkflowWorktreeStatus;\n groupBy?: \"campaign\" | \"lane\" | \"flat\";\n lane?: string;\n campaign?: number;\n limit?: number;\n } = {}) {\n return gateway.request<ListWorktreesResponse>({\n path: `/api/platform/v1/worktrees${toQueryString({\n status: query.status,\n groupBy: query.groupBy,\n lane: query.lane,\n campaign: query.campaign,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const record =\n data && typeof data === \"object\" && !Array.isArray(data)\n ? (data as Record<string, unknown>)\n : {};\n const list = mapAliasedList<WorkflowWorktreeRecord, \"worktrees\">(\n data,\n \"worktrees\"\n );\n return {\n ...list,\n ...(record.lanes &&\n typeof record.lanes === \"object\" &&\n !Array.isArray(record.lanes)\n ? { lanes: record.lanes as Record<string, number> }\n : {}),\n ...(record.campaigns &&\n typeof record.campaigns === \"object\" &&\n !Array.isArray(record.campaigns)\n ? { campaigns: record.campaigns as Record<string, number> }\n : {}),\n } as ListWorktreesResponse;\n })\n );\n },\n\n /**\n * List compact pipeline campaigns with nested lanes.\n */\n async listCampaigns(query: {\n topicId?: string;\n status?: WorkflowWorktreeStatus;\n limit?: number;\n } & TopicIdentifierInput = {}) {\n return gateway.request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/campaigns${toQueryString(\n normalizeTopicQuery(query)\n )}`,\n });\n },\n\n /**\n * Create a workflow worktree.\n */\n async createWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: \"/api/platform/v1/worktrees\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * @deprecated Use createWorktree.\n */\n async addWorktree(input: AddWorktreeInput, idempotencyKey?: string) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * Merge a worktree into the main belief line.\n */\n async merge(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<MergeWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/merge`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Activate a planning worktree.\n */\n async activateWorktree(worktreeId: string, idempotencyKey?: string) {\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/activate`,\n method: \"POST\",\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Update targeted beliefs/questions for a worktree.\n */\n async updateWorktreeTargets(\n input: UpdateWorktreeTargetsInput,\n idempotencyKey?: string\n ) {\n const { worktreeId, ...body } = input;\n return gateway.request<AddWorktreeResponse>({\n path: `/api/platform/v1/worktrees/${encodeURIComponent(worktreeId)}/targets`,\n method: \"POST\",\n body,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(data as Record<string, unknown>) as AddWorktreeResponse\n )\n );\n },\n\n /**\n * Mark a worktree record complete.\n */\n async completeWorktree(\n input: CompleteWorktreeInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/complete\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Advance a worktree to its next lifecycle phase.\n */\n async advanceWorktreePhase(\n input: AdvanceWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/advance-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Force a worktree into a specific lifecycle phase.\n */\n async setWorktreePhase(\n input: SetWorktreePhaseInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/set-phase\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Patch opaque worktree state for orchestration flows.\n */\n async patchWorktreeState(\n input: PatchWorktreeStateInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/patch-state\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Batch create worktree records.\n */\n async bulkCreateWorktrees(\n input: BulkCreateWorktreesInput,\n idempotencyKey?: string\n ) {\n return gateway.request<Record<string, unknown>>({\n path: \"/api/platform/v1/worktrees/bulk\",\n method: \"POST\",\n body: input as unknown as JsonObject,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Open a pull request for a worktree.\n */\n async openPullRequest(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return gateway.request<OpenPullRequestResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/pull-request`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Push scored worktree findings into another context.\n */\n async push(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return gateway.request<PushWorktreeResponse>({\n path: `/api/platform/v1/workflow/worktrees/${encodeURIComponent(worktreeId)}/push`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * List accessible topic contexts.\n */\n async listTopics(query: ListTopicsInput = {}) {\n return gateway.request<ListTopicsResponse>({\n path: `/api/platform/v1/workflow/topics${toQueryString({\n includeShared:\n typeof query.includeShared === \"boolean\"\n ? query.includeShared\n ? \"true\"\n : \"false\"\n : undefined,\n limit: query.limit,\n })}`,\n }).then((response) =>\n mapGatewayData(response, (data) => {\n const items = asListItems<WorkflowTopicRecord>(data, \"topics\").map(\n (item) =>\n withTopicAlias(\n item as Record<string, unknown>\n ) as WorkflowTopicRecord\n );\n const record =\n data && typeof data === \"object\"\n ? (data as Record<string, unknown>)\n : {};\n return {\n ...record,\n ...createListResult(items, \"topics\"),\n total:\n typeof record.total === \"number\" ? record.total : items.length,\n } as ListTopicsResponse;\n })\n );\n },\n\n /**\n * Switch the active context by topic or project name.\n */\n async switchTopicContext(\n input: SwitchTopicContextInput,\n idempotencyKey?: string\n ) {\n return gateway.request<SwitchTopicContextResponse>({\n path: \"/api/platform/v1/workflow/topics/switch\",\n method: \"POST\",\n body: {\n targetTopicName: input.targetTopicName,\n },\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n }).then((response) =>\n mapGatewayData(response, (data) =>\n withTopicAlias(\n data as Record<string, unknown>\n ) as SwitchTopicContextResponse\n )\n );\n },\n\n /**\n * Create a workflow task.\n */\n async createTask(input: CreateTaskInput, idempotencyKey?: string) {\n return gateway.request<CreateTaskResponse>({\n path: \"/api/platform/v1/workflow/tasks\",\n method: \"POST\",\n body: normalizeTopicQuery(input),\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Complete a workflow task.\n */\n async completeTask(\n taskId: string,\n input: CompleteTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<CompleteTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}/complete`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * Update a workflow task.\n */\n async updateTask(\n taskId: string,\n input: UpdateTaskInput,\n idempotencyKey?: string\n ) {\n return gateway.request<UpdateTaskResponse>({\n path: `/api/platform/v1/workflow/tasks/${encodeURIComponent(taskId)}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n });\n },\n\n /**\n * @deprecated Use createBranch.\n */\n async createPillar(\n input: {\n name: string;\n topicId?: string;\n description?: string;\n metadata?: JsonObject;\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createBranch(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use addWorktree.\n */\n async createSprint(\n input: {\n title: string;\n topicId?: string;\n branchId?: string;\n hypothesis?: string;\n beliefIds?: string[];\n } & TopicIdentifierInput,\n idempotencyKey?: string\n ) {\n return client.createWorktree(input, idempotencyKey);\n },\n\n /**\n * @deprecated Use merge.\n */\n async completeSprint(\n worktreeId: string,\n input: MergeInput,\n idempotencyKey?: string\n ) {\n return client.merge(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use openPullRequest.\n */\n async requestReview(\n worktreeId: string,\n input: {\n summary: string;\n reviewers?: string[];\n status?:\n | \"pending_review\"\n | \"changes_requested\"\n | \"approved\"\n | \"blocked\";\n },\n idempotencyKey?: string\n ) {\n return client.openPullRequest(worktreeId, input, idempotencyKey);\n },\n\n /**\n * @deprecated Use push.\n */\n async publishFindings(\n worktreeId: string,\n input: {\n targetContext: string;\n beliefIds?: string[];\n metadata?: JsonObject;\n },\n idempotencyKey?: string\n ) {\n return client.push(worktreeId, input, idempotencyKey);\n },\n };\n\n return client;\n}\n","import { type AdminClientConfig, createAdminClient } from \"./adminClient\";\nimport {\n type AnswersClientConfig,\n createAnswersClient,\n} from \"./answersClient\";\nimport {\n type AudiencesClientConfig,\n createAudiencesClient,\n} from \"./audiencesClient\";\nimport { type AuditClientConfig, createAuditClient } from \"./auditClient\";\nimport {\n createAuthDeviceClient,\n type DeviceCodeInput,\n} from \"./authDeviceClient\";\nimport type { LucernSdkAuthContextInput } from \"./authContext\";\nimport {\n type BeliefsClientConfig,\n createBeliefsClient,\n mapOpinionHistoryEntriesFromGatewayData,\n type ModulateConfidenceInput,\n type OpinionHistoryEntry,\n} from \"./beliefsClient\";\nimport {\n type SourcesClientConfig,\n createSourcesClient,\n} from \"./sourcesClient\";\nimport {\n createEvidenceClient,\n type EvidenceClientConfig,\n} from \"./evidenceClient\";\nimport {\n createEventingClient,\n type EventingClientConfig,\n} from \"./eventingClient\";\nimport {\n createGatewayRequestClient,\n type GatewayClientConfig,\n LucernApiError,\n type PlatformGatewaySuccess,\n randomIdempotencyKey,\n toQueryString,\n} from \"./coreClient\";\nimport {\n type CustomToolRegistration,\n clearRegisteredCustomTools,\n invokeRegisteredCustomTool,\n listRegisteredCustomTools,\n registerCustomTool,\n unregisterCustomTool,\n} from \"./customTools\";\nimport {\n createBeliefsFacade,\n createContradictionsFacade,\n createEdgesFacade,\n createEvidenceFacade,\n createEventsFacade,\n createGraphFacade,\n createIdentityFacade,\n createOntologiesFacade,\n createQuestionsFacade,\n createSearchFacade,\n createTasksFacade,\n createTopicsFacade,\n createWebhooksFacade,\n createWorktreesFacade,\n} from \"./gatewayFacades\";\nimport {\n createDecisionsClient,\n type DecisionsClientConfig,\n type RecordJudgmentInput,\n} from \"./decisionsClient\";\nimport {\n createEmbeddingsClient,\n type EmbeddingsClientConfig,\n} from \"./embeddingsClient\";\nimport {\n createContextClient,\n type ContextClientConfig,\n} from \"./contextClient\";\nimport {\n createGraphAnalysisClient,\n type GraphAnalysisClientConfig,\n} from \"./graphAnalysisClient\";\nimport { createGraphClient, type GraphClientConfig } from \"./graphClient\";\nimport {\n createGraphRecommendationsClient,\n type GraphRecommendationsClientConfig,\n} from \"./graphRecommendationsClient\";\nimport {\n createGraphStateClassifierClient,\n type GraphStateClassifierClientConfig,\n} from \"./graphStateClassifierClient\";\nimport { createHarnessClient, type HarnessClientConfig } from \"./harnessClient\";\nimport {\n createIdentityClient,\n type IdentityClientConfig,\n} from \"./identityClient\";\nimport { createJobsClient, type JobsClientConfig } from \"./jobsClient\";\nimport {\n createLearningClient,\n type LearningClientConfig,\n} from \"./learningClient\";\nimport { createMcpClient } from \"./mcpClient\";\nimport {\n createFunctionSurfaceClient,\n type FunctionSurfaceClientConfig,\n type FunctionSurfaceInput,\n} from \"./generated/functionSurface\";\nimport {\n createModelRuntimeClient,\n type ModelRuntimeClientConfig,\n} from \"./modelRuntimeClient\";\nimport {\n createOntologyClient,\n type OntologyClientConfig,\n} from \"./ontologyClient\";\nimport {\n createOntologyLinksClient,\n type OntologyLinksClientConfig,\n} from \"./ontologyLinksClient\";\nimport {\n createOrgGraphSearchClient,\n type OrgGraphSearchClientConfig,\n} from \"./orgGraphSearchClient\";\nimport { createPacksClient, type PacksClientConfig } from \"./packsClient\";\nimport { createPolicyClient, type PolicyClientConfig } from \"./policyClient\";\nimport { createReportsClient, type ReportsClientConfig } from \"./reportsClient\";\nimport { createSchemaClient, type SchemaClientConfig } from \"./schemaClient\";\nimport {\n asListItems,\n resolveText,\n resolveTopicId,\n} from \"./sdkSurface\";\nimport {\n createTelemetryClient,\n type TelemetryClientConfig,\n} from \"./telemetryClient\";\nimport { createTopicsClient, type TopicsClientConfig } from \"./topicsClient\";\nimport {\n createToolRegistryClient,\n type ToolRegistryClientConfig,\n} from \"./toolRegistryClient\";\nimport type {\n JsonObject,\n PlatformGraphEdge,\n PlatformGraphNode,\n} from \"./types\";\nimport { LUCERN_SDK_VERSION } from \"./version\";\nimport {\n type AddWorktreeInput,\n type CompleteTaskInput,\n type CreateTaskInput,\n createWorkflowClient,\n type MergeInput,\n type UpdateTaskInput,\n type WorkflowClientConfig,\n} from \"./workflowClient\";\n\ntype ClientConfig =\n | BeliefsClientConfig\n | SourcesClientConfig\n | GraphClientConfig\n | DecisionsClientConfig\n | AnswersClientConfig\n | ContextClientConfig\n | WorkflowClientConfig\n | AuditClientConfig\n | AdminClientConfig\n | EvidenceClientConfig\n | EmbeddingsClientConfig\n | EventingClientConfig\n | GraphAnalysisClientConfig\n | GraphRecommendationsClientConfig\n | GraphStateClassifierClientConfig\n | IdentityClientConfig\n | JobsClientConfig\n | ModelRuntimeClientConfig\n | OntologyLinksClientConfig\n | OrgGraphSearchClientConfig\n | PolicyClientConfig\n | PacksClientConfig\n | ReportsClientConfig\n | LearningClientConfig\n | TelemetryClientConfig\n | ToolRegistryClientConfig\n | FunctionSurfaceClientConfig\n | OntologyClientConfig\n | HarnessClientConfig\n | SchemaClientConfig\n | AudiencesClientConfig\n | TopicsClientConfig;\n\ntype NodeLike = PlatformGraphNode;\ntype EdgeLike = PlatformGraphEdge;\ntype CustomToolInput = JsonObject;\ntype CustomToolInvoker = (input?: CustomToolInput) => Promise<unknown>;\ntype CustomToolNamespace = Record<string, CustomToolInvoker>;\ntype GatewayDataEnvelope<T extends Record<string, unknown>> =\n PlatformGatewaySuccess<T> & T;\n\ntype BeliefsCompatCreateInput = {\n topicId?: string;\n text?: string;\n canonicalText?: string;\n formulation?: string;\n rationale?: string;\n worktreeId?: string;\n pillar?: string;\n baseRate?: number;\n sourceBeliefIds?: string[];\n sourceType?: string;\n beliefType?: string;\n reversibility?: string;\n predictionMeta?: JsonObject;\n metadata?: JsonObject;\n};\n\ntype BeliefsCompatForkInput = {\n text?: string;\n newFormulation?: string;\n formulation?: string;\n forkReason?:\n | \"refinement\"\n | \"contradiction_response\"\n | \"scope_change\"\n | \"confidence_collapse\"\n | \"manual\";\n rationale?: string;\n};\n\ntype BeliefsCompatUpdateConfidenceInput = ModulateConfidenceInput;\n\nfunction asNodeArray(data: unknown): NodeLike[] {\n const rows = asListItems<NodeLike>(data, \"nodes\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is NodeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as NodeLike];\n }\n return [];\n}\n\nfunction asEdgeArray(data: unknown): EdgeLike[] {\n const rows = asListItems<EdgeLike>(data, \"edges\");\n if (rows.length > 0) {\n return rows.filter(\n (value): value is EdgeLike => Boolean(value) && typeof value === \"object\"\n );\n }\n if (data && typeof data === \"object\") {\n return [data as EdgeLike];\n }\n return [];\n}\n\nfunction normalizeBeliefStatus(status: string | undefined): string {\n if (!status) {\n return \"unscored\";\n }\n if (status === \"unscored\" || status === \"scored\" || status === \"archived\") {\n return status;\n }\n if (status === \"active\" || status === \"in_evaluation\") {\n return \"unscored\";\n }\n if (status === \"challenged\" || status === \"validated\") {\n return \"scored\";\n }\n return \"unscored\";\n}\n\nfunction confidenceFromNode(node: NodeLike): number {\n if (typeof node.confidence === \"number\") {\n return node.confidence;\n }\n if (typeof node.metadata?.confidence === \"number\") {\n return node.metadata.confidence;\n }\n return 0;\n}\n\nfunction toGatewayConfig(config: LucernClientConfig): GatewayClientConfig {\n return {\n baseUrl: config.baseUrl,\n fetchImpl: config.fetchImpl,\n maxRetries: config.maxRetries,\n timeoutMs: config.timeoutMs,\n timeoutMsByMethod: config.timeoutMsByMethod,\n requestIdFactory: config.requestIdFactory,\n onRequest: config.onRequest,\n onResponse: config.onResponse,\n authContext: config.authContext,\n requireCanonicalAuthContext: config.requireCanonicalAuthContext,\n getAuthHeaders: async () => {\n const base = (\n config.getAuthHeaders ? await config.getAuthHeaders() : {}\n ) as Record<string, string>;\n if (config.apiKey && !base[\"x-lucern-key\"] && !base.Authorization) {\n base[\"x-lucern-key\"] = config.apiKey;\n }\n if (config.userToken && !base[\"x-lucern-session-token\"]) {\n base[\"x-lucern-session-token\"] = config.userToken;\n }\n if (config.environment && !base[\"x-lucern-environment\"]) {\n base[\"x-lucern-environment\"] = config.environment;\n }\n return base;\n },\n };\n}\n\nfunction requireTopicId(args: { topicId?: string }): string {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nfunction requireTopicOrProjectId(args: {\n topicId?: string;\n projectId?: string;\n}): string {\n const topicId =\n args.topicId?.trim() || args.projectId?.trim() || undefined;\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n return topicId;\n}\n\nconst AUDIT_NODE_REFERENCE_KEY_PATTERN =\n /(^|_)(id|nodeid|beliefid|resourceid|targetid|sourceid|subjectid|globalid|entityid|recordid|fromnodeid|tonodeid|linkednodeid|linkedbeliefid|nodeids|beliefids|resourceids)$/i;\n\nfunction matchesAuditNodeReference(value: unknown, nodeId: string): boolean {\n if (Array.isArray(value)) {\n return value.some((entry) => matchesAuditNodeReference(entry, nodeId));\n }\n\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n return Object.entries(value as Record<string, unknown>).some(([key, entry]) => {\n if (\n typeof entry === \"string\" &&\n entry === nodeId &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key)\n ) {\n return true;\n }\n\n if (\n Array.isArray(entry) &&\n AUDIT_NODE_REFERENCE_KEY_PATTERN.test(key) &&\n entry.some((item) => item === nodeId)\n ) {\n return true;\n }\n\n return matchesAuditNodeReference(entry, nodeId);\n });\n}\n\nfunction requireText(args: {\n text?: string;\n canonicalText?: string;\n formulation?: string;\n newFormulation?: string;\n}): string {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n return text;\n}\n\nfunction requireBaseRate(args: { baseRate?: number }): number {\n const baseRate =\n typeof args.baseRate === \"number\" && Number.isFinite(args.baseRate)\n ? args.baseRate\n : 0.5;\n if (baseRate < 0 || baseRate > 1) {\n throw new Error(\"baseRate must be within [0, 1].\");\n }\n return baseRate;\n}\n\nfunction exposeGatewayData<T extends Record<string, unknown>>(\n response: PlatformGatewaySuccess<T>\n): GatewayDataEnvelope<T> {\n return Object.assign({}, response, response.data);\n}\n\nfunction sdkQueryString(input: Record<string, unknown>): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(input)) {\n if (value === undefined || value === null) {\n continue;\n }\n if (Array.isArray(value)) {\n if (value.length > 0) {\n params.set(key, value.join(\",\"));\n }\n continue;\n }\n params.set(key, String(value));\n }\n const serialized = params.toString();\n return serialized ? `?${serialized}` : \"\";\n}\n\n/**\n * Configuration for the high-level Lucern SDK client.\n *\n * At minimum, provide `apiKey` and `baseUrl`. The SDK handles\n * authentication, retries, and idempotency automatically.\n */\nexport type LucernClientConfig = ClientConfig & {\n /** API key for authenticating with the Lucern platform. */\n apiKey?: string;\n /**\n * Optional Clerk JWT for per-user identity and RBAC.\n * When present, the SDK operates in user-scoped mode with\n * pack-aware tool filtering. When absent, operates in agent mode.\n */\n /** Lucern platform session token for interactive/user-scoped requests. */\n userToken?: string;\n /**\n * Optional pack key for auto-install convenience.\n * When set, the SDK will call `packs.install()` on first use\n * to ensure the pack is available in the workspace.\n */\n packKey?: string;\n /** Target environment. Defaults to production if not specified. */\n environment?: \"sandbox\" | \"production\";\n};\n\n/**\n * Create the high-level Lucern SDK client with all domain namespaces.\n *\n * @param config - Client configuration with API key, base URL, and optional settings.\n * @returns The Lucern client with namespaced methods for beliefs, topics, evidence, decisions, and more.\n */\nexport function createLucernClient(config: LucernClientConfig = {}) {\n const gatewayConfig = toGatewayConfig(config);\n const beliefsClient = createBeliefsClient(gatewayConfig);\n const sourcesClient = createSourcesClient(gatewayConfig);\n const beliefsFacade = createBeliefsFacade(gatewayConfig);\n const evidenceClient = createEvidenceClient(gatewayConfig);\n const embeddingsClient = createEmbeddingsClient(gatewayConfig);\n const eventingClient = createEventingClient(gatewayConfig);\n const graphClient = createGraphClient(gatewayConfig);\n const graphAnalysisClient = createGraphAnalysisClient(gatewayConfig);\n const graphRecommendationsClient =\n createGraphRecommendationsClient(gatewayConfig);\n const graphStateClassifierClient =\n createGraphStateClassifierClient(gatewayConfig);\n const graphFacade = createGraphFacade(gatewayConfig);\n const decisionsClient = createDecisionsClient(gatewayConfig);\n const contextClient = createContextClient(gatewayConfig);\n const workflowClient = createWorkflowClient(gatewayConfig);\n const auditClient = createAuditClient(gatewayConfig);\n const authDeviceClient = createAuthDeviceClient(gatewayConfig);\n const adminClient = createAdminClient(gatewayConfig);\n const answersClient = createAnswersClient(gatewayConfig);\n const contradictionsFacade = createContradictionsFacade(gatewayConfig);\n const edgesFacade = createEdgesFacade(gatewayConfig);\n const evidenceFacade = createEvidenceFacade(gatewayConfig);\n const eventsFacade = createEventsFacade(gatewayConfig);\n const identityClient = createIdentityClient(gatewayConfig);\n const identityFacade = createIdentityFacade(gatewayConfig);\n const ontologiesFacade = createOntologiesFacade(gatewayConfig);\n const questionsFacade = createQuestionsFacade(gatewayConfig);\n const searchFacade = createSearchFacade(gatewayConfig);\n const tasksFacade = createTasksFacade(gatewayConfig);\n const topicsFacade = createTopicsFacade(gatewayConfig);\n const webhooksFacade = createWebhooksFacade(gatewayConfig);\n const worktreesFacade = createWorktreesFacade(gatewayConfig);\n const policyClient = createPolicyClient(gatewayConfig);\n const ontologyClient = createOntologyClient(gatewayConfig);\n const ontologyLinksClient = createOntologyLinksClient(gatewayConfig);\n const orgGraphSearchClient = createOrgGraphSearchClient(gatewayConfig);\n const functionSurfaceClient = createFunctionSurfaceClient(gatewayConfig);\n const toolRegistryClient = createToolRegistryClient(gatewayConfig);\n const modelRuntimeClient = createModelRuntimeClient(gatewayConfig);\n const packsClient = createPacksClient(gatewayConfig);\n const reportsClient = createReportsClient(gatewayConfig);\n const learningClient = createLearningClient(gatewayConfig);\n const mcpClient = createMcpClient(gatewayConfig);\n const jobsClient = createJobsClient(gatewayConfig);\n const telemetryClient = createTelemetryClient(gatewayConfig);\n const harnessClient = createHarnessClient(gatewayConfig);\n const schemaClient = createSchemaClient(gatewayConfig);\n const audiencesClient = createAudiencesClient(gatewayConfig);\n const topicsClient = createTopicsClient(gatewayConfig);\n const gateway = createGatewayRequestClient(gatewayConfig);\n const customNamespaceCache = new Map<string, CustomToolNamespace>();\n\n // Pack auto-install: tracks whether the configured packKey has been installed.\n // Install is lazy — triggered on first API call or explicit ensurePack().\n let _packInstalled = !config.packKey; // true if no packKey configured\n let _packInstallPromise: Promise<void> | null = null;\n\n async function ensurePack(): Promise<void> {\n if (_packInstalled) {\n return;\n }\n if (_packInstallPromise) {\n return _packInstallPromise;\n }\n\n const installPromise = (async () => {\n try {\n await packsClient.install({\n packKey: config.packKey!,\n autoEnable: true,\n });\n _packInstalled = true;\n } catch (err) {\n // If the pack is already installed, treat as success\n if (err instanceof LucernApiError && err.code === \"ALREADY_EXISTS\") {\n _packInstalled = true;\n return;\n }\n // Re-throw — caller decides whether to proceed without the pack\n throw err;\n }\n })();\n\n _packInstallPromise = installPromise;\n\n try {\n await installPromise;\n } catch (error) {\n if (_packInstallPromise === installPromise) {\n _packInstallPromise = null;\n }\n throw error;\n }\n }\n\n const invokeCustomTool = async (\n fullName: string,\n input: CustomToolInput = {}\n ): Promise<unknown> => {\n const payload =\n input && typeof input === \"object\" && !Array.isArray(input) ? input : {};\n return invokeRegisteredCustomTool(fullName, payload, { source: \"sdk\" });\n };\n\n const getCustomNamespace = (namespace: string): CustomToolNamespace => {\n const normalized = namespace.trim() || \"custom\";\n const cached = customNamespaceCache.get(normalized);\n if (cached) {\n return cached;\n }\n\n const proxy = new Proxy(\n {},\n {\n get(_target, property): unknown {\n if (typeof property !== \"string\" || property === \"then\") {\n return;\n }\n return async (input: CustomToolInput = {}) =>\n invokeCustomTool(`${normalized}.${property}`, input);\n },\n }\n ) as CustomToolNamespace;\n\n customNamespaceCache.set(normalized, proxy);\n return proxy;\n };\n\n const extensionNamespaces = new Proxy(\n {},\n {\n get(_target, namespace): unknown {\n if (typeof namespace !== \"string\" || namespace === \"then\") {\n return;\n }\n return getCustomNamespace(namespace);\n },\n }\n ) as Record<string, CustomToolNamespace>;\n\n async function createEvidenceCompat(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const text = resolveText(args);\n if (!text) {\n throw new Error(\"text is required\");\n }\n const rationale = args.rationale ?? args.supports?.reasoning;\n if (!rationale) {\n throw new Error(\"rationale is required\");\n }\n const metadata = {\n ...(args.metadata ?? {}),\n rationale,\n } as JsonObject;\n\n return evidenceFacade.create({\n topicId: resolveTopicId(args),\n text,\n source: args.source ?? args.sourceUrl,\n targetId: args.targetId ?? args.supports?.nodeId,\n weight: args.weight ?? args.supports?.weight,\n rationale,\n metadata: Object.keys(metadata).length > 0 ? metadata : undefined,\n title: args.title,\n content: args.content,\n contentType: args.contentType,\n kind: args.kind,\n });\n }\n\n async function addEvidence(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n rationale?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n const created = await createEvidenceCompat({\n ...args,\n targetId: args.supports ? undefined : args.targetId,\n weight: args.supports ? undefined : args.weight,\n });\n\n if (!args.supports) {\n return created.data;\n }\n\n const evidenceId = created.data.id;\n if (typeof evidenceId !== \"string\" || evidenceId.length === 0) {\n throw new Error(\"evidence create did not return an id\");\n }\n\n const linked = await evidenceFacade.link({\n evidenceId,\n targetId: args.supports.nodeId,\n weight: args.supports.weight,\n rationale: args.supports.reasoning,\n });\n\n return {\n ...created.data,\n edgeId: linked.data.edgeId,\n };\n }\n\n async function listBeliefs(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n const response = await beliefsFacade.list({\n topicId: requireTopicId(args),\n status: args.status,\n worktreeId: args.worktreeId,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n });\n return Array.isArray(response.data.beliefs) ? response.data.beliefs : [];\n }\n\n async function searchBeliefs(args: {\n query: string;\n topicId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n }) {\n const topicId = resolveTopicId(args);\n if (!topicId) {\n return { results: [] };\n }\n const response = await searchFacade.query({\n q: args.query,\n topicId,\n types: [\"belief\"],\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n });\n const data = exposeGatewayData(response);\n const groupedBeliefs = Array.isArray(data.beliefs)\n ? (data.beliefs as Record<string, unknown>[])\n : [];\n const mergedResults = Array.isArray(data.results)\n ? (data.results as Record<string, unknown>[])\n : [];\n const results =\n groupedBeliefs.length > 0\n ? groupedBeliefs\n : mergedResults.filter((result) => result.type === \"belief\");\n return { results };\n }\n\n async function searchResources(\n query: string,\n options: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n } = {}\n ) {\n const topicId = resolveTopicId(options);\n if (!topicId) {\n throw new Error(\"topicId is required\");\n }\n\n return searchFacade\n .query({\n q: query,\n topicId,\n types: options.types as Array<\"belief\" | \"evidence\" | \"question\"> | undefined,\n status: options.status,\n minConfidence: options.minConfidence,\n limit: options.limit,\n cursor: options.cursor,\n })\n .then(exposeGatewayData);\n }\n\n async function findContradictions(args: {\n topicId?: string;\n nodeId?: string;\n status?: string;\n }) {\n const topicId = resolveTopicId(args);\n const response = topicId\n ? await graphClient.listNodes({\n topicId,\n nodeType: \"contradiction\",\n limit: 500,\n })\n : args.nodeId\n ? await graphClient.queryNodes({ nodeId: args.nodeId })\n : { data: [] };\n const contradictions = asNodeArray(response.data)\n .filter((node) => {\n const status =\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : typeof node.status === \"string\"\n ? node.status\n : \"unresolved\";\n if (args.status && status !== args.status) {\n return false;\n }\n return true;\n })\n .map((node) => ({\n beliefA:\n typeof node.metadata?.beliefA === \"string\"\n ? node.metadata.beliefA\n : \"\",\n beliefB:\n typeof node.metadata?.beliefB === \"string\"\n ? node.metadata.beliefB\n : \"\",\n description: node.canonicalText ?? \"\",\n severity:\n typeof node.metadata?.severity === \"string\"\n ? node.metadata.severity\n : \"medium\",\n status:\n typeof node.metadata?.status === \"string\"\n ? node.metadata.status\n : \"unresolved\",\n defeatType:\n typeof node.metadata?.defeatType === \"string\"\n ? node.metadata.defeatType\n : \"rebuts\",\n }));\n return { contradictions };\n }\n\n async function queryLineage(nodeId: string, depth = 5) {\n const response = await beliefsFacade.lineage(nodeId);\n const lineage = Array.isArray(response.data.lineage)\n ? response.data.lineage\n : [];\n const chain =\n lineage.length > 0\n ? lineage\n .slice(0, depth + 1)\n .map((entry, index) => ({\n nodeId: entry.nodeId ?? entry.beliefId ?? \"\",\n relation: index === 0 ? \"self\" : \"ancestor\",\n }))\n : [{ nodeId, relation: \"self\" }];\n return {\n chain,\n forkTree: {\n nodeId,\n parentCount: Math.max(0, lineage.length - 1),\n childCount: 0,\n children: [],\n },\n depth,\n beliefId: response.data.beliefId,\n lineage,\n };\n }\n\n async function getConfidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n }\n\n async function getOpinionHistory(nodeId: string): Promise<OpinionHistoryEntry[]> {\n const response = await beliefsFacade.opinionHistory(nodeId);\n return mapOpinionHistoryEntriesFromGatewayData(response.data);\n }\n\n async function getAuditTrail(nodeId: string, limit = 50) {\n const events = await auditClient.listEvents({ limit });\n const entries = asListItems<JsonObject>(events.data, \"events\")\n .filter((event) => matchesAuditNodeReference(event, nodeId))\n .slice(0, limit)\n .map((event) => {\n const row = event as JsonObject;\n return {\n action: typeof row.action === \"string\" ? row.action : \"unknown\",\n actor: typeof row.actor === \"string\" ? row.actor : \"unknown\",\n timestamp:\n typeof row.timestamp === \"number\" ? row.timestamp : Date.now(),\n rationale:\n typeof row.rationale === \"string\"\n ? row.rationale\n : \"No rationale recorded.\",\n before: row.before ?? null,\n after: row.after ?? null,\n };\n });\n return { entries };\n }\n\n async function bisectConfidence(\n nodeId: string,\n args: { expectedDirection: \"overconfident\" | \"underconfident\" }\n ) {\n return beliefsFacade.bisect(nodeId, args).then(exposeGatewayData);\n }\n\n async function discoverTopics(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/discover\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function discoverEntityConnections(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/entity-connections\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function triggerBeliefReview(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/context/belief-review\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function createContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function evaluateContractCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/evaluate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function getContractStatusCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/contracts/status\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function listContractsCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/contracts${toQueryString({\n beliefNodeId:\n typeof input.beliefNodeId === \"string\"\n ? input.beliefNodeId\n : undefined,\n contractId:\n typeof input.contractId === \"string\" ? input.contractId : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n })}`,\n })\n .then(exposeGatewayData);\n }\n\n async function createOntologyCompat(input: JsonObject = {}) {\n const response = await ontologyClient.createDefinition(\n input as Parameters<typeof ontologyClient.createDefinition>[0]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function updateOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const { id: _id, ...rest } = input;\n const response = await ontologyClient.updateDefinition(\n id,\n rest as Parameters<typeof ontologyClient.updateDefinition>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function archiveOntologyCompat(input: JsonObject = {}) {\n const id = typeof input.id === \"string\" ? input.id : \"\";\n const response = await ontologyClient.archiveDefinition(id);\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function createOntologyVersionCompat(input: JsonObject = {}) {\n const ontologyId =\n typeof input.ontologyId === \"string\" ? input.ontologyId : \"\";\n const { ontologyId: _ontologyId, ...rest } = input;\n const response = await ontologyClient.createVersion(\n ontologyId,\n rest as Parameters<typeof ontologyClient.createVersion>[1]\n );\n const envelope = response as PlatformGatewaySuccess<Record<string, unknown>>;\n return Object.assign({}, envelope, envelope.data);\n }\n\n async function publishOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/publish\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function deprecateOntologyVersionCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/versions/deprecate\",\n method: \"POST\",\n body: input,\n idempotencyKey: randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n }\n\n async function resolveEffectiveOntologyCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontologies/effective\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n async function traceEntityImpactCompat(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph/trace-entity-impact\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n }\n\n const nodesNamespace = {\n list(query: Parameters<typeof graphClient.listNodes>[0]) {\n return graphClient.listNodes(query);\n },\n get(input: string | Parameters<typeof graphClient.getNode>[0]) {\n return graphClient.getNode(\n typeof input === \"string\" ? { nodeId: input } : input\n );\n },\n create(\n input: Parameters<typeof graphClient.createNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.createNode(input, idempotencyKey);\n },\n update(\n input: Parameters<typeof graphClient.updateNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.updateNode(input, idempotencyKey);\n },\n batchCreate(\n input: Parameters<typeof graphClient.batchCreateNodes>[0],\n idempotencyKey?: string\n ) {\n return graphClient.batchCreateNodes(input, idempotencyKey);\n },\n listByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n sourceText?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n sourceText: input.sourceText,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n countByTopicAndType(input: {\n topicId?: string;\n projectId?: string;\n nodeType?: string;\n nodeTypes?: string[];\n query?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/nodes/count${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n nodeType: input.nodeType,\n nodeTypes: input.nodeTypes,\n query: input.query,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n supersede(\n input: Parameters<typeof graphClient.supersedeNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.supersedeNode(input, idempotencyKey);\n },\n verify(\n input: Parameters<typeof graphClient.verifyNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.verifyNode(input, idempotencyKey);\n },\n hardDelete(\n input: Parameters<typeof graphClient.hardDeleteNode>[0],\n idempotencyKey?: string\n ) {\n return graphClient.hardDeleteNode(input, idempotencyKey);\n },\n };\n\n const publicationNamespace = {\n create(input: JsonObject, idempotencyKey?: string) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/publication\",\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n update(\n publicationId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}`,\n method: \"PATCH\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n list(input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication${sdkQueryString(input)}`,\n })\n .then(exposeGatewayData);\n },\n getByTopic(input: string | { topicId: string; workspaceId?: string }) {\n const topicId = typeof input === \"string\" ? input : input.topicId;\n const workspaceId = typeof input === \"string\" ? undefined : input.workspaceId;\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/by-topic/${encodeURIComponent(\n topicId\n )}${sdkQueryString({ workspaceId })}`,\n })\n .then(exposeGatewayData);\n },\n publish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/publish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n unpublish(\n publicationId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}/unpublish`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n remove(publicationId: string, input: JsonObject = {}) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/publication/${encodeURIComponent(\n publicationId\n )}${sdkQueryString(input)}`,\n method: \"DELETE\",\n })\n .then(exposeGatewayData);\n },\n };\n\n const ontologyLinksNamespace = {\n ...ontologyLinksClient,\n resolveThemeSource(input: JsonObject) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/ontology-links/theme-source\",\n method: \"POST\",\n body: input,\n })\n .then(exposeGatewayData);\n },\n };\n\n return {\n config,\n version: LUCERN_SDK_VERSION,\n search(\n query: string,\n options?: {\n topicId?: string;\n types?: string[];\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }\n ) {\n return searchResources(query, options);\n },\n events: {\n list(query: Parameters<typeof eventsFacade.list>[0] = {}) {\n return eventsFacade.list(query).then(exposeGatewayData);\n },\n replay(\n input: Parameters<typeof eventsFacade.replay>[0]\n ) {\n return eventsFacade.replay(input).then(exposeGatewayData);\n },\n recordEvent: eventingClient.recordEvent,\n listEvents: eventingClient.listEvents,\n listWebhooks: eventingClient.listWebhooks,\n enqueueDelivery: eventingClient.enqueueDelivery,\n recordDeliveryAttempt: eventingClient.recordDeliveryAttempt,\n updateDeliveryStatus: eventingClient.updateDeliveryStatus,\n },\n beliefs: {\n create(input: BeliefsCompatCreateInput) {\n return beliefsFacade\n .create({\n topicId: resolveTopicId(input),\n text: requireText(input),\n rationale: input.rationale,\n worktreeId: input.worktreeId,\n pillar: input.pillar,\n baseRate: requireBaseRate(input),\n sourceBeliefIds: input.sourceBeliefIds,\n sourceType: input.sourceType,\n beliefType: input.beliefType,\n reversibility: input.reversibility,\n predictionMeta: input.predictionMeta,\n metadata: input.metadata,\n })\n .then(exposeGatewayData);\n },\n get(nodeId: string) {\n return beliefsFacade.get(nodeId).then(exposeGatewayData);\n },\n refine(\n nodeId: string,\n textOrInput: string | { text: string; rationale?: string },\n rationale?: string\n ) {\n const payload =\n typeof textOrInput === \"string\"\n ? { text: textOrInput, rationale }\n : {\n text: textOrInput.text,\n rationale: textOrInput.rationale,\n };\n return beliefsFacade.refine(nodeId, payload).then(exposeGatewayData);\n },\n updateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n modulateConfidence(\n nodeId: string,\n input: BeliefsCompatUpdateConfidenceInput\n ) {\n return beliefsFacade.updateConfidence(nodeId, input).then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof beliefsFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateRationale(\n input: Parameters<typeof beliefsFacade.updateRationale>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateRationale(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n linkBeliefs(\n input: Parameters<typeof beliefsFacade.linkBeliefs>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .linkBeliefs(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n unlinkEvidence(\n input: Parameters<typeof beliefsFacade.unlinkEvidence>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .unlinkEvidence(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateCriticality(\n input: Parameters<typeof beliefsFacade.updateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .updateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchUpdateCriticality(\n input: Parameters<typeof beliefsFacade.batchUpdateCriticality>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .batchUpdateCriticality(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n reassignTopic(\n input: Parameters<typeof beliefsFacade.reassignTopic>[0],\n idempotencyKey?: string\n ) {\n return beliefsFacade\n .reassignTopic(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n fork(nodeId: string, input: BeliefsCompatForkInput) {\n return beliefsFacade\n .fork(nodeId, {\n text: requireText(input),\n forkReason: input.forkReason,\n rationale: input.rationale,\n })\n .then(exposeGatewayData);\n },\n archive(\n nodeId: string,\n input?: string | { reason?: string; rationale?: string }\n ) {\n const payload =\n typeof input === \"string\"\n ? { reason: input }\n : input\n ? { reason: input.reason ?? input.rationale }\n : undefined;\n return beliefsFacade.archive(nodeId, payload).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n worktreeId?: string;\n status?: string;\n minConfidence?: number;\n limit?: number;\n cursor?: string;\n }) {\n return beliefsFacade\n .list({\n topicId: requireTopicId(args),\n worktreeId: args.worktreeId,\n status: args.status,\n minConfidence: args.minConfidence,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search: searchBeliefs,\n lineage(nodeId: string) {\n return beliefsFacade.lineage(nodeId).then(exposeGatewayData);\n },\n confidenceHistory(nodeId: string) {\n return beliefsFacade.confidenceHistory(nodeId).then(exposeGatewayData);\n },\n opinionHistory(nodeId: string) {\n return getOpinionHistory(nodeId);\n },\n createContract(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.createContract>[1]\n ) {\n return beliefsFacade\n .createContract(nodeId, input)\n .then(exposeGatewayData);\n },\n bisect(\n nodeId: string,\n input: Parameters<typeof beliefsFacade.bisect>[1]\n ) {\n return beliefsFacade.bisect(nodeId, input).then(exposeGatewayData);\n },\n },\n webhooks: {\n create(input: Parameters<typeof webhooksFacade.create>[0]) {\n return webhooksFacade.create(input).then(exposeGatewayData);\n },\n list(query?: Parameters<typeof webhooksFacade.list>[0]) {\n return webhooksFacade.list(query).then(exposeGatewayData);\n },\n get(id: string) {\n return webhooksFacade.get(id).then(exposeGatewayData);\n },\n update(\n id: string,\n input: Parameters<typeof webhooksFacade.update>[1]\n ) {\n return webhooksFacade.update(id, input).then(exposeGatewayData);\n },\n delete(id: string) {\n return webhooksFacade.delete(id).then(exposeGatewayData);\n },\n test(id: string, input?: Parameters<typeof webhooksFacade.test>[1]) {\n return webhooksFacade.test(id, input).then(exposeGatewayData);\n },\n deliveries(\n id: string,\n query?: Parameters<typeof webhooksFacade.deliveries>[1]\n ) {\n return webhooksFacade.deliveries(id, query).then(exposeGatewayData);\n },\n health(id: string) {\n return webhooksFacade.health(id).then(exposeGatewayData);\n },\n },\n edges: {\n create(args: {\n sourceId: string;\n targetId: string;\n edgeType: string;\n topicId?: string;\n confidence?: number;\n weight?: number;\n context?: string;\n reasoning?: string;\n }) {\n return edgesFacade\n .create({\n sourceId: args.sourceId,\n targetId: args.targetId,\n edgeType: args.edgeType,\n topicId: args.topicId,\n confidence: args.confidence,\n weight: args.weight,\n context: args.context ?? args.reasoning,\n })\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof edgesFacade.update>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof edgesFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n removeBetween(\n input: Parameters<typeof edgesFacade.removeBetween>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .removeBetween(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof edgesFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade\n .batchCreate(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof edgesFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return edgesFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n list(args: {\n sourceId: string;\n edgeType?: string;\n limit?: number;\n cursor?: string;\n }) {\n return edgesFacade\n .list({\n sourceId: args.sourceId,\n edgeType: args.edgeType,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return edgesFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n },\n evidence: {\n create(args: {\n text?: string;\n canonicalText?: string;\n topicId?: string;\n source?: string;\n sourceUrl?: string;\n targetId?: string;\n weight?: number;\n metadata?: JsonObject;\n title?: string;\n content?: string;\n contentType?: string;\n kind?: string;\n supports?: {\n nodeId: string;\n weight: number;\n reasoning?: string;\n };\n }) {\n return createEvidenceCompat(args).then(exposeGatewayData);\n },\n add: addEvidence,\n get(evidenceId: string) {\n return evidenceFacade.get(evidenceId).then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n targetId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return evidenceFacade\n .list({\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n search(args: {\n q?: string;\n query?: string;\n topicId?: string;\n targetId?: string;\n methodology?: string;\n limit?: number;\n cursor?: string;\n }) {\n const q = args.q ?? args.query;\n if (!q) {\n throw new Error(\"q is required\");\n }\n return evidenceFacade\n .search({\n q,\n topicId: args.topicId,\n targetId: args.targetId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n link(args: {\n evidenceId: string;\n targetId?: string;\n beliefId?: string;\n questionId?: string;\n targetType?: \"belief\" | \"question\" | string;\n weight?: number;\n rationale?: string;\n }) {\n const targetId = args.targetId ?? args.questionId ?? args.beliefId;\n if (!targetId) {\n throw new Error(\"targetId is required\");\n }\n const targetType =\n typeof args.targetType === \"string\"\n ? args.targetType\n : args.questionId\n ? \"question\"\n : args.beliefId\n ? \"belief\"\n : undefined;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId,\n targetType: targetType as \"belief\" | \"question\" | undefined,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then(exposeGatewayData);\n },\n linkToBelief(args: {\n evidenceId: string;\n beliefId: string;\n weight: number;\n rationale?: string;\n }) {\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.beliefId,\n weight: args.weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n beliefId: args.beliefId,\n }));\n },\n classifyEvidence(\n beliefId: string,\n evidenceId: string,\n config?: Parameters<typeof evidenceClient.classifyEvidence>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidence(beliefId, evidenceId, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n classifyEvidenceBatch(\n beliefId: string,\n evidence: Parameters<typeof evidenceClient.classifyEvidenceBatch>[1],\n config?: Parameters<typeof evidenceClient.classifyEvidenceBatch>[2],\n idempotencyKey?: string\n ) {\n return evidenceClient\n .classifyEvidenceBatch(beliefId, evidence, config, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateStatus(\n input: Parameters<typeof evidenceFacade.updateStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof evidenceFacade.update>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n flagIncorrect(\n input: Parameters<typeof evidenceFacade.flagIncorrect>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .flagIncorrect(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n remove(\n input: Parameters<typeof evidenceFacade.remove>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade.remove(input, idempotencyKey).then(exposeGatewayData);\n },\n updateVerificationStatus(\n input: Parameters<typeof evidenceFacade.updateVerificationStatus>[0],\n idempotencyKey?: string\n ) {\n return evidenceFacade\n .updateVerificationStatus(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n },\n sources: {\n upsert(\n input: Parameters<typeof sourcesClient.upsert>[0],\n idempotencyKey?: Parameters<typeof sourcesClient.upsert>[1]\n ) {\n return sourcesClient.upsert(input, idempotencyKey).then(exposeGatewayData);\n },\n get(sourceId: string) {\n return sourcesClient.get(sourceId).then(exposeGatewayData);\n },\n },\n questions: {\n create(args: {\n text: string;\n topicId?: string;\n priority?: string;\n linkedBeliefId?: string;\n metadata?: JsonObject;\n }) {\n return questionsFacade\n .create({\n topicId: resolveTopicId(args),\n text: args.text,\n priority: args.priority,\n linkedBeliefId: args.linkedBeliefId,\n metadata: args.metadata,\n })\n .then(exposeGatewayData);\n },\n get(questionId: string) {\n return questionsFacade.get(questionId).then(exposeGatewayData);\n },\n refine(\n questionId: string,\n text: string,\n refinementReason?: string\n ) {\n return questionsFacade\n .refine(questionId, {\n text,\n rationale: refinementReason,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n priority?: string;\n worktreeId?: string;\n limit?: number;\n cursor?: string;\n }) {\n return questionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n priority: args.priority,\n worktreeId: args.worktreeId,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n updateStatus(questionId: string, status: string, rationale?: string) {\n return questionsFacade\n .updateStatus(questionId, {\n status,\n rationale,\n })\n .then(exposeGatewayData);\n },\n batchCreate(\n input: Parameters<typeof questionsFacade.batchCreate>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .batchCreate(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n add(\n input: Parameters<typeof questionsFacade.add>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .add(\n {\n ...input,\n topicId: resolveTopicId(input),\n },\n idempotencyKey\n )\n .then(exposeGatewayData);\n },\n updatePriority(\n input: Parameters<typeof questionsFacade.updatePriority>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updatePriority(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n advanceToConviction(\n input: Parameters<typeof questionsFacade.advanceToConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .advanceToConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n updateConviction(\n input: Parameters<typeof questionsFacade.updateConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .updateConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n finalizeConviction(\n input: Parameters<typeof questionsFacade.finalizeConviction>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade\n .finalizeConviction(input, idempotencyKey)\n .then(exposeGatewayData);\n },\n update(\n input: Parameters<typeof questionsFacade.update>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.update(input, idempotencyKey).then(exposeGatewayData);\n },\n delete(\n input: Parameters<typeof questionsFacade.delete>[0],\n idempotencyKey?: string\n ) {\n return questionsFacade.delete(input, idempotencyKey).then(exposeGatewayData);\n },\n answer(\n questionId: string,\n input: {\n text: string;\n confidence?: string;\n evidenceIds?: string[];\n rationale?: string;\n }\n ) {\n return questionsFacade\n .answer(questionId, input)\n .then(exposeGatewayData);\n },\n archive(questionId: string, reason?: string) {\n return questionsFacade\n .archive(questionId, { reason })\n .then(exposeGatewayData);\n },\n linkEvidence(args: {\n evidenceId: string;\n questionId: string;\n relevance?: number;\n weight?: number;\n rationale?: string;\n }) {\n const weight = args.weight ?? args.relevance;\n return evidenceFacade\n .link({\n evidenceId: args.evidenceId,\n targetId: args.questionId,\n targetType: \"question\",\n weight,\n rationale: args.rationale,\n })\n .then((response) => ({\n ...response.data,\n questionId: args.questionId,\n relevance: weight,\n }));\n },\n getHighPriority(args: {\n topicId?: string;\n limit?: number;\n includeAnswered?: boolean;\n }) {\n return this.list({\n topicId: requireTopicId(args),\n status: args.includeAnswered ? undefined : \"open\",\n }).then((data) => {\n const questions = (\n Array.isArray(data.questions) ? data.questions : []\n ) as Array<{ priority?: string } & Record<string, unknown>>;\n const rank = (priority: string | undefined): number => {\n switch (priority) {\n case \"urgent\":\n return 4;\n case \"high\":\n return 3;\n case \"medium\":\n return 2;\n case \"low\":\n return 1;\n default:\n return 0;\n }\n };\n\n return {\n questions: [...questions]\n .sort((a, b) => rank(b.priority) - rank(a.priority))\n .slice(0, args.limit ?? 20),\n };\n });\n },\n async findMissing(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n },\n graph: {\n nodes: nodesNamespace,\n createEdge(input: Parameters<typeof graphClient.createEdge>[0]) {\n return graphClient.createEdge(input);\n },\n neighborhood(args: Parameters<typeof graphClient.neighborhood>[0]) {\n return graphFacade\n .neighborhood({\n globalId: args.globalId,\n globalIds:\n typeof args.globalIds === \"string\"\n ? args.globalIds\n .split(\",\")\n .map((value) => value.trim())\n .filter((value) => value.length > 0)\n : undefined,\n maxDepth: args.maxDepth,\n })\n .then(exposeGatewayData);\n },\n queryLineage,\n getConfidenceHistory,\n getOpinionHistory,\n getAuditTrail,\n traverse(args: {\n startNode: string;\n direction?: string;\n maxDepth?: number;\n topicId?: string;\n }) {\n return graphFacade\n .traverse({\n startNode: args.startNode,\n direction: args.direction,\n maxDepth: args.maxDepth ?? 3,\n topicId: args.topicId,\n })\n .then(exposeGatewayData);\n },\n analyze(args: {\n topicId?: string;\n limit?: number;\n metric?: string;\n }) {\n return graphFacade\n .analyze({\n topicId: requireTopicId(args),\n limit: args.limit,\n metric: args.metric as never,\n })\n .then(exposeGatewayData);\n },\n bias(args: {\n topicId?: string;\n threshold?: number;\n limit?: number;\n }) {\n return graphFacade\n .bias({\n topicId: requireTopicId(args),\n threshold: args.threshold,\n limit: args.limit,\n })\n .then(exposeGatewayData);\n },\n gaps(args: {\n topicId?: string;\n minConfidence?: number;\n }) {\n return graphFacade\n .gaps({\n topicId: requireTopicId(args),\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n falsify(args: {\n topicId?: string;\n beliefId?: string;\n beliefIds?: string[];\n minConfidence?: number;\n }) {\n return graphFacade\n .falsify({\n topicId: args.topicId,\n beliefId: args.beliefId,\n beliefIds: args.beliefIds,\n minConfidence: args.minConfidence,\n })\n .then(exposeGatewayData);\n },\n traceEntityImpact(args: { nodeId: string; topicId?: string }) {\n return traceEntityImpactCompat({\n nodeId: args.nodeId,\n topicId: args.topicId,\n });\n },\n searchBeliefs,\n findContradictions,\n bisectConfidence,\n listBeliefs,\n detectConfirmationBias(\n topicId: string,\n threshold?: number\n ) {\n return this.bias({\n topicId,\n threshold,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n threshold: threshold ?? 0.7,\n }));\n },\n getStructureAnalysis(topicId: string) {\n return this.analyze({\n topicId,\n limit: 200,\n }).then((response) => ({\n ...response,\n topicId,\n }));\n },\n getFalsificationQuestions(\n topicId: string,\n beliefIds?: string[]\n ) {\n return graphFacade\n .falsify({\n topicId,\n beliefIds,\n })\n .then(exposeGatewayData)\n .then((response) => ({\n topicId,\n questions: response.questions,\n }));\n },\n },\n themes: {\n listByTopic(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/themes${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n graphSearch: {\n keywordSearchNodes(input: {\n topicId?: string;\n projectId?: string;\n query?: string;\n sourceText?: string;\n nodeType?: string;\n nodeTypes?: string[];\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: \"/api/platform/v1/graph-search/keyword-nodes\",\n method: \"POST\",\n body: {\n ...input,\n topicId: requireTopicOrProjectId(input),\n projectId: undefined,\n },\n })\n .then(exposeGatewayData);\n },\n },\n classifiers: {\n listBeliefCandidates(input: {\n topicId?: string;\n projectId?: string;\n classifierKey?: string;\n query?: string;\n limit?: number;\n cursor?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/classifiers/belief-candidates${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n classifierKey: input.classifierKey,\n query: input.query,\n limit: input.limit,\n cursor: input.cursor,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n archetypes: {\n getJudgmentSignature(input: {\n topicId?: string;\n projectId?: string;\n principalId?: string;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/archetypes/judgment-signature${sdkQueryString({\n topicId: requireTopicOrProjectId(input),\n principalId: input.principalId,\n })}`,\n })\n .then(exposeGatewayData);\n },\n },\n judgments: {\n create(input: RecordJudgmentInput) {\n return decisionsClient.createJudgment(input);\n },\n record(input: RecordJudgmentInput) {\n return decisionsClient.recordJudgment(input);\n },\n list(query: Parameters<typeof decisionsClient.listJudgments>[0]) {\n return decisionsClient.listJudgments(query);\n },\n get(judgmentId: string) {\n return decisionsClient.getJudgment(judgmentId);\n },\n recordOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.recordJudgmentOutcome>[1]\n ) {\n return decisionsClient.recordJudgmentOutcome(judgmentId, input);\n },\n updateOutcome(\n judgmentId: string,\n input: Parameters<typeof decisionsClient.updateJudgmentOutcome>[1]\n ) {\n return decisionsClient.updateJudgmentOutcome(judgmentId, input);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({\n topicId,\n });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({\n topicId,\n });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({\n topicId,\n });\n },\n transitionAuditIntegrity(args: {\n topicId?: string;\n judgmentId?: string;\n includePassing?: boolean;\n }) {\n return decisionsClient.getJudgmentTransitionAuditIntegrity({\n ...args,\n topicId: requireTopicId(args),\n });\n },\n },\n decisions: {\n create(input: RecordJudgmentInput) {\n return decisionsClient.createJudgment(input);\n },\n record(input: RecordJudgmentInput) {\n return decisionsClient.recordJudgment(input);\n },\n list(query: Parameters<typeof decisionsClient.listJudgments>[0]) {\n return decisionsClient.listJudgments(query);\n },\n get(decisionId: string) {\n return decisionsClient.getJudgment(decisionId);\n },\n recordOutcome(\n decisionId: string,\n input: Parameters<typeof decisionsClient.recordJudgmentOutcome>[1]\n ) {\n return decisionsClient.recordJudgmentOutcome(decisionId, input);\n },\n lessons(\n decisionId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/lessons`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n archive(\n decisionId: string,\n input: JsonObject = {},\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/decisions/${encodeURIComponent(\n decisionId\n )}/archive`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n readiness(topicId: string) {\n return decisionsClient.getJudgmentReadiness({ topicId });\n },\n calibration(topicId: string) {\n return decisionsClient.getJudgmentCalibration({ topicId });\n },\n pendingOutcomeReview(topicId: string) {\n return decisionsClient.listPendingJudgmentOutcomeReview({ topicId });\n },\n },\n worktrees: {\n createBranch(input: Parameters<typeof workflowClient.createBranch>[0]) {\n return workflowClient.createBranch(input);\n },\n createLens(input: Parameters<typeof workflowClient.createLens>[0]) {\n return workflowClient.createLens(input);\n },\n listLenses(query: Parameters<typeof workflowClient.listLenses>[0]) {\n return workflowClient.listLenses(query);\n },\n applyLensToTopic(\n input: Parameters<typeof workflowClient.applyLensToTopic>[0]\n ) {\n return workflowClient.applyLensToTopic(input);\n },\n removeLensFromTopic(\n input: Parameters<typeof workflowClient.removeLensFromTopic>[0]\n ) {\n return workflowClient.removeLensFromTopic(input);\n },\n create(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n });\n },\n add(input: AddWorktreeInput) {\n return worktreesFacade.create({\n title: input.title,\n topicId: requireTopicId(input),\n objective: input.objective,\n hypothesis: input.hypothesis,\n rationale: input.rationale,\n worktreeType: input.worktreeType,\n startDate: input.startDate,\n endDate: input.endDate,\n durationWeeks: input.durationWeeks,\n confidenceImpact: input.confidenceImpact,\n beliefFocus: input.beliefFocus,\n beliefIds: input.beliefIds,\n targetBeliefIds: input.targetBeliefIds,\n targetQuestionIds: input.targetQuestionIds,\n keyQuestions: input.keyQuestions,\n evidenceSignals: input.evidenceSignals,\n decisionGate: input.decisionGate,\n goCriteria: input.goCriteria,\n noGoSignals: input.noGoSignals,\n autoShape: input.autoShape,\n domainPackId: input.domainPackId,\n campaign: input.campaign,\n lane: input.lane,\n laneOrderInCampaign: input.laneOrderInCampaign,\n orderInLane: input.orderInLane,\n dependsOn: input.dependsOn,\n blocks: input.blocks,\n gate: input.gate,\n proofArtifacts: input.proofArtifacts,\n staffingHint:\n typeof input.staffingHint === \"string\"\n ? input.staffingHint\n : undefined,\n lastReconciledAt: input.lastReconciledAt,\n autoFixPolicy: input.autoFixPolicy,\n lensId: input.lensId,\n });\n },\n list(query: Parameters<typeof workflowClient.listWorktrees>[0]) {\n return worktreesFacade.list({\n topicId: requireTopicId(query),\n status: query.status,\n limit: query.limit,\n });\n },\n listByTopic(query: Parameters<typeof workflowClient.listWorktrees>[0]) {\n return worktreesFacade.list({\n topicId: requireTopicId(query),\n status: query.status,\n limit: query.limit,\n });\n },\n findByPairedSprint(input: {\n sprintId: string;\n topicId?: string;\n projectId?: string;\n limit?: number;\n }) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/worktrees/paired-sprint${sdkQueryString({\n sprintId: input.sprintId,\n topicId: input.topicId ?? input.projectId,\n limit: input.limit,\n })}`,\n })\n .then(exposeGatewayData);\n },\n activate(worktreeId: string) {\n return worktreesFacade.activate({ id: worktreeId });\n },\n updateMetadata(\n input: FunctionSurfaceInput\n ) {\n const dependsOn = Array.isArray(input.dependsOn)\n ? input.dependsOn.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined;\n const blocks = Array.isArray(input.blocks)\n ? input.blocks.filter((value): value is string => typeof value === \"string\")\n : undefined;\n return worktreesFacade.update({\n id: typeof input.worktreeId === \"string\" ? input.worktreeId : \"\",\n hypothesis: typeof input.hypothesis === \"string\" ? input.hypothesis : undefined,\n campaign:\n typeof input.campaign === \"number\" ? input.campaign : undefined,\n lane: typeof input.lane === \"string\" ? input.lane : undefined,\n laneOrderInCampaign:\n typeof input.laneOrderInCampaign === \"number\"\n ? input.laneOrderInCampaign\n : undefined,\n orderInLane:\n typeof input.orderInLane === \"number\" ? input.orderInLane : undefined,\n dependsOn,\n blocks,\n gate: typeof input.gate === \"string\" ? input.gate : undefined,\n });\n },\n update(\n input: FunctionSurfaceInput\n ) {\n return this.updateMetadata(input);\n },\n updateTargets(\n input: Parameters<typeof workflowClient.updateWorktreeTargets>[0]\n ) {\n return worktreesFacade.updateTargets({\n id: input.worktreeId,\n addBeliefIds: input.addBeliefIds,\n addQuestionIds: input.addQuestionIds,\n removeBeliefIds: input.removeBeliefIds,\n removeQuestionIds: input.removeQuestionIds,\n });\n },\n listAll(\n query: Parameters<typeof workflowClient.listAllWorktrees>[0] = {}\n ) {\n return workflowClient.listAllWorktrees(query);\n },\n merge(worktreeId: string, input: MergeInput) {\n return worktreesFacade.merge({\n id: worktreeId,\n outcomes: input.outcomes,\n summary: input.summary,\n });\n },\n push(\n worktreeId: string,\n input: Parameters<typeof workflowClient.push>[1]\n ) {\n return workflowClient.push(worktreeId, input);\n },\n openPullRequest(\n worktreeId: string,\n input: Parameters<typeof workflowClient.openPullRequest>[1]\n ) {\n return workflowClient.openPullRequest(worktreeId, input);\n },\n pipelineSnapshot(topicId: string) {\n return functionSurfaceClient.pipelineSnapshot({ topicId });\n },\n complete(\n input: Parameters<typeof worktreesFacade.complete>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.complete(input, idempotencyKey);\n },\n advancePhase(\n worktreeId: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.advancePhase(\n { worktreeId },\n idempotencyKey\n );\n },\n setPhase(\n worktreeId: string,\n phase: string,\n idempotencyKey?: string\n ) {\n return worktreesFacade.setPhase(\n { worktreeId, phase },\n idempotencyKey\n );\n },\n patchState(\n input: Parameters<typeof worktreesFacade.patchState>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.patchState(input, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof worktreesFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return worktreesFacade.bulkCreate(input, idempotencyKey);\n },\n },\n context: {\n listTopics(query: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: query.ontologyId,\n parentTopicId: query.parentTopicId,\n status: query.status as\n | \"active\"\n | \"archived\"\n | \"watching\"\n | undefined,\n type: query.type,\n });\n },\n compile(\n topicId: string,\n input: Parameters<typeof contextClient.compile>[1] = {}\n ) {\n return contextClient.compile(topicId, input);\n },\n recordScopeLearning(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.recordScopeLearning(input, idempotencyKey);\n },\n discover(input: FunctionSurfaceInput) {\n return discoverTopics(input as JsonObject);\n },\n analyzeTopicDensity(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.analyzeTopicDensity(input);\n },\n applyAutoBranching(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.applyAutoBranching(input, idempotencyKey);\n },\n seedBeliefLattice(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.seedBeliefLattice(input, idempotencyKey);\n },\n getLatticeCoverage(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getLatticeCoverage(input);\n },\n matchEntityType(\n input: FunctionSurfaceInput\n ) {\n return ontologiesFacade\n .match(input as Parameters<typeof ontologiesFacade.match>[0])\n .then(exposeGatewayData);\n },\n discoverEntityConnections(\n input: FunctionSurfaceInput\n ) {\n return discoverEntityConnections(input as JsonObject);\n },\n triggerBeliefReview(\n input: FunctionSurfaceInput\n ) {\n return triggerBeliefReview(input as JsonObject);\n },\n },\n tasks: {\n create(input: CreateTaskInput) {\n return tasksFacade.create({\n topicId: resolveTopicId(input),\n title: input.title,\n description: input.description,\n taskType: input.taskType,\n priority: input.priority,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n complete(taskId: string, input: CompleteTaskInput) {\n return tasksFacade.complete({\n id: taskId,\n outputSummary: input.outputSummary,\n });\n },\n update(taskId: string, input: UpdateTaskInput) {\n return tasksFacade.update({\n id: taskId,\n title: input.title,\n description: input.description,\n priority: input.priority,\n status: input.status,\n linkedBeliefId: input.linkedBeliefId,\n linkedQuestionId: input.linkedQuestionId,\n linkedWorktreeId: input.linkedWorktreeId,\n });\n },\n list(input: FunctionSurfaceInput) {\n return tasksFacade.list({\n topicId: resolveTopicId(input),\n worktreeId:\n typeof input.worktreeId === \"string\"\n ? input.worktreeId\n : typeof input.linkedWorktreeId === \"string\"\n ? input.linkedWorktreeId\n : undefined,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n listByTopic(input: FunctionSurfaceInput & { topicId?: string }) {\n return tasksFacade.list({\n topicId: requireTopicId(input),\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n listByWorktree(input: FunctionSurfaceInput & { worktreeId: string }) {\n return tasksFacade.list({\n topicId:\n typeof input.topicId === \"string\" ? input.topicId : undefined,\n worktreeId: input.worktreeId,\n status: typeof input.status === \"string\" ? input.status : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n linkChat(\n taskId: string,\n input: JsonObject,\n idempotencyKey?: string\n ) {\n return gateway\n .request<Record<string, unknown>>({\n path: `/api/platform/v1/tasks/${encodeURIComponent(\n taskId\n )}/link-chat`,\n method: \"POST\",\n body: input,\n idempotencyKey: idempotencyKey ?? randomIdempotencyKey(),\n })\n .then(exposeGatewayData);\n },\n },\n topics: {\n list(input: Parameters<typeof topicsClient.list>[0] = {}) {\n return topicsFacade.list({\n ontologyId: input.ontologyId,\n parentTopicId: input.parentTopicId,\n status: input.status as \"active\" | \"archived\" | \"watching\" | undefined,\n type: input.type,\n });\n },\n get(topicId: string) {\n return topicsFacade.get(topicId);\n },\n create(input: Parameters<typeof topicsClient.create>[0]) {\n return topicsFacade.create({\n name: input.name,\n description: input.description,\n type: input.type,\n parentTopicId: input.parentTopicId,\n ontologyId: input.ontologyId,\n tenantId: input.tenantId,\n workspaceId: input.workspaceId,\n visibility: input.visibility,\n createdBy: input.createdBy,\n });\n },\n update(\n topicId: string,\n input: Parameters<typeof topicsClient.update>[1]\n ) {\n return topicsFacade.update({\n id: topicId,\n name: input.name,\n description: input.description,\n type: input.type,\n ontologyId: input.ontologyId,\n clearOntologyId: input.clearOntologyId,\n status: input.status,\n visibility: input.visibility,\n });\n },\n tree(\n topicId: string,\n query: Parameters<typeof topicsClient.getTree>[1] = {}\n ) {\n return topicsFacade.tree({\n id: topicId,\n maxDepth: query.maxDepth,\n });\n },\n getTree(input: { rootId: string; maxDepth?: number }) {\n return topicsFacade.tree({\n id: input.rootId,\n maxDepth: input.maxDepth,\n });\n },\n coverage(\n topicId: string,\n query: Parameters<typeof topicsClient.getCoverage>[1] = {}\n ) {\n return topicsFacade.coverage({\n id: topicId,\n includeDescendants: query.includeDescendants,\n maxDepth: query.maxDepth,\n });\n },\n remove(topicId: string, idempotencyKey?: string) {\n return topicsFacade.remove(topicId, idempotencyKey);\n },\n bulkCreate(\n input: Parameters<typeof topicsFacade.bulkCreate>[0],\n idempotencyKey?: string\n ) {\n return topicsFacade.bulkCreate(input, idempotencyKey);\n },\n },\n answers: {\n create(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n const text =\n typeof input.answerText === \"string\" ? input.answerText : \"\";\n if (!text) {\n throw new Error(\"answerText is required\");\n }\n const confidence =\n input.confidence === \"moderate\" ? \"medium\" : input.confidence;\n\n return questionsFacade.answer(questionId, {\n text,\n confidence:\n typeof confidence === \"string\" ? confidence : undefined,\n evidenceIds: Array.isArray(input.evidenceNodeIds)\n ? input.evidenceNodeIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n });\n },\n get(input: FunctionSurfaceInput) {\n const questionId =\n typeof input.questionNodeId === \"string\" ? input.questionNodeId : \"\";\n if (!questionId) {\n throw new Error(\"questionNodeId is required\");\n }\n return answersClient.get(questionId);\n },\n },\n contradictions: {\n flag(args: {\n beliefA: string;\n beliefB: string;\n description: string;\n topicId?: string;\n severity?: string;\n defeatType?: string;\n }) {\n return contradictionsFacade\n .flag({\n beliefA: args.beliefA,\n beliefB: args.beliefB,\n description: args.description,\n topicId: resolveTopicId(args),\n severity: args.severity,\n defeatType: args.defeatType,\n })\n .then(exposeGatewayData);\n },\n list(args: {\n topicId?: string;\n status?: string;\n limit?: number;\n cursor?: string;\n }) {\n return contradictionsFacade\n .list({\n topicId: requireTopicId(args),\n status: args.status,\n limit: args.limit,\n cursor: args.cursor,\n })\n .then(exposeGatewayData);\n },\n get(contradictionId: string) {\n return contradictionsFacade.get(contradictionId).then(exposeGatewayData);\n },\n find: findContradictions,\n },\n ontologies: {\n list(\n input: {\n tenantId?: string;\n tier?: string;\n status?: string;\n } = {}\n ) {\n return ontologiesFacade.list(input).then(exposeGatewayData);\n },\n get(ontologyId: string) {\n return ontologiesFacade\n .get(ontologyId)\n .then((response) => exposeGatewayData(response));\n },\n bind(\n input: Parameters<typeof ontologiesFacade.bind>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.bind>[1]\n ) {\n return ontologiesFacade\n .bind(input, idempotencyKey)\n .then((response) => exposeGatewayData(response));\n },\n match(\n input: Parameters<typeof ontologiesFacade.match>[0],\n idempotencyKey?: Parameters<typeof ontologiesFacade.match>[1]\n ) {\n return ontologiesFacade.match(input, idempotencyKey).then(exposeGatewayData);\n },\n create(input: FunctionSurfaceInput) {\n return createOntologyCompat(input as JsonObject);\n },\n update(input: FunctionSurfaceInput) {\n return updateOntologyCompat(input as JsonObject);\n },\n archive(input: FunctionSurfaceInput) {\n return archiveOntologyCompat(input as JsonObject);\n },\n createVersion(\n input: FunctionSurfaceInput\n ) {\n return createOntologyVersionCompat(input as JsonObject);\n },\n publishVersion(\n input: FunctionSurfaceInput\n ) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n publishOntologyVersion(input: FunctionSurfaceInput) {\n return publishOntologyVersionCompat(input as JsonObject);\n },\n deprecateVersion(\n input: FunctionSurfaceInput\n ) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n deprecateOntologyVersion(input: FunctionSurfaceInput) {\n return deprecateOntologyVersionCompat(input as JsonObject);\n },\n resolveEffective(\n input: FunctionSurfaceInput\n ) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n resolveEffectiveOntology(input: FunctionSurfaceInput) {\n return resolveEffectiveOntologyCompat(input as JsonObject);\n },\n raw: ontologyClient,\n },\n coordination: {\n registerSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.registerSession(input, idempotencyKey);\n },\n heartbeatSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.heartbeatSession(input, idempotencyKey);\n },\n endSession(\n input: FunctionSurfaceInput = {},\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.endSession(input, idempotencyKey);\n },\n listActiveSessions(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.listActiveSessions(input);\n },\n sendAgentMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.sendAgentMessage(input, idempotencyKey);\n },\n broadcastMessage(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.broadcastMessage(input, idempotencyKey);\n },\n getInbox(\n input: FunctionSurfaceInput = {}\n ) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n getAgentInbox(input: FunctionSurfaceInput = {}) {\n return functionSurfaceClient.getAgentInbox(input);\n },\n claimFiles(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.claimFiles(input, idempotencyKey);\n },\n },\n policy: {\n checkPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.checkPermission({\n topicId: typeof input.topicId === \"string\" ? input.topicId : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n beliefClusterId:\n typeof input.beliefClusterId === \"string\"\n ? input.beliefClusterId\n : undefined,\n });\n },\n listAccessibleTopics(\n input: Parameters<typeof policyClient.listAccessibleTopics>[0] = {}\n ) {\n return policyClient.listAccessibleTopics({\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n includeShared:\n typeof input.includeShared === \"boolean\"\n ? input.includeShared\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n limit: typeof input.limit === \"number\" ? input.limit : undefined,\n });\n },\n filterByPermission(\n input: FunctionSurfaceInput\n ) {\n return policyClient.filterByPermission({\n topicIds: Array.isArray(input.topicIds)\n ? input.topicIds.filter(\n (value): value is string => typeof value === \"string\"\n )\n : undefined,\n permission:\n typeof input.permission === \"string\"\n ? (input.permission as \"read\" | \"write\")\n : undefined,\n principal:\n typeof input.principal === \"string\" ? input.principal : undefined,\n principalId:\n typeof input.principalId === \"string\" ? input.principalId : undefined,\n });\n },\n manageWritePolicy(\n input: FunctionSurfaceInput,\n idempotencyKey?: string\n ) {\n return functionSurfaceClient.manageWritePolicy(input, idempotencyKey);\n },\n raw: policyClient,\n },\n observations: {\n ingest(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n ingestObservation(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.ingestObservation(input, idempotencyKey);\n },\n getContext(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getObservationContext(input);\n },\n getObservationContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getObservationContext(input);\n },\n },\n coding: {\n getCodeContext(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getCodeContext(input);\n },\n getChangeHistory(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.getChangeHistory(input);\n },\n recordAttempt(input: FunctionSurfaceInput, idempotencyKey?: string) {\n return functionSurfaceClient.recordAttempt(input, idempotencyKey);\n },\n getFailureLog(input: FunctionSurfaceInput) {\n return functionSurfaceClient.getFailureLog(input);\n },\n },\n contracts: {\n create(\n input: FunctionSurfaceInput\n ) {\n return createContractCompat(input as JsonObject);\n },\n createEpistemicContract(input: FunctionSurfaceInput) {\n return createContractCompat(input as JsonObject);\n },\n list(\n input: {\n beliefNodeId?: string;\n contractId?: string;\n status?: string;\n } = {}\n ) {\n return listContractsCompat(input as JsonObject);\n },\n evaluate(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n evaluateContract(input: FunctionSurfaceInput) {\n return evaluateContractCompat(input as JsonObject);\n },\n getStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n getContractStatus(input: FunctionSurfaceInput) {\n return getContractStatusCompat(input as JsonObject);\n },\n },\n bootstrap: {\n generateSessionHandoff(\n input: FunctionSurfaceInput\n ) {\n return functionSurfaceClient.generateSessionHandoff(input);\n },\n },\n embeddings: embeddingsClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n orgGraphSearch: orgGraphSearchClient,\n ontologyLinks: ontologyLinksNamespace,\n graphStateClassifier: graphStateClassifierClient,\n modelRuntime: modelRuntimeClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n publication: publicationNamespace,\n contentPublication: publicationNamespace,\n tools: {\n listCatalog: toolRegistryClient.listCatalog,\n listExecutable: toolRegistryClient.listExecutable,\n listEffectiveTools: toolRegistryClient.listEffectiveTools,\n upsertCoreTools: toolRegistryClient.upsertCoreTools,\n setPackToolsStatus: toolRegistryClient.setPackToolsStatus,\n createAcl: toolRegistryClient.createAcl,\n deleteAcl: toolRegistryClient.deleteAcl,\n registerCustomTool: toolRegistryClient.registerCustomTool,\n register(registration: CustomToolRegistration) {\n return registerCustomTool(registration);\n },\n unregister(fullName: string) {\n return unregisterCustomTool(fullName);\n },\n list() {\n return listRegisteredCustomTools();\n },\n clear() {\n clearRegisteredCustomTools();\n },\n invoke(name: string, input: CustomToolInput = {}) {\n const fullName = name.includes(\".\") ? name : `custom.${name}`;\n return invokeCustomTool(fullName, input);\n },\n namespace(namespace: string) {\n return getCustomNamespace(namespace);\n },\n },\n packs: {\n /**\n * Ensure the configured packKey is installed.\n * No-op if no packKey was provided or if the pack is already installed.\n * Called automatically on first API use when packKey is set.\n */\n ensurePack,\n /**\n * Check if the configured pack has been installed in this session.\n */\n get isInstalled() {\n return _packInstalled;\n },\n listCatalog() {\n return packsClient.listCatalog();\n },\n catalog() {\n return packsClient.getCatalog();\n },\n listStates(scope?: Parameters<typeof packsClient.listStates>[0]) {\n return packsClient.listStates(scope);\n },\n states(scope?: Parameters<typeof packsClient.getStates>[0]) {\n return packsClient.getStates(scope);\n },\n install(input: Parameters<typeof packsClient.install>[0]) {\n return packsClient.install(input);\n },\n enable(input: Parameters<typeof packsClient.enable>[0]) {\n return packsClient.enable(input);\n },\n disable(input: Parameters<typeof packsClient.disable>[0]) {\n return packsClient.disable(input);\n },\n },\n nodes: nodesNamespace,\n identity: {\n ...identityFacade,\n evaluatePolicy: identityClient.evaluatePolicy,\n recordPolicyDecision: identityClient.recordPolicyDecision,\n putSecretReference: identityClient.putSecretReference,\n createPrincipal: identityClient.createPrincipal,\n updatePrincipal: identityClient.updatePrincipal,\n raw: identityClient,\n },\n mcp: {\n bootstrapSession(input?: Parameters<typeof mcpClient.bootstrapSession>[0]) {\n return mcpClient.bootstrapSession(input);\n },\n checkWritePolicy(input: Parameters<typeof mcpClient.checkWritePolicy>[0]) {\n return mcpClient.checkWritePolicy(input);\n },\n beginBuildSession(input: Parameters<typeof mcpClient.beginBuildSession>[0]) {\n return mcpClient.beginBuildSession(input);\n },\n evaluateEngineeringContract(\n input: Parameters<typeof mcpClient.evaluateEngineeringContract>[0]\n ) {\n return mcpClient.evaluateEngineeringContract(input);\n },\n evaluateResearchContract(\n input: Parameters<typeof mcpClient.evaluateResearchContract>[0]\n ) {\n return mcpClient.evaluateResearchContract(input);\n },\n },\n auth: {\n device: {\n createCode(input?: DeviceCodeInput) {\n return authDeviceClient.createDeviceCode(input);\n },\n pollToken(deviceCode: string) {\n return authDeviceClient.pollDeviceToken(deviceCode);\n },\n },\n },\n custom: getCustomNamespace(\"custom\"),\n extensions: extensionNamespaces,\n raw: {\n beliefs: beliefsClient,\n sources: sourcesClient,\n evidence: evidenceClient,\n embeddings: embeddingsClient,\n eventing: eventingClient,\n graph: graphClient,\n graphAnalysis: graphAnalysisClient,\n graphRecommendations: graphRecommendationsClient,\n graphStateClassifier: graphStateClassifierClient,\n decisions: decisionsClient,\n workflow: workflowClient,\n audit: auditClient,\n authDevice: authDeviceClient,\n admin: adminClient,\n identity: identityClient,\n policy: policyClient,\n answers: answersClient,\n ontology: ontologyClient,\n ontologyLinks: ontologyLinksClient,\n orgGraphSearch: orgGraphSearchClient,\n functionSurface: functionSurfaceClient,\n toolRegistry: toolRegistryClient,\n modelRuntime: modelRuntimeClient,\n packs: packsClient,\n reports: reportsClient,\n learning: learningClient,\n mcp: mcpClient,\n jobs: jobsClient,\n telemetry: telemetryClient,\n harness: harnessClient,\n schema: schemaClient,\n audiences: audiencesClient,\n topics: topicsClient,\n },\n };\n}\n","import { createLucernClient, type LucernClientConfig } from \"../client\";\n\nexport * as topicContracts from \"@lucern/contracts/topics/v1\";\nexport * as toolSchemas from \"@lucern/contracts/tool-contracts\";\n\nexport type TopicsClientConfig = LucernClientConfig;\nexport type TopicsClient = ReturnType<typeof createTopicsClient>;\n\nexport function createTopicsClient(config: TopicsClientConfig = {}) {\n const topics = createLucernClient(config).topics;\n\n return {\n createTopic: topics.create,\n getTopic: topics.get,\n listTopics: topics.list,\n updateTopic: topics.update,\n getTopicTree: topics.getTree,\n getTopicCoverage: topics.coverage,\n removeTopic: topics.remove,\n raw: topics,\n };\n}\n"]}
|