openryoko 2026.9.2 → 2026.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/package.json +1 -1
- package/dist/src/connectors/discord/engaged-threads.d.ts +24 -0
- package/dist/src/connectors/discord/engaged-threads.d.ts.map +1 -0
- package/dist/src/connectors/discord/engaged-threads.js +28 -0
- package/dist/src/connectors/discord/engaged-threads.js.map +1 -0
- package/dist/src/connectors/discord/index.d.ts +81 -1
- package/dist/src/connectors/discord/index.d.ts.map +1 -1
- package/dist/src/connectors/discord/index.js +326 -25
- package/dist/src/connectors/discord/index.js.map +1 -1
- package/dist/src/connectors/discord/remote.d.ts +5 -1
- package/dist/src/connectors/discord/remote.d.ts.map +1 -1
- package/dist/src/connectors/discord/remote.js +35 -0
- package/dist/src/connectors/discord/remote.js.map +1 -1
- package/dist/src/connectors/discord/respond-policy.d.ts +96 -0
- package/dist/src/connectors/discord/respond-policy.d.ts.map +1 -0
- package/dist/src/connectors/discord/respond-policy.js +85 -0
- package/dist/src/connectors/discord/respond-policy.js.map +1 -0
- package/dist/src/connectors/discord/threads.d.ts +20 -2
- package/dist/src/connectors/discord/threads.d.ts.map +1 -1
- package/dist/src/connectors/discord/threads.js +28 -1
- package/dist/src/connectors/discord/threads.js.map +1 -1
- package/dist/src/connectors/slack/agents-canvas.d.ts +1 -0
- package/dist/src/connectors/slack/agents-canvas.d.ts.map +1 -1
- package/dist/src/connectors/slack/agents-canvas.js +75 -22
- package/dist/src/connectors/slack/agents-canvas.js.map +1 -1
- package/dist/src/connectors/slack/format.d.ts +33 -0
- package/dist/src/connectors/slack/format.d.ts.map +1 -1
- package/dist/src/connectors/slack/format.js +40 -0
- package/dist/src/connectors/slack/format.js.map +1 -1
- package/dist/src/connectors/slack/index.d.ts.map +1 -1
- package/dist/src/connectors/slack/index.js +16 -7
- package/dist/src/connectors/slack/index.js.map +1 -1
- package/dist/src/gateway/server.d.ts.map +1 -1
- package/dist/src/gateway/server.js +1 -0
- package/dist/src/gateway/server.js.map +1 -1
- package/dist/src/sessions/callbacks.d.ts.map +1 -1
- package/dist/src/sessions/callbacks.js +39 -11
- package/dist/src/sessions/callbacks.js.map +1 -1
- package/dist/src/sessions/context.js +20 -4
- package/dist/src/sessions/context.js.map +1 -1
- package/dist/src/shared/types.d.ts +37 -0
- package/dist/src/shared/types.d.ts.map +1 -1
- package/dist/src/workflows/repository-mutex.d.ts +1 -1
- package/dist/web/404.html +1 -1
- package/dist/web/__next.__PAGE__.txt +1 -1
- package/dist/web/__next._full.txt +1 -1
- package/dist/web/__next._tree.txt +1 -1
- package/dist/web/_next/static/chunks/{0los6agi5yfk-.js → 1ydtstxdw369l.js} +1 -1
- package/dist/web/_not-found/__next._full.txt +1 -1
- package/dist/web/_not-found/__next._not-found.__PAGE__.txt +1 -1
- package/dist/web/_not-found/__next._tree.txt +1 -1
- package/dist/web/_not-found.html +1 -1
- package/dist/web/_not-found.txt +1 -1
- package/dist/web/chat/__next._full.txt +1 -1
- package/dist/web/chat/__next._tree.txt +1 -1
- package/dist/web/chat/__next.chat.__PAGE__.txt +1 -1
- package/dist/web/chat.html +1 -1
- package/dist/web/chat.txt +1 -1
- package/dist/web/cron/__next._full.txt +1 -1
- package/dist/web/cron/__next._tree.txt +1 -1
- package/dist/web/cron/__next.cron.__PAGE__.txt +1 -1
- package/dist/web/cron.html +1 -1
- package/dist/web/cron.txt +1 -1
- package/dist/web/index.html +1 -1
- package/dist/web/index.txt +1 -1
- package/dist/web/kanban/__next._full.txt +1 -1
- package/dist/web/kanban/__next._tree.txt +1 -1
- package/dist/web/kanban/__next.kanban.__PAGE__.txt +1 -1
- package/dist/web/kanban.html +1 -1
- package/dist/web/kanban.txt +1 -1
- package/dist/web/logs/__next._full.txt +1 -1
- package/dist/web/logs/__next._tree.txt +1 -1
- package/dist/web/logs/__next.logs.__PAGE__.txt +1 -1
- package/dist/web/logs.html +1 -1
- package/dist/web/logs.txt +1 -1
- package/dist/web/org/__next._full.txt +1 -1
- package/dist/web/org/__next._tree.txt +1 -1
- package/dist/web/org/__next.org.__PAGE__.txt +1 -1
- package/dist/web/org.html +1 -1
- package/dist/web/org.txt +1 -1
- package/dist/web/sessions/__next._full.txt +1 -1
- package/dist/web/sessions/__next._tree.txt +1 -1
- package/dist/web/sessions/__next.sessions.__PAGE__.txt +1 -1
- package/dist/web/sessions.html +1 -1
- package/dist/web/sessions.txt +1 -1
- package/dist/web/settings/__next._full.txt +2 -2
- package/dist/web/settings/__next._tree.txt +1 -1
- package/dist/web/settings/__next.settings.__PAGE__.txt +2 -2
- package/dist/web/settings.html +1 -1
- package/dist/web/settings.txt +2 -2
- package/dist/web/skills/__next._full.txt +1 -1
- package/dist/web/skills/__next._tree.txt +1 -1
- package/dist/web/skills/__next.skills.__PAGE__.txt +1 -1
- package/dist/web/skills.html +1 -1
- package/dist/web/skills.txt +1 -1
- package/package.json +1 -1
- package/template/docs/connectors.md +88 -1
- /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_buildManifest.js +0 -0
- /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_clientMiddlewareManifest.js +0 -0
- /package/dist/web/_next/static/{Kudq_QcLnSoz7UYDmluYu → vW8A0EhHuyi1vRgv7Qkyg}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connectors/discord/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/connectors/discord/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,mBAAmB,GAKpB,MAAM,YAAY,CAAC;AAUpB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,GAEpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAuB5D,MAAM,OAAO,gBAAgB;IAC3B,IAAI,CAAS;IACb,UAAU,CAAS;IACX,MAAM,CAAS;IACf,MAAM,CAAyB;IAC/B,OAAO,GAA4C,IAAI,CAAC;IACxD,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACxB,cAAc,CAAc;IAC5B,MAAM,GAAiD,UAAU,CAAC;IAClE,SAAS,GAAkB,IAAI,CAAC;IAChC,eAAe,GAAG,IAAI,GAAG,EAA0C,CAAC;IACpE,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACnC,UAAU,CAAoB;IAC/C;;;;;;OAMG;IACc,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAEvD,YAAY,MAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,IAAI,SAAS,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,sEAAsE;QACtE,IAAI,CAAC,UAAU;YACb,MAAM,CAAC,UAAU,KAAK,OAAO,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ;gBAC7D,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAC,SAAS,CAAC;QAChB,mFAAmF;QACnF,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3E,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjF,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,WAAW,CAC7C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC3E,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,SAAS;YAClB,CAAC,CAAC,MAAM,CAAC,SAAS;gBAClB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;gBACpB,CAAC,CAAC,EAAE,CACP,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;YACvB,OAAO,EAAE;gBACP,iBAAiB,CAAC,MAAM;gBACxB,iBAAiB,CAAC,aAAa;gBAC/B,iBAAiB,CAAC,cAAc;gBAChC,iBAAiB,CAAC,cAAc;gBAChC,iBAAiB,CAAC,qBAAqB;aACxC;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,SAAS,CAAC,OAAuC;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,8BAA8B,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YACxB,qEAAqE;YACrE,0CAA0C;YAC1C,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAChD,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC9B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC;YAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,yBAAyB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe;QACb,OAAO;YACL,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YAC7F,MAAM,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;YACnC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;SACrC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,YAAwD;QACxE,MAAM,GAAG,GAAG,CAAC,YAAY,IAAI,EAAE,CAAkC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE;YAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,SAAS;YAC/B,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS;SACtC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY;QAC5C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO;YAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAClC,EAAE,OAAO,EAAE,OAAkD,EAAE,EAC/D,IAAI,CACL,CAAC;YACF,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC;YACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,IAAY;QAC7C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO;YAC/C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,uBAAuB,CACpD,OAAkD,EAClD,MAAM,CACP,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACxD,yDAAyD;YACzD,oEAAoE;YACpE,qEAAqE;YACrE,mEAAmE;YACnE,qEAAqE;YACrE,yDAAyD;YACzD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAC3F,mEAAmE;gBACnE,+DAA+D;gBAC/D,gCAAgC;gBAChC,MAAM,MAAM,GAAG,WAAW,CAAC,cAAc;oBACvC,CAAC,CAAE,OAAuB;oBAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ;yBACvB,KAAK,CAAE,WAAW,CAAC,OAAyB,CAAC,QAAQ,IAAI,EAAE,CAAC;yBAC5D,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACzB,iEAAiE;gBACjE,6DAA6D;gBAC7D,iEAAiE;gBACjE,uCAAuC;gBACvC,MAAM,IAAI,GAAI,MAAM,CAAC,KAA2B,CAAC,IAAI,CAAC;gBACtD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;oBACrC,MAAM,QAAQ,GAAG,WAAW,CAAC,cAAc;wBACzC,CAAC,CAAC,OAAO,CAAC,EAAE;wBACZ,CAAC,CAAE,WAAW,CAAC,OAAyB,CAAC,QAAQ,CAAC;oBACpD,IAAI,QAAQ;wBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM,CAAC,IAAI,CACT,iCAAiC,WAAW,CAAC,OAAO,CAAC,EAAE,YAAY,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,mDAAmD,CAC1L,CAAC;gBACF,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;oBACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU;oBACjC,gEAAgE;oBAChE,2DAA2D;oBAC3D,gEAAgE;oBAChE,+DAA+D;oBAC/D,8DAA8D;oBAC9D,8BAA8B;oBAC9B,EAAE,OAAO,EAAE,MAAiC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,EAC/E,IAAI,CACL,CAAC;oBACF,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;wBAAE,MAAM,KAAK,CAAC,KAAK,CAAC;oBACjD,OAAO,KAAK,CAAC,MAAM,CAAC;gBACtB,CAAC;gBACD,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC;gBAAE,MAAM,MAAM,CAAC,KAAK,CAAC;YAC7E,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,KAAK,CACV,sCAAsC,MAAM,CAAC,SAAS,yBAAyB,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CACrJ,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,+BAA+B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,UAAU,CACtB,WAAmF,EACnF,IAAY;QAEZ,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,IAAI,GACR,WAAW,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,KAAK,CAAC;oBAC9C,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;wBAC7B,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,EAAE,gBAAgB,EAAE,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE;qBACzE,CAAC;oBACJ,CAAC,CAAC,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;gBACjB,SAAS,IAAI,CAAC,CAAC;gBACf,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,uBAAuB,CACnC,OAAgD,EAChD,MAAc;QAMd,IAAI,OAAO,CAAC,QAAQ,EAAE,IAAI,OAAO,CAAC,SAAS,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAClE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3E,IACE,IAAI,CAAC,UAAU,KAAK,OAAO;YAC3B,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAChC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAC7B,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAChD,CAAC;QACD,IAAI,CAAC;YACH,kEAAkE;YAClE,iEAAiE;YACjE,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;YACtF,IAAI,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,QAAyB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;YACtE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,MAAuB,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,GAAI,GAAyB,CAAC,IAAI,CAAC;YAC7C,oEAAoE;YACpE,mEAAmE;YACnE,mDAAmD;YACnD,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK;gBAAE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC7E,MAAM,CAAC,IAAI,CACT,gDAAgD,MAAM,CAAC,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,6BAA6B,CAC3I,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,IAAY;QAC5C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO;YAC/C,MAAM,GAAG,GAAG,MAAO,OAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,KAAa;QAC7C,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO;YAC/C,MAAM,GAAG,GAAG,MAAO,OAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,KAAa;QAChD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS;gBAAE,OAAO;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;YAClF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;gBAAE,OAAO;YAC/C,MAAM,GAAG,GAAG,MAAO,OAAuB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5E,MAAM,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAAiB,EAAE,SAA6B,EAAE,MAAc;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,aAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,MAAO,OAAuB,CAAC,UAAU,EAAE,CAAC;gBAC5C,sDAAsD;gBACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;oBACtC,IAAI,CAAC;wBACH,MAAO,OAAuB,CAAC,UAAU,EAAE,CAAC;oBAC9C,CAAC;oBAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;gBAC7B,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAgB;QAC1C,uEAAuE;QACvE,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS;YAAE,OAAO;QACtE,MAAM,CAAC,KAAK,CAAC,wBAAwB,OAAO,CAAC,MAAM,CAAC,QAAQ,eAAe,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjG,8BAA8B;QAC9B,IACE,IAAI,CAAC,MAAM,CAAC,uBAAuB,KAAK,KAAK;YAC7C,YAAY,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,UAAU,CAAC;YACvD,OAAO;QAET,oBAAoB;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAE7E,uEAAuE;QACvE,wEAAwE;QACxE,+DAA+D;QAC/D,mEAAmE;QACnE,uEAAuE;QACvE,uEAAuE;QACvE,uEAAuE;QACvE,kEAAkE;QAClE,YAAY;QACZ,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,IAAI,SAAS;YACvC,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GACf,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9F,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,wCAAwC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,WAAW,EAAE,CAAC,CAAC;YAC7F,sEAAsE;YACtE,qEAAqE;YACrE,2DAA2D;YAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;gBACvD,UAAU,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;aACzC,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,qDAAqD;QACrD,IACE,IAAI,CAAC,MAAM,CAAC,SAAS;YACrB,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS;YAC5C,eAAe,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS;YACzC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;YAC5B,OAAO;QAET,iBAAiB;QACjB,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAAE,OAAO;QAExF,qEAAqE;QACrE,iEAAiE;QACjE,uEAAuE;QACvE,kEAAkE;QAClE,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE;YACvD,UAAU,EAAE,CAAC,IAAI,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,SAAS;SACnF,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,qBAAqB,CAAC;YAC5C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC7B,IAAI;YACJ,YAAY,EAAE,eAAe,CAAC,UAAU,CAAC;YACzC,eAAe,EACb,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;SAC5E,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,CACT,sCAAsC,eAAe,CAAC,MAAM,iBAAiB,OAAO,CAAC,EAAE,EAAE,CAC1F,CAAC;YACF,OAAO;QACT,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,wDAAwD;QACxD,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CACT,0EAA0E,OAAO,CAAC,EAAE,EAAE,CACvF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC5D,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;SACtD,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAEhD,uBAAuB;QACvB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACzD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,0BAA0B,EAAE,CAAC;YAChG,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAiE,CAAC,CAAC;QAE7G,MAAM,eAAe,GAAoB;YACvC,SAAS,EAAE,IAAI,CAAC,UAAU;YAC1B,MAAM,EAAE,SAAS;YACjB,UAAU;YACV,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;YACnE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;YAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,EAAE,OAAO,CAAC,OAAO;YACrB,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,GAAG,EAAE,EAAE;gBACP,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,SAAS,EAAE,CAAC,CAAC,SAAS;aACvB,CAAC,CAAC;YACH,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,GAAG,EAAE,OAAO;YACZ,aAAa,EAAE;gBACb,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO;oBACrE,CAAC,CAAE,OAAO,CAAC,OAAuB,CAAC,IAAI;oBACvC,CAAC,CAAC,IAAI;gBACR,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;gBAClC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;aAClC;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IAChC,CAAC;IAED;;;;;;;;;OASG;IACK,qBAAqB,CAAC,OAAgB;QAC5C,OAAO,CACL,IAAI,CAAC,UAAU,KAAK,QAAQ;YAC5B,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;YAC5B,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3B,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC;YACvC,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CACrC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,OAEtB;QACC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QACrE,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,CACL,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,mBAAmB,CAAC;YAClD,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CACrD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACK,gBAAgB,CACtB,OAA4F,EAC5F,eAAwB;QAExB,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;YACvB,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,IAAI,SAAS,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,OAAO;QACT,CAAC;QACD,IACE,eAAe;YACf,CAAC,OAAO,CAAC,SAAS,EAAE;YACpB,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,EACpD,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,kBAAkB,CAAC,EAAU,EAAE,eAAwB;QAC7D,IACE,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,SAAS;YAClE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,KAAK,KAAK,EAC/C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAChE,OAAO,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC;IACtG,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,iBAAiB,CAC7B,OAAgB,EAChB,IAA6B;QAM7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC;QACnD,IAAI,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,IAAI,OAAO,IAAI,eAAe,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC;YAChG,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;gBAClD,eAAe,GAAG,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,8CAA8C;YAChD,CAAC;QACH,CAAC;QACD,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAC/B,gBAAgB,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACxD,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,2DAA2D;IACnD,KAAK,CAAC,aAAa,CACzB,SAAiB,EACjB,OAAgB,EAChB,UAAiD;QAEjD,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBACzE,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,QAAQ,EAAE,GAAG,CAAC,WAAW,IAAI,0BAA0B;aACxD,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG;gBACd,8DAA8D;gBAC9D,qEAAqE;gBACrE,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE;oBAC/C,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;iBACtD,CAAC;gBACF,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;gBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;gBACzB,IAAI,EAAE,OAAO,CAAC,OAAO;gBACrB,SAAS,EAAE,OAAO,CAAC,EAAE;gBACrB,WAAW;gBACX,YAAY,EAAE,iBAAiB,CAAC,OAAO,CAAC;gBACxC,aAAa,EAAE;oBACb,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,MAAM,IAAI,OAAO,CAAC,OAAO;wBACrE,CAAC,CAAE,OAAO,CAAC,OAAuB,CAAC,IAAI;wBACvC,CAAC,CAAC,IAAI;oBACR,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;oBAClC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE;oBACjC,2DAA2D;oBAC3D,+DAA+D;oBAC/D,4DAA4D;oBAC5D,sBAAsB;oBACtB,GAAI;wBACF,eAAe,EAAE,eAAe,CAAC,UAAU,CAAC;wBAC5C,mBAAmB,EAAE,mBAAmB,CAAC,UAAU,CAAC;wBACpD,eAAe,EACb,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;qBAC7C;iBACjC;aACF,CAAC;YAEF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,kCAAkC,EAAE;gBAC1F,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,sCAAsC,SAAS,KAAK,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,0BAA0B,SAAS,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import type { Connector, ConnectorCapabilities, ConnectorHealth, IncomingMessage, Target } from "../../shared/types.js";
|
|
1
|
+
import type { Connector, ConnectorCapabilities, ConnectorHealth, DiscordRespondToConfig, IncomingMessage, Target } from "../../shared/types.js";
|
|
2
2
|
export interface RemoteDiscordConfig {
|
|
3
3
|
/** URL of the primary Jinn instance that holds the Discord WebSocket connection */
|
|
4
4
|
proxyVia: string;
|
|
5
5
|
channelId?: string;
|
|
6
|
+
/** Deterministic per-scope response gate, applied to proxied messages. */
|
|
7
|
+
respondTo?: DiscordRespondToConfig;
|
|
6
8
|
}
|
|
7
9
|
/**
|
|
8
10
|
* A Discord connector that doesn't hold its own WebSocket connection.
|
|
@@ -13,6 +15,8 @@ export declare class RemoteDiscordConnector implements Connector {
|
|
|
13
15
|
name: string;
|
|
14
16
|
private handler;
|
|
15
17
|
private baseUrl;
|
|
18
|
+
private readonly respondTo;
|
|
19
|
+
private warnedMissingAddressing;
|
|
16
20
|
constructor(config: RemoteDiscordConfig);
|
|
17
21
|
onMessage(handler: (msg: IncomingMessage) => void): void;
|
|
18
22
|
/** Called by the /api/connectors/discord/incoming endpoint to deliver proxied messages */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,MAAM,EACP,MAAM,uBAAuB,CAAC;AAS/B,MAAM,WAAW,mBAAmB;IAClC,mFAAmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,sBAAsB,CAAC;CACpC;AAED;;;;GAIG;AACH,qBAAa,sBAAuB,YAAW,SAAS;IACtD,IAAI,SAAa;IACjB,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqC;IAC/D,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,MAAM,EAAE,mBAAmB;IAKvC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAIxD,0FAA0F;IAC1F,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI;IA6CpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,eAAe,IAAI,qBAAqB;IASxC,SAAS,IAAI,eAAe;IAO5B,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAS7E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAItE,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAIvE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAIvF,WAAW;CAkB1B"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logger } from "../../shared/logger.js";
|
|
2
|
+
import { evaluateRespondPolicy, parseForwardedAddressing, resolveRespondMode, scopeForChannel, } from "./respond-policy.js";
|
|
2
3
|
/**
|
|
3
4
|
* A Discord connector that doesn't hold its own WebSocket connection.
|
|
4
5
|
* Instead, it receives messages from the primary Jinn instance via HTTP
|
|
@@ -8,14 +9,48 @@ export class RemoteDiscordConnector {
|
|
|
8
9
|
name = "discord";
|
|
9
10
|
handler = null;
|
|
10
11
|
baseUrl;
|
|
12
|
+
respondTo;
|
|
13
|
+
warnedMissingAddressing = false;
|
|
11
14
|
constructor(config) {
|
|
12
15
|
this.baseUrl = config.proxyVia.replace(/\/+$/, "");
|
|
16
|
+
this.respondTo = config.respondTo;
|
|
13
17
|
}
|
|
14
18
|
onMessage(handler) {
|
|
15
19
|
this.handler = handler;
|
|
16
20
|
}
|
|
17
21
|
/** Called by the /api/connectors/discord/incoming endpoint to deliver proxied messages */
|
|
18
22
|
deliverMessage(msg) {
|
|
23
|
+
const meta = (msg.transportMeta ?? {});
|
|
24
|
+
const isDM = meta.isDM === true;
|
|
25
|
+
// Addressing (ForwardedAddressing) is resolved by the primary instance:
|
|
26
|
+
// only it sees the Discord gateway, and it also tracks thread engagement
|
|
27
|
+
// — proxied sends run through its connector. When the flags are absent —
|
|
28
|
+
// a primary too old to send them — mention scopes fail closed (Slack
|
|
29
|
+
// precedent for unresolvable identity) and the sibling rule stays off
|
|
30
|
+
// (never drop an "always" message on missing metadata). Warn once, and
|
|
31
|
+
// only when a message actually lands in a mention-gated scope, so the
|
|
32
|
+
// required upgrade order is visible instead of a silent blackhole.
|
|
33
|
+
const { present, flags } = parseForwardedAddressing(meta);
|
|
34
|
+
if (!present &&
|
|
35
|
+
resolveRespondMode(this.respondTo, scopeForChannel(isDM)) === "mention" &&
|
|
36
|
+
!this.warnedMissingAddressing) {
|
|
37
|
+
this.warnedMissingAddressing = true;
|
|
38
|
+
logger.warn("[discord-remote] primary instance does not forward addressing metadata (its version predates respondTo) — routed messages in mention scopes are dropped until the primary is upgraded");
|
|
39
|
+
}
|
|
40
|
+
const respondDecision = evaluateRespondPolicy({
|
|
41
|
+
config: this.respondTo,
|
|
42
|
+
isDM,
|
|
43
|
+
wasMentioned: flags.wasBotAddressed,
|
|
44
|
+
isEngagedThread: flags.isEngagedThread,
|
|
45
|
+
});
|
|
46
|
+
if (!respondDecision.allow) {
|
|
47
|
+
logger.info(`[discord-remote] respondTo gate → silent (${respondDecision.reason}) for message ${msg.messageId}`);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!isDM && flags.addressesOnlyOthers) {
|
|
51
|
+
logger.info(`[discord-remote] message addresses other user(s) — staying silent for message ${msg.messageId}`);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
19
54
|
if (this.handler) {
|
|
20
55
|
this.handler(msg);
|
|
21
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"remote.js","sourceRoot":"","sources":["../../../../src/connectors/discord/remote.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic response gate for the Discord connector.
|
|
3
|
+
*
|
|
4
|
+
* Port of the Slack `respondTo` gate (see ../slack/respond-policy.ts).
|
|
5
|
+
* Evaluated before the message reaches the session engine, so "mention"-gated
|
|
6
|
+
* scopes cost zero tokens and zero latency for dropped messages.
|
|
7
|
+
*
|
|
8
|
+
* Scope mapping (discord.js channel):
|
|
9
|
+
* - `isDMBased()` (1:1 DMs and group DMs) → dm
|
|
10
|
+
* - guild text channels and threads → channel
|
|
11
|
+
*
|
|
12
|
+
* Unlike Slack there is no LLM triage layer on this connector, so the gate is
|
|
13
|
+
* the only thing between an incoming channel message and a full engine reply.
|
|
14
|
+
*/
|
|
15
|
+
import type { DiscordRespondMode, DiscordRespondToConfig } from "../../shared/types.js";
|
|
16
|
+
export type DiscordRespondScope = "dm" | "channel";
|
|
17
|
+
export declare function scopeForChannel(isDM: boolean): DiscordRespondScope;
|
|
18
|
+
/**
|
|
19
|
+
* Resolve the effective mode for a scope. Unset or unrecognized values fall
|
|
20
|
+
* back to "always" — config files are hand-edited YAML, so an invalid value
|
|
21
|
+
* must degrade to the legacy behavior rather than silence the bot.
|
|
22
|
+
*/
|
|
23
|
+
export declare function resolveRespondMode(config: DiscordRespondToConfig | undefined, scope: DiscordRespondScope): DiscordRespondMode;
|
|
24
|
+
/** True when any scope requires an @-mention. */
|
|
25
|
+
export declare function hasMentionScope(config: DiscordRespondToConfig | undefined): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* True when the policy needs engaged-thread tracking: some scope is
|
|
28
|
+
* mention-gated and engaged-thread continuation (the default) is on.
|
|
29
|
+
*/
|
|
30
|
+
export declare function respondPolicyNeedsTracking(config: DiscordRespondToConfig | undefined): boolean;
|
|
31
|
+
export interface RespondPolicyInput {
|
|
32
|
+
config: DiscordRespondToConfig | undefined;
|
|
33
|
+
isDM: boolean;
|
|
34
|
+
wasMentioned: boolean;
|
|
35
|
+
/** Whether the message sits in a thread the bot has already engaged. */
|
|
36
|
+
isEngagedThread: boolean;
|
|
37
|
+
}
|
|
38
|
+
export type RespondDecision = {
|
|
39
|
+
allow: true;
|
|
40
|
+
} | {
|
|
41
|
+
allow: false;
|
|
42
|
+
reason: string;
|
|
43
|
+
};
|
|
44
|
+
export declare function evaluateRespondPolicy(input: RespondPolicyInput): RespondDecision;
|
|
45
|
+
/**
|
|
46
|
+
* True when the message addresses the bot: a direct @-mention, or a Discord
|
|
47
|
+
* reply to one of the bot's messages. Reply detection uses the replied-to
|
|
48
|
+
* author from the resolved reference, so it works whether or not the reply
|
|
49
|
+
* pinged ("@ ON"/"@ OFF") — replying to the bot is addressing the bot either
|
|
50
|
+
* way. Role mentions and @everyone/@here deliberately do NOT count, matching
|
|
51
|
+
* the Slack gate where @channel/@here never satisfy "mention".
|
|
52
|
+
*/
|
|
53
|
+
export declare function wasBotAddressed(input: {
|
|
54
|
+
botUserId: string | undefined;
|
|
55
|
+
mentionedUserIds: ReadonlySet<string>;
|
|
56
|
+
repliedToUserId: string | undefined;
|
|
57
|
+
}): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Addressing the primary Discord instance forwards with a routed message
|
|
60
|
+
* (inside `transportMeta`), so the receiving instance can gate without its
|
|
61
|
+
* own Discord connection. transportMeta is untyped JSON on the wire, so the
|
|
62
|
+
* receiving side re-validates each flag with `=== true`. An older primary
|
|
63
|
+
* sends none of these; mention scopes then fail closed on the receiver —
|
|
64
|
+
* upgrade the primary before enabling a mention scope on a routed instance.
|
|
65
|
+
*/
|
|
66
|
+
export interface ForwardedAddressing {
|
|
67
|
+
/** The message @-mentions the bot or replies to one of its messages. */
|
|
68
|
+
wasBotAddressed: boolean;
|
|
69
|
+
/** The message @-mentions or replies to somebody else, and not the bot. */
|
|
70
|
+
addressesOnlyOthers: boolean;
|
|
71
|
+
/** The message sits in a thread the bot has engaged (primary's tracker). */
|
|
72
|
+
isEngagedThread: boolean;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Parse ForwardedAddressing back out of a routed message's transportMeta.
|
|
76
|
+
* `present` is false when the primary predates the contract (flags missing
|
|
77
|
+
* from the wire) — the caller decides how loudly to surface that. Flags are
|
|
78
|
+
* re-validated with `=== true`: the wire is untyped JSON.
|
|
79
|
+
*/
|
|
80
|
+
export declare function parseForwardedAddressing(meta: Record<string, unknown>): {
|
|
81
|
+
present: boolean;
|
|
82
|
+
flags: ForwardedAddressing;
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* True when the message explicitly addresses somebody else and not the bot:
|
|
86
|
+
* it @-mentions specific user(s), or replies to another user's message, and
|
|
87
|
+
* none of those users is the bot. Such messages stay silent even in "always"
|
|
88
|
+
* scopes — same sibling-mention rule as the Slack connector. Never applies to
|
|
89
|
+
* DMs, and @everyone/@here alone never triggers it (no specific addressee).
|
|
90
|
+
*/
|
|
91
|
+
export declare function addressesOnlyOthers(input: {
|
|
92
|
+
botUserId: string | undefined;
|
|
93
|
+
mentionedUserIds: ReadonlySet<string>;
|
|
94
|
+
repliedToUserId: string | undefined;
|
|
95
|
+
}): boolean;
|
|
96
|
+
//# sourceMappingURL=respond-policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond-policy.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/respond-policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAExF,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;AAEnD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,mBAAmB,CAElE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,sBAAsB,GAAG,SAAS,EAC1C,KAAK,EAAE,mBAAmB,GACzB,kBAAkB,CAGpB;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAGnF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,OAAO,CAE9F;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC3C,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,eAAe,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,GAAG,eAAe,CAahF;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,OAAO,CAIV;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,eAAe,EAAE,OAAO,CAAC;IACzB,2EAA2E;IAC3E,mBAAmB,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,mBAAmB,CAAC;CAC5B,CASA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GAAG,OAAO,CAIV"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function scopeForChannel(isDM) {
|
|
2
|
+
return isDM ? "dm" : "channel";
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Resolve the effective mode for a scope. Unset or unrecognized values fall
|
|
6
|
+
* back to "always" — config files are hand-edited YAML, so an invalid value
|
|
7
|
+
* must degrade to the legacy behavior rather than silence the bot.
|
|
8
|
+
*/
|
|
9
|
+
export function resolveRespondMode(config, scope) {
|
|
10
|
+
const raw = config?.[scope];
|
|
11
|
+
return raw === "mention" || raw === "never" ? raw : "always";
|
|
12
|
+
}
|
|
13
|
+
/** True when any scope requires an @-mention. */
|
|
14
|
+
export function hasMentionScope(config) {
|
|
15
|
+
if (!config)
|
|
16
|
+
return false;
|
|
17
|
+
return [config.dm, config.channel].includes("mention");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* True when the policy needs engaged-thread tracking: some scope is
|
|
21
|
+
* mention-gated and engaged-thread continuation (the default) is on.
|
|
22
|
+
*/
|
|
23
|
+
export function respondPolicyNeedsTracking(config) {
|
|
24
|
+
return hasMentionScope(config) && config?.engagedThreads !== false;
|
|
25
|
+
}
|
|
26
|
+
export function evaluateRespondPolicy(input) {
|
|
27
|
+
const scope = scopeForChannel(input.isDM);
|
|
28
|
+
const mode = resolveRespondMode(input.config, scope);
|
|
29
|
+
if (mode === "never") {
|
|
30
|
+
return { allow: false, reason: `respondTo.${scope}=never` };
|
|
31
|
+
}
|
|
32
|
+
if (mode === "mention" && !input.wasMentioned) {
|
|
33
|
+
if (input.config?.engagedThreads !== false && input.isEngagedThread) {
|
|
34
|
+
return { allow: true };
|
|
35
|
+
}
|
|
36
|
+
return { allow: false, reason: `respondTo.${scope}=mention and message has no @-mention` };
|
|
37
|
+
}
|
|
38
|
+
return { allow: true };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* True when the message addresses the bot: a direct @-mention, or a Discord
|
|
42
|
+
* reply to one of the bot's messages. Reply detection uses the replied-to
|
|
43
|
+
* author from the resolved reference, so it works whether or not the reply
|
|
44
|
+
* pinged ("@ ON"/"@ OFF") — replying to the bot is addressing the bot either
|
|
45
|
+
* way. Role mentions and @everyone/@here deliberately do NOT count, matching
|
|
46
|
+
* the Slack gate where @channel/@here never satisfy "mention".
|
|
47
|
+
*/
|
|
48
|
+
export function wasBotAddressed(input) {
|
|
49
|
+
if (!input.botUserId)
|
|
50
|
+
return false;
|
|
51
|
+
if (input.mentionedUserIds.has(input.botUserId))
|
|
52
|
+
return true;
|
|
53
|
+
return input.repliedToUserId === input.botUserId;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse ForwardedAddressing back out of a routed message's transportMeta.
|
|
57
|
+
* `present` is false when the primary predates the contract (flags missing
|
|
58
|
+
* from the wire) — the caller decides how loudly to surface that. Flags are
|
|
59
|
+
* re-validated with `=== true`: the wire is untyped JSON.
|
|
60
|
+
*/
|
|
61
|
+
export function parseForwardedAddressing(meta) {
|
|
62
|
+
return {
|
|
63
|
+
present: "wasBotAddressed" in meta && "isEngagedThread" in meta,
|
|
64
|
+
flags: {
|
|
65
|
+
wasBotAddressed: meta.wasBotAddressed === true,
|
|
66
|
+
addressesOnlyOthers: meta.addressesOnlyOthers === true,
|
|
67
|
+
isEngagedThread: meta.isEngagedThread === true,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* True when the message explicitly addresses somebody else and not the bot:
|
|
73
|
+
* it @-mentions specific user(s), or replies to another user's message, and
|
|
74
|
+
* none of those users is the bot. Such messages stay silent even in "always"
|
|
75
|
+
* scopes — same sibling-mention rule as the Slack connector. Never applies to
|
|
76
|
+
* DMs, and @everyone/@here alone never triggers it (no specific addressee).
|
|
77
|
+
*/
|
|
78
|
+
export function addressesOnlyOthers(input) {
|
|
79
|
+
if (!input.botUserId)
|
|
80
|
+
return false;
|
|
81
|
+
if (wasBotAddressed(input))
|
|
82
|
+
return false;
|
|
83
|
+
return input.mentionedUserIds.size > 0 || input.repliedToUserId !== undefined;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=respond-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond-policy.js","sourceRoot":"","sources":["../../../../src/connectors/discord/respond-policy.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,eAAe,CAAC,IAAa;IAC3C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA0C,EAC1C,KAA0B;IAE1B,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;IAC5B,OAAO,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC/D,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAAC,MAA0C;IACxE,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA0C;IACnF,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,cAAc,KAAK,KAAK,CAAC;AACrE,CAAC;AAYD,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,KAAK,QAAQ,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,MAAM,EAAE,cAAc,KAAK,KAAK,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YACpE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,KAAK,uCAAuC,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAI/B;IACC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,OAAO,KAAK,CAAC,eAAe,KAAK,KAAK,CAAC,SAAS,CAAC;AACnD,CAAC;AAmBD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAA6B;IAIpE,OAAO;QACL,OAAO,EAAE,iBAAiB,IAAI,IAAI,IAAI,iBAAiB,IAAI,IAAI;QAC/D,KAAK,EAAE;YACL,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;YAC9C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,KAAK,IAAI;YACtD,eAAe,EAAE,IAAI,CAAC,eAAe,KAAK,IAAI;SAC/C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAInC;IACC,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,CAAC;AAChF,CAAC"}
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import type
|
|
2
|
-
export declare function deriveSessionKey(message: Message, prefix?: string
|
|
1
|
+
import { ChannelType, type Message } from "discord.js";
|
|
2
|
+
export declare function deriveSessionKey(message: Message, prefix?: string, opts?: {
|
|
3
|
+
threadPerMessage?: boolean;
|
|
4
|
+
}): string;
|
|
5
|
+
/**
|
|
6
|
+
* Thread title for replyStyle=thread: the starter message's first line,
|
|
7
|
+
* trimmed to Discord's 100-character thread-name limit. Trimming is by code
|
|
8
|
+
* point, so a boundary emoji is dropped whole rather than split into a
|
|
9
|
+
* broken surrogate half.
|
|
10
|
+
*/
|
|
11
|
+
export declare function threadNameFor(content: string | undefined | null): string;
|
|
12
|
+
/**
|
|
13
|
+
* True when Discord allows creating a thread from a message in this channel
|
|
14
|
+
* — only guild text and announcement channels do. Voice/stage text chat and
|
|
15
|
+
* forum posts don't, so replyStyle=thread must not key sessions to a thread
|
|
16
|
+
* that can never exist there.
|
|
17
|
+
*/
|
|
18
|
+
export declare function supportsMessageThreads(channel: {
|
|
19
|
+
type: ChannelType;
|
|
20
|
+
}): boolean;
|
|
3
21
|
export declare function buildReplyContext(message: Message): Record<string, string | null>;
|
|
4
22
|
export declare function isOldMessage(createdTimestamp: number, bootTimeMs: number): boolean;
|
|
5
23
|
//# sourceMappingURL=threads.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"threads.d.ts","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,OAAO,EAChB,MAAM,SAAY,EAClB,IAAI,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,MAAM,CAeR;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAGxE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAE9E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAQjF;AAED,wBAAgB,YAAY,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAElF"}
|
|
@@ -1,12 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
import { ChannelType } from "discord.js";
|
|
2
|
+
export function deriveSessionKey(message, prefix = "discord", opts = {}) {
|
|
2
3
|
if (message.channel.isDMBased()) {
|
|
3
4
|
return `${prefix}:dm:${message.author.id}`;
|
|
4
5
|
}
|
|
5
6
|
if (message.channel.isThread()) {
|
|
6
7
|
return `${prefix}:thread:${message.channel.id}`;
|
|
7
8
|
}
|
|
9
|
+
if (opts.threadPerMessage) {
|
|
10
|
+
// replyStyle=thread: the response will land in a thread rooted on this
|
|
11
|
+
// message, and a public thread reuses its root message's ID — key the
|
|
12
|
+
// session to it now so follow-ups inside the thread continue the same
|
|
13
|
+
// conversation.
|
|
14
|
+
return `${prefix}:thread:${message.id}`;
|
|
15
|
+
}
|
|
8
16
|
return `${prefix}:${message.channel.id}`;
|
|
9
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Thread title for replyStyle=thread: the starter message's first line,
|
|
20
|
+
* trimmed to Discord's 100-character thread-name limit. Trimming is by code
|
|
21
|
+
* point, so a boundary emoji is dropped whole rather than split into a
|
|
22
|
+
* broken surrogate half.
|
|
23
|
+
*/
|
|
24
|
+
export function threadNameFor(content) {
|
|
25
|
+
const firstLine = (content ?? "").split("\n")[0].trim();
|
|
26
|
+
return Array.from(firstLine || "conversation").slice(0, 100).join("");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* True when Discord allows creating a thread from a message in this channel
|
|
30
|
+
* — only guild text and announcement channels do. Voice/stage text chat and
|
|
31
|
+
* forum posts don't, so replyStyle=thread must not key sessions to a thread
|
|
32
|
+
* that can never exist there.
|
|
33
|
+
*/
|
|
34
|
+
export function supportsMessageThreads(channel) {
|
|
35
|
+
return channel.type === ChannelType.GuildText || channel.type === ChannelType.GuildAnnouncement;
|
|
36
|
+
}
|
|
10
37
|
export function buildReplyContext(message) {
|
|
11
38
|
const threadId = message.channel.isThread() ? message.channel.id : null;
|
|
12
39
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"threads.js","sourceRoot":"","sources":["../../../../src/connectors/discord/threads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAEvD,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,MAAM,GAAG,SAAS,EAClB,OAAuC,EAAE;IAEzC,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QAChC,OAAO,GAAG,MAAM,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC/B,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,gBAAgB;QAChB,OAAO,GAAG,MAAM,WAAW,OAAO,CAAC,EAAE,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAkC;IAC9D,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA8B;IACnE,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,iBAAiB,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxE,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,OAAO,CAAC,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,gBAAwB,EAAE,UAAkB;IACvE,OAAO,gBAAgB,GAAG,UAAU,CAAC;AACvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-canvas.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/agents-canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8ID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,MAAM,CAoCR;AAwBD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,wEAAwE;IACxE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;gBAEU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;IAgBhD,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;YAQE,IAAI;YAsCJ,OAAO;YAsBP,YAAY;
|
|
1
|
+
{"version":3,"file":"agents-canvas.d.ts","sourceRoot":"","sources":["../../../../src/connectors/slack/agents-canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAKrD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8ID;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,MAAM,CAoCR;AAwBD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,wEAAwE;IACxE,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGrB;gBAEU,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,kBAAkB;IAgBhD,KAAK,IAAI,IAAI;IAkBb,IAAI,IAAI,IAAI;YAQE,IAAI;YAsCJ,OAAO;YAsBP,YAAY;YA4EZ,8BAA8B;YAkB9B,4BAA4B;YAc5B,UAAU;CAWzB"}
|
|
@@ -322,38 +322,82 @@ export class AgentsCanvasUpdater {
|
|
|
322
322
|
this.canvasId = canvasId;
|
|
323
323
|
}
|
|
324
324
|
catch (err) {
|
|
325
|
-
//
|
|
326
|
-
//
|
|
327
|
-
//
|
|
328
|
-
//
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
325
|
+
// Recover from two Slack failure modes:
|
|
326
|
+
// - `channel_canvas_already_exists`: this channel already has a canvas.
|
|
327
|
+
// - `free_team_canvas_tab_already_exists`: free plan has used its one
|
|
328
|
+
// allowed canvas (anywhere in the workspace).
|
|
329
|
+
// For both, find the existing canvas and edit it instead of looping.
|
|
330
|
+
if (isChannelCanvasAlreadyExistsError(err) || isFreeTeamCanvasAlreadyExistsError(err)) {
|
|
331
|
+
const existingId = (await this.fetchExistingChannelCanvasId(this.config.channelId))
|
|
332
|
+
?? (await this.findExistingStandaloneCanvasId());
|
|
333
|
+
if (existingId) {
|
|
334
|
+
logger.info(`[agents-canvas] adopting existing canvas ${existingId}`);
|
|
335
|
+
this.canvasId = existingId;
|
|
336
|
+
saveState({ canvasId: existingId, channelId: this.config.channelId });
|
|
337
|
+
await this.editCanvas(existingId, markdown);
|
|
338
|
+
return;
|
|
333
339
|
}
|
|
334
|
-
logger.
|
|
335
|
-
this.
|
|
336
|
-
|
|
337
|
-
}
|
|
338
|
-
else {
|
|
339
|
-
throw err;
|
|
340
|
+
logger.error("[agents-canvas] canvas already exists per Slack but none could be located — disabling updates to stop the retry loop.");
|
|
341
|
+
this.stop();
|
|
342
|
+
return;
|
|
340
343
|
}
|
|
344
|
+
throw err;
|
|
341
345
|
}
|
|
342
346
|
}
|
|
343
347
|
else {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
348
|
+
try {
|
|
349
|
+
const res = await this.client.apiCall("canvases.create", {
|
|
350
|
+
title: this.config.title,
|
|
351
|
+
document_content: documentContent,
|
|
352
|
+
});
|
|
353
|
+
const canvasId = extractCanvasId(res);
|
|
354
|
+
if (!canvasId) {
|
|
355
|
+
throw new Error(`canvases.create returned no canvas_id: ${JSON.stringify(res).slice(0, 200)}`);
|
|
356
|
+
}
|
|
357
|
+
this.canvasId = canvasId;
|
|
358
|
+
}
|
|
359
|
+
catch (err) {
|
|
360
|
+
// Free Slack workspaces are limited to a single standalone canvas. If
|
|
361
|
+
// one already exists (e.g. left over from a previous run), adopt it
|
|
362
|
+
// instead of looping forever on the create call.
|
|
363
|
+
if (isFreeTeamCanvasAlreadyExistsError(err)) {
|
|
364
|
+
const existingId = await this.findExistingStandaloneCanvasId();
|
|
365
|
+
if (existingId) {
|
|
366
|
+
logger.info(`[agents-canvas] adopting existing standalone canvas ${existingId}`);
|
|
367
|
+
this.canvasId = existingId;
|
|
368
|
+
saveState({ canvasId: existingId, channelId: this.config.channelId });
|
|
369
|
+
await this.editCanvas(existingId, markdown);
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
logger.error("[agents-canvas] free workspace standalone canvas limit reached and no existing canvas matched by title — disabling updates. Set agentsCanvas.channelId to host the canvas in a channel instead.");
|
|
373
|
+
this.stop();
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
376
|
+
throw err;
|
|
351
377
|
}
|
|
352
|
-
this.canvasId = canvasId;
|
|
353
378
|
}
|
|
354
379
|
saveState({ canvasId: this.canvasId, channelId: this.config.channelId });
|
|
355
380
|
logger.info(`[agents-canvas] created canvas ${this.canvasId}`);
|
|
356
381
|
}
|
|
382
|
+
async findExistingStandaloneCanvasId() {
|
|
383
|
+
try {
|
|
384
|
+
const res = await this.client.apiCall("files.list", {
|
|
385
|
+
types: "canvases",
|
|
386
|
+
count: 100,
|
|
387
|
+
});
|
|
388
|
+
const files = res.files;
|
|
389
|
+
if (!Array.isArray(files))
|
|
390
|
+
return null;
|
|
391
|
+
const match = files.find((f) => typeof f.title === "string" && f.title === this.config.title)
|
|
392
|
+
?? files.find((f) => typeof f.name === "string" && f.name === this.config.title);
|
|
393
|
+
const id = match?.id;
|
|
394
|
+
return typeof id === "string" && id ? id : null;
|
|
395
|
+
}
|
|
396
|
+
catch (err) {
|
|
397
|
+
logger.warn(`[agents-canvas] failed to look up existing standalone canvas: ${err}`);
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
357
401
|
async fetchExistingChannelCanvasId(channelId) {
|
|
358
402
|
try {
|
|
359
403
|
const info = await this.client.apiCall("conversations.info", { channel: channelId });
|
|
@@ -408,4 +452,13 @@ function isCanvasNotFoundError(err) {
|
|
|
408
452
|
const msg = err instanceof Error ? err.message : String(err);
|
|
409
453
|
return /(?:canvas|file).*(?:not_found|not found|missing|deleted)|(?:not_found|not found|missing|deleted).*(?:canvas|file)/i.test(msg);
|
|
410
454
|
}
|
|
455
|
+
function isFreeTeamCanvasAlreadyExistsError(err) {
|
|
456
|
+
if (!err || typeof err !== "object")
|
|
457
|
+
return false;
|
|
458
|
+
const data = err.data;
|
|
459
|
+
if (data?.error === "free_team_canvas_tab_already_exists")
|
|
460
|
+
return true;
|
|
461
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
462
|
+
return /free_team_canvas_tab_already_exists/.test(msg);
|
|
463
|
+
}
|
|
411
464
|
//# sourceMappingURL=agents-canvas.js.map
|