@elqnt/workflow 2.1.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/SKILL.md +442 -0
- package/dist/api/index.d.mts +1 -1
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +3 -4
- package/dist/api/index.js.map +1 -1
- package/dist/api/index.mjs +1 -2
- package/dist/chunk-3GG6KTGJ.js +998 -0
- package/dist/chunk-3GG6KTGJ.js.map +1 -0
- package/dist/{chunk-UE4ZBFLG.mjs → chunk-4AUWFGQK.mjs} +1 -3
- package/dist/{chunk-UE4ZBFLG.mjs.map → chunk-4AUWFGQK.mjs.map} +1 -1
- package/dist/{chunk-H24IF5AA.js → chunk-6DV2LPSN.js} +2 -4
- package/dist/chunk-6DV2LPSN.js.map +1 -0
- package/dist/chunk-AXXQSYT7.mjs +998 -0
- package/dist/chunk-AXXQSYT7.mjs.map +1 -0
- package/dist/{chunk-YCEGKVXP.mjs → chunk-IY5JCMLA.mjs} +1 -3
- package/dist/{chunk-YCEGKVXP.mjs.map → chunk-IY5JCMLA.mjs.map} +1 -1
- package/dist/{chunk-JES2EBNO.js → chunk-YCO5IFZK.js} +2 -4
- package/dist/chunk-YCO5IFZK.js.map +1 -0
- package/dist/components/index.d.mts +245 -0
- package/dist/components/index.d.ts +245 -0
- package/dist/components/index.js +10 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index.mjs +10 -0
- package/dist/components/index.mjs.map +1 -0
- package/dist/hooks/index.d.mts +106 -17
- package/dist/hooks/index.d.ts +106 -17
- package/dist/hooks/index.js +403 -5
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/index.mjs +404 -6
- package/dist/hooks/index.mjs.map +1 -1
- package/dist/index.d.mts +6 -247
- package/dist/index.d.ts +6 -247
- package/dist/index.js +8 -1006
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -1003
- package/dist/index.mjs.map +1 -1
- package/dist/models/index.d.mts +1 -1
- package/dist/models/index.d.ts +1 -1
- package/dist/models/index.js +3 -4
- package/dist/models/index.js.map +1 -1
- package/dist/models/index.mjs +1 -2
- package/dist/{workflow-NznrS9yA.d.ts → workflow-DcJCCEND.d.mts} +1 -1
- package/dist/{workflow-NznrS9yA.d.mts → workflow-DcJCCEND.d.ts} +1 -1
- package/package.json +12 -6
- package/dist/chunk-F5G2ALFS.js +0 -391
- package/dist/chunk-F5G2ALFS.js.map +0 -1
- package/dist/chunk-H24IF5AA.js.map +0 -1
- package/dist/chunk-JES2EBNO.js.map +0 -1
- package/dist/chunk-TZA3EPTC.mjs +0 -391
- package/dist/chunk-TZA3EPTC.mjs.map +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/workflow/dist/index.js","../components/dynamic-schema-form.tsx","../components/schema-builder.tsx","../store/workflow-definition-slice.ts","../store/workflow-instance-slice.ts","../schema/schemas.ts"],"names":[],"mappings":"AAAA,6rBAAY;AACZ;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AC5KA,8BAAkC;AAuQtB,+CAAA;AAzIL,SAAS,iBAAA,CAAkB;AAAA,EAChC,MAAA;AAAA,EACA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACT,QAAA;AAAA,EACA,SAAA,EAAW,KAAA;AAAA,EACX,KAAA,EAAO,CAAC,CAAA;AAAA,EACR,UAAA;AAAA,EACA,UAAA,EAAY,CAAC,CAAA;AAAA,EACb,mBAAA,EAAqB;AACvB,CAAA,EAA2B;AACzB,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,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;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACO,IAAA;AACjB,EAAA;AACF,EAAA;AACqB,IAAA;AACX,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACM,UAAA;AACL,QAAA;AACZ,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACa,UAAA;AACH,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACE,UAAA;AACH,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACC,UAAA;AACH,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACa,UAAA;AACH,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACiB,IAAA;AACP,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACK,UAAA;AACP,UAAA;AACC,UAAA;AACS,QAAA;AACpB,QAAA;AACmB,UAAA;AACT,UAAA;AACC,UAAA;AACM,UAAA;AACG,QAAA;AACpB,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACS,QAAA;AACpB,QAAA;AACU,UAAA;AACA,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACkB,QAAA;AACpB,QAAA;AACQ,UAAA;AACE,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,UAAA;AACF,UAAA;AACkB,QAAA;AACpB,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACO,QAAA;AACpB,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,UAAA;AACO,QAAA;AACpB,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACO,QAAA;AACpB,QAAA;AACO,UAAA;AACG,UAAA;AACC,UAAA;AACS,QAAA;AACpB,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACyB,IAAA;AACf,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACU,UAAA;AACZ,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACI,UAAA;AACN,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC4B,IAAA;AAClB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACU,UAAA;AACA,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACA,UAAA;AACF,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC4B,IAAA;AAClB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC4B,IAAA;AAClB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACI,UAAA;AACN,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACqB,IAAA;AACX,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACO,UAAA;AACT,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACmB,UAAA;AACT,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACkB,UAAA;AACR,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACkB,UAAA;AACR,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACA,QAAA;AACb,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACO,MAAA;AACD,QAAA;AACG,UAAA;AACL,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACoB,UAAA;AACV,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC4B,IAAA;AAClB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACQ,UAAA;AACE,UAAA;AACC,UAAA;AACM,UAAA;AACJ,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACM,UAAA;AACJ,UAAA;AACA,QAAA;AACb,QAAA;AACU,UAAA;AACA,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACa,UAAA;AACH,UAAA;AACC,UAAA;AACM,UAAA;AACP,YAAA;AACN,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACJ,UAAA;AACE,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACM,UAAA;AACN,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACc,UAAA;AACJ,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACmB,IAAA;AACT,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACL,UAAA;AACG,UAAA;AACC,QAAA;AACX,QAAA;AACQ,UAAA;AACE,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACM,UAAA;AACI,UAAA;AACC,QAAA;AACX,QAAA;AACQ,UAAA;AACE,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACM,UAAA;AACI,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACC,UAAA;AACH,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACiB,IAAA;AACP,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACM,UAAA;AACI,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACsB,IAAA;AACZ,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,IAAA;AACX,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AAC4B,IAAA;AAClB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACU,UAAA;AACA,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACa,IAAA;AACH,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACC,UAAA;AACH,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACuB,IAAA;AACb,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACC,QAAA;AACZ,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACuB,IAAA;AACb,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACA,YAAA;AACC,YAAA;AACM,cAAA;AACG,gBAAA;AACL,gBAAA;AACC,cAAA;AACX,cAAA;AACM,gBAAA;AACI,gBAAA;AACC,cAAA;AACX,cAAA;AACQ,gBAAA;AACE,gBAAA;AACC,cAAA;AACX,cAAA;AACU,gBAAA;AACA,gBAAA;AACC,cAAA;AACX,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACD,UAAA;AACD,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACE,UAAA;AACJ,QAAA;AACV,QAAA;AACU,UAAA;AACA,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACuB,IAAA;AACb,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACF,UAAA;AACA,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACH,UAAA;AACC,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACG,UAAA;AACL,UAAA;AACC,YAAA;AACC,UAAA;AACV,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACmB,IAAA;AACT,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACc,UAAA;AACJ,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACA,UAAA;AACF,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACyB,IAAA;AACf,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACK,UAAA;AACP,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACwB,IAAA;AACd,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACD,UAAA;AACD,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACS,IAAA;AACC,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACQ,UAAA;AACE,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACuB,IAAA;AACb,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACC,UAAA;AACH,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACA,UAAA;AACF,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACyB,IAAA;AACf,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACmB,UAAA;AACT,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACa,UAAA;AACH,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACwB,IAAA;AACd,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACc,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACqB,IAAA;AACX,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACkB,UAAA;AACR,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACC,QAAA;AACZ,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACA,UAAA;AACF,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC0B,IAAA;AAChB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACC,UAAA;AACH,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACY,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACa,UAAA;AACH,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACD,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC2B,IAAA;AACjB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACF,UAAA;AACA,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACJ,UAAA;AACE,UAAA;AACM,YAAA;AACG,cAAA;AACL,cAAA;AACC,YAAA;AACX,YAAA;AACM,cAAA;AACI,cAAA;AACC,YAAA;AACX,YAAA;AACY,cAAA;AACF,cAAA;AACC,YAAA;AACX,YAAA;AACQ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACQ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACW,cAAA;AACD,cAAA;AACC,YAAA;AACX,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC6B,IAAA;AACnB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACA,QAAA;AACb,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACM,UAAA;AACL,QAAA;AACZ,QAAA;AACW,UAAA;AACD,UAAA;AACC,UAAA;AACM,UAAA;AACL,QAAA;AACZ,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACF,UAAA;AACA,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC0B,IAAA;AAChB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACA,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACH,UAAA;AACC,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC2B,IAAA;AACjB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACC,UAAA;AACH,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACA,QAAA;AACb,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACF,UAAA;AACA,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACwB,IAAA;AACd,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACJ,UAAA;AACE,UAAA;AACC,UAAA;AACC,QAAA;AACZ,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACE,UAAA;AACH,YAAA;AACN,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACM,UAAA;AACI,UAAA;AACC,QAAA;AACX,QAAA;AACoB,UAAA;AACV,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACM,UAAA;AACI,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACC,UAAA;AACH,UAAA;AACC,QAAA;AACX,QAAA;AACQ,UAAA;AACE,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACY,IAAA;AACF,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACiB,UAAA;AACP,UAAA;AACC,QAAA;AACX,QAAA;AACgB,UAAA;AACN,UAAA;AACC,QAAA;AACX,QAAA;AACiB,UAAA;AACP,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACW,IAAA;AACD,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,UAAA;AACM,UAAA;AACN,YAAA;AACC,YAAA;AACM,cAAA;AACH,gBAAA;AACC,gBAAA;AACC,gBAAA;AACM,cAAA;AACjB,cAAA;AACY,gBAAA;AACF,gBAAA;AACC,gBAAA;AACD,kBAAA;AACN,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,kBAAA;AACA,gBAAA;AACF,cAAA;AACF,cAAA;AACS,gBAAA;AACC,gBAAA;AACC,gBAAA;AACM,cAAA;AACjB,YAAA;AACF,YAAA;AACY,cAAA;AACV,cAAA;AACA,YAAA;AACF,UAAA;AACF,QAAA;AACF,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACc,UAAA;AACJ,UAAA;AACC,UAAA;AACM,UAAA;AACL,QAAA;AACZ,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACM,UAAA;AACJ,UAAA;AACH,YAAA;AACN,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACS,UAAA;AACC,UAAA;AACC,UAAA;AACM,UAAA;AACN,YAAA;AACC,YAAA;AACM,cAAA;AACC,gBAAA;AACH,gBAAA;AACC,gBAAA;AACD,kBAAA;AACN,kBAAA;AACA,gBAAA;AACF,cAAA;AACF,cAAA;AACM,gBAAA;AACI,gBAAA;AACC,cAAA;AACX,cAAA;AACU,gBAAA;AACA,gBAAA;AACC,cAAA;AACX,YAAA;AACF,YAAA;AACY,cAAA;AACV,cAAA;AACA,YAAA;AACF,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACO,UAAA;AACT,QAAA;AACV,QAAA;AACa,UAAA;AACH,QAAA;AACV,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACe,IAAA;AACL,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACH,UAAA;AACC,UAAA;AACC,UAAA;AACA,YAAA;AACC,YAAA;AACM,cAAA;AACF,gBAAA;AACA,gBAAA;AACC,cAAA;AACX,cAAA;AACS,gBAAA;AACC,gBAAA;AACC,cAAA;AACX,YAAA;AACF,UAAA;AACF,QAAA;AACF,QAAA;AACc,UAAA;AACJ,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACwB,IAAA;AACd,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,UAAA;AACM,UAAA;AACJ,UAAA;AACA,UAAA;AACA,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACH,UAAA;AACC,UAAA;AACM,YAAA;AACC,cAAA;AACH,cAAA;AACC,cAAA;AACA,gBAAA;AACC,cAAA;AACV,YAAA;AACF,YAAA;AACe,cAAA;AACL,cAAA;AACC,YAAA;AACX,YAAA;AACW,cAAA;AACD,cAAA;AACC,cAAA;AACC,YAAA;AACZ,YAAA;AACM,cAAA;AACI,cAAA;AACC,YAAA;AACX,YAAA;AACY,cAAA;AACF,cAAA;AACC,YAAA;AACX,YAAA;AACa,cAAA;AACH,cAAA;AACC,cAAA;AACC,YAAA;AACZ,YAAA;AACS,cAAA;AACC,cAAA;AACC,YAAA;AACX,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC2B,IAAA;AACjB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACa,UAAA;AACH,UAAA;AACC,UAAA;AACM,UAAA;AACN,YAAA;AACC,UAAA;AACV,QAAA;AACF,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,QAAA;AACA,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACJ,UAAA;AACE,UAAA;AACM,YAAA;AACC,cAAA;AACH,cAAA;AACC,cAAA;AACC,YAAA;AACZ,YAAA;AACM,cAAA;AACI,cAAA;AACC,YAAA;AACX,YAAA;AACY,cAAA;AACF,cAAA;AACC,YAAA;AACX,YAAA;AACQ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACQ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACW,cAAA;AACD,cAAA;AACC,YAAA;AACX,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACwB,IAAA;AACd,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACiB,UAAA;AACP,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACE,QAAA;AACb,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACgB,UAAA;AACN,UAAA;AACC,UAAA;AACE,UAAA;AACA,UAAA;AACA,QAAA;AACb,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACD,YAAA;AACN,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,UAAA;AACF,QAAA;AACF,QAAA;AACiB,UAAA;AACP,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACH,UAAA;AACC,UAAA;AACM,YAAA;AACJ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACQ,cAAA;AACE,cAAA;AACC,cAAA;AACC,YAAA;AACZ,YAAA;AACQ,cAAA;AACE,cAAA;AACC,YAAA;AACX,YAAA;AACM,cAAA;AACI,cAAA;AACC,YAAA;AACX,YAAA;AACW,cAAA;AACD,cAAA;AACC,YAAA;AACX,YAAA;AACW,cAAA;AACD,cAAA;AACC,YAAA;AACX,YAAA;AACM,cAAA;AACI,cAAA;AACC,YAAA;AACX,UAAA;AACF,QAAA;AACF,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC8B,IAAA;AACpB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACE,UAAA;AACJ,QAAA;AACV,QAAA;AACkB,UAAA;AACR,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACkB,UAAA;AACR,UAAA;AACC,QAAA;AACX,QAAA;AACU,UAAA;AACA,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC8B,IAAA;AACpB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACE,UAAA;AACJ,QAAA;AACV,QAAA;AACkB,UAAA;AACR,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACkB,UAAA;AACR,UAAA;AACC,QAAA;AACX,QAAA;AACU,UAAA;AACA,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AAC8B,IAAA;AACpB,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACW,UAAA;AACD,UAAA;AACC,QAAA;AACX,QAAA;AACe,UAAA;AACL,UAAA;AACC,UAAA;AACA,YAAA;AACC,UAAA;AACV,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,MAAA;AACM,QAAA;AACE,UAAA;AACJ,QAAA;AACV,QAAA;AACkB,UAAA;AACR,QAAA;AACV,MAAA;AACF,IAAA;AACF,IAAA;AACU,MAAA;AACA,MAAA;AACM,QAAA;AACE,UAAA;AACJ,UAAA;AACC,QAAA;AACX,QAAA;AACkB,UAAA;AACR,UAAA;AACC,QAAA;AACX,QAAA;AACU,UAAA;AACA,UAAA;AACC,UAAA;AACM,QAAA;AACjB,MAAA;AACF,IAAA;AACF,EAAA;AACF,EAAA;AACqB,IAAA;AACX,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACO,UAAA;AACT,UAAA;AACC,UAAA;AACE,QAAA;AACb,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACoB,IAAA;AACV,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,QAAA;AACX,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACqB,IAAA;AACX,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACA,UAAA;AACF,UAAA;AACC,QAAA;AACX,QAAA;AACoB,UAAA;AACV,UAAA;AACC,UAAA;AACE,UAAA;AACA,QAAA;AACb,MAAA;AACF,IAAA;AACF,IAAA;AACS,MAAA;AACC,IAAA;AACV,IAAA;AACU,MAAA;AACA,IAAA;AACV,EAAA;AACF,EAAA;AACmB,IAAA;AACT,IAAA;AACG,IAAA;AACF,IAAA;AACD,IAAA;AACO,IAAA;AACH,IAAA;AACF,MAAA;AACA,MAAA;AACC,MAAA;AACK,QAAA;AACG,UAAA;AACL,UAAA;AACC,QAAA;AACX,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACM,QAAA;AACjB,QAAA;AACY,UAAA;AACF,UAAA;AACC,UAAA;AACE,UAAA;AACH,YAAA;AACN,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,UAAA;AACgB,YAAA;AACd,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,UAAA;AACF,QAAA;AACF,MAAA;AACF,MAAA;AACY,QAAA;AACV,MA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AAA;AACrC,EAAA;AAE1E;AAmBO;AAA8D,EAAA;AACnD,IAAA;AACL,IAAA;AACA,EAAA;AACX,EAAA;AACe,IAAA;AACJ,IAAA;AACA,EAAA;AACX,EAAA;AACW,IAAA;AACA,IAAA;AACA,EAAA;AACX,EAAA;AACS,IAAA;AACE,IAAA;AACA,EAAA;AACX,EAAA;AACY,IAAA;AACD,IAAA;AACA,EAAA;AACX,EAAA;AACS,IAAA;AACE,IAAA;AACA,EAAA;AACX,EAAA;AACU,IAAA;AACC,IAAA;AACA,EAAA;AACX,EAAA;AACY,IAAA;AACD,IAAA;AACA,EAAA;AACX,EAAA;AACW,IAAA;AACA,IAAA;AACA,EAAA;AAEb;AAKO;AAA8D,EAAA;AAC1D,IAAA;AACE,IAAA;AACA,EAAA;AACX,EAAA;AACQ,IAAA;AACG,IAAA;AACA,EAAA;AACX,EAAA;AACY,IAAA;AACD,IAAA;AACA,EAAA;AACX,EAAA;AACU,IAAA;AACC,IAAA;AACA,EAAA;AACX,EAAA;AACgB,IAAA;AACL,IAAA;AACA,EAAA;AAEb;ALusCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/workflow/dist/index.js","sourcesContent":[null,"\"use client\";\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { useState, useMemo } from \"react\";\n\n// UI Components - these will be imported from the app's components\n// We use a render props pattern to allow apps to provide their own UI components\nexport interface DynamicSchemaFormUIComponents {\n Input: React.ComponentType<{\n type?: string;\n value: any;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n min?: number;\n max?: number;\n step?: string | number;\n }>;\n Label: React.ComponentType<{\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Textarea: React.ComponentType<{\n value: any;\n onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n disabled?: boolean;\n rows?: number;\n className?: string;\n placeholder?: string;\n }>;\n Checkbox: React.ComponentType<{\n id?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n disabled?: boolean;\n }>;\n Select: React.ComponentType<{\n value: string;\n onValueChange: (value: string) => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n SelectTrigger: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n SelectValue: React.ComponentType<{\n placeholder?: string;\n }>;\n SelectContent: React.ComponentType<{\n children: React.ReactNode;\n }>;\n SelectItem: React.ComponentType<{\n value: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Button: React.ComponentType<{\n type?: \"button\" | \"submit\" | \"reset\";\n variant?: string;\n size?: string;\n className?: string;\n onClick?: () => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n Card: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n // Icons\n PlusIcon: React.ComponentType<{ className?: string }>;\n TrashIcon: React.ComponentType<{ className?: string }>;\n ChevronDownIcon: React.ComponentType<{ className?: string }>;\n ChevronRightIcon: React.ComponentType<{ className?: string }>;\n VariableIcon?: React.ComponentType<{ className?: string }>;\n CheckIcon?: React.ComponentType<{ className?: string }>;\n EditIcon?: React.ComponentType<{ className?: string }>;\n // Popover components for variable picker (optional)\n Popover?: React.ComponentType<{ open?: boolean; onOpenChange?: (open: boolean) => void; children: React.ReactNode }>;\n PopoverTrigger?: React.ComponentType<{ asChild?: boolean; children: React.ReactNode }>;\n PopoverContent?: React.ComponentType<{ className?: string; align?: \"start\" | \"center\" | \"end\"; children: React.ReactNode }>;\n // Dialog components for rich text editor (optional)\n Dialog?: React.ComponentType<{ open?: boolean; onOpenChange?: (open: boolean) => void; children: React.ReactNode }>;\n DialogContent?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogHeader?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogTitle?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n DialogFooter?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n // ScrollArea for variable picker in dialog\n ScrollArea?: React.ComponentType<{ className?: string; children: React.ReactNode }>;\n // MarkdownEditor for richtext fields\n MarkdownEditor?: React.ComponentType<{\n content: string;\n onChange: (markdown: string) => void;\n placeholder?: string;\n className?: string;\n readOnly?: boolean;\n minHeight?: string;\n variables?: Array<{ name: string; path: string; title?: string }>;\n }>;\n // Utility\n cn: (...classes: (string | undefined | null | false)[]) => string;\n}\n\n/**\n * Variable definition for workflow variables\n */\nexport interface WorkflowVariable {\n name: string;\n type: string; // JSON Schema type: \"string\", \"number\", \"boolean\", \"object\", \"array\"\n title?: string;\n path: string; // Full path like \"variables.customerEmail\" or \"input.recordId\"\n}\n\nexport interface DynamicSchemaFormProps {\n schema: JSONSchema;\n value: any;\n onChange: (value: any) => void;\n disabled?: boolean;\n path?: string[];\n components: DynamicSchemaFormUIComponents;\n /** Workflow variables available for selection */\n variables?: WorkflowVariable[];\n /** Whether to show variable picker buttons */\n showVariablePicker?: boolean;\n}\n\nexport function DynamicSchemaForm({\n schema,\n value = {},\n onChange,\n disabled = false,\n path = [],\n components,\n variables = [],\n showVariablePicker = false,\n}: DynamicSchemaFormProps) {\n const [collapsedSections, setCollapsedSections] = useState<Set<string>>(\n new Set()\n );\n const [openVariablePickers, setOpenVariablePickers] = useState<Set<string>>(\n new Set()\n );\n const [openRichTextDialogs, setOpenRichTextDialogs] = useState<Set<string>>(\n new Set()\n );\n const [richTextDraftValues, setRichTextDraftValues] = useState<Record<string, string>>({});\n\n const {\n Input,\n Label,\n Textarea,\n Checkbox,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Button,\n Card,\n PlusIcon,\n TrashIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n VariableIcon,\n CheckIcon,\n EditIcon,\n Popover,\n PopoverTrigger,\n PopoverContent,\n Dialog,\n DialogContent,\n DialogHeader,\n DialogTitle,\n DialogFooter,\n ScrollArea,\n MarkdownEditor,\n cn,\n } = components;\n\n // Check if a value is a variable reference (e.g., \"{{variables.email}}\")\n const isVariableReference = (val: any): boolean => {\n return typeof val === \"string\" && val.startsWith(\"{{\") && val.endsWith(\"}}\");\n };\n\n // Get variables that match a specific JSON Schema type\n const getMatchingVariables = (fieldType: string | undefined): WorkflowVariable[] => {\n if (!fieldType) return variables;\n\n // Type compatibility mapping\n const compatibleTypes: Record<string, string[]> = {\n string: [\"string\"],\n number: [\"number\", \"integer\"],\n integer: [\"number\", \"integer\"],\n boolean: [\"boolean\"],\n object: [\"object\"],\n array: [\"array\"],\n };\n\n const compatible = compatibleTypes[fieldType] || [fieldType];\n return variables.filter((v) => compatible.includes(v.type));\n };\n\n // Toggle variable picker for a field\n const toggleVariablePicker = (fieldPath: string) => {\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n if (next.has(fieldPath)) {\n next.delete(fieldPath);\n } else {\n next.add(fieldPath);\n }\n return next;\n });\n };\n\n // Render a variable picker button for a field\n const renderVariablePicker = (\n fieldName: string,\n fieldType: string | undefined,\n fieldPath: string,\n onSelect: (variablePath: string) => void\n ) => {\n // Don't render if showVariablePicker is false\n if (!showVariablePicker) {\n return null;\n }\n\n // Need at least VariableIcon and Popover components to render\n if (!VariableIcon || !Popover || !PopoverTrigger || !PopoverContent) {\n return null;\n }\n\n const matchingVars = getMatchingVariables(fieldType);\n const isOpen = openVariablePickers.has(fieldPath);\n const currentValue = value[fieldName];\n const isVariable = isVariableReference(currentValue);\n\n return (\n <Popover\n open={isOpen}\n onOpenChange={(open) => {\n if (open) {\n setOpenVariablePickers((prev) => new Set(prev).add(fieldPath));\n } else {\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }\n }}\n >\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className={cn(\n \"h-8 px-2 shrink-0\",\n isVariable && \"border-primary text-primary\"\n )}\n disabled={disabled}\n >\n <VariableIcon className=\"h-3.5 w-3.5\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-56 p-1\" align=\"end\">\n <div className=\"text-xs font-medium text-muted-foreground px-2 py-1.5\">\n Select Variable ({fieldType || \"any\"})\n </div>\n <div className=\"max-h-48 overflow-y-auto\">\n {matchingVars.length === 0 ? (\n <div className=\"px-2 py-3 text-xs text-muted-foreground text-center\">\n No variables available.\n <br />\n <span className=\"text-[10px]\">\n Add variables in Workflow Settings → Variables\n </span>\n </div>\n ) : (\n matchingVars.map((variable) => {\n const varRef = `{{${variable.path}}}`;\n const isSelected = currentValue === varRef;\n return (\n <button\n key={variable.path}\n type=\"button\"\n className={cn(\n \"w-full text-left px-2 py-1.5 text-xs rounded hover:bg-accent flex items-center justify-between\",\n isSelected && \"bg-accent\"\n )}\n onClick={() => {\n onSelect(varRef);\n setOpenVariablePickers((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n <div>\n <div className=\"font-medium\">{variable.title || variable.name}</div>\n <div className=\"text-[10px] text-muted-foreground font-mono\">\n {variable.path}\n </div>\n </div>\n {isSelected && CheckIcon && <CheckIcon className=\"h-3 w-3\" />}\n </button>\n );\n })\n )}\n </div>\n </PopoverContent>\n </Popover>\n );\n };\n\n const toggleSection = (key: string) => {\n setCollapsedSections((prev) => {\n const next = new Set(prev);\n if (next.has(key)) {\n next.delete(key);\n } else {\n next.add(key);\n }\n return next;\n });\n };\n\n const handleFieldChange = (fieldName: string, fieldValue: any) => {\n onChange({\n ...value,\n [fieldName]: fieldValue,\n });\n };\n\n const renderField = (\n fieldSchema: JSONSchema,\n fieldName: string,\n fieldValue: any\n ) => {\n const fieldPath = [...path, fieldName].join(\".\");\n const isRequired = schema.required?.includes(fieldName);\n\n // Handle enum (dropdown)\n if (fieldSchema.enum) {\n const labels =\n (fieldSchema as any)[\"x-enumLabels\"] || fieldSchema.enum;\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Select\n value={fieldValue || \"\"}\n onValueChange={(v) => handleFieldChange(fieldName, v)}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 text-xs\">\n <SelectValue\n placeholder={`Select ${fieldSchema.title || fieldName}`}\n />\n </SelectTrigger>\n <SelectContent>\n {fieldSchema.enum.map((option: any, idx: number) => (\n <SelectItem key={option} value={option} className=\"text-xs\">\n {labels[idx] || option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Handle nested objects\n if (fieldSchema.type === \"object\" && fieldSchema.properties) {\n const isCollapsed = collapsedSections.has(fieldPath);\n return (\n <div key={fieldPath} className=\"space-y-2\">\n <button\n type=\"button\"\n onClick={() => toggleSection(fieldPath)}\n className=\"flex items-center gap-1 text-xs font-medium text-gray-700 hover:text-gray-900\"\n >\n {isCollapsed ? (\n <ChevronRightIcon className=\"h-3 w-3\" />\n ) : (\n <ChevronDownIcon className=\"h-3 w-3\" />\n )}\n {fieldSchema.title || fieldName}\n </button>\n {!isCollapsed && (\n <Card className=\"p-3 bg-gray-50/50\">\n <DynamicSchemaForm\n schema={fieldSchema}\n value={fieldValue || {}}\n onChange={(v) => handleFieldChange(fieldName, v)}\n disabled={disabled}\n path={[...path, fieldName]}\n components={components}\n variables={variables}\n showVariablePicker={showVariablePicker}\n />\n </Card>\n )}\n </div>\n );\n }\n\n // Handle arrays\n if (fieldSchema.type === \"array\" && fieldSchema.items) {\n const arrayValue = Array.isArray(fieldValue) ? fieldValue : [];\n const itemSchema = fieldSchema.items as JSONSchema;\n\n return (\n <div key={fieldPath} className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => {\n const newItem = itemSchema.type === \"object\" ? {} : \"\";\n handleFieldChange(fieldName, [...arrayValue, newItem]);\n }}\n disabled={disabled}\n >\n <PlusIcon className=\"h-3 w-3 mr-1\" />\n Add\n </Button>\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n <div className=\"space-y-2\">\n {arrayValue.map((item: any, index: number) => (\n <div key={index} className=\"flex gap-2 items-start\">\n <div className=\"flex-1\">\n {itemSchema.type === \"object\" ? (\n <Card className=\"p-2 bg-gray-50/50\">\n <DynamicSchemaForm\n schema={itemSchema}\n value={item}\n onChange={(v) => {\n const newArray = [...arrayValue];\n newArray[index] = v;\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n path={[...path, fieldName, String(index)]}\n components={components}\n variables={variables}\n showVariablePicker={showVariablePicker}\n />\n </Card>\n ) : (\n <Input\n value={item || \"\"}\n onChange={(e) => {\n const newArray = [...arrayValue];\n newArray[index] = e.target.value;\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n className=\"h-8 text-xs\"\n />\n )}\n </div>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 text-red-500 hover:text-red-700\"\n onClick={() => {\n const newArray = arrayValue.filter(\n (_: any, i: number) => i !== index\n );\n handleFieldChange(fieldName, newArray);\n }}\n disabled={disabled}\n >\n <TrashIcon className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n </div>\n );\n }\n\n // Handle boolean\n if (fieldSchema.type === \"boolean\") {\n return (\n <div key={fieldPath} className=\"flex items-center space-x-2\">\n <Checkbox\n id={fieldPath}\n checked={!!fieldValue}\n onCheckedChange={(checked) => handleFieldChange(fieldName, checked)}\n disabled={disabled}\n />\n <Label htmlFor={fieldPath} className=\"text-xs font-normal\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {fieldSchema.description && (\n <span className=\"text-[10px] text-muted-foreground ml-2\">\n ({fieldSchema.description})\n </span>\n )}\n </div>\n );\n }\n\n // Handle number/integer\n if (fieldSchema.type === \"number\" || fieldSchema.type === \"integer\") {\n const isVarValue = isVariableReference(fieldValue);\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <Input\n type={isVarValue ? \"text\" : \"number\"}\n value={fieldValue ?? \"\"}\n onChange={(e) => {\n if (isVariableReference(e.target.value)) {\n handleFieldChange(fieldName, e.target.value);\n } else {\n const val =\n e.target.value === \"\" ? undefined : Number(e.target.value);\n handleFieldChange(fieldName, val);\n }\n }}\n min={fieldSchema.minimum}\n max={fieldSchema.maximum}\n step={fieldSchema.type === \"integer\" ? 1 : \"any\"}\n disabled={disabled}\n className={cn(\"h-8 text-xs flex-1\", isVarValue && \"font-mono text-primary\")}\n />\n {renderVariablePicker(fieldName, fieldSchema.type, fieldPath, (varPath) =>\n handleFieldChange(fieldName, varPath)\n )}\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Handle string with format\n if (fieldSchema.type === \"string\") {\n // Rich text editor - opens in dialog\n if (fieldSchema.format === \"richtext\") {\n const isDialogOpen = openRichTextDialogs.has(fieldPath);\n const draftValue = richTextDraftValues[fieldPath] ?? fieldValue ?? \"\";\n const previewText = (fieldValue || \"\").replace(/<[^>]*>/g, \"\").slice(0, 50);\n const matchingVars = getMatchingVariables(\"string\");\n\n // Check if Dialog components are available\n if (!Dialog || !DialogContent || !DialogHeader || !DialogTitle || !DialogFooter) {\n // Fallback to regular textarea if Dialog not provided\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n <Textarea\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n rows={3}\n className=\"text-xs\"\n placeholder={fieldSchema.description}\n />\n </div>\n );\n }\n\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <div className=\"flex-1 min-w-0 px-2 py-1.5 bg-muted/50 rounded text-xs text-muted-foreground truncate border\">\n {previewText || <span className=\"italic\">Click edit to add content...</span>}\n </div>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-8 px-2 shrink-0\"\n onClick={() => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: fieldValue || \"\" }));\n setOpenRichTextDialogs((prev) => new Set(prev).add(fieldPath));\n }}\n disabled={disabled}\n >\n {EditIcon ? <EditIcon className=\"h-3.5 w-3.5\" /> : \"Edit\"}\n </Button>\n </div>\n\n <Dialog\n open={isDialogOpen}\n onOpenChange={(open) => {\n if (!open) {\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }\n }}\n >\n <DialogContent className=\"max-w-3xl max-h-[85vh] flex flex-col\">\n <DialogHeader>\n <DialogTitle>Edit {fieldSchema.title || fieldName}</DialogTitle>\n </DialogHeader>\n <div className=\"flex-1 overflow-hidden flex flex-col min-h-0\">\n {MarkdownEditor ? (\n <MarkdownEditor\n content={draftValue}\n onChange={(value) => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: value }));\n }}\n placeholder=\"Enter content... Use {{variables.name}} for dynamic values\"\n minHeight=\"300px\"\n variables={showVariablePicker ? matchingVars : []}\n />\n ) : (\n <>\n <Textarea\n value={draftValue}\n onChange={(e) => {\n setRichTextDraftValues((prev) => ({ ...prev, [fieldPath]: e.target.value }));\n }}\n rows={12}\n className=\"flex-1 text-sm font-mono resize-none\"\n placeholder=\"Enter content... Use {{variables.name}} for dynamic values\"\n />\n\n {/* Variable picker in dialog (fallback when no MarkdownEditor) */}\n {showVariablePicker && matchingVars.length > 0 && (\n <div className=\"border rounded-md p-2 bg-muted/30 mt-3\">\n <p className=\"text-xs font-medium mb-2\">Insert Variable:</p>\n <div className=\"flex flex-wrap gap-1\">\n {matchingVars.map((variable) => (\n <Button\n key={variable.path}\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-6 text-xs px-2\"\n onClick={() => {\n const varRef = `{{${variable.path}}}`;\n setRichTextDraftValues((prev) => ({\n ...prev,\n [fieldPath]: (prev[fieldPath] || \"\") + varRef,\n }));\n }}\n >\n {variable.title || variable.name}\n </Button>\n ))}\n </div>\n </div>\n )}\n </>\n )}\n </div>\n <DialogFooter>\n <Button\n type=\"button\"\n variant=\"outline\"\n onClick={() => {\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n Cancel\n </Button>\n <Button\n type=\"button\"\n onClick={() => {\n handleFieldChange(fieldName, draftValue);\n setOpenRichTextDialogs((prev) => {\n const next = new Set(prev);\n next.delete(fieldPath);\n return next;\n });\n }}\n >\n Save\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n </div>\n );\n }\n\n // Multiline / textarea\n if (\n fieldSchema.format === \"multiline\" ||\n fieldSchema.format === \"textarea\"\n ) {\n const isVarValue = isVariableReference(fieldValue);\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n <Textarea\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n rows={3}\n className={cn(\"text-xs\", isVarValue && \"font-mono text-primary\")}\n placeholder={fieldSchema.description}\n />\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Regular string input\n const inputType =\n fieldSchema.format === \"email\"\n ? \"email\"\n : fieldSchema.format === \"uri\" || fieldSchema.format === \"url\"\n ? \"url\"\n : fieldSchema.format === \"password\"\n ? \"password\"\n : \"text\";\n\n const isVarValue = isVariableReference(fieldValue);\n\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <div className=\"flex gap-1.5\">\n <Input\n type={inputType}\n value={fieldValue || \"\"}\n onChange={(e) => handleFieldChange(fieldName, e.target.value)}\n disabled={disabled}\n className={cn(\"h-8 text-xs flex-1\", isVarValue && \"font-mono text-primary\")}\n placeholder={fieldSchema.description}\n />\n {renderVariablePicker(fieldName, \"string\", fieldPath, (varPath) =>\n handleFieldChange(fieldName, (fieldValue || \"\") + varPath)\n )}\n </div>\n {fieldSchema.description && (\n <p className=\"text-[10px] text-muted-foreground\">\n {fieldSchema.description}\n </p>\n )}\n </div>\n );\n }\n\n // Fallback for unknown types\n return (\n <div key={fieldPath} className=\"space-y-1.5\">\n <Label className=\"text-xs font-medium\">\n {fieldSchema.title || fieldName}\n {isRequired && <span className=\"text-red-500 ml-0.5\">*</span>}\n </Label>\n <Input\n value={\n typeof fieldValue === \"object\"\n ? JSON.stringify(fieldValue)\n : fieldValue || \"\"\n }\n onChange={(e) => {\n try {\n const parsed = JSON.parse(e.target.value);\n handleFieldChange(fieldName, parsed);\n } catch {\n handleFieldChange(fieldName, e.target.value);\n }\n }}\n disabled={disabled}\n className=\"h-8 text-xs font-mono\"\n />\n <p className=\"text-[10px] text-muted-foreground\">\n Type: {fieldSchema.type || \"unknown\"}\n </p>\n </div>\n );\n };\n\n // Render root object properties\n if (schema.type === \"object\" && schema.properties) {\n const sortedProperties = Object.entries(schema.properties).sort(\n ([, a], [, b]) => {\n const orderA = (a as any)[\"x-displayOrder\"] ?? 999;\n const orderB = (b as any)[\"x-displayOrder\"] ?? 999;\n return orderA - orderB;\n }\n );\n\n return (\n <div className=\"space-y-3\">\n {sortedProperties.map(([fieldName, fieldSchema]) =>\n renderField(fieldSchema as JSONSchema, fieldName, value[fieldName])\n )}\n </div>\n );\n }\n\n // If schema is not an object with properties, show message\n return (\n <p className=\"text-xs text-muted-foreground text-center py-4\">\n No configuration required for this node.\n </p>\n );\n}\n","\"use client\";\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { useState } from \"react\";\n\n// UI Components interface - same pattern as DynamicSchemaForm\nexport interface SchemaBuilderUIComponents {\n Input: React.ComponentType<{\n value: any;\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n className?: string;\n placeholder?: string;\n }>;\n Label: React.ComponentType<{\n htmlFor?: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Checkbox: React.ComponentType<{\n id?: string;\n checked: boolean;\n onCheckedChange: (checked: boolean) => void;\n disabled?: boolean;\n }>;\n Select: React.ComponentType<{\n value: string;\n onValueChange: (value: string) => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n SelectTrigger: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n SelectValue: React.ComponentType<{\n placeholder?: string;\n }>;\n SelectContent: React.ComponentType<{\n children: React.ReactNode;\n }>;\n SelectItem: React.ComponentType<{\n value: string;\n className?: string;\n children: React.ReactNode;\n }>;\n Button: React.ComponentType<{\n type?: \"button\" | \"submit\" | \"reset\";\n variant?: string;\n size?: string;\n className?: string;\n onClick?: () => void;\n disabled?: boolean;\n children: React.ReactNode;\n }>;\n Card: React.ComponentType<{\n className?: string;\n children: React.ReactNode;\n }>;\n // Icons\n PlusIcon: React.ComponentType<{ className?: string }>;\n TrashIcon: React.ComponentType<{ className?: string }>;\n GripVerticalIcon: React.ComponentType<{ className?: string }>;\n ChevronDownIcon: React.ComponentType<{ className?: string }>;\n ChevronRightIcon: React.ComponentType<{ className?: string }>;\n // Utility\n cn: (...classes: (string | undefined | null | false)[]) => string;\n}\n\nexport interface SchemaBuilderProps {\n schema: JSONSchema;\n onChange: (schema: JSONSchema) => void;\n disabled?: boolean;\n components: SchemaBuilderUIComponents;\n}\n\ninterface FieldDefinition {\n name: string;\n type: string;\n title: string;\n description: string;\n required: boolean;\n format?: string;\n enum?: string[];\n items?: { type: string };\n}\n\nconst FIELD_TYPES = [\n { value: \"string\", label: \"Text\" },\n { value: \"number\", label: \"Number\" },\n { value: \"integer\", label: \"Integer\" },\n { value: \"boolean\", label: \"Boolean\" },\n { value: \"array\", label: \"Array\" },\n { value: \"object\", label: \"Object\" },\n];\n\nconst STRING_FORMATS = [\n { value: \"plain\", label: \"Plain Text\" },\n { value: \"email\", label: \"Email\" },\n { value: \"uri\", label: \"URL\" },\n { value: \"date\", label: \"Date\" },\n { value: \"date-time\", label: \"Date & Time\" },\n { value: \"multiline\", label: \"Multiline Text\" },\n];\n\nexport function SchemaBuilder({\n schema,\n onChange,\n disabled = false,\n components,\n}: SchemaBuilderProps) {\n const [expandedFields, setExpandedFields] = useState<Set<string>>(new Set());\n\n const {\n Input,\n Label,\n Checkbox,\n Select,\n SelectTrigger,\n SelectValue,\n SelectContent,\n SelectItem,\n Button,\n Card,\n PlusIcon,\n TrashIcon,\n GripVerticalIcon,\n ChevronDownIcon,\n ChevronRightIcon,\n } = components;\n\n // Convert schema to field definitions\n const getFieldsFromSchema = (): FieldDefinition[] => {\n if (!schema?.properties) return [];\n\n return Object.entries(schema.properties).map(([name, prop]) => {\n const fieldSchema = prop as JSONSchema;\n return {\n name,\n type: fieldSchema.type || \"string\",\n title: fieldSchema.title || name,\n description: fieldSchema.description || \"\",\n required: schema.required?.includes(name) || false,\n format: fieldSchema.format,\n enum: fieldSchema.enum,\n items: fieldSchema.items as { type: string } | undefined,\n };\n });\n };\n\n const fields = getFieldsFromSchema();\n\n // Convert field definitions back to schema\n const updateSchema = (newFields: FieldDefinition[]) => {\n const properties: Record<string, JSONSchema> = {};\n const required: string[] = [];\n\n newFields.forEach((field) => {\n if (!field.name) return;\n\n const fieldSchema: JSONSchema = {\n type: field.type,\n title: field.title || field.name,\n };\n\n if (field.description) {\n fieldSchema.description = field.description;\n }\n\n if (field.format && field.format !== \"plain\") {\n fieldSchema.format = field.format;\n }\n\n if (field.enum && field.enum.length > 0) {\n fieldSchema.enum = field.enum;\n }\n\n if (field.type === \"array\" && field.items) {\n fieldSchema.items = field.items;\n }\n\n properties[field.name] = fieldSchema;\n\n if (field.required) {\n required.push(field.name);\n }\n });\n\n onChange({\n type: \"object\",\n properties,\n required: required.length > 0 ? required : undefined,\n });\n };\n\n const addField = () => {\n const newFieldName = `field_${fields.length + 1}`;\n const newFields: FieldDefinition[] = [\n ...fields,\n {\n name: newFieldName,\n type: \"string\",\n title: \"\",\n description: \"\",\n required: false,\n },\n ];\n updateSchema(newFields);\n setExpandedFields((prev) => new Set([...prev, newFieldName]));\n };\n\n const updateField = (index: number, updates: Partial<FieldDefinition>) => {\n const newFields = [...fields];\n newFields[index] = { ...newFields[index], ...updates };\n updateSchema(newFields);\n };\n\n const removeField = (index: number) => {\n const newFields = fields.filter((_, i) => i !== index);\n updateSchema(newFields);\n };\n\n const toggleExpand = (name: string) => {\n setExpandedFields((prev) => {\n const next = new Set(prev);\n if (next.has(name)) {\n next.delete(name);\n } else {\n next.add(name);\n }\n return next;\n });\n };\n\n return (\n <div className=\"space-y-2\">\n {fields.length === 0 ? (\n <p className=\"text-xs text-muted-foreground italic py-3\">\n No fields defined. Click "Add Field" to create one.\n </p>\n ) : (\n <div className=\"space-y-3\">\n {fields.map((field, index) => {\n const isExpanded = expandedFields.has(field.name);\n return (\n <Card key={index} className=\"p-3 bg-gray-50/50\">\n {/* Field Header Row 1: Name and Delete */}\n <div className=\"flex items-center gap-2 mb-2\">\n <GripVerticalIcon className=\"h-4 w-4 text-gray-300 flex-shrink-0 cursor-grab\" />\n\n <button\n type=\"button\"\n onClick={() => toggleExpand(field.name)}\n className=\"flex-shrink-0 p-1 hover:bg-gray-200 rounded\"\n >\n {isExpanded ? (\n <ChevronDownIcon className=\"h-4 w-4 text-gray-500\" />\n ) : (\n <ChevronRightIcon className=\"h-4 w-4 text-gray-500\" />\n )}\n </button>\n\n {/* Field Name */}\n <div className=\"flex-1\">\n <Input\n value={field.name}\n onChange={(e) => {\n const oldName = field.name;\n const newName = e.target.value\n .toLowerCase()\n .replace(/\\s+/g, \"_\")\n .replace(/[^a-z0-9_]/g, \"\");\n updateField(index, { name: newName });\n if (expandedFields.has(oldName)) {\n setExpandedFields((prev) => {\n const next = new Set(prev);\n next.delete(oldName);\n next.add(newName);\n return next;\n });\n }\n }}\n placeholder=\"field_name\"\n className=\"h-9 text-sm font-mono\"\n disabled={disabled}\n />\n </div>\n\n {/* Delete button */}\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-9 w-9 p-0 text-red-500 hover:text-red-700 hover:bg-red-50 flex-shrink-0\"\n onClick={() => removeField(index)}\n disabled={disabled}\n >\n <TrashIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n\n {/* Field Header Row 2: Type and Required */}\n <div className=\"flex items-center gap-3 pl-10\">\n {/* Field Type */}\n <div className=\"flex-1\">\n <Select\n value={field.type}\n onValueChange={(v) => updateField(index, { type: v })}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {FIELD_TYPES.map((type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n\n {/* Required checkbox */}\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <Checkbox\n id={`required-${index}`}\n checked={field.required}\n onCheckedChange={(checked) =>\n updateField(index, { required: !!checked })\n }\n disabled={disabled}\n />\n <Label\n htmlFor={`required-${index}`}\n className=\"text-sm text-muted-foreground\"\n >\n Required\n </Label>\n </div>\n </div>\n\n {/* Expanded Details */}\n {isExpanded && (\n <div className=\"mt-3 pt-3 border-t space-y-3 pl-10\">\n {/* Title */}\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Display Title\n </Label>\n <Input\n value={field.title}\n onChange={(e) =>\n updateField(index, { title: e.target.value })\n }\n placeholder=\"Human readable title\"\n className=\"h-9 text-sm\"\n disabled={disabled}\n />\n </div>\n\n {/* Description */}\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Description\n </Label>\n <Input\n value={field.description}\n onChange={(e) =>\n updateField(index, { description: e.target.value })\n }\n placeholder=\"Help text for this field\"\n className=\"h-9 text-sm\"\n disabled={disabled}\n />\n </div>\n\n {/* String Format */}\n {field.type === \"string\" && (\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Format\n </Label>\n <Select\n value={field.format || \"plain\"}\n onValueChange={(v) =>\n updateField(index, { format: v })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {STRING_FORMATS.map((format) => (\n <SelectItem key={format.value} value={format.value}>\n {format.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n\n {/* Array Item Type */}\n {field.type === \"array\" && (\n <div className=\"space-y-1\">\n <Label className=\"text-xs text-muted-foreground\">\n Item Type\n </Label>\n <Select\n value={field.items?.type || \"string\"}\n onValueChange={(v) =>\n updateField(index, { items: { type: v } })\n }\n disabled={disabled}\n >\n <SelectTrigger className=\"h-9 text-sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {FIELD_TYPES.filter((t) => t.value !== \"array\").map(\n (type) => (\n <SelectItem key={type.value} value={type.value}>\n {type.label}\n </SelectItem>\n )\n )}\n </SelectContent>\n </Select>\n </div>\n )}\n\n {/* Enum Options (for dropdowns) */}\n {field.type === \"string\" && (\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-xs text-muted-foreground\">\n Dropdown Options (optional)\n </Label>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"h-7 text-xs\"\n onClick={() => {\n const currentEnum = field.enum || [];\n updateField(index, {\n enum: [\n ...currentEnum,\n `option_${currentEnum.length + 1}`,\n ],\n });\n }}\n disabled={disabled}\n >\n <PlusIcon className=\"h-3 w-3 mr-1\" />\n Add Option\n </Button>\n </div>\n {field.enum && field.enum.length > 0 && (\n <div className=\"space-y-2\">\n {field.enum.map((option, optIdx) => (\n <div key={optIdx} className=\"flex items-center gap-2\">\n <Input\n value={option}\n onChange={(e) => {\n const newEnum = [...(field.enum || [])];\n newEnum[optIdx] = e.target.value;\n updateField(index, { enum: newEnum });\n }}\n placeholder={`Option ${optIdx + 1}`}\n className=\"h-8 text-sm flex-1\"\n disabled={disabled}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-8 w-8 p-0 text-red-400 hover:text-red-600\"\n onClick={() => {\n const newEnum = (field.enum || []).filter(\n (_, i) => i !== optIdx\n );\n updateField(index, {\n enum:\n newEnum.length > 0 ? newEnum : undefined,\n });\n }}\n disabled={disabled}\n >\n <TrashIcon className=\"h-3 w-3\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n )}\n </Card>\n );\n })}\n </div>\n )}\n\n {/* Add Field Button */}\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n className=\"w-full h-9 text-sm\"\n onClick={addField}\n disabled={disabled}\n >\n <PlusIcon className=\"h-4 w-4 mr-2\" />\n Add Field\n </Button>\n </div>\n );\n}\n","// workflow-definition-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowDefinition } from \"../models\";\n\nexport interface WorkflowDefinitionState {\n definitions: Record<string, WorkflowDefinition>;\n selectedDefinition?: WorkflowDefinition;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowDefinitionSelector {\n workflowDefinition: WorkflowDefinitionState;\n}\n\nconst initialState: WorkflowDefinitionState = {\n definitions: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowDefinitionSlice = createSlice({\n name: \"workflowDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<WorkflowDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n if (def.id) {\n acc[def.id] = def;\n }\n return acc;\n },\n {} as Record<string, WorkflowDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n },\n updateDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n if (state.selectedDefinition?.id === definition.id) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.id === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<WorkflowDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n} = workflowDefinitionSlice.actions;\n\nexport const workflowDefinitionReducer = workflowDefinitionSlice.reducer;","// workflow-instance-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowInstance } from \"../models\";\n\nexport interface WorkflowInstanceState {\n instances: Record<string, WorkflowInstance>;\n selectedInstance?: WorkflowInstance;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowInstanceSelector {\n workflowInstance: WorkflowInstanceState;\n}\n\nconst initialState: WorkflowInstanceState = {\n instances: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowInstanceSlice = createSlice({\n name: \"workflowInstance\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setInstances: (state, action: PayloadAction<WorkflowInstance[]>) => {\n state.instances = action.payload.reduce(\n (acc, inst) => {\n if (inst.id) {\n acc[inst.id] = inst;\n }\n return acc;\n },\n {} as Record<string, WorkflowInstance>\n );\n },\n updateInstance: (state, action: PayloadAction<WorkflowInstance>) => {\n const instance = action.payload;\n if (instance.id) {\n state.instances[instance.id] = instance;\n }\n if (state.selectedInstance?.id === instance.id) {\n state.selectedInstance = instance;\n }\n },\n setSelectedInstance: (\n state,\n action: PayloadAction<WorkflowInstance | undefined>\n ) => {\n state.selectedInstance = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setInstances,\n updateInstance,\n setSelectedInstance,\n} = workflowInstanceSlice.actions;\n\nexport const workflowInstanceReducer = workflowInstanceSlice.reducer;","// Generated file - DO NOT EDIT\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { NodeType, NodeDefinition, EdgeTypeDefinition, WorkflowTypeDefinition } from \"../models/workflow\";\n\n// Type-safe NodeSubType union (generated from Go NodeDefinitions)\nexport type NodeSubTypeTS = \"actionAIClassify\" | \"actionAIExtractData\" | \"actionAISummarize\" | \"actionApiCall\" | \"actionAssignSLAPolicy\" | \"actionCreateEntityRecord\" | \"actionDeleteEntityRecord\" | \"actionDocumentExtraction\" | \"actionNatsRequest\" | \"actionQueryEntityRecords\" | \"actionSendEmail\" | \"actionSendSMS\" | \"actionSetVariables\" | \"actionUpdateEntityRecord\" | \"agentChat\" | \"agentCustomResponse\" | \"agentIntentDetector\" | \"agentKnowledgeGraph\" | \"agentOpenTicket\" | \"agentStructuredOutput\" | \"agentTransferToHuman\" | \"delay\" | \"humanActionApproval\" | \"humanActionAssignment\" | \"humanActionDataEntry\" | \"humanActionReview\" | \"integrationCreateEvent\" | \"integrationGetDriveFile\" | \"integrationSearchCalendar\" | \"integrationSearchDrive\" | \"integrationSearchEmails\" | \"integrationSendEmail\" | \"logicFor\" | \"logicIf\" | \"logicSwitch\" | \"triggerCalendarEvent\" | \"triggerDriveFileChanged\" | \"triggerEmailReceived\" | \"triggerEntityRecordCreated\" | \"triggerEntityRecordDeleted\" | \"triggerEntityRecordUpdated\" | \"triggerEscalation\" | \"triggerSLABreach\" | \"triggerSLAWarning\" | \"triggerSchedule\" | \"triggerStart\" | \"triggerWebhookReceived\";\n\nexport interface NodeSubTypeInfo {\n value: string;\n label: string;\n icon: string;\n description: string;\n}\n\nexport const nodeDefinitions: Record<string, NodeDefinition> = {\n \"actionAIClassify\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Classify\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"description\": \"List of possible categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Additional Instructions\",\n \"format\": \"multiline\"\n },\n \"multiLabel\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Multiple Labels\",\n \"description\": \"Can content belong to multiple categories?\",\n \"default\": false\n }\n },\n \"required\": [\n \"content\",\n \"categories\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"category\": {\n \"type\": \"string\",\n \"title\": \"Primary Category\"\n },\n \"confidence\": {\n \"type\": \"number\",\n \"title\": \"Confidence\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"title\": \"Reasoning\"\n }\n }\n }\n },\n \"actionAIExtractData\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Extract Data\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"extractionSchema\": {\n \"type\": \"object\",\n \"title\": \"Extraction Schema\",\n \"description\": \"JSON Schema defining what to extract\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"content\",\n \"extractionSchema\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Extracted data matching the schema\"\n }\n },\n \"actionAISummarize\": {\n \"type\": \"agent\",\n \"subType\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Summarize\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"description\": \"Text to summarize (supports {{variables}})\",\n \"format\": \"multiline\"\n },\n \"focusOn\": {\n \"type\": \"string\",\n \"title\": \"Focus On\",\n \"description\": \"Optional: specific aspects to focus on\"\n },\n \"maxLength\": {\n \"type\": \"integer\",\n \"title\": \"Max Length (words)\",\n \"minimum\": 10,\n \"maximum\": 1000\n },\n \"style\": {\n \"type\": \"string\",\n \"title\": \"Style\",\n \"default\": \"brief\",\n \"enum\": [\n \"brief\",\n \"detailed\",\n \"bullet_points\",\n \"executive\"\n ],\n \"x-enumLabels\": [\n \"Brief (1-2 sentences)\",\n \"Detailed\",\n \"Bullet Points\",\n \"Executive Summary\"\n ]\n }\n },\n \"required\": [\n \"content\",\n \"style\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"keyPoints\": {\n \"type\": \"array\",\n \"title\": \"Key Points\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\",\n \"title\": \"Summary\"\n },\n \"wordCount\": {\n \"type\": \"integer\",\n \"title\": \"Word Count\"\n }\n }\n }\n },\n \"actionApiCall\": {\n \"type\": \"action\",\n \"subType\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"API Call\",\n \"properties\": {\n \"authorization\": {\n \"type\": \"string\",\n \"title\": \"Authorization\",\n \"x-displayOrder\": 5\n },\n \"callbackTimeout\": {\n \"type\": \"integer\",\n \"title\": \"Callback Timeout (ms)\",\n \"description\": \"For async mode only\",\n \"x-displayOrder\": 9\n },\n \"headers\": {\n \"type\": \"object\",\n \"title\": \"Headers\",\n \"x-displayOrder\": 4\n },\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\"\n ],\n \"x-displayOrder\": 3\n },\n \"mode\": {\n \"type\": \"string\",\n \"title\": \"Mode\",\n \"enum\": [\n \"sync\",\n \"async\"\n ],\n \"x-enumLabels\": [\n \"Synchronous\",\n \"Asynchronous (Callback)\"\n ],\n \"x-displayOrder\": 1\n },\n \"retryCount\": {\n \"type\": \"integer\",\n \"title\": \"Retry Count\",\n \"minimum\": 0,\n \"maximum\": 5,\n \"x-displayOrder\": 7\n },\n \"retryDelay\": {\n \"type\": \"integer\",\n \"title\": \"Retry Delay (ms)\",\n \"minimum\": 100,\n \"x-displayOrder\": 8\n },\n \"timeout\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (ms)\",\n \"minimum\": 1000,\n \"maximum\": 300000,\n \"x-displayOrder\": 6\n },\n \"url\": {\n \"type\": \"string\",\n \"title\": \"URL\",\n \"x-displayOrder\": 2\n }\n },\n \"required\": [\n \"url\",\n \"method\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionAssignSLAPolicy\": {\n \"type\": \"action\",\n \"subType\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Assign SLA Policy\",\n \"properties\": {\n \"entityRecordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Entity Record ID\"\n },\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"Policy ID\"\n }\n },\n \"required\": [\n \"policyId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"assignmentId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionCreateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Values\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"recordId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionDeleteEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delete Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionDocumentExtraction\": {\n \"type\": \"action\",\n \"subType\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\",\n \"category\": \"Data Processing\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Document Extraction\",\n \"properties\": {\n \"documentType\": {\n \"type\": \"string\",\n \"title\": \"Document Type\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"instructions\",\n \"documentType\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"fileUrl\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionNatsRequest\": {\n \"type\": \"action\",\n \"subType\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"NATS Request\",\n \"properties\": {\n \"actionTypeField\": {\n \"type\": \"string\",\n \"title\": \"Action Type Field\",\n \"description\": \"Dot-notation path to get action type from input (e.g., \\\"human_review.selectedAction.type\\\")\"\n },\n \"payloadTemplate\": {\n \"type\": \"object\",\n \"title\": \"Payload Template\",\n \"description\": \"JSON payload with {{variable}} interpolation\"\n },\n \"subjectMapping\": {\n \"type\": \"object\",\n \"title\": \"Subject Mapping\",\n \"description\": \"Map action types to NATS subjects (e.g., {\\\"reply\\\": \\\"hub.integration.email.send\\\"})\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (seconds)\",\n \"default\": 30,\n \"minimum\": 1,\n \"maximum\": 300\n }\n }\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"NATS Subject\",\n \"description\": \"Direct NATS subject (alternative to subjectMapping)\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Response from NATS service\",\n \"properties\": {\n \"_actionType\": {\n \"type\": \"string\",\n \"title\": \"Action Type\",\n \"description\": \"The action type that was used (if subjectMapping was used)\"\n },\n \"_executedSubject\": {\n \"type\": \"string\",\n \"title\": \"Executed Subject\",\n \"description\": \"The NATS subject that was called\"\n }\n }\n }\n },\n \"actionQueryEntityRecords\": {\n \"type\": \"action\",\n \"subType\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Query Entity Records\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\",\n \"description\": \"Name of the entity to query\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\",\n \"description\": \"Field filters (e.g., {\\\"status\\\": \\\"open\\\"})\"\n },\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Page\",\n \"description\": \"Page number (default: 1)\",\n \"minimum\": 1\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\",\n \"description\": \"Records per page (default: 10)\",\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"sortBy\": {\n \"type\": \"string\",\n \"title\": \"Sort By\",\n \"description\": \"Field to sort by\"\n },\n \"sortOrder\": {\n \"type\": \"integer\",\n \"title\": \"Sort Order\",\n \"description\": \"1 for ascending, -1 for descending\",\n \"enum\": [\n 1,\n -1\n ]\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Current Page\"\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\"\n },\n \"records\": {\n \"type\": \"array\",\n \"title\": \"Records\",\n \"description\": \"Array of matching entity records\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"totalCount\": {\n \"type\": \"integer\",\n \"title\": \"Total Count\",\n \"description\": \"Total number of matching records\"\n },\n \"totalPages\": {\n \"type\": \"integer\",\n \"title\": \"Total Pages\"\n }\n }\n }\n },\n \"actionSendEmail\": {\n \"type\": \"action\",\n \"subType\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"bcc\": {\n \"type\": \"string\",\n \"title\": \"BCC\"\n },\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\",\n \"description\": \"Sender email address (must be verified in SES)\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"template\": {\n \"type\": \"string\",\n \"title\": \"Template\",\n \"enum\": [\n \"welcome\",\n \"notification\",\n \"confirmation\",\n \"custom\"\n ],\n \"x-enumLabels\": [\n \"Welcome Email\",\n \"Notification\",\n \"Confirmation\",\n \"Custom\"\n ]\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"from\",\n \"to\",\n \"subject\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emailSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSendSMS\": {\n \"type\": \"action\",\n \"subType\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send SMS\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Message\",\n \"format\": \"multiline\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"Phone Number\"\n }\n },\n \"required\": [\n \"to\",\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"smsSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSetVariables\": {\n \"type\": \"action\",\n \"subType\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Set Variables\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionUpdateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Update Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Updates\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"updated\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"agentChat\": {\n \"type\": \"agent\",\n \"subType\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Chat\",\n \"properties\": {\n \"maxTokens\": {\n \"type\": \"integer\",\n \"title\": \"Max Tokens\",\n \"minimum\": 1,\n \"maximum\": 4096\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\",\n \"enum\": [\n \"gpt-4\",\n \"gpt-4-turbo\",\n \"gpt-3.5-turbo\",\n \"claude-3-opus\",\n \"claude-3-sonnet\"\n ],\n \"x-enumLabels\": [\n \"GPT-4\",\n \"GPT-4 Turbo\",\n \"GPT-3.5 Turbo\",\n \"Claude 3 Opus\",\n \"Claude 3 Sonnet\"\n ]\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n },\n \"required\": [\n \"systemPrompt\",\n \"model\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentCustomResponse\": {\n \"type\": \"agent\",\n \"subType\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Custom Response\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Response Message\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentIntentDetector\": {\n \"type\": \"agent\",\n \"subType\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Intent Detector\",\n \"properties\": {\n \"intents\": {\n \"type\": \"array\",\n \"title\": \"Intents\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"ID\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n }\n }\n }\n },\n \"required\": [\n \"intents\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"confidence\": {\n \"type\": \"number\"\n },\n \"intent\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentKnowledgeGraph\": {\n \"type\": \"agent\",\n \"subType\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Knowledge Graph\",\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"title\": \"Fields\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"title\": \"Label\"\n }\n },\n \"required\": [\n \"label\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"kg_response\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\"\n }\n }\n }\n }\n },\n \"agentOpenTicket\": {\n \"type\": \"agent\",\n \"subType\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Open Ticket\",\n \"properties\": {\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ]\n },\n \"ticketType\": {\n \"type\": \"string\",\n \"title\": \"Ticket Type\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticketId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentStructuredOutput\": {\n \"type\": \"agent\",\n \"subType\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Structured Output\",\n \"properties\": {\n \"inputTemplate\": {\n \"type\": \"string\",\n \"title\": \"Input Template\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\"\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentTransferToHuman\": {\n \"type\": \"agent\",\n \"subType\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Transfer to Human\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Transfer Message\",\n \"format\": \"multiline\"\n },\n \"queueId\": {\n \"type\": \"string\",\n \"title\": \"Queue ID\"\n }\n },\n \"required\": [\n \"message\",\n \"queueId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"delay\": {\n \"type\": \"delay\",\n \"subType\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\",\n \"category\": \"Time \\u0026 Scheduling\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delay\",\n \"properties\": {\n \"duration\": {\n \"type\": \"integer\",\n \"title\": \"Duration\",\n \"minimum\": 1\n },\n \"unit\": {\n \"type\": \"string\",\n \"title\": \"Unit\",\n \"enum\": [\n \"seconds\",\n \"minutes\",\n \"hours\",\n \"days\"\n ],\n \"x-enumLabels\": [\n \"Seconds\",\n \"Minutes\",\n \"Hours\",\n \"Days\"\n ]\n }\n },\n \"required\": [\n \"duration\",\n \"unit\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionApproval\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Approval\",\n \"properties\": {\n \"allowEdit\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Edit\"\n },\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"humanActionAssignment\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Task Assignment\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ],\n \"x-enumLabels\": [\n \"Low\",\n \"Medium\",\n \"High\",\n \"Urgent\"\n ]\n },\n \"taskDescription\": {\n \"type\": \"string\",\n \"title\": \"Task Description\",\n \"format\": \"multiline\"\n },\n \"taskTitle\": {\n \"type\": \"string\",\n \"title\": \"Task Title\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionDataEntry\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Data Entry\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"formSchema\": {\n \"type\": \"object\",\n \"title\": \"Form Schema\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionReview\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Review\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"editableFields\": {\n \"type\": \"array\",\n \"title\": \"Editable Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"integrationCreateEvent\": {\n \"type\": \"integration\",\n \"subType\": \"integrationCreateEvent\",\n \"label\": \"Create Calendar Event\",\n \"icon\": \"CalendarPlus\",\n \"description\": \"Create event in user's calendar\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Calendar Event\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"string\",\n \"title\": \"Attendees\",\n \"description\": \"Comma-separated email addresses\"\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\",\n \"format\": \"multiline\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"sendInvites\": {\n \"type\": \"boolean\",\n \"title\": \"Send Calendar Invites\",\n \"default\": true\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n },\n \"required\": [\n \"title\",\n \"startTime\",\n \"endTime\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"created\": {\n \"type\": \"boolean\",\n \"title\": \"Created\"\n },\n \"eventId\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"title\": \"Event URL\"\n }\n }\n }\n },\n \"integrationGetDriveFile\": {\n \"type\": \"integration\",\n \"subType\": \"integrationGetDriveFile\",\n \"label\": \"Get Drive File\",\n \"icon\": \"File\",\n \"description\": \"Get details of a specific file\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Get Drive File\",\n \"properties\": {\n \"fileId\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n }\n },\n \"required\": [\n \"fileId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"downloadUrl\": {\n \"type\": \"string\",\n \"title\": \"Download URL\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"integrationSearchCalendar\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchCalendar\",\n \"label\": \"Search Calendar\",\n \"icon\": \"CalendarSearch\",\n \"description\": \"Search calendar events\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Calendar\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in event titles and descriptions\"\n },\n \"timeMax\": {\n \"type\": \"string\",\n \"title\": \"End Date\",\n \"description\": \"Search events before this date\",\n \"format\": \"date-time\"\n },\n \"timeMin\": {\n \"type\": \"string\",\n \"title\": \"Start Date\",\n \"description\": \"Search events after this date\",\n \"format\": \"date-time\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"events\": {\n \"type\": \"array\",\n \"title\": \"Events\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchDrive\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchDrive\",\n \"label\": \"Search Drive\",\n \"icon\": \"FolderSearch\",\n \"description\": \"Search files in user's Drive\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Drive\",\n \"properties\": {\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Search in specific folder\"\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"File Type\",\n \"enum\": [\n \"\",\n \"document\",\n \"spreadsheet\",\n \"presentation\",\n \"pdf\",\n \"image\",\n \"folder\"\n ],\n \"x-enumLabels\": [\n \"Any\",\n \"Documents\",\n \"Spreadsheets\",\n \"Presentations\",\n \"PDFs\",\n \"Images\",\n \"Folders\"\n ]\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in file names and content\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"files\": {\n \"type\": \"array\",\n \"title\": \"Files\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchEmails\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchEmails\",\n \"label\": \"Search Emails\",\n \"icon\": \"MailSearch\",\n \"description\": \"Search user's emails\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Emails\",\n \"properties\": {\n \"dateRange\": {\n \"type\": \"string\",\n \"title\": \"Date Range\",\n \"enum\": [\n \"1d\",\n \"7d\",\n \"30d\",\n \"90d\",\n \"all\"\n ],\n \"x-enumLabels\": [\n \"Last 24 hours\",\n \"Last 7 days\",\n \"Last 30 days\",\n \"Last 90 days\",\n \"All time\"\n ]\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Gmail/Outlook search query\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emails\": {\n \"type\": \"array\",\n \"title\": \"Emails\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSendEmail\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Send\",\n \"description\": \"Send email via user's connected account\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"bodyType\": {\n \"type\": \"string\",\n \"title\": \"Body Type\",\n \"default\": \"text\",\n \"enum\": [\n \"text\",\n \"html\"\n ],\n \"x-enumLabels\": [\n \"Plain Text\",\n \"HTML\"\n ]\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"replyToMessageId\": {\n \"type\": \"string\",\n \"title\": \"Reply To Message ID\",\n \"description\": \"Optional: message ID to reply to\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"to\",\n \"subject\",\n \"body\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"messageId\": {\n \"type\": \"string\",\n \"title\": \"Message ID\"\n },\n \"sent\": {\n \"type\": \"boolean\",\n \"title\": \"Sent\"\n }\n }\n }\n },\n \"logicFor\": {\n \"type\": \"logic\",\n \"subType\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Loop\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"title\": \"Collection Expression\"\n },\n \"indexVariable\": {\n \"type\": \"string\",\n \"title\": \"Index Variable Name\"\n },\n \"itemVariable\": {\n \"type\": \"string\",\n \"title\": \"Item Variable Name\"\n },\n \"maxIterations\": {\n \"type\": \"integer\",\n \"title\": \"Max Iterations\",\n \"minimum\": 1,\n \"maximum\": 10000\n }\n },\n \"required\": [\n \"collection\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"logicIf\": {\n \"type\": \"logic\",\n \"subType\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"If Condition Configuration\",\n \"properties\": {\n \"conditions\": {\n \"type\": \"array\",\n \"title\": \"Conditions\",\n \"description\": \"Define conditions to evaluate against workflow variables\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"title\": \"Variable\",\n \"description\": \"Variable path (e.g., emailSent, user.role)\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"title\": \"Operator\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"isEmpty\",\n \"isNotEmpty\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\",\n \"description\": \"Value to compare against\"\n }\n },\n \"required\": [\n \"field\",\n \"operator\"\n ]\n }\n },\n \"defaultPath\": {\n \"type\": \"string\",\n \"title\": \"Default Path ID\",\n \"description\": \"Path to use if no condition matches\"\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Advanced Expression\",\n \"description\": \"JavaScript expression for complex conditions (e.g., amount \\u003e 1000 \\u0026\\u0026 status === 'approved')\",\n \"format\": \"multiline\"\n },\n \"logic\": {\n \"type\": \"string\",\n \"title\": \"Logic\",\n \"description\": \"How to combine multiple conditions\",\n \"default\": \"and\",\n \"enum\": [\n \"and\",\n \"or\"\n ]\n },\n \"paths\": {\n \"type\": \"array\",\n \"title\": \"Paths\",\n \"description\": \"Define target nodes for true/false outcomes\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\n \"type\": \"string\",\n \"title\": \"Condition\",\n \"enum\": [\n \"true\",\n \"false\"\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Path ID\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n },\n \"required\": [\n \"id\",\n \"condition\"\n ]\n }\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"conditionResult\": {\n \"type\": \"boolean\"\n },\n \"pathTaken\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"logicSwitch\": {\n \"type\": \"logic\",\n \"subType\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Switch\",\n \"properties\": {\n \"cases\": {\n \"type\": \"array\",\n \"title\": \"Cases\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\"\n }\n }\n }\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Switch Expression\"\n }\n },\n \"required\": [\n \"expression\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerCalendarEvent\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Calendar Trigger\",\n \"properties\": {\n \"leadTime\": {\n \"type\": \"integer\",\n \"title\": \"Minutes Before\",\n \"description\": \"For reminder triggers\",\n \"default\": 30,\n \"minimum\": 5,\n \"maximum\": 1440\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Calendar\",\n \"Outlook Calendar\"\n ]\n },\n \"triggerType\": {\n \"type\": \"string\",\n \"title\": \"Trigger When\",\n \"enum\": [\n \"reminder\",\n \"event_start\",\n \"event_created\"\n ],\n \"x-enumLabels\": [\n \"Before Event (Reminder)\",\n \"Event Starts\",\n \"Event Created\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"triggerType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"event\": {\n \"type\": \"object\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"array\",\n \"title\": \"Attendees\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n }\n }\n }\n }\n },\n \"triggerDriveFileChanged\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Drive Trigger\",\n \"properties\": {\n \"changeType\": {\n \"type\": \"string\",\n \"title\": \"Change Type\",\n \"enum\": [\n \"created\",\n \"modified\",\n \"any\"\n ],\n \"x-enumLabels\": [\n \"File Created\",\n \"File Modified\",\n \"Any Change\"\n ]\n },\n \"fileTypes\": {\n \"type\": \"array\",\n \"title\": \"File Types\",\n \"description\": \"Filter by extension (e.g., pdf, docx)\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Watch specific folder (leave empty for all)\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 10,\n \"minimum\": 5\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Drive\",\n \"OneDrive\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"changeType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"createdAt\": {\n \"type\": \"string\",\n \"title\": \"Created At\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"triggerEmailReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Email Trigger\",\n \"properties\": {\n \"fromFilter\": {\n \"type\": \"string\",\n \"title\": \"From (contains)\",\n \"description\": \"Filter by sender email or name\"\n },\n \"hasAttachment\": {\n \"type\": \"boolean\",\n \"title\": \"Has Attachment\"\n },\n \"isUnread\": {\n \"type\": \"boolean\",\n \"title\": \"Unread Only\",\n \"default\": true\n },\n \"labelFilter\": {\n \"type\": \"string\",\n \"title\": \"Label/Folder\",\n \"description\": \"Gmail label or Outlook folder\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 5,\n \"minimum\": 1,\n \"maximum\": 60\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Gmail\",\n \"Outlook\"\n ]\n },\n \"subjectFilter\": {\n \"type\": \"string\",\n \"title\": \"Subject (contains)\"\n }\n },\n \"required\": [\n \"provider\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"object\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\"\n },\n \"date\": {\n \"type\": \"string\",\n \"title\": \"Date\",\n \"format\": \"date-time\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Email ID\"\n },\n \"snippet\": {\n \"type\": \"string\",\n \"title\": \"Snippet\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n }\n }\n }\n }\n },\n \"triggerEntityRecordCreated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Created\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The created entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordDeleted\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Deleted\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The deleted entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordUpdated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Updated\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n },\n \"watchFields\": {\n \"type\": \"array\",\n \"title\": \"Watch Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The updated entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEscalation\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Escalation\",\n \"properties\": {\n \"escalationLevel\": {\n \"type\": \"integer\",\n \"title\": \"Escalation Level\",\n \"minimum\": 1\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLABreach\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Breach\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLAWarning\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Warning\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n },\n \"warningThreshold\": {\n \"type\": \"number\",\n \"title\": \"Warning Threshold (%)\",\n \"minimum\": 0,\n \"maximum\": 100\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSchedule\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Schedule Trigger\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Cron Expression\",\n \"description\": \"e.g., '0 9 * * MON-FRI' for weekdays at 9am\"\n },\n \"timezone\": {\n \"type\": \"string\",\n \"title\": \"Timezone\",\n \"default\": \"UTC\",\n \"enum\": [\n \"UTC\",\n \"America/New_York\",\n \"America/Chicago\",\n \"America/Denver\",\n \"America/Los_Angeles\",\n \"Europe/London\",\n \"Europe/Paris\",\n \"Asia/Tokyo\"\n ],\n \"x-enumLabels\": [\n \"UTC\",\n \"Eastern Time\",\n \"Central Time\",\n \"Mountain Time\",\n \"Pacific Time\",\n \"London\",\n \"Paris\",\n \"Tokyo\"\n ]\n }\n },\n \"required\": [\n \"schedule\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Schedule\"\n },\n \"triggeredAt\": {\n \"type\": \"string\",\n \"title\": \"Triggered At\",\n \"format\": \"date-time\"\n }\n }\n }\n },\n \"triggerStart\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerWebhookReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Webhook Trigger\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"POST\",\n \"GET\",\n \"PUT\"\n ]\n },\n \"secret\": {\n \"type\": \"string\",\n \"title\": \"Secret\",\n \"format\": \"password\"\n },\n \"webhookPath\": {\n \"type\": \"string\",\n \"title\": \"Webhook Path\"\n }\n },\n \"required\": [\n \"webhookPath\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n }\n} as const;\n\n// Helper to get just the config schemas (for backwards compatibility)\nexport const nodeSchemas: Record<string, JSONSchema> = Object.fromEntries(\n Object.entries(nodeDefinitions).map(([key, def]) => [key, def.config])\n);\n\n// Grouped subtypes for backwards compatibility with existing frontend code\nexport const TriggerNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"triggerCalendarEvent\": {\n \"value\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\"\n },\n \"triggerDriveFileChanged\": {\n \"value\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\"\n },\n \"triggerEmailReceived\": {\n \"value\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\"\n },\n \"triggerEntityRecordCreated\": {\n \"value\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\"\n },\n \"triggerEntityRecordDeleted\": {\n \"value\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\"\n },\n \"triggerEntityRecordUpdated\": {\n \"value\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\"\n },\n \"triggerEscalation\": {\n \"value\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\"\n },\n \"triggerSLABreach\": {\n \"value\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\"\n },\n \"triggerSLAWarning\": {\n \"value\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\"\n },\n \"triggerSchedule\": {\n \"value\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\"\n },\n \"triggerStart\": {\n \"value\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\"\n },\n \"triggerWebhookReceived\": {\n \"value\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\"\n }\n} as const;\nexport const HumanActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"humanActionApproval\": {\n \"value\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\"\n },\n \"humanActionAssignment\": {\n \"value\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\"\n },\n \"humanActionDataEntry\": {\n \"value\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\"\n },\n \"humanActionReview\": {\n \"value\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\"\n }\n} as const;\nexport const AgentNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionAIClassify\": {\n \"value\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\"\n },\n \"actionAIExtractData\": {\n \"value\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\"\n },\n \"actionAISummarize\": {\n \"value\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\"\n },\n \"agentChat\": {\n \"value\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\"\n },\n \"agentCustomResponse\": {\n \"value\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\"\n },\n \"agentIntentDetector\": {\n \"value\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\"\n },\n \"agentKnowledgeGraph\": {\n \"value\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\"\n },\n \"agentOpenTicket\": {\n \"value\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\"\n },\n \"agentStructuredOutput\": {\n \"value\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\"\n },\n \"agentTransferToHuman\": {\n \"value\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\"\n }\n} as const;\nexport const ActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionApiCall\": {\n \"value\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\"\n },\n \"actionAssignSLAPolicy\": {\n \"value\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\"\n },\n \"actionCreateEntityRecord\": {\n \"value\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\"\n },\n \"actionDeleteEntityRecord\": {\n \"value\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\"\n },\n \"actionDocumentExtraction\": {\n \"value\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\"\n },\n \"actionNatsRequest\": {\n \"value\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\"\n },\n \"actionQueryEntityRecords\": {\n \"value\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\"\n },\n \"actionSendEmail\": {\n \"value\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\"\n },\n \"actionSendSMS\": {\n \"value\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\"\n },\n \"actionSetVariables\": {\n \"value\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\"\n },\n \"actionUpdateEntityRecord\": {\n \"value\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\"\n }\n} as const;\nexport const LogicNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"logicFor\": {\n \"value\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\"\n },\n \"logicIf\": {\n \"value\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\"\n },\n \"logicSwitch\": {\n \"value\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\"\n }\n} as const;\nexport const DelayNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"delay\": {\n \"value\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\"\n }\n} as const;\nexport const ParallelNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Empty placeholders for node types not yet defined in Go\nexport const DataNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const TimerNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const LoopNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const AccountingNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Type aliases for backwards compatibility\nexport type TriggerNodeSubType = keyof typeof TriggerNodeSubTypes;\nexport type HumanActionNodeSubType = keyof typeof HumanActionNodeSubTypes;\nexport type AgentNodeSubType = keyof typeof AgentNodeSubTypes;\nexport type ActionNodeSubType = keyof typeof ActionNodeSubTypes;\nexport type LogicNodeSubType = keyof typeof LogicNodeSubTypes;\nexport type DelayNodeSubType = keyof typeof DelayNodeSubTypes;\nexport type DataNodeSubType = keyof typeof DataNodeSubTypes;\nexport type TimerNodeSubType = keyof typeof TimerNodeSubTypes;\nexport type LoopNodeSubType = keyof typeof LoopNodeSubTypes;\nexport type ParallelNodeSubType = keyof typeof ParallelNodeSubTypes;\nexport type AccountingNodeSubType = keyof typeof AccountingNodeSubTypes;\n\nexport type WorkflowNodeSubTypeTS =\n | TriggerNodeSubType\n | HumanActionNodeSubType\n | AgentNodeSubType\n | ActionNodeSubType\n | LogicNodeSubType\n | DelayNodeSubType\n | DataNodeSubType\n | TimerNodeSubType\n | LoopNodeSubType\n | ParallelNodeSubType\n | AccountingNodeSubType;\n\n// WorkflowNodeTypes constant for backwards compatibility\nexport const WorkflowNodeTypes = {\n trigger: { value: 'trigger', label: 'Trigger', category: 'Triggers' },\n humanAction: { value: 'humanAction', label: 'Human Action', category: 'User Interaction' },\n agent: { value: 'agent', label: 'Agent', category: 'Automation' },\n action: { value: 'action', label: 'Action', category: 'Automation' },\n logic: { value: 'logic', label: 'Logic', category: 'Flow Control' },\n data: { value: 'data', label: 'Data', category: 'Data Processing' },\n integration: { value: 'integration', label: 'Integration', category: 'Integration' },\n timer: { value: 'timer', label: 'Timer', category: 'Time & Scheduling' },\n loop: { value: 'loop', label: 'Loop', category: 'Flow Control' },\n parallel: { value: 'parallel', label: 'Parallel', category: 'Flow Control' },\n delay: { value: 'delay', label: 'Delay', category: 'Flow Control' },\n subflow: { value: 'subflow', label: 'Subflow', category: 'Flow Control' },\n custom: { value: 'custom', label: 'Custom', category: 'Custom' },\n documentExtraction: { value: 'documentExtraction', label: 'Document Extraction', category: 'Data Processing' },\n apiCall: { value: 'apiCall', label: 'API Call', category: 'Integration' },\n accounting: { value: 'accounting', label: 'Accounting', category: 'Accounting' },\n} as const;\n\nexport type WorkflowNodeTypeTS = keyof typeof WorkflowNodeTypes;\nexport type WorkflowNodeTypeOptionTS = typeof WorkflowNodeTypes[WorkflowNodeTypeTS];\n\nexport type NodeCategory =\n | \"Triggers\"\n | \"User Interaction\"\n | \"Automation\"\n | \"Integration\"\n | \"Flow Control\"\n | \"Data Processing\"\n | \"Time & Scheduling\"\n | \"Custom\"\n | \"Document Processing\"\n | \"API Integration\"\n | \"Accounting\";\n\n// Edge type definitions (generated from Go)\nexport const WorkflowEdgeTypes: Record<string, EdgeTypeDefinition> = {\n \"compensation\": {\n \"value\": \"compensation\",\n \"label\": \"Compensation\"\n },\n \"conditional\": {\n \"value\": \"conditional\",\n \"label\": \"Conditional\"\n },\n \"default\": {\n \"value\": \"default\",\n \"label\": \"Default\"\n },\n \"error\": {\n \"value\": \"error\",\n \"label\": \"Error\"\n },\n \"loopBack\": {\n \"value\": \"loopBack\",\n \"label\": \"Loop Back\"\n },\n \"merge\": {\n \"value\": \"merge\",\n \"label\": \"Merge\"\n },\n \"normal\": {\n \"value\": \"normal\",\n \"label\": \"Normal\"\n },\n \"parallel\": {\n \"value\": \"parallel\",\n \"label\": \"Parallel\"\n },\n \"timeout\": {\n \"value\": \"timeout\",\n \"label\": \"Timeout\"\n }\n} as const;\nexport type WorkflowEdgeTypeTS = keyof typeof WorkflowEdgeTypes;\nexport type WorkflowEdgeTypeOptionTS = typeof WorkflowEdgeTypes[WorkflowEdgeTypeTS];\n\n// Workflow type definitions (generated from Go)\nexport const WorkflowTypes: Record<string, WorkflowTypeDefinition> = {\n \"agent\": {\n \"value\": \"agent\",\n \"label\": \"Agent\"\n },\n \"chat\": {\n \"value\": \"chat\",\n \"label\": \"Chat\"\n },\n \"document\": {\n \"value\": \"document\",\n \"label\": \"Document\"\n },\n \"entity\": {\n \"value\": \"entity\",\n \"label\": \"Entity\"\n },\n \"productivity\": {\n \"value\": \"productivity\",\n \"label\": \"Productivity\"\n }\n} as const;\nexport type WorkflowTypeTS = keyof typeof WorkflowTypes;\nexport type WorkflowTypeOptionTS = typeof WorkflowTypes[WorkflowTypeTS];\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/eloquent/eloquent/packages/@elqnt/workflow/dist/index.js","../store/workflow-definition-slice.ts","../store/workflow-instance-slice.ts","../schema/schemas.ts"],"names":["initialState","createSlice","setLoading","setOperationLoading","setError"],"mappings":"AAAA;AACE;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AC5KA,2CAA2C;AAe3C,IAAM,aAAA,EAAwC;AAAA,EAC5C,WAAA,EAAa,CAAC,CAAA;AAAA,EACd,SAAA,EAAW,KAAA;AAAA,EACX,aAAA,EAAe,CAAC;AAClB,CAAA;AAEA,IAAM,wBAAA,EAA0B,kCAAA;AAAY,EAC1C,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,CAAC,KAAA,EAAO,MAAA,EAAA,GAAmC;AACrD,MAAA,KAAA,CAAM,UAAA,EAAY,MAAA,CAAO,OAAA;AAAA,IAC3B,CAAA;AAAA,IACA,mBAAA,EAAqB,CACnB,KAAA,EACA,MAAA,EAAA,GACG;AACH,MAAA,KAAA,CAAM,aAAA,CAAc,MAAA,CAAO,OAAA,CAAQ,SAAS,EAAA,EAAI,MAAA,CAAO,OAAA,CAAQ,OAAA;AAAA,IACjE,CAAA;AAAA,IACA,QAAA,EAAU,CAAC,KAAA,EAAO,MAAA,EAAA,GAA8C;AAC9D,MAAA,KAAA,CAAM,MAAA,EAAQ,MAAA,CAAO,OAAA;AAAA,IACvB,CAAA;AAAA,IACA,cAAA,EAAgB,CAAC,KAAA,EAAO,MAAA,EAAA,GAAgD;AACtE,MAAA,KAAA,CAAM,YAAA,EAAc,MAAA,CAAO,OAAA,CAAQ,MAAA;AAAA,QACjC,CAAC,GAAA,EAAK,GAAA,EAAA,GAAQ;AACZ,UAAA,GAAA,CAAI,GAAA,CAAI,EAAA,EAAI;AACV,YAAA,GAAA,CAAI,GAAA,CAAI,EAAE,EAAA,EAAI,GAAA;AAAA,UAChB;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA,CAAC;AAAA,MACH,CAAA;AAAA,IACF,CAAA;AAAA,IACA,aAAA,EAAe,CAAC,KAAA,EAAO,MAAA,EAAA,GAA8C;AACnE,MAAA,MAAM,WAAA,EAAa,MAAA,CAAO,OAAA;AAC1B,MAAA,GAAA,CAAI,UAAA,CAAW,EAAA,EAAI;AACjB,QAAA,KAAA,CAAM,WAAA,CAAY,UAAA,CAAW,EAAE,EAAA,EAAI,UAAA;AAAA,MACrC;AAAA,IACF,CAAA;AAAA,IACA,gBAAA,EAAkB,CAAC,KAAA,EAAO,MAAA,EAAA,GAA8C;AACtE,MAAA,MAAM,WAAA,EAAa,MAAA,CAAO,OAAA;AAC1B,MAAA,GAAA,CAAI,UAAA,CAAW,EAAA,EAAI;AACjB,QAAA,KAAA,CAAM,WAAA,CAAY,UAAA,CAAW,EAAE,EAAA,EAAI,UAAA;AAAA,MACrC;AACA,MAAA,GAAA,iBAAI,KAAA,mBAAM,kBAAA,6BAAoB,KAAA,IAAO,UAAA,CAAW,EAAA,EAAI;AAClD,QAAA,KAAA,CAAM,mBAAA,EAAqB,UAAA;AAAA,MAC7B;AAAA,IACF,CAAA;AAAA,IACA,gBAAA,EAAkB,CAAC,KAAA,EAAO,MAAA,EAAA,GAAkC;AAC1D,MAAA,OAAO,KAAA,CAAM,WAAA,CAAY,MAAA,CAAO,OAAO,CAAA;AACvC,MAAA,GAAA,iBAAI,KAAA,qBAAM,kBAAA,6BAAoB,KAAA,IAAO,MAAA,CAAO,OAAA,EAAS;AACnD,QAAA,KAAA,CAAM,mBAAA,EAAqB,KAAA,CAAA;AAAA,MAC7B;AAAA,IACF,CAAA;AAAA,IACA,qBAAA,EAAuB,CACrB,KAAA,EACA,MAAA,EAAA,GACG;AACH,MAAA,KAAA,CAAM,mBAAA,EAAqB,MAAA,CAAO,OAAA;AAAA,IACpC;AAAA,EACF;AACF,CAAC,CAAA;AAEM,IAAM;AAAA,EACX,UAAA;AAAA,EACA,mBAAA;AAAA,EACA,QAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,EAAA,EAAI,uBAAA,CAAwB,OAAA;AAErB,IAAM,0BAAA,EAA4B,uBAAA,CAAwB,OAAA;ADuJjE;AACA;AEjPA;AAeA,IAAMA,cAAAA,EAAsC;AAAA,EAC1C,SAAA,EAAW,CAAC,CAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,aAAA,EAAe,CAAC;AAClB,CAAA;AAEA,IAAM,sBAAA,EAAwBC,kCAAAA;AAAY,EACxC,IAAA,EAAM,kBAAA;AAAA,EACN,YAAA,EAAAD,aAAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY,CAAC,KAAA,EAAO,MAAA,EAAA,GAAmC;AACrD,MAAA,KAAA,CAAM,UAAA,EAAY,MAAA,CAAO,OAAA;AAAA,IAC3B,CAAA;AAAA,IACA,mBAAA,EAAqB,CACnB,KAAA,EACA,MAAA,EAAA,GACG;AACH,MAAA,KAAA,CAAM,aAAA,CAAc,MAAA,CAAO,OAAA,CAAQ,SAAS,EAAA,EAAI,MAAA,CAAO,OAAA,CAAQ,OAAA;AAAA,IACjE,CAAA;AAAA,IACA,QAAA,EAAU,CAAC,KAAA,EAAO,MAAA,EAAA,GAA8C;AAC9D,MAAA,KAAA,CAAM,MAAA,EAAQ,MAAA,CAAO,OAAA;AAAA,IACvB,CAAA;AAAA,IACA,YAAA,EAAc,CAAC,KAAA,EAAO,MAAA,EAAA,GAA8C;AAClE,MAAA,KAAA,CAAM,UAAA,EAAY,MAAA,CAAO,OAAA,CAAQ,MAAA;AAAA,QAC/B,CAAC,GAAA,EAAK,IAAA,EAAA,GAAS;AACb,UAAA,GAAA,CAAI,IAAA,CAAK,EAAA,EAAI;AACX,YAAA,GAAA,CAAI,IAAA,CAAK,EAAE,EAAA,EAAI,IAAA;AAAA,UACjB;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA,CAAC;AAAA,MACH,CAAA;AAAA,IACF,CAAA;AAAA,IACA,cAAA,EAAgB,CAAC,KAAA,EAAO,MAAA,EAAA,GAA4C;AAClE,MAAA,MAAM,SAAA,EAAW,MAAA,CAAO,OAAA;AACxB,MAAA,GAAA,CAAI,QAAA,CAAS,EAAA,EAAI;AACf,QAAA,KAAA,CAAM,SAAA,CAAU,QAAA,CAAS,EAAE,EAAA,EAAI,QAAA;AAAA,MACjC;AACA,MAAA,GAAA,iBAAI,KAAA,qBAAM,gBAAA,6BAAkB,KAAA,IAAO,QAAA,CAAS,EAAA,EAAI;AAC9C,QAAA,KAAA,CAAM,iBAAA,EAAmB,QAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAAA,IACA,mBAAA,EAAqB,CACnB,KAAA,EACA,MAAA,EAAA,GACG;AACH,MAAA,KAAA,CAAM,iBAAA,EAAmB,MAAA,CAAO,OAAA;AAAA,IAClC;AAAA,EACF;AACF,CAAC,CAAA;AAEM,IAAM;AAAA,EACX,UAAA,EAAAE,WAAAA;AAAA,EACA,mBAAA,EAAAC,oBAAAA;AAAA,EACA,QAAA,EAAAC,SAAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,EAAA,EAAI,qBAAA,CAAsB,OAAA;AAEnB,IAAM,wBAAA,EAA0B,qBAAA,CAAsB,OAAA;AF4N7D;AACA;AG1RO,IAAM,gBAAA,EAAkD;AAAA,EAC7D,kBAAA,EAAoB;AAAA,IAClB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,2CAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,aAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,aAAA,EAAe,6BAAA;AAAA,UACf,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,yBAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,uBAAA;AAAA,UACT,aAAA,EAAe,4CAAA;AAAA,UACf,SAAA,EAAW;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,SAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe,mDAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,mBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,SAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,aAAA,EAAe;AAAA,IACjB;AAAA,EACF,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,iCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,cAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,aAAA,EAAe,4CAAA;AAAA,UACf,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,oBAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,SAAA,EAAW,OAAA;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,OAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,uBAAA;AAAA,YACA,UAAA;AAAA,YACA,eAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,SAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,wBAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,UAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,uBAAA;AAAA,UACT,aAAA,EAAe,qBAAA;AAAA,UACf,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,KAAA;AAAA,YACA,MAAA;AAAA,YACA,KAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,MAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,aAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,SAAA,EAAW,GAAA;AAAA,UACX,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,SAAA,EAAW,GAAA;AAAA,UACX,SAAA,EAAW,GAAA;AAAA,UACX,gBAAA,EAAkB;AAAA,QACpB,CAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,KAAA;AAAA,UACT,gBAAA,EAAkB;AAAA,QACpB;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,KAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,uBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,kCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,mBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,oBAAA,EAAsB;AAAA,UACpB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,0BAAA;AAAA,IACX,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,4BAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,sBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,0BAAA;AAAA,IACX,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,yBAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,sBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,YAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,0BAAA;AAAA,IACX,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe,sCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,qBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,cAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,gEAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,cAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,mBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,iBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,mBAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,aAAA,EAAe,4BAAA;AAAA,MACf,YAAA,EAAc;AAAA,QACZ,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,0BAAA;AAAA,IACX,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe,mCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,sBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,aAAA,EAAe,0BAAA;AAAA,UACf,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,aAAA,EAAe,gCAAA;AAAA,UACf,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,aAAA,EAAe,oCAAA;AAAA,UACf,MAAA,EAAQ;AAAA,YACN,CAAA;AAAA,YACA,CAAA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,aAAA,EAAe,kCAAA;AAAA,UACf,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,4BAAA;AAAA,IACf,UAAA,EAAY,eAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,KAAA,EAAO;AAAA,UACL,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,SAAA;AAAA,YACA,cAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,eAAA;AAAA,YACA,cAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,MAAA;AAAA,QACA,IAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,eAAA;AAAA,IACX,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe,qBAAA;AAAA,IACf,UAAA,EAAY,eAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,UAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,oBAAA,EAAsB;AAAA,IACpB,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,oBAAA;AAAA,IACX,OAAA,EAAS,eAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,wBAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS;AAAA,IACX,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,MAAA,EAAQ,QAAA;AAAA,IACR,SAAA,EAAW,0BAAA;AAAA,IACX,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,kCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,sBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,YAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,WAAA,EAAa;AAAA,IACX,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,WAAA;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe,qBAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,OAAA;AAAA,YACA,aAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,OAAA;AAAA,YACA,aAAA;AAAA,YACA,eAAA;AAAA,YACA,eAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,cAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe,gCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe,iCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,SAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ,QAAA;AAAA,YACR,YAAA,EAAc;AAAA,cACZ,aAAA,EAAe;AAAA,gBACb,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX,CAAA;AAAA,cACA,IAAA,EAAM;AAAA,gBACJ,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX,CAAA;AAAA,cACA,MAAA,EAAQ;AAAA,gBACN,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX,CAAA;AAAA,cACA,QAAA,EAAU;AAAA,gBACR,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ;AAAA,QACV,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,aAAA,EAAe,uCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,QAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe,yBAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,aAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,KAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,uBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,uCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,mBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,sBAAA;AAAA,IACX,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe,sCAAA;AAAA,IACf,UAAA,EAAY,iBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,mBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,SAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,OAAA;AAAA,IACX,OAAA,EAAS,OAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,+BAAA;AAAA,IACf,UAAA,EAAY,mBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,OAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,SAAA;AAAA,YACA,SAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,SAAA;AAAA,YACA,SAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,UAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,qBAAA;AAAA,IACX,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe,wBAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,UAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,uBAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,yBAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,KAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,KAAA;AAAA,YACA,QAAA;AAAA,YACA,MAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,sBAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe,0BAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,OAAA,EAAS,QAAA;AAAA,IACT,MAAA,EAAQ,KAAA;AAAA,IACR,aAAA,EAAe,sBAAA;AAAA,IACf,UAAA,EAAY,kBAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,QAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,iBAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,wBAAA,EAA0B;AAAA,IACxB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,wBAAA;AAAA,IACX,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,cAAA;AAAA,IACR,aAAA,EAAe,iCAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,uBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,uBAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,OAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,yBAAA,EAA2B;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,yBAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,gCAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,gBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,YAAA,EAAc;AAAA,YACZ,aAAA,EAAe;AAAA,cACb,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,IAAA,EAAM;AAAA,cACJ,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,SAAA,EAAW;AAAA,cACT,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,2BAAA,EAA6B;AAAA,IAC3B,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,2BAAA;AAAA,IACX,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,gBAAA;AAAA,IACR,aAAA,EAAe,wBAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,aAAA,EAAe,gCAAA;AAAA,UACf,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,aAAA,EAAe,+BAAA;AAAA,UACf,QAAA,EAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,QAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,wBAAA,EAA0B;AAAA,IACxB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,wBAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,cAAA;AAAA,IACR,aAAA,EAAe,8BAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,cAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,EAAA;AAAA,YACA,UAAA;AAAA,YACA,aAAA;AAAA,YACA,cAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,KAAA;AAAA,YACA,WAAA;AAAA,YACA,cAAA;AAAA,YACA,eAAA;AAAA,YACA,MAAA;AAAA,YACA,QAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,yBAAA,EAA2B;AAAA,IACzB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,yBAAA;AAAA,IACX,OAAA,EAAS,eAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe,sBAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,eAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,IAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,KAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,eAAA;AAAA,YACA,aAAA;AAAA,YACA,cAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,QAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,MAAA,EAAQ,aAAA;AAAA,IACR,SAAA,EAAW,sBAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,yCAAA;AAAA,IACf,UAAA,EAAY,aAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,SAAA,EAAW,MAAA;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,MAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,YAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,qBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,IAAA;AAAA,QACA,SAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,UAAA;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe,2BAAA;AAAA,IACf,UAAA,EAAY,cAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,MAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,SAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe,0CAAA;AAAA,IACf,UAAA,EAAY,cAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,4BAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,aAAA,EAAe,0DAAA;AAAA,UACf,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ,QAAA;AAAA,YACR,YAAA,EAAc;AAAA,cACZ,OAAA,EAAS;AAAA,gBACP,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS,UAAA;AAAA,gBACT,aAAA,EAAe;AAAA,cACjB,CAAA;AAAA,cACA,UAAA,EAAY;AAAA,gBACV,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS,UAAA;AAAA,gBACT,MAAA,EAAQ;AAAA,kBACN,IAAA;AAAA,kBACA,KAAA;AAAA,kBACA,IAAA;AAAA,kBACA,KAAA;AAAA,kBACA,IAAA;AAAA,kBACA,KAAA;AAAA,kBACA,UAAA;AAAA,kBACA,YAAA;AAAA,kBACA,UAAA;AAAA,kBACA,SAAA;AAAA,kBACA;AAAA,gBACF;AAAA,cACF,CAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS,OAAA;AAAA,gBACT,aAAA,EAAe;AAAA,cACjB;AAAA,YACF,CAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,OAAA;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,iBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,qBAAA;AAAA,UACT,aAAA,EAAe,6FAAA;AAAA,UACf,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,aAAA,EAAe,oCAAA;AAAA,UACf,SAAA,EAAW,KAAA;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,KAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,aAAA,EAAe,6CAAA;AAAA,UACf,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ,QAAA;AAAA,YACR,YAAA,EAAc;AAAA,cACZ,WAAA,EAAa;AAAA,gBACX,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS,WAAA;AAAA,gBACT,MAAA,EAAQ;AAAA,kBACN,MAAA;AAAA,kBACA;AAAA,gBACF;AAAA,cACF,CAAA;AAAA,cACA,IAAA,EAAM;AAAA,gBACJ,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX,CAAA;AAAA,cACA,QAAA,EAAU;AAAA,gBACR,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX;AAAA,YACF,CAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,IAAA;AAAA,cACA;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ;AAAA,QACV,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,aAAA,EAAe;AAAA,IACb,MAAA,EAAQ,OAAA;AAAA,IACR,SAAA,EAAW,aAAA;AAAA,IACX,OAAA,EAAS,QAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,oCAAA;AAAA,IACf,UAAA,EAAY,cAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,QAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,OAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ,QAAA;AAAA,YACR,YAAA,EAAc;AAAA,cACZ,QAAA,EAAU;AAAA,gBACR,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX,CAAA;AAAA,cACA,OAAA,EAAS;AAAA,gBACP,MAAA,EAAQ,QAAA;AAAA,gBACR,OAAA,EAAS;AAAA,cACX;AAAA,YACF;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,sBAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe,8CAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,kBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,gBAAA;AAAA,UACT,aAAA,EAAe,uBAAA;AAAA,UACf,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,QAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,iBAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,UAAA;AAAA,YACA,aAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,yBAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,UAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,YAAA,EAAc;AAAA,YACZ,WAAA,EAAa;AAAA,cACX,MAAA,EAAQ,OAAA;AAAA,cACR,OAAA,EAAS,WAAA;AAAA,cACT,OAAA,EAAS;AAAA,gBACP,MAAA,EAAQ;AAAA,cACV;AAAA,YACF,CAAA;AAAA,YACA,aAAA,EAAe;AAAA,cACb,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,SAAA,EAAW;AAAA,cACT,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS,UAAA;AAAA,cACT,QAAA,EAAU;AAAA,YACZ,CAAA;AAAA,YACA,IAAA,EAAM;AAAA,cACJ,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,WAAA,EAAa;AAAA,cACX,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS,YAAA;AAAA,cACT,QAAA,EAAU;AAAA,YACZ,CAAA;AAAA,YACA,OAAA,EAAS;AAAA,cACP,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,yBAAA,EAA2B;AAAA,IACzB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,yBAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe,mDAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,eAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,SAAA;AAAA,YACA,UAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,cAAA;AAAA,YACA,eAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,WAAA,EAAa;AAAA,UACX,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,YAAA;AAAA,UACT,aAAA,EAAe,uCAAA;AAAA,UACf,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,WAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,yBAAA;AAAA,UACT,SAAA,EAAW,EAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,QAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,cAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV,UAAA;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,QAAA;AAAA,UACR,YAAA,EAAc;AAAA,YACZ,WAAA,EAAa;AAAA,cACX,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS,YAAA;AAAA,cACT,QAAA,EAAU;AAAA,YACZ,CAAA;AAAA,YACA,IAAA,EAAM;AAAA,cACJ,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,UAAA,EAAY;AAAA,cACV,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,SAAA,EAAW;AAAA,cACT,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,sBAAA;AAAA,IACX,OAAA,EAAS,gBAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,0CAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,eAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,iBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,yBAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,QAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,OAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,QAAA;AAAA,UACR,YAAA,EAAc;AAAA,YACZ,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS,MAAA;AAAA,cACT,QAAA,EAAU;AAAA,YACZ,CAAA;AAAA,YACA,MAAA,EAAQ;AAAA,cACN,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,IAAA,EAAM;AAAA,cACJ,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,SAAA,EAAW;AAAA,cACT,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,SAAA,EAAW;AAAA,cACT,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX,CAAA;AAAA,YACA,IAAA,EAAM;AAAA,cACJ,MAAA,EAAQ,QAAA;AAAA,cACR,OAAA,EAAS;AAAA,YACX;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,4BAAA;AAAA,IACX,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,8CAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,uBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ;AAAA,QACV,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,4BAAA;AAAA,IACX,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,2CAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,uBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ;AAAA,QACV,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,4BAAA;AAAA,IACX,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe,2CAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,uBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,SAAA,EAAW;AAAA,UACT,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,OAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,OAAA,EAAS;AAAA,YACP,MAAA,EAAQ;AAAA,UACV;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ;AAAA,QACV,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,YAAA,EAAc;AAAA,UACZ,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,gBAAA,EAAkB;AAAA,UAChB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,eAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,cAAA;AAAA,IACR,aAAA,EAAe,oCAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,iBAAA,EAAmB;AAAA,UACjB,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,kBAAA;AAAA,UACT,SAAA,EAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,kBAAA;AAAA,IACX,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe,oCAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,YAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,mBAAA;AAAA,IACX,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe,qCAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,aAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,kBAAA,EAAoB;AAAA,UAClB,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,uBAAA;AAAA,UACT,SAAA,EAAW,CAAA;AAAA,UACX,SAAA,EAAW;AAAA,QACb;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,iBAAA;AAAA,IACX,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe,kDAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,kBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,iBAAA;AAAA,UACT,aAAA,EAAe;AAAA,QACjB,CAAA;AAAA,QACA,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,UAAA;AAAA,UACT,SAAA,EAAW,KAAA;AAAA,UACX,MAAA,EAAQ;AAAA,YACN,KAAA;AAAA,YACA,kBAAA;AAAA,YACA,iBAAA;AAAA,YACA,gBAAA;AAAA,YACA,qBAAA;AAAA,YACA,eAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA,cAAA,EAAgB;AAAA,YACd,KAAA;AAAA,YACA,cAAA;AAAA,YACA,cAAA;AAAA,YACA,eAAA;AAAA,YACA,cAAA;AAAA,YACA,QAAA;AAAA,YACA,OAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY;AAAA,UACV,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,cAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,cAAA;AAAA,IACX,OAAA,EAAS,OAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe,0DAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF,CAAA;AAAA,EACA,wBAAA,EAA0B;AAAA,IACxB,MAAA,EAAQ,SAAA;AAAA,IACR,SAAA,EAAW,wBAAA;AAAA,IACX,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,aAAA,EAAe,qCAAA;AAAA,IACf,UAAA,EAAY,UAAA;AAAA,IACZ,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ,QAAA;AAAA,MACR,OAAA,EAAS,iBAAA;AAAA,MACT,YAAA,EAAc;AAAA,QACZ,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,aAAA;AAAA,UACT,MAAA,EAAQ;AAAA,YACN,MAAA;AAAA,YACA,KAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA,QAAA,EAAU;AAAA,UACR,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS,QAAA;AAAA,UACT,QAAA,EAAU;AAAA,QACZ,CAAA;AAAA,QACA,aAAA,EAAe;AAAA,UACb,MAAA,EAAQ,QAAA;AAAA,UACR,OAAA,EAAS;AAAA,QACX;AAAA,MACF,CAAA;AAAA,MACA,UAAA,EAAY;AAAA,QACV;AAAA,MACF;AAAA,IACF,CAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,MAAA,EAAQ;AAAA,IACV,CAAA;AAAA,IACA,QAAA,EAAU;AAAA,MACR,MAAA,EAAQ;AAAA,IACV;AAAA,EACF;AACF,CAAA;AAGO,IAAM,YAAA,EAA0C,MAAA,CAAO,WAAA;AAAA,EAC5D,MAAA,CAAO,OAAA,CAAQ,eAAe,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,GAAG,CAAA,EAAA,GAAM,CAAC,GAAA,EAAK,GAAA,CAAI,MAAM,CAAC;AACvE,CAAA;AAGO,IAAM,oBAAA,EAAuD;AAAA,EAClE,sBAAA,EAAwB;AAAA,IACtB,OAAA,EAAS,sBAAA;AAAA,IACT,OAAA,EAAS,gBAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,yBAAA,EAA2B;AAAA,IACzB,OAAA,EAAS,yBAAA;AAAA,IACT,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,OAAA,EAAS,sBAAA;AAAA,IACT,OAAA,EAAS,gBAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,OAAA,EAAS,4BAAA;AAAA,IACT,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,OAAA,EAAS,4BAAA;AAAA,IACT,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,4BAAA,EAA8B;AAAA,IAC5B,OAAA,EAAS,4BAAA;AAAA,IACT,OAAA,EAAS,uBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,cAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,OAAA,EAAS,kBAAA;AAAA,IACT,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,iBAAA;AAAA,IACT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,cAAA;AAAA,IACT,OAAA,EAAS,OAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,wBAAA,EAA0B;AAAA,IACxB,OAAA,EAAS,wBAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,wBAAA,EAA2D;AAAA,EACtE,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,OAAA,EAAS,uBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,OAAA,EAAS,sBAAA;AAAA,IACT,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,QAAA;AAAA,IACT,MAAA,EAAQ,KAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,kBAAA,EAAqD;AAAA,EAChE,kBAAA,EAAoB;AAAA,IAClB,OAAA,EAAS,kBAAA;AAAA,IACT,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,WAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,eAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,qBAAA,EAAuB;AAAA,IACrB,OAAA,EAAS,qBAAA;AAAA,IACT,OAAA,EAAS,iBAAA;AAAA,IACT,MAAA,EAAQ,SAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,iBAAA;AAAA,IACT,OAAA,EAAS,aAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,OAAA,EAAS,uBAAA;AAAA,IACT,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,sBAAA,EAAwB;AAAA,IACtB,OAAA,EAAS,sBAAA;AAAA,IACT,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,mBAAA,EAAsD;AAAA,EACjE,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,eAAA;AAAA,IACT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,uBAAA,EAAyB;AAAA,IACvB,OAAA,EAAS,uBAAA;AAAA,IACT,OAAA,EAAS,mBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,OAAA,EAAS,0BAAA;AAAA,IACT,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,OAAA,EAAS,0BAAA;AAAA,IACT,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,OAAA,EAAS,0BAAA;AAAA,IACT,OAAA,EAAS,qBAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,OAAA,EAAS,mBAAA;AAAA,IACT,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,OAAA,EAAS,0BAAA;AAAA,IACT,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,iBAAA;AAAA,IACT,OAAA,EAAS,YAAA;AAAA,IACT,MAAA,EAAQ,MAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,eAAA;AAAA,IACT,OAAA,EAAS,UAAA;AAAA,IACT,MAAA,EAAQ,YAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,oBAAA,EAAsB;AAAA,IACpB,OAAA,EAAS,oBAAA;AAAA,IACT,OAAA,EAAS,eAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,0BAAA,EAA4B;AAAA,IAC1B,OAAA,EAAS,0BAAA;AAAA,IACT,OAAA,EAAS,sBAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,kBAAA,EAAqD;AAAA,EAChE,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,MAAA,EAAQ,QAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,WAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB,CAAA;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,aAAA;AAAA,IACT,OAAA,EAAS,QAAA;AAAA,IACT,MAAA,EAAQ,UAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,kBAAA,EAAqD;AAAA,EAChE,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,OAAA;AAAA,IACT,OAAA,EAAS,OAAA;AAAA,IACT,MAAA,EAAQ,OAAA;AAAA,IACR,aAAA,EAAe;AAAA,EACjB;AACF,CAAA;AACO,IAAM,qBAAA,EAAwD,CAAC,CAAA;AAG/D,IAAM,iBAAA,EAAoD,CAAC,CAAA;AAC3D,IAAM,kBAAA,EAAqD,CAAC,CAAA;AAC5D,IAAM,iBAAA,EAAoD,CAAC,CAAA;AAC3D,IAAM,uBAAA,EAA0D,CAAC,CAAA;AA6BjE,IAAM,kBAAA,EAAoB;AAAA,EAC/B,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,WAAW,CAAA;AAAA,EACpE,WAAA,EAAa,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,cAAA,EAAgB,QAAA,EAAU,mBAAmB,CAAA;AAAA,EACzF,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,aAAa,CAAA;AAAA,EAChE,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,aAAa,CAAA;AAAA,EACnE,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,eAAe,CAAA;AAAA,EAClE,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,kBAAkB,CAAA;AAAA,EAClE,WAAA,EAAa,EAAE,KAAA,EAAO,aAAA,EAAe,KAAA,EAAO,aAAA,EAAe,QAAA,EAAU,cAAc,CAAA;AAAA,EACnF,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,oBAAoB,CAAA;AAAA,EACvE,IAAA,EAAM,EAAE,KAAA,EAAO,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAQ,QAAA,EAAU,eAAe,CAAA;AAAA,EAC/D,QAAA,EAAU,EAAE,KAAA,EAAO,UAAA,EAAY,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,eAAe,CAAA;AAAA,EAC3E,KAAA,EAAO,EAAE,KAAA,EAAO,OAAA,EAAS,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,eAAe,CAAA;AAAA,EAClE,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,SAAA,EAAW,QAAA,EAAU,eAAe,CAAA;AAAA,EACxE,MAAA,EAAQ,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,QAAA,EAAU,SAAS,CAAA;AAAA,EAC/D,kBAAA,EAAoB,EAAE,KAAA,EAAO,oBAAA,EAAsB,KAAA,EAAO,qBAAA,EAAuB,QAAA,EAAU,kBAAkB,CAAA;AAAA,EAC7G,OAAA,EAAS,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,cAAc,CAAA;AAAA,EACxE,UAAA,EAAY,EAAE,KAAA,EAAO,YAAA,EAAc,KAAA,EAAO,YAAA,EAAc,QAAA,EAAU,aAAa;AACjF,CAAA;AAmBO,IAAM,kBAAA,EAAwD;AAAA,EACnE,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,cAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,aAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,OAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,OAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,QAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,SAAA,EAAW;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX;AACF,CAAA;AAKO,IAAM,cAAA,EAAwD;AAAA,EACnE,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,OAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,UAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,QAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX,CAAA;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,OAAA,EAAS,cAAA;AAAA,IACT,OAAA,EAAS;AAAA,EACX;AACF,CAAA;AHoOA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,mlaAAC","file":"/home/runner/work/eloquent/eloquent/packages/@elqnt/workflow/dist/index.js","sourcesContent":[null,"// workflow-definition-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowDefinition } from \"../models\";\n\nexport interface WorkflowDefinitionState {\n definitions: Record<string, WorkflowDefinition>;\n selectedDefinition?: WorkflowDefinition;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowDefinitionSelector {\n workflowDefinition: WorkflowDefinitionState;\n}\n\nconst initialState: WorkflowDefinitionState = {\n definitions: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowDefinitionSlice = createSlice({\n name: \"workflowDefinition\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setDefinitions: (state, action: PayloadAction<WorkflowDefinition[]>) => {\n state.definitions = action.payload.reduce(\n (acc, def) => {\n if (def.id) {\n acc[def.id] = def;\n }\n return acc;\n },\n {} as Record<string, WorkflowDefinition>\n );\n },\n addDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n },\n updateDefinition: (state, action: PayloadAction<WorkflowDefinition>) => {\n const definition = action.payload;\n if (definition.id) {\n state.definitions[definition.id] = definition;\n }\n if (state.selectedDefinition?.id === definition.id) {\n state.selectedDefinition = definition;\n }\n },\n removeDefinition: (state, action: PayloadAction<string>) => {\n delete state.definitions[action.payload];\n if (state.selectedDefinition?.id === action.payload) {\n state.selectedDefinition = undefined;\n }\n },\n setSelectedDefinition: (\n state,\n action: PayloadAction<WorkflowDefinition | undefined>\n ) => {\n state.selectedDefinition = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setDefinitions,\n addDefinition,\n updateDefinition,\n removeDefinition,\n setSelectedDefinition,\n} = workflowDefinitionSlice.actions;\n\nexport const workflowDefinitionReducer = workflowDefinitionSlice.reducer;","// workflow-instance-slice.ts\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\nimport { WorkflowInstance } from \"../models\";\n\nexport interface WorkflowInstanceState {\n instances: Record<string, WorkflowInstance>;\n selectedInstance?: WorkflowInstance;\n isLoading: boolean;\n error?: string;\n loadingStates: Record<string, boolean>;\n}\n\nexport interface WorkflowInstanceSelector {\n workflowInstance: WorkflowInstanceState;\n}\n\nconst initialState: WorkflowInstanceState = {\n instances: {},\n isLoading: false,\n loadingStates: {},\n};\n\nconst workflowInstanceSlice = createSlice({\n name: \"workflowInstance\",\n initialState,\n reducers: {\n setLoading: (state, action: PayloadAction<boolean>) => {\n state.isLoading = action.payload;\n },\n setOperationLoading: (\n state,\n action: PayloadAction<{ operation: string; loading: boolean }>\n ) => {\n state.loadingStates[action.payload.operation] = action.payload.loading;\n },\n setError: (state, action: PayloadAction<string | undefined>) => {\n state.error = action.payload;\n },\n setInstances: (state, action: PayloadAction<WorkflowInstance[]>) => {\n state.instances = action.payload.reduce(\n (acc, inst) => {\n if (inst.id) {\n acc[inst.id] = inst;\n }\n return acc;\n },\n {} as Record<string, WorkflowInstance>\n );\n },\n updateInstance: (state, action: PayloadAction<WorkflowInstance>) => {\n const instance = action.payload;\n if (instance.id) {\n state.instances[instance.id] = instance;\n }\n if (state.selectedInstance?.id === instance.id) {\n state.selectedInstance = instance;\n }\n },\n setSelectedInstance: (\n state,\n action: PayloadAction<WorkflowInstance | undefined>\n ) => {\n state.selectedInstance = action.payload;\n },\n },\n});\n\nexport const {\n setLoading,\n setOperationLoading,\n setError,\n setInstances,\n updateInstance,\n setSelectedInstance,\n} = workflowInstanceSlice.actions;\n\nexport const workflowInstanceReducer = workflowInstanceSlice.reducer;","// Generated file - DO NOT EDIT\n\nimport { JSONSchema } from \"@elqnt/types\";\nimport { NodeType, NodeDefinition, EdgeTypeDefinition, WorkflowTypeDefinition } from \"../models/workflow\";\n\n// Type-safe NodeSubType union (generated from Go NodeDefinitions)\nexport type NodeSubTypeTS = \"actionAIClassify\" | \"actionAIExtractData\" | \"actionAISummarize\" | \"actionApiCall\" | \"actionAssignSLAPolicy\" | \"actionCreateEntityRecord\" | \"actionDeleteEntityRecord\" | \"actionDocumentExtraction\" | \"actionNatsRequest\" | \"actionQueryEntityRecords\" | \"actionSendEmail\" | \"actionSendSMS\" | \"actionSetVariables\" | \"actionUpdateEntityRecord\" | \"agentChat\" | \"agentCustomResponse\" | \"agentIntentDetector\" | \"agentKnowledgeGraph\" | \"agentOpenTicket\" | \"agentStructuredOutput\" | \"agentTransferToHuman\" | \"delay\" | \"humanActionApproval\" | \"humanActionAssignment\" | \"humanActionDataEntry\" | \"humanActionReview\" | \"integrationCreateEvent\" | \"integrationGetDriveFile\" | \"integrationSearchCalendar\" | \"integrationSearchDrive\" | \"integrationSearchEmails\" | \"integrationSendEmail\" | \"logicFor\" | \"logicIf\" | \"logicSwitch\" | \"triggerCalendarEvent\" | \"triggerDriveFileChanged\" | \"triggerEmailReceived\" | \"triggerEntityRecordCreated\" | \"triggerEntityRecordDeleted\" | \"triggerEntityRecordUpdated\" | \"triggerEscalation\" | \"triggerSLABreach\" | \"triggerSLAWarning\" | \"triggerSchedule\" | \"triggerStart\" | \"triggerWebhookReceived\";\n\nexport interface NodeSubTypeInfo {\n value: string;\n label: string;\n icon: string;\n description: string;\n}\n\nexport const nodeDefinitions: Record<string, NodeDefinition> = {\n \"actionAIClassify\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Classify\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"description\": \"List of possible categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Additional Instructions\",\n \"format\": \"multiline\"\n },\n \"multiLabel\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Multiple Labels\",\n \"description\": \"Can content belong to multiple categories?\",\n \"default\": false\n }\n },\n \"required\": [\n \"content\",\n \"categories\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"categories\": {\n \"type\": \"array\",\n \"title\": \"Categories\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"category\": {\n \"type\": \"string\",\n \"title\": \"Primary Category\"\n },\n \"confidence\": {\n \"type\": \"number\",\n \"title\": \"Confidence\",\n \"minimum\": 0,\n \"maximum\": 1\n },\n \"reasoning\": {\n \"type\": \"string\",\n \"title\": \"Reasoning\"\n }\n }\n }\n },\n \"actionAIExtractData\": {\n \"type\": \"agent\",\n \"subType\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Extract Data\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"format\": \"multiline\"\n },\n \"extractionSchema\": {\n \"type\": \"object\",\n \"title\": \"Extraction Schema\",\n \"description\": \"JSON Schema defining what to extract\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"content\",\n \"extractionSchema\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Extracted data matching the schema\"\n }\n },\n \"actionAISummarize\": {\n \"type\": \"agent\",\n \"subType\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"AI Summarize\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"title\": \"Content\",\n \"description\": \"Text to summarize (supports {{variables}})\",\n \"format\": \"multiline\"\n },\n \"focusOn\": {\n \"type\": \"string\",\n \"title\": \"Focus On\",\n \"description\": \"Optional: specific aspects to focus on\"\n },\n \"maxLength\": {\n \"type\": \"integer\",\n \"title\": \"Max Length (words)\",\n \"minimum\": 10,\n \"maximum\": 1000\n },\n \"style\": {\n \"type\": \"string\",\n \"title\": \"Style\",\n \"default\": \"brief\",\n \"enum\": [\n \"brief\",\n \"detailed\",\n \"bullet_points\",\n \"executive\"\n ],\n \"x-enumLabels\": [\n \"Brief (1-2 sentences)\",\n \"Detailed\",\n \"Bullet Points\",\n \"Executive Summary\"\n ]\n }\n },\n \"required\": [\n \"content\",\n \"style\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"keyPoints\": {\n \"type\": \"array\",\n \"title\": \"Key Points\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"summary\": {\n \"type\": \"string\",\n \"title\": \"Summary\"\n },\n \"wordCount\": {\n \"type\": \"integer\",\n \"title\": \"Word Count\"\n }\n }\n }\n },\n \"actionApiCall\": {\n \"type\": \"action\",\n \"subType\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"API Call\",\n \"properties\": {\n \"authorization\": {\n \"type\": \"string\",\n \"title\": \"Authorization\",\n \"x-displayOrder\": 5\n },\n \"callbackTimeout\": {\n \"type\": \"integer\",\n \"title\": \"Callback Timeout (ms)\",\n \"description\": \"For async mode only\",\n \"x-displayOrder\": 9\n },\n \"headers\": {\n \"type\": \"object\",\n \"title\": \"Headers\",\n \"x-displayOrder\": 4\n },\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\"\n ],\n \"x-displayOrder\": 3\n },\n \"mode\": {\n \"type\": \"string\",\n \"title\": \"Mode\",\n \"enum\": [\n \"sync\",\n \"async\"\n ],\n \"x-enumLabels\": [\n \"Synchronous\",\n \"Asynchronous (Callback)\"\n ],\n \"x-displayOrder\": 1\n },\n \"retryCount\": {\n \"type\": \"integer\",\n \"title\": \"Retry Count\",\n \"minimum\": 0,\n \"maximum\": 5,\n \"x-displayOrder\": 7\n },\n \"retryDelay\": {\n \"type\": \"integer\",\n \"title\": \"Retry Delay (ms)\",\n \"minimum\": 100,\n \"x-displayOrder\": 8\n },\n \"timeout\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (ms)\",\n \"minimum\": 1000,\n \"maximum\": 300000,\n \"x-displayOrder\": 6\n },\n \"url\": {\n \"type\": \"string\",\n \"title\": \"URL\",\n \"x-displayOrder\": 2\n }\n },\n \"required\": [\n \"url\",\n \"method\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionAssignSLAPolicy\": {\n \"type\": \"action\",\n \"subType\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Assign SLA Policy\",\n \"properties\": {\n \"entityRecordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Entity Record ID\"\n },\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"Policy ID\"\n }\n },\n \"required\": [\n \"policyId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"assignmentId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionCreateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Values\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"recordId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"actionDeleteEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delete Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"deleted\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionDocumentExtraction\": {\n \"type\": \"action\",\n \"subType\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\",\n \"category\": \"Data Processing\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Document Extraction\",\n \"properties\": {\n \"documentType\": {\n \"type\": \"string\",\n \"title\": \"Document Type\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"instructions\",\n \"documentType\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"fileUrl\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionNatsRequest\": {\n \"type\": \"action\",\n \"subType\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"NATS Request\",\n \"properties\": {\n \"actionTypeField\": {\n \"type\": \"string\",\n \"title\": \"Action Type Field\",\n \"description\": \"Dot-notation path to get action type from input (e.g., \\\"human_review.selectedAction.type\\\")\"\n },\n \"payloadTemplate\": {\n \"type\": \"object\",\n \"title\": \"Payload Template\",\n \"description\": \"JSON payload with {{variable}} interpolation\"\n },\n \"subjectMapping\": {\n \"type\": \"object\",\n \"title\": \"Subject Mapping\",\n \"description\": \"Map action types to NATS subjects (e.g., {\\\"reply\\\": \\\"hub.integration.email.send\\\"})\"\n },\n \"timeoutSeconds\": {\n \"type\": \"integer\",\n \"title\": \"Timeout (seconds)\",\n \"default\": 30,\n \"minimum\": 1,\n \"maximum\": 300\n }\n }\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"NATS Subject\",\n \"description\": \"Direct NATS subject (alternative to subjectMapping)\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"description\": \"Response from NATS service\",\n \"properties\": {\n \"_actionType\": {\n \"type\": \"string\",\n \"title\": \"Action Type\",\n \"description\": \"The action type that was used (if subjectMapping was used)\"\n },\n \"_executedSubject\": {\n \"type\": \"string\",\n \"title\": \"Executed Subject\",\n \"description\": \"The NATS subject that was called\"\n }\n }\n }\n },\n \"actionQueryEntityRecords\": {\n \"type\": \"action\",\n \"subType\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Query Entity Records\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\",\n \"description\": \"Name of the entity to query\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\",\n \"description\": \"Field filters (e.g., {\\\"status\\\": \\\"open\\\"})\"\n },\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Page\",\n \"description\": \"Page number (default: 1)\",\n \"minimum\": 1\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\",\n \"description\": \"Records per page (default: 10)\",\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"sortBy\": {\n \"type\": \"string\",\n \"title\": \"Sort By\",\n \"description\": \"Field to sort by\"\n },\n \"sortOrder\": {\n \"type\": \"integer\",\n \"title\": \"Sort Order\",\n \"description\": \"1 for ascending, -1 for descending\",\n \"enum\": [\n 1,\n -1\n ]\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"page\": {\n \"type\": \"integer\",\n \"title\": \"Current Page\"\n },\n \"pageSize\": {\n \"type\": \"integer\",\n \"title\": \"Page Size\"\n },\n \"records\": {\n \"type\": \"array\",\n \"title\": \"Records\",\n \"description\": \"Array of matching entity records\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"totalCount\": {\n \"type\": \"integer\",\n \"title\": \"Total Count\",\n \"description\": \"Total number of matching records\"\n },\n \"totalPages\": {\n \"type\": \"integer\",\n \"title\": \"Total Pages\"\n }\n }\n }\n },\n \"actionSendEmail\": {\n \"type\": \"action\",\n \"subType\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"bcc\": {\n \"type\": \"string\",\n \"title\": \"BCC\"\n },\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\",\n \"description\": \"Sender email address (must be verified in SES)\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"template\": {\n \"type\": \"string\",\n \"title\": \"Template\",\n \"enum\": [\n \"welcome\",\n \"notification\",\n \"confirmation\",\n \"custom\"\n ],\n \"x-enumLabels\": [\n \"Welcome Email\",\n \"Notification\",\n \"Confirmation\",\n \"Custom\"\n ]\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"from\",\n \"to\",\n \"subject\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emailSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSendSMS\": {\n \"type\": \"action\",\n \"subType\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\",\n \"category\": \"Communication\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send SMS\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Message\",\n \"format\": \"multiline\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"Phone Number\"\n }\n },\n \"required\": [\n \"to\",\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"smsSent\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"actionSetVariables\": {\n \"type\": \"action\",\n \"subType\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Set Variables\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"actionUpdateEntityRecord\": {\n \"type\": \"action\",\n \"subType\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\",\n \"category\": \"Data Operations\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Update Entity Record\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"fields\": {\n \"type\": \"object\",\n \"title\": \"Field Updates\"\n },\n \"recordIdExpr\": {\n \"type\": \"string\",\n \"title\": \"Record ID Expression\"\n }\n },\n \"required\": [\n \"entityName\",\n \"recordIdExpr\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"updated\": {\n \"type\": \"boolean\"\n }\n }\n }\n },\n \"agentChat\": {\n \"type\": \"agent\",\n \"subType\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Chat\",\n \"properties\": {\n \"maxTokens\": {\n \"type\": \"integer\",\n \"title\": \"Max Tokens\",\n \"minimum\": 1,\n \"maximum\": 4096\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\",\n \"enum\": [\n \"gpt-4\",\n \"gpt-4-turbo\",\n \"gpt-3.5-turbo\",\n \"claude-3-opus\",\n \"claude-3-sonnet\"\n ],\n \"x-enumLabels\": [\n \"GPT-4\",\n \"GPT-4 Turbo\",\n \"GPT-3.5 Turbo\",\n \"Claude 3 Opus\",\n \"Claude 3 Sonnet\"\n ]\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n },\n \"required\": [\n \"systemPrompt\",\n \"model\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentCustomResponse\": {\n \"type\": \"agent\",\n \"subType\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Custom Response\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Response Message\",\n \"format\": \"multiline\"\n }\n },\n \"required\": [\n \"message\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentIntentDetector\": {\n \"type\": \"agent\",\n \"subType\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Intent Detector\",\n \"properties\": {\n \"intents\": {\n \"type\": \"array\",\n \"title\": \"Intents\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"ID\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n }\n }\n }\n },\n \"required\": [\n \"intents\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"confidence\": {\n \"type\": \"number\"\n },\n \"intent\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentKnowledgeGraph\": {\n \"type\": \"agent\",\n \"subType\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Knowledge Graph\",\n \"properties\": {\n \"fields\": {\n \"type\": \"array\",\n \"title\": \"Fields\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"label\": {\n \"type\": \"string\",\n \"title\": \"Label\"\n }\n },\n \"required\": [\n \"label\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"kg_response\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\"\n }\n }\n }\n }\n },\n \"agentOpenTicket\": {\n \"type\": \"agent\",\n \"subType\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Open Ticket\",\n \"properties\": {\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ]\n },\n \"ticketType\": {\n \"type\": \"string\",\n \"title\": \"Ticket Type\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"ticketId\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"agentStructuredOutput\": {\n \"type\": \"agent\",\n \"subType\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Structured Output\",\n \"properties\": {\n \"inputTemplate\": {\n \"type\": \"string\",\n \"title\": \"Input Template\",\n \"format\": \"multiline\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n },\n \"model\": {\n \"type\": \"string\",\n \"title\": \"Model\"\n },\n \"systemPrompt\": {\n \"type\": \"string\",\n \"title\": \"System Prompt\",\n \"format\": \"multiline\"\n },\n \"temperature\": {\n \"type\": \"number\",\n \"title\": \"Temperature\",\n \"minimum\": 0,\n \"maximum\": 2\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"agentTransferToHuman\": {\n \"type\": \"agent\",\n \"subType\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\",\n \"category\": \"AI \\u0026 Automation\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Transfer to Human\",\n \"properties\": {\n \"message\": {\n \"type\": \"string\",\n \"title\": \"Transfer Message\",\n \"format\": \"multiline\"\n },\n \"queueId\": {\n \"type\": \"string\",\n \"title\": \"Queue ID\"\n }\n },\n \"required\": [\n \"message\",\n \"queueId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"delay\": {\n \"type\": \"delay\",\n \"subType\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\",\n \"category\": \"Time \\u0026 Scheduling\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Delay\",\n \"properties\": {\n \"duration\": {\n \"type\": \"integer\",\n \"title\": \"Duration\",\n \"minimum\": 1\n },\n \"unit\": {\n \"type\": \"string\",\n \"title\": \"Unit\",\n \"enum\": [\n \"seconds\",\n \"minutes\",\n \"hours\",\n \"days\"\n ],\n \"x-enumLabels\": [\n \"Seconds\",\n \"Minutes\",\n \"Hours\",\n \"Days\"\n ]\n }\n },\n \"required\": [\n \"duration\",\n \"unit\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionApproval\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Approval\",\n \"properties\": {\n \"allowEdit\": {\n \"type\": \"boolean\",\n \"title\": \"Allow Edit\"\n },\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"humanActionAssignment\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Task Assignment\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"priority\": {\n \"type\": \"string\",\n \"title\": \"Priority\",\n \"enum\": [\n \"low\",\n \"medium\",\n \"high\",\n \"urgent\"\n ],\n \"x-enumLabels\": [\n \"Low\",\n \"Medium\",\n \"High\",\n \"Urgent\"\n ]\n },\n \"taskDescription\": {\n \"type\": \"string\",\n \"title\": \"Task Description\",\n \"format\": \"multiline\"\n },\n \"taskTitle\": {\n \"type\": \"string\",\n \"title\": \"Task Title\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionDataEntry\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Data Entry\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"formSchema\": {\n \"type\": \"object\",\n \"title\": \"Form Schema\"\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"humanActionReview\": {\n \"type\": \"humanAction\",\n \"subType\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\",\n \"category\": \"User Interaction\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Review\",\n \"properties\": {\n \"assignTo\": {\n \"type\": \"string\",\n \"title\": \"Assign To\"\n },\n \"dueInHours\": {\n \"type\": \"integer\",\n \"title\": \"Due In (Hours)\",\n \"minimum\": 1\n },\n \"editableFields\": {\n \"type\": \"array\",\n \"title\": \"Editable Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"instructions\": {\n \"type\": \"string\",\n \"title\": \"Instructions\",\n \"format\": \"multiline\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"decision\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"integrationCreateEvent\": {\n \"type\": \"integration\",\n \"subType\": \"integrationCreateEvent\",\n \"label\": \"Create Calendar Event\",\n \"icon\": \"CalendarPlus\",\n \"description\": \"Create event in user's calendar\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Create Calendar Event\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"string\",\n \"title\": \"Attendees\",\n \"description\": \"Comma-separated email addresses\"\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\",\n \"format\": \"multiline\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"sendInvites\": {\n \"type\": \"boolean\",\n \"title\": \"Send Calendar Invites\",\n \"default\": true\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n },\n \"required\": [\n \"title\",\n \"startTime\",\n \"endTime\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"created\": {\n \"type\": \"boolean\",\n \"title\": \"Created\"\n },\n \"eventId\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"eventUrl\": {\n \"type\": \"string\",\n \"title\": \"Event URL\"\n }\n }\n }\n },\n \"integrationGetDriveFile\": {\n \"type\": \"integration\",\n \"subType\": \"integrationGetDriveFile\",\n \"label\": \"Get Drive File\",\n \"icon\": \"File\",\n \"description\": \"Get details of a specific file\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Get Drive File\",\n \"properties\": {\n \"fileId\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n }\n },\n \"required\": [\n \"fileId\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"downloadUrl\": {\n \"type\": \"string\",\n \"title\": \"Download URL\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"integrationSearchCalendar\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchCalendar\",\n \"label\": \"Search Calendar\",\n \"icon\": \"CalendarSearch\",\n \"description\": \"Search calendar events\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Calendar\",\n \"properties\": {\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in event titles and descriptions\"\n },\n \"timeMax\": {\n \"type\": \"string\",\n \"title\": \"End Date\",\n \"description\": \"Search events before this date\",\n \"format\": \"date-time\"\n },\n \"timeMin\": {\n \"type\": \"string\",\n \"title\": \"Start Date\",\n \"description\": \"Search events after this date\",\n \"format\": \"date-time\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"events\": {\n \"type\": \"array\",\n \"title\": \"Events\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchDrive\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchDrive\",\n \"label\": \"Search Drive\",\n \"icon\": \"FolderSearch\",\n \"description\": \"Search files in user's Drive\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Drive\",\n \"properties\": {\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Search in specific folder\"\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"File Type\",\n \"enum\": [\n \"\",\n \"document\",\n \"spreadsheet\",\n \"presentation\",\n \"pdf\",\n \"image\",\n \"folder\"\n ],\n \"x-enumLabels\": [\n \"Any\",\n \"Documents\",\n \"Spreadsheets\",\n \"Presentations\",\n \"PDFs\",\n \"Images\",\n \"Folders\"\n ]\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Search in file names and content\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"files\": {\n \"type\": \"array\",\n \"title\": \"Files\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSearchEmails\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSearchEmails\",\n \"label\": \"Search Emails\",\n \"icon\": \"MailSearch\",\n \"description\": \"Search user's emails\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Search Emails\",\n \"properties\": {\n \"dateRange\": {\n \"type\": \"string\",\n \"title\": \"Date Range\",\n \"enum\": [\n \"1d\",\n \"7d\",\n \"30d\",\n \"90d\",\n \"all\"\n ],\n \"x-enumLabels\": [\n \"Last 24 hours\",\n \"Last 7 days\",\n \"Last 30 days\",\n \"Last 90 days\",\n \"All time\"\n ]\n },\n \"maxResults\": {\n \"type\": \"integer\",\n \"title\": \"Max Results\",\n \"default\": 20,\n \"minimum\": 1,\n \"maximum\": 100\n },\n \"query\": {\n \"type\": \"string\",\n \"title\": \"Search Query\",\n \"description\": \"Gmail/Outlook search query\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"emails\": {\n \"type\": \"array\",\n \"title\": \"Emails\",\n \"items\": {\n \"type\": \"object\"\n }\n },\n \"total\": {\n \"type\": \"integer\",\n \"title\": \"Total\"\n }\n }\n }\n },\n \"integrationSendEmail\": {\n \"type\": \"integration\",\n \"subType\": \"integrationSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Send\",\n \"description\": \"Send email via user's connected account\",\n \"category\": \"Integration\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Send Email\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\",\n \"format\": \"multiline\"\n },\n \"bodyType\": {\n \"type\": \"string\",\n \"title\": \"Body Type\",\n \"default\": \"text\",\n \"enum\": [\n \"text\",\n \"html\"\n ],\n \"x-enumLabels\": [\n \"Plain Text\",\n \"HTML\"\n ]\n },\n \"cc\": {\n \"type\": \"string\",\n \"title\": \"CC\"\n },\n \"replyToMessageId\": {\n \"type\": \"string\",\n \"title\": \"Reply To Message ID\",\n \"description\": \"Optional: message ID to reply to\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n },\n \"required\": [\n \"to\",\n \"subject\",\n \"body\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"messageId\": {\n \"type\": \"string\",\n \"title\": \"Message ID\"\n },\n \"sent\": {\n \"type\": \"boolean\",\n \"title\": \"Sent\"\n }\n }\n }\n },\n \"logicFor\": {\n \"type\": \"logic\",\n \"subType\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Loop\",\n \"properties\": {\n \"collection\": {\n \"type\": \"string\",\n \"title\": \"Collection Expression\"\n },\n \"indexVariable\": {\n \"type\": \"string\",\n \"title\": \"Index Variable Name\"\n },\n \"itemVariable\": {\n \"type\": \"string\",\n \"title\": \"Item Variable Name\"\n },\n \"maxIterations\": {\n \"type\": \"integer\",\n \"title\": \"Max Iterations\",\n \"minimum\": 1,\n \"maximum\": 10000\n }\n },\n \"required\": [\n \"collection\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"logicIf\": {\n \"type\": \"logic\",\n \"subType\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"If Condition Configuration\",\n \"properties\": {\n \"conditions\": {\n \"type\": \"array\",\n \"title\": \"Conditions\",\n \"description\": \"Define conditions to evaluate against workflow variables\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"field\": {\n \"type\": \"string\",\n \"title\": \"Variable\",\n \"description\": \"Variable path (e.g., emailSent, user.role)\"\n },\n \"operator\": {\n \"type\": \"string\",\n \"title\": \"Operator\",\n \"enum\": [\n \"eq\",\n \"neq\",\n \"gt\",\n \"gte\",\n \"lt\",\n \"lte\",\n \"contains\",\n \"startsWith\",\n \"endsWith\",\n \"isEmpty\",\n \"isNotEmpty\"\n ]\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\",\n \"description\": \"Value to compare against\"\n }\n },\n \"required\": [\n \"field\",\n \"operator\"\n ]\n }\n },\n \"defaultPath\": {\n \"type\": \"string\",\n \"title\": \"Default Path ID\",\n \"description\": \"Path to use if no condition matches\"\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Advanced Expression\",\n \"description\": \"JavaScript expression for complex conditions (e.g., amount \\u003e 1000 \\u0026\\u0026 status === 'approved')\",\n \"format\": \"multiline\"\n },\n \"logic\": {\n \"type\": \"string\",\n \"title\": \"Logic\",\n \"description\": \"How to combine multiple conditions\",\n \"default\": \"and\",\n \"enum\": [\n \"and\",\n \"or\"\n ]\n },\n \"paths\": {\n \"type\": \"array\",\n \"title\": \"Paths\",\n \"description\": \"Define target nodes for true/false outcomes\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\n \"type\": \"string\",\n \"title\": \"Condition\",\n \"enum\": [\n \"true\",\n \"false\"\n ]\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Path ID\"\n },\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n }\n },\n \"required\": [\n \"id\",\n \"condition\"\n ]\n }\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"conditionResult\": {\n \"type\": \"boolean\"\n },\n \"pathTaken\": {\n \"type\": \"string\"\n }\n }\n }\n },\n \"logicSwitch\": {\n \"type\": \"logic\",\n \"subType\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\",\n \"category\": \"Flow Control\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Switch\",\n \"properties\": {\n \"cases\": {\n \"type\": \"array\",\n \"title\": \"Cases\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"nodeId\": {\n \"type\": \"string\",\n \"title\": \"Target Node ID\"\n },\n \"value\": {\n \"type\": \"string\",\n \"title\": \"Value\"\n }\n }\n }\n },\n \"expression\": {\n \"type\": \"string\",\n \"title\": \"Switch Expression\"\n }\n },\n \"required\": [\n \"expression\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerCalendarEvent\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Calendar Trigger\",\n \"properties\": {\n \"leadTime\": {\n \"type\": \"integer\",\n \"title\": \"Minutes Before\",\n \"description\": \"For reminder triggers\",\n \"default\": 30,\n \"minimum\": 5,\n \"maximum\": 1440\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Calendar\",\n \"Outlook Calendar\"\n ]\n },\n \"triggerType\": {\n \"type\": \"string\",\n \"title\": \"Trigger When\",\n \"enum\": [\n \"reminder\",\n \"event_start\",\n \"event_created\"\n ],\n \"x-enumLabels\": [\n \"Before Event (Reminder)\",\n \"Event Starts\",\n \"Event Created\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"triggerType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"event\": {\n \"type\": \"object\",\n \"properties\": {\n \"attendees\": {\n \"type\": \"array\",\n \"title\": \"Attendees\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"endTime\": {\n \"type\": \"string\",\n \"title\": \"End Time\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Event ID\"\n },\n \"location\": {\n \"type\": \"string\",\n \"title\": \"Location\"\n },\n \"startTime\": {\n \"type\": \"string\",\n \"title\": \"Start Time\",\n \"format\": \"date-time\"\n },\n \"title\": {\n \"type\": \"string\",\n \"title\": \"Title\"\n }\n }\n }\n }\n }\n },\n \"triggerDriveFileChanged\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Drive Trigger\",\n \"properties\": {\n \"changeType\": {\n \"type\": \"string\",\n \"title\": \"Change Type\",\n \"enum\": [\n \"created\",\n \"modified\",\n \"any\"\n ],\n \"x-enumLabels\": [\n \"File Created\",\n \"File Modified\",\n \"Any Change\"\n ]\n },\n \"fileTypes\": {\n \"type\": \"array\",\n \"title\": \"File Types\",\n \"description\": \"Filter by extension (e.g., pdf, docx)\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"folderId\": {\n \"type\": \"string\",\n \"title\": \"Folder ID\",\n \"description\": \"Watch specific folder (leave empty for all)\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 10,\n \"minimum\": 5\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Google Drive\",\n \"OneDrive\"\n ]\n }\n },\n \"required\": [\n \"provider\",\n \"changeType\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"createdAt\": {\n \"type\": \"string\",\n \"title\": \"Created At\",\n \"format\": \"date-time\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"File ID\"\n },\n \"mimeType\": {\n \"type\": \"string\",\n \"title\": \"MIME Type\"\n },\n \"name\": {\n \"type\": \"string\",\n \"title\": \"Name\"\n },\n \"size\": {\n \"type\": \"integer\",\n \"title\": \"Size (bytes)\"\n },\n \"webLink\": {\n \"type\": \"string\",\n \"title\": \"Web Link\"\n }\n }\n }\n }\n }\n },\n \"triggerEmailReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Email Trigger\",\n \"properties\": {\n \"fromFilter\": {\n \"type\": \"string\",\n \"title\": \"From (contains)\",\n \"description\": \"Filter by sender email or name\"\n },\n \"hasAttachment\": {\n \"type\": \"boolean\",\n \"title\": \"Has Attachment\"\n },\n \"isUnread\": {\n \"type\": \"boolean\",\n \"title\": \"Unread Only\",\n \"default\": true\n },\n \"labelFilter\": {\n \"type\": \"string\",\n \"title\": \"Label/Folder\",\n \"description\": \"Gmail label or Outlook folder\"\n },\n \"pollInterval\": {\n \"type\": \"integer\",\n \"title\": \"Poll Interval (minutes)\",\n \"default\": 5,\n \"minimum\": 1,\n \"maximum\": 60\n },\n \"provider\": {\n \"type\": \"string\",\n \"title\": \"Provider\",\n \"enum\": [\n \"google\",\n \"microsoft\"\n ],\n \"x-enumLabels\": [\n \"Gmail\",\n \"Outlook\"\n ]\n },\n \"subjectFilter\": {\n \"type\": \"string\",\n \"title\": \"Subject (contains)\"\n }\n },\n \"required\": [\n \"provider\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"email\": {\n \"type\": \"object\",\n \"properties\": {\n \"body\": {\n \"type\": \"string\",\n \"title\": \"Body\"\n },\n \"date\": {\n \"type\": \"string\",\n \"title\": \"Date\",\n \"format\": \"date-time\"\n },\n \"from\": {\n \"type\": \"string\",\n \"title\": \"From\"\n },\n \"id\": {\n \"type\": \"string\",\n \"title\": \"Email ID\"\n },\n \"snippet\": {\n \"type\": \"string\",\n \"title\": \"Snippet\"\n },\n \"subject\": {\n \"type\": \"string\",\n \"title\": \"Subject\"\n },\n \"to\": {\n \"type\": \"string\",\n \"title\": \"To\"\n }\n }\n }\n }\n }\n },\n \"triggerEntityRecordCreated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Created\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The created entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordDeleted\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Deleted\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The deleted entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEntityRecordUpdated\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Entity Record Updated\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"filters\": {\n \"type\": \"object\",\n \"title\": \"Filters\"\n },\n \"watchFields\": {\n \"type\": \"array\",\n \"title\": \"Watch Fields\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"entityName\"\n ]\n },\n \"input\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\"\n },\n \"entityRecordId\": {\n \"type\": \"string\"\n }\n }\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"entityName\": {\n \"type\": \"string\",\n \"title\": \"Entity Name\"\n },\n \"entityRecordId\": {\n \"type\": \"string\",\n \"title\": \"Record ID\"\n },\n \"record\": {\n \"type\": \"object\",\n \"title\": \"Entity Record\",\n \"description\": \"The updated entity record (fields vary by entity type)\"\n }\n }\n }\n },\n \"triggerEscalation\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Escalation\",\n \"properties\": {\n \"escalationLevel\": {\n \"type\": \"integer\",\n \"title\": \"Escalation Level\",\n \"minimum\": 1\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLABreach\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Breach\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSLAWarning\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"SLA Warning\",\n \"properties\": {\n \"policyId\": {\n \"type\": \"string\",\n \"title\": \"SLA Policy ID\"\n },\n \"warningThreshold\": {\n \"type\": \"number\",\n \"title\": \"Warning Threshold (%)\",\n \"minimum\": 0,\n \"maximum\": 100\n }\n }\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerSchedule\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Schedule Trigger\",\n \"properties\": {\n \"description\": {\n \"type\": \"string\",\n \"title\": \"Description\"\n },\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Cron Expression\",\n \"description\": \"e.g., '0 9 * * MON-FRI' for weekdays at 9am\"\n },\n \"timezone\": {\n \"type\": \"string\",\n \"title\": \"Timezone\",\n \"default\": \"UTC\",\n \"enum\": [\n \"UTC\",\n \"America/New_York\",\n \"America/Chicago\",\n \"America/Denver\",\n \"America/Los_Angeles\",\n \"Europe/London\",\n \"Europe/Paris\",\n \"Asia/Tokyo\"\n ],\n \"x-enumLabels\": [\n \"UTC\",\n \"Eastern Time\",\n \"Central Time\",\n \"Mountain Time\",\n \"Pacific Time\",\n \"London\",\n \"Paris\",\n \"Tokyo\"\n ]\n }\n },\n \"required\": [\n \"schedule\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\",\n \"properties\": {\n \"schedule\": {\n \"type\": \"string\",\n \"title\": \"Schedule\"\n },\n \"triggeredAt\": {\n \"type\": \"string\",\n \"title\": \"Triggered At\",\n \"format\": \"date-time\"\n }\n }\n }\n },\n \"triggerStart\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\"\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n },\n \"triggerWebhookReceived\": {\n \"type\": \"trigger\",\n \"subType\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\",\n \"category\": \"Triggers\",\n \"config\": {\n \"type\": \"object\",\n \"title\": \"Webhook Trigger\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"title\": \"HTTP Method\",\n \"enum\": [\n \"POST\",\n \"GET\",\n \"PUT\"\n ]\n },\n \"secret\": {\n \"type\": \"string\",\n \"title\": \"Secret\",\n \"format\": \"password\"\n },\n \"webhookPath\": {\n \"type\": \"string\",\n \"title\": \"Webhook Path\"\n }\n },\n \"required\": [\n \"webhookPath\"\n ]\n },\n \"input\": {\n \"type\": \"object\"\n },\n \"output\": {\n \"type\": \"object\"\n }\n }\n} as const;\n\n// Helper to get just the config schemas (for backwards compatibility)\nexport const nodeSchemas: Record<string, JSONSchema> = Object.fromEntries(\n Object.entries(nodeDefinitions).map(([key, def]) => [key, def.config])\n);\n\n// Grouped subtypes for backwards compatibility with existing frontend code\nexport const TriggerNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"triggerCalendarEvent\": {\n \"value\": \"triggerCalendarEvent\",\n \"label\": \"Calendar Event\",\n \"icon\": \"CalendarClock\",\n \"description\": \"Trigger before or when calendar events occur\"\n },\n \"triggerDriveFileChanged\": {\n \"value\": \"triggerDriveFileChanged\",\n \"label\": \"File Changed\",\n \"icon\": \"FolderSync\",\n \"description\": \"Trigger when files are added or modified in Drive\"\n },\n \"triggerEmailReceived\": {\n \"value\": \"triggerEmailReceived\",\n \"label\": \"Email Received\",\n \"icon\": \"Mail\",\n \"description\": \"Trigger when a new email matches filters\"\n },\n \"triggerEntityRecordCreated\": {\n \"value\": \"triggerEntityRecordCreated\",\n \"label\": \"Entity Record Created\",\n \"icon\": \"Plus\",\n \"description\": \"Triggers when a new entity record is created\"\n },\n \"triggerEntityRecordDeleted\": {\n \"value\": \"triggerEntityRecordDeleted\",\n \"label\": \"Entity Record Deleted\",\n \"icon\": \"Trash\",\n \"description\": \"Triggers when an entity record is deleted\"\n },\n \"triggerEntityRecordUpdated\": {\n \"value\": \"triggerEntityRecordUpdated\",\n \"label\": \"Entity Record Updated\",\n \"icon\": \"Pencil\",\n \"description\": \"Triggers when an entity record is updated\"\n },\n \"triggerEscalation\": {\n \"value\": \"triggerEscalation\",\n \"label\": \"Escalation\",\n \"icon\": \"ArrowUpRight\",\n \"description\": \"Triggers when an escalation occurs\"\n },\n \"triggerSLABreach\": {\n \"value\": \"triggerSLABreach\",\n \"label\": \"SLA Breach\",\n \"icon\": \"TriangleAlert\",\n \"description\": \"Triggers when an SLA breach occurs\"\n },\n \"triggerSLAWarning\": {\n \"value\": \"triggerSLAWarning\",\n \"label\": \"SLA Warning\",\n \"icon\": \"Timer\",\n \"description\": \"Triggers when an SLA warning occurs\"\n },\n \"triggerSchedule\": {\n \"value\": \"triggerSchedule\",\n \"label\": \"Schedule\",\n \"icon\": \"Calendar\",\n \"description\": \"Trigger workflow on a schedule (cron expression)\"\n },\n \"triggerStart\": {\n \"value\": \"triggerStart\",\n \"label\": \"Start\",\n \"icon\": \"Play\",\n \"description\": \"Workflow entry point - receives input and sets variables\"\n },\n \"triggerWebhookReceived\": {\n \"value\": \"triggerWebhookReceived\",\n \"label\": \"Webhook\",\n \"icon\": \"Webhook\",\n \"description\": \"Triggers when a webhook is received\"\n }\n} as const;\nexport const HumanActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"humanActionApproval\": {\n \"value\": \"humanActionApproval\",\n \"label\": \"Approval\",\n \"icon\": \"CheckCircle\",\n \"description\": \"Request human approval\"\n },\n \"humanActionAssignment\": {\n \"value\": \"humanActionAssignment\",\n \"label\": \"Task Assignment\",\n \"icon\": \"UserPlus\",\n \"description\": \"Assign a task to a user\"\n },\n \"humanActionDataEntry\": {\n \"value\": \"humanActionDataEntry\",\n \"label\": \"Data Entry\",\n \"icon\": \"FormInput\",\n \"description\": \"Request human data entry\"\n },\n \"humanActionReview\": {\n \"value\": \"humanActionReview\",\n \"label\": \"Review\",\n \"icon\": \"Eye\",\n \"description\": \"Request human review\"\n }\n} as const;\nexport const AgentNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionAIClassify\": {\n \"value\": \"actionAIClassify\",\n \"label\": \"AI Classify\",\n \"icon\": \"Tags\",\n \"description\": \"Classify content into categories using AI\"\n },\n \"actionAIExtractData\": {\n \"value\": \"actionAIExtractData\",\n \"label\": \"AI Extract Data\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract structured data from unstructured content\"\n },\n \"actionAISummarize\": {\n \"value\": \"actionAISummarize\",\n \"label\": \"AI Summarize\",\n \"icon\": \"FileText\",\n \"description\": \"Summarize text content using AI\"\n },\n \"agentChat\": {\n \"value\": \"agentChat\",\n \"label\": \"Chat\",\n \"icon\": \"MessageSquare\",\n \"description\": \"AI chat interaction\"\n },\n \"agentCustomResponse\": {\n \"value\": \"agentCustomResponse\",\n \"label\": \"Custom Response\",\n \"icon\": \"MessageCircle\",\n \"description\": \"Send a custom response message\"\n },\n \"agentIntentDetector\": {\n \"value\": \"agentIntentDetector\",\n \"label\": \"Intent Detector\",\n \"icon\": \"Target\",\n \"description\": \"Detect user intent from message\"\n },\n \"agentKnowledgeGraph\": {\n \"value\": \"agentKnowledgeGraph\",\n \"label\": \"Knowledge Graph\",\n \"icon\": \"Network\",\n \"description\": \"Query knowledge graph for information\"\n },\n \"agentOpenTicket\": {\n \"value\": \"agentOpenTicket\",\n \"label\": \"Open Ticket\",\n \"icon\": \"Ticket\",\n \"description\": \"Create a support ticket\"\n },\n \"agentStructuredOutput\": {\n \"value\": \"agentStructuredOutput\",\n \"label\": \"Structured Output\",\n \"icon\": \"Brain\",\n \"description\": \"AI-powered structured data extraction\"\n },\n \"agentTransferToHuman\": {\n \"value\": \"agentTransferToHuman\",\n \"label\": \"Transfer to Human\",\n \"icon\": \"UserCheck\",\n \"description\": \"Transfer conversation to human agent\"\n }\n} as const;\nexport const ActionNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"actionApiCall\": {\n \"value\": \"actionApiCall\",\n \"label\": \"API Call\",\n \"icon\": \"Globe\",\n \"description\": \"Make HTTP API requests\"\n },\n \"actionAssignSLAPolicy\": {\n \"value\": \"actionAssignSLAPolicy\",\n \"label\": \"Assign SLA Policy\",\n \"icon\": \"Clock\",\n \"description\": \"Assign an SLA policy to a record\"\n },\n \"actionCreateEntityRecord\": {\n \"value\": \"actionCreateEntityRecord\",\n \"label\": \"Create Entity Record\",\n \"icon\": \"FilePlus\",\n \"description\": \"Create a new entity record\"\n },\n \"actionDeleteEntityRecord\": {\n \"value\": \"actionDeleteEntityRecord\",\n \"label\": \"Delete Entity Record\",\n \"icon\": \"FileX\",\n \"description\": \"Delete an entity record\"\n },\n \"actionDocumentExtraction\": {\n \"value\": \"actionDocumentExtraction\",\n \"label\": \"Document Extraction\",\n \"icon\": \"FileSearch\",\n \"description\": \"Extract data from documents using AI\"\n },\n \"actionNatsRequest\": {\n \"value\": \"actionNatsRequest\",\n \"label\": \"NATS Request\",\n \"icon\": \"Send\",\n \"description\": \"Execute a NATS request-reply call with dynamic subject routing\"\n },\n \"actionQueryEntityRecords\": {\n \"value\": \"actionQueryEntityRecords\",\n \"label\": \"Query Entity Records\",\n \"icon\": \"Search\",\n \"description\": \"Query entity records with filters\"\n },\n \"actionSendEmail\": {\n \"value\": \"actionSendEmail\",\n \"label\": \"Send Email\",\n \"icon\": \"Mail\",\n \"description\": \"Send an email notification\"\n },\n \"actionSendSMS\": {\n \"value\": \"actionSendSMS\",\n \"label\": \"Send SMS\",\n \"icon\": \"Smartphone\",\n \"description\": \"Send an SMS message\"\n },\n \"actionSetVariables\": {\n \"value\": \"actionSetVariables\",\n \"label\": \"Set Variables\",\n \"icon\": \"Variable\",\n \"description\": \"Set workflow variables\"\n },\n \"actionUpdateEntityRecord\": {\n \"value\": \"actionUpdateEntityRecord\",\n \"label\": \"Update Entity Record\",\n \"icon\": \"FileEdit\",\n \"description\": \"Update an existing entity record\"\n }\n} as const;\nexport const LogicNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"logicFor\": {\n \"value\": \"logicFor\",\n \"label\": \"Loop\",\n \"icon\": \"Repeat\",\n \"description\": \"Iterate over a collection\"\n },\n \"logicIf\": {\n \"value\": \"logicIf\",\n \"label\": \"If Condition\",\n \"icon\": \"GitBranch\",\n \"description\": \"Conditional branching based on variables\"\n },\n \"logicSwitch\": {\n \"value\": \"logicSwitch\",\n \"label\": \"Switch\",\n \"icon\": \"GitMerge\",\n \"description\": \"Multi-way branching based on value\"\n }\n} as const;\nexport const DelayNodeSubTypes: Record<string, NodeSubTypeInfo> = {\n \"delay\": {\n \"value\": \"delay\",\n \"label\": \"Delay\",\n \"icon\": \"Clock\",\n \"description\": \"Wait for a specified duration\"\n }\n} as const;\nexport const ParallelNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Empty placeholders for node types not yet defined in Go\nexport const DataNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const TimerNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const LoopNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\nexport const AccountingNodeSubTypes: Record<string, NodeSubTypeInfo> = {} as const;\n\n// Type aliases for backwards compatibility\nexport type TriggerNodeSubType = keyof typeof TriggerNodeSubTypes;\nexport type HumanActionNodeSubType = keyof typeof HumanActionNodeSubTypes;\nexport type AgentNodeSubType = keyof typeof AgentNodeSubTypes;\nexport type ActionNodeSubType = keyof typeof ActionNodeSubTypes;\nexport type LogicNodeSubType = keyof typeof LogicNodeSubTypes;\nexport type DelayNodeSubType = keyof typeof DelayNodeSubTypes;\nexport type DataNodeSubType = keyof typeof DataNodeSubTypes;\nexport type TimerNodeSubType = keyof typeof TimerNodeSubTypes;\nexport type LoopNodeSubType = keyof typeof LoopNodeSubTypes;\nexport type ParallelNodeSubType = keyof typeof ParallelNodeSubTypes;\nexport type AccountingNodeSubType = keyof typeof AccountingNodeSubTypes;\n\nexport type WorkflowNodeSubTypeTS =\n | TriggerNodeSubType\n | HumanActionNodeSubType\n | AgentNodeSubType\n | ActionNodeSubType\n | LogicNodeSubType\n | DelayNodeSubType\n | DataNodeSubType\n | TimerNodeSubType\n | LoopNodeSubType\n | ParallelNodeSubType\n | AccountingNodeSubType;\n\n// WorkflowNodeTypes constant for backwards compatibility\nexport const WorkflowNodeTypes = {\n trigger: { value: 'trigger', label: 'Trigger', category: 'Triggers' },\n humanAction: { value: 'humanAction', label: 'Human Action', category: 'User Interaction' },\n agent: { value: 'agent', label: 'Agent', category: 'Automation' },\n action: { value: 'action', label: 'Action', category: 'Automation' },\n logic: { value: 'logic', label: 'Logic', category: 'Flow Control' },\n data: { value: 'data', label: 'Data', category: 'Data Processing' },\n integration: { value: 'integration', label: 'Integration', category: 'Integration' },\n timer: { value: 'timer', label: 'Timer', category: 'Time & Scheduling' },\n loop: { value: 'loop', label: 'Loop', category: 'Flow Control' },\n parallel: { value: 'parallel', label: 'Parallel', category: 'Flow Control' },\n delay: { value: 'delay', label: 'Delay', category: 'Flow Control' },\n subflow: { value: 'subflow', label: 'Subflow', category: 'Flow Control' },\n custom: { value: 'custom', label: 'Custom', category: 'Custom' },\n documentExtraction: { value: 'documentExtraction', label: 'Document Extraction', category: 'Data Processing' },\n apiCall: { value: 'apiCall', label: 'API Call', category: 'Integration' },\n accounting: { value: 'accounting', label: 'Accounting', category: 'Accounting' },\n} as const;\n\nexport type WorkflowNodeTypeTS = keyof typeof WorkflowNodeTypes;\nexport type WorkflowNodeTypeOptionTS = typeof WorkflowNodeTypes[WorkflowNodeTypeTS];\n\nexport type NodeCategory =\n | \"Triggers\"\n | \"User Interaction\"\n | \"Automation\"\n | \"Integration\"\n | \"Flow Control\"\n | \"Data Processing\"\n | \"Time & Scheduling\"\n | \"Custom\"\n | \"Document Processing\"\n | \"API Integration\"\n | \"Accounting\";\n\n// Edge type definitions (generated from Go)\nexport const WorkflowEdgeTypes: Record<string, EdgeTypeDefinition> = {\n \"compensation\": {\n \"value\": \"compensation\",\n \"label\": \"Compensation\"\n },\n \"conditional\": {\n \"value\": \"conditional\",\n \"label\": \"Conditional\"\n },\n \"default\": {\n \"value\": \"default\",\n \"label\": \"Default\"\n },\n \"error\": {\n \"value\": \"error\",\n \"label\": \"Error\"\n },\n \"loopBack\": {\n \"value\": \"loopBack\",\n \"label\": \"Loop Back\"\n },\n \"merge\": {\n \"value\": \"merge\",\n \"label\": \"Merge\"\n },\n \"normal\": {\n \"value\": \"normal\",\n \"label\": \"Normal\"\n },\n \"parallel\": {\n \"value\": \"parallel\",\n \"label\": \"Parallel\"\n },\n \"timeout\": {\n \"value\": \"timeout\",\n \"label\": \"Timeout\"\n }\n} as const;\nexport type WorkflowEdgeTypeTS = keyof typeof WorkflowEdgeTypes;\nexport type WorkflowEdgeTypeOptionTS = typeof WorkflowEdgeTypes[WorkflowEdgeTypeTS];\n\n// Workflow type definitions (generated from Go)\nexport const WorkflowTypes: Record<string, WorkflowTypeDefinition> = {\n \"agent\": {\n \"value\": \"agent\",\n \"label\": \"Agent\"\n },\n \"chat\": {\n \"value\": \"chat\",\n \"label\": \"Chat\"\n },\n \"document\": {\n \"value\": \"document\",\n \"label\": \"Document\"\n },\n \"entity\": {\n \"value\": \"entity\",\n \"label\": \"Entity\"\n },\n \"productivity\": {\n \"value\": \"productivity\",\n \"label\": \"Productivity\"\n }\n} as const;\nexport type WorkflowTypeTS = keyof typeof WorkflowTypes;\nexport type WorkflowTypeOptionTS = typeof WorkflowTypes[WorkflowTypeTS];\n"]}
|