@superatomai/sdk-web 0.0.17 → 0.0.19
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/README.md +755 -755
- package/dist/index.cjs +123 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +111 -5
- package/dist/index.d.ts +111 -5
- package/dist/index.js +123 -2
- package/dist/index.js.map +1 -1
- package/package.json +41 -43
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/dashboards/types.ts","../src/services/reports/types.ts","../src/types.ts","../src/services/index.ts","../src/services/auth.ts","../src/services/userPrompt.ts","../src/services/bundle.ts","../src/services/data.ts","../src/services/component.ts","../src/services/users.ts","../src/services/dashboards/index.ts","../src/services/reports/index.ts","../src/services/bookmarks/index.ts","../src/services/actions.ts","../src/services/uis/index.ts","../src/services/kb-nodes.ts","../src/client.ts","../src/setup.ts","../src/index.ts"],"names":["ExpressionSchema","z","BindingSchema","ForDirectiveSchema","QuerySpecSchema","UIElementSchema","UIComponentSchema","DSLRendererPropsSchema"],"mappings":";;;;;;;AAKO,IAAM,gBAAA,GAAmB,EAAE,MAAA,CAAO;AAAA,EACvC,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,EACf,OAAO,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA;AAC7B,CAAC,CAAA;AAKM,IAAM,aAAA,GAAgB,EAAE,MAAA,CAAO;AAAA,EACpC,KAAA,EAAO,EAAE,MAAA,EAAO;AAAA,EAChB,YAAY,CAAA,CACT,KAAA;AAAA,IACC,EAAE,MAAA,CAAO;AAAA,MACP,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,MACf,MAAM,CAAA,CAAE,KAAA,CAAM,EAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACjC;AAAA,IAEF,QAAA;AACL,CAAC,CAAA;AAKM,IAAM,kBAAA,GAAqB,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAI,EAAE,KAAA,CAAM,CAAC,kBAAkB,aAAA,EAAe,CAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzD,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC,CAAA;AAKM,IAAM,eAAA,GAAkB,EAAE,MAAA,CAAO;AAAA,EACtC,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,SAAA,EAAW,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAClD,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,aAAA,EAAe,EACZ,IAAA,CAAK,CAAC,eAAe,cAAA,EAAgB,mBAAmB,CAAC,CAAA,CACzD,QAAA,EAAS;AAAA,EACZ,cAAc,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA;AACpC,CAAC,CAAA;AAKM,IAAM,kBAAkC,CAAA,CAAE,IAAA;AAAA,EAAK,MACpD,EAAE,MAAA,CAAO;AAAA,IACP,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,IACb,IAAA,EAAM,EAAE,MAAA,EAAO;AAAA,IACf,GAAA,EAAK,CAAA,CAAE,KAAA,CAAM,CAAC,CAAA,CAAE,QAAO,EAAG,gBAAgB,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACtD,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,IAC9C,KAAA,EAAO,gBAAgB,QAAA,EAAS;AAAA,IAChC,EAAA,EAAI,iBAAiB,QAAA,EAAS;AAAA,IAC9B,MAAA,EAAQ,iBAAiB,QAAA,EAAS;AAAA,IAClC,GAAA,EAAK,mBAAmB,QAAA,EAAS;AAAA,IACjC,SAAA,EAAW,EACR,KAAA,CAAM;AAAA,MACL,EAAE,MAAA,EAAO;AAAA,MACT,gBAAA;AAAA,MACA,aAAA;AAAA,MACA,EAAE,MAAA,CAAO;AAAA,QACP,EAAA,EAAI,EAAE,KAAA,CAAM,CAAC,EAAE,MAAA,EAAO,EAAG,gBAAA,EAAkB,aAAa,CAAC,CAAA;AAAA,QACzD,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAAS,OAChD;AAAA,KACF,EACA,QAAA,EAAS;AAAA,IACZ,KAAA,EAAO,EACJ,MAAA,CAAO;AAAA,MACN,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACxB,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,YAAA,EAAc,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACnC,EACA,QAAA,EAAS;AAAA,IACZ,QAAA,EAAU,CAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAM,gBAAgB,QAAA,EAAS;AAAA,IAC/B,OAAO,CAAA,CACJ,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,KAAA,CAAM,CAAC,eAAA,EAAiB,EAAE,KAAA,CAAM,eAAe,CAAC,CAAC,CAAC,EACvE,QAAA,EAAS;AAAA,IACZ,QAAA,EAAU,EACP,MAAA,CAAO;AAAA,MACN,GAAA,EAAK,CAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,MACtB,GAAA,EAAK,CAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,MACtB,OAAA,EAAS,CAAA,CAAE,GAAA,EAAI,CAAE,QAAA;AAAS,KAC3B,EACA,QAAA;AAAS,GACb;AACH,CAAA;AAKO,IAAM,iBAAA,GAAoB,EAAE,MAAA,CAAO;AAAA,EACxC,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,KAAA,EAAO,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC9C,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,SAAS,CAAA,CACN,MAAA;AAAA,IACC,EAAE,MAAA,EAAO;AAAA,IACT,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,MACb,MAAA,EAAQ,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAAS,KAChD;AAAA,IAEF,QAAA,EAAS;AAAA,EACZ,SAAS,CAAA,CACN,KAAA;AAAA,IACC,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,MACb,MAAM,CAAA,CAAE,KAAA,CAAM,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,IAEF,QAAA,EAAS;AAAA,EACZ,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7C,MAAA,EAAQ,eAAA;AAAA,EACR,KAAA,EAAO,gBAAgB,QAAA;AACzB,CAAC,CAAA;AAKM,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,GAAA,EAAK,iBAAA;AAAA,EACL,IAAA,EAAM,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7C,OAAA,EAAS,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AACzC,CAAC,CAAA;ACjIM,IAAMA,iBAAAA,GAAmBC,EAAE,MAAA,CAAO;AAAA,EACvC,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,OAAOA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAC7B,CAAC,CAAA;AAKM,IAAMC,cAAAA,GAAgBD,EAAE,MAAA,CAAO;AAAA,EACpC,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,YAAYA,CAAAA,CACT,KAAA;AAAA,IACCA,EAAE,MAAA,CAAO;AAAA,MACP,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,MACf,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,GAAA,EAAK,EAAE,QAAA;AAAS,KACjC;AAAA,IAEF,QAAA;AACL,CAAC,CAAA;AAKM,IAAME,mBAAAA,GAAqBF,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,EAAE,KAAA,CAAM,CAACD,mBAAkBE,cAAAA,EAAeD,CAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,EACzD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC,CAAA;AAKM,IAAMG,gBAAAA,GAAkBH,EAAE,MAAA,CAAO;AAAA,EACtC,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAClD,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,GAAA,EAAKA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACzB,aAAA,EAAeA,EACZ,IAAA,CAAK,CAAC,eAAe,cAAA,EAAgB,mBAAmB,CAAC,CAAA,CACzD,QAAA,EAAS;AAAA,EACZ,cAAcA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AACpC,CAAC,CAAA;AAKM,IAAMI,mBAAkCJ,CAAAA,CAAE,IAAA;AAAA,EAAK,MACpDA,EAAE,MAAA,CAAO;AAAA,IACP,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,IACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,IACf,GAAA,EAAKA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,QAAO,EAAGD,iBAAgB,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACtD,KAAA,EAAOC,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,IAC9C,KAAA,EAAOG,iBAAgB,QAAA,EAAS;AAAA,IAChC,EAAA,EAAIJ,kBAAiB,QAAA,EAAS;AAAA,IAC9B,MAAA,EAAQA,kBAAiB,QAAA,EAAS;AAAA,IAClC,GAAA,EAAKG,oBAAmB,QAAA,EAAS;AAAA,IACjC,SAAA,EAAWF,EACR,KAAA,CAAM;AAAA,MACLA,EAAE,MAAA,EAAO;AAAA,MACTD,iBAAAA;AAAA,MACAE,cAAAA;AAAA,MACAD,EAAE,MAAA,CAAO;AAAA,QACP,EAAA,EAAIA,EAAE,KAAA,CAAM,CAACA,EAAE,MAAA,EAAO,EAAGD,iBAAAA,EAAkBE,cAAa,CAAC,CAAA;AAAA,QACzD,MAAA,EAAQD,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAAS,OAChD;AAAA,KACF,EACA,QAAA,EAAS;AAAA,IACZ,KAAA,EAAOA,EACJ,MAAA,CAAO;AAAA,MACN,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MACxB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC7B,YAAA,EAAcA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KACnC,EACA,QAAA,EAAS;AAAA,IACZ,QAAA,EAAUA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMI,iBAAgB,QAAA,EAAS;AAAA,IAC/B,OAAOJ,CAAAA,CACJ,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,KAAA,CAAM,CAACI,gBAAAA,EAAiBJ,EAAE,KAAA,CAAMI,gBAAe,CAAC,CAAC,CAAC,EACvE,QAAA,EAAS;AAAA,IACZ,QAAA,EAAUJ,EACP,MAAA,CAAO;AAAA,MACN,GAAA,EAAKA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,MACtB,GAAA,EAAKA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,MACtB,OAAA,EAASA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA;AAAS,KAC3B,EACA,QAAA;AAAS,GACb;AACH,CAAA;AAKO,IAAMK,kBAAAA,GAAoBL,EAAE,MAAA,CAAO;AAAA,EACxC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,KAAA,EAAOA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC9C,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC/C,SAASA,CAAAA,CACN,MAAA;AAAA,IACCA,EAAE,MAAA,EAAO;AAAA,IACTA,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAAS,KAChD;AAAA,IAEF,QAAA,EAAS;AAAA,EACZ,SAASA,CAAAA,CACN,KAAA;AAAA,IACCA,EAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA,IAEF,QAAA,EAAS;AAAA,EACZ,IAAA,EAAMA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7C,MAAA,EAAQI,gBAAAA;AAAA,EACR,KAAA,EAAOD,iBAAgB,QAAA;AACzB,CAAC,CAAA;AAKM,IAAMG,uBAAAA,GAAyBN,EAAE,MAAA,CAAO;AAAA,EAC7C,GAAA,EAAKK,kBAAAA;AAAA,EACL,IAAA,EAAML,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAC7C,OAAA,EAASA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AACzC,CAAC,CAAA;;;AChIM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC;AAQM,IAAM,aAAA,GAAgBA,EAAE,MAAA,CAAO;AAAA,EACpC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAASA,EAAE,OAAA;AACb,CAAC;AAUM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,UAAA,EAAYA,EAAE,MAAA;AAAO;AACvB,CAAC;AAQM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS;AAC7B,CAAC;AAOM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,KAAA,EAAOA,EAAE,MAAA;AAAO;AAClB,CAAC;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACpB,CAAC;AAOM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,SAAA,EAAWA,EAAE,MAAA;AAAO,GACrB,EAAE,QAAA,EAAS;AAAA,EACZ,YAAA,EAAcA,EAAE,IAAA,CAAK,CAAC,aAAa,MAAM,CAAC,EAAE,QAAA;AAC9C,CAAC;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,eAAA,GAAkBA,EAAE,MAAA,CAAO;AAAA,EACtC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,KAAA,EAAOA,EAAE,MAAA,CAAO;AAAA,IACd,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAAS,GACpD,CAAA;AAAA,EACD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,UAAUA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAChC,CAAC;AAQM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,SAAA,EAAW,gBAAgB,QAAA;AAAS,GACrC,EAAE,QAAA,EAAS;AAAA,EACZ,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC;AAOM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,iBAAiB,CAAA;AAAA,EACjC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,yCAAA,GAA4CA,EAAE,MAAA,CAAO;AAAA,EAChE,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,KAAA,EAAOA,EAAE,MAAA,EAAO,CAAE,KAAI,CAAE,QAAA,EAAS,CAAE,OAAA,CAAQ,CAAC;AAC9C,CAAC;AAQM,IAAM,yCAAA,GAA4CA,EAAE,MAAA,CAAO;AAAA,EAChE,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,6BAA6B,CAAA;AAAA,EAC7C,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,0CAAA,GAA6CA,EAAE,MAAA,CAAO;AAAA,EACjE,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,IACjB,WAAA,EAAaA,CAAAA,CAAE,KAAA,CAAM,eAAe,CAAA;AAAA,IACpC,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,IAChB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC9B,EAAE,QAAA;AACL,CAAC;AAOM,IAAM,0CAAA,GAA6CA,EAAE,MAAA,CAAO;AAAA,EACjE,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,6BAA6B,CAAA;AAAA,EAC7C,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AASM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EAC/C,cAAcA,CAAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,QAAQ,KAAK;AACpD,CAAC;AAOI,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,YAAY,CAAA;AAAA,EAC5B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,EACtB,UAAA,EAAYA,EAAE,OAAA,EAAQ;AAAA,EACtB,QAAA,EAAUA,EAAE,MAAA;AACd,CAAC;AAOM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAC9B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,KAAA,EAAOA,EAAE,MAAA;AACX,CAAC;AAOM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,YAAY,CAAA;AAAA,EAC5B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,EACnD,UAAA,EAAYA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAChD,CAAC;AAQM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EAC1B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,UAAA,EAAYA,EAAE,MAAA,EAAO;AAAA,EACrB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,EAAE,OAAA,EAAQ;AAAA,EAChB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC;AAOM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EAC1B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA,EACvC,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,KAAA,EAAOA,EAAE,IAAA,CAAK,CAAC,QAAQ,OAAA,EAAS,MAAA,EAAQ,OAAO,CAAC,CAAA;AAAA,EAChD,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,eAAe,OAAA,EAAS,SAAS,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,EAC3D,IAAA,EAAMA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC1C,CAAC;AAQM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAM,gBAAgB;AAChC,CAAC;AAQM,IAAM,mBAAA,GAAsBA,EAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,EACzB,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAWM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAYA,EAAE,MAAA,CAAO;AAAA,IACnB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,IACnB,SAAA,EAAWA,EAAE,MAAA;AAAO,GACrB,EAAE,QAAA;AACL,CAAC;AAIM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAM,wBAAA;AAAA,EACN,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,EACzB,OAAA,EAAS;AACX,CAAC;AAIM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,IAAA,EAAMA,CAAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA,EACvB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACpB,CAAC;AAIM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,KAAK;AAC7B,CAAC;AAQM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,oBAAoB,CAAA;AAAA,EACpC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,sBAAA,GAAyBA,EAAE,MAAA,CAAO;AAAA,EAC7C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACvB,CAAC,CAAA;AAQM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7E,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,OAAOA,CAAAA,CAAE,MAAA,GAAS,KAAA,CAAM,sBAAsB,EAAE,QAAA,EAAS;AAAA,IACzD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAASA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA;AAAA,IAEpD,OAAA,EAAS,uBAAuB,QAAA,EAAS;AAAA,IACzC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAA;AAAS,GACxC,EAAE,QAAA;AACL,CAAC,CAAA;AAQM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,OAAO,CAAA;AAAA,EACvB,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC,CAAA;AAQM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC7B,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MACtB,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,MACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,MACrD,OAAOA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,MACpC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAChC,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACb,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,MACb,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,MACb,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,MACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC1B,QAAA,EAAUA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS;AAAA,MACrD,OAAOA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,MACpC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,MAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAChC,EAAE,QAAA,EAAS;AAAA,IACZ,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC5B,EAAE,QAAA;AACL,CAAC,CAAA;AAOyCA,EAAE,MAAA,CAAO;AAAA,EACjD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,EAC3B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAgBM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAAA,EAAWA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC,CAAA;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7E,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,SAAA,EAAWA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAChC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAW,uBAAuB,QAAA,EAAS;AAAA;AAAA,IAE3C,OAAA,EAAS,4BAA4B,QAAA,EAAS;AAAA,IAC9C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAA;AAAS,GACxC,EAAE,QAAA;AACL,CAAC,CAAA;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,YAAY,CAAA;AAAA,EAC5B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC,CAAA;AAQM,IAAM,+BAAA,GAAkCA,EAAE,MAAA,CAAO;AAAA,EACtD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,SAAA,EAAW,uBAAuB,QAAA,EAAS;AAAA,IAC3C,UAAA,EAAYA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MAC3B,WAAA,EAAaA,EAAE,MAAA,EAAO;AAAA,MACtB,SAAA,EAAW;AAAA,KACZ,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC9B,EAAE,QAAA;AACL,CAAC,CAAA;AAO8CA,EAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,gBAAgB,CAAA;AAAA,EAChC,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAgBM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAAA,EAAWA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACzB,CAAC,CAAA;AAQM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7E,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,SAAA,EAAWA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAChC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,MAAA,EAAQM,wBAA6B,QAAA,EAAS;AAAA;AAAA,IAE9C,OAAA,EAAS,yBAAyB,QAAA,EAAS;AAAA,IAC3C,KAAA,EAAON,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAA;AAAS,GACxC,EAAE,QAAA;AACL,CAAC,CAAA;AAQM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,EACzB,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC,CAAA;AAQM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,MAAA,EAAQM,wBAA6B,QAAA,EAAS;AAAA,IAC9C,OAAA,EAASN,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MACxB,QAAA,EAAUA,EAAE,MAAA,EAAO;AAAA,MACnB,MAAA,EAAQM;AAAA,KACT,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACb,KAAA,EAAON,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC9B,EAAE,QAAA;AACL,CAAC,CAAA;AAO2CA,EAAE,MAAA,CAAO;AAAA,EACnD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,aAAa,CAAA;AAAA,EAC7B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,oBAAA,GAAuBA,EAAE,MAAA,CAAO;AAAA,EAC3C,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC1B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC,CAAA;AAQM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7E,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,EAAA,EAAI,uBAAuB,QAAA,EAAS;AAAA;AAAA,IAEpC,OAAA,EAAS,qBAAqB,QAAA,EAAS;AAAA,IACvC,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAA;AAAS,GACxC,EAAE,QAAA;AACL,CAAC,CAAA;AAQM,IAAM,uBAAA,GAA0BA,EAAE,MAAA,CAAO;AAAA,EAC9C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACrB,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC,CAAA;AAQM,IAAM,wBAAA,GAA2BA,EAAE,MAAA,CAAO;AAAA,EAC/C,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,IAAA,EAAMA,CAAAA,CAAE,KAAA,CAAM,CAACA,CAAAA,CAAE,MAAA,EAAO,EAAGA,CAAAA,CAAE,MAAA,EAAQ,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACjD,EAAA,EAAI,uBAAuB,QAAA,EAAS;AAAA,IACpC,GAAA,EAAKA,CAAAA,CAAE,KAAA,CAAMA,CAAAA,CAAE,MAAA,CAAO;AAAA,MACpB,IAAA,EAAMA,EAAE,MAAA,EAAO;AAAA,MACf,EAAA,EAAI,uBAAuB,QAAA;AAAS,KACrC,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IACb,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC9B,EAAE,QAAA;AACL,CAAC,CAAA;AAOuCA,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,EACzB,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,eAAA,GAAkBA,EAAE,MAAA,CAAO;AAAA,EACtC,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,SAAA,EAAWA,CAAAA,CAAE,MAAA,CAAOA,CAAAA,CAAE,MAAA,IAAUA,CAAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAClD,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,WAAA,EAAaA,EAAE,MAAA;AACjB,CAAC,CAAA;AAQM,IAAM,kBAAA,GAAqBA,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,OAAA,EAAS,eAAA;AAAA,EACT,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,UAAA,EAAYA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACzB,CAAC,CAAA;AAQM,IAAM,0BAAA,GAA6BA,EAAE,MAAA,CAAO;AAAA,EACjD,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC5B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC,CAAA;AAQM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,QAAA,EAAU,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,OAAO,CAAC,CAAA;AAAA,EAC7E,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC1B,WAAA,EAAaA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACjC,OAAA,EAAS,gBAAgB,QAAA,EAAS;AAAA;AAAA,IAElC,OAAA,EAAS,2BAA2B,QAAA,EAAS;AAAA,IAC7C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,IAAA,EAAMA,EAAE,IAAA,CAAK,CAAC,OAAO,MAAM,CAAC,EAAE,QAAA;AAAS,GACxC,EAAE,QAAA;AACL,CAAC,CAAA;AAQM,IAAM,6BAAA,GAAgCA,EAAE,MAAA,CAAO;AAAA,EACpD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,WAAW,CAAA;AAAA,EAC3B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC,CAAA;AAQM,IAAM,8BAAA,GAAiCA,EAAE,MAAA,CAAO;AAAA,EACrD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,KAAA,CAAM;AAAA,IACZ,kBAAA;AAAA,IACAA,CAAAA,CAAE,MAAM,kBAAkB;AAAA,GAC3B,EAAE,QAAA,EAAS;AAAA,EACZ,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACtB,CAAC,CAAA;AAO6CA,EAAE,MAAA,CAAO;AAAA,EACrD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,eAAe,CAAA;AAAA,EAC/B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAUM,IAAM,gBAAA,GAAmBA,EAAE,MAAA,CAAO;AAAA,EACvC,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACxB,KAAA,EAAOA,EAAE,MAAA,EAAO;AAAA,EAChB,OAAA,EAASA,EAAE,MAAA,EAAO;AAAA,EAClB,UAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,EACzC,IAAA,EAAMA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,EAC9C,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAQM,IAAM,yBAAA,GAA4BA,EAAE,MAAA,CAAO;AAAA,EAChD,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EACnC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAQM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,SAAA,EAAWA,CAAAA,CAAE,IAAA,CAAK,CAAC,UAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,QAAA,EAAU,eAAA,EAAiB,WAAA,EAAa,eAAA,EAAiB,SAAS,CAAC,CAAA;AAAA,EACxI,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA,IACb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC7B,QAAA,EAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC9B,MAAMA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,IACnC,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,IAE5B,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAAS,0BAA0B,QAAA,EAAS;AAAA,IAC5C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,GAC7B,EAAE,QAAA;AACL,CAAC;AAQM,IAAM,2BAAA,GAA8BA,EAAE,MAAA,CAAO;AAAA,EAClD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,UAAU,CAAA;AAAA,EAC1B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AAQM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,OAAA,EAASA,EAAE,OAAA,EAAQ;AAAA,EACnB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,IAAA,EAAMA,EAAE,MAAA,CAAO;AAAA;AAAA,IAEb,EAAA,EAAIA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IACxB,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC3B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC7B,UAAUA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,GAAW,QAAA,EAAS;AAAA,IACzC,IAAA,EAAMA,EAAE,KAAA,CAAMA,CAAAA,CAAE,QAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,EAAS;AAAA,IAC9C,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,SAAA,EAAWA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,IAE7B,IAAA,EAAM,iBAAiB,QAAA,EAAS;AAAA;AAAA,IAEhC,KAAA,EAAOA,CAAAA,CAAE,KAAA,CAAM,gBAAgB,EAAE,QAAA,EAAS;AAAA,IAC1C,KAAA,EAAOA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,IAE3B,MAAA,EAAQA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,IAE5B,YAAYA,CAAAA,CAAE,KAAA,CAAMA,EAAE,MAAA,EAAQ,EAAE,QAAA;AAAS;AAAA,GAE1C,EAAE,QAAA;AACL,CAAC;AAOM,IAAM,4BAAA,GAA+BA,EAAE,MAAA,CAAO;AAAA,EACnD,EAAA,EAAIA,EAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,CAAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAC9B,IAAA,EAAM,wBAAA;AAAA,EACN,EAAA,EAAI,yBAAyB,QAAA,EAAS;AAAA,EACtC,OAAA,EAAS;AACX,CAAC;AASM,IAAM,kBAAA,GAAqBA,EAAE,MAAA,CAAO;AAAA,EACzC,MAAA,EAAQA,EAAE,MAAA,EAAO;AAAA,EACjB,SAAA,EAAWA,EAAE,MAAA,EAAO;AAAA,EACpB,OAAA,EAASA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAQ,iCAAiC,CAAA;AAAA,EAC7D,IAAA,EAAMA,CAAAA,CAAE,MAAA,EAAO,CAAE,QAAQ,SAAS,CAAA;AAAA,EAClC,oBAAA,EAAsBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,QAAQ,QAAQ,CAAA;AAAA,EACxD,qBAAA,EAAuBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,QAAQ,GAAI,CAAA;AAAA,EACrD,iBAAA,EAAmBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,QAAQ,GAAK,CAAA;AAAA,EAClD,cAAA,EAAgBA,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,QAAQ,GAAK,CAAA;AAAA,EAC/C,KAAA,EAAOA,CAAAA,CAAE,OAAA,EAAQ,CAAE,QAAQ,KAAK;AAClC,CAAC;;;AC1mCD,IAAA,gBAAA,GAAA;AAAA,QAAA,CAAA,gBAAA,EAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,sBAAA,EAAA,MAAA,sBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,KAAA,EAAA,MAAA,KAAA;AAAA,EAAA,OAAA,EAAA,MAAA,OAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,WAAA,EAAA,MAAA,WAAA;AAAA,EAAA,aAAA,EAAA,MAAA,aAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,gCAAA,EAAA,MAAA,gCAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,YAAA,EAAA,MAAA,YAAA;AAAA,EAAA,QAAA,EAAA,MAAA,QAAA;AAAA,EAAA,UAAA,EAAA,MAAA;AAAA,CAAA,CAAA;;;ACqBA,eAAsB,oBAAA,CACpB,MAAA,EACA,eAAA,EACA,OAAA,EACkB;AAElB,EAAA,MAAM,SAAA,GAAY,CAAA,MAAA,EAAS,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAGrC,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,gBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,MAAM,MAAA,CAAO;AAAA,KACf;AAAA,IACA,EAAA,EAAI;AAAA,MACF,IAAA,EAAM;AAAA,KACR;AAAA,IACA,OAAA,EAAS;AAAA,MACP,UAAA,EAAY;AAAA;AACd,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,OAAA,CAAQ,GAAA,CAAI,2BAA2B,QAAQ,CAAA;AAC/C,EAAA,OAAO,QAAA;AACT;AASA,eAAsB,qBAAA,CACpB,MAAA,EACA,KAAA,EACA,OAAA,EACkB;AAElB,EAAA,MAAM,SAAA,GAAY,CAAA,OAAA,EAAU,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAGtC,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,iBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,MAAM,MAAA,CAAO;AAAA,KACf;AAAA,IACA,EAAA,EAAI;AAAA,MACF,IAAA,EAAM;AAAA,KACR;AAAA,IACA,OAAA,EAAS;AAAA,MACP;AAAA;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,OAAO,QAAA;AACT;;;ACxDA,eAAsB,sBACrB,MAAA,EACA,MAAA,EACA,UACA,SAAA,EACA,YAAA,EACA,UACA,OAAA,EACmB;AAEnB,EAAA,MAAM,SAAA,GAAY,CAAA,oBAAA,EAAuB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAGnD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC9E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,iBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACL,MAAM,MAAA,CAAO;AAAA,KACd;AAAA,IACA,EAAA,EAAI;AAAA,MACH,IAAA,EAAM;AAAA,KACP;AAAA,IACA,OAAA,EAAS;AAAA,MACR,MAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACX,QAAA;AAAA,QACA;AAAA,OACD;AAAA,MACA;AAAA;AACD,GACA,CAAA;AAGD,EAAA,IAAI,iBAAA,GAAyC,IAAA;AAC7C,EAAA,IAAI,YAAA,KAAiB,UAAU,QAAA,EAAU;AACxC,IAAA,iBAAA,GAAoB,MAAA,CAAO,SAAA,CAAU,CAAC,GAAA,KAAQ;AAG7C,MAAA,IAAI,IAAI,IAAA,KAAS,oBAAA,IAAwB,IAAI,EAAA,KAAO,CAAA,OAAA,EAAU,SAAS,CAAA,CAAA,EAAI;AAC1E,QAAA,MAAM,KAAA,GAAS,IAAI,OAAA,EAAiB,KAAA;AACpC,QAAA,IAAI,KAAA,EAAO;AACV,UAAA,QAAA,CAAS,KAAK,CAAA;AAAA,QACf;AAAA,MACD;AAAA,IACD,CAAC,CAAA;AAAA,EACF;AAEA,EAAA,IAAI;AACH,IAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,IAAA,OAAO,QAAA;AAAA,EACR,CAAA,SAAE;AAED,IAAA,IAAI,iBAAA,EAAmB;AACtB,MAAA,iBAAA,EAAkB;AAAA,IACnB;AAAA,EACD;AACD;AAUA,eAAsB,gCAAA,CACrB,MAAA,EACA,MAAA,EACA,KAAA,GAAgB,GAChB,OAAA,EAC0B;AAC1B,EAAA,IAAI,CAAC,MAAA,IAAU,MAAA,CAAO,IAAA,EAAK,CAAE,WAAW,CAAA,EAAG;AAC1C,IAAA,OAAO,IAAA;AAAA,EACR;AAGA,EAAA,MAAM,SAAA,GAAY,CAAA,YAAA,EAAe,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAG3C,EAAA,MAAM,OAAA,GAA+C,0CAA0C,KAAA,CAAM;AAAA,IACpG,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,6BAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACL,MAAM,MAAA,CAAO;AAAA,KACd;AAAA,IACA,EAAA,EAAI;AAAA,MACH,IAAA,EAAM;AAAA,KACP;AAAA,IACA,OAAA,EAAS;AAAA,MACR,MAAA;AAAA,MACA;AAAA;AACD,GACA,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,OAAO,QAAA;AACR;;;ACrGA,eAAsB,aAAA,CACpB,QACA,OAAA,EAKiB;AACjB,EAAA,MAAM,SAAA,GAAY,CAAA,IAAA,EAAO,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAG9E,EAAA,MAAM,OAAA,GAAgC,2BAA2B,KAAA,CAAM;AAAA,IACrE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS,EAAE,YAAA,EAAe,OAAA,EAAS,gBAAiB,KAAA;AAAM,GAC3D,CAAA;AAGD,EAAA,MAAM,SAAmB,EAAC;AAC1B,EAAA,IAAI,WAAA,GAAc,CAAA;AAGlB,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,SAAA,CAAU,CAAC,GAAA,KAAQ;AAC5C,IAAA,IAAI;AAEF,MAAA,IAAI,IAAI,IAAA,KAAS,cAAA,IAAkB,IAAI,EAAA,EAAI,UAAA,CAAW,SAAS,CAAA,EAAG;AAEhE,QAAA,MAAM,YAAA,GAAe,wBAAA,CAAyB,KAAA,CAAM,GAAG,CAAA;AACvD,QAAA,MAAM,UAA8B,YAAA,CAAa,OAAA;AAEjD,QAAA,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,GAAI,OAAA,CAAQ,KAAA;AACrC,QAAA,WAAA,GAAc,OAAA,CAAQ,WAAA;AAGtB,QAAA,IAAI,SAAS,UAAA,EAAY;AACvB,UAAA,OAAA,CAAQ,UAAA,CAAW,QAAQ,QAAQ,CAAA;AAAA,QACrC;AAAA,MACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,6CAA6C,KAAK,CAAA;AAAA,IAClE;AAAA,EACF,CAAC,CAAA;AAGD,EAAA,MAAA,CAAO,KAAK,OAAO,CAAA;AAGnB,EAAA,MAAM,OAAA,GAAU,SAAS,OAAA,IAAW,GAAA;AACpC,EAAA,MAAM,SAAA,GAAY,KAAK,GAAA,EAAI;AAE3B,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,IAAA,MAAM,aAAA,GAAgB,YAAY,MAAM;AAEtC,MAAA,IAAI,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,OAAA,EAAS;AACpC,QAAA,aAAA,CAAc,aAAa,CAAA;AAC3B,QAAA,WAAA,EAAY;AACZ,QAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,6BAAA,EAAgC,OAAO,IAAI,CAAC,CAAA;AAC7D,QAAA;AAAA,MACF;AAGA,MAAA,IAAI,WAAA,GAAc,CAAA,IAAK,MAAA,CAAO,MAAA,KAAW,WAAA,EAAa;AACpD,QAAA,aAAA,CAAc,aAAa,CAAA;AAC3B,QAAA,WAAA,EAAY;AAGZ,QAAA,MAAM,MAAA,GAAS,MAAA,CAAO,IAAA,CAAK,EAAE,CAAA;AAC7B,QAAA,OAAA,CAAQ,MAAM,CAAA;AAAA,MAChB;AAAA,IACF,GAAG,GAAG,CAAA;AAAA,EACR,CAAC,CAAA;AACH;;;ACxEA,eAAsB,WAAA,CACpB,QACA,OAAA,EAOmE;AACnE,EAAA,MAAM,SAAA,GAAY,CAAA,IAAA,EAAO,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAG9E,EAAA,MAAM,OAAA,GAA8B,yBAAyB,KAAA,CAAM;AAAA,IACjE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,YAAY,OAAA,CAAQ,UAAA;AAAA,MACpB,IAAI,OAAA,CAAQ,SAAA;AAAA,MACZ,QAAQ,OAAA,CAAQ,MAAA;AAAA,MAChB,YAAY,OAAA,CAAQ;AAAA;AACtB,GACD,CAAA;AAED,EAAA,MAAM,WAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,QAAQ,OAAO,CAAA;AAGvE,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,aAAa,OAAA,CAAQ;AAAA,GACvB;AACF;;;AC3CA,eAAsB,uBAAA,CACpB,MAAA,EACA,KAAA,EACA,OAAA,EACuE;AACvE,EAAA,MAAM,SAAA,GAAY,CAAA,IAAA,EAAO,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAE9E,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,iBAAA;AAAA,IACN,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA;AACV,GACF;AAEA,EAAA,MAAM,WAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,SAAS,OAAO,CAAA;AAGxE,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAKzB,EAAA,OAAO;AAAA,IACL,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,OAAO,OAAA,CAAQ;AAAA,GACjB;AACF;AAEA,eAAsB,cAAA,CACpB,QACA,UAAA,EACA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAA,IAAA,EAAO,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAE9E,EAAA,MAAM,MAAA,GAAS;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,oBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACL,MAAM,MAAA,CAAO;AAAA,KACd;AAAA,IACA,EAAA,EAAG;AAAA,MACF,IAAA,EAAM;AAAA,KACP;AAAA,IACA,OAAA,EAAS;AAAA,MACR;AAAA;AACD,GACD;AAGA,EAAA,MAAA,CAAO,KAAK,MAAM,CAAA;AACpB;;;AC/BA,eAAsB,UAAA,CACpB,QACA,QAAA,EACA,QAAA,EACA,OACA,QAAA,EACA,IAAA,EACA,UACA,OAAA,EACsI;AACtI,EAAA,MAAM,SAAA,GAAY,CAAA,aAAA,EAAgB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE5C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,QAAA;AAAA,QACA,QAAA;AAAA,QACA,KAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,IAAA,EAAM,QAAQ,IAAA,EAAM;AAAA,GACtB;AACF;AAUA,eAAsB,UAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EAOA,OAAA,EACsI;AACtI,EAAA,MAAM,SAAA,GAAY,CAAA,aAAA,EAAgB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE5C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,GAAG;AAAA;AACL;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,IAAA,EAAM,QAAQ,IAAA,EAAM;AAAA,GACtB;AACF;AASA,eAAsB,UAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACsI;AACtI,EAAA,MAAM,SAAA,GAAY,CAAA,aAAA,EAAgB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE5C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,IAAA,EAAM,QAAQ,IAAA,EAAM;AAAA,GACtB;AACF;AAQA,eAAsB,WAAA,CACpB,QACA,OAAA,EACiG;AACjG,EAAA,MAAM,SAAA,GAAY,CAAA,aAAA,EAAgB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE5C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,OAAA,CACpB,MAAA,EACA,QAAA,EACA,OAAA,EAC8E;AAC9E,EAAA,MAAM,SAAA,GAAY,CAAA,aAAA,EAAgB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE5C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA;AAAA,IACpB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAkBA,eAAsB,UAAA,CACpB,MAAA,EACA,OAAA,GAA6B,IAC7B,OAAA,EACiG;AACjG,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK,GAAI,OAAA;AACjC,EAAA,MAAM,SAAA,GAAY,CAAA,YAAA,EAAe,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE3C,EAAA,MAAM,OAAA,GAA+B,0BAA0B,KAAA,CAAM;AAAA,IACnE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,OAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;;;ACzNA,eAAsB,eAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACkI;AAClI,EAAA,MAAM,EAAE,aAAa,SAAA,EAAW,IAAA,EAAM,aAAa,SAAA,EAAW,SAAA,EAAW,WAAU,GAAI,OAAA;AACvF,EAAA,MAAM,SAAA,GAAY,CAAA,kBAAA,EAAqB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,WAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,WAAA,EAAa,QAAQ,IAAA,EAAM,WAAA;AAAA,IAC3B,SAAA,EAAW,QAAQ,IAAA,EAAM;AAAA,GAC3B;AACF;AASA,eAAsB,eAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACkI;AAClI,EAAA,MAAM,EAAE,IAAI,IAAA,EAAM,WAAA,EAAa,WAAW,SAAA,EAAW,SAAA,EAAW,WAAU,GAAI,OAAA;AAC9E,EAAA,MAAM,SAAA,GAAY,CAAA,kBAAA,EAAqB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,WAAA,EAAa,QAAQ,IAAA,EAAM,WAAA;AAAA,IAC3B,SAAA,EAAW,QAAQ,IAAA,EAAM;AAAA,GAC3B;AACF;AASA,eAAsB,eAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EAC8E;AAC9E,EAAA,MAAM,SAAA,GAAY,CAAA,kBAAA,EAAqB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc;AAAA,GAC7B;AACF;AAQA,eAAsB,gBAAA,CACpB,QACA,OAAA,EAC2G;AAC3G,EAAA,MAAM,SAAA,GAAY,CAAA,kBAAA,EAAqB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,UAAA,EAAY,QAAQ,IAAA,EAAM,UAAA;AAAA,IAC1B,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,YAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACkI;AAClI,EAAA,MAAM,SAAA,GAAY,CAAA,kBAAA,EAAqB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEjD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,WAAA,EAAa,QAAQ,IAAA,EAAM,WAAA;AAAA,IAC3B,SAAA,EAAW,QAAQ,IAAA,EAAM,SAAA;AAAA,IACzB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,eAAA,CACpB,MAAA,EACA,OAAA,GAAkC,IAClC,OAAA,EAC2G;AAC3G,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK,GAAI,OAAA;AACjC,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAoC,+BAA+B,KAAA,CAAM;AAAA,IAC7E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,YAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,UAAA,EAAY,QAAQ,IAAA,EAAM,UAAA;AAAA,IAC1B,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;;;AC/OA,eAAsB,YAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EAC4H;AAC5H,EAAA,MAAM,EAAE,UAAU,SAAA,EAAW,IAAA,EAAM,aAAa,SAAA,EAAW,SAAA,EAAW,QAAO,GAAI,OAAA;AACjF,EAAA,MAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,QAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,MAAA,EAAQ,QAAQ,IAAA,EAAM;AAAA,GACxB;AACF;AASA,eAAsB,YAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EAC4H;AAC5H,EAAA,MAAM,EAAE,IAAI,IAAA,EAAM,WAAA,EAAa,WAAW,SAAA,EAAW,SAAA,EAAW,QAAO,GAAI,OAAA;AAC3E,EAAA,MAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,MAAA,EAAQ,QAAQ,IAAA,EAAM;AAAA,GACxB;AACF;AASA,eAAsB,YAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EAC8E;AAC9E,EAAA,MAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc;AAAA,GAC7B;AACF;AAQA,eAAsB,aAAA,CACpB,QACA,OAAA,EACqG;AACrG,EAAA,MAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,SAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EAC4H;AAC5H,EAAA,MAAM,SAAA,GAAY,CAAA,eAAA,EAAkB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE9C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,QAAA,EAAU,QAAQ,IAAA,EAAM,QAAA;AAAA,IACxB,MAAA,EAAQ,QAAQ,IAAA,EAAM,MAAA;AAAA,IACtB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,YAAA,CACpB,MAAA,EACA,OAAA,GAA+B,IAC/B,OAAA,EACqG;AACrG,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK,GAAI,OAAA;AACjC,EAAA,MAAM,SAAA,GAAY,CAAA,cAAA,EAAiB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE7C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;;;AC5QA,eAAsB,cAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACsF;AACtF,EAAA,MAAM,EAAE,MAAA,EAAQ,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,aAAY,GAAI,OAAA;AACzD,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,MAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,IAAI,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,GAAI,OAAA,CAAQ;AAAA,GAChE;AACF;AAoBA,eAAsB,cAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACsF;AACtF,EAAA,MAAM,EAAE,EAAA,EAAI,OAAA,EAAS,QAAA,EAAU,IAAA,EAAM,aAAY,GAAI,OAAA;AACrD,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,IAAI,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,GAAI,OAAA,CAAQ;AAAA,GAChE;AACF;AASA,eAAsB,cAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACsF;AACtF,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,IAAI,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,GAAI,OAAA,CAAQ;AAAA,GAChE;AACF;AAQA,eAAsB,eAAA,CACpB,QACA,OAAA,EACwG;AACxG,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,CAAQ,IAAA,GAAO,OAAA,CAAQ,IAAA,GAAO,CAAC,OAAA,CAAQ,IAAI,IAAI,EAAC;AAAA,IACpF,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;AASA,eAAsB,WAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACsF;AACtF,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,IAAI,OAAA,CAAQ,IAAA,CAAK,CAAC,CAAA,GAAI,OAAA,CAAQ,IAAA;AAAA,IAC9D,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;AAkBA,eAAsB,cAAA,CACpB,MAAA,EACA,OAAA,GAAiC,IACjC,OAAA,EACwG;AACxG,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK,GAAI,OAAA;AACjC,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAmC,8BAA8B,KAAA,CAAM;AAAA,IAC3E,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,WAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,IAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAI,CAAA,GAAI,OAAA,CAAQ,IAAA,GAAO,OAAA,CAAQ,IAAA,GAAO,CAAC,OAAA,CAAQ,IAAI,IAAI,EAAC;AAAA,IACpF,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,SAAS,OAAA,CAAQ;AAAA,GACnB;AACF;;;ACpSA,eAAsB,UAAA,CACpB,QACA,OAAA,EAI+D;AAC/D,EAAA,MAAM,SAAA,GAAY,CAAA,IAAA,EAAO,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAG9E,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,SAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,YAAY,OAAA,CAAQ;AAAA;AACtB,GACD,CAAA;AAED,EAAA,MAAM,WAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,OAAA,EAAS,QAAQ,OAAO,CAAA;AAGvE,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,OAAO,OAAA,CAAQ;AAAA,GACjB;AACF;;;ACuCA,eAAsB,QAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACoH;AACpH,EAAA,MAAM,EAAE,IAAA,EAAM,SAAA,EAAW,MAAM,WAAA,EAAa,SAAA,EAAW,IAAG,GAAI,OAAA;AAC9D,EAAA,MAAM,SAAA,GAAY,CAAA,WAAA,EAAc,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,IAAA;AAAA,QACA,SAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA;AAAA,IACpB,EAAA,EAAI,QAAQ,IAAA,EAAM;AAAA,GACpB;AACF;AASA,eAAsB,QAAA,CACpB,MAAA,EACA,OAAA,EACA,OAAA,EACoH;AACpH,EAAA,MAAM,EAAE,EAAA,EAAI,IAAA,EAAM,aAAa,SAAA,EAAW,SAAA,EAAW,IAAG,GAAI,OAAA;AAC5D,EAAA,MAAM,SAAA,GAAY,CAAA,WAAA,EAAc,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,IAAA;AAAA,QACA,WAAA;AAAA,QACA,SAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA;AAAA,IACpB,EAAA,EAAI,QAAQ,IAAA,EAAM;AAAA,GACpB;AACF;AASA,eAAsB,QAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EAC8E;AAC9E,EAAA,MAAM,SAAA,GAAY,CAAA,WAAA,EAAc,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,EAAA,EAAK,QAAQ,IAAA,EAAc;AAAA,GAC7B;AACF;AAQA,eAAsB,SAAA,CACpB,QACA,OAAA,EAC6F;AAC7F,EAAA,MAAM,SAAA,GAAY,CAAA,WAAA,EAAc,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,GAAA,EAAK,QAAQ,IAAA,EAAM,GAAA;AAAA,IACnB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,KAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACoH;AACpH,EAAA,MAAM,SAAA,GAAY,CAAA,WAAA,EAAc,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,EAAA,EAAK,QAAQ,IAAA,EAAc,EAAA;AAAA,IAC3B,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA;AAAA,IACpB,EAAA,EAAI,QAAQ,IAAA,EAAM,EAAA;AAAA,IAClB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,QAAA,CACpB,MAAA,EACA,OAAA,GAA2B,IAC3B,OAAA,EAC6F;AAC7F,EAAA,MAAM,EAAE,OAAA,EAAS,KAAA,EAAO,IAAA,EAAK,GAAI,OAAA;AACjC,EAAA,MAAM,SAAA,GAAY,CAAA,UAAA,EAAa,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEzC,EAAA,MAAM,OAAA,GAA6B,wBAAwB,KAAA,CAAM;AAAA,IAC/D,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,KAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,OAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,GAAA,EAAK,QAAQ,IAAA,EAAM,GAAA;AAAA,IACnB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;;;AChRA,eAAsB,aACpB,MAAA,EACA,KAAA,EACA,SACA,SAAA,EACA,QAAA,EACA,MACA,OAAA,EACgF;AAChF,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,KAAA;AAAA,QACA,OAAA;AAAA,QACA,SAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,IAAA,EAAM,QAAQ,IAAA,GAAO;AAAA,MACnB,EAAA,EAAI,QAAQ,IAAA,CAAK,EAAA;AAAA,MACjB,KAAA,EAAO,OAAA,CAAQ,IAAA,CAAK,KAAA,IAAS,KAAA;AAAA,MAC7B,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,OAAA,IAAW,OAAA;AAAA,MACjC,QAAA,EAAU,QAAQ,IAAA,CAAK,QAAA;AAAA,MACvB,IAAA,EAAM,QAAQ,IAAA,CAAK,IAAA;AAAA,MACnB,SAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,SAAA,IAAa,SAAA;AAAA,MACrC,SAAA,EAAW,QAAQ,IAAA,CAAK,SAAA;AAAA,MACxB,SAAA,EAAW,QAAQ,IAAA,CAAK,SAAA;AAAA,MACxB,SAAA,EAAW,QAAQ,IAAA,CAAK;AAAA,KAC1B,GAAI;AAAA,GACN;AACF;AAWA,eAAsB,YAAA,CACpB,MAAA,EACA,EAAA,EACA,SAAA,EACA,SAMA,OAAA,EACgF;AAChF,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,EAAA;AAAA,QACA,SAAA;AAAA,QACA,GAAG;AAAA;AACL;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM,OAAA;AAAA,IACvB,IAAA,EAAM,QAAQ,IAAA,GAAO;AAAA,MACnB,EAAA,EAAI,QAAQ,IAAA,CAAK,EAAA;AAAA,MACjB,KAAA,EAAO,OAAA,CAAQ,IAAA,CAAK,KAAA,IAAS,EAAA;AAAA,MAC7B,OAAA,EAAS,OAAA,CAAQ,IAAA,CAAK,OAAA,IAAW,EAAA;AAAA,MACjC,QAAA,EAAU,QAAQ,IAAA,CAAK,QAAA;AAAA,MACvB,IAAA,EAAM,QAAQ,IAAA,CAAK,IAAA;AAAA,MACnB,SAAA,EAAW,OAAA,CAAQ,IAAA,CAAK,SAAA,IAAa,CAAA;AAAA,MACrC,SAAA,EAAW,QAAQ,IAAA,CAAK,SAAA;AAAA,MACxB,SAAA,EAAW,QAAQ,IAAA,CAAK,SAAA;AAAA,MACxB,SAAA,EAAW,QAAQ,IAAA,CAAK;AAAA,KAC1B,GAAI;AAAA,GACN;AACF;AASA,eAAsB,YAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACiE;AACjE,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAUA,eAAsB,aAAA,CACpB,MAAA,EACA,KAAA,EACA,MAAA,EACA,OAAA,EACmG;AACnG,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AASA,eAAsB,SAAA,CACpB,MAAA,EACA,EAAA,EACA,OAAA,EACgF;AAChF,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,IAAA,EAAM,QAAQ,IAAA,EAAM,IAAA;AAAA,IACpB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAqBA,eAAsB,aAAA,CACpB,MAAA,EACA,OAAA,GAAgC,IAChC,OAAA,EACmG;AACnG,EAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,MAAM,SAAA,EAAW,KAAA,EAAO,QAAO,GAAI,OAAA;AAC5D,EAAA,MAAM,SAAA,GAAY,CAAA,gBAAA,EAAmB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAE/C,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,QAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,KAAA;AAAA,QACA,QAAA;AAAA,QACA,IAAA;AAAA,QACA,SAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAWA,eAAsB,oBAAA,CACpB,MAAA,EACA,QAAA,EACA,KAAA,EACA,QACA,OAAA,EACsH;AACtH,EAAA,MAAM,SAAA,GAAY,CAAA,uBAAA,EAA0B,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEtD,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,eAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,QAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,QAAA,EAAU,OAAA,CAAQ,IAAA,EAAM,QAAA,IAAY,QAAA;AAAA,IACpC,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAWA,eAAsB,gBAAA,CACpB,MAAA,EACA,MAAA,EACA,KAAA,EACA,QACA,OAAA,EACoH;AACpH,EAAA,MAAM,SAAA,GAAY,CAAA,mBAAA,EAAsB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAElD,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,WAAA;AAAA,MACX,IAAA,EAAM;AAAA,QACJ,MAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA;AACF;AACF,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,MAAA,EAAQ,OAAA,CAAQ,IAAA,EAAM,MAAA,IAAU,MAAA;AAAA,IAChC,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAQA,eAAsB,mBAAA,CACpB,QACA,OAAA,EACwG;AACxG,EAAA,MAAM,SAAA,GAAY,CAAA,uBAAA,EAA0B,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEtD,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAEzB,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,UAAA,EAAY,QAAQ,IAAA,EAAM,UAAA;AAAA,IAC1B,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;AAQA,eAAsB,aAAA,CACpB,QACA,OAAA,EACkG;AAClG,EAAA,MAAM,SAAA,GAAY,CAAA,iBAAA,EAAoB,IAAA,CAAK,GAAA,EAAK,CAAA,CAAA;AAEhD,EAAA,MAAM,OAAA,GAAiC,4BAA4B,KAAA,CAAM;AAAA,IACvE,EAAA,EAAI,SAAA;AAAA,IACJ,IAAA,EAAM,UAAA;AAAA,IACN,IAAA,EAAM,EAAE,IAAA,EAAM,MAAA,CAAO,IAAA,EAAK;AAAA,IAC1B,EAAA,EAAI,EAAE,IAAA,EAAM,YAAA,EAAa;AAAA,IACzB,OAAA,EAAS;AAAA,MACP,SAAA,EAAW;AAAA;AACb,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,MAAM,MAAA,CAAO,gBAAA,CAAiB,SAAS,OAAO,CAAA;AAC/D,EAAA,MAAM,UAAU,QAAA,CAAS,OAAA;AAGzB,EAAA,MAAM,eAAe,OAAA,CAAQ,IAAA;AAE7B,EAAA,OAAO;AAAA,IACL,SAAS,OAAA,CAAQ,OAAA;AAAA,IACjB,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,MAAM,YAAA,EAAc,IAAA;AAAA,IACpB,KAAA,EAAO,QAAQ,IAAA,EAAM,KAAA;AAAA,IACrB,OAAA,EAAS,QAAQ,IAAA,EAAM;AAAA,GACzB;AACF;;;AC9cO,IAAM,kBAAN,MAAsB;AAAA,EAa3B,YAAY,MAAA,EAAsB;AAZlC,IAAA,IAAA,CAAQ,MAAA,GAA2B,IAAA;AACnC,IAAA,IAAA,CAAQ,iBAAA,GAAoB,CAAA;AAC5B,IAAA,IAAA,CAAQ,cAAA,GAAuD,IAAA;AAC/D,IAAA,IAAA,CAAQ,eAAA,GAAkB,IAAA;AAC1B,IAAA,IAAA,CAAQ,eAAA,uBAA2C,GAAA,EAAI;AACvD,IAAA,IAAA,CAAQ,kBAAA,uBAAiD,GAAA,EAAI;AAC7D,IAAA,IAAA,CAAQ,qBAAA,uBAAoD,GAAA,EAAI;AAChE,IAAA,IAAA,CAAQ,aAAA,uBAAuC,GAAA,EAAI;AAEnD,IAAA,IAAA,CAAQ,cAAA,GAAuC,IAAA;AAC/C,IAAA,IAAA,CAAQ,cAAA,GAAsC,IAAA;AAG5C,IAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,KAAA,CAAM,MAAM,CAAA;AAC9C,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKQ,eAAA,GAA0B;AAChC,IAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB;AAAA,MACjC,MAAA,EAAQ,KAAK,MAAA,CAAO,MAAA;AAAA,MACpB,SAAA,EAAW,KAAK,MAAA,CAAO,SAAA;AAAA,MACvB,IAAA,EAAM,KAAK,MAAA,CAAO;AAAA,KACnB,CAAA;AACD,IAAA,OAAO,GAAG,IAAA,CAAK,MAAA,CAAO,OAAO,CAAA,CAAA,EAAI,MAAA,CAAO,UAAU,CAAA,CAAA;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKQ,uBAAA,GAAkC;AACxC,IAAA,MAAM,QAAQ,IAAA,CAAK,GAAA;AAAA,MACjB,KAAK,MAAA,CAAO,qBAAA,GAAwB,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,iBAAiB,CAAA;AAAA,MACtE,KAAK,MAAA,CAAO;AAAA,KACd;AAEA,IAAA,OAAO,KAAA,GAAQ,IAAA,CAAK,MAAA,EAAO,GAAI,GAAA;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKQ,iBAAA,GAA0B;AAChC,IAAA,IAAI,CAAC,KAAK,eAAA,EAAiB;AACzB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,IAAA,CAAK,iBAAA,IAAqB,IAAA,CAAK,MAAA,CAAO,oBAAA,EAAsB;AAC9D,MAAA,MAAM,KAAA,GAAQ,IAAI,KAAA,CAAM,mCAAmC,CAAA;AAC3D,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,KAAA,CAAM,OAAO,CAAA;AAC/B,MAAA,IAAA,CAAK,cAAc,OAAA,CAAQ,CAAC,OAAA,KAAY,OAAA,CAAQ,KAAK,CAAC,CAAA;AACtD,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,KAAA,GAAQ,KAAK,uBAAA,EAAwB;AAC3C,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,gCAAA,EAAmC,IAAA,CAAK,oBAAoB,CAAC,CAAA,IAAA,EAAO,KAAK,CAAA,EAAA,CAAI,CAAA;AAE9F,IAAA,IAAA,CAAK,cAAA,GAAiB,WAAW,MAAM;AACrC,MAAA,IAAA,CAAK,iBAAA,EAAA;AACL,MAAA,IAAA,CAAK,OAAA,EAAQ;AAAA,IACf,GAAG,KAAK,CAAA;AAAA,EACV;AAAA;AAAA;AAAA;AAAA,EAKQ,mBAAA,GAA4B;AAClC,IAAA,IAAI,CAAC,KAAK,MAAA,EAAQ;AAChB,MAAA;AAAA,IACF;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,SAAS,MAAM;AACzB,MAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,wBAAwB,CAAA;AACzC,MAAA,IAAA,CAAK,iBAAA,GAAoB,CAAA;AAGzB,MAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,QAAA,IAAA,CAAK,cAAA,EAAe;AACpB,QAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,MACxB;AAEA,MAAA,IAAA,CAAK,kBAAA,CAAmB,OAAA,CAAQ,CAAC,OAAA,KAAY,SAAS,CAAA;AAAA,IACxD,CAAA;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,SAAA,GAAY,CAAC,KAAA,KAAU;AACjC,MAAA,IAAI;AACF,QAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AACpC,QAAA,MAAM,OAAA,GAAU,aAAA,CAAc,KAAA,CAAM,MAAM,CAAA;AAI1C,QAAA,IAAA,CAAK,gBAAgB,OAAA,CAAQ,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAO,CAAC,CAAA;AAAA,MAC5D,SAAS,KAAA,EAAO;AACd,QAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,0BAAA,EAA4B,KAAK,CAAA;AACnD,QAAA,MAAM,MAAM,KAAA,YAAiB,KAAA,GAAQ,KAAA,GAAQ,IAAI,MAAM,aAAa,CAAA;AACpE,QAAA,IAAA,CAAK,cAAc,OAAA,CAAQ,CAAC,OAAA,KAAY,OAAA,CAAQ,GAAG,CAAC,CAAA;AAAA,MACtD;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,OAAA,GAAU,CAAC,KAAA,KAAU;AAC/B,MAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,6BAAA,EAA+B;AAAA,QAC9C,MAAM,KAAA,CAAM,IAAA;AAAA,QACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,QACd,UAAU,KAAA,CAAM;AAAA,OACjB,CAAA;AACD,MAAA,IAAA,CAAK,qBAAA,CAAsB,OAAA,CAAQ,CAAC,OAAA,KAAY,SAAS,CAAA;AAGzD,MAAA,IAAI,IAAA,CAAK,eAAA,IAAmB,CAAC,KAAA,CAAM,QAAA,EAAU;AAC3C,QAAA,IAAA,CAAK,iBAAA,EAAkB;AAAA,MACzB;AAAA,IACF,CAAA;AAEA,IAAA,IAAA,CAAK,MAAA,CAAO,OAAA,GAAU,CAAC,KAAA,KAAU;AAC/B,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,kBAAA,EAAoB,KAAK,CAAA;AAC3C,MAAA,IAAA,CAAK,cAAc,OAAA,CAAQ,CAAC,OAAA,KAAY,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,IACxD,CAAA;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAA,GAAyB;AAEvB,IAAA,IAAI,IAAA,CAAK,MAAA,EAAQ,UAAA,KAAe,SAAA,CAAU,IAAA,EAAM;AAC9C,MAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,mBAAmB,CAAA;AACpC,MAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,IACzB;AAGA,IAAA,IAAI,KAAK,MAAA,EAAQ,UAAA,KAAe,SAAA,CAAU,UAAA,IAAc,KAAK,cAAA,EAAgB;AAC3E,MAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,gCAAgC,CAAA;AACjD,MAAA,OAAO,IAAA,CAAK,cAAA;AAAA,IACd;AAGA,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAI,OAAA,CAAc,CAAC,OAAA,KAAY;AACnD,MAAA,IAAA,CAAK,cAAA,GAAiB,OAAA;AAAA,IACxB,CAAC,CAAA;AAED,IAAA,IAAI;AACF,MAAA,IAAA,CAAK,MAAA,GAAS,IAAI,SAAA,CAAU,IAAA,CAAK,iBAAiB,CAAA;AAClD,MAAA,IAAA,CAAK,mBAAA,EAAoB;AAAA,IAC3B,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,6BAAA,EAA+B,KAAK,CAAA;AACtD,MAAA,MAAM,MAAM,KAAA,YAAiB,KAAA,GAAQ,KAAA,GAAQ,IAAI,MAAM,mBAAmB,CAAA;AAC1E,MAAA,IAAA,CAAK,cAAc,OAAA,CAAQ,CAAC,OAAA,KAAY,OAAA,CAAQ,GAAG,CAAC,CAAA;AACpD,MAAA,IAAA,CAAK,iBAAA,EAAkB;AAAA,IACzB;AAEA,IAAA,OAAO,IAAA,CAAK,cAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,UAAA,GAAmB;AACjB,IAAA,IAAA,CAAK,eAAA,GAAkB,KAAA;AAEvB,IAAA,IAAI,KAAK,cAAA,EAAgB;AACvB,MAAA,YAAA,CAAa,KAAK,cAAc,CAAA;AAChC,MAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AAAA,IACxB;AAEA,IAAA,IAAI,KAAK,MAAA,EAAQ;AACf,MAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,GAAA,EAAM,mBAAmB,CAAA;AAC3C,MAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAAA,IAChB;AAEA,IAAA,IAAA,CAAK,iBAAA,GAAoB,CAAA;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKQ,aAAa,MAAA,EAAqC;AACxD,IAAA,MAAM,SAAS,EAAE,GAAG,IAAA,CAAK,MAAA,EAAQ,GAAG,MAAA,EAAO;AAC3C,IAAA,MAAM,MAAA,GAAS,kBAAA,CAAmB,KAAA,CAAM,MAAM,CAAA;AAC9C,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,oBAAoB,MAAA,EAA8C;AAChE,IAAA,IAAA,CAAK,aAAa,MAAM,CAAA;AACxB,IAAA,IAAI,KAAK,MAAA,EAAQ;AACf,MAAA,IAAA,CAAK,UAAA,EAAW;AAAA,IAClB;AACA,IAAA,IAAA,CAAK,eAAA,GAAkB,IAAA;AACvB,IAAA,OAAO,KAAK,OAAA,EAAQ;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,KAAK,OAAA,EAAkF;AACrF,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,IAAU,KAAK,MAAA,CAAO,UAAA,KAAe,UAAU,IAAA,EAAM;AAC7D,MAAA,MAAM,IAAI,MAAM,4BAA4B,CAAA;AAAA,IAC9C;AAEA,IAAA,MAAM,WAAA,GAAuB;AAAA,MAC3B,GAAG,OAAA;AAAA,MACH,MAAM,OAAA,CAAQ,IAAA,IAAQ,EAAE,IAAA,EAAM,IAAA,CAAK,OAAO,IAAA;AAAK,KACjD;AAEA,IAAA,IAAI;AAEF,MAAA,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,IAAA,CAAK,SAAA,CAAU,WAAW,CAAC,CAAA;AAAA,IAC9C,SAAS,KAAA,EAAO;AACd,MAAA,IAAA,CAAK,GAAA,CAAI,OAAA,EAAS,yBAAA,EAA2B,KAAK,CAAA;AAClD,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAA,CACJ,OAAA,EACA,OAAA,EACkB;AAClB,IAAA,MAAM,YAAY,OAAA,CAAQ,EAAA,IAAM,CAAA,IAAA,EAAO,IAAA,CAAK,KAAK,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,GAAS,QAAA,CAAS,EAAE,CAAA,CAAE,SAAA,CAAU,CAAC,CAAC,CAAA,CAAA;AAC5F,IAAA,MAAM,aAAA,GAAgB,EAAE,GAAG,OAAA,EAAS,IAAI,SAAA,EAAU;AAClD,IAAA,MAAM,SAAA,GAAY,OAAA,IAAW,IAAA,CAAK,MAAA,CAAO,cAAA;AAGzC,IAAA,IAAA,CAAK,KAAK,aAAa,CAAA;AAGvB,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAA,KAAW;AACtC,MAAA,IAAI,UAAA,GAAa,KAAA;AAGjB,MAAA,MAAM,eAAA,GAAkC,CAAC,GAAA,KAAQ;AAC/C,QAAA,IAAI,GAAA,CAAI,EAAA,KAAO,SAAA,IAAa,CAAC,UAAA,EAAY;AACvC,UAAA,UAAA,GAAa,IAAA;AACb,UAAA,YAAA,CAAa,KAAK,CAAA;AAClB,UAAA,WAAA,EAAY;AACZ,UAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,QACb;AAAA,MACF,CAAA;AAGA,MAAA,MAAM,WAAA,GAAc,IAAA,CAAK,SAAA,CAAU,eAAe,CAAA;AAGlD,MAAA,MAAM,KAAA,GAAQ,WAAW,MAAM;AAC7B,QAAA,IAAI,CAAC,UAAA,EAAY;AACf,UAAA,UAAA,GAAa,IAAA;AACb,UAAA,WAAA,EAAY;AACZ,UAAA,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,sBAAA,EAAyB,SAAS,IAAI,CAAC,CAAA;AAAA,QAC1D;AAAA,MACF,GAAG,SAAS,CAAA;AAAA,IACd,CAAC,CAAA;AAAA,EACH;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,OAAA,EAAqC;AAC7C,IAAA,IAAA,CAAK,eAAA,CAAgB,IAAI,OAAO,CAAA;AAChC,IAAA,OAAO,MAAM,IAAA,CAAK,eAAA,CAAgB,MAAA,CAAO,OAAO,CAAA;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,OAAA,EAAwC;AAChD,IAAA,IAAA,CAAK,kBAAA,CAAmB,IAAI,OAAO,CAAA;AACnC,IAAA,OAAO,MAAM,IAAA,CAAK,kBAAA,CAAmB,MAAA,CAAO,OAAO,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,OAAA,EAAwC;AACnD,IAAA,IAAA,CAAK,qBAAA,CAAsB,IAAI,OAAO,CAAA;AACtC,IAAA,OAAO,MAAM,IAAA,CAAK,qBAAA,CAAsB,MAAA,CAAO,OAAO,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,OAAA,EAAmC;AACzC,IAAA,IAAA,CAAK,aAAA,CAAc,IAAI,OAAO,CAAA;AAC9B,IAAA,OAAO,MAAM,IAAA,CAAK,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA,GAAuB;AACrB,IAAA,OAAO,IAAA,CAAK,MAAA,EAAQ,UAAA,KAAe,SAAA,CAAU,IAAA;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAA,GAA+B;AAC7B,IAAA,OAAO,IAAA,CAAK,iBAAA;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,IAAA,GAAe;AACjB,IAAA,OAAO,KAAK,MAAA,CAAO,IAAA;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,GAAA,CACJ,OAAA,EACA,OAAA,EACkB;AAClB,IAAA,OAAO,IAAA,CAAK,gBAAA,CAAiB,OAAA,EAAS,OAAA,EAAS,OAAO,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,oBAAA,CACJ,eAAA,EACA,OAAA,EACkB;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,4BAA4B,CAAA;AAC7C,IAAA,OAAgB,oBAAA,CAAqB,IAAA,EAAM,eAAA,EAAiB,OAAO,CAAA;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,qBAAA,CACJ,KAAA,EACA,OAAA,EACkB;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,6BAA6B,CAAA;AAC9C,IAAA,OAAgB,qBAAA,CAAsB,IAAA,EAAM,KAAA,EAAO,OAAO,CAAA;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,MAAM,qBAAA,CACJ,MAAA,EACA,UACA,SAAA,EACA,YAAA,EACA,UACA,OAAA,EACkB;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,oDAAoD,CAAA;AACrE,IAAA,OAAgB,sBAAsB,IAAA,EAAM,MAAA,EAAQ,UAAU,SAAA,EAAW,YAAA,EAAc,UAAU,OAAO,CAAA;AAAA,EAC1G;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gCAAA,CACJ,MAAA,EACA,KAAA,GAAgB,GAChB,OAAA,EACyB;AACzB,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,yCAAyC,CAAA;AAC1D,IAAA,OAAgB,gCAAA,CAAiC,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,OAAO,CAAA;AAAA,EAC/E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAc,OAAA,EAIA;AAClB,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,+BAA+B,CAAA;AAChD,IAAA,OAAgB,aAAA,CAAc,MAAM,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAY,OAAA,EAM8B;AAC9C,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,CAAA,iCAAA,EAAoC,OAAA,CAAQ,UAAU,CAAA,aAAA,EAAgB,OAAA,CAAQ,SAAS,CAAA,CAAE,CAAA;AAC1G,IAAA,OAAgB,WAAA,CAAY,MAAM,OAAO,CAAA;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,uBAAA,CACJ,KAAA,EACA,OAAA,EACuE;AACvE,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,6CAAA,EAA+C,KAAK,CAAA;AACrE,IAAA,OAAgB,uBAAA,CAAwB,IAAA,EAAM,KAAA,EAAO,OAAO,CAAA;AAAA,EAC9D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACJ,OAAA,EAI+D;AAC/D,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,oBAAoB,CAAA;AACrC,IAAA,OAAgB,UAAA,CAAW,MAAM,OAAO,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,eACJ,UAAA,EACA;AACA,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,oBAAoB,CAAA;AACrC,IAAA,OAAgB,cAAA,CAAe,MAAM,UAAU,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,WACJ,QAAA,EACA,QAAA,EACA,OACA,QAAA,EACA,IAAA,EACA,UACA,OAAA,EACsI;AACtI,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gBAAA,EAAkB,QAAQ,CAAA;AAC3C,IAAA,OAAgB,UAAA,CAAW,MAAM,QAAA,EAAU,QAAA,EAAU,OAAO,QAAA,EAAU,IAAA,EAAM,UAAU,OAAO,CAAA;AAAA,EAC/F;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAA,CACJ,EAAA,EACA,OAAA,EAOA,OAAA,EACsI;AACtI,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gBAAA,EAAkB,EAAE,CAAA;AACrC,IAAA,OAAgB,UAAA,CAAW,IAAA,EAAM,EAAA,EAAI,OAAA,EAAS,OAAO,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAA,CACJ,EAAA,EACA,OAAA,EACsI;AACtI,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gBAAA,EAAkB,EAAE,CAAA;AACrC,IAAA,OAAgB,UAAA,CAAW,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAC9C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YACJ,OAAA,EAC0G;AAC1G,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,oBAAoB,CAAA;AACrC,IAAA,OAAgB,WAAA,CAAY,MAAM,OAAO,CAAA;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,OAAA,CACJ,QAAA,EACA,OAAA,EACuF;AACvF,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gBAAA,EAAkB,QAAQ,CAAA;AAC3C,IAAA,OAAgB,OAAA,CAAQ,IAAA,EAAM,QAAA,EAAU,OAAO,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAA,CACJ,OAAA,GAAsC,IACtC,OAAA,EAC0G;AAC1G,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,8BAAA,EAAgC,OAAA,CAAQ,OAAO,CAAA;AAChE,IAAA,OAAgB,UAAA,CAAW,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,eAAA,CACJ,OAAA,EACA,OAAA,EAC8H;AAC9H,IAAA,IAAA,CAAK,IAAI,MAAA,EAAQ,qBAAA,EAAuB,OAAA,CAAQ,WAAA,EAAa,QAAQ,SAAS,CAAA;AAC9E,IAAA,OAAgB,eAAA,CAAgB,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eAAA,CACJ,OAAA,EACA,OAAA,EAC2I;AAC3I,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,qBAAA,EAAuB,OAAA,CAAQ,EAAE,CAAA;AAClD,IAAA,OAAgB,eAAA,CAAgB,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eAAA,CACJ,EAAA,EACA,OAAA,EAC8E;AAC9E,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,qBAAA,EAAuB,EAAE,CAAA;AAC1C,IAAA,OAAgB,eAAA,CAAgB,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,iBACJ,OAAA,EACoH;AACpH,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,yBAAyB,CAAA;AAC1C,IAAA,OAAgB,gBAAA,CAAiB,MAAM,OAAO,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,EAAA,EACA,OAAA,EAC2I;AAC3I,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,qBAAA,EAAuB,EAAE,CAAA;AAC1C,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,eAAA,CACJ,OAAA,EACA,OAAA,EACoH;AACpH,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,mCAAA,EAAqC,OAAA,EAAS,OAAO,CAAA;AACtE,IAAA,OAAgB,eAAA,CAAgB,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACxD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cAAA,CACJ,OAAA,EACA,OAAA,EAC2F;AAC3F,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,6BAAA,EAA+B,OAAA,CAAQ,MAAM,CAAA;AAC9D,IAAA,OAAgB,cAAA,CAAe,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAA,CACJ,OAAA,EACA,OAAA,EAC2F;AAC3F,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,oBAAA,EAAsB,OAAA,CAAQ,EAAE,CAAA;AACjD,IAAA,OAAgB,cAAA,CAAe,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAA,CACJ,EAAA,EACA,OAAA,EAC2F;AAC3F,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,oBAAA,EAAsB,EAAE,CAAA;AACzC,IAAA,OAAgB,cAAA,CAAe,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBACJ,OAAA,EAC6G;AAC7G,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,wBAAwB,CAAA;AACzC,IAAA,OAAgB,eAAA,CAAgB,MAAM,OAAO,CAAA;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WAAA,CACJ,EAAA,EACA,OAAA,EAC2F;AAC3F,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,oBAAA,EAAsB,EAAE,CAAA;AACzC,IAAA,OAAgB,WAAA,CAAY,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cAAA,CACJ,OAAA,GAA0C,IAC1C,OAAA,EAC6G;AAC7G,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,kCAAA,EAAoC,OAAA,CAAQ,OAAO,CAAA;AACpE,IAAA,OAAgB,cAAA,CAAe,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,YAAA,CACJ,OAAA,EACA,OAAA,EAC8H;AAC9H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,kBAAA,EAAoB,OAAA,CAAQ,QAAQ,CAAA;AACrD,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,OAAA,EACA,OAAA,EAC2I;AAC3I,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,kBAAA,EAAoB,OAAA,CAAQ,EAAE,CAAA;AAC/C,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,EAAA,EACA,OAAA,EAC8E;AAC9E,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,kBAAA,EAAoB,EAAE,CAAA;AACvC,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cACJ,OAAA,EAC8G;AAC9G,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,sBAAsB,CAAA;AACvC,IAAA,OAAgB,aAAA,CAAc,MAAM,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAA,CACJ,EAAA,EACA,OAAA,EAC2I;AAC3I,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,kBAAA,EAAoB,EAAE,CAAA;AACvC,IAAA,OAAgB,SAAA,CAAU,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,OAAA,EACA,OAAA,EAC8G;AAC9G,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gCAAA,EAAkC,OAAA,EAAS,OAAO,CAAA;AACnE,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,QAAA,CACJ,OAAA,EACA,OAAA,EAC6H;AAC7H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,cAAA,EAAgB,OAAA,CAAQ,IAAI,CAAA;AAC7C,IAAA,OAAgB,QAAA,CAAS,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAA,CACJ,OAAA,EACA,OAAA,EAC6H;AAC7H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,cAAA,EAAgB,OAAA,CAAQ,EAAE,CAAA;AAC3C,IAAA,OAAgB,QAAA,CAAS,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAA,CACJ,EAAA,EACA,OAAA,EAC8E;AAC9E,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,cAAA,EAAgB,EAAE,CAAA;AACnC,IAAA,OAAgB,QAAA,CAAS,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UACJ,OAAA,EACsG;AACtG,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,kBAAkB,CAAA;AACnC,IAAA,OAAgB,SAAA,CAAU,MAAM,OAAO,CAAA;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,KAAA,CACJ,EAAA,EACA,OAAA,EAC6H;AAC7H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,cAAA,EAAgB,EAAE,CAAA;AACnC,IAAA,OAAgB,KAAA,CAAM,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAA,CACJ,OAAA,EACA,OAAA,EACsG;AACtG,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,4BAAA,EAA8B,OAAA,EAAS,OAAO,CAAA;AAC/D,IAAA,OAAgB,QAAA,CAAS,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,YAAA,CACJ,KAAA,EACA,SACA,SAAA,EACA,QAAA,EACA,MACA,OAAA,EACyF;AACzF,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,mBAAA,EAAqB,KAAK,CAAA;AAC3C,IAAA,OAAgB,aAAa,IAAA,EAAM,KAAA,EAAO,SAAS,SAAA,EAAW,QAAA,EAAU,MAAM,OAAO,CAAA;AAAA,EACvF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,EAAA,EACA,SAAA,EACA,SAMA,OAAA,EACyF;AACzF,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,mBAAA,EAAqB,EAAE,CAAA;AACxC,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI,SAAA,EAAW,SAAS,OAAO,CAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,YAAA,CACJ,EAAA,EACA,OAAA,EACiE;AACjE,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,mBAAA,EAAqB,EAAE,CAAA;AACxC,IAAA,OAAgB,YAAA,CAAa,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAChD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAA,CACJ,KAAA,EACA,MAAA,EACA,OAAA,EAC4G;AAC5G,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,uBAAuB,CAAA;AACxC,IAAA,OAAgB,aAAA,CAAc,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,OAAO,CAAA;AAAA,EAC5D;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,SAAA,CACJ,EAAA,EACA,OAAA,EACyF;AACzF,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,mBAAA,EAAqB,EAAE,CAAA;AACxC,IAAA,OAAgB,SAAA,CAAU,IAAA,EAAM,EAAA,EAAI,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,aAAA,CACJ,OAAA,GAAyC,IACzC,OAAA,EAC4G;AAC5G,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gCAAA,EAAkC,OAAA,CAAQ,KAAK,CAAA;AAChE,IAAA,OAAgB,aAAA,CAAc,IAAA,EAAM,OAAA,EAAS,OAAO,CAAA;AAAA,EACtD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBAAA,CACJ,QAAA,EACA,KAAA,EACA,QACA,OAAA,EAC+H;AAC/H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,gCAAA,EAAkC,QAAQ,CAAA;AAC3D,IAAA,OAAgB,oBAAA,CAAqB,IAAA,EAAM,QAAA,EAAU,KAAA,EAAO,QAAQ,OAAO,CAAA;AAAA,EAC7E;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,gBAAA,CACJ,MAAA,EACA,KAAA,EACA,QACA,OAAA,EAC6H;AAC7H,IAAA,IAAA,CAAK,GAAA,CAAI,MAAA,EAAQ,4BAAA,EAA8B,MAAM,CAAA;AACrD,IAAA,OAAgB,gBAAA,CAAiB,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAO,QAAQ,OAAO,CAAA;AAAA,EACvE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,oBACJ,OAAA,EACwG;AACxG,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,6BAA6B,CAAA;AAC9C,IAAA,OAAgB,mBAAA,CAAoB,MAAM,OAAO,CAAA;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,cACJ,OAAA,EACkG;AAClG,IAAA,IAAA,CAAK,GAAA,CAAI,QAAQ,uBAAuB,CAAA;AACxC,IAAA,OAAgB,aAAA,CAAc,MAAM,OAAO,CAAA;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKQ,GAAA,CAAI,UAA+C,IAAA,EAAmB;AAC5E,IAAA,IAAI,CAAC,IAAA,CAAK,MAAA,CAAO,KAAA,IAAS,UAAU,OAAA,EAAS;AAC3C,MAAA;AAAA,IACF;AACA,IAAA,OAAA,CAAQ,KAAK,CAAA,CAAE,aAAA,EAAe,GAAG,IAAI,CAAA;AAAA,EACvC;AACF;;;AC37BO,SAAS,MAAM,UAAA,EAAsC;AAE1D,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,EACvE;AAEA,EAAA,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,SAAA,IAAa,EAAC;AACxC,EAAA,MAAA,CAAO,KAAK,MAAA,CAAO,SAAA;AAGnB,EAAA,MAAA,CAAO,UAAU,UAAA,GAAa,UAAA;AAG9B,EAAA,IAAI,MAAA,CAAO,SAAA,CAAU,OAAA,EAAS,gBAAA,EAAkB;AAC9C,IAAA,MAAA,CAAO,SAAA,CAAU,QAAQ,gBAAA,EAAiB;AAAA,EAC5C;AACF;AAKO,SAAS,aAAA,GAAgD;AAC9D,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,OAAO,SAAA,EAAW,UAAA;AAC3B;AAKO,SAAS,aAAa,IAAA,EAAmB;AAC9C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA,CAAO,SAAA,EAAW,UAAA,GAAa,IAAI,CAAA;AAC5C;AAKO,SAAS,aAAA,GAAyB;AACvC,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,CAAC,CAAC,MAAA,CAAO,SAAA,EAAW,UAAA;AAC7B;;;AChFO,IAAM,WAAA,GAAc","file":"index.js","sourcesContent":["import { z } from 'zod';\r\n\r\n// ==================== Dashboard DSL Schemas ====================\r\n\r\n// Expression schema for dynamic values\r\nexport const ExpressionSchema = z.object({\r\n $exp: z.string(),\r\n $deps: z.array(z.string()).optional(),\r\n});\r\n\r\nexport type Expression = z.infer<typeof ExpressionSchema>;\r\n\r\n// Binding schema for data binding\r\nexport const BindingSchema = z.object({\r\n $bind: z.string(),\r\n $transform: z\r\n .array(\r\n z.object({\r\n name: z.string(),\r\n args: z.array(z.any()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n});\r\n\r\nexport type Binding = z.infer<typeof BindingSchema>;\r\n\r\n// For directive schema\r\nexport const ForDirectiveSchema = z.object({\r\n in: z.union([ExpressionSchema, BindingSchema, z.string()]),\r\n as: z.string(),\r\n key: z.string().optional(),\r\n index: z.string().optional(),\r\n});\r\n\r\nexport type ForDirective = z.infer<typeof ForDirectiveSchema>;\r\n\r\n// Query specification schema\r\nexport const QuerySpecSchema = z.object({\r\n graphql: z.string().optional(),\r\n sql: z.string().optional(),\r\n variables: z.record(z.string(), z.any()).optional(),\r\n params: z.record(z.string(), z.any()).optional(),\r\n key: z.string().optional(),\r\n refetchPolicy: z\r\n .enum(['cache-first', 'network-only', 'cache-and-network'])\r\n .optional(),\r\n dependencies: z.array(z.string()).optional(),\r\n});\r\n\r\nexport type QuerySpec = z.infer<typeof QuerySpecSchema>;\r\n\r\n// UI Element schema\r\nexport const UIElementSchema: z.ZodType<any> = z.lazy(() =>\r\n z.object({\r\n id: z.string(),\r\n type: z.string(),\r\n key: z.union([z.string(), ExpressionSchema]).optional(),\r\n props: z.record(z.string(), z.any()).optional(),\r\n query: QuerySpecSchema.optional(),\r\n if: ExpressionSchema.optional(),\r\n elseIf: ExpressionSchema.optional(),\r\n for: ForDirectiveSchema.optional(),\r\n 'link-to': z\r\n .union([\r\n z.string(),\r\n ExpressionSchema,\r\n BindingSchema,\r\n z.object({\r\n ui: z.union([z.string(), ExpressionSchema, BindingSchema]),\r\n params: z.record(z.string(), z.any()).optional(),\r\n }),\r\n ])\r\n .optional(),\r\n _meta: z\r\n .object({\r\n id: z.string().optional(),\r\n version: z.string().optional(),\r\n created: z.string().optional(),\r\n lastModified: z.string().optional(),\r\n })\r\n .optional(),\r\n children: z.any().optional(),\r\n else: UIElementSchema.optional(),\r\n slots: z\r\n .record(z.string(), z.union([UIElementSchema, z.array(UIElementSchema)]))\r\n .optional(),\r\n platform: z\r\n .object({\r\n web: z.any().optional(),\r\n ios: z.any().optional(),\r\n android: z.any().optional(),\r\n })\r\n .optional(),\r\n })\r\n);\r\n\r\nexport type UIElement = z.infer<typeof UIElementSchema>;\r\n\r\n// UI Component schema\r\nexport const UIComponentSchema = z.object({\r\n id: z.string(),\r\n name: z.string().optional(),\r\n props: z.record(z.string(), z.any()).optional(),\r\n states: z.record(z.string(), z.any()).optional(),\r\n methods: z\r\n .record(\r\n z.string(),\r\n z.object({\r\n fn: z.string(),\r\n params: z.record(z.string(), z.any()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n effects: z\r\n .array(\r\n z.object({\r\n fn: z.string(),\r\n deps: z.array(z.string()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n data: z.record(z.string(), z.any()).optional(),\r\n render: UIElementSchema,\r\n query: QuerySpecSchema.optional(),\r\n});\r\n\r\nexport type UIComponent = z.infer<typeof UIComponentSchema>;\r\n\r\n// DSL Renderer Props schema\r\nexport const DSLRendererPropsSchema = z.object({\r\n dsl: UIComponentSchema,\r\n data: z.record(z.string(), z.any()).optional(),\r\n context: z.record(z.string(), z.any()).optional(),\r\n});\r\n\r\nexport type DSLRendererProps = z.infer<typeof DSLRendererPropsSchema>;\r\n","import { z } from 'zod';\r\n\r\n// ==================== Report DSL Schemas ====================\r\n\r\n// Expression schema for dynamic values\r\nexport const ExpressionSchema = z.object({\r\n $exp: z.string(),\r\n $deps: z.array(z.string()).optional(),\r\n});\r\n\r\nexport type Expression = z.infer<typeof ExpressionSchema>;\r\n\r\n// Binding schema for data binding\r\nexport const BindingSchema = z.object({\r\n $bind: z.string(),\r\n $transform: z\r\n .array(\r\n z.object({\r\n name: z.string(),\r\n args: z.array(z.any()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n});\r\n\r\nexport type Binding = z.infer<typeof BindingSchema>;\r\n\r\n// For directive schema\r\nexport const ForDirectiveSchema = z.object({\r\n in: z.union([ExpressionSchema, BindingSchema, z.string()]),\r\n as: z.string(),\r\n key: z.string().optional(),\r\n index: z.string().optional(),\r\n});\r\n\r\nexport type ForDirective = z.infer<typeof ForDirectiveSchema>;\r\n\r\n// Query specification schema\r\nexport const QuerySpecSchema = z.object({\r\n graphql: z.string().optional(),\r\n sql: z.string().optional(),\r\n variables: z.record(z.string(), z.any()).optional(),\r\n params: z.record(z.string(), z.any()).optional(),\r\n key: z.string().optional(),\r\n refetchPolicy: z\r\n .enum(['cache-first', 'network-only', 'cache-and-network'])\r\n .optional(),\r\n dependencies: z.array(z.string()).optional(),\r\n});\r\n\r\nexport type QuerySpec = z.infer<typeof QuerySpecSchema>;\r\n\r\n// UI Element schema\r\nexport const UIElementSchema: z.ZodType<any> = z.lazy(() =>\r\n z.object({\r\n id: z.string(),\r\n type: z.string(),\r\n key: z.union([z.string(), ExpressionSchema]).optional(),\r\n props: z.record(z.string(), z.any()).optional(),\r\n query: QuerySpecSchema.optional(),\r\n if: ExpressionSchema.optional(),\r\n elseIf: ExpressionSchema.optional(),\r\n for: ForDirectiveSchema.optional(),\r\n 'link-to': z\r\n .union([\r\n z.string(),\r\n ExpressionSchema,\r\n BindingSchema,\r\n z.object({\r\n ui: z.union([z.string(), ExpressionSchema, BindingSchema]),\r\n params: z.record(z.string(), z.any()).optional(),\r\n }),\r\n ])\r\n .optional(),\r\n _meta: z\r\n .object({\r\n id: z.string().optional(),\r\n version: z.string().optional(),\r\n created: z.string().optional(),\r\n lastModified: z.string().optional(),\r\n })\r\n .optional(),\r\n children: z.any().optional(),\r\n else: UIElementSchema.optional(),\r\n slots: z\r\n .record(z.string(), z.union([UIElementSchema, z.array(UIElementSchema)]))\r\n .optional(),\r\n platform: z\r\n .object({\r\n web: z.any().optional(),\r\n ios: z.any().optional(),\r\n android: z.any().optional(),\r\n })\r\n .optional(),\r\n })\r\n);\r\n\r\nexport type UIElement = z.infer<typeof UIElementSchema>;\r\n\r\n// UI Component schema\r\nexport const UIComponentSchema = z.object({\r\n id: z.string(),\r\n name: z.string().optional(),\r\n props: z.record(z.string(), z.any()).optional(),\r\n states: z.record(z.string(), z.any()).optional(),\r\n methods: z\r\n .record(\r\n z.string(),\r\n z.object({\r\n fn: z.string(),\r\n params: z.record(z.string(), z.any()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n effects: z\r\n .array(\r\n z.object({\r\n fn: z.string(),\r\n deps: z.array(z.string()).optional(),\r\n }),\r\n )\r\n .optional(),\r\n data: z.record(z.string(), z.any()).optional(),\r\n render: UIElementSchema,\r\n query: QuerySpecSchema.optional(),\r\n});\r\n\r\nexport type UIComponent = z.infer<typeof UIComponentSchema>;\r\n\r\n// DSL Renderer Props schema\r\nexport const DSLRendererPropsSchema = z.object({\r\n dsl: UIComponentSchema,\r\n data: z.record(z.string(), z.any()).optional(),\r\n context: z.record(z.string(), z.any()).optional(),\r\n});\r\n\r\nexport type DSLRendererProps = z.infer<typeof DSLRendererPropsSchema>;\r\n","import { z } from 'zod';\r\n\r\n/**\r\n * Message participant schema (from/to)\r\n * Synced with sdk-nodejs/src/types.ts\r\n */\r\nexport const MessageParticipantSchema = z.object({\r\n id: z.string().optional(),\r\n type: z.string().optional(),\r\n});\r\n\r\nexport type MessageParticipant = z.infer<typeof MessageParticipantSchema>;\r\n\r\n/**\r\n * Base message schema\r\n * Synced with sdk-nodejs/src/types.ts\r\n */\r\nexport const MessageSchema = z.object({\r\n id: z.string(),\r\n type: z.string(),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: z.unknown(),\r\n});\r\n\r\nexport type Message = z.infer<typeof MessageSchema>;\r\n\r\n// ==================== Authentication Messages ====================\r\n\r\n/**\r\n * Authentication login request payload schema\r\n * Synced with sdk-nodejs: AuthLoginRequestPayloadSchema\r\n */\r\nexport const AuthLoginPayloadSchema = z.object({\r\n login_data: z.string(), // Base64 encoded login data (username + SHA-1 hashed password)\r\n});\r\n\r\nexport type AuthLoginPayload = z.infer<typeof AuthLoginPayloadSchema>;\r\n\r\n/**\r\n * Authentication login request message schema\r\n * Synced with sdk-nodejs: AuthLoginRequestMessageSchema\r\n */\r\nexport const AuthLoginRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('AUTH_LOGIN_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: AuthLoginPayloadSchema,\r\n});\r\n\r\nexport type AuthLoginRequestMessage = z.infer<typeof AuthLoginRequestMessageSchema>;\r\n\r\n/**\r\n * Authentication login response payload schema\r\n * Synced with sdk-nodejs handler: auth-login-requests.ts\r\n */\r\nexport const AuthLoginResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.unknown().optional(), // User ID or additional auth data\r\n});\r\n\r\nexport type AuthLoginResponsePayload = z.infer<typeof AuthLoginResponsePayloadSchema>;\r\n\r\n/**\r\n * Authentication login response message schema\r\n */\r\nexport const AuthLoginResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('AUTH_LOGIN_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: AuthLoginResponsePayloadSchema,\r\n});\r\n\r\nexport type AuthLoginResponseMessage = z.infer<typeof AuthLoginResponseMessageSchema>;\r\n\r\n/**\r\n * Authentication verify request payload schema\r\n * Synced with sdk-nodejs: AuthVerifyRequestPayloadSchema\r\n */\r\nexport const AuthVerifyPayloadSchema = z.object({\r\n token: z.string(), // Base64 encoded authentication token\r\n});\r\n\r\nexport type AuthVerifyPayload = z.infer<typeof AuthVerifyPayloadSchema>;\r\n\r\n/**\r\n * Authentication verify request message schema\r\n * Synced with sdk-nodejs: AuthVerifyRequestMessageSchema\r\n */\r\nexport const AuthVerifyRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('AUTH_VERIFY_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: AuthVerifyPayloadSchema,\r\n});\r\n\r\nexport type AuthVerifyRequestMessage = z.infer<typeof AuthVerifyRequestMessageSchema>;\r\n\r\n/**\r\n * Authentication verify response payload schema\r\n * Synced with sdk-nodejs handler: auth-verify-request.ts\r\n */\r\nexport const AuthVerifyResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.unknown().optional(),\r\n});\r\n\r\nexport type AuthVerifyResponsePayload = z.infer<typeof AuthVerifyResponsePayloadSchema>;\r\n\r\n/**\r\n * Authentication verify response message schema\r\n */\r\nexport const AuthVerifyResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('AUTH_VERIFY_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: AuthVerifyResponsePayloadSchema,\r\n});\r\n\r\nexport type AuthVerifyResponseMessage = z.infer<typeof AuthVerifyResponseMessageSchema>;\r\n\r\n// ==================== User Prompt Messages ====================\r\n\r\n/**\r\n * User prompt request payload schema\r\n * Synced with sdk-nodejs: UserPromptRequestPayloadSchema\r\n */\r\nexport const UserPromptRequestPayloadSchema = z.object({\r\n prompt: z.string(),\r\n SA_RUNTIME: z.object({\r\n threadId: z.string(),\r\n uiBlockId: z.string(),\r\n }).optional(),\r\n responseMode: z.enum(['component', 'text']).optional(),\r\n});\r\n\r\nexport type UserPromptRequestPayload = z.infer<typeof UserPromptRequestPayloadSchema>;\r\n\r\n/**\r\n * User prompt request message schema\r\n * Synced with sdk-nodejs: UserPromptRequestMessageSchema\r\n */\r\nexport const UserPromptRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USER_PROMPT_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UserPromptRequestPayloadSchema,\r\n});\r\n\r\nexport type UserPromptRequestMessage = z.infer<typeof UserPromptRequestMessageSchema>;\r\n\r\n/**\r\n * Component schema (from backend)\r\n * Synced with sdk-nodejs: ComponentSchema\r\n */\r\nexport const ComponentSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n type: z.string(),\r\n description: z.string(),\r\n props: z.object({\r\n query: z.string().optional(),\r\n title: z.string().optional(),\r\n description: z.string().optional(),\r\n config: z.record(z.string(), z.unknown()).optional(),\r\n }),\r\n category: z.string().optional(),\r\n keywords: z.array(z.string()).optional(),\r\n});\r\n\r\nexport type Component = z.infer<typeof ComponentSchema>;\r\n\r\n/**\r\n * User prompt response payload schema\r\n * Synced with sdk-nodejs handler: user-prompt-request.ts\r\n */\r\nexport const UserPromptResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n component: ComponentSchema.optional(),\r\n }).optional(),\r\n uiBlockId: z.string().optional(),\r\n threadId: z.string().optional(),\r\n});\r\n\r\nexport type UserPromptResponsePayload = z.infer<typeof UserPromptResponsePayloadSchema>;\r\n\r\n/**\r\n * User prompt response message schema\r\n */\r\nexport const UserPromptResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USER_PROMPT_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UserPromptResponsePayloadSchema,\r\n});\r\n\r\nexport type UserPromptResponseMessage = z.infer<typeof UserPromptResponseMessageSchema>;\r\n\r\n// ==================== User Prompt Suggestions Messages ====================\r\n\r\n/**\r\n * User prompt suggestions request payload schema\r\n * Synced with sdk-nodejs: UserPromptSuggestionsPayloadSchema\r\n */\r\nexport const UserPromptSuggestionsRequestPayloadSchema = z.object({\r\n prompt: z.string(),\r\n limit: z.number().int().positive().default(5),\r\n});\r\n\r\nexport type UserPromptSuggestionsRequestPayload = z.infer<typeof UserPromptSuggestionsRequestPayloadSchema>;\r\n\r\n/**\r\n * User prompt suggestions request message schema\r\n * Synced with sdk-nodejs: UserPromptSuggestionsMessageSchema\r\n */\r\nexport const UserPromptSuggestionsRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USER_PROMPT_SUGGESTIONS_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UserPromptSuggestionsRequestPayloadSchema,\r\n});\r\n\r\nexport type UserPromptSuggestionsRequestMessage = z.infer<typeof UserPromptSuggestionsRequestMessageSchema>;\r\n\r\n/**\r\n * User prompt suggestions response payload schema\r\n * Synced with sdk-nodejs handler: user-prompt-suggestions.ts\r\n */\r\nexport const UserPromptSuggestionsResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n prompt: z.string(),\r\n suggestions: z.array(ComponentSchema),\r\n count: z.number(),\r\n message: z.string().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type UserPromptSuggestionsResponsePayload = z.infer<typeof UserPromptSuggestionsResponsePayloadSchema>;\r\n\r\n/**\r\n * User prompt suggestions response message schema\r\n */\r\nexport const UserPromptSuggestionsResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USER_PROMPT_SUGGESTIONS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UserPromptSuggestionsResponsePayloadSchema,\r\n});\r\n\r\nexport type UserPromptSuggestionsResponseMessage = z.infer<typeof UserPromptSuggestionsResponseMessageSchema>;\r\n\r\n// ==================== Bundle Messages ====================\r\n\r\n/**\r\n * Bundle request payload schema\r\n */\r\nexport const BundleRequestPayloadSchema = z.object({\r\n devbundlereq: z.boolean().optional().default(false),\r\n });\r\n\r\nexport type BundleRequestPayload = z.infer<typeof BundleRequestPayloadSchema>;\r\n\r\n/**\r\n * Bundle request message schema\r\n */\r\nexport const BundleRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('BUNDLE_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: BundleRequestPayloadSchema,\r\n});\r\n\r\nexport type BundleRequestMessage = z.infer<typeof BundleRequestMessageSchema>;\r\n\r\n/**\r\n * Bundle chunk payload schema\r\n * Synced with sdk-nodejs handler: bundle-request.ts\r\n */\r\nexport const BundleChunkPayloadSchema = z.object({\r\n chunk: z.string(),\r\n chunkIndex: z.number(),\r\n totalChunks: z.number(),\r\n isComplete: z.boolean(),\r\n progress: z.number(),\r\n});\r\n\r\nexport type BundleChunkPayload = z.infer<typeof BundleChunkPayloadSchema>;\r\n\r\n/**\r\n * Bundle chunk message schema\r\n */\r\nexport const BundleChunkMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('BUNDLE_CHUNK'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: BundleChunkPayloadSchema,\r\n});\r\n\r\nexport type BundleChunkMessage = z.infer<typeof BundleChunkMessageSchema>;\r\n\r\n/**\r\n * Bundle error response payload schema\r\n * Synced with sdk-nodejs handler: bundle-request.ts\r\n */\r\nexport const BundleErrorPayloadSchema = z.object({\r\n error: z.string(),\r\n});\r\n\r\nexport type BundleErrorPayload = z.infer<typeof BundleErrorPayloadSchema>;\r\n\r\n/**\r\n * Bundle error response message schema\r\n */\r\nexport const BundleErrorMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('BUNDLE_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: BundleErrorPayloadSchema,\r\n});\r\n\r\nexport type BundleErrorMessage = z.infer<typeof BundleErrorMessageSchema>;\r\n\r\n// ==================== Data Messages ====================\r\n\r\n/**\r\n * Data request payload schema\r\n * Synced with sdk-nodejs: DataRequestPayloadSchema\r\n */\r\nexport const DataRequestPayloadSchema = z.object({\r\n collection: z.string(),\r\n op: z.string(),\r\n params: z.record(z.string(), z.unknown()).optional(),\r\n SA_RUNTIME: z.record(z.string(), z.unknown()).optional(),\r\n});\r\n\r\nexport type DataRequestPayload = z.infer<typeof DataRequestPayloadSchema>;\r\n\r\n/**\r\n * Data request message schema\r\n * Synced with sdk-nodejs: DataRequestMessageSchema\r\n */\r\nexport const DataRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('DATA_REQ'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: DataRequestPayloadSchema,\r\n});\r\n\r\nexport type DataRequestMessage = z.infer<typeof DataRequestMessageSchema>;\r\n\r\n/**\r\n * Data response payload schema\r\n * Synced with sdk-nodejs handler: data-request.ts\r\n */\r\nexport const DataResponsePayloadSchema = z.object({\r\n collection: z.string(),\r\n op: z.string(),\r\n data: z.unknown(),\r\n executionMs: z.number().optional(),\r\n error: z.string().optional(),\r\n});\r\n\r\nexport type DataResponsePayload = z.infer<typeof DataResponsePayloadSchema>;\r\n\r\n/**\r\n * Data response message schema\r\n */\r\nexport const DataResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('DATA_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: DataResponsePayloadSchema,\r\n});\r\n\r\nexport type DataResponseMessage = z.infer<typeof DataResponseMessageSchema>;\r\n\r\n// ==================== UI Logs Messages ====================\r\n\r\n/**\r\n * UI log entry schema\r\n * Synced with sdk-nodejs: UILogsPayloadSchema\r\n */\r\nexport const UILogEntrySchema = z.object({\r\n timestamp: z.number(),\r\n level: z.enum(['info', 'error', 'warn', 'debug']),\r\n message: z.string(),\r\n type: z.enum(['explanation', 'query', 'general']).optional(),\r\n data: z.record(z.string(), z.unknown()).optional(),\r\n});\r\n\r\nexport type UILogEntry = z.infer<typeof UILogEntrySchema>;\r\n\r\n/**\r\n * UI logs payload schema\r\n * Synced with sdk-nodejs: UILogsPayloadSchema\r\n */\r\nexport const UILogsPayloadSchema = z.object({\r\n logs: z.array(UILogEntrySchema),\r\n});\r\n\r\nexport type UILogsPayload = z.infer<typeof UILogsPayloadSchema>;\r\n\r\n/**\r\n * UI logs message schema\r\n * Synced with sdk-nodejs: UILogsMessageSchema\r\n */\r\nexport const UILogsMessageSchema = z.object({\r\n id: z.string(), // uiBlockId\r\n type: z.literal('UI_LOGS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UILogsPayloadSchema,\r\n});\r\n\r\nexport type UILogsMessage = z.infer<typeof UILogsMessageSchema>;\r\n\r\n\r\n// ==================== Actions Messages ====================\r\n\r\n/**\r\n * Actions request payload schema\r\n * Synced with sdk-nodejs: ActionsRequestPayloadSchema\r\n */\r\nexport const ActionsRequestPayloadSchema = z.object({\r\n SA_RUNTIME: z.object({\r\n threadId: z.string(),\r\n uiBlockId: z.string(),\r\n }).optional(),\r\n});\r\n\r\nexport type ActionsRequestPayload = z.infer<typeof ActionsRequestPayloadSchema>;\r\n\r\nexport const ActionsRequestMessageSchema = z.object({\r\n id: z.string(),\r\n from: MessageParticipantSchema,\r\n type: z.literal('ACTIONS'),\r\n payload: ActionsRequestPayloadSchema,\r\n});\r\n\r\nexport type ActionsRequestMessage = z.infer<typeof ActionsRequestMessageSchema>;\r\n\r\nexport const ActionsResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n data: z.any().optional(),\r\n error: z.string().optional(),\r\n});\r\n\r\nexport type ActionsResponsePayload = z.infer<typeof ActionsResponsePayloadSchema>;\r\n\r\nexport const ActionsResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('ACTIONS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: ActionsResponsePayloadSchema,\r\n});\r\n\r\nexport type ActionsResponseMessage = z.infer<typeof ActionsResponseMessageSchema>;\r\n\r\n// ==================== Components Messages ====================\r\n\r\n/**\r\n * Components request payload schema\r\n * Synced with sdk-nodejs: ComponentsRequestPayloadSchema\r\n */\r\nexport const ComponentsSendPayloadSchema = z.object({\r\n components: z.array(z.any()),\r\n});\r\n\r\nexport type ComponentsSendPayload = z.infer<typeof ComponentsSendPayloadSchema>;\r\n\r\n/**\r\n * Components request message schema\r\n * Synced with sdk-nodejs: ComponentsRequestMessageSchema\r\n */\r\nexport const ComponentsSendMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('COMPONENT_LIST_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: ComponentsSendPayloadSchema,\r\n});\r\n\r\nexport type ComponentsSendMessage = z.infer<typeof ComponentsSendMessageSchema>;\r\n\r\n// ==================== Users Management Messages ====================\r\n\r\n/**\r\n * User query filters schema\r\n * Synced with sdk-nodejs: UserQueryFiltersSchema\r\n */\r\nexport const UserQueryFiltersSchema = z.object({\r\n username: z.string().optional(),\r\n email: z.string().optional(),\r\n role: z.string().optional(),\r\n fullname: z.string().optional(),\r\n});\r\n\r\nexport type UserQueryFilters = z.infer<typeof UserQueryFiltersSchema>;\r\n\r\n/**\r\n * Users request payload schema\r\n * Synced with sdk-nodejs: UsersRequestPayloadSchema\r\n */\r\nexport const UsersRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n username: z.string().optional(),\r\n email: z.string().email('Invalid email format').optional(),\r\n password: z.string().optional(),\r\n fullname: z.string().optional(),\r\n role: z.string().optional(),\r\n userInfo: z.record(z.string(),z.unknown()).optional(),\r\n // Query operation fields\r\n filters: UserQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n sort: z.enum(['ASC', 'DESC']).optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type UsersRequestPayload = z.infer<typeof UsersRequestPayloadSchema>;\r\n\r\n/**\r\n * Users request message schema\r\n * Synced with sdk-nodejs: UsersRequestMessageSchema\r\n */\r\nexport const UsersRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USERS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UsersRequestPayloadSchema,\r\n});\r\n\r\nexport type UsersRequestMessage = z.infer<typeof UsersRequestMessageSchema>;\r\n\r\n/**\r\n * Users response payload schema\r\n * Synced with sdk-nodejs handler: users.ts\r\n */\r\nexport const UsersResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n username: z.string().optional(),\r\n email: z.string().optional(),\r\n fullname: z.string().optional(),\r\n role: z.string().optional(),\r\n message: z.string().optional(),\r\n users: z.array(z.object({\r\n id: z.number(),\r\n username: z.string(),\r\n email: z.string().optional(),\r\n fullname: z.string().optional(),\r\n role: z.string().optional(),\r\n userInfo: z.record(z.string(), z.unknown()).optional(),\r\n wsIds: z.array(z.string()).optional(),\r\n createdAt: z.string().optional(), \r\n updatedAt: z.string().optional(), \r\n })).optional(),\r\n user: z.object({\r\n id: z.number(),\r\n username: z.string(),\r\n email: z.string().optional(),\r\n fullname: z.string().optional(),\r\n role: z.string().optional(),\r\n userInfo: z.record(z.string(), z.unknown()).optional(), \r\n wsIds: z.array(z.string()).optional(), \r\n createdAt: z.string().optional(), \r\n updatedAt: z.string().optional(),\r\n }).optional(),\r\n count: z.number().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type UsersResponsePayload = z.infer<typeof UsersResponsePayloadSchema>;\r\n\r\n/**\r\n * Users response message schema\r\n */\r\nexport const UsersResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('USERS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UsersResponsePayloadSchema,\r\n});\r\n\r\nexport type UsersResponseMessage = z.infer<typeof UsersResponseMessageSchema>;\r\n\r\n// ==================== Dashboard DSL Schemas ====================\r\n\r\n// Import DSL schemas from dashboards module\r\nimport { DSLRendererPropsSchema } from './services/dashboards/types';\r\nexport type { DSLRendererProps } from './services/dashboards/types';\r\n\r\n// ==================== Dashboard CRUD Messages ====================\r\n\r\n/**\r\n * Dashboard query filters schema\r\n * Synced with sdk-nodejs: DashboardQueryFiltersSchema\r\n */\r\nexport const DashboardQueryFiltersSchema = z.object({\r\n dashboardId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n name: z.string().optional(),\r\n published: z.boolean().optional(),\r\n});\r\n\r\nexport type DashboardQueryFilters = z.infer<typeof DashboardQueryFiltersSchema>;\r\n\r\n/**\r\n * Dashboards request payload schema\r\n * Synced with sdk-nodejs: DashboardsRequestPayloadSchema\r\n */\r\nexport const DashboardsRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n dashboardId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n name: z.string().optional(),\r\n description: z.string().optional(),\r\n published: z.boolean().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n dashboard: DSLRendererPropsSchema.optional(),\r\n // Query operation fields\r\n filters: DashboardQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n sort: z.enum(['ASC', 'DESC']).optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type DashboardsRequestPayload = z.infer<typeof DashboardsRequestPayloadSchema>;\r\n\r\n/**\r\n * Dashboards request message schema\r\n * Synced with sdk-nodejs: DashboardsRequestMessageSchema\r\n */\r\nexport const DashboardsRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('DASHBOARDS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: DashboardsRequestPayloadSchema,\r\n});\r\n\r\nexport type DashboardsRequestMessage = z.infer<typeof DashboardsRequestMessageSchema>;\r\n\r\n/**\r\n * Dashboards response payload schema\r\n * Synced with sdk-nodejs handler: dashboards.ts\r\n */\r\nexport const DashboardsResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n dashboardId: z.string().optional(),\r\n dashboard: DSLRendererPropsSchema.optional(),\r\n dashboards: z.array(z.object({\r\n dashboardId: z.string(),\r\n dashboard: DSLRendererPropsSchema,\r\n })).optional(),\r\n count: z.number().optional(),\r\n message: z.string().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type DashboardsResponsePayload = z.infer<typeof DashboardsResponsePayloadSchema>;\r\n\r\n/**\r\n * Dashboards response message schema\r\n */\r\nexport const DashboardsResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('DASHBOARDS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: DashboardsResponsePayloadSchema,\r\n});\r\n\r\nexport type DashboardsResponseMessage = z.infer<typeof DashboardsResponseMessageSchema>;\r\n\r\n// ==================== Report DSL Schemas ====================\r\n\r\n// Import DSL schemas from reports module\r\nimport { DSLRendererPropsSchema as ReportDSLRendererPropsSchema } from './services/reports/types';\r\nexport type { DSLRendererProps as ReportDSLRendererProps } from './services/reports/types';\r\n\r\n// ==================== Report CRUD Messages ====================\r\n\r\n/**\r\n * Report query filters schema\r\n * Synced with sdk-nodejs: ReportQueryFiltersSchema\r\n */\r\nexport const ReportQueryFiltersSchema = z.object({\r\n reportId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n name: z.string().optional(),\r\n published: z.boolean().optional(),\r\n});\r\n\r\nexport type ReportQueryFilters = z.infer<typeof ReportQueryFiltersSchema>;\r\n\r\n/**\r\n * Reports request payload schema\r\n * Synced with sdk-nodejs: ReportsRequestPayloadSchema\r\n */\r\nexport const ReportsRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n reportId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n name: z.string().optional(),\r\n description: z.string().optional(),\r\n published: z.boolean().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n report: ReportDSLRendererPropsSchema.optional(),\r\n // Query operation fields\r\n filters: ReportQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n sort: z.enum(['ASC', 'DESC']).optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type ReportsRequestPayload = z.infer<typeof ReportsRequestPayloadSchema>;\r\n\r\n/**\r\n * Reports request message schema\r\n * Synced with sdk-nodejs: ReportsRequestMessageSchema\r\n */\r\nexport const ReportsRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('REPORTS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: ReportsRequestPayloadSchema,\r\n});\r\n\r\nexport type ReportsRequestMessage = z.infer<typeof ReportsRequestMessageSchema>;\r\n\r\n/**\r\n * Reports response payload schema\r\n * Synced with sdk-nodejs handler: reports.ts\r\n */\r\nexport const ReportsResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n reportId: z.string().optional(),\r\n report: ReportDSLRendererPropsSchema.optional(),\r\n reports: z.array(z.object({\r\n reportId: z.string(),\r\n report: ReportDSLRendererPropsSchema,\r\n })).optional(),\r\n count: z.number().optional(),\r\n message: z.string().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type ReportsResponsePayload = z.infer<typeof ReportsResponsePayloadSchema>;\r\n\r\n/**\r\n * Reports response message schema\r\n */\r\nexport const ReportsResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('REPORTS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: ReportsResponsePayloadSchema,\r\n});\r\n\r\nexport type ReportsResponseMessage = z.infer<typeof ReportsResponseMessageSchema>;\r\n\r\n// ==================== UIs CRUD Messages ====================\r\n\r\n/**\r\n * UI query filters schema\r\n * Synced with sdk-nodejs: UIQueryFiltersSchema\r\n */\r\nexport const UIQueryFiltersSchema = z.object({\r\n uiId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n name: z.string().optional(),\r\n});\r\n\r\nexport type UIQueryFilters = z.infer<typeof UIQueryFiltersSchema>;\r\n\r\n/**\r\n * UIs request payload schema\r\n * Synced with sdk-nodejs: UIsRequestPayloadSchema\r\n */\r\nexport const UIsRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n uiId: z.string().optional(),\r\n projectId: z.string().optional(),\r\n name: z.string().optional(),\r\n description: z.string().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n ui: DSLRendererPropsSchema.optional(),\r\n // Query operation fields\r\n filters: UIQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n sort: z.enum(['ASC', 'DESC']).optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type UIsRequestPayload = z.infer<typeof UIsRequestPayloadSchema>;\r\n\r\n/**\r\n * UIs request message schema\r\n * Synced with sdk-nodejs: UIsRequestMessageSchema\r\n */\r\nexport const UIsRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('UIS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UIsRequestPayloadSchema,\r\n});\r\n\r\nexport type UIsRequestMessage = z.infer<typeof UIsRequestMessageSchema>;\r\n\r\n/**\r\n * UIs response payload schema\r\n * Synced with sdk-nodejs handler: uis.ts\r\n */\r\nexport const UIsResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n uiId: z.union([z.string(), z.number()]).optional(),\r\n ui: DSLRendererPropsSchema.optional(),\r\n uis: z.array(z.object({\r\n uiId: z.string(),\r\n ui: DSLRendererPropsSchema.optional(),\r\n })).optional(),\r\n count: z.number().optional(),\r\n message: z.string().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type UIsResponsePayload = z.infer<typeof UIsResponsePayloadSchema>;\r\n\r\n/**\r\n * UIs response message schema\r\n */\r\nexport const UIsResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('UIS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: UIsResponsePayloadSchema,\r\n});\r\n\r\nexport type UIsResponseMessage = z.infer<typeof UIsResponseMessageSchema>;\r\n\r\n// ==================== Bookmarks CRUD Messages ====================\r\n\r\n/**\r\n * DBUIBlock schema for database storage\r\n * Synced with sdk-nodejs: DBUIBlockSchema (from conversation-saver.ts)\r\n */\r\nexport const DBUIBlockSchema = z.object({\r\n id: z.string(),\r\n component: z.record(z.string(), z.any()).nullable(),\r\n analysis: z.string().nullable(),\r\n user_prompt: z.string(),\r\n});\r\n\r\nexport type DBUIBlock = z.infer<typeof DBUIBlockSchema>;\r\n\r\n/**\r\n * Bookmark data schema\r\n * Synced with sdk-nodejs: BookmarkDataSchema\r\n */\r\nexport const BookmarkDataSchema = z.object({\r\n id: z.number().optional(),\r\n uiblock: DBUIBlockSchema,\r\n created_at: z.string().optional(),\r\n updated_at: z.string().optional(),\r\n});\r\n\r\nexport type BookmarkData = z.infer<typeof BookmarkDataSchema>;\r\n\r\n/**\r\n * Bookmark query filters schema\r\n * Synced with sdk-nodejs: BookmarkQueryFiltersSchema\r\n */\r\nexport const BookmarkQueryFiltersSchema = z.object({\r\n userId: z.number().optional(),\r\n threadId: z.string().optional(),\r\n name: z.string().optional(),\r\n});\r\n\r\nexport type BookmarkQueryFilters = z.infer<typeof BookmarkQueryFiltersSchema>;\r\n\r\n/**\r\n * Bookmarks request payload schema\r\n * Synced with sdk-nodejs: BookmarksRequestPayloadSchema\r\n */\r\nexport const BookmarksRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n userId: z.number().optional(),\r\n threadId: z.string().optional(),\r\n name: z.string().optional(),\r\n description: z.string().optional(),\r\n uiblock: DBUIBlockSchema.optional(),\r\n // Query operation fields\r\n filters: BookmarkQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n sort: z.enum(['ASC', 'DESC']).optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type BookmarksRequestPayload = z.infer<typeof BookmarksRequestPayloadSchema>;\r\n\r\n/**\r\n * Bookmarks request message schema\r\n * Synced with sdk-nodejs: BookmarksRequestMessageSchema\r\n */\r\nexport const BookmarksRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('BOOKMARKS'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: BookmarksRequestPayloadSchema,\r\n});\r\n\r\nexport type BookmarksRequestMessage = z.infer<typeof BookmarksRequestMessageSchema>;\r\n\r\n/**\r\n * Bookmarks response payload schema\r\n * Synced with sdk-nodejs handler: bookmarks.ts\r\n */\r\nexport const BookmarksResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.union([\r\n BookmarkDataSchema,\r\n z.array(BookmarkDataSchema),\r\n ]).optional(),\r\n count: z.number().optional(),\r\n message: z.string().optional(),\r\n});\r\n\r\nexport type BookmarksResponsePayload = z.infer<typeof BookmarksResponsePayloadSchema>;\r\n\r\n/**\r\n * Bookmarks response message schema\r\n */\r\nexport const BookmarksResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('BOOKMARKS_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: BookmarksResponsePayloadSchema,\r\n});\r\n\r\nexport type BookmarksResponseMessage = z.infer<typeof BookmarksResponseMessageSchema>;\r\n\r\n// ==================== KB Nodes (Knowledge Base) CRUD Messages ====================\r\n\r\n/**\r\n * KB Node data schema\r\n * Synced with sdk-nodejs/project-setup: kb-nodes.ts\r\n */\r\nexport const KbNodeDataSchema = z.object({\r\n id: z.number().optional(),\r\n title: z.string(),\r\n content: z.string(),\r\n category: z.string().nullable().optional(),\r\n tags: z.array(z.string()).nullable().optional(),\r\n createdBy: z.number(),\r\n updatedBy: z.number().optional(),\r\n createdAt: z.string().optional(),\r\n updatedAt: z.string().optional(),\r\n});\r\n\r\nexport type KbNodeData = z.infer<typeof KbNodeDataSchema>;\r\n\r\n/**\r\n * KB Nodes query filters schema\r\n * Synced with sdk-nodejs: KbNodesQueryFiltersSchema\r\n */\r\nexport const KbNodesQueryFiltersSchema = z.object({\r\n query: z.string().optional(),\r\n category: z.string().optional(),\r\n tags: z.array(z.string()).optional(),\r\n createdBy: z.number().optional(),\r\n});\r\n\r\nexport type KbNodesQueryFilters = z.infer<typeof KbNodesQueryFiltersSchema>;\r\n\r\n/**\r\n * KB Nodes request payload schema\r\n * Synced with sdk-nodejs: KbNodesRequestPayloadSchema\r\n */\r\nexport const KbNodesRequestPayloadSchema = z.object({\r\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'search', 'getByCategory', 'getByUser', 'getCategories', 'getTags']),\r\n data: z.object({\r\n id: z.number().optional(),\r\n title: z.string().optional(),\r\n content: z.string().optional(),\r\n category: z.string().optional(),\r\n tags: z.array(z.string()).optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n userId: z.number().optional(),\r\n // Query/search operation fields\r\n query: z.string().optional(),\r\n filters: KbNodesQueryFiltersSchema.optional(),\r\n limit: z.number().optional(),\r\n offset: z.number().optional(),\r\n }).optional(),\r\n});\r\n\r\nexport type KbNodesRequestPayload = z.infer<typeof KbNodesRequestPayloadSchema>;\r\n\r\n/**\r\n * KB Nodes request message schema\r\n * Synced with sdk-nodejs: KbNodesRequestMessageSchema\r\n */\r\nexport const KbNodesRequestMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('KB_NODES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: KbNodesRequestPayloadSchema,\r\n});\r\n\r\nexport type KbNodesRequestMessage = z.infer<typeof KbNodesRequestMessageSchema>;\r\n\r\n/**\r\n * KB Nodes response payload schema\r\n * Synced with sdk-nodejs handler: kb-nodes.ts\r\n */\r\nexport const KbNodesResponsePayloadSchema = z.object({\r\n success: z.boolean(),\r\n error: z.string().optional(),\r\n data: z.object({\r\n // Single node operations\r\n id: z.number().optional(),\r\n title: z.string().optional(),\r\n content: z.string().optional(),\r\n category: z.string().nullable().optional(),\r\n tags: z.array(z.string()).nullable().optional(),\r\n createdBy: z.number().optional(),\r\n updatedBy: z.number().optional(),\r\n createdAt: z.string().optional(),\r\n updatedAt: z.string().optional(),\r\n message: z.string().optional(),\r\n // GetOne response\r\n node: KbNodeDataSchema.optional(),\r\n // List operations\r\n nodes: z.array(KbNodeDataSchema).optional(),\r\n count: z.number().optional(),\r\n // getByCategory/getByUser\r\n userId: z.number().optional(),\r\n // getCategories\r\n categories: z.array(z.string()).optional(),\r\n // getTags\r\n }).optional(),\r\n});\r\n\r\nexport type KbNodesResponsePayload = z.infer<typeof KbNodesResponsePayloadSchema>;\r\n\r\n/**\r\n * KB Nodes response message schema\r\n */\r\nexport const KbNodesResponseMessageSchema = z.object({\r\n id: z.string(),\r\n type: z.literal('KB_NODES_RES'),\r\n from: MessageParticipantSchema,\r\n to: MessageParticipantSchema.optional(),\r\n payload: KbNodesResponsePayloadSchema,\r\n});\r\n\r\nexport type KbNodesResponseMessage = z.infer<typeof KbNodesResponseMessageSchema>;\r\n\r\n// ==================== Client Configuration ====================\r\n\r\n/**\r\n * Client configuration schema\r\n */\r\nexport const ClientConfigSchema = z.object({\r\n userId: z.string(),\r\n projectId: z.string(),\r\n baseUrl: z.string().default('wss://ws.superatom.ai/websocket'),\r\n type: z.string().default('runtime'),\r\n maxReconnectAttempts: z.number().min(0).default(Infinity),\r\n initialReconnectDelay: z.number().min(0).default(1000),\r\n maxReconnectDelay: z.number().min(0).default(30000),\r\n defaultTimeout: z.number().min(0).default(30000),\r\n debug: z.boolean().default(false),\r\n});\r\n\r\nexport type ClientConfig = z.input<typeof ClientConfigSchema>;\r\nexport type ResolvedClientConfig = z.output<typeof ClientConfigSchema>;\r\n","/**\r\n * Services Index\r\n * Re-exports all service functions for easy importing\r\n */\r\n\r\nexport * from './auth';\r\nexport * from './userPrompt';\r\nexport * from './bundle';\r\nexport * from './data';\r\nexport * from './component';\r\nexport * from './users';\r\nexport * from './dashboards';\r\nexport * from './reports';\r\nexport * from './bookmarks';\r\nexport * from './actions';\r\nexport * from './uis';\r\nexport * from './kb-nodes';\r\n","/**\r\n * Authentication Service\r\n * Handles auth_login_req and auth_verify_req messages\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n AuthLoginRequestMessageSchema,\r\n AuthVerifyRequestMessageSchema,\r\n type Message,\r\n type AuthLoginRequestMessage,\r\n type AuthVerifyRequestMessage,\r\n} from '../types';\r\n\r\n/**\r\n * Send authentication login request\r\n * @param client - SuperatomClient instance\r\n * @param loginDataBase64 - Base64 encoded login data (username + SHA-1 hashed password)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response message\r\n */\r\nexport async function sendAuthLoginRequest(\r\n client: SuperatomClient,\r\n loginDataBase64: string,\r\n timeout?: number\r\n): Promise<Message> {\r\n // Generate unique message ID for this request\r\n const messageId = `login_${Date.now()}`;\r\n\r\n // Create and validate message using schema\r\n const message: AuthLoginRequestMessage = AuthLoginRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'AUTH_LOGIN_REQ',\r\n from: {\r\n type: client.type\r\n },\r\n to: {\r\n type: 'data-agent'\r\n },\r\n payload: {\r\n login_data: loginDataBase64\r\n }\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n console.log('sdk auth login response', response);\r\n return response;\r\n}\r\n\r\n/**\r\n * Send authentication verify request\r\n * @param client - SuperatomClient instance\r\n * @param token - Base64 encoded authentication token\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response message\r\n */\r\nexport async function sendAuthVerifyRequest(\r\n client: SuperatomClient,\r\n token: string,\r\n timeout?: number\r\n): Promise<Message> {\r\n // Generate unique message ID for this request\r\n const messageId = `verify_${Date.now()}`;\r\n\r\n // Create and validate message using schema\r\n const message: AuthVerifyRequestMessage = AuthVerifyRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'AUTH_VERIFY_REQ',\r\n from: {\r\n type: client.type\r\n },\r\n to: {\r\n type: 'data-agent'\r\n },\r\n payload: {\r\n token: token\r\n }\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n return response;\r\n}\r\n","/**\r\n * User Prompt Service\r\n * Handles user_prompt_req and user_prompt_suggestions_req messages\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n\tUserPromptRequestMessageSchema,\r\n\tUserPromptSuggestionsRequestMessageSchema,\r\n\ttype Message,\r\n\ttype UserPromptRequestMessage,\r\n\ttype UserPromptSuggestionsRequestMessage,\r\n} from '../types';\r\n\r\n/**\r\n * Send a user prompt request\r\n * @param client - SuperatomClient instance\r\n * @param prompt - User's prompt text\r\n * @param threadId - Thread ID for conversation context\r\n * @param uiBlockId - UI block ID for context\r\n * @param responseMode - 'component' for component response (default), 'text' for text streaming\r\n * @param onStream - Optional callback for streaming text chunks (only for text mode)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response message\r\n */\r\nexport async function sendUserPromptRequest(\r\n\tclient: SuperatomClient,\r\n\tprompt: string,\r\n\tthreadId: string,\r\n\tuiBlockId: string,\r\n\tresponseMode?: 'component' | 'text',\r\n\tonStream?: (chunk: string) => void,\r\n\ttimeout?: number\r\n): Promise<Message> {\r\n\t// Generate unique message ID for this request\r\n\tconst messageId = `user_prompt_req_msg_${Date.now()}`;\r\n\r\n\t// Create and validate message using schema\r\n\tconst message: UserPromptRequestMessage = UserPromptRequestMessageSchema.parse({\r\n\t\tid: messageId,\r\n\t\ttype: 'USER_PROMPT_REQ',\r\n\t\tfrom: {\r\n\t\t\ttype: client.type\r\n\t\t},\r\n\t\tto: {\r\n\t\t\ttype: 'data-agent'\r\n\t\t},\r\n\t\tpayload: {\r\n\t\t\tprompt: prompt,\r\n\t\t\tSA_RUNTIME: {\r\n\t\t\t\tthreadId: threadId,\r\n\t\t\t\tuiBlockId: uiBlockId\r\n\t\t\t},\r\n\t\t\tresponseMode\r\n\t\t} \r\n\t});\r\n\r\n\t// If streaming is enabled, set up stream listener before sending\r\n\tlet streamUnsubscribe: (() => void) | null = null;\r\n\tif (responseMode === 'text' && onStream) {\r\n\t\tstreamUnsubscribe = client.onMessage((msg) => {\r\n\t\t\t// Listen for USER_PROMPT_STREAM messages with matching uiBlockId\r\n\t\t\t// The backend sends streaming chunks with ID pattern: stream_${uiBlockId}\r\n\t\t\tif (msg.type === 'USER_PROMPT_STREAM' && msg.id === `stream_${uiBlockId}`) {\r\n\t\t\t\tconst chunk = (msg.payload as any)?.chunk;\r\n\t\t\t\tif (chunk) {\r\n\t\t\t\t\tonStream(chunk);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\ttry {\r\n\t\tconst response = await client.sendWithResponse(message, timeout);\r\n\t\treturn response;\r\n\t} finally {\r\n\t\t// Clean up stream listener after response completes\r\n\t\tif (streamUnsubscribe) {\r\n\t\t\tstreamUnsubscribe();\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Send a user prompt suggestions request\r\n * @param client - SuperatomClient instance\r\n * @param prompt - User's partial prompt text\r\n * @param limit - Maximum number of suggestions to return\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response message or null if prompt is empty\r\n */\r\nexport async function sendUserPromptSuggestionsRequest(\r\n\tclient: SuperatomClient,\r\n\tprompt: string,\r\n\tlimit: number = 5,\r\n\ttimeout?: number\r\n): Promise<Message | null> {\r\n\tif (!prompt || prompt.trim().length === 0) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\t// Generate unique message ID for this request\r\n\tconst messageId = `suggestions_${Date.now()}`;\r\n\r\n\t// Create and validate message using schema\r\n\tconst message: UserPromptSuggestionsRequestMessage = UserPromptSuggestionsRequestMessageSchema.parse({\r\n\t\tid: messageId,\r\n\t\ttype: 'USER_PROMPT_SUGGESTIONS_REQ',\r\n\t\tfrom: {\r\n\t\t\ttype: client.type\r\n\t\t},\r\n\t\tto: {\r\n\t\t\ttype: 'data-agent'\r\n\t\t},\r\n\t\tpayload: {\r\n\t\t\tprompt: prompt,\r\n\t\t\tlimit: limit\r\n\t\t}\r\n\t});\r\n\r\n\tconst response = await client.sendWithResponse(message, timeout);\r\n\treturn response;\r\n}\r\n","/**\r\n * Bundle Service\r\n * Handles bundle_req messages and chunked bundle delivery\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n BundleRequestMessageSchema,\r\n BundleChunkMessageSchema,\r\n type BundleRequestMessage,\r\n type BundleChunkPayload,\r\n} from '../types';\r\n\r\n/**\r\n * Request bundle from server\r\n * @param client - SuperatomClient instance\r\n * @param options - Bundle request options\r\n * @param options.timeout - Request timeout in milliseconds (default: 60000)\r\n * @param options.onProgress - Progress callback (0-100)\r\n * @returns Complete bundle as string\r\n */\r\nexport async function requestBundle(\r\n client: SuperatomClient,\r\n options?: {\r\n timeout?: number;\r\n onProgress?: (progress: number) => void;\r\n devbundlereq?: boolean;\r\n }\r\n): Promise<string> {\r\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n\r\n // Create and validate message using schema\r\n const message: BundleRequestMessage = BundleRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BUNDLE_REQ',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: { devbundlereq : options?.devbundlereq ?? false },\r\n });\r\n\r\n // Store bundle chunks\r\n const chunks: string[] = [];\r\n let totalChunks = 0;\r\n\r\n // Listen for bundle chunks\r\n const unsubscribe = client.onMessage((msg) => {\r\n try {\r\n // Check if this is a bundle chunk for our request\r\n if (msg.type === 'BUNDLE_CHUNK' && msg.id?.startsWith(messageId)) {\r\n // Validate chunk message\r\n const chunkMessage = BundleChunkMessageSchema.parse(msg);\r\n const payload: BundleChunkPayload = chunkMessage.payload;\r\n\r\n chunks[payload.chunkIndex] = payload.chunk;\r\n totalChunks = payload.totalChunks;\r\n\r\n // Report progress\r\n if (options?.onProgress) {\r\n options.onProgress(payload.progress);\r\n }\r\n }\r\n } catch (error) {\r\n console.error('[SuperAtom] Failed to parse bundle chunk:', error);\r\n }\r\n });\r\n\r\n // Send request\r\n client.send(message);\r\n\r\n // Wait for all chunks\r\n const timeout = options?.timeout ?? 60000; // Default 60s for bundle\r\n const startTime = Date.now();\r\n\r\n return new Promise((resolve, reject) => {\r\n const checkInterval = setInterval(() => {\r\n // Check timeout\r\n if (Date.now() - startTime > timeout) {\r\n clearInterval(checkInterval);\r\n unsubscribe();\r\n reject(new Error(`Bundle request timeout after ${timeout}ms`));\r\n return;\r\n }\r\n\r\n // Check if all chunks received\r\n if (totalChunks > 0 && chunks.length === totalChunks) {\r\n clearInterval(checkInterval);\r\n unsubscribe();\r\n\r\n // Combine chunks\r\n const bundle = chunks.join('');\r\n resolve(bundle);\r\n }\r\n }, 100);\r\n });\r\n}\r\n","/**\r\n * Data Service\r\n * Handles data_req messages for querying collections\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n DataRequestMessageSchema,\r\n type DataRequestMessage,\r\n type DataResponsePayload,\r\n} from '../types';\r\n\r\n/**\r\n * Request data from a collection\r\n * @param client - SuperatomClient instance\r\n * @param options - Data request options\r\n * @param options.collection - Collection name to query\r\n * @param options.operation - Operation to perform (e.g., 'find', 'aggregate')\r\n * @param options.params - Operation parameters\r\n * @param options.timeout - Request timeout in milliseconds\r\n * @returns Response with data or error\r\n */\r\nexport async function requestData(\r\n client: SuperatomClient,\r\n options: {\r\n collection: string;\r\n operation: string;\r\n params?: Record<string, unknown>;\r\n SA_RUNTIME?:Record<string, unknown>;\r\n timeout?: number;\r\n }\r\n): Promise<{ data?: unknown; error?: string; executionMs?: number }> {\r\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n\r\n // Create and validate message using schema\r\n const message: DataRequestMessage = DataRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DATA_REQ',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n collection: options.collection,\r\n op: options.operation,\r\n params: options.params,\r\n SA_RUNTIME: options.SA_RUNTIME,\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, options.timeout);\r\n\r\n // Parse response payload\r\n const payload = response.payload as DataResponsePayload;\r\n\r\n return {\r\n data: payload.data,\r\n error: payload.error,\r\n executionMs: payload.executionMs,\r\n };\r\n}\r\n","/**\r\n * Component Service\r\n * Handles AI-powered component suggestions\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\n\r\n/**\r\n * Get AI-powered component suggestions based on a query\r\n * @param client - SuperatomClient instance\r\n * @param query - User query for component suggestion\r\n * @param options - Request options\r\n * @param options.timeout - Request timeout in milliseconds\r\n * @returns Component suggestion or error\r\n */\r\nexport async function getComponentSuggestions(\r\n client: SuperatomClient,\r\n query: string,\r\n options?: { timeout?: number }\r\n): Promise<{ component?: { id: string; name: string }; error?: string }> {\r\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n\r\n const message = {\r\n id: messageId,\r\n type: 'USER_PROMPT_REQ',\r\n to: { type: 'data-agent' },\r\n payload: {\r\n prompt: query,\r\n },\r\n };\r\n\r\n const response = await client.sendWithResponse(message, options?.timeout);\r\n\r\n // Parse response payload\r\n const payload = response.payload as {\r\n component?: { id: string; name: string };\r\n error?: string;\r\n };\r\n\r\n return {\r\n component: payload.component,\r\n error: payload.error,\r\n };\r\n}\r\n\r\nexport async function sendComponents(\r\n client: SuperatomClient,\r\n components: any[],\r\n) {\r\n\r\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n\r\n const ws_msg = {\r\n\t\t\tid: messageId,\r\n\t\t\ttype: 'COMPONENT_LIST_RES',\r\n\t\t\tfrom: {\r\n\t\t\t\ttype: client.type\r\n\t\t\t},\r\n\t\t\tto:{\r\n\t\t\t\ttype: 'data-agent'\r\n\t\t\t},\r\n\t\t\tpayload: {\r\n\t\t\t\tcomponents\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Send component element to WebSocket\r\n\t\tclient.send(ws_msg);\r\n}\r\n","/**\r\n * Users Service\r\n * Handles USERS message for user CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n UsersRequestMessageSchema,\r\n type UsersRequestMessage,\r\n type UsersResponsePayload,\r\n type UserQueryFilters,\r\n} from '../types';\r\n\r\n/**\r\n * User interface for response data\r\n */\r\nexport interface User {\r\n username: string;\r\n email?: string;\r\n fullname?: string;\r\n role?: string;\r\n userInfo?: Record<string, unknown>;\r\n wsIds?: string[];\r\n}\r\n\r\n/**\r\n * Create a new user\r\n * @param client - SuperatomClient instance\r\n * @param username - Username for the new user\r\n * @param password - Password for the new user\r\n * @param email - Email for the new user (optional)\r\n * @param fullname - Full name for the new user (optional)\r\n * @param role - Role for the new user (optional)\r\n * @param userInfo - Additional user info as JSON object (optional)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function createUser(\r\n client: SuperatomClient,\r\n username: string,\r\n password: string,\r\n email?: string,\r\n fullname?: string,\r\n role?: string,\r\n userInfo?: Record<string, unknown>,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n const messageId = `users_create_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n username,\r\n password,\r\n email,\r\n fullname,\r\n role,\r\n userInfo,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n username: payload.data?.username,\r\n email: payload.data?.email,\r\n fullname: payload.data?.fullname,\r\n role: payload.data?.role,\r\n };\r\n}\r\n\r\n/**\r\n * Update an existing user\r\n * @param client - SuperatomClient instance\r\n * @param username - Username to update\r\n * @param updates - Object containing fields to update (password, email, fullname, role)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function updateUser(\r\n client: SuperatomClient,\r\n id: number,\r\n updates: {\r\n password?: string;\r\n email?: string;\r\n fullname?: string;\r\n role?: string;\r\n userInfo?: Record<string, unknown>;\r\n },\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n const messageId = `users_update_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n ...updates,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n username: payload.data?.username,\r\n email: payload.data?.email,\r\n fullname: payload.data?.fullname,\r\n role: payload.data?.role,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a user\r\n * @param client - SuperatomClient instance\r\n * @param username - Username to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteUser(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n const messageId = `users_delete_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n username: payload.data?.username,\r\n email: payload.data?.email,\r\n fullname: payload.data?.fullname,\r\n role: payload.data?.role,\r\n };\r\n}\r\n\r\n/**\r\n * Get all users\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of users\r\n */\r\nexport async function getAllUsers(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; users?: User[]; count?: number; message?: string }> {\r\n const messageId = `users_getall_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n users: payload.data?.users,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific user by username\r\n * @param client - SuperatomClient instance\r\n * @param username - Username to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with user data\r\n */\r\nexport async function getUser(\r\n client: SuperatomClient,\r\n username: string,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; user?: User; message?: string }> {\r\n const messageId = `users_getone_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n username,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n user: payload.data?.user,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Query users options\r\n */\r\nexport interface QueryUsersOptions {\r\n filters?: UserQueryFilters;\r\n limit?: number;\r\n sort?: 'ASC' | 'DESC';\r\n}\r\n\r\n/**\r\n * Query users with filters, limit, and sort\r\n * @param client - SuperatomClient instance\r\n * @param options - Query options with filters, limit, and sort\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of users\r\n */\r\nexport async function queryUsers(\r\n client: SuperatomClient,\r\n options: QueryUsersOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; users?: User[]; count?: number; message?: string }> {\r\n const { filters, limit, sort } = options;\r\n const messageId = `users_query_${Date.now()}`;\r\n\r\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'USERS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'query',\r\n data: {\r\n filters,\r\n limit,\r\n sort,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UsersResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n users: payload.data?.users,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n","/**\r\n * Dashboards Service\r\n * Handles DASHBOARDS message for dashboard CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../../client';\r\nimport {\r\n DashboardsRequestMessageSchema,\r\n type DashboardsRequestMessage,\r\n type DashboardsResponsePayload,\r\n type DashboardQueryFilters,\r\n} from '../../types';\r\nimport { type DSLRendererProps } from './types';\r\n\r\n// Re-export types\r\nexport * from './types';\r\n\r\n/**\r\n * Dashboard interface for response data\r\n */\r\nexport interface Dashboard {\r\n id?: number;\r\n dashboardId: string;\r\n projectId?: string;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n dashboard?: DSLRendererProps;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n createdAt?: string;\r\n updatedAt?: string;\r\n}\r\n\r\n/**\r\n * Create dashboard options\r\n */\r\nexport interface CreateDashboardOptions {\r\n dashboardId: string;\r\n projectId: string;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n createdBy?: number;\r\n dashboard?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Update dashboard options\r\n */\r\nexport interface UpdateDashboardOptions {\r\n id: number;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n dashboard?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Query dashboards options\r\n */\r\nexport interface QueryDashboardsOptions {\r\n filters?: DashboardQueryFilters;\r\n limit?: number;\r\n sort?: 'ASC' | 'DESC';\r\n}\r\n\r\n/**\r\n * Create a new dashboard\r\n * @param client - SuperatomClient instance\r\n * @param options - Dashboard creation options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function createDashboard(\r\n client: SuperatomClient,\r\n options: CreateDashboardOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps }> {\r\n const { dashboardId, projectId, name, description, published, createdBy, dashboard } = options;\r\n const messageId = `dashboards_create_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n dashboardId,\r\n projectId,\r\n name,\r\n description,\r\n published,\r\n createdBy,\r\n dashboard,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n dashboardId: payload.data?.dashboardId,\r\n dashboard: payload.data?.dashboard,\r\n };\r\n}\r\n\r\n/**\r\n * Update an existing dashboard\r\n * @param client - SuperatomClient instance\r\n * @param options - Dashboard update options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function updateDashboard(\r\n client: SuperatomClient,\r\n options: UpdateDashboardOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps }> {\r\n const { id, name, description, published, createdBy, updatedBy, dashboard } = options;\r\n const messageId = `dashboards_update_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n name,\r\n description,\r\n published,\r\n createdBy,\r\n updatedBy,\r\n dashboard,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n dashboardId: payload.data?.dashboardId,\r\n dashboard: payload.data?.dashboard,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a dashboard\r\n * @param client - SuperatomClient instance\r\n * @param id - Dashboard ID (numeric) to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteDashboard(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n const messageId = `dashboards_delete_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n };\r\n}\r\n\r\n/**\r\n * Get all dashboards\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of dashboards\r\n */\r\nexport async function getAllDashboards(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; dashboards?: Dashboard[]; count?: number; message?: string }> {\r\n const messageId = `dashboards_getall_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n dashboards: payload.data?.dashboards,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific dashboard by ID\r\n * @param client - SuperatomClient instance\r\n * @param id - Dashboard ID (numeric) to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with dashboard data\r\n */\r\nexport async function getDashboard(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps; message?: string }> {\r\n const messageId = `dashboards_getone_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n id: (payload.data as any)?.id,\r\n dashboardId: payload.data?.dashboardId,\r\n dashboard: payload.data?.dashboard,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Query dashboards with filters, limit, and sort\r\n * @param client - SuperatomClient instance\r\n * @param options - Query options with filters, limit, and sort\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of dashboards\r\n */\r\nexport async function queryDashboards(\r\n client: SuperatomClient,\r\n options: QueryDashboardsOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; dashboards?: Dashboard[]; count?: number; message?: string }> {\r\n const { filters, limit, sort } = options;\r\n const messageId = `dashboards_query_${Date.now()}`;\r\n\r\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'DASHBOARDS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'query',\r\n data: {\r\n filters,\r\n limit,\r\n sort,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as DashboardsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n dashboards: payload.data?.dashboards,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n","/**\r\n * Reports Service\r\n * Handles REPORTS message for report CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../../client';\r\nimport {\r\n ReportsRequestMessageSchema,\r\n type ReportsRequestMessage,\r\n type ReportsResponsePayload,\r\n type ReportQueryFilters,\r\n} from '../../types';\r\nimport { type DSLRendererProps } from './types';\r\n\r\n// Re-export with alias to avoid conflicts with dashboards\r\nexport type { DSLRendererProps as ReportDSLRendererProps } from './types';\r\n\r\n/**\r\n * Report interface for response data\r\n */\r\nexport interface Report {\r\n id?: number;\r\n reportId: string;\r\n projectId?: string;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n report?: DSLRendererProps;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n createdAt?: string;\r\n updatedAt?: string;\r\n}\r\n\r\n/**\r\n * Create report options\r\n */\r\nexport interface CreateReportOptions {\r\n reportId: string;\r\n projectId: string;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n createdBy?: number;\r\n report?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Update report options\r\n */\r\nexport interface UpdateReportOptions {\r\n id: number;\r\n name?: string;\r\n description?: string;\r\n published?: boolean;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n report?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Query reports options\r\n */\r\nexport interface QueryReportsOptions {\r\n filters?: ReportQueryFilters;\r\n limit?: number;\r\n sort?: 'ASC' | 'DESC';\r\n}\r\n\r\n/**\r\n * Create a new report\r\n * @param client - SuperatomClient instance\r\n * @param options - Report creation options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function createReport(\r\n client: SuperatomClient,\r\n options: CreateReportOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: DSLRendererProps }> {\r\n const { reportId, projectId, name, description, published, createdBy, report } = options;\r\n const messageId = `reports_create_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n reportId,\r\n projectId,\r\n name,\r\n description,\r\n published,\r\n createdBy,\r\n report,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n reportId: payload.data?.reportId,\r\n report: payload.data?.report,\r\n };\r\n}\r\n\r\n/**\r\n * Update an existing report\r\n * @param client - SuperatomClient instance\r\n * @param options - Report update options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function updateReport(\r\n client: SuperatomClient,\r\n options: UpdateReportOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: DSLRendererProps }> {\r\n const { id, name, description, published, createdBy, updatedBy, report } = options;\r\n const messageId = `reports_update_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n name,\r\n description,\r\n published,\r\n createdBy,\r\n updatedBy,\r\n report,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n reportId: payload.data?.reportId,\r\n report: payload.data?.report,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a report\r\n * @param client - SuperatomClient instance\r\n * @param id - Report ID (numeric) to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteReport(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n const messageId = `reports_delete_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n };\r\n}\r\n\r\n/**\r\n * Get all reports\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of reports\r\n */\r\nexport async function getAllReports(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; reports?: Report[]; count?: number; message?: string }> {\r\n const messageId = `reports_getall_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n reports: payload.data?.reports,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific report by ID\r\n * @param client - SuperatomClient instance\r\n * @param id - Report ID (numeric) to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with report data\r\n */\r\nexport async function getReport(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; id?: number; reportId?: string; report?: DSLRendererProps; message?: string }> {\r\n const messageId = `reports_getone_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n id: (payload.data as any)?.id,\r\n reportId: payload.data?.reportId,\r\n report: payload.data?.report,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Query reports with filters, limit, and sort\r\n * @param client - SuperatomClient instance\r\n * @param options - Query options with filters, limit, and sort\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of reports\r\n */\r\nexport async function queryReports(\r\n client: SuperatomClient,\r\n options: QueryReportsOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; reports?: Report[]; count?: number; message?: string }> {\r\n const { filters, limit, sort } = options;\r\n const messageId = `reports_query_${Date.now()}`;\r\n\r\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'REPORTS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'query',\r\n data: {\r\n filters,\r\n limit,\r\n sort,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as ReportsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n reports: payload.data?.reports,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n","/**\r\n * Bookmarks Service\r\n * Handles BOOKMARKS message for bookmark CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../../client';\r\nimport {\r\n BookmarksRequestMessageSchema,\r\n type BookmarksRequestMessage,\r\n type BookmarksResponsePayload,\r\n type BookmarkData,\r\n type DBUIBlock,\r\n type BookmarkQueryFilters,\r\n} from '../../types';\r\n\r\n/**\r\n * Bookmark interface for response data\r\n */\r\nexport interface Bookmark {\r\n id?: number;\r\n userId?: number;\r\n threadId?: string;\r\n name?: string;\r\n description?: string;\r\n uiblock: DBUIBlock;\r\n created_at?: string;\r\n updated_at?: string;\r\n}\r\n\r\n/**\r\n * Create bookmark options\r\n */\r\nexport interface CreateBookmarkOptions {\r\n userId: number;\r\n uiblock: DBUIBlock;\r\n threadId?: string;\r\n name?: string;\r\n description?: string;\r\n}\r\n\r\n/**\r\n * Create a new bookmark\r\n * @param client - SuperatomClient instance\r\n * @param options - Bookmark creation options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function createBookmark(\r\n client: SuperatomClient,\r\n options: CreateBookmarkOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\r\n const { userId, uiblock, threadId, name, description } = options;\r\n const messageId = `bookmarks_create_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n userId,\r\n threadId,\r\n name,\r\n description,\r\n uiblock,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.message,\r\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\r\n };\r\n}\r\n\r\n/**\r\n * Update bookmark options\r\n */\r\nexport interface UpdateBookmarkOptions {\r\n id: number;\r\n uiblock?: DBUIBlock;\r\n threadId?: string;\r\n name?: string;\r\n description?: string;\r\n}\r\n\r\n/**\r\n * Update an existing bookmark\r\n * @param client - SuperatomClient instance\r\n * @param options - Bookmark update options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function updateBookmark(\r\n client: SuperatomClient,\r\n options: UpdateBookmarkOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\r\n const { id, uiblock, threadId, name, description } = options;\r\n const messageId = `bookmarks_update_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n threadId,\r\n name,\r\n description,\r\n uiblock,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.message,\r\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a bookmark\r\n * @param client - SuperatomClient instance\r\n * @param id - Bookmark ID to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteBookmark(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\r\n const messageId = `bookmarks_delete_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.message,\r\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\r\n };\r\n}\r\n\r\n/**\r\n * Get all bookmarks\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of bookmarks\r\n */\r\nexport async function getAllBookmarks(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; data?: BookmarkData[]; count?: number; message?: string }> {\r\n const messageId = `bookmarks_getall_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n data: Array.isArray(payload.data) ? payload.data : payload.data ? [payload.data] : [],\r\n count: payload.count,\r\n message: payload.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific bookmark by ID\r\n * @param client - SuperatomClient instance\r\n * @param id - Bookmark ID to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with bookmark data\r\n */\r\nexport async function getBookmark(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; data?: BookmarkData; message?: string }> {\r\n const messageId = `bookmarks_getone_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\r\n message: payload.message,\r\n };\r\n}\r\n\r\n/**\r\n * Query bookmarks options\r\n */\r\nexport interface QueryBookmarksOptions {\r\n filters?: BookmarkQueryFilters;\r\n limit?: number;\r\n sort?: 'ASC' | 'DESC';\r\n}\r\n\r\n/**\r\n * Query bookmarks with filters, limit, and sort\r\n * @param client - SuperatomClient instance\r\n * @param options - Query options with filters, limit, and sort\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of bookmarks\r\n */\r\nexport async function queryBookmarks(\r\n client: SuperatomClient,\r\n options: QueryBookmarksOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; data?: BookmarkData[]; count?: number; message?: string }> {\r\n const { filters, limit, sort } = options;\r\n const messageId = `bookmarks_query_${Date.now()}`;\r\n\r\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'BOOKMARKS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'query',\r\n data: {\r\n filters,\r\n limit,\r\n sort,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as BookmarksResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n data: Array.isArray(payload.data) ? payload.data : payload.data ? [payload.data] : [],\r\n count: payload.count,\r\n message: payload.message,\r\n };\r\n}\r\n","\r\nimport { SuperatomClient } from \"../client\";\r\nimport { ActionsRequestMessage, ActionsRequestMessageSchema, ActionsResponsePayload } from \"../types\";\r\n\r\nexport async function getActions(\r\n client: SuperatomClient,\r\n options: {\r\n SA_RUNTIME?:Record<string, unknown>;\r\n timeout?: number;\r\n }\r\n): Promise<{ success:boolean; data?: unknown; error?: string; }> {\r\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n\r\n // Create and validate message using schema\r\n const message: ActionsRequestMessage = ActionsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'ACTIONS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n SA_RUNTIME: options.SA_RUNTIME,\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, options.timeout);\r\n\r\n // Parse response payload\r\n const payload = response.payload as ActionsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n data: payload.data,\r\n error: payload.error,\r\n };\r\n}","/**\r\n * UIs Service\r\n * Handles UIS message for UI CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../../client';\r\nimport {\r\n UIsRequestMessageSchema,\r\n type UIsRequestMessage,\r\n type UIsResponsePayload,\r\n type UIQueryFilters,\r\n} from '../../types';\r\nimport { type DSLRendererProps } from './types';\r\n\r\n// Re-export types with unique names to avoid conflicts with dashboards\r\nexport type { DSLRendererProps as UIDSLRendererProps } from './types';\r\n\r\n/**\r\n * UI interface for response data\r\n */\r\nexport interface UI {\r\n id?: number;\r\n uiId: string;\r\n projectId?: string;\r\n name?: string;\r\n description?: string;\r\n ui?: DSLRendererProps;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n createdAt?: string;\r\n updatedAt?: string;\r\n}\r\n\r\n/**\r\n * Create UI options\r\n */\r\nexport interface CreateUIOptions {\r\n uiId: string;\r\n projectId: string;\r\n name?: string;\r\n description?: string;\r\n createdBy?: number;\r\n ui?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Update UI options\r\n */\r\nexport interface UpdateUIOptions {\r\n id: number;\r\n name?: string;\r\n description?: string;\r\n createdBy?: number;\r\n updatedBy?: number;\r\n ui?: DSLRendererProps;\r\n}\r\n\r\n/**\r\n * Query UIs options\r\n */\r\nexport interface QueryUIsOptions {\r\n filters?: UIQueryFilters;\r\n limit?: number;\r\n sort?: 'ASC' | 'DESC';\r\n}\r\n\r\n/**\r\n * Create a new UI\r\n * @param client - SuperatomClient instance\r\n * @param options - UI creation options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function createUI(\r\n client: SuperatomClient,\r\n options: CreateUIOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: DSLRendererProps }> {\r\n const { uiId, projectId, name, description, createdBy, ui } = options;\r\n const messageId = `uis_create_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n uiId,\r\n projectId,\r\n name,\r\n description,\r\n createdBy,\r\n ui,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n uiId: payload.data?.uiId as string,\r\n ui: payload.data?.ui,\r\n };\r\n}\r\n\r\n/**\r\n * Update an existing UI\r\n * @param client - SuperatomClient instance\r\n * @param options - UI update options\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function updateUI(\r\n client: SuperatomClient,\r\n options: UpdateUIOptions,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: DSLRendererProps }> {\r\n const { id, name, description, createdBy, updatedBy, ui } = options;\r\n const messageId = `uis_update_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n name,\r\n description,\r\n createdBy,\r\n updatedBy,\r\n ui,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n uiId: payload.data?.uiId as string,\r\n ui: payload.data?.ui,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a UI\r\n * @param client - SuperatomClient instance\r\n * @param id - UI ID (numeric) to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteUI(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n const messageId = `uis_delete_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n id: (payload.data as any)?.id,\r\n };\r\n}\r\n\r\n/**\r\n * Get all UIs\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of UIs\r\n */\r\nexport async function getAllUIs(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; uis?: UI[]; count?: number; message?: string }> {\r\n const messageId = `uis_getall_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n uis: payload.data?.uis,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific UI by ID\r\n * @param client - SuperatomClient instance\r\n * @param id - UI ID (numeric) to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with UI data\r\n */\r\nexport async function getUI(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; id?: number; uiId?: string; ui?: DSLRendererProps; message?: string }> {\r\n const messageId = `uis_getone_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n id: (payload.data as any)?.id,\r\n uiId: payload.data?.uiId as string,\r\n ui: payload.data?.ui,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Query UIs with filters, limit, and sort\r\n * @param client - SuperatomClient instance\r\n * @param options - Query options with filters, limit, and sort\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of UIs\r\n */\r\nexport async function queryUIs(\r\n client: SuperatomClient,\r\n options: QueryUIsOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; uis?: UI[]; count?: number; message?: string }> {\r\n const { filters, limit, sort } = options;\r\n const messageId = `uis_query_${Date.now()}`;\r\n\r\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'UIS',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'query',\r\n data: {\r\n filters,\r\n limit,\r\n sort,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as UIsResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n uis: payload.data?.uis,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n","/**\r\n * KB Nodes (Knowledge Base) Service\r\n * Handles KB_NODES message for knowledge base CRUD operations\r\n */\r\n\r\nimport type { SuperatomClient } from '../client';\r\nimport {\r\n KbNodesRequestMessageSchema,\r\n type KbNodesRequestMessage,\r\n type KbNodesResponsePayload,\r\n} from '../types';\r\n\r\n/**\r\n * KB Node interface for response data\r\n */\r\nexport interface KbNode {\r\n id?: number;\r\n title: string;\r\n content: string;\r\n category?: string | null;\r\n tags?: string[] | null;\r\n createdBy: number;\r\n updatedBy?: number;\r\n createdAt?: string;\r\n updatedAt?: string;\r\n}\r\n\r\n/**\r\n * Create a new knowledge base node\r\n * @param client - SuperatomClient instance\r\n * @param title - Title for the KB node\r\n * @param content - Content for the KB node\r\n * @param createdBy - User ID of the creator\r\n * @param category - Category for the KB node (optional)\r\n * @param tags - Tags for the KB node (optional)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status and created node data\r\n */\r\nexport async function createKbNode(\r\n client: SuperatomClient,\r\n title: string,\r\n content: string,\r\n createdBy: number,\r\n category?: string,\r\n tags?: string[],\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; node?: KbNode }> {\r\n const messageId = `kb_nodes_create_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'create',\r\n data: {\r\n title,\r\n content,\r\n createdBy,\r\n category,\r\n tags,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n node: payload.data ? {\r\n id: payload.data.id,\r\n title: payload.data.title || title,\r\n content: payload.data.content || content,\r\n category: payload.data.category,\r\n tags: payload.data.tags,\r\n createdBy: payload.data.createdBy || createdBy,\r\n updatedBy: payload.data.updatedBy,\r\n createdAt: payload.data.createdAt,\r\n updatedAt: payload.data.updatedAt,\r\n } : undefined,\r\n };\r\n}\r\n\r\n/**\r\n * Update an existing knowledge base node\r\n * @param client - SuperatomClient instance\r\n * @param id - ID of the KB node to update\r\n * @param updatedBy - User ID of the updater\r\n * @param updates - Object containing fields to update (title, content, category, tags)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status and updated node data\r\n */\r\nexport async function updateKbNode(\r\n client: SuperatomClient,\r\n id: number,\r\n updatedBy: number,\r\n updates: {\r\n title?: string;\r\n content?: string;\r\n category?: string;\r\n tags?: string[];\r\n },\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string; node?: KbNode }> {\r\n const messageId = `kb_nodes_update_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'update',\r\n data: {\r\n id,\r\n updatedBy,\r\n ...updates,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n node: payload.data ? {\r\n id: payload.data.id,\r\n title: payload.data.title || '',\r\n content: payload.data.content || '',\r\n category: payload.data.category,\r\n tags: payload.data.tags,\r\n createdBy: payload.data.createdBy || 0,\r\n updatedBy: payload.data.updatedBy,\r\n createdAt: payload.data.createdAt,\r\n updatedAt: payload.data.updatedAt,\r\n } : undefined,\r\n };\r\n}\r\n\r\n/**\r\n * Delete a knowledge base node\r\n * @param client - SuperatomClient instance\r\n * @param id - ID of the KB node to delete\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with success status\r\n */\r\nexport async function deleteKbNode(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; message?: string }> {\r\n const messageId = `kb_nodes_delete_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'delete',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get all knowledge base nodes\r\n * @param client - SuperatomClient instance\r\n * @param limit - Maximum number of nodes to retrieve (optional, default 100)\r\n * @param offset - Offset for pagination (optional, default 0)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of KB nodes\r\n */\r\nexport async function getAllKbNodes(\r\n client: SuperatomClient,\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; message?: string }> {\r\n const messageId = `kb_nodes_getall_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getAll',\r\n data: {\r\n limit,\r\n offset,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n nodes: payload.data?.nodes as KbNode[] | undefined,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get a specific knowledge base node by ID\r\n * @param client - SuperatomClient instance\r\n * @param id - ID of the KB node to retrieve\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with KB node data\r\n */\r\nexport async function getKbNode(\r\n client: SuperatomClient,\r\n id: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; node?: KbNode; message?: string }> {\r\n const messageId = `kb_nodes_getone_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getOne',\r\n data: {\r\n id,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n node: payload.data?.node as KbNode | undefined,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Search options for KB nodes\r\n */\r\nexport interface SearchKbNodesOptions {\r\n query?: string;\r\n category?: string;\r\n tags?: string[];\r\n createdBy?: number;\r\n limit?: number;\r\n offset?: number;\r\n}\r\n\r\n/**\r\n * Search knowledge base nodes with full-text search and filters\r\n * @param client - SuperatomClient instance\r\n * @param options - Search options with query, category, tags, createdBy, limit, offset\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of matching KB nodes\r\n */\r\nexport async function searchKbNodes(\r\n client: SuperatomClient,\r\n options: SearchKbNodesOptions = {},\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; message?: string }> {\r\n const { query, category, tags, createdBy, limit, offset } = options;\r\n const messageId = `kb_nodes_search_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'search',\r\n data: {\r\n query,\r\n category,\r\n tags,\r\n createdBy,\r\n limit,\r\n offset,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n nodes: payload.data?.nodes as KbNode[] | undefined,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get knowledge base nodes by category\r\n * @param client - SuperatomClient instance\r\n * @param category - Category to filter by\r\n * @param limit - Maximum number of nodes to retrieve (optional, default 50)\r\n * @param offset - Offset for pagination (optional, default 0)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of KB nodes in the category\r\n */\r\nexport async function getKbNodesByCategory(\r\n client: SuperatomClient,\r\n category: string,\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; category?: string; message?: string }> {\r\n const messageId = `kb_nodes_getbycategory_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getByCategory',\r\n data: {\r\n category,\r\n limit,\r\n offset,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n nodes: payload.data?.nodes as KbNode[] | undefined,\r\n count: payload.data?.count,\r\n category: payload.data?.category || category,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get knowledge base nodes by user (creator)\r\n * @param client - SuperatomClient instance\r\n * @param userId - User ID to filter by\r\n * @param limit - Maximum number of nodes to retrieve (optional, default 50)\r\n * @param offset - Offset for pagination (optional, default 0)\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of KB nodes created by the user\r\n */\r\nexport async function getKbNodesByUser(\r\n client: SuperatomClient,\r\n userId: number,\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; userId?: number; message?: string }> {\r\n const messageId = `kb_nodes_getbyuser_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getByUser',\r\n data: {\r\n userId,\r\n limit,\r\n offset,\r\n },\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n nodes: payload.data?.nodes as KbNode[] | undefined,\r\n count: payload.data?.count,\r\n userId: payload.data?.userId || userId,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get all unique categories from knowledge base nodes\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of unique categories\r\n */\r\nexport async function getKbNodeCategories(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; categories?: string[]; count?: number; message?: string }> {\r\n const messageId = `kb_nodes_getcategories_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getCategories',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n categories: payload.data?.categories,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n\r\n/**\r\n * Get all unique tags from knowledge base nodes\r\n * @param client - SuperatomClient instance\r\n * @param timeout - Request timeout in milliseconds\r\n * @returns Server response with list of unique tags\r\n */\r\nexport async function getKbNodeTags(\r\n client: SuperatomClient,\r\n timeout?: number\r\n): Promise<{ success: boolean; error?: string; tags?: string[]; count?: number; message?: string }> {\r\n const messageId = `kb_nodes_gettags_${Date.now()}`;\r\n\r\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\r\n id: messageId,\r\n type: 'KB_NODES',\r\n from: { type: client.type },\r\n to: { type: 'data-agent' },\r\n payload: {\r\n operation: 'getTags',\r\n },\r\n });\r\n\r\n const response = await client.sendWithResponse(message, timeout);\r\n const payload = response.payload as KbNodesResponsePayload;\r\n\r\n // The tags come back in data.data from the response\r\n const responseData = payload.data as any;\r\n\r\n return {\r\n success: payload.success,\r\n error: payload.error,\r\n tags: responseData?.tags,\r\n count: payload.data?.count,\r\n message: payload.data?.message,\r\n };\r\n}\r\n","import {\r\n MessageSchema,\r\n ClientConfigSchema,\r\n type Message,\r\n type ClientConfig,\r\n type ResolvedClientConfig,\r\n} from './types';\r\nimport * as services from './services';\r\n\r\ntype MessageHandler = (message: Message) => void;\r\ntype ConnectionHandler = () => void;\r\ntype ErrorHandler = (error: Event | Error) => void;\r\n\r\n/**\r\n * SuperatomClient - WebSocket client for SuperAtom platform\r\n *\r\n * Core WebSocket client handling connection management, messaging, and event handling.\r\n * Domain-specific functionality (auth, user prompts, bundles) is delegated to service functions.\r\n */\r\nexport class SuperatomClient {\r\n private socket: WebSocket | null = null;\r\n private reconnectAttempts = 0;\r\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\r\n private shouldReconnect = true;\r\n private messageHandlers: Set<MessageHandler> = new Set();\r\n private connectionHandlers: Set<ConnectionHandler> = new Set();\r\n private disconnectionHandlers: Set<ConnectionHandler> = new Set();\r\n private errorHandlers: Set<ErrorHandler> = new Set();\r\n private config: ResolvedClientConfig;\r\n private connectPromise: Promise<void> | null = null;\r\n private connectResolve: (() => void) | null = null;\r\n\r\n constructor(config: ClientConfig) {\r\n const parsed = ClientConfigSchema.parse(config);\r\n this.config = parsed;\r\n }\r\n\r\n /**\r\n * Get WebSocket URL with query parameters\r\n */\r\n private getWebSocketUrl(): string {\r\n const params = new URLSearchParams({\r\n userId: this.config.userId,\r\n projectId: this.config.projectId,\r\n type: this.config.type,\r\n });\r\n return `${this.config.baseUrl}?${params.toString()}`;\r\n }\r\n\r\n /**\r\n * Calculate reconnection delay with exponential backoff\r\n */\r\n private calculateReconnectDelay(): number {\r\n const delay = Math.min(\r\n this.config.initialReconnectDelay * Math.pow(2, this.reconnectAttempts),\r\n this.config.maxReconnectDelay\r\n );\r\n // Add jitter to prevent thundering herd\r\n return delay + Math.random() * 1000;\r\n }\r\n\r\n /**\r\n * Schedule reconnection attempt\r\n */\r\n private scheduleReconnect(): void {\r\n if (!this.shouldReconnect) {\r\n return;\r\n }\r\n\r\n if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {\r\n const error = new Error('Max reconnection attempts reached');\r\n this.log('error', error.message);\r\n this.errorHandlers.forEach((handler) => handler(error));\r\n return;\r\n }\r\n\r\n const delay = this.calculateReconnectDelay();\r\n this.log('info', `Scheduling reconnection attempt ${this.reconnectAttempts + 1} in ${delay}ms`);\r\n\r\n this.reconnectTimer = setTimeout(() => {\r\n this.reconnectAttempts++;\r\n this.connect();\r\n }, delay);\r\n }\r\n\r\n /**\r\n * Setup WebSocket event handlers\r\n */\r\n private setupSocketHandlers(): void {\r\n if (!this.socket) {\r\n return;\r\n }\r\n\r\n this.socket.onopen = () => {\r\n this.log('info', 'Connected to SuperAtom');\r\n this.reconnectAttempts = 0;\r\n\r\n // Resolve the connect promise if it exists\r\n if (this.connectResolve) {\r\n this.connectResolve();\r\n this.connectResolve = null;\r\n }\r\n\r\n this.connectionHandlers.forEach((handler) => handler());\r\n };\r\n\r\n this.socket.onmessage = (event) => {\r\n try {\r\n const parsed = JSON.parse(event.data);\r\n const message = MessageSchema.parse(parsed);\r\n // this.log('debug', 'Received:', message);\r\n\r\n // Call message handlers\r\n this.messageHandlers.forEach((handler) => handler(message));\r\n } catch (error) {\r\n this.log('error', 'Failed to parse message:', error);\r\n const err = error instanceof Error ? error : new Error('Parse error');\r\n this.errorHandlers.forEach((handler) => handler(err));\r\n }\r\n };\r\n\r\n this.socket.onclose = (event) => {\r\n this.log('info', 'Disconnected from SuperAtom', {\r\n code: event.code,\r\n reason: event.reason,\r\n wasClean: event.wasClean,\r\n });\r\n this.disconnectionHandlers.forEach((handler) => handler());\r\n\r\n // Reconnect unless explicitly disconnected\r\n if (this.shouldReconnect && !event.wasClean) {\r\n this.scheduleReconnect();\r\n }\r\n };\r\n\r\n this.socket.onerror = (error) => {\r\n this.log('error', 'WebSocket error:', error);\r\n this.errorHandlers.forEach((handler) => handler(error));\r\n };\r\n }\r\n\r\n /**\r\n * Connect to SuperAtom WebSocket server\r\n * Returns a Promise that resolves when the connection is established\r\n * The Promise never rejects - failures are logged silently and auto-reconnect is triggered\r\n */\r\n connect(): Promise<void> {\r\n // If already connected, return resolved promise\r\n if (this.socket?.readyState === WebSocket.OPEN) {\r\n this.log('warn', 'Already connected');\r\n return Promise.resolve();\r\n }\r\n\r\n // If connection is in progress, return the existing promise\r\n if (this.socket?.readyState === WebSocket.CONNECTING && this.connectPromise) {\r\n this.log('warn', 'Connection already in progress');\r\n return this.connectPromise;\r\n }\r\n\r\n // Create a new promise that resolves when connected\r\n this.connectPromise = new Promise<void>((resolve) => {\r\n this.connectResolve = resolve;\r\n });\r\n\r\n try {\r\n this.socket = new WebSocket(this.getWebSocketUrl());\r\n this.setupSocketHandlers();\r\n } catch (error) {\r\n this.log('error', 'Failed to create WebSocket:', error);\r\n const err = error instanceof Error ? error : new Error('Connection failed');\r\n this.errorHandlers.forEach((handler) => handler(err));\r\n this.scheduleReconnect();\r\n }\r\n\r\n return this.connectPromise;\r\n }\r\n\r\n /**\r\n * Disconnect from WebSocket server\r\n */\r\n disconnect(): void {\r\n this.shouldReconnect = false;\r\n\r\n if (this.reconnectTimer) {\r\n clearTimeout(this.reconnectTimer);\r\n this.reconnectTimer = null;\r\n }\r\n\r\n if (this.socket) {\r\n this.socket.close(1000, 'Client disconnect');\r\n this.socket = null;\r\n }\r\n\r\n this.reconnectAttempts = 0;\r\n }\r\n\r\n /**\r\n * Update client configuration\r\n */\r\n private updateConfig(config: Partial<ClientConfig>): void {\r\n const merged = { ...this.config, ...config };\r\n const parsed = ClientConfigSchema.parse(merged);\r\n this.config = parsed;\r\n }\r\n\r\n /**\r\n * Reconnect with new configuration\r\n * Disconnects from existing connection and reconnects with updated config\r\n * Returns a Promise that resolves when the new connection is established\r\n */\r\n reconnectWithConfig(config: Partial<ClientConfig>): Promise<void> {\r\n this.updateConfig(config);\r\n if (this.socket) {\r\n this.disconnect();\r\n }\r\n this.shouldReconnect = true;\r\n return this.connect();\r\n }\r\n\r\n /**\r\n * Send a message to the server\r\n */\r\n send(message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } }): void {\r\n if (!this.socket || this.socket.readyState !== WebSocket.OPEN) {\r\n throw new Error('WebSocket is not connected');\r\n }\r\n\r\n const fullMessage: Message = {\r\n ...message,\r\n from: message.from || { type: this.config.type },\r\n };\r\n\r\n try {\r\n // this.log('debug', 'Sending:', fullMessage);\r\n this.socket.send(JSON.stringify(fullMessage));\r\n } catch (error) {\r\n this.log('error', 'Failed to send message:', error);\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * Send a message and wait for a response with the same ID\r\n * Uses closure-based approach - no global state management needed\r\n */\r\n async sendWithResponse(\r\n message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } },\r\n timeout?: number\r\n ): Promise<Message> {\r\n const messageId = message.id || `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\r\n const messageWithId = { ...message, id: messageId };\r\n const timeoutMs = timeout ?? this.config.defaultTimeout;\r\n\r\n // Send the message first\r\n this.send(messageWithId);\r\n\r\n // Return a promise that listens for the response\r\n return new Promise((resolve, reject) => {\r\n let isResolved = false;\r\n\r\n // Create message handler for this specific request (closure captures resolve/reject)\r\n const responseHandler: MessageHandler = (msg) => {\r\n if (msg.id === messageId && !isResolved) {\r\n isResolved = true;\r\n clearTimeout(timer);\r\n unsubscribe();\r\n resolve(msg);\r\n }\r\n };\r\n\r\n // Subscribe to messages\r\n const unsubscribe = this.onMessage(responseHandler);\r\n\r\n // Setup timeout\r\n const timer = setTimeout(() => {\r\n if (!isResolved) {\r\n isResolved = true;\r\n unsubscribe();\r\n reject(new Error(`Request timeout after ${timeoutMs}ms`));\r\n }\r\n }, timeoutMs);\r\n });\r\n }\r\n\r\n /**\r\n * Register message handler\r\n */\r\n onMessage(handler: MessageHandler): () => void {\r\n this.messageHandlers.add(handler);\r\n return () => this.messageHandlers.delete(handler);\r\n }\r\n\r\n /**\r\n * Register connection handler\r\n */\r\n onConnect(handler: ConnectionHandler): () => void {\r\n this.connectionHandlers.add(handler);\r\n return () => this.connectionHandlers.delete(handler);\r\n }\r\n\r\n /**\r\n * Register disconnection handler\r\n */\r\n onDisconnect(handler: ConnectionHandler): () => void {\r\n this.disconnectionHandlers.add(handler);\r\n return () => this.disconnectionHandlers.delete(handler);\r\n }\r\n\r\n /**\r\n * Register error handler\r\n */\r\n onError(handler: ErrorHandler): () => void {\r\n this.errorHandlers.add(handler);\r\n return () => this.errorHandlers.delete(handler);\r\n }\r\n\r\n /**\r\n * Check if client is connected\r\n */\r\n isConnected(): boolean {\r\n return this.socket?.readyState === WebSocket.OPEN;\r\n }\r\n\r\n /**\r\n * Get current reconnection attempts\r\n */\r\n getReconnectAttempts(): number {\r\n return this.reconnectAttempts;\r\n }\r\n\r\n /**\r\n * Get client type\r\n */\r\n get type(): string {\r\n return this.config.type;\r\n }\r\n\r\n /**\r\n * Send a message and wait for response with timeout (alias for sendWithResponse)\r\n */\r\n async ask(\r\n message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } },\r\n options?: { timeout?: number }\r\n ): Promise<Message> {\r\n return this.sendWithResponse(message, options?.timeout);\r\n }\r\n\r\n // ==================== Service Methods ====================\r\n // These methods delegate to service functions for better code organization\r\n\r\n /**\r\n * Send authentication login request\r\n * Delegates to auth service\r\n */\r\n async sendAuthLoginRequest(\r\n loginDataBase64: string,\r\n timeout?: number\r\n ): Promise<Message> {\r\n this.log('info', 'Sending auth login request');\r\n return services.sendAuthLoginRequest(this, loginDataBase64, timeout);\r\n }\r\n\r\n /**\r\n * Send authentication verify request\r\n * Delegates to auth service\r\n */\r\n async sendAuthVerifyRequest(\r\n token: string,\r\n timeout?: number\r\n ): Promise<Message> {\r\n this.log('info', 'Sending auth verify request');\r\n return services.sendAuthVerifyRequest(this, token, timeout);\r\n }\r\n\r\n /**\r\n * Send a user prompt request\r\n * Delegates to user prompt service\r\n * @param responseMode - 'component' for component response (default), 'text' for text streaming\r\n * @param onStream - Optional callback for streaming text chunks (only for text mode)\r\n */\r\n async sendUserPromptRequest(\r\n prompt: string,\r\n threadId: string,\r\n uiBlockId: string,\r\n responseMode?: 'component' | 'text',\r\n onStream?: (chunk: string) => void,\r\n timeout?: number\r\n ): Promise<Message> {\r\n this.log('info', 'Sending user prompt request with streaming support');\r\n return services.sendUserPromptRequest(this, prompt, threadId, uiBlockId, responseMode, onStream, timeout);\r\n }\r\n\r\n /**\r\n * Send a user prompt suggestions request\r\n * Delegates to user prompt service\r\n */\r\n async sendUserPromptSuggestionsRequest(\r\n prompt: string,\r\n limit: number = 5,\r\n timeout?: number\r\n ): Promise<Message | null> {\r\n this.log('info', 'Sending user prompt suggestions request');\r\n return services.sendUserPromptSuggestionsRequest(this, prompt, limit, timeout);\r\n }\r\n\r\n /**\r\n * Request bundle from server\r\n * Delegates to bundle service\r\n */\r\n async requestBundle(options?: {\r\n timeout?: number;\r\n onProgress?: (progress: number) => void;\r\n devbundle?: boolean;\r\n }): Promise<string> {\r\n this.log('info', 'Requesting bundle from server');\r\n return services.requestBundle(this, options);\r\n }\r\n\r\n /**\r\n * Request data from a collection\r\n * Delegates to data service\r\n */\r\n async requestData(options: {\r\n collection: string;\r\n operation: string;\r\n params?: Record<string, unknown>;\r\n SA_RUNTIME?: Record<string, unknown>;\r\n timeout?: number;\r\n }): Promise<{ data?: unknown; error?: string }> {\r\n this.log('info', `Requesting data from collection: ${options.collection}, operation: ${options.operation}`);\r\n return services.requestData(this, options);\r\n }\r\n\r\n /**\r\n * Get AI-powered component suggestions based on a query\r\n * Delegates to component service\r\n */\r\n async getComponentSuggestions(\r\n query: string,\r\n options?: { timeout?: number }\r\n ): Promise<{ component?: { id: string; name: string }; error?: string }> {\r\n this.log('info', 'Requesting component suggestions for query:', query);\r\n return services.getComponentSuggestions(this, query, options);\r\n }\r\n\r\n /**\r\n * Get AI-powered component suggestions based on a query\r\n * Delegates to component service\r\n */\r\n async getActions(\r\n options: { \r\n SA_RUNTIME?: Record<string, unknown>;\r\n timeout?: number \r\n }\r\n ): Promise<{ success: boolean; data?: unknown; error?: string }> {\r\n this.log('info', 'Requesting actions');\r\n return services.getActions(this, options);\r\n }\r\n\r\n async sendComponents(\r\n components: any[],\r\n ) {\r\n this.log('info', 'Sending components');\r\n return services.sendComponents(this, components);\r\n }\r\n\r\n // ==================== User Management Methods ====================\r\n // These methods delegate to user service for admin user CRUD operations\r\n\r\n /**\r\n * Create a new user\r\n * Delegates to users service\r\n */\r\n async createUser(\r\n username: string,\r\n password: string,\r\n email?: string,\r\n fullname?: string,\r\n role?: string,\r\n userInfo?: Record<string, unknown>,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n this.log('info', 'Creating user:', username);\r\n return services.createUser(this, username, password, email, fullname, role, userInfo, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing user\r\n * Delegates to users service\r\n */\r\n async updateUser(\r\n id: number,\r\n updates: {\r\n password?: string;\r\n email?: string;\r\n fullname?: string;\r\n role?: string;\r\n userInfo?: Record<string, unknown>;\r\n },\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n this.log('info', 'Updating user:', id);\r\n return services.updateUser(this, id, updates, timeout);\r\n }\r\n\r\n /**\r\n * Delete a user\r\n * Delegates to users service\r\n */\r\n async deleteUser(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\r\n this.log('info', 'Deleting user:', id);\r\n return services.deleteUser(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all users\r\n * Delegates to users service\r\n */\r\n async getAllUsers(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; users?: services.User[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all users');\r\n return services.getAllUsers(this, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific user by username\r\n * Delegates to users service\r\n */\r\n async getUser(\r\n username: string,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; user?: services.User; message?: string }> {\r\n this.log('info', 'Fetching user:', username);\r\n return services.getUser(this, username, timeout);\r\n }\r\n\r\n /**\r\n * Query users with filters, limit, and sort\r\n * Delegates to users service\r\n */\r\n async queryUsers(\r\n options: services.QueryUsersOptions = {},\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; users?: services.User[]; count?: number; message?: string }> {\r\n this.log('info', 'Querying users with filters:', options.filters);\r\n return services.queryUsers(this, options, timeout);\r\n }\r\n\r\n // ==================== Dashboard Management Methods ====================\r\n // These methods delegate to dashboard service for admin dashboard CRUD operations\r\n\r\n /**\r\n * Create a new dashboard\r\n * Delegates to dashboards service\r\n */\r\n async createDashboard(\r\n options: services.CreateDashboardOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; dashboardId?: string; dashboard?: services.DSLRendererProps }> {\r\n this.log('info', 'Creating dashboard:', options.dashboardId, options.projectId);\r\n return services.createDashboard(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing dashboard\r\n * Delegates to dashboards service\r\n */\r\n async updateDashboard(\r\n options: services.UpdateDashboardOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: services.DSLRendererProps }> {\r\n this.log('info', 'Updating dashboard:', options.id);\r\n return services.updateDashboard(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Delete a dashboard\r\n * Delegates to dashboards service\r\n */\r\n async deleteDashboard(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n this.log('info', 'Deleting dashboard:', id);\r\n return services.deleteDashboard(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all dashboards\r\n * Delegates to dashboards service\r\n */\r\n async getAllDashboards(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; dashboards?: services.Dashboard[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all dashboards');\r\n return services.getAllDashboards(this, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific dashboard by ID\r\n * Delegates to dashboards service\r\n */\r\n async getDashboard(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; id?: number; dashboardId?: string; dashboard?: services.DSLRendererProps; message?: string }> {\r\n this.log('info', 'Fetching dashboard:', id);\r\n return services.getDashboard(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Query dashboards with filters\r\n * Delegates to dashboards service\r\n */\r\n async queryDashboards(\r\n options?: services.QueryDashboardsOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; dashboards?: services.Dashboard[]; count?: number; message?: string }> {\r\n this.log('info', 'Querying dashboards with filters:', options?.filters);\r\n return services.queryDashboards(this, options, timeout);\r\n }\r\n\r\n // ==================== Bookmark Management Methods ====================\r\n // These methods delegate to bookmark service for bookmark CRUD operations\r\n\r\n /**\r\n * Create a new bookmark\r\n * Delegates to bookmarks service\r\n */\r\n async createBookmark(\r\n options: services.CreateBookmarkOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\r\n this.log('info', 'Creating bookmark for user:', options.userId);\r\n return services.createBookmark(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing bookmark\r\n * Delegates to bookmarks service\r\n */\r\n async updateBookmark(\r\n options: services.UpdateBookmarkOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\r\n this.log('info', 'Updating bookmark:', options.id);\r\n return services.updateBookmark(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Delete a bookmark\r\n * Delegates to bookmarks service\r\n */\r\n async deleteBookmark(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\r\n this.log('info', 'Deleting bookmark:', id);\r\n return services.deleteBookmark(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all bookmarks\r\n * Delegates to bookmarks service\r\n */\r\n async getAllBookmarks(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all bookmarks');\r\n return services.getAllBookmarks(this, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific bookmark by ID\r\n * Delegates to bookmarks service\r\n */\r\n async getBookmark(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark; message?: string }> {\r\n this.log('info', 'Fetching bookmark:', id);\r\n return services.getBookmark(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Query bookmarks with filters, limit, and sort\r\n * Delegates to bookmarks service\r\n */\r\n async queryBookmarks(\r\n options: services.QueryBookmarksOptions = {},\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark[]; count?: number; message?: string }> {\r\n this.log('info', 'Querying bookmarks with filters:', options.filters);\r\n return services.queryBookmarks(this, options, timeout);\r\n }\r\n\r\n // ==================== Report Management Methods ====================\r\n // These methods delegate to report service for admin report CRUD operations\r\n\r\n /**\r\n * Create a new report\r\n * Delegates to reports service\r\n */\r\n async createReport(\r\n options: services.CreateReportOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; reportId?: string; report?: services.ReportDSLRendererProps }> {\r\n this.log('info', 'Creating report:', options.reportId);\r\n return services.createReport(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing report\r\n * Delegates to reports service\r\n */\r\n async updateReport(\r\n options: services.UpdateReportOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: services.ReportDSLRendererProps }> {\r\n this.log('info', 'Updating report:', options.id);\r\n return services.updateReport(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Delete a report\r\n * Delegates to reports service\r\n */\r\n async deleteReport(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n this.log('info', 'Deleting report:', id);\r\n return services.deleteReport(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all reports\r\n * Delegates to reports service\r\n */\r\n async getAllReports(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; reports?: services.Report[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all reports');\r\n return services.getAllReports(this, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific report by ID\r\n * Delegates to reports service\r\n */\r\n async getReport(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; id?: number; reportId?: string; report?: services.ReportDSLRendererProps; message?: string }> {\r\n this.log('info', 'Fetching report:', id);\r\n return services.getReport(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Query reports with filters\r\n * Delegates to reports service\r\n */\r\n async queryReports(\r\n options?: services.QueryReportsOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; reports?: services.Report[]; count?: number; message?: string }> {\r\n this.log('info', 'Querying reports with filters:', options?.filters);\r\n return services.queryReports(this, options, timeout);\r\n }\r\n\r\n // ==================== UI Management Methods ====================\r\n // These methods delegate to uis service for admin UI CRUD operations\r\n\r\n /**\r\n * Create a new UI\r\n * Delegates to uis service\r\n */\r\n async createUI(\r\n options: services.CreateUIOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps }> {\r\n this.log('info', 'Creating UI:', options.uiId);\r\n return services.createUI(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing UI\r\n * Delegates to uis service\r\n */\r\n async updateUI(\r\n options: services.UpdateUIOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps }> {\r\n this.log('info', 'Updating UI:', options.id);\r\n return services.updateUI(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Delete a UI\r\n * Delegates to uis service\r\n */\r\n async deleteUI(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\r\n this.log('info', 'Deleting UI:', id);\r\n return services.deleteUI(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all UIs\r\n * Delegates to uis service\r\n */\r\n async getAllUIs(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; uis?: services.UI[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all UIs');\r\n return services.getAllUIs(this, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific UI by ID\r\n * Delegates to uis service\r\n */\r\n async getUI(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps; message?: string }> {\r\n this.log('info', 'Fetching UI:', id);\r\n return services.getUI(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Query UIs with filters\r\n * Delegates to uis service\r\n */\r\n async queryUIs(\r\n options?: services.QueryUIsOptions,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; uis?: services.UI[]; count?: number; message?: string }> {\r\n this.log('info', 'Querying UIs with filters:', options?.filters);\r\n return services.queryUIs(this, options, timeout);\r\n }\r\n\r\n // ==================== KB Nodes (Knowledge Base) Management Methods ====================\r\n // These methods delegate to kb-nodes service for knowledge base CRUD operations\r\n\r\n /**\r\n * Create a new knowledge base node\r\n * Delegates to kb-nodes service\r\n */\r\n async createKbNode(\r\n title: string,\r\n content: string,\r\n createdBy: number,\r\n category?: string,\r\n tags?: string[],\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; node?: services.KbNode }> {\r\n this.log('info', 'Creating KB node:', title);\r\n return services.createKbNode(this, title, content, createdBy, category, tags, timeout);\r\n }\r\n\r\n /**\r\n * Update an existing knowledge base node\r\n * Delegates to kb-nodes service\r\n */\r\n async updateKbNode(\r\n id: number,\r\n updatedBy: number,\r\n updates: {\r\n title?: string;\r\n content?: string;\r\n category?: string;\r\n tags?: string[];\r\n },\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string; node?: services.KbNode }> {\r\n this.log('info', 'Updating KB node:', id);\r\n return services.updateKbNode(this, id, updatedBy, updates, timeout);\r\n }\r\n\r\n /**\r\n * Delete a knowledge base node\r\n * Delegates to kb-nodes service\r\n */\r\n async deleteKbNode(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; message?: string }> {\r\n this.log('info', 'Deleting KB node:', id);\r\n return services.deleteKbNode(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Get all knowledge base nodes\r\n * Delegates to kb-nodes service\r\n */\r\n async getAllKbNodes(\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching all KB nodes');\r\n return services.getAllKbNodes(this, limit, offset, timeout);\r\n }\r\n\r\n /**\r\n * Get a specific knowledge base node by ID\r\n * Delegates to kb-nodes service\r\n */\r\n async getKbNode(\r\n id: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; node?: services.KbNode; message?: string }> {\r\n this.log('info', 'Fetching KB node:', id);\r\n return services.getKbNode(this, id, timeout);\r\n }\r\n\r\n /**\r\n * Search knowledge base nodes with full-text search and filters\r\n * Delegates to kb-nodes service\r\n */\r\n async searchKbNodes(\r\n options: services.SearchKbNodesOptions = {},\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; message?: string }> {\r\n this.log('info', 'Searching KB nodes with query:', options.query);\r\n return services.searchKbNodes(this, options, timeout);\r\n }\r\n\r\n /**\r\n * Get knowledge base nodes by category\r\n * Delegates to kb-nodes service\r\n */\r\n async getKbNodesByCategory(\r\n category: string,\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; category?: string; message?: string }> {\r\n this.log('info', 'Fetching KB nodes by category:', category);\r\n return services.getKbNodesByCategory(this, category, limit, offset, timeout);\r\n }\r\n\r\n /**\r\n * Get knowledge base nodes by user (creator)\r\n * Delegates to kb-nodes service\r\n */\r\n async getKbNodesByUser(\r\n userId: number,\r\n limit?: number,\r\n offset?: number,\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; userId?: number; message?: string }> {\r\n this.log('info', 'Fetching KB nodes by user:', userId);\r\n return services.getKbNodesByUser(this, userId, limit, offset, timeout);\r\n }\r\n\r\n /**\r\n * Get all unique categories from knowledge base nodes\r\n * Delegates to kb-nodes service\r\n */\r\n async getKbNodeCategories(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; categories?: string[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching KB node categories');\r\n return services.getKbNodeCategories(this, timeout);\r\n }\r\n\r\n /**\r\n * Get all unique tags from knowledge base nodes\r\n * Delegates to kb-nodes service\r\n */\r\n async getKbNodeTags(\r\n timeout?: number\r\n ): Promise<{ success: boolean; error?: string; tags?: string[]; count?: number; message?: string }> {\r\n this.log('info', 'Fetching KB node tags');\r\n return services.getKbNodeTags(this, timeout);\r\n }\r\n\r\n /**\r\n * Internal logging\r\n */\r\n private log(level: 'info' | 'warn' | 'error' | 'debug', ...args: any[]): void {\r\n if (!this.config.debug && level === 'debug') {\r\n return;\r\n }\r\n console[level]('[SuperAtom]', ...args);\r\n }\r\n}\r\n","/**\r\n * Component mount function type\r\n */\r\nexport type MountFunction = (\r\n Component: any,\r\n container: HTMLElement,\r\n props?: Record<string, any>\r\n) => { unmount: () => void };\r\n\r\n/**\r\n * Components registry interface\r\n */\r\nexport interface ComponentsRegistry {\r\n [key: string]: any;\r\n mount: MountFunction;\r\n}\r\n\r\n/**\r\n * SuperAtom global interface\r\n */\r\nexport interface SuperAtomGlobal {\r\n COMPONENTS?: ComponentsRegistry;\r\n wsClient?: any;\r\n runtime?: {\r\n componentsLoaded?: () => void;\r\n };\r\n}\r\n\r\ndeclare global {\r\n interface Window {\r\n SUPERATOM?: SuperAtomGlobal;\r\n SA?: SuperAtomGlobal;\r\n }\r\n}\r\n\r\n/**\r\n * Setup function to register components with SuperAtom\r\n * This makes components available to the runtime for dynamic rendering\r\n */\r\nexport function setup(components: ComponentsRegistry): void {\r\n // Initialize global namespace\r\n if (typeof window === 'undefined') {\r\n throw new Error('setup() can only be called in a browser environment');\r\n }\r\n\r\n window.SUPERATOM = window.SUPERATOM || {};\r\n window.SA = window.SUPERATOM; // Alias for convenience\r\n\r\n // Register components\r\n window.SUPERATOM.COMPONENTS = components;\r\n\r\n // Notify runtime that components are loaded\r\n if (window.SUPERATOM.runtime?.componentsLoaded) {\r\n window.SUPERATOM.runtime.componentsLoaded();\r\n }\r\n}\r\n\r\n/**\r\n * Get registered components\r\n */\r\nexport function getComponents(): ComponentsRegistry | undefined {\r\n if (typeof window === 'undefined') {\r\n return undefined;\r\n }\r\n return window.SUPERATOM?.COMPONENTS;\r\n}\r\n\r\n/**\r\n * Get a specific component by name\r\n */\r\nexport function getComponent(name: string): any {\r\n if (typeof window === 'undefined') {\r\n return undefined;\r\n }\r\n return window.SUPERATOM?.COMPONENTS?.[name];\r\n}\r\n\r\n/**\r\n * Check if components are registered\r\n */\r\nexport function hasComponents(): boolean {\r\n if (typeof window === 'undefined') {\r\n return false;\r\n }\r\n return !!window.SUPERATOM?.COMPONENTS;\r\n}\r\n","/**\r\n * @superatom/sdk-web\r\n * SuperAtom Web SDK - TypeScript SDK for browser-based WebSocket communication\r\n */\r\n\r\nexport const SDK_VERSION = '0.1.0';\r\n\r\n// Export client\r\nexport { SuperatomClient } from './client';\r\n\r\n// Export schemas and types\r\nexport type {\r\n Message,\r\n MessageParticipant,\r\n // Auth\r\n AuthLoginPayload,\r\n AuthLoginRequestMessage,\r\n AuthLoginResponsePayload,\r\n AuthLoginResponseMessage,\r\n AuthVerifyPayload,\r\n AuthVerifyRequestMessage,\r\n AuthVerifyResponsePayload,\r\n AuthVerifyResponseMessage,\r\n // User Prompt\r\n UserPromptRequestPayload,\r\n UserPromptRequestMessage,\r\n UserPromptResponsePayload,\r\n UserPromptResponseMessage,\r\n Component,\r\n // User Prompt Suggestions\r\n UserPromptSuggestionsRequestPayload,\r\n UserPromptSuggestionsRequestMessage,\r\n UserPromptSuggestionsResponsePayload,\r\n UserPromptSuggestionsResponseMessage,\r\n // Bundle\r\n BundleRequestPayload,\r\n BundleRequestMessage,\r\n BundleChunkPayload,\r\n BundleChunkMessage,\r\n BundleErrorPayload,\r\n BundleErrorMessage,\r\n // Data\r\n DataRequestPayload,\r\n DataRequestMessage,\r\n DataResponsePayload,\r\n DataResponseMessage,\r\n // UI Logs\r\n UILogEntry,\r\n UILogsPayload,\r\n UILogsMessage,\r\n // Actions\r\n ActionsRequestPayload,\r\n ActionsRequestMessage,\r\n ActionsResponsePayload,\r\n ActionsResponseMessage,\r\n // Components\r\n ComponentsSendPayload,\r\n ComponentsSendMessage,\r\n // KB Nodes\r\n KbNodeData,\r\n KbNodesQueryFilters,\r\n KbNodesRequestPayload,\r\n KbNodesRequestMessage,\r\n KbNodesResponsePayload,\r\n KbNodesResponseMessage,\r\n // Config\r\n ClientConfig,\r\n ResolvedClientConfig,\r\n} from './types';\r\n\r\nexport {\r\n MessageSchema,\r\n MessageParticipantSchema,\r\n // Auth\r\n AuthLoginPayloadSchema,\r\n AuthLoginRequestMessageSchema,\r\n AuthLoginResponsePayloadSchema,\r\n AuthLoginResponseMessageSchema,\r\n AuthVerifyPayloadSchema,\r\n AuthVerifyRequestMessageSchema,\r\n AuthVerifyResponsePayloadSchema,\r\n AuthVerifyResponseMessageSchema,\r\n // User Prompt\r\n UserPromptRequestPayloadSchema,\r\n UserPromptRequestMessageSchema,\r\n UserPromptResponsePayloadSchema,\r\n UserPromptResponseMessageSchema,\r\n ComponentSchema,\r\n // User Prompt Suggestions\r\n UserPromptSuggestionsRequestPayloadSchema,\r\n UserPromptSuggestionsRequestMessageSchema,\r\n UserPromptSuggestionsResponsePayloadSchema,\r\n UserPromptSuggestionsResponseMessageSchema,\r\n // Bundle\r\n BundleRequestPayloadSchema,\r\n BundleRequestMessageSchema,\r\n BundleChunkPayloadSchema,\r\n BundleChunkMessageSchema,\r\n BundleErrorPayloadSchema,\r\n BundleErrorMessageSchema,\r\n // Data\r\n DataRequestPayloadSchema,\r\n DataRequestMessageSchema,\r\n DataResponsePayloadSchema,\r\n DataResponseMessageSchema,\r\n // UI Logs\r\n UILogEntrySchema,\r\n UILogsPayloadSchema,\r\n UILogsMessageSchema,\r\n // Actions\r\n ActionsRequestPayloadSchema,\r\n ActionsRequestMessageSchema,\r\n ActionsResponsePayloadSchema,\r\n ActionsResponseMessageSchema,\r\n // Components\r\n ComponentsSendPayloadSchema,\r\n ComponentsSendMessageSchema,\r\n // KB Nodes\r\n KbNodeDataSchema,\r\n KbNodesQueryFiltersSchema,\r\n KbNodesRequestPayloadSchema,\r\n KbNodesRequestMessageSchema,\r\n KbNodesResponsePayloadSchema,\r\n KbNodesResponseMessageSchema,\r\n // Config\r\n ClientConfigSchema,\r\n} from './types';\r\n\r\n// Export setup utilities\r\nexport type { ComponentsRegistry, MountFunction, SuperAtomGlobal } from './setup';\r\nexport { setup, getComponents, getComponent, hasComponents } from './setup';\r\n\r\n// Export services (for advanced usage - users can call services directly if needed)\r\nexport * as services from './services';\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/services/dashboards/types.ts","../src/services/reports/types.ts","../src/types.ts","../src/services/index.ts","../src/services/auth.ts","../src/services/userPrompt.ts","../src/services/bundle.ts","../src/services/data.ts","../src/services/component.ts","../src/services/users.ts","../src/services/dashboards/index.ts","../src/services/reports/index.ts","../src/services/bookmarks/index.ts","../src/services/actions.ts","../src/services/uis/index.ts","../src/services/kb-nodes.ts","../src/services/dash-comp.ts","../src/client.ts","../src/setup.ts","../src/index.ts"],"names":["ExpressionSchema","z","BindingSchema","ForDirectiveSchema","QuerySpecSchema","UIElementSchema","UIComponentSchema","DSLRendererPropsSchema"],"mappings":"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","file":"index.js","sourcesContent":["import { z } from 'zod';\n\n// ==================== Dashboard DSL Schemas ====================\n\n// Expression schema for dynamic values\nexport const ExpressionSchema = z.object({\n $exp: z.string(),\n $deps: z.array(z.string()).optional(),\n});\n\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n// Binding schema for data binding\nexport const BindingSchema = z.object({\n $bind: z.string(),\n $transform: z\n .array(\n z.object({\n name: z.string(),\n args: z.array(z.any()).optional(),\n }),\n )\n .optional(),\n});\n\nexport type Binding = z.infer<typeof BindingSchema>;\n\n// For directive schema\nexport const ForDirectiveSchema = z.object({\n in: z.union([ExpressionSchema, BindingSchema, z.string()]),\n as: z.string(),\n key: z.string().optional(),\n index: z.string().optional(),\n});\n\nexport type ForDirective = z.infer<typeof ForDirectiveSchema>;\n\n// Query specification schema\nexport const QuerySpecSchema = z.object({\n graphql: z.string().optional(),\n sql: z.string().optional(),\n variables: z.record(z.string(), z.any()).optional(),\n params: z.record(z.string(), z.any()).optional(),\n key: z.string().optional(),\n refetchPolicy: z\n .enum(['cache-first', 'network-only', 'cache-and-network'])\n .optional(),\n dependencies: z.array(z.string()).optional(),\n});\n\nexport type QuerySpec = z.infer<typeof QuerySpecSchema>;\n\n// UI Element schema\nexport const UIElementSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n id: z.string(),\n type: z.string(),\n key: z.union([z.string(), ExpressionSchema]).optional(),\n props: z.record(z.string(), z.any()).optional(),\n query: QuerySpecSchema.optional(),\n if: ExpressionSchema.optional(),\n elseIf: ExpressionSchema.optional(),\n for: ForDirectiveSchema.optional(),\n 'link-to': z\n .union([\n z.string(),\n ExpressionSchema,\n BindingSchema,\n z.object({\n ui: z.union([z.string(), ExpressionSchema, BindingSchema]),\n params: z.record(z.string(), z.any()).optional(),\n }),\n ])\n .optional(),\n _meta: z\n .object({\n id: z.string().optional(),\n version: z.string().optional(),\n created: z.string().optional(),\n lastModified: z.string().optional(),\n })\n .optional(),\n children: z.any().optional(),\n else: UIElementSchema.optional(),\n slots: z\n .record(z.string(), z.union([UIElementSchema, z.array(UIElementSchema)]))\n .optional(),\n platform: z\n .object({\n web: z.any().optional(),\n ios: z.any().optional(),\n android: z.any().optional(),\n })\n .optional(),\n })\n);\n\nexport type UIElement = z.infer<typeof UIElementSchema>;\n\n// Page schema for multi-page dashboards\nexport const PageSchema = z.object({\n id: z.string(),\n name: z.string(),\n order: z.number(),\n icon: z.string().optional(),\n render: UIElementSchema,\n});\n\nexport type Page = z.infer<typeof PageSchema>;\n\n// UI Component schema\nexport const UIComponentSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n props: z.record(z.string(), z.any()).optional(),\n states: z.record(z.string(), z.any()).optional(),\n methods: z\n .record(\n z.string(),\n z.object({\n fn: z.string(),\n params: z.record(z.string(), z.any()).optional(),\n }),\n )\n .optional(),\n effects: z\n .array(\n z.object({\n fn: z.string(),\n deps: z.array(z.string()).optional(),\n }),\n )\n .optional(),\n data: z.record(z.string(), z.any()).optional(),\n // OLD: Single page (optional for backward compatibility)\n render: UIElementSchema.optional(),\n // NEW: Multi-page support\n pages: z.array(PageSchema).optional(),\n defaultPageId: z.string().optional(),\n query: QuerySpecSchema.optional(),\n});\n\nexport type UIComponent = z.infer<typeof UIComponentSchema>;\n\n// DSL Renderer Props schema\nexport const DSLRendererPropsSchema = z.object({\n dsl: UIComponentSchema,\n data: z.record(z.string(), z.any()).optional(),\n context: z.record(z.string(), z.any()).optional(),\n});\n\nexport type DSLRendererProps = z.infer<typeof DSLRendererPropsSchema>;\n","import { z } from 'zod';\n\n// ==================== Report DSL Schemas ====================\n\n// Expression schema for dynamic values\nexport const ExpressionSchema = z.object({\n $exp: z.string(),\n $deps: z.array(z.string()).optional(),\n});\n\nexport type Expression = z.infer<typeof ExpressionSchema>;\n\n// Binding schema for data binding\nexport const BindingSchema = z.object({\n $bind: z.string(),\n $transform: z\n .array(\n z.object({\n name: z.string(),\n args: z.array(z.any()).optional(),\n }),\n )\n .optional(),\n});\n\nexport type Binding = z.infer<typeof BindingSchema>;\n\n// For directive schema\nexport const ForDirectiveSchema = z.object({\n in: z.union([ExpressionSchema, BindingSchema, z.string()]),\n as: z.string(),\n key: z.string().optional(),\n index: z.string().optional(),\n});\n\nexport type ForDirective = z.infer<typeof ForDirectiveSchema>;\n\n// Query specification schema\nexport const QuerySpecSchema = z.object({\n graphql: z.string().optional(),\n sql: z.string().optional(),\n variables: z.record(z.string(), z.any()).optional(),\n params: z.record(z.string(), z.any()).optional(),\n key: z.string().optional(),\n refetchPolicy: z\n .enum(['cache-first', 'network-only', 'cache-and-network'])\n .optional(),\n dependencies: z.array(z.string()).optional(),\n});\n\nexport type QuerySpec = z.infer<typeof QuerySpecSchema>;\n\n// UI Element schema\nexport const UIElementSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n id: z.string(),\n type: z.string(),\n key: z.union([z.string(), ExpressionSchema]).optional(),\n props: z.record(z.string(), z.any()).optional(),\n query: QuerySpecSchema.optional(),\n if: ExpressionSchema.optional(),\n elseIf: ExpressionSchema.optional(),\n for: ForDirectiveSchema.optional(),\n 'link-to': z\n .union([\n z.string(),\n ExpressionSchema,\n BindingSchema,\n z.object({\n ui: z.union([z.string(), ExpressionSchema, BindingSchema]),\n params: z.record(z.string(), z.any()).optional(),\n }),\n ])\n .optional(),\n _meta: z\n .object({\n id: z.string().optional(),\n version: z.string().optional(),\n created: z.string().optional(),\n lastModified: z.string().optional(),\n })\n .optional(),\n children: z.any().optional(),\n else: UIElementSchema.optional(),\n slots: z\n .record(z.string(), z.union([UIElementSchema, z.array(UIElementSchema)]))\n .optional(),\n platform: z\n .object({\n web: z.any().optional(),\n ios: z.any().optional(),\n android: z.any().optional(),\n })\n .optional(),\n })\n);\n\nexport type UIElement = z.infer<typeof UIElementSchema>;\n\n// UI Component schema\nexport const UIComponentSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n props: z.record(z.string(), z.any()).optional(),\n states: z.record(z.string(), z.any()).optional(),\n methods: z\n .record(\n z.string(),\n z.object({\n fn: z.string(),\n params: z.record(z.string(), z.any()).optional(),\n }),\n )\n .optional(),\n effects: z\n .array(\n z.object({\n fn: z.string(),\n deps: z.array(z.string()).optional(),\n }),\n )\n .optional(),\n data: z.record(z.string(), z.any()).optional(),\n // Made optional to align with dashboards schema (dashboards use pages instead)\n render: UIElementSchema.optional(),\n query: QuerySpecSchema.optional(),\n});\n\nexport type UIComponent = z.infer<typeof UIComponentSchema>;\n\n// DSL Renderer Props schema\nexport const DSLRendererPropsSchema = z.object({\n dsl: UIComponentSchema,\n data: z.record(z.string(), z.any()).optional(),\n context: z.record(z.string(), z.any()).optional(),\n});\n\nexport type DSLRendererProps = z.infer<typeof DSLRendererPropsSchema>;\n","import { z } from 'zod';\n\n/**\n * Message participant schema (from/to)\n * Synced with sdk-nodejs/src/types.ts\n */\nexport const MessageParticipantSchema = z.object({\n id: z.string().optional(),\n type: z.string().optional(),\n});\n\nexport type MessageParticipant = z.infer<typeof MessageParticipantSchema>;\n\n/**\n * Base message schema\n * Synced with sdk-nodejs/src/types.ts\n */\nexport const MessageSchema = z.object({\n id: z.string(),\n type: z.string(),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: z.unknown(),\n});\n\nexport type Message = z.infer<typeof MessageSchema>;\n\n// ==================== Authentication Messages ====================\n\n/**\n * Authentication login request payload schema\n * Synced with sdk-nodejs: AuthLoginRequestPayloadSchema\n */\nexport const AuthLoginPayloadSchema = z.object({\n login_data: z.string(), // Base64 encoded login data (username + SHA-1 hashed password)\n});\n\nexport type AuthLoginPayload = z.infer<typeof AuthLoginPayloadSchema>;\n\n/**\n * Authentication login request message schema\n * Synced with sdk-nodejs: AuthLoginRequestMessageSchema\n */\nexport const AuthLoginRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('AUTH_LOGIN_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: AuthLoginPayloadSchema,\n});\n\nexport type AuthLoginRequestMessage = z.infer<typeof AuthLoginRequestMessageSchema>;\n\n/**\n * Authentication login response payload schema\n * Synced with sdk-nodejs handler: auth-login-requests.ts\n */\nexport const AuthLoginResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.unknown().optional(), // User ID or additional auth data\n});\n\nexport type AuthLoginResponsePayload = z.infer<typeof AuthLoginResponsePayloadSchema>;\n\n/**\n * Authentication login response message schema\n */\nexport const AuthLoginResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('AUTH_LOGIN_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: AuthLoginResponsePayloadSchema,\n});\n\nexport type AuthLoginResponseMessage = z.infer<typeof AuthLoginResponseMessageSchema>;\n\n/**\n * Authentication verify request payload schema\n * Synced with sdk-nodejs: AuthVerifyRequestPayloadSchema\n */\nexport const AuthVerifyPayloadSchema = z.object({\n token: z.string(), // Base64 encoded authentication token\n});\n\nexport type AuthVerifyPayload = z.infer<typeof AuthVerifyPayloadSchema>;\n\n/**\n * Authentication verify request message schema\n * Synced with sdk-nodejs: AuthVerifyRequestMessageSchema\n */\nexport const AuthVerifyRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('AUTH_VERIFY_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: AuthVerifyPayloadSchema,\n});\n\nexport type AuthVerifyRequestMessage = z.infer<typeof AuthVerifyRequestMessageSchema>;\n\n/**\n * Authentication verify response payload schema\n * Synced with sdk-nodejs handler: auth-verify-request.ts\n */\nexport const AuthVerifyResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.unknown().optional(),\n});\n\nexport type AuthVerifyResponsePayload = z.infer<typeof AuthVerifyResponsePayloadSchema>;\n\n/**\n * Authentication verify response message schema\n */\nexport const AuthVerifyResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('AUTH_VERIFY_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: AuthVerifyResponsePayloadSchema,\n});\n\nexport type AuthVerifyResponseMessage = z.infer<typeof AuthVerifyResponseMessageSchema>;\n\n// ==================== User Prompt Messages ====================\n\n/**\n * User prompt request payload schema\n * Synced with sdk-nodejs: UserPromptRequestPayloadSchema\n */\nexport const UserPromptRequestPayloadSchema = z.object({\n prompt: z.string(),\n SA_RUNTIME: z.object({\n threadId: z.string(),\n uiBlockId: z.string(),\n }).optional(),\n responseMode: z.enum(['component', 'text']).optional(),\n});\n\nexport type UserPromptRequestPayload = z.infer<typeof UserPromptRequestPayloadSchema>;\n\n/**\n * User prompt request message schema\n * Synced with sdk-nodejs: UserPromptRequestMessageSchema\n */\nexport const UserPromptRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USER_PROMPT_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UserPromptRequestPayloadSchema,\n});\n\nexport type UserPromptRequestMessage = z.infer<typeof UserPromptRequestMessageSchema>;\n\n/**\n * Component schema (from backend)\n * Synced with sdk-nodejs: ComponentSchema\n */\nexport const ComponentSchema = z.object({\n id: z.string(),\n name: z.string(),\n type: z.string(),\n description: z.string(),\n props: z.object({\n query: z.string().optional(),\n title: z.string().optional(),\n description: z.string().optional(),\n config: z.record(z.string(), z.unknown()).optional(),\n }),\n category: z.string().optional(),\n keywords: z.array(z.string()).optional(),\n});\n\nexport type Component = z.infer<typeof ComponentSchema>;\n\n/**\n * User prompt response payload schema\n * Synced with sdk-nodejs handler: user-prompt-request.ts\n */\nexport const UserPromptResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n component: ComponentSchema.optional(),\n }).optional(),\n uiBlockId: z.string().optional(),\n threadId: z.string().optional(),\n});\n\nexport type UserPromptResponsePayload = z.infer<typeof UserPromptResponsePayloadSchema>;\n\n/**\n * User prompt response message schema\n */\nexport const UserPromptResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USER_PROMPT_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UserPromptResponsePayloadSchema,\n});\n\nexport type UserPromptResponseMessage = z.infer<typeof UserPromptResponseMessageSchema>;\n\n// ==================== User Prompt Suggestions Messages ====================\n\n/**\n * User prompt suggestions request payload schema\n * Synced with sdk-nodejs: UserPromptSuggestionsPayloadSchema\n */\nexport const UserPromptSuggestionsRequestPayloadSchema = z.object({\n prompt: z.string(),\n limit: z.number().int().positive().default(5),\n});\n\nexport type UserPromptSuggestionsRequestPayload = z.infer<typeof UserPromptSuggestionsRequestPayloadSchema>;\n\n/**\n * User prompt suggestions request message schema\n * Synced with sdk-nodejs: UserPromptSuggestionsMessageSchema\n */\nexport const UserPromptSuggestionsRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USER_PROMPT_SUGGESTIONS_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UserPromptSuggestionsRequestPayloadSchema,\n});\n\nexport type UserPromptSuggestionsRequestMessage = z.infer<typeof UserPromptSuggestionsRequestMessageSchema>;\n\n/**\n * User prompt suggestions response payload schema\n * Synced with sdk-nodejs handler: user-prompt-suggestions.ts\n */\nexport const UserPromptSuggestionsResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n prompt: z.string(),\n suggestions: z.array(ComponentSchema),\n count: z.number(),\n message: z.string().optional(),\n }).optional(),\n});\n\nexport type UserPromptSuggestionsResponsePayload = z.infer<typeof UserPromptSuggestionsResponsePayloadSchema>;\n\n/**\n * User prompt suggestions response message schema\n */\nexport const UserPromptSuggestionsResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USER_PROMPT_SUGGESTIONS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UserPromptSuggestionsResponsePayloadSchema,\n});\n\nexport type UserPromptSuggestionsResponseMessage = z.infer<typeof UserPromptSuggestionsResponseMessageSchema>;\n\n// ==================== Dashboard Component Messages ====================\n\n/**\n * Dashboard component request payload schema\n * Synced with sdk-nodejs: DashCompRequestPayloadSchema\n */\nexport const DashCompRequestPayloadSchema = z.object({\n prompt: z.string(),\n SA_RUNTIME: z.object({\n threadId: z.string().optional(),\n uiBlockId: z.string().optional(),\n }).optional(),\n});\n\nexport type DashCompRequestPayload = z.infer<typeof DashCompRequestPayloadSchema>;\n\n/**\n * Dashboard component request message schema\n * Synced with sdk-nodejs: DashCompRequestMessageSchema\n */\nexport const DashCompRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DASH_COMP_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DashCompRequestPayloadSchema,\n});\n\nexport type DashCompRequestMessage = z.infer<typeof DashCompRequestMessageSchema>;\n\n/**\n * External tool reference in component props\n */\nexport const ExternalToolSchema = z.object({\n toolId: z.string(),\n toolName: z.string(),\n action: z.enum(['get', 'create', 'update', 'delete']),\n params: z.record(z.string(), z.unknown()),\n});\n\nexport type ExternalTool = z.infer<typeof ExternalToolSchema>;\n\n/**\n * Dashboard component response payload schema\n * Synced with sdk-nodejs handler: dash-comp-request.ts\n */\nexport const DashCompResponsePayloadSchema = z.object({\n success: z.boolean(),\n errors: z.array(z.string()).optional(),\n data: z.object({\n component: ComponentSchema.optional(),\n reasoning: z.string().optional(),\n dataSource: z.enum(['database', 'external_tool', 'none']).optional(),\n }).optional(),\n});\n\nexport type DashCompResponsePayload = z.infer<typeof DashCompResponsePayloadSchema>;\n\n/**\n * Dashboard component response message schema\n */\nexport const DashCompResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DASH_COMP_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DashCompResponsePayloadSchema,\n});\n\nexport type DashCompResponseMessage = z.infer<typeof DashCompResponseMessageSchema>;\n\n// ==================== Bundle Messages ====================\n\n/**\n * Bundle request payload schema\n */\nexport const BundleRequestPayloadSchema = z.object({\n devbundlereq: z.boolean().optional().default(false),\n });\n\nexport type BundleRequestPayload = z.infer<typeof BundleRequestPayloadSchema>;\n\n/**\n * Bundle request message schema\n */\nexport const BundleRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('BUNDLE_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: BundleRequestPayloadSchema,\n});\n\nexport type BundleRequestMessage = z.infer<typeof BundleRequestMessageSchema>;\n\n/**\n * Bundle chunk payload schema\n * Synced with sdk-nodejs handler: bundle-request.ts\n */\nexport const BundleChunkPayloadSchema = z.object({\n chunk: z.string(),\n chunkIndex: z.number(),\n totalChunks: z.number(),\n isComplete: z.boolean(),\n progress: z.number(),\n});\n\nexport type BundleChunkPayload = z.infer<typeof BundleChunkPayloadSchema>;\n\n/**\n * Bundle chunk message schema\n */\nexport const BundleChunkMessageSchema = z.object({\n id: z.string(),\n type: z.literal('BUNDLE_CHUNK'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: BundleChunkPayloadSchema,\n});\n\nexport type BundleChunkMessage = z.infer<typeof BundleChunkMessageSchema>;\n\n/**\n * Bundle error response payload schema\n * Synced with sdk-nodejs handler: bundle-request.ts\n */\nexport const BundleErrorPayloadSchema = z.object({\n error: z.string(),\n});\n\nexport type BundleErrorPayload = z.infer<typeof BundleErrorPayloadSchema>;\n\n/**\n * Bundle error response message schema\n */\nexport const BundleErrorMessageSchema = z.object({\n id: z.string(),\n type: z.literal('BUNDLE_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: BundleErrorPayloadSchema,\n});\n\nexport type BundleErrorMessage = z.infer<typeof BundleErrorMessageSchema>;\n\n// ==================== Data Messages ====================\n\n/**\n * Data request payload schema\n * Synced with sdk-nodejs: DataRequestPayloadSchema\n */\nexport const DataRequestPayloadSchema = z.object({\n collection: z.string(),\n op: z.string(),\n params: z.record(z.string(), z.unknown()).optional(),\n SA_RUNTIME: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type DataRequestPayload = z.infer<typeof DataRequestPayloadSchema>;\n\n/**\n * Data request message schema\n * Synced with sdk-nodejs: DataRequestMessageSchema\n */\nexport const DataRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DATA_REQ'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DataRequestPayloadSchema,\n});\n\nexport type DataRequestMessage = z.infer<typeof DataRequestMessageSchema>;\n\n/**\n * Data response payload schema\n * Synced with sdk-nodejs handler: data-request.ts\n */\nexport const DataResponsePayloadSchema = z.object({\n collection: z.string(),\n op: z.string(),\n data: z.unknown(),\n executionMs: z.number().optional(),\n error: z.string().optional(),\n});\n\nexport type DataResponsePayload = z.infer<typeof DataResponsePayloadSchema>;\n\n/**\n * Data response message schema\n */\nexport const DataResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DATA_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DataResponsePayloadSchema,\n});\n\nexport type DataResponseMessage = z.infer<typeof DataResponseMessageSchema>;\n\n// ==================== UI Logs Messages ====================\n\n/**\n * UI log entry schema\n * Synced with sdk-nodejs: UILogsPayloadSchema\n */\nexport const UILogEntrySchema = z.object({\n timestamp: z.number(),\n level: z.enum(['info', 'error', 'warn', 'debug']),\n message: z.string(),\n type: z.enum(['explanation', 'query', 'general']).optional(),\n data: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type UILogEntry = z.infer<typeof UILogEntrySchema>;\n\n/**\n * UI logs payload schema\n * Synced with sdk-nodejs: UILogsPayloadSchema\n */\nexport const UILogsPayloadSchema = z.object({\n logs: z.array(UILogEntrySchema),\n});\n\nexport type UILogsPayload = z.infer<typeof UILogsPayloadSchema>;\n\n/**\n * UI logs message schema\n * Synced with sdk-nodejs: UILogsMessageSchema\n */\nexport const UILogsMessageSchema = z.object({\n id: z.string(), // uiBlockId\n type: z.literal('UI_LOGS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UILogsPayloadSchema,\n});\n\nexport type UILogsMessage = z.infer<typeof UILogsMessageSchema>;\n\n\n// ==================== Actions Messages ====================\n\n/**\n * Actions request payload schema\n * Synced with sdk-nodejs: ActionsRequestPayloadSchema\n */\nexport const ActionsRequestPayloadSchema = z.object({\n SA_RUNTIME: z.object({\n threadId: z.string(),\n uiBlockId: z.string(),\n }).optional(),\n});\n\nexport type ActionsRequestPayload = z.infer<typeof ActionsRequestPayloadSchema>;\n\nexport const ActionsRequestMessageSchema = z.object({\n id: z.string(),\n from: MessageParticipantSchema,\n type: z.literal('ACTIONS'),\n payload: ActionsRequestPayloadSchema,\n});\n\nexport type ActionsRequestMessage = z.infer<typeof ActionsRequestMessageSchema>;\n\nexport const ActionsResponsePayloadSchema = z.object({\n success: z.boolean(),\n data: z.any().optional(),\n error: z.string().optional(),\n});\n\nexport type ActionsResponsePayload = z.infer<typeof ActionsResponsePayloadSchema>;\n\nexport const ActionsResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('ACTIONS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: ActionsResponsePayloadSchema,\n});\n\nexport type ActionsResponseMessage = z.infer<typeof ActionsResponseMessageSchema>;\n\n// ==================== Components Messages ====================\n\n/**\n * Components request payload schema\n * Synced with sdk-nodejs: ComponentsRequestPayloadSchema\n */\nexport const ComponentsSendPayloadSchema = z.object({\n components: z.array(z.any()),\n});\n\nexport type ComponentsSendPayload = z.infer<typeof ComponentsSendPayloadSchema>;\n\n/**\n * Components request message schema\n * Synced with sdk-nodejs: ComponentsRequestMessageSchema\n */\nexport const ComponentsSendMessageSchema = z.object({\n id: z.string(),\n type: z.literal('COMPONENT_LIST_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: ComponentsSendPayloadSchema,\n});\n\nexport type ComponentsSendMessage = z.infer<typeof ComponentsSendMessageSchema>;\n\n// ==================== Users Management Messages ====================\n\n/**\n * User query filters schema\n * Synced with sdk-nodejs: UserQueryFiltersSchema\n */\nexport const UserQueryFiltersSchema = z.object({\n username: z.string().optional(),\n email: z.string().optional(),\n role: z.string().optional(),\n fullname: z.string().optional(),\n});\n\nexport type UserQueryFilters = z.infer<typeof UserQueryFiltersSchema>;\n\n/**\n * Users request payload schema\n * Synced with sdk-nodejs: UsersRequestPayloadSchema\n */\nexport const UsersRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\n data: z.object({\n id: z.number().optional(),\n username: z.string().optional(),\n email: z.string().email('Invalid email format').optional(),\n password: z.string().optional(),\n fullname: z.string().optional(),\n role: z.string().optional(),\n userInfo: z.record(z.string(),z.unknown()).optional(),\n // Query operation fields\n filters: UserQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n sort: z.enum(['ASC', 'DESC']).optional(),\n }).optional(),\n});\n\nexport type UsersRequestPayload = z.infer<typeof UsersRequestPayloadSchema>;\n\n/**\n * Users request message schema\n * Synced with sdk-nodejs: UsersRequestMessageSchema\n */\nexport const UsersRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USERS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UsersRequestPayloadSchema,\n});\n\nexport type UsersRequestMessage = z.infer<typeof UsersRequestMessageSchema>;\n\n/**\n * Users response payload schema\n * Synced with sdk-nodejs handler: users.ts\n */\nexport const UsersResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n username: z.string().optional(),\n email: z.string().optional(),\n fullname: z.string().optional(),\n role: z.string().optional(),\n message: z.string().optional(),\n users: z.array(z.object({\n id: z.number(),\n username: z.string(),\n email: z.string().optional(),\n fullname: z.string().optional(),\n role: z.string().optional(),\n userInfo: z.record(z.string(), z.unknown()).optional(),\n wsIds: z.array(z.string()).optional(),\n createdAt: z.string().optional(), \n updatedAt: z.string().optional(), \n })).optional(),\n user: z.object({\n id: z.number(),\n username: z.string(),\n email: z.string().optional(),\n fullname: z.string().optional(),\n role: z.string().optional(),\n userInfo: z.record(z.string(), z.unknown()).optional(), \n wsIds: z.array(z.string()).optional(), \n createdAt: z.string().optional(), \n updatedAt: z.string().optional(),\n }).optional(),\n count: z.number().optional(),\n }).optional(),\n});\n\nexport type UsersResponsePayload = z.infer<typeof UsersResponsePayloadSchema>;\n\n/**\n * Users response message schema\n */\nexport const UsersResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('USERS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UsersResponsePayloadSchema,\n});\n\nexport type UsersResponseMessage = z.infer<typeof UsersResponseMessageSchema>;\n\n// ==================== Dashboard DSL Schemas ====================\n\n// Import DSL schemas from dashboards module\nimport { DSLRendererPropsSchema } from './services/dashboards/types';\nexport type { DSLRendererProps } from './services/dashboards/types';\n\n// ==================== Dashboard CRUD Messages ====================\n\n/**\n * Dashboard query filters schema\n * Synced with sdk-nodejs: DashboardQueryFiltersSchema\n */\nexport const DashboardQueryFiltersSchema = z.object({\n dashboardId: z.string().optional(),\n projectId: z.string().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n name: z.string().optional(),\n published: z.boolean().optional(),\n});\n\nexport type DashboardQueryFilters = z.infer<typeof DashboardQueryFiltersSchema>;\n\n/**\n * Dashboards request payload schema\n * Synced with sdk-nodejs: DashboardsRequestPayloadSchema\n */\nexport const DashboardsRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\n data: z.object({\n id: z.number().optional(),\n dashboardId: z.string().optional(),\n projectId: z.string().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n published: z.boolean().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n dashboard: DSLRendererPropsSchema.optional(),\n // Query operation fields\n filters: DashboardQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n sort: z.enum(['ASC', 'DESC']).optional(),\n }).optional(),\n});\n\nexport type DashboardsRequestPayload = z.infer<typeof DashboardsRequestPayloadSchema>;\n\n/**\n * Dashboards request message schema\n * Synced with sdk-nodejs: DashboardsRequestMessageSchema\n */\nexport const DashboardsRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DASHBOARDS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DashboardsRequestPayloadSchema,\n});\n\nexport type DashboardsRequestMessage = z.infer<typeof DashboardsRequestMessageSchema>;\n\n/**\n * Dashboards response payload schema\n * Synced with sdk-nodejs handler: dashboards.ts\n */\nexport const DashboardsResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n dashboardId: z.string().optional(),\n dashboard: DSLRendererPropsSchema.optional(),\n dashboards: z.array(z.object({\n dashboardId: z.string(),\n dashboard: DSLRendererPropsSchema,\n })).optional(),\n count: z.number().optional(),\n message: z.string().optional(),\n }).optional(),\n});\n\nexport type DashboardsResponsePayload = z.infer<typeof DashboardsResponsePayloadSchema>;\n\n/**\n * Dashboards response message schema\n */\nexport const DashboardsResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('DASHBOARDS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: DashboardsResponsePayloadSchema,\n});\n\nexport type DashboardsResponseMessage = z.infer<typeof DashboardsResponseMessageSchema>;\n\n// ==================== Report DSL Schemas ====================\n\n// Import DSL schemas from reports module\nimport { DSLRendererPropsSchema as ReportDSLRendererPropsSchema } from './services/reports/types';\nexport type { DSLRendererProps as ReportDSLRendererProps } from './services/reports/types';\n\n// ==================== Report CRUD Messages ====================\n\n/**\n * Report query filters schema\n * Synced with sdk-nodejs: ReportQueryFiltersSchema\n */\nexport const ReportQueryFiltersSchema = z.object({\n reportId: z.string().optional(),\n projectId: z.string().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n name: z.string().optional(),\n published: z.boolean().optional(),\n});\n\nexport type ReportQueryFilters = z.infer<typeof ReportQueryFiltersSchema>;\n\n/**\n * Reports request payload schema\n * Synced with sdk-nodejs: ReportsRequestPayloadSchema\n */\nexport const ReportsRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\n data: z.object({\n id: z.number().optional(),\n reportId: z.string().optional(),\n projectId: z.string().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n published: z.boolean().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n report: ReportDSLRendererPropsSchema.optional(),\n // Query operation fields\n filters: ReportQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n sort: z.enum(['ASC', 'DESC']).optional(),\n }).optional(),\n});\n\nexport type ReportsRequestPayload = z.infer<typeof ReportsRequestPayloadSchema>;\n\n/**\n * Reports request message schema\n * Synced with sdk-nodejs: ReportsRequestMessageSchema\n */\nexport const ReportsRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('REPORTS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: ReportsRequestPayloadSchema,\n});\n\nexport type ReportsRequestMessage = z.infer<typeof ReportsRequestMessageSchema>;\n\n/**\n * Reports response payload schema\n * Synced with sdk-nodejs handler: reports.ts\n */\nexport const ReportsResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n reportId: z.string().optional(),\n report: ReportDSLRendererPropsSchema.optional(),\n reports: z.array(z.object({\n reportId: z.string(),\n report: ReportDSLRendererPropsSchema,\n })).optional(),\n count: z.number().optional(),\n message: z.string().optional(),\n }).optional(),\n});\n\nexport type ReportsResponsePayload = z.infer<typeof ReportsResponsePayloadSchema>;\n\n/**\n * Reports response message schema\n */\nexport const ReportsResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('REPORTS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: ReportsResponsePayloadSchema,\n});\n\nexport type ReportsResponseMessage = z.infer<typeof ReportsResponseMessageSchema>;\n\n// ==================== UIs CRUD Messages ====================\n\n/**\n * UI query filters schema\n * Synced with sdk-nodejs: UIQueryFiltersSchema\n */\nexport const UIQueryFiltersSchema = z.object({\n uiId: z.string().optional(),\n projectId: z.string().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n name: z.string().optional(),\n});\n\nexport type UIQueryFilters = z.infer<typeof UIQueryFiltersSchema>;\n\n/**\n * UIs request payload schema\n * Synced with sdk-nodejs: UIsRequestPayloadSchema\n */\nexport const UIsRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\n data: z.object({\n id: z.number().optional(),\n uiId: z.string().optional(),\n projectId: z.string().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n ui: DSLRendererPropsSchema.optional(),\n // Query operation fields\n filters: UIQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n sort: z.enum(['ASC', 'DESC']).optional(),\n }).optional(),\n});\n\nexport type UIsRequestPayload = z.infer<typeof UIsRequestPayloadSchema>;\n\n/**\n * UIs request message schema\n * Synced with sdk-nodejs: UIsRequestMessageSchema\n */\nexport const UIsRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('UIS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UIsRequestPayloadSchema,\n});\n\nexport type UIsRequestMessage = z.infer<typeof UIsRequestMessageSchema>;\n\n/**\n * UIs response payload schema\n * Synced with sdk-nodejs handler: uis.ts\n */\nexport const UIsResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n uiId: z.union([z.string(), z.number()]).optional(),\n ui: DSLRendererPropsSchema.optional(),\n uis: z.array(z.object({\n uiId: z.string(),\n ui: DSLRendererPropsSchema.optional(),\n })).optional(),\n count: z.number().optional(),\n message: z.string().optional(),\n }).optional(),\n});\n\nexport type UIsResponsePayload = z.infer<typeof UIsResponsePayloadSchema>;\n\n/**\n * UIs response message schema\n */\nexport const UIsResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('UIS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: UIsResponsePayloadSchema,\n});\n\nexport type UIsResponseMessage = z.infer<typeof UIsResponseMessageSchema>;\n\n// ==================== Bookmarks CRUD Messages ====================\n\n/**\n * DBUIBlock schema for database storage\n * Synced with sdk-nodejs: DBUIBlockSchema (from conversation-saver.ts)\n */\nexport const DBUIBlockSchema = z.object({\n id: z.string(),\n component: z.record(z.string(), z.any()).nullable(),\n analysis: z.string().nullable(),\n user_prompt: z.string(),\n});\n\nexport type DBUIBlock = z.infer<typeof DBUIBlockSchema>;\n\n/**\n * Bookmark data schema\n * Synced with sdk-nodejs: BookmarkDataSchema\n */\nexport const BookmarkDataSchema = z.object({\n id: z.number().optional(),\n uiblock: DBUIBlockSchema,\n created_at: z.string().optional(),\n updated_at: z.string().optional(),\n});\n\nexport type BookmarkData = z.infer<typeof BookmarkDataSchema>;\n\n/**\n * Bookmark query filters schema\n * Synced with sdk-nodejs: BookmarkQueryFiltersSchema\n */\nexport const BookmarkQueryFiltersSchema = z.object({\n userId: z.number().optional(),\n threadId: z.string().optional(),\n name: z.string().optional(),\n});\n\nexport type BookmarkQueryFilters = z.infer<typeof BookmarkQueryFiltersSchema>;\n\n/**\n * Bookmarks request payload schema\n * Synced with sdk-nodejs: BookmarksRequestPayloadSchema\n */\nexport const BookmarksRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'query']),\n data: z.object({\n id: z.number().optional(),\n userId: z.number().optional(),\n threadId: z.string().optional(),\n name: z.string().optional(),\n description: z.string().optional(),\n uiblock: DBUIBlockSchema.optional(),\n // Query operation fields\n filters: BookmarkQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n sort: z.enum(['ASC', 'DESC']).optional(),\n }).optional(),\n});\n\nexport type BookmarksRequestPayload = z.infer<typeof BookmarksRequestPayloadSchema>;\n\n/**\n * Bookmarks request message schema\n * Synced with sdk-nodejs: BookmarksRequestMessageSchema\n */\nexport const BookmarksRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('BOOKMARKS'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: BookmarksRequestPayloadSchema,\n});\n\nexport type BookmarksRequestMessage = z.infer<typeof BookmarksRequestMessageSchema>;\n\n/**\n * Bookmarks response payload schema\n * Synced with sdk-nodejs handler: bookmarks.ts\n */\nexport const BookmarksResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.union([\n BookmarkDataSchema,\n z.array(BookmarkDataSchema),\n ]).optional(),\n count: z.number().optional(),\n message: z.string().optional(),\n});\n\nexport type BookmarksResponsePayload = z.infer<typeof BookmarksResponsePayloadSchema>;\n\n/**\n * Bookmarks response message schema\n */\nexport const BookmarksResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('BOOKMARKS_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: BookmarksResponsePayloadSchema,\n});\n\nexport type BookmarksResponseMessage = z.infer<typeof BookmarksResponseMessageSchema>;\n\n// ==================== KB Nodes (Knowledge Base) CRUD Messages ====================\n\n/**\n * KB Node data schema\n * Synced with sdk-nodejs/project-setup: kb-nodes.ts\n */\nexport const KbNodeDataSchema = z.object({\n id: z.number().optional(),\n title: z.string(),\n content: z.string(),\n category: z.string().nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n createdBy: z.number(),\n updatedBy: z.number().optional(),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n});\n\nexport type KbNodeData = z.infer<typeof KbNodeDataSchema>;\n\n/**\n * KB Nodes query filters schema\n * Synced with sdk-nodejs: KbNodesQueryFiltersSchema\n */\nexport const KbNodesQueryFiltersSchema = z.object({\n query: z.string().optional(),\n category: z.string().optional(),\n tags: z.array(z.string()).optional(),\n createdBy: z.number().optional(),\n});\n\nexport type KbNodesQueryFilters = z.infer<typeof KbNodesQueryFiltersSchema>;\n\n/**\n * KB Nodes request payload schema\n * Synced with sdk-nodejs: KbNodesRequestPayloadSchema\n */\nexport const KbNodesRequestPayloadSchema = z.object({\n operation: z.enum(['create', 'update', 'delete', 'getAll', 'getOne', 'search', 'getByCategory', 'getByUser', 'getCategories', 'getTags']),\n data: z.object({\n id: z.number().optional(),\n title: z.string().optional(),\n content: z.string().optional(),\n category: z.string().optional(),\n tags: z.array(z.string()).optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n userId: z.number().optional(),\n // Query/search operation fields\n query: z.string().optional(),\n filters: KbNodesQueryFiltersSchema.optional(),\n limit: z.number().optional(),\n offset: z.number().optional(),\n }).optional(),\n});\n\nexport type KbNodesRequestPayload = z.infer<typeof KbNodesRequestPayloadSchema>;\n\n/**\n * KB Nodes request message schema\n * Synced with sdk-nodejs: KbNodesRequestMessageSchema\n */\nexport const KbNodesRequestMessageSchema = z.object({\n id: z.string(),\n type: z.literal('KB_NODES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: KbNodesRequestPayloadSchema,\n});\n\nexport type KbNodesRequestMessage = z.infer<typeof KbNodesRequestMessageSchema>;\n\n/**\n * KB Nodes response payload schema\n * Synced with sdk-nodejs handler: kb-nodes.ts\n */\nexport const KbNodesResponsePayloadSchema = z.object({\n success: z.boolean(),\n error: z.string().optional(),\n data: z.object({\n // Single node operations\n id: z.number().optional(),\n title: z.string().optional(),\n content: z.string().optional(),\n category: z.string().nullable().optional(),\n tags: z.array(z.string()).nullable().optional(),\n createdBy: z.number().optional(),\n updatedBy: z.number().optional(),\n createdAt: z.string().optional(),\n updatedAt: z.string().optional(),\n message: z.string().optional(),\n // GetOne response\n node: KbNodeDataSchema.optional(),\n // List operations\n nodes: z.array(KbNodeDataSchema).optional(),\n count: z.number().optional(),\n // getByCategory/getByUser\n userId: z.number().optional(),\n // getCategories\n categories: z.array(z.string()).optional(),\n // getTags\n }).optional(),\n});\n\nexport type KbNodesResponsePayload = z.infer<typeof KbNodesResponsePayloadSchema>;\n\n/**\n * KB Nodes response message schema\n */\nexport const KbNodesResponseMessageSchema = z.object({\n id: z.string(),\n type: z.literal('KB_NODES_RES'),\n from: MessageParticipantSchema,\n to: MessageParticipantSchema.optional(),\n payload: KbNodesResponsePayloadSchema,\n});\n\nexport type KbNodesResponseMessage = z.infer<typeof KbNodesResponseMessageSchema>;\n\n// ==================== Client Configuration ====================\n\n/**\n * Client configuration schema\n */\nexport const ClientConfigSchema = z.object({\n userId: z.string(),\n projectId: z.string(),\n baseUrl: z.string().default('wss://ws.superatom.ai/websocket'),\n type: z.string().default('runtime'),\n maxReconnectAttempts: z.number().min(0).default(Infinity),\n initialReconnectDelay: z.number().min(0).default(1000),\n maxReconnectDelay: z.number().min(0).default(30000),\n defaultTimeout: z.number().min(0).default(30000),\n debug: z.boolean().default(false),\n});\n\nexport type ClientConfig = z.input<typeof ClientConfigSchema>;\nexport type ResolvedClientConfig = z.output<typeof ClientConfigSchema>;\n","/**\n * Services Index\n * Re-exports all service functions for easy importing\n */\n\nexport * from './auth';\nexport * from './userPrompt';\nexport * from './bundle';\nexport * from './data';\nexport * from './component';\nexport * from './users';\nexport * from './dashboards';\nexport * from './reports';\nexport * from './bookmarks';\nexport * from './actions';\nexport * from './uis';\nexport * from './kb-nodes';\nexport * from './dash-comp';\n","/**\n * Authentication Service\n * Handles auth_login_req and auth_verify_req messages\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n AuthLoginRequestMessageSchema,\n AuthVerifyRequestMessageSchema,\n type Message,\n type AuthLoginRequestMessage,\n type AuthVerifyRequestMessage,\n} from '../types';\n\n/**\n * Send authentication login request\n * @param client - SuperatomClient instance\n * @param loginDataBase64 - Base64 encoded login data (username + SHA-1 hashed password)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response message\n */\nexport async function sendAuthLoginRequest(\n client: SuperatomClient,\n loginDataBase64: string,\n timeout?: number\n): Promise<Message> {\n // Generate unique message ID for this request\n const messageId = `login_${Date.now()}`;\n\n // Create and validate message using schema\n const message: AuthLoginRequestMessage = AuthLoginRequestMessageSchema.parse({\n id: messageId,\n type: 'AUTH_LOGIN_REQ',\n from: {\n type: client.type\n },\n to: {\n type: 'data-agent'\n },\n payload: {\n login_data: loginDataBase64\n }\n });\n\n const response = await client.sendWithResponse(message, timeout);\n console.log('sdk auth login response', response);\n return response;\n}\n\n/**\n * Send authentication verify request\n * @param client - SuperatomClient instance\n * @param token - Base64 encoded authentication token\n * @param timeout - Request timeout in milliseconds\n * @returns Server response message\n */\nexport async function sendAuthVerifyRequest(\n client: SuperatomClient,\n token: string,\n timeout?: number\n): Promise<Message> {\n // Generate unique message ID for this request\n const messageId = `verify_${Date.now()}`;\n\n // Create and validate message using schema\n const message: AuthVerifyRequestMessage = AuthVerifyRequestMessageSchema.parse({\n id: messageId,\n type: 'AUTH_VERIFY_REQ',\n from: {\n type: client.type\n },\n to: {\n type: 'data-agent'\n },\n payload: {\n token: token\n }\n });\n\n const response = await client.sendWithResponse(message, timeout);\n return response;\n}\n","/**\n * User Prompt Service\n * Handles user_prompt_req and user_prompt_suggestions_req messages\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n\tUserPromptRequestMessageSchema,\n\tUserPromptSuggestionsRequestMessageSchema,\n\ttype Message,\n\ttype UserPromptRequestMessage,\n\ttype UserPromptSuggestionsRequestMessage,\n} from '../types';\n\n/**\n * Send a user prompt request\n * @param client - SuperatomClient instance\n * @param prompt - User's prompt text\n * @param threadId - Thread ID for conversation context\n * @param uiBlockId - UI block ID for context\n * @param responseMode - 'component' for component response (default), 'text' for text streaming\n * @param onStream - Optional callback for streaming text chunks (only for text mode)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response message\n */\nexport async function sendUserPromptRequest(\n\tclient: SuperatomClient,\n\tprompt: string,\n\tthreadId: string,\n\tuiBlockId: string,\n\tresponseMode?: 'component' | 'text',\n\tonStream?: (chunk: string) => void,\n\ttimeout?: number\n): Promise<Message> {\n\t// Generate unique message ID for this request\n\tconst messageId = `user_prompt_req_msg_${Date.now()}`;\n\n\t// Create and validate message using schema\n\tconst message: UserPromptRequestMessage = UserPromptRequestMessageSchema.parse({\n\t\tid: messageId,\n\t\ttype: 'USER_PROMPT_REQ',\n\t\tfrom: {\n\t\t\ttype: client.type\n\t\t},\n\t\tto: {\n\t\t\ttype: 'data-agent'\n\t\t},\n\t\tpayload: {\n\t\t\tprompt: prompt,\n\t\t\tSA_RUNTIME: {\n\t\t\t\tthreadId: threadId,\n\t\t\t\tuiBlockId: uiBlockId\n\t\t\t},\n\t\t\tresponseMode\n\t\t} \n\t});\n\n\t// If streaming is enabled, set up stream listener before sending\n\tlet streamUnsubscribe: (() => void) | null = null;\n\tif (responseMode === 'text' && onStream) {\n\t\tstreamUnsubscribe = client.onMessage((msg) => {\n\t\t\t// Listen for USER_PROMPT_STREAM messages with matching uiBlockId\n\t\t\t// The backend sends streaming chunks with ID pattern: stream_${uiBlockId}\n\t\t\tif (msg.type === 'USER_PROMPT_STREAM' && msg.id === `stream_${uiBlockId}`) {\n\t\t\t\tconst chunk = (msg.payload as any)?.chunk;\n\t\t\t\tif (chunk) {\n\t\t\t\t\tonStream(chunk);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\ttry {\n\t\tconst response = await client.sendWithResponse(message, timeout);\n\t\treturn response;\n\t} finally {\n\t\t// Clean up stream listener after response completes\n\t\tif (streamUnsubscribe) {\n\t\t\tstreamUnsubscribe();\n\t\t}\n\t}\n}\n\n/**\n * Send a user prompt suggestions request\n * @param client - SuperatomClient instance\n * @param prompt - User's partial prompt text\n * @param limit - Maximum number of suggestions to return\n * @param timeout - Request timeout in milliseconds\n * @returns Server response message or null if prompt is empty\n */\nexport async function sendUserPromptSuggestionsRequest(\n\tclient: SuperatomClient,\n\tprompt: string,\n\tlimit: number = 5,\n\ttimeout?: number\n): Promise<Message | null> {\n\tif (!prompt || prompt.trim().length === 0) {\n\t\treturn null;\n\t}\n\n\t// Generate unique message ID for this request\n\tconst messageId = `suggestions_${Date.now()}`;\n\n\t// Create and validate message using schema\n\tconst message: UserPromptSuggestionsRequestMessage = UserPromptSuggestionsRequestMessageSchema.parse({\n\t\tid: messageId,\n\t\ttype: 'USER_PROMPT_SUGGESTIONS_REQ',\n\t\tfrom: {\n\t\t\ttype: client.type\n\t\t},\n\t\tto: {\n\t\t\ttype: 'data-agent'\n\t\t},\n\t\tpayload: {\n\t\t\tprompt: prompt,\n\t\t\tlimit: limit\n\t\t}\n\t});\n\n\tconst response = await client.sendWithResponse(message, timeout);\n\treturn response;\n}\n","/**\n * Bundle Service\n * Handles bundle_req messages and chunked bundle delivery\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n BundleRequestMessageSchema,\n BundleChunkMessageSchema,\n type BundleRequestMessage,\n type BundleChunkPayload,\n} from '../types';\n\n/**\n * Request bundle from server\n * @param client - SuperatomClient instance\n * @param options - Bundle request options\n * @param options.timeout - Request timeout in milliseconds (default: 60000)\n * @param options.onProgress - Progress callback (0-100)\n * @returns Complete bundle as string\n */\nexport async function requestBundle(\n client: SuperatomClient,\n options?: {\n timeout?: number;\n onProgress?: (progress: number) => void;\n devbundlereq?: boolean;\n }\n): Promise<string> {\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n // Create and validate message using schema\n const message: BundleRequestMessage = BundleRequestMessageSchema.parse({\n id: messageId,\n type: 'BUNDLE_REQ',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: { devbundlereq : options?.devbundlereq ?? false },\n });\n\n // Store bundle chunks\n const chunks: string[] = [];\n let totalChunks = 0;\n\n // Listen for bundle chunks\n const unsubscribe = client.onMessage((msg) => {\n try {\n // Check if this is a bundle chunk for our request\n if (msg.type === 'BUNDLE_CHUNK' && msg.id?.startsWith(messageId)) {\n // Validate chunk message\n const chunkMessage = BundleChunkMessageSchema.parse(msg);\n const payload: BundleChunkPayload = chunkMessage.payload;\n\n chunks[payload.chunkIndex] = payload.chunk;\n totalChunks = payload.totalChunks;\n\n // Report progress\n if (options?.onProgress) {\n options.onProgress(payload.progress);\n }\n }\n } catch (error) {\n console.error('[SuperAtom] Failed to parse bundle chunk:', error);\n }\n });\n\n // Send request\n client.send(message);\n\n // Wait for all chunks\n const timeout = options?.timeout ?? 60000; // Default 60s for bundle\n const startTime = Date.now();\n\n return new Promise((resolve, reject) => {\n const checkInterval = setInterval(() => {\n // Check timeout\n if (Date.now() - startTime > timeout) {\n clearInterval(checkInterval);\n unsubscribe();\n reject(new Error(`Bundle request timeout after ${timeout}ms`));\n return;\n }\n\n // Check if all chunks received\n if (totalChunks > 0 && chunks.length === totalChunks) {\n clearInterval(checkInterval);\n unsubscribe();\n\n // Combine chunks\n const bundle = chunks.join('');\n resolve(bundle);\n }\n }, 100);\n });\n}\n","/**\n * Data Service\n * Handles data_req messages for querying collections\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n DataRequestMessageSchema,\n type DataRequestMessage,\n type DataResponsePayload,\n} from '../types';\n\n/**\n * Request data from a collection\n * @param client - SuperatomClient instance\n * @param options - Data request options\n * @param options.collection - Collection name to query\n * @param options.operation - Operation to perform (e.g., 'find', 'aggregate')\n * @param options.params - Operation parameters\n * @param options.timeout - Request timeout in milliseconds\n * @returns Response with data or error\n */\nexport async function requestData(\n client: SuperatomClient,\n options: {\n collection: string;\n operation: string;\n params?: Record<string, unknown>;\n SA_RUNTIME?:Record<string, unknown>;\n timeout?: number;\n }\n): Promise<{ data?: unknown; error?: string; executionMs?: number }> {\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n // Create and validate message using schema\n const message: DataRequestMessage = DataRequestMessageSchema.parse({\n id: messageId,\n type: 'DATA_REQ',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n collection: options.collection,\n op: options.operation,\n params: options.params,\n SA_RUNTIME: options.SA_RUNTIME,\n },\n });\n\n const response = await client.sendWithResponse(message, options.timeout);\n\n // Parse response payload\n const payload = response.payload as DataResponsePayload;\n\n return {\n data: payload.data,\n error: payload.error,\n executionMs: payload.executionMs,\n };\n}\n","/**\n * Component Service\n * Handles AI-powered component suggestions\n */\n\nimport type { SuperatomClient } from '../client';\n\n/**\n * Get AI-powered component suggestions based on a query\n * @param client - SuperatomClient instance\n * @param query - User query for component suggestion\n * @param options - Request options\n * @param options.timeout - Request timeout in milliseconds\n * @returns Component suggestion or error\n */\nexport async function getComponentSuggestions(\n client: SuperatomClient,\n query: string,\n options?: { timeout?: number }\n): Promise<{ component?: { id: string; name: string }; error?: string }> {\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n const message = {\n id: messageId,\n type: 'USER_PROMPT_REQ',\n to: { type: 'data-agent' },\n payload: {\n prompt: query,\n },\n };\n\n const response = await client.sendWithResponse(message, options?.timeout);\n\n // Parse response payload\n const payload = response.payload as {\n component?: { id: string; name: string };\n error?: string;\n };\n\n return {\n component: payload.component,\n error: payload.error,\n };\n}\n\nexport async function sendComponents(\n client: SuperatomClient,\n components: any[],\n) {\n\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n const ws_msg = {\n\t\t\tid: messageId,\n\t\t\ttype: 'COMPONENT_LIST_RES',\n\t\t\tfrom: {\n\t\t\t\ttype: client.type\n\t\t\t},\n\t\t\tto:{\n\t\t\t\ttype: 'data-agent'\n\t\t\t},\n\t\t\tpayload: {\n\t\t\t\tcomponents\n\t\t\t}\n\t\t}\n\n\t\t// Send component element to WebSocket\n\t\tclient.send(ws_msg);\n}\n","/**\n * Users Service\n * Handles USERS message for user CRUD operations\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n UsersRequestMessageSchema,\n type UsersRequestMessage,\n type UsersResponsePayload,\n type UserQueryFilters,\n} from '../types';\n\n/**\n * User interface for response data\n */\nexport interface User {\n username: string;\n email?: string;\n fullname?: string;\n role?: string;\n userInfo?: Record<string, unknown>;\n wsIds?: string[];\n}\n\n/**\n * Create a new user\n * @param client - SuperatomClient instance\n * @param username - Username for the new user\n * @param password - Password for the new user\n * @param email - Email for the new user (optional)\n * @param fullname - Full name for the new user (optional)\n * @param role - Role for the new user (optional)\n * @param userInfo - Additional user info as JSON object (optional)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function createUser(\n client: SuperatomClient,\n username: string,\n password: string,\n email?: string,\n fullname?: string,\n role?: string,\n userInfo?: Record<string, unknown>,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n const messageId = `users_create_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n username,\n password,\n email,\n fullname,\n role,\n userInfo,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n username: payload.data?.username,\n email: payload.data?.email,\n fullname: payload.data?.fullname,\n role: payload.data?.role,\n };\n}\n\n/**\n * Update an existing user\n * @param client - SuperatomClient instance\n * @param username - Username to update\n * @param updates - Object containing fields to update (password, email, fullname, role)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function updateUser(\n client: SuperatomClient,\n id: number,\n updates: {\n password?: string;\n email?: string;\n fullname?: string;\n role?: string;\n userInfo?: Record<string, unknown>;\n },\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n const messageId = `users_update_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n ...updates,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n username: payload.data?.username,\n email: payload.data?.email,\n fullname: payload.data?.fullname,\n role: payload.data?.role,\n };\n}\n\n/**\n * Delete a user\n * @param client - SuperatomClient instance\n * @param username - Username to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteUser(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n const messageId = `users_delete_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n username: payload.data?.username,\n email: payload.data?.email,\n fullname: payload.data?.fullname,\n role: payload.data?.role,\n };\n}\n\n/**\n * Get all users\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of users\n */\nexport async function getAllUsers(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; users?: User[]; count?: number; message?: string }> {\n const messageId = `users_getall_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n users: payload.data?.users,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get a specific user by username\n * @param client - SuperatomClient instance\n * @param username - Username to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with user data\n */\nexport async function getUser(\n client: SuperatomClient,\n username: string,\n timeout?: number\n): Promise<{ success: boolean; error?: string; user?: User; message?: string }> {\n const messageId = `users_getone_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n username,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n user: payload.data?.user,\n message: payload.data?.message,\n };\n}\n\n/**\n * Query users options\n */\nexport interface QueryUsersOptions {\n filters?: UserQueryFilters;\n limit?: number;\n sort?: 'ASC' | 'DESC';\n}\n\n/**\n * Query users with filters, limit, and sort\n * @param client - SuperatomClient instance\n * @param options - Query options with filters, limit, and sort\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of users\n */\nexport async function queryUsers(\n client: SuperatomClient,\n options: QueryUsersOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; users?: User[]; count?: number; message?: string }> {\n const { filters, limit, sort } = options;\n const messageId = `users_query_${Date.now()}`;\n\n const message: UsersRequestMessage = UsersRequestMessageSchema.parse({\n id: messageId,\n type: 'USERS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'query',\n data: {\n filters,\n limit,\n sort,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UsersResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n users: payload.data?.users,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n","/**\n * Dashboards Service\n * Handles DASHBOARDS message for dashboard CRUD operations\n */\n\nimport type { SuperatomClient } from '../../client';\nimport {\n DashboardsRequestMessageSchema,\n type DashboardsRequestMessage,\n type DashboardsResponsePayload,\n type DashboardQueryFilters,\n} from '../../types';\nimport { type DSLRendererProps } from './types';\n\n// Re-export types\nexport * from './types';\n\n/**\n * Dashboard interface for response data\n */\nexport interface Dashboard {\n id?: number;\n dashboardId: string;\n projectId?: string;\n name?: string;\n description?: string;\n published?: boolean;\n dashboard?: DSLRendererProps;\n createdBy?: number;\n updatedBy?: number;\n createdAt?: string;\n updatedAt?: string;\n}\n\n/**\n * Create dashboard options\n */\nexport interface CreateDashboardOptions {\n dashboardId: string;\n projectId: string;\n name?: string;\n description?: string;\n published?: boolean;\n createdBy?: number;\n dashboard?: DSLRendererProps;\n}\n\n/**\n * Update dashboard options\n */\nexport interface UpdateDashboardOptions {\n id: number;\n name?: string;\n description?: string;\n published?: boolean;\n createdBy?: number;\n updatedBy?: number;\n dashboard?: DSLRendererProps;\n}\n\n/**\n * Query dashboards options\n */\nexport interface QueryDashboardsOptions {\n filters?: DashboardQueryFilters;\n limit?: number;\n sort?: 'ASC' | 'DESC';\n}\n\n/**\n * Create a new dashboard\n * @param client - SuperatomClient instance\n * @param options - Dashboard creation options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function createDashboard(\n client: SuperatomClient,\n options: CreateDashboardOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps }> {\n const { dashboardId, projectId, name, description, published, createdBy, dashboard } = options;\n const messageId = `dashboards_create_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n dashboardId,\n projectId,\n name,\n description,\n published,\n createdBy,\n dashboard,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n dashboardId: payload.data?.dashboardId,\n dashboard: payload.data?.dashboard,\n };\n}\n\n/**\n * Update an existing dashboard\n * @param client - SuperatomClient instance\n * @param options - Dashboard update options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function updateDashboard(\n client: SuperatomClient,\n options: UpdateDashboardOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps }> {\n const { id, name, description, published, createdBy, updatedBy, dashboard } = options;\n const messageId = `dashboards_update_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n name,\n description,\n published,\n createdBy,\n updatedBy,\n dashboard,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n dashboardId: payload.data?.dashboardId,\n dashboard: payload.data?.dashboard,\n };\n}\n\n/**\n * Delete a dashboard\n * @param client - SuperatomClient instance\n * @param id - Dashboard ID (numeric) to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteDashboard(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n const messageId = `dashboards_delete_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n };\n}\n\n/**\n * Get all dashboards\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of dashboards\n */\nexport async function getAllDashboards(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; dashboards?: Dashboard[]; count?: number; message?: string }> {\n const messageId = `dashboards_getall_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n dashboards: payload.data?.dashboards,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get a specific dashboard by ID\n * @param client - SuperatomClient instance\n * @param id - Dashboard ID (numeric) to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with dashboard data\n */\nexport async function getDashboard(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; id?: number; dashboardId?: string; dashboard?: DSLRendererProps; message?: string }> {\n const messageId = `dashboards_getone_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n id: (payload.data as any)?.id,\n dashboardId: payload.data?.dashboardId,\n dashboard: payload.data?.dashboard,\n message: payload.data?.message,\n };\n}\n\n/**\n * Query dashboards with filters, limit, and sort\n * @param client - SuperatomClient instance\n * @param options - Query options with filters, limit, and sort\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of dashboards\n */\nexport async function queryDashboards(\n client: SuperatomClient,\n options: QueryDashboardsOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; dashboards?: Dashboard[]; count?: number; message?: string }> {\n const { filters, limit, sort } = options;\n const messageId = `dashboards_query_${Date.now()}`;\n\n const message: DashboardsRequestMessage = DashboardsRequestMessageSchema.parse({\n id: messageId,\n type: 'DASHBOARDS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'query',\n data: {\n filters,\n limit,\n sort,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as DashboardsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n dashboards: payload.data?.dashboards,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n","/**\n * Reports Service\n * Handles REPORTS message for report CRUD operations\n */\n\nimport type { SuperatomClient } from '../../client';\nimport {\n ReportsRequestMessageSchema,\n type ReportsRequestMessage,\n type ReportsResponsePayload,\n type ReportQueryFilters,\n} from '../../types';\nimport { type DSLRendererProps } from './types';\n\n// Re-export with alias to avoid conflicts with dashboards\nexport type { DSLRendererProps as ReportDSLRendererProps } from './types';\n\n/**\n * Report interface for response data\n */\nexport interface Report {\n id?: number;\n reportId: string;\n projectId?: string;\n name?: string;\n description?: string;\n published?: boolean;\n report?: DSLRendererProps;\n createdBy?: number;\n updatedBy?: number;\n createdAt?: string;\n updatedAt?: string;\n}\n\n/**\n * Create report options\n */\nexport interface CreateReportOptions {\n reportId: string;\n projectId: string;\n name?: string;\n description?: string;\n published?: boolean;\n createdBy?: number;\n report?: DSLRendererProps;\n}\n\n/**\n * Update report options\n */\nexport interface UpdateReportOptions {\n id: number;\n name?: string;\n description?: string;\n published?: boolean;\n createdBy?: number;\n updatedBy?: number;\n report?: DSLRendererProps;\n}\n\n/**\n * Query reports options\n */\nexport interface QueryReportsOptions {\n filters?: ReportQueryFilters;\n limit?: number;\n sort?: 'ASC' | 'DESC';\n}\n\n/**\n * Create a new report\n * @param client - SuperatomClient instance\n * @param options - Report creation options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function createReport(\n client: SuperatomClient,\n options: CreateReportOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: DSLRendererProps }> {\n const { reportId, projectId, name, description, published, createdBy, report } = options;\n const messageId = `reports_create_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n reportId,\n projectId,\n name,\n description,\n published,\n createdBy,\n report,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n reportId: payload.data?.reportId,\n report: payload.data?.report,\n };\n}\n\n/**\n * Update an existing report\n * @param client - SuperatomClient instance\n * @param options - Report update options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function updateReport(\n client: SuperatomClient,\n options: UpdateReportOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: DSLRendererProps }> {\n const { id, name, description, published, createdBy, updatedBy, report } = options;\n const messageId = `reports_update_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n name,\n description,\n published,\n createdBy,\n updatedBy,\n report,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n reportId: payload.data?.reportId,\n report: payload.data?.report,\n };\n}\n\n/**\n * Delete a report\n * @param client - SuperatomClient instance\n * @param id - Report ID (numeric) to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteReport(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n const messageId = `reports_delete_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n };\n}\n\n/**\n * Get all reports\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of reports\n */\nexport async function getAllReports(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; reports?: Report[]; count?: number; message?: string }> {\n const messageId = `reports_getall_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n reports: payload.data?.reports,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get a specific report by ID\n * @param client - SuperatomClient instance\n * @param id - Report ID (numeric) to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with report data\n */\nexport async function getReport(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; id?: number; reportId?: string; report?: DSLRendererProps; message?: string }> {\n const messageId = `reports_getone_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n id: (payload.data as any)?.id,\n reportId: payload.data?.reportId,\n report: payload.data?.report,\n message: payload.data?.message,\n };\n}\n\n/**\n * Query reports with filters, limit, and sort\n * @param client - SuperatomClient instance\n * @param options - Query options with filters, limit, and sort\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of reports\n */\nexport async function queryReports(\n client: SuperatomClient,\n options: QueryReportsOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; reports?: Report[]; count?: number; message?: string }> {\n const { filters, limit, sort } = options;\n const messageId = `reports_query_${Date.now()}`;\n\n const message: ReportsRequestMessage = ReportsRequestMessageSchema.parse({\n id: messageId,\n type: 'REPORTS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'query',\n data: {\n filters,\n limit,\n sort,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as ReportsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n reports: payload.data?.reports,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n","/**\n * Bookmarks Service\n * Handles BOOKMARKS message for bookmark CRUD operations\n */\n\nimport type { SuperatomClient } from '../../client';\nimport {\n BookmarksRequestMessageSchema,\n type BookmarksRequestMessage,\n type BookmarksResponsePayload,\n type BookmarkData,\n type DBUIBlock,\n type BookmarkQueryFilters,\n} from '../../types';\n\n/**\n * Bookmark interface for response data\n */\nexport interface Bookmark {\n id?: number;\n userId?: number;\n threadId?: string;\n name?: string;\n description?: string;\n uiblock: DBUIBlock;\n created_at?: string;\n updated_at?: string;\n}\n\n/**\n * Create bookmark options\n */\nexport interface CreateBookmarkOptions {\n userId: number;\n uiblock: DBUIBlock;\n threadId?: string;\n name?: string;\n description?: string;\n}\n\n/**\n * Create a new bookmark\n * @param client - SuperatomClient instance\n * @param options - Bookmark creation options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function createBookmark(\n client: SuperatomClient,\n options: CreateBookmarkOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\n const { userId, uiblock, threadId, name, description } = options;\n const messageId = `bookmarks_create_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n userId,\n threadId,\n name,\n description,\n uiblock,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.message,\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\n };\n}\n\n/**\n * Update bookmark options\n */\nexport interface UpdateBookmarkOptions {\n id: number;\n uiblock?: DBUIBlock;\n threadId?: string;\n name?: string;\n description?: string;\n}\n\n/**\n * Update an existing bookmark\n * @param client - SuperatomClient instance\n * @param options - Bookmark update options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function updateBookmark(\n client: SuperatomClient,\n options: UpdateBookmarkOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\n const { id, uiblock, threadId, name, description } = options;\n const messageId = `bookmarks_update_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n threadId,\n name,\n description,\n uiblock,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.message,\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\n };\n}\n\n/**\n * Delete a bookmark\n * @param client - SuperatomClient instance\n * @param id - Bookmark ID to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteBookmark(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; data?: BookmarkData }> {\n const messageId = `bookmarks_delete_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.message,\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\n };\n}\n\n/**\n * Get all bookmarks\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of bookmarks\n */\nexport async function getAllBookmarks(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; data?: BookmarkData[]; count?: number; message?: string }> {\n const messageId = `bookmarks_getall_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n data: Array.isArray(payload.data) ? payload.data : payload.data ? [payload.data] : [],\n count: payload.count,\n message: payload.message,\n };\n}\n\n/**\n * Get a specific bookmark by ID\n * @param client - SuperatomClient instance\n * @param id - Bookmark ID to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with bookmark data\n */\nexport async function getBookmark(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; data?: BookmarkData; message?: string }> {\n const messageId = `bookmarks_getone_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n data: Array.isArray(payload.data) ? payload.data[0] : payload.data,\n message: payload.message,\n };\n}\n\n/**\n * Query bookmarks options\n */\nexport interface QueryBookmarksOptions {\n filters?: BookmarkQueryFilters;\n limit?: number;\n sort?: 'ASC' | 'DESC';\n}\n\n/**\n * Query bookmarks with filters, limit, and sort\n * @param client - SuperatomClient instance\n * @param options - Query options with filters, limit, and sort\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of bookmarks\n */\nexport async function queryBookmarks(\n client: SuperatomClient,\n options: QueryBookmarksOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; data?: BookmarkData[]; count?: number; message?: string }> {\n const { filters, limit, sort } = options;\n const messageId = `bookmarks_query_${Date.now()}`;\n\n const message: BookmarksRequestMessage = BookmarksRequestMessageSchema.parse({\n id: messageId,\n type: 'BOOKMARKS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'query',\n data: {\n filters,\n limit,\n sort,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as BookmarksResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n data: Array.isArray(payload.data) ? payload.data : payload.data ? [payload.data] : [],\n count: payload.count,\n message: payload.message,\n };\n}\n","\nimport { SuperatomClient } from \"../client\";\nimport { ActionsRequestMessage, ActionsRequestMessageSchema, ActionsResponsePayload } from \"../types\";\n\nexport async function getActions(\n client: SuperatomClient,\n options: {\n SA_RUNTIME?:Record<string, unknown>;\n timeout?: number;\n }\n): Promise<{ success:boolean; data?: unknown; error?: string; }> {\n const messageId = `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n // Create and validate message using schema\n const message: ActionsRequestMessage = ActionsRequestMessageSchema.parse({\n id: messageId,\n type: 'ACTIONS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n SA_RUNTIME: options.SA_RUNTIME,\n },\n });\n\n const response = await client.sendWithResponse(message, options.timeout);\n\n // Parse response payload\n const payload = response.payload as ActionsResponsePayload;\n\n return {\n success: payload.success,\n data: payload.data,\n error: payload.error,\n };\n}","/**\n * UIs Service\n * Handles UIS message for UI CRUD operations\n */\n\nimport type { SuperatomClient } from '../../client';\nimport {\n UIsRequestMessageSchema,\n type UIsRequestMessage,\n type UIsResponsePayload,\n type UIQueryFilters,\n} from '../../types';\nimport { type DSLRendererProps } from './types';\n\n// Re-export types with unique names to avoid conflicts with dashboards\nexport type { DSLRendererProps as UIDSLRendererProps } from './types';\n\n/**\n * UI interface for response data\n */\nexport interface UI {\n id?: number;\n uiId: string;\n projectId?: string;\n name?: string;\n description?: string;\n ui?: DSLRendererProps;\n createdBy?: number;\n updatedBy?: number;\n createdAt?: string;\n updatedAt?: string;\n}\n\n/**\n * Create UI options\n */\nexport interface CreateUIOptions {\n uiId: string;\n projectId: string;\n name?: string;\n description?: string;\n createdBy?: number;\n ui?: DSLRendererProps;\n}\n\n/**\n * Update UI options\n */\nexport interface UpdateUIOptions {\n id: number;\n name?: string;\n description?: string;\n createdBy?: number;\n updatedBy?: number;\n ui?: DSLRendererProps;\n}\n\n/**\n * Query UIs options\n */\nexport interface QueryUIsOptions {\n filters?: UIQueryFilters;\n limit?: number;\n sort?: 'ASC' | 'DESC';\n}\n\n/**\n * Create a new UI\n * @param client - SuperatomClient instance\n * @param options - UI creation options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function createUI(\n client: SuperatomClient,\n options: CreateUIOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: DSLRendererProps }> {\n const { uiId, projectId, name, description, createdBy, ui } = options;\n const messageId = `uis_create_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n uiId,\n projectId,\n name,\n description,\n createdBy,\n ui,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n uiId: payload.data?.uiId as string,\n ui: payload.data?.ui,\n };\n}\n\n/**\n * Update an existing UI\n * @param client - SuperatomClient instance\n * @param options - UI update options\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function updateUI(\n client: SuperatomClient,\n options: UpdateUIOptions,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: DSLRendererProps }> {\n const { id, name, description, createdBy, updatedBy, ui } = options;\n const messageId = `uis_update_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n name,\n description,\n createdBy,\n updatedBy,\n ui,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n uiId: payload.data?.uiId as string,\n ui: payload.data?.ui,\n };\n}\n\n/**\n * Delete a UI\n * @param client - SuperatomClient instance\n * @param id - UI ID (numeric) to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteUI(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n const messageId = `uis_delete_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n id: (payload.data as any)?.id,\n };\n}\n\n/**\n * Get all UIs\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of UIs\n */\nexport async function getAllUIs(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; uis?: UI[]; count?: number; message?: string }> {\n const messageId = `uis_getall_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n uis: payload.data?.uis,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get a specific UI by ID\n * @param client - SuperatomClient instance\n * @param id - UI ID (numeric) to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with UI data\n */\nexport async function getUI(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; id?: number; uiId?: string; ui?: DSLRendererProps; message?: string }> {\n const messageId = `uis_getone_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n id: (payload.data as any)?.id,\n uiId: payload.data?.uiId as string,\n ui: payload.data?.ui,\n message: payload.data?.message,\n };\n}\n\n/**\n * Query UIs with filters, limit, and sort\n * @param client - SuperatomClient instance\n * @param options - Query options with filters, limit, and sort\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of UIs\n */\nexport async function queryUIs(\n client: SuperatomClient,\n options: QueryUIsOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; uis?: UI[]; count?: number; message?: string }> {\n const { filters, limit, sort } = options;\n const messageId = `uis_query_${Date.now()}`;\n\n const message: UIsRequestMessage = UIsRequestMessageSchema.parse({\n id: messageId,\n type: 'UIS',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'query',\n data: {\n filters,\n limit,\n sort,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as UIsResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n uis: payload.data?.uis,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n","/**\n * KB Nodes (Knowledge Base) Service\n * Handles KB_NODES message for knowledge base CRUD operations\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n KbNodesRequestMessageSchema,\n type KbNodesRequestMessage,\n type KbNodesResponsePayload,\n} from '../types';\n\n/**\n * KB Node interface for response data\n */\nexport interface KbNode {\n id?: number;\n title: string;\n content: string;\n category?: string | null;\n tags?: string[] | null;\n createdBy: number;\n updatedBy?: number;\n createdAt?: string;\n updatedAt?: string;\n}\n\n/**\n * Create a new knowledge base node\n * @param client - SuperatomClient instance\n * @param title - Title for the KB node\n * @param content - Content for the KB node\n * @param createdBy - User ID of the creator\n * @param category - Category for the KB node (optional)\n * @param tags - Tags for the KB node (optional)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status and created node data\n */\nexport async function createKbNode(\n client: SuperatomClient,\n title: string,\n content: string,\n createdBy: number,\n category?: string,\n tags?: string[],\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; node?: KbNode }> {\n const messageId = `kb_nodes_create_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'create',\n data: {\n title,\n content,\n createdBy,\n category,\n tags,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n node: payload.data ? {\n id: payload.data.id,\n title: payload.data.title || title,\n content: payload.data.content || content,\n category: payload.data.category,\n tags: payload.data.tags,\n createdBy: payload.data.createdBy || createdBy,\n updatedBy: payload.data.updatedBy,\n createdAt: payload.data.createdAt,\n updatedAt: payload.data.updatedAt,\n } : undefined,\n };\n}\n\n/**\n * Update an existing knowledge base node\n * @param client - SuperatomClient instance\n * @param id - ID of the KB node to update\n * @param updatedBy - User ID of the updater\n * @param updates - Object containing fields to update (title, content, category, tags)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status and updated node data\n */\nexport async function updateKbNode(\n client: SuperatomClient,\n id: number,\n updatedBy: number,\n updates: {\n title?: string;\n content?: string;\n category?: string;\n tags?: string[];\n },\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string; node?: KbNode }> {\n const messageId = `kb_nodes_update_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'update',\n data: {\n id,\n updatedBy,\n ...updates,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n node: payload.data ? {\n id: payload.data.id,\n title: payload.data.title || '',\n content: payload.data.content || '',\n category: payload.data.category,\n tags: payload.data.tags,\n createdBy: payload.data.createdBy || 0,\n updatedBy: payload.data.updatedBy,\n createdAt: payload.data.createdAt,\n updatedAt: payload.data.updatedAt,\n } : undefined,\n };\n}\n\n/**\n * Delete a knowledge base node\n * @param client - SuperatomClient instance\n * @param id - ID of the KB node to delete\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with success status\n */\nexport async function deleteKbNode(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; message?: string }> {\n const messageId = `kb_nodes_delete_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'delete',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get all knowledge base nodes\n * @param client - SuperatomClient instance\n * @param limit - Maximum number of nodes to retrieve (optional, default 100)\n * @param offset - Offset for pagination (optional, default 0)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of KB nodes\n */\nexport async function getAllKbNodes(\n client: SuperatomClient,\n limit?: number,\n offset?: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; message?: string }> {\n const messageId = `kb_nodes_getall_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getAll',\n data: {\n limit,\n offset,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n nodes: payload.data?.nodes as KbNode[] | undefined,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get a specific knowledge base node by ID\n * @param client - SuperatomClient instance\n * @param id - ID of the KB node to retrieve\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with KB node data\n */\nexport async function getKbNode(\n client: SuperatomClient,\n id: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; node?: KbNode; message?: string }> {\n const messageId = `kb_nodes_getone_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getOne',\n data: {\n id,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n node: payload.data?.node as KbNode | undefined,\n message: payload.data?.message,\n };\n}\n\n/**\n * Search options for KB nodes\n */\nexport interface SearchKbNodesOptions {\n query?: string;\n category?: string;\n tags?: string[];\n createdBy?: number;\n limit?: number;\n offset?: number;\n}\n\n/**\n * Search knowledge base nodes with full-text search and filters\n * @param client - SuperatomClient instance\n * @param options - Search options with query, category, tags, createdBy, limit, offset\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of matching KB nodes\n */\nexport async function searchKbNodes(\n client: SuperatomClient,\n options: SearchKbNodesOptions = {},\n timeout?: number\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; message?: string }> {\n const { query, category, tags, createdBy, limit, offset } = options;\n const messageId = `kb_nodes_search_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'search',\n data: {\n query,\n category,\n tags,\n createdBy,\n limit,\n offset,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n nodes: payload.data?.nodes as KbNode[] | undefined,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get knowledge base nodes by category\n * @param client - SuperatomClient instance\n * @param category - Category to filter by\n * @param limit - Maximum number of nodes to retrieve (optional, default 50)\n * @param offset - Offset for pagination (optional, default 0)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of KB nodes in the category\n */\nexport async function getKbNodesByCategory(\n client: SuperatomClient,\n category: string,\n limit?: number,\n offset?: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; category?: string; message?: string }> {\n const messageId = `kb_nodes_getbycategory_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getByCategory',\n data: {\n category,\n limit,\n offset,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n nodes: payload.data?.nodes as KbNode[] | undefined,\n count: payload.data?.count,\n category: payload.data?.category || category,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get knowledge base nodes by user (creator)\n * @param client - SuperatomClient instance\n * @param userId - User ID to filter by\n * @param limit - Maximum number of nodes to retrieve (optional, default 50)\n * @param offset - Offset for pagination (optional, default 0)\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of KB nodes created by the user\n */\nexport async function getKbNodesByUser(\n client: SuperatomClient,\n userId: number,\n limit?: number,\n offset?: number,\n timeout?: number\n): Promise<{ success: boolean; error?: string; nodes?: KbNode[]; count?: number; userId?: number; message?: string }> {\n const messageId = `kb_nodes_getbyuser_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getByUser',\n data: {\n userId,\n limit,\n offset,\n },\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n nodes: payload.data?.nodes as KbNode[] | undefined,\n count: payload.data?.count,\n userId: payload.data?.userId || userId,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get all unique categories from knowledge base nodes\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of unique categories\n */\nexport async function getKbNodeCategories(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; categories?: string[]; count?: number; message?: string }> {\n const messageId = `kb_nodes_getcategories_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getCategories',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n return {\n success: payload.success,\n error: payload.error,\n categories: payload.data?.categories,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n\n/**\n * Get all unique tags from knowledge base nodes\n * @param client - SuperatomClient instance\n * @param timeout - Request timeout in milliseconds\n * @returns Server response with list of unique tags\n */\nexport async function getKbNodeTags(\n client: SuperatomClient,\n timeout?: number\n): Promise<{ success: boolean; error?: string; tags?: string[]; count?: number; message?: string }> {\n const messageId = `kb_nodes_gettags_${Date.now()}`;\n\n const message: KbNodesRequestMessage = KbNodesRequestMessageSchema.parse({\n id: messageId,\n type: 'KB_NODES',\n from: { type: client.type },\n to: { type: 'data-agent' },\n payload: {\n operation: 'getTags',\n },\n });\n\n const response = await client.sendWithResponse(message, timeout);\n const payload = response.payload as KbNodesResponsePayload;\n\n // The tags come back in data.data from the response\n const responseData = payload.data as any;\n\n return {\n success: payload.success,\n error: payload.error,\n tags: responseData?.tags,\n count: payload.data?.count,\n message: payload.data?.message,\n };\n}\n","/**\n * Dashboard Component Service\n * Handles DASH_COMP_REQ messages for picking components and generating props\n */\n\nimport type { SuperatomClient } from '../client';\nimport {\n\tDashCompRequestMessageSchema,\n\ttype Message,\n\ttype DashCompRequestMessage,\n\ttype DashCompResponsePayload,\n\ttype Component,\n} from '../types';\n\n/**\n * Response type for dashboard component request\n */\nexport interface DashCompResponse {\n\tsuccess: boolean;\n\terrors?: string[];\n\tcomponent?: Component;\n\treasoning?: string;\n\tdataSource?: 'database' | 'external_tool' | 'none';\n}\n\n/**\n * Options for dashboard component request\n */\nexport interface DashCompRequestOptions {\n\t/** User's prompt describing what component they need */\n\tprompt: string;\n\t/** Optional thread ID for conversation context */\n\tthreadId?: string;\n\t/** Optional UI block ID for context */\n\tuiBlockId?: string;\n\t/** Request timeout in milliseconds */\n\ttimeout?: number;\n}\n\n/**\n * Send a dashboard component request\n *\n * This method asks the LLM to:\n * 1. Pick the most appropriate component from available components\n * 2. Generate complete props for the component\n * 3. Determine data source (database query or external tool)\n *\n * @param client - SuperatomClient instance\n * @param options - Request options including prompt and optional context\n * @returns Dashboard component response with selected component and props\n *\n * @example\n * ```typescript\n * const response = await sendDashCompRequest(client, {\n * prompt: \"Show me a bar chart of sales by category\",\n * threadId: \"thread-123\",\n * });\n *\n * if (response.success && response.component) {\n * console.log('Selected component:', response.component.name);\n * console.log('Generated props:', response.component.props);\n * console.log('Data source:', response.dataSource);\n * }\n * ```\n */\nexport async function sendDashCompRequest(\n\tclient: SuperatomClient,\n\toptions: DashCompRequestOptions\n): Promise<DashCompResponse> {\n\tconst { prompt, threadId, uiBlockId, timeout } = options;\n\n\t// Generate unique message ID for this request\n\tconst messageId = `dash_comp_req_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n\n\t// Create and validate message using schema\n\tconst message: DashCompRequestMessage = DashCompRequestMessageSchema.parse({\n\t\tid: messageId,\n\t\ttype: 'DASH_COMP_REQ',\n\t\tfrom: {\n\t\t\ttype: client.type\n\t\t},\n\t\tto: {\n\t\t\ttype: 'data-agent'\n\t\t},\n\t\tpayload: {\n\t\t\tprompt: prompt,\n\t\t\tSA_RUNTIME: threadId || uiBlockId ? {\n\t\t\t\tthreadId: threadId,\n\t\t\t\tuiBlockId: uiBlockId\n\t\t\t} : undefined\n\t\t}\n\t});\n\n\ttry {\n\t\tconst response: Message = await client.sendWithResponse(message, timeout);\n\t\tconst payload = response.payload as DashCompResponsePayload;\n\n\t\tif (!payload.success) {\n\t\t\treturn {\n\t\t\t\tsuccess: false,\n\t\t\t\terrors: payload.errors || ['Unknown error occurred'],\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tsuccess: true,\n\t\t\tcomponent: payload.data?.component,\n\t\t\treasoning: payload.data?.reasoning,\n\t\t\tdataSource: payload.data?.dataSource,\n\t\t};\n\t} catch (error) {\n\t\tconst errorMessage = error instanceof Error ? error.message : 'Request failed';\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\terrors: [errorMessage],\n\t\t};\n\t}\n}\n","import {\n MessageSchema,\n ClientConfigSchema,\n type Message,\n type ClientConfig,\n type ResolvedClientConfig,\n} from './types';\nimport * as services from './services';\n\ntype MessageHandler = (message: Message) => void;\ntype ConnectionHandler = () => void;\ntype ErrorHandler = (error: Event | Error) => void;\n\n/**\n * SuperatomClient - WebSocket client for SuperAtom platform\n *\n * Core WebSocket client handling connection management, messaging, and event handling.\n * Domain-specific functionality (auth, user prompts, bundles) is delegated to service functions.\n */\nexport class SuperatomClient {\n private socket: WebSocket | null = null;\n private reconnectAttempts = 0;\n private reconnectTimer: ReturnType<typeof setTimeout> | null = null;\n private shouldReconnect = true;\n private messageHandlers: Set<MessageHandler> = new Set();\n private connectionHandlers: Set<ConnectionHandler> = new Set();\n private disconnectionHandlers: Set<ConnectionHandler> = new Set();\n private errorHandlers: Set<ErrorHandler> = new Set();\n private config: ResolvedClientConfig;\n private connectPromise: Promise<void> | null = null;\n private connectResolve: (() => void) | null = null;\n\n constructor(config: ClientConfig) {\n const parsed = ClientConfigSchema.parse(config);\n this.config = parsed;\n }\n\n /**\n * Get WebSocket URL with query parameters\n */\n private getWebSocketUrl(): string {\n const params = new URLSearchParams({\n userId: this.config.userId,\n projectId: this.config.projectId,\n type: this.config.type,\n });\n return `${this.config.baseUrl}?${params.toString()}`;\n }\n\n /**\n * Calculate reconnection delay with exponential backoff\n */\n private calculateReconnectDelay(): number {\n const delay = Math.min(\n this.config.initialReconnectDelay * Math.pow(2, this.reconnectAttempts),\n this.config.maxReconnectDelay\n );\n // Add jitter to prevent thundering herd\n return delay + Math.random() * 1000;\n }\n\n /**\n * Schedule reconnection attempt\n */\n private scheduleReconnect(): void {\n if (!this.shouldReconnect) {\n return;\n }\n\n if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {\n const error = new Error('Max reconnection attempts reached');\n this.log('error', error.message);\n this.errorHandlers.forEach((handler) => handler(error));\n return;\n }\n\n const delay = this.calculateReconnectDelay();\n this.log('info', `Scheduling reconnection attempt ${this.reconnectAttempts + 1} in ${delay}ms`);\n\n this.reconnectTimer = setTimeout(() => {\n this.reconnectAttempts++;\n this.connect();\n }, delay);\n }\n\n /**\n * Setup WebSocket event handlers\n */\n private setupSocketHandlers(): void {\n if (!this.socket) {\n return;\n }\n\n this.socket.onopen = () => {\n this.log('info', 'Connected to SuperAtom');\n this.reconnectAttempts = 0;\n\n // Resolve the connect promise if it exists\n if (this.connectResolve) {\n this.connectResolve();\n this.connectResolve = null;\n }\n\n this.connectionHandlers.forEach((handler) => handler());\n };\n\n this.socket.onmessage = (event) => {\n try {\n const parsed = JSON.parse(event.data);\n const message = MessageSchema.parse(parsed);\n // this.log('debug', 'Received:', message);\n\n // Call message handlers\n this.messageHandlers.forEach((handler) => handler(message));\n } catch (error) {\n this.log('error', 'Failed to parse message:', error);\n const err = error instanceof Error ? error : new Error('Parse error');\n this.errorHandlers.forEach((handler) => handler(err));\n }\n };\n\n this.socket.onclose = (event) => {\n this.log('info', 'Disconnected from SuperAtom', {\n code: event.code,\n reason: event.reason,\n wasClean: event.wasClean,\n });\n this.disconnectionHandlers.forEach((handler) => handler());\n\n // Reconnect unless explicitly disconnected\n if (this.shouldReconnect && !event.wasClean) {\n this.scheduleReconnect();\n }\n };\n\n this.socket.onerror = (error) => {\n this.log('error', 'WebSocket error:', error);\n this.errorHandlers.forEach((handler) => handler(error));\n };\n }\n\n /**\n * Connect to SuperAtom WebSocket server\n * Returns a Promise that resolves when the connection is established\n * The Promise never rejects - failures are logged silently and auto-reconnect is triggered\n */\n connect(): Promise<void> {\n // If already connected, return resolved promise\n if (this.socket?.readyState === WebSocket.OPEN) {\n this.log('warn', 'Already connected');\n return Promise.resolve();\n }\n\n // If connection is in progress, return the existing promise\n if (this.socket?.readyState === WebSocket.CONNECTING && this.connectPromise) {\n this.log('warn', 'Connection already in progress');\n return this.connectPromise;\n }\n\n // Create a new promise that resolves when connected\n this.connectPromise = new Promise<void>((resolve) => {\n this.connectResolve = resolve;\n });\n\n try {\n this.socket = new WebSocket(this.getWebSocketUrl());\n this.setupSocketHandlers();\n } catch (error) {\n this.log('error', 'Failed to create WebSocket:', error);\n const err = error instanceof Error ? error : new Error('Connection failed');\n this.errorHandlers.forEach((handler) => handler(err));\n this.scheduleReconnect();\n }\n\n return this.connectPromise;\n }\n\n /**\n * Disconnect from WebSocket server\n */\n disconnect(): void {\n this.shouldReconnect = false;\n\n if (this.reconnectTimer) {\n clearTimeout(this.reconnectTimer);\n this.reconnectTimer = null;\n }\n\n if (this.socket) {\n this.socket.close(1000, 'Client disconnect');\n this.socket = null;\n }\n\n this.reconnectAttempts = 0;\n }\n\n /**\n * Update client configuration\n */\n private updateConfig(config: Partial<ClientConfig>): void {\n const merged = { ...this.config, ...config };\n const parsed = ClientConfigSchema.parse(merged);\n this.config = parsed;\n }\n\n /**\n * Reconnect with new configuration\n * Disconnects from existing connection and reconnects with updated config\n * Returns a Promise that resolves when the new connection is established\n */\n reconnectWithConfig(config: Partial<ClientConfig>): Promise<void> {\n this.updateConfig(config);\n if (this.socket) {\n this.disconnect();\n }\n this.shouldReconnect = true;\n return this.connect();\n }\n\n /**\n * Send a message to the server\n */\n send(message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } }): void {\n if (!this.socket || this.socket.readyState !== WebSocket.OPEN) {\n throw new Error('WebSocket is not connected');\n }\n\n const fullMessage: Message = {\n ...message,\n from: message.from || { type: this.config.type },\n };\n\n try {\n // this.log('debug', 'Sending:', fullMessage);\n this.socket.send(JSON.stringify(fullMessage));\n } catch (error) {\n this.log('error', 'Failed to send message:', error);\n throw error;\n }\n }\n\n /**\n * Send a message and wait for a response with the same ID\n * Uses closure-based approach - no global state management needed\n */\n async sendWithResponse(\n message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } },\n timeout?: number\n ): Promise<Message> {\n const messageId = message.id || `msg_${Date.now()}_${Math.random().toString(36).substring(7)}`;\n const messageWithId = { ...message, id: messageId };\n const timeoutMs = timeout ?? this.config.defaultTimeout;\n\n // Send the message first\n this.send(messageWithId);\n\n // Return a promise that listens for the response\n return new Promise((resolve, reject) => {\n let isResolved = false;\n\n // Create message handler for this specific request (closure captures resolve/reject)\n const responseHandler: MessageHandler = (msg) => {\n if (msg.id === messageId && !isResolved) {\n isResolved = true;\n clearTimeout(timer);\n unsubscribe();\n resolve(msg);\n }\n };\n\n // Subscribe to messages\n const unsubscribe = this.onMessage(responseHandler);\n\n // Setup timeout\n const timer = setTimeout(() => {\n if (!isResolved) {\n isResolved = true;\n unsubscribe();\n reject(new Error(`Request timeout after ${timeoutMs}ms`));\n }\n }, timeoutMs);\n });\n }\n\n /**\n * Register message handler\n */\n onMessage(handler: MessageHandler): () => void {\n this.messageHandlers.add(handler);\n return () => this.messageHandlers.delete(handler);\n }\n\n /**\n * Register connection handler\n */\n onConnect(handler: ConnectionHandler): () => void {\n this.connectionHandlers.add(handler);\n return () => this.connectionHandlers.delete(handler);\n }\n\n /**\n * Register disconnection handler\n */\n onDisconnect(handler: ConnectionHandler): () => void {\n this.disconnectionHandlers.add(handler);\n return () => this.disconnectionHandlers.delete(handler);\n }\n\n /**\n * Register error handler\n */\n onError(handler: ErrorHandler): () => void {\n this.errorHandlers.add(handler);\n return () => this.errorHandlers.delete(handler);\n }\n\n /**\n * Check if client is connected\n */\n isConnected(): boolean {\n return this.socket?.readyState === WebSocket.OPEN;\n }\n\n /**\n * Get current reconnection attempts\n */\n getReconnectAttempts(): number {\n return this.reconnectAttempts;\n }\n\n /**\n * Get client type\n */\n get type(): string {\n return this.config.type;\n }\n\n /**\n * Send a message and wait for response with timeout (alias for sendWithResponse)\n */\n async ask(\n message: Omit<Message, 'from'> & { from?: { type?: string; id?: string } },\n options?: { timeout?: number }\n ): Promise<Message> {\n return this.sendWithResponse(message, options?.timeout);\n }\n\n // ==================== Service Methods ====================\n // These methods delegate to service functions for better code organization\n\n /**\n * Send authentication login request\n * Delegates to auth service\n */\n async sendAuthLoginRequest(\n loginDataBase64: string,\n timeout?: number\n ): Promise<Message> {\n this.log('info', 'Sending auth login request');\n return services.sendAuthLoginRequest(this, loginDataBase64, timeout);\n }\n\n /**\n * Send authentication verify request\n * Delegates to auth service\n */\n async sendAuthVerifyRequest(\n token: string,\n timeout?: number\n ): Promise<Message> {\n this.log('info', 'Sending auth verify request');\n return services.sendAuthVerifyRequest(this, token, timeout);\n }\n\n /**\n * Send a user prompt request\n * Delegates to user prompt service\n * @param responseMode - 'component' for component response (default), 'text' for text streaming\n * @param onStream - Optional callback for streaming text chunks (only for text mode)\n */\n async sendUserPromptRequest(\n prompt: string,\n threadId: string,\n uiBlockId: string,\n responseMode?: 'component' | 'text',\n onStream?: (chunk: string) => void,\n timeout?: number\n ): Promise<Message> {\n this.log('info', 'Sending user prompt request with streaming support');\n return services.sendUserPromptRequest(this, prompt, threadId, uiBlockId, responseMode, onStream, timeout);\n }\n\n /**\n * Send a user prompt suggestions request\n * Delegates to user prompt service\n */\n async sendUserPromptSuggestionsRequest(\n prompt: string,\n limit: number = 5,\n timeout?: number\n ): Promise<Message | null> {\n this.log('info', 'Sending user prompt suggestions request');\n return services.sendUserPromptSuggestionsRequest(this, prompt, limit, timeout);\n }\n\n /**\n * Request bundle from server\n * Delegates to bundle service\n */\n async requestBundle(options?: {\n timeout?: number;\n onProgress?: (progress: number) => void;\n devbundle?: boolean;\n }): Promise<string> {\n this.log('info', 'Requesting bundle from server');\n return services.requestBundle(this, options);\n }\n\n /**\n * Request data from a collection\n * Delegates to data service\n */\n async requestData(options: {\n collection: string;\n operation: string;\n params?: Record<string, unknown>;\n SA_RUNTIME?: Record<string, unknown>;\n timeout?: number;\n }): Promise<{ data?: unknown; error?: string }> {\n this.log('info', `Requesting data from collection: ${options.collection}, operation: ${options.operation}`);\n return services.requestData(this, options);\n }\n\n /**\n * Get AI-powered component suggestions based on a query\n * Delegates to component service\n */\n async getComponentSuggestions(\n query: string,\n options?: { timeout?: number }\n ): Promise<{ component?: { id: string; name: string }; error?: string }> {\n this.log('info', 'Requesting component suggestions for query:', query);\n return services.getComponentSuggestions(this, query, options);\n }\n\n /**\n * Get AI-powered component suggestions based on a query\n * Delegates to component service\n */\n async getActions(\n options: { \n SA_RUNTIME?: Record<string, unknown>;\n timeout?: number \n }\n ): Promise<{ success: boolean; data?: unknown; error?: string }> {\n this.log('info', 'Requesting actions');\n return services.getActions(this, options);\n }\n\n async sendComponents(\n components: any[],\n ) {\n this.log('info', 'Sending components');\n return services.sendComponents(this, components);\n }\n\n // ==================== User Management Methods ====================\n // These methods delegate to user service for admin user CRUD operations\n\n /**\n * Create a new user\n * Delegates to users service\n */\n async createUser(\n username: string,\n password: string,\n email?: string,\n fullname?: string,\n role?: string,\n userInfo?: Record<string, unknown>,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n this.log('info', 'Creating user:', username);\n return services.createUser(this, username, password, email, fullname, role, userInfo, timeout);\n }\n\n /**\n * Update an existing user\n * Delegates to users service\n */\n async updateUser(\n id: number,\n updates: {\n password?: string;\n email?: string;\n fullname?: string;\n role?: string;\n userInfo?: Record<string, unknown>;\n },\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n this.log('info', 'Updating user:', id);\n return services.updateUser(this, id, updates, timeout);\n }\n\n /**\n * Delete a user\n * Delegates to users service\n */\n async deleteUser(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; username?: string; email?: string; fullname?: string; role?: string }> {\n this.log('info', 'Deleting user:', id);\n return services.deleteUser(this, id, timeout);\n }\n\n /**\n * Get all users\n * Delegates to users service\n */\n async getAllUsers(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; users?: services.User[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all users');\n return services.getAllUsers(this, timeout);\n }\n\n /**\n * Get a specific user by username\n * Delegates to users service\n */\n async getUser(\n username: string,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; user?: services.User; message?: string }> {\n this.log('info', 'Fetching user:', username);\n return services.getUser(this, username, timeout);\n }\n\n /**\n * Query users with filters, limit, and sort\n * Delegates to users service\n */\n async queryUsers(\n options: services.QueryUsersOptions = {},\n timeout?: number\n ): Promise<{ success: boolean; error?: string; users?: services.User[]; count?: number; message?: string }> {\n this.log('info', 'Querying users with filters:', options.filters);\n return services.queryUsers(this, options, timeout);\n }\n\n // ==================== Dashboard Management Methods ====================\n // These methods delegate to dashboard service for admin dashboard CRUD operations\n\n /**\n * Create a new dashboard\n * Delegates to dashboards service\n */\n async createDashboard(\n options: services.CreateDashboardOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; dashboardId?: string; dashboard?: services.DSLRendererProps }> {\n this.log('info', 'Creating dashboard:', options.dashboardId, options.projectId);\n return services.createDashboard(this, options, timeout);\n }\n\n /**\n * Update an existing dashboard\n * Delegates to dashboards service\n */\n async updateDashboard(\n options: services.UpdateDashboardOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; dashboardId?: string; dashboard?: services.DSLRendererProps }> {\n this.log('info', 'Updating dashboard:', options.id);\n return services.updateDashboard(this, options, timeout);\n }\n\n /**\n * Delete a dashboard\n * Delegates to dashboards service\n */\n async deleteDashboard(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n this.log('info', 'Deleting dashboard:', id);\n return services.deleteDashboard(this, id, timeout);\n }\n\n /**\n * Get all dashboards\n * Delegates to dashboards service\n */\n async getAllDashboards(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; dashboards?: services.Dashboard[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all dashboards');\n return services.getAllDashboards(this, timeout);\n }\n\n /**\n * Get a specific dashboard by ID\n * Delegates to dashboards service\n */\n async getDashboard(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; id?: number; dashboardId?: string; dashboard?: services.DSLRendererProps; message?: string }> {\n this.log('info', 'Fetching dashboard:', id);\n return services.getDashboard(this, id, timeout);\n }\n\n /**\n * Query dashboards with filters\n * Delegates to dashboards service\n */\n async queryDashboards(\n options?: services.QueryDashboardsOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; dashboards?: services.Dashboard[]; count?: number; message?: string }> {\n this.log('info', 'Querying dashboards with filters:', options?.filters);\n return services.queryDashboards(this, options, timeout);\n }\n\n // ==================== Bookmark Management Methods ====================\n // These methods delegate to bookmark service for bookmark CRUD operations\n\n /**\n * Create a new bookmark\n * Delegates to bookmarks service\n */\n async createBookmark(\n options: services.CreateBookmarkOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\n this.log('info', 'Creating bookmark for user:', options.userId);\n return services.createBookmark(this, options, timeout);\n }\n\n /**\n * Update an existing bookmark\n * Delegates to bookmarks service\n */\n async updateBookmark(\n options: services.UpdateBookmarkOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\n this.log('info', 'Updating bookmark:', options.id);\n return services.updateBookmark(this, options, timeout);\n }\n\n /**\n * Delete a bookmark\n * Delegates to bookmarks service\n */\n async deleteBookmark(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; data?: services.Bookmark }> {\n this.log('info', 'Deleting bookmark:', id);\n return services.deleteBookmark(this, id, timeout);\n }\n\n /**\n * Get all bookmarks\n * Delegates to bookmarks service\n */\n async getAllBookmarks(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all bookmarks');\n return services.getAllBookmarks(this, timeout);\n }\n\n /**\n * Get a specific bookmark by ID\n * Delegates to bookmarks service\n */\n async getBookmark(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark; message?: string }> {\n this.log('info', 'Fetching bookmark:', id);\n return services.getBookmark(this, id, timeout);\n }\n\n /**\n * Query bookmarks with filters, limit, and sort\n * Delegates to bookmarks service\n */\n async queryBookmarks(\n options: services.QueryBookmarksOptions = {},\n timeout?: number\n ): Promise<{ success: boolean; error?: string; data?: services.Bookmark[]; count?: number; message?: string }> {\n this.log('info', 'Querying bookmarks with filters:', options.filters);\n return services.queryBookmarks(this, options, timeout);\n }\n\n // ==================== Report Management Methods ====================\n // These methods delegate to report service for admin report CRUD operations\n\n /**\n * Create a new report\n * Delegates to reports service\n */\n async createReport(\n options: services.CreateReportOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; reportId?: string; report?: services.ReportDSLRendererProps }> {\n this.log('info', 'Creating report:', options.reportId);\n return services.createReport(this, options, timeout);\n }\n\n /**\n * Update an existing report\n * Delegates to reports service\n */\n async updateReport(\n options: services.UpdateReportOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; reportId?: string; report?: services.ReportDSLRendererProps }> {\n this.log('info', 'Updating report:', options.id);\n return services.updateReport(this, options, timeout);\n }\n\n /**\n * Delete a report\n * Delegates to reports service\n */\n async deleteReport(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n this.log('info', 'Deleting report:', id);\n return services.deleteReport(this, id, timeout);\n }\n\n /**\n * Get all reports\n * Delegates to reports service\n */\n async getAllReports(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; reports?: services.Report[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all reports');\n return services.getAllReports(this, timeout);\n }\n\n /**\n * Get a specific report by ID\n * Delegates to reports service\n */\n async getReport(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; id?: number; reportId?: string; report?: services.ReportDSLRendererProps; message?: string }> {\n this.log('info', 'Fetching report:', id);\n return services.getReport(this, id, timeout);\n }\n\n /**\n * Query reports with filters\n * Delegates to reports service\n */\n async queryReports(\n options?: services.QueryReportsOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; reports?: services.Report[]; count?: number; message?: string }> {\n this.log('info', 'Querying reports with filters:', options?.filters);\n return services.queryReports(this, options, timeout);\n }\n\n // ==================== UI Management Methods ====================\n // These methods delegate to uis service for admin UI CRUD operations\n\n /**\n * Create a new UI\n * Delegates to uis service\n */\n async createUI(\n options: services.CreateUIOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps }> {\n this.log('info', 'Creating UI:', options.uiId);\n return services.createUI(this, options, timeout);\n }\n\n /**\n * Update an existing UI\n * Delegates to uis service\n */\n async updateUI(\n options: services.UpdateUIOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps }> {\n this.log('info', 'Updating UI:', options.id);\n return services.updateUI(this, options, timeout);\n }\n\n /**\n * Delete a UI\n * Delegates to uis service\n */\n async deleteUI(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; id?: number }> {\n this.log('info', 'Deleting UI:', id);\n return services.deleteUI(this, id, timeout);\n }\n\n /**\n * Get all UIs\n * Delegates to uis service\n */\n async getAllUIs(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; uis?: services.UI[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all UIs');\n return services.getAllUIs(this, timeout);\n }\n\n /**\n * Get a specific UI by ID\n * Delegates to uis service\n */\n async getUI(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; id?: number; uiId?: string; ui?: services.DSLRendererProps; message?: string }> {\n this.log('info', 'Fetching UI:', id);\n return services.getUI(this, id, timeout);\n }\n\n /**\n * Query UIs with filters\n * Delegates to uis service\n */\n async queryUIs(\n options?: services.QueryUIsOptions,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; uis?: services.UI[]; count?: number; message?: string }> {\n this.log('info', 'Querying UIs with filters:', options?.filters);\n return services.queryUIs(this, options, timeout);\n }\n\n // ==================== KB Nodes (Knowledge Base) Management Methods ====================\n // These methods delegate to kb-nodes service for knowledge base CRUD operations\n\n /**\n * Create a new knowledge base node\n * Delegates to kb-nodes service\n */\n async createKbNode(\n title: string,\n content: string,\n createdBy: number,\n category?: string,\n tags?: string[],\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; node?: services.KbNode }> {\n this.log('info', 'Creating KB node:', title);\n return services.createKbNode(this, title, content, createdBy, category, tags, timeout);\n }\n\n /**\n * Update an existing knowledge base node\n * Delegates to kb-nodes service\n */\n async updateKbNode(\n id: number,\n updatedBy: number,\n updates: {\n title?: string;\n content?: string;\n category?: string;\n tags?: string[];\n },\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string; node?: services.KbNode }> {\n this.log('info', 'Updating KB node:', id);\n return services.updateKbNode(this, id, updatedBy, updates, timeout);\n }\n\n /**\n * Delete a knowledge base node\n * Delegates to kb-nodes service\n */\n async deleteKbNode(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; message?: string }> {\n this.log('info', 'Deleting KB node:', id);\n return services.deleteKbNode(this, id, timeout);\n }\n\n /**\n * Get all knowledge base nodes\n * Delegates to kb-nodes service\n */\n async getAllKbNodes(\n limit?: number,\n offset?: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; message?: string }> {\n this.log('info', 'Fetching all KB nodes');\n return services.getAllKbNodes(this, limit, offset, timeout);\n }\n\n /**\n * Get a specific knowledge base node by ID\n * Delegates to kb-nodes service\n */\n async getKbNode(\n id: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; node?: services.KbNode; message?: string }> {\n this.log('info', 'Fetching KB node:', id);\n return services.getKbNode(this, id, timeout);\n }\n\n /**\n * Search knowledge base nodes with full-text search and filters\n * Delegates to kb-nodes service\n */\n async searchKbNodes(\n options: services.SearchKbNodesOptions = {},\n timeout?: number\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; message?: string }> {\n this.log('info', 'Searching KB nodes with query:', options.query);\n return services.searchKbNodes(this, options, timeout);\n }\n\n /**\n * Get knowledge base nodes by category\n * Delegates to kb-nodes service\n */\n async getKbNodesByCategory(\n category: string,\n limit?: number,\n offset?: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; category?: string; message?: string }> {\n this.log('info', 'Fetching KB nodes by category:', category);\n return services.getKbNodesByCategory(this, category, limit, offset, timeout);\n }\n\n /**\n * Get knowledge base nodes by user (creator)\n * Delegates to kb-nodes service\n */\n async getKbNodesByUser(\n userId: number,\n limit?: number,\n offset?: number,\n timeout?: number\n ): Promise<{ success: boolean; error?: string; nodes?: services.KbNode[]; count?: number; userId?: number; message?: string }> {\n this.log('info', 'Fetching KB nodes by user:', userId);\n return services.getKbNodesByUser(this, userId, limit, offset, timeout);\n }\n\n /**\n * Get all unique categories from knowledge base nodes\n * Delegates to kb-nodes service\n */\n async getKbNodeCategories(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; categories?: string[]; count?: number; message?: string }> {\n this.log('info', 'Fetching KB node categories');\n return services.getKbNodeCategories(this, timeout);\n }\n\n /**\n * Get all unique tags from knowledge base nodes\n * Delegates to kb-nodes service\n */\n async getKbNodeTags(\n timeout?: number\n ): Promise<{ success: boolean; error?: string; tags?: string[]; count?: number; message?: string }> {\n this.log('info', 'Fetching KB node tags');\n return services.getKbNodeTags(this, timeout);\n }\n\n // ==================== Dashboard Component Methods ====================\n // These methods delegate to dash-comp service for component selection\n\n /**\n * Request a dashboard component based on user prompt\n * Uses LLM to pick the best component and generate props\n * Supports both database queries and external tools as data sources\n * Delegates to dash-comp service\n *\n * @example\n * ```typescript\n * const response = await client.sendDashCompRequest({\n * prompt: \"Show me a bar chart of sales by category\",\n * threadId: \"thread-123\",\n * });\n *\n * if (response.success && response.component) {\n * console.log('Component:', response.component.name);\n * console.log('Props:', response.component.props);\n * console.log('Data source:', response.dataSource);\n * }\n * ```\n */\n async sendDashCompRequest(\n options: services.DashCompRequestOptions\n ): Promise<services.DashCompResponse> {\n this.log('info', 'Sending dash comp request for prompt:', options.prompt.substring(0, 50) + '...');\n return services.sendDashCompRequest(this, options);\n }\n\n /**\n * Internal logging\n */\n private log(level: 'info' | 'warn' | 'error' | 'debug', ...args: any[]): void {\n if (!this.config.debug && level === 'debug') {\n return;\n }\n console[level]('[SuperAtom]', ...args);\n }\n}\n","/**\n * Component mount function type\n */\nexport type MountFunction = (\n Component: any,\n container: HTMLElement,\n props?: Record<string, any>\n) => { unmount: () => void };\n\n/**\n * Components registry interface\n */\nexport interface ComponentsRegistry {\n [key: string]: any;\n mount: MountFunction;\n}\n\n/**\n * SuperAtom global interface\n */\nexport interface SuperAtomGlobal {\n COMPONENTS?: ComponentsRegistry;\n wsClient?: any;\n runtime?: {\n componentsLoaded?: () => void;\n };\n}\n\ndeclare global {\n interface Window {\n SUPERATOM?: SuperAtomGlobal;\n SA?: SuperAtomGlobal;\n }\n}\n\n/**\n * Setup function to register components with SuperAtom\n * This makes components available to the runtime for dynamic rendering\n */\nexport function setup(components: ComponentsRegistry): void {\n // Initialize global namespace\n if (typeof window === 'undefined') {\n throw new Error('setup() can only be called in a browser environment');\n }\n\n window.SUPERATOM = window.SUPERATOM || {};\n window.SA = window.SUPERATOM; // Alias for convenience\n\n // Register components\n window.SUPERATOM.COMPONENTS = components;\n\n // Notify runtime that components are loaded\n if (window.SUPERATOM.runtime?.componentsLoaded) {\n window.SUPERATOM.runtime.componentsLoaded();\n }\n}\n\n/**\n * Get registered components\n */\nexport function getComponents(): ComponentsRegistry | undefined {\n if (typeof window === 'undefined') {\n return undefined;\n }\n return window.SUPERATOM?.COMPONENTS;\n}\n\n/**\n * Get a specific component by name\n */\nexport function getComponent(name: string): any {\n if (typeof window === 'undefined') {\n return undefined;\n }\n return window.SUPERATOM?.COMPONENTS?.[name];\n}\n\n/**\n * Check if components are registered\n */\nexport function hasComponents(): boolean {\n if (typeof window === 'undefined') {\n return false;\n }\n return !!window.SUPERATOM?.COMPONENTS;\n}\n","/**\n * @superatom/sdk-web\n * SuperAtom Web SDK - TypeScript SDK for browser-based WebSocket communication\n */\n\nexport const SDK_VERSION = '0.1.0';\n\n// Export client\nexport { SuperatomClient } from './client';\n\n// Export schemas and types\nexport type {\n Message,\n MessageParticipant,\n // Auth\n AuthLoginPayload,\n AuthLoginRequestMessage,\n AuthLoginResponsePayload,\n AuthLoginResponseMessage,\n AuthVerifyPayload,\n AuthVerifyRequestMessage,\n AuthVerifyResponsePayload,\n AuthVerifyResponseMessage,\n // User Prompt\n UserPromptRequestPayload,\n UserPromptRequestMessage,\n UserPromptResponsePayload,\n UserPromptResponseMessage,\n Component,\n // User Prompt Suggestions\n UserPromptSuggestionsRequestPayload,\n UserPromptSuggestionsRequestMessage,\n UserPromptSuggestionsResponsePayload,\n UserPromptSuggestionsResponseMessage,\n // Bundle\n BundleRequestPayload,\n BundleRequestMessage,\n BundleChunkPayload,\n BundleChunkMessage,\n BundleErrorPayload,\n BundleErrorMessage,\n // Data\n DataRequestPayload,\n DataRequestMessage,\n DataResponsePayload,\n DataResponseMessage,\n // UI Logs\n UILogEntry,\n UILogsPayload,\n UILogsMessage,\n // Actions\n ActionsRequestPayload,\n ActionsRequestMessage,\n ActionsResponsePayload,\n ActionsResponseMessage,\n // Components\n ComponentsSendPayload,\n ComponentsSendMessage,\n // KB Nodes\n KbNodeData,\n KbNodesQueryFilters,\n KbNodesRequestPayload,\n KbNodesRequestMessage,\n KbNodesResponsePayload,\n KbNodesResponseMessage,\n // Config\n ClientConfig,\n ResolvedClientConfig,\n} from './types';\n\nexport {\n MessageSchema,\n MessageParticipantSchema,\n // Auth\n AuthLoginPayloadSchema,\n AuthLoginRequestMessageSchema,\n AuthLoginResponsePayloadSchema,\n AuthLoginResponseMessageSchema,\n AuthVerifyPayloadSchema,\n AuthVerifyRequestMessageSchema,\n AuthVerifyResponsePayloadSchema,\n AuthVerifyResponseMessageSchema,\n // User Prompt\n UserPromptRequestPayloadSchema,\n UserPromptRequestMessageSchema,\n UserPromptResponsePayloadSchema,\n UserPromptResponseMessageSchema,\n ComponentSchema,\n // User Prompt Suggestions\n UserPromptSuggestionsRequestPayloadSchema,\n UserPromptSuggestionsRequestMessageSchema,\n UserPromptSuggestionsResponsePayloadSchema,\n UserPromptSuggestionsResponseMessageSchema,\n // Bundle\n BundleRequestPayloadSchema,\n BundleRequestMessageSchema,\n BundleChunkPayloadSchema,\n BundleChunkMessageSchema,\n BundleErrorPayloadSchema,\n BundleErrorMessageSchema,\n // Data\n DataRequestPayloadSchema,\n DataRequestMessageSchema,\n DataResponsePayloadSchema,\n DataResponseMessageSchema,\n // UI Logs\n UILogEntrySchema,\n UILogsPayloadSchema,\n UILogsMessageSchema,\n // Actions\n ActionsRequestPayloadSchema,\n ActionsRequestMessageSchema,\n ActionsResponsePayloadSchema,\n ActionsResponseMessageSchema,\n // Components\n ComponentsSendPayloadSchema,\n ComponentsSendMessageSchema,\n // KB Nodes\n KbNodeDataSchema,\n KbNodesQueryFiltersSchema,\n KbNodesRequestPayloadSchema,\n KbNodesRequestMessageSchema,\n KbNodesResponsePayloadSchema,\n KbNodesResponseMessageSchema,\n // Config\n ClientConfigSchema,\n} from './types';\n\n// Export setup utilities\nexport type { ComponentsRegistry, MountFunction, SuperAtomGlobal } from './setup';\nexport { setup, getComponents, getComponent, hasComponents } from './setup';\n\n// Export services (for advanced usage - users can call services directly if needed)\nexport * as services from './services';\n"]}
|