@overlordai/server 1.0.113 → 1.0.115
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/database/migrations/003-chat-bindings-project-key-index.sql +1 -0
- package/database/migrations/004-drop-agent-command.sql +2 -0
- package/database/migrations/005-task-name.sql +1 -0
- package/dist/adapters/adapter.interface.d.ts +4 -0
- package/dist/adapters/adapter.interface.d.ts.map +1 -1
- package/dist/adapters/adapter.interface.js.map +1 -1
- package/dist/adapters/command-parser.utils.d.ts +45 -0
- package/dist/adapters/command-parser.utils.d.ts.map +1 -0
- package/dist/adapters/command-parser.utils.js +144 -0
- package/dist/adapters/command-parser.utils.js.map +1 -0
- package/dist/adapters/help-text.d.ts +2 -0
- package/dist/adapters/help-text.d.ts.map +1 -0
- package/dist/adapters/help-text.js +24 -0
- package/dist/adapters/help-text.js.map +1 -0
- package/dist/adapters/lark/lark-card.builder.d.ts.map +1 -1
- package/dist/adapters/lark/lark-card.builder.js +10 -17
- package/dist/adapters/lark/lark-card.builder.js.map +1 -1
- package/dist/adapters/lark/lark-message.parser.d.ts +2 -35
- package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
- package/dist/adapters/lark/lark-message.parser.js +12 -162
- package/dist/adapters/lark/lark-message.parser.js.map +1 -1
- package/dist/adapters/lark/lark.adapter.d.ts +18 -0
- package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
- package/dist/adapters/lark/lark.adapter.js +152 -23
- package/dist/adapters/lark/lark.adapter.js.map +1 -1
- package/dist/adapters/lark/lark.controller.d.ts.map +1 -1
- package/dist/adapters/lark/lark.controller.js +2 -1
- package/dist/adapters/lark/lark.controller.js.map +1 -1
- package/dist/adapters/slack/slack-block.builder.d.ts.map +1 -1
- package/dist/adapters/slack/slack-block.builder.js +7 -14
- package/dist/adapters/slack/slack-block.builder.js.map +1 -1
- package/dist/adapters/slack/slack-message.parser.d.ts +2 -11
- package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -1
- package/dist/adapters/slack/slack-message.parser.js +12 -135
- package/dist/adapters/slack/slack-message.parser.js.map +1 -1
- package/dist/adapters/slack/slack.adapter.d.ts +5 -0
- package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
- package/dist/adapters/slack/slack.adapter.js +101 -25
- package/dist/adapters/slack/slack.adapter.js.map +1 -1
- package/dist/adapters/slack/slack.controller.d.ts.map +1 -1
- package/dist/adapters/slack/slack.controller.js +3 -4
- package/dist/adapters/slack/slack.controller.js.map +1 -1
- package/dist/common/config.d.ts +15 -0
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +27 -0
- package/dist/common/config.js.map +1 -1
- package/dist/common/project-validation.d.ts +1 -1
- package/dist/common/project-validation.d.ts.map +1 -1
- package/dist/common/project-validation.js +1 -9
- package/dist/common/project-validation.js.map +1 -1
- package/dist/common/status-display.d.ts +10 -0
- package/dist/common/status-display.d.ts.map +1 -0
- package/dist/common/status-display.js +35 -0
- package/dist/common/status-display.js.map +1 -0
- package/dist/common/string-utils.d.ts +3 -0
- package/dist/common/string-utils.d.ts.map +1 -1
- package/dist/common/string-utils.js +5 -0
- package/dist/common/string-utils.js.map +1 -1
- package/dist/database/repositories/bot.repository.d.ts +4 -0
- package/dist/database/repositories/bot.repository.d.ts.map +1 -1
- package/dist/database/repositories/bot.repository.js +15 -0
- package/dist/database/repositories/bot.repository.js.map +1 -1
- package/dist/database/repositories/project.repository.d.ts.map +1 -1
- package/dist/database/repositories/project.repository.js +0 -2
- package/dist/database/repositories/project.repository.js.map +1 -1
- package/dist/database/repositories/task.repository.d.ts +2 -1
- package/dist/database/repositories/task.repository.d.ts.map +1 -1
- package/dist/database/repositories/task.repository.js +19 -1
- package/dist/database/repositories/task.repository.js.map +1 -1
- package/dist/dispatcher/cleanup.service.d.ts +5 -0
- package/dist/dispatcher/cleanup.service.d.ts.map +1 -1
- package/dist/dispatcher/cleanup.service.js +19 -0
- package/dist/dispatcher/cleanup.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.module.js +4 -0
- package/dist/dispatcher/dispatcher.module.js.map +1 -1
- package/dist/dispatcher/dispatcher.service.d.ts +0 -1
- package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
- package/dist/dispatcher/dispatcher.service.js +46 -45
- package/dist/dispatcher/dispatcher.service.js.map +1 -1
- package/dist/dispatcher/dispatcher.types.d.ts +1 -0
- package/dist/dispatcher/dispatcher.types.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
- package/dist/dispatcher/scheduler.service.js +14 -3
- package/dist/dispatcher/scheduler.service.js.map +1 -1
- package/dist/dispatcher/stage-confirm-timeout.service.d.ts +15 -0
- package/dist/dispatcher/stage-confirm-timeout.service.d.ts.map +1 -0
- package/dist/dispatcher/stage-confirm-timeout.service.js +81 -0
- package/dist/dispatcher/stage-confirm-timeout.service.js.map +1 -0
- package/dist/dispatcher/task-creation.service.d.ts +3 -1
- package/dist/dispatcher/task-creation.service.d.ts.map +1 -1
- package/dist/dispatcher/task-creation.service.js +30 -4
- package/dist/dispatcher/task-creation.service.js.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.d.ts +4 -2
- package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -1
- package/dist/dispatcher/task-lifecycle.service.js +78 -8
- package/dist/dispatcher/task-lifecycle.service.js.map +1 -1
- package/dist/dispatcher/task-name.service.d.ts +14 -0
- package/dist/dispatcher/task-name.service.d.ts.map +1 -0
- package/dist/dispatcher/task-name.service.js +80 -0
- package/dist/dispatcher/task-name.service.js.map +1 -0
- package/dist/events/event-types.d.ts +1 -0
- package/dist/events/event-types.d.ts.map +1 -1
- package/dist/notifier/notification-consumer.d.ts +33 -1
- package/dist/notifier/notification-consumer.d.ts.map +1 -1
- package/dist/notifier/notification-consumer.js +235 -11
- package/dist/notifier/notification-consumer.js.map +1 -1
- package/dist/notifier/notifier.service.d.ts +5 -1
- package/dist/notifier/notifier.service.d.ts.map +1 -1
- package/dist/notifier/notifier.service.js +6 -3
- package/dist/notifier/notifier.service.js.map +1 -1
- package/dist/notifier/template.service.d.ts +15 -0
- package/dist/notifier/template.service.d.ts.map +1 -1
- package/dist/notifier/template.service.js +92 -31
- package/dist/notifier/template.service.js.map +1 -1
- package/dist/web/admin/admin-developer.controller.d.ts +2 -2
- package/dist/web/admin/admin-settings.controller.d.ts.map +1 -1
- package/dist/web/admin/admin-settings.controller.js +0 -1
- package/dist/web/admin/admin-settings.controller.js.map +1 -1
- package/dist/web/dashboard.controller.d.ts +1 -1
- package/dist/web/dashboard.controller.d.ts.map +1 -1
- package/dist/web/dashboard.controller.js +12 -4
- package/dist/web/dashboard.controller.js.map +1 -1
- package/dist/web/dashboard.service.d.ts +18 -0
- package/dist/web/dashboard.service.d.ts.map +1 -1
- package/dist/web/dashboard.service.js +81 -11
- package/dist/web/dashboard.service.js.map +1 -1
- package/dist/web/frame-handlers/index.d.ts +2 -0
- package/dist/web/frame-handlers/index.d.ts.map +1 -1
- package/dist/web/frame-handlers/index.js +5 -1
- package/dist/web/frame-handlers/index.js.map +1 -1
- package/dist/web/frame-handlers/progress.handler.d.ts +3 -1
- package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/progress.handler.js +22 -3
- package/dist/web/frame-handlers/progress.handler.js.map +1 -1
- package/dist/web/frame-handlers/stage-choice.handler.d.ts +15 -0
- package/dist/web/frame-handlers/stage-choice.handler.d.ts.map +1 -0
- package/dist/web/frame-handlers/stage-choice.handler.js +39 -0
- package/dist/web/frame-handlers/stage-choice.handler.js.map +1 -0
- package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -1
- package/dist/web/frame-handlers/stage-confirm.handler.js +1 -0
- package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -1
- package/dist/web/frame-handlers/stage-input.handler.d.ts +15 -0
- package/dist/web/frame-handlers/stage-input.handler.d.ts.map +1 -0
- package/dist/web/frame-handlers/stage-input.handler.js +39 -0
- package/dist/web/frame-handlers/stage-input.handler.js.map +1 -0
- package/dist/web/project.controller.d.ts +2 -4
- package/dist/web/project.controller.d.ts.map +1 -1
- package/dist/web/search.service.d.ts +1 -0
- package/dist/web/search.service.d.ts.map +1 -1
- package/dist/web/search.service.js +6 -6
- package/dist/web/search.service.js.map +1 -1
- package/dist/web/task.controller.d.ts +16 -1
- package/dist/web/task.controller.d.ts.map +1 -1
- package/dist/web/task.controller.js +57 -5
- package/dist/web/task.controller.js.map +1 -1
- package/dist/web/web-event.service.d.ts.map +1 -1
- package/dist/web/web-event.service.js +1 -0
- package/dist/web/web-event.service.js.map +1 -1
- package/dist/web/worker-channel.gateway.d.ts.map +1 -1
- package/dist/web/worker-channel.gateway.js +3 -1
- package/dist/web/worker-channel.gateway.js.map +1 -1
- package/package.json +4 -4
- package/public/assets/{AccessTokensPage-D_A93EkP.js → AccessTokensPage-Yp8IfrfF.js} +1 -1
- package/public/assets/{AdminPage-DnmoRibU.js → AdminPage-CS2HrhOC.js} +1 -1
- package/public/assets/ApiReferencePage-DTinm3RG.js +1 -0
- package/public/assets/{ArchitecturePage-Co5G-15M.js → ArchitecturePage-BpA3PUuf.js} +1 -1
- package/public/assets/{AuditLogPage-DoaVh4un.js → AuditLogPage-B_Qopq3a.js} +2 -2
- package/public/assets/{BindPlatformPage-C2bIjAbT.js → BindPlatformPage-BkV-IfaR.js} +1 -1
- package/public/assets/BotIntegrationPage-DLuRDIam.js +1 -0
- package/public/assets/BotManage-XKHjrA-7.js +6 -0
- package/public/assets/BotSetupPage-Cn40afR9.js +33 -0
- package/public/assets/{ChangelogPage-CazGvq6Y.js → ChangelogPage-ChiapPDH.js} +1 -1
- package/public/assets/{CliReferencePage-tonM0XBs.js → CliReferencePage-3eHb6kRq.js} +1 -1
- package/public/assets/{DeploymentPage-DwifcnIe.js → DeploymentPage-CvT9Pcow.js} +1 -1
- package/public/assets/{DevWorkflowPage-DJddffhm.js → DevWorkflowPage-BLEIbUu1.js} +1 -1
- package/public/assets/{DeveloperManage-DwaEFuLo.js → DeveloperManage-DAJBvmdv.js} +2 -2
- package/public/assets/{DeveloperSetupPage-DA4BHPuG.js → DeveloperSetupPage-BhE83ouS.js} +1 -1
- package/public/assets/{DocsIndexPage-C-FZbN8Z.js → DocsIndexPage-BE_tyO2Q.js} +1 -1
- package/public/assets/{DocsLayout-HdiVoWKl.js → DocsLayout-D1S4KUeB.js} +1 -1
- package/public/assets/{DocsPrimitives-DU41lKXb.js → DocsPrimitives-BQXfZXxZ.js} +1 -1
- package/public/assets/EditProjectPage-BjgRi6kG.js +2 -0
- package/public/assets/{EmptyState-i9jXL5NQ.js → EmptyState-Dlt6FhVC.js} +1 -1
- package/public/assets/EnvVariablesPage-CvcP4GZM.js +24 -0
- package/public/assets/HomePage-uEE3mJNM.js +1 -0
- package/public/assets/{InfoRow-kU23cpPE.js → InfoRow-Db2nisGq.js} +1 -1
- package/public/assets/{InstallationPage-JxXYftV0.js → InstallationPage-kt-du5Rr.js} +2 -2
- package/public/assets/{LandingPage-7--4I0lt.js → LandingPage-2irRMduO.js} +1 -1
- package/public/assets/{LocalDevelopmentPage-B0C1C5Rs.js → LocalDevelopmentPage-7JvSDwD1.js} +1 -1
- package/public/assets/{LoginPage-2Io9O_Q7.js → LoginPage-DDk_X1sv.js} +1 -1
- package/public/assets/{MetricBar-BSwVCFMX.js → MetricBar-BhjbfPOa.js} +1 -1
- package/public/assets/{NotFoundPage-DbO52kqL.js → NotFoundPage-ByRykDvA.js} +1 -1
- package/public/assets/{OnboardingGuide-BeP-StZq.js → OnboardingGuide-CinJRqx5.js} +1 -1
- package/public/assets/{PermissionsPage-BMM-SA8k.js → PermissionsPage-C5RXlztC.js} +1 -1
- package/public/assets/PipelineConfigPage-BSkSRngC.js +22 -0
- package/public/assets/{PipelineEditorPage-CpW1dBVH.js → PipelineEditorPage-BoZ_MVNO.js} +2 -2
- package/public/assets/{ProfilePage-BaDJoNI7.js → ProfilePage-CePUfQDH.js} +1 -1
- package/public/assets/ProjectDetailPage-_DswTp8-.js +7 -0
- package/public/assets/ProjectListPage-fVbDom8_.js +6 -0
- package/public/assets/{PtyTerminal-CEkY7dvk.js → PtyTerminal-Dpk4L7LN.js} +1 -1
- package/public/assets/{QuickAuth-9InsfbSA.js → QuickAuth-BAmZCI4O.js} +1 -1
- package/public/assets/{RemoveMemberConfirmDialog-Do5LW-9Q.js → RemoveMemberConfirmDialog-DYi6BAz2.js} +2 -2
- package/public/assets/{Select-8IQBiBBw.js → Select-DnIOEVCT.js} +1 -1
- package/public/assets/SettingsPage-CwV-t8vo.js +6 -0
- package/public/assets/{Skeleton-B3ZvE5gP.js → Skeleton--qglldqs.js} +1 -1
- package/public/assets/{SkillPage-BhiRgb-S.js → SkillPage-CsXXruJZ.js} +1 -1
- package/public/assets/TaskDetailPage-gOUWMfkb.js +21 -0
- package/public/assets/TaskListPage-vF17zpt2.js +1 -0
- package/public/assets/{TaskStatusBadge-B6mxAWy2.js → TaskStatusBadge-CCh-nmLz.js} +1 -1
- package/public/assets/TerminalHomePage-DXFg88Q9.js +11 -0
- package/public/assets/{TokenManage-CenYPcRv.js → TokenManage-P98_TYIe.js} +1 -1
- package/public/assets/Tooltip-DGoJgM_K.js +1 -0
- package/public/assets/{TotpSetupPage-DQyx573Y.js → TotpSetupPage-D5GUedMd.js} +1 -1
- package/public/assets/WorkerDetailPage-CkI1feoH.js +1 -0
- package/public/assets/{WorkerListPage-_bt8SJDK.js → WorkerListPage-C90v6nLx.js} +2 -2
- package/public/assets/{WorkerOperationsPage-CDat2rGV.js → WorkerOperationsPage-OxH0Ky0Y.js} +1 -1
- package/public/assets/{WorkerSetupGuidePage-CN7fSwA-.js → WorkerSetupGuidePage-DGlgYS82.js} +1 -1
- package/public/assets/{WorkerSetupPage--spDks6s.js → WorkerSetupPage-DJ359PwT.js} +1 -1
- package/public/assets/{arrow-left-CQ-bmyEx.js → arrow-left-BPgCxdEG.js} +1 -1
- package/public/assets/{arrow-right-BOWA0FvU.js → arrow-right-Z-hFp5rr.js} +1 -1
- package/public/assets/{bot-BpTfNKBP.js → bot-B7Bl9J0r.js} +1 -1
- package/public/assets/{chevron-right-D-xhzuZQ.js → chevron-right-D_hyYdgn.js} +1 -1
- package/public/assets/{copy-DXSXnWX4.js → copy-SJf3OFPQ.js} +1 -1
- package/public/assets/{download-FbsyL-QU.js → download-D7rCJJks.js} +1 -1
- package/public/assets/{external-link-CPRFmfE1.js → external-link-BrXLoqUZ.js} +1 -1
- package/public/assets/index-BiItJ2NI.css +1 -0
- package/public/assets/{index-D205WYza.js → index-DPCzKHL-.js} +23 -23
- package/public/assets/{key-Diuh2Udi.js → key-CCF8A0TZ.js} +1 -1
- package/public/assets/{loader-circle-CsopNBbX.js → loader-circle-BO0HYeDT.js} +1 -1
- package/public/assets/{pencil-n52F1Vop.js → pencil-BhxWbYup.js} +1 -1
- package/public/assets/{plus-BHkYD1iG.js → plus-BnJSQWb4.js} +1 -1
- package/public/assets/{rotate-ccw-Bl22woOU.js → rotate-ccw-CioNXT1z.js} +1 -1
- package/public/assets/{scroll-text-DbVWAYzk.js → scroll-text-DpFjChL8.js} +1 -1
- package/public/assets/{settings-0li6vYCf.js → settings-Bklbsj12.js} +1 -1
- package/public/assets/{status-colors-C6o-wKJJ.js → status-colors-BkxgT8vX.js} +1 -1
- package/public/assets/{task-constants-a8NftfbJ.js → task-constants-Ctac6aky.js} +1 -1
- package/public/assets/task-display-J_FNKBLK.js +1 -0
- package/public/assets/{trash-2-LoxvLZVm.js → trash-2-_3SD7t1j.js} +1 -1
- package/public/assets/{useFetch-DIPC8gCD.js → useFetch-D8w38eG7.js} +1 -1
- package/public/assets/{users-BgBBs7IT.js → users-BBjD2TJy.js} +1 -1
- package/public/assets/{wifi-CF0XZj9i.js → wifi-KyET3jRD.js} +1 -1
- package/public/assets/{workflow-DBOppGKP.js → workflow-EN1ACj2x.js} +1 -1
- package/public/index.html +2 -2
- package/public/sw.js +1 -1
- package/dist/common/command-parser.d.ts +0 -29
- package/dist/common/command-parser.d.ts.map +0 -1
- package/dist/common/command-parser.js +0 -133
- package/dist/common/command-parser.js.map +0 -1
- package/dist/common/machine-utils.d.ts +0 -32
- package/dist/common/machine-utils.d.ts.map +0 -1
- package/dist/common/machine-utils.js +0 -12
- package/dist/common/machine-utils.js.map +0 -1
- package/dist/common/worker-utils.d.ts +0 -31
- package/dist/common/worker-utils.d.ts.map +0 -1
- package/dist/common/worker-utils.js +0 -12
- package/dist/common/worker-utils.js.map +0 -1
- package/dist/database/repositories/machine.repository.d.ts +0 -46
- package/dist/database/repositories/machine.repository.d.ts.map +0 -1
- package/dist/database/repositories/machine.repository.js +0 -200
- package/dist/database/repositories/machine.repository.js.map +0 -1
- package/dist/dispatcher/machine-selector.d.ts +0 -18
- package/dist/dispatcher/machine-selector.d.ts.map +0 -1
- package/dist/dispatcher/machine-selector.js +0 -148
- package/dist/dispatcher/machine-selector.js.map +0 -1
- package/dist/web/admin/admin-machine.controller.d.ts +0 -72
- package/dist/web/admin/admin-machine.controller.d.ts.map +0 -1
- package/dist/web/admin/admin-machine.controller.js +0 -176
- package/dist/web/admin/admin-machine.controller.js.map +0 -1
- package/dist/web/machine.controller.d.ts +0 -115
- package/dist/web/machine.controller.d.ts.map +0 -1
- package/dist/web/machine.controller.js +0 -125
- package/dist/web/machine.controller.js.map +0 -1
- package/public/assets/ApiReferencePage-8Fvke3MS.js +0 -1
- package/public/assets/BotIntegrationPage-BgK7NXyQ.js +0 -1
- package/public/assets/BotManage-BlWUAERC.js +0 -6
- package/public/assets/BotSetupPage-BhNhgobr.js +0 -33
- package/public/assets/EditProjectPage-0HfKfeFS.js +0 -2
- package/public/assets/EnvVariablesPage-DofRDtyz.js +0 -1
- package/public/assets/HomePage-Ct5rkEIu.js +0 -1
- package/public/assets/PipelineConfigPage-6KxS3scE.js +0 -28
- package/public/assets/ProjectDetailPage-QjUSwxfS.js +0 -7
- package/public/assets/ProjectListPage-Bs0GPEJb.js +0 -6
- package/public/assets/SettingsPage-DRWkl-_N.js +0 -6
- package/public/assets/TaskDetailPage-vwqcnwqe.js +0 -21
- package/public/assets/TaskListPage-DRiTh03Z.js +0 -1
- package/public/assets/TerminalHomePage-sK-nSIOn.js +0 -11
- package/public/assets/WorkerDetailPage-BV7YTrMb.js +0 -1
- package/public/assets/index-DrlMKbMb.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lark.controller.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAOwB;AAExB,iDAA6C;AAC7C,4EAAwE;AACxE,2DAAsD;AACtD,+EAA2E;AAC3E,gEAA4D;AAC5D,qDAAuD;AACvD,oDAAsC;AAEtC,mDAAuD;
|
|
1
|
+
{"version":3,"file":"lark.controller.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-block.builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack-block.builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"slack-block.builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack-block.builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,qBACa,iBAAiB;IAC5B,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc;IAgCzC,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,cAAc;IAkBtG,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,EAAE;CAyD1C"}
|
|
@@ -8,25 +8,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.SlackBlockBuilder = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const protocol_1 = require("@overlordai/protocol");
|
|
12
11
|
const config_1 = require("../../common/config");
|
|
13
12
|
const string_utils_1 = require("../../common/string-utils");
|
|
14
|
-
const
|
|
15
|
-
[protocol_1.TaskStatus.QUEUED]: '⏳',
|
|
16
|
-
[protocol_1.TaskStatus.ASSIGNED]: '🔵',
|
|
17
|
-
[protocol_1.TaskStatus.RUNNING]: '🔵',
|
|
18
|
-
[protocol_1.TaskStatus.SUSPENDED]: '🟠',
|
|
19
|
-
[protocol_1.TaskStatus.COMPLETED]: '✅',
|
|
20
|
-
[protocol_1.TaskStatus.FAILED]: '❌',
|
|
21
|
-
[protocol_1.TaskStatus.CANCELLED]: '⚪',
|
|
22
|
-
};
|
|
13
|
+
const status_display_1 = require("../../common/status-display");
|
|
23
14
|
let SlackBlockBuilder = class SlackBlockBuilder {
|
|
24
15
|
buildTaskCard(task) {
|
|
25
|
-
const emoji =
|
|
16
|
+
const emoji = status_display_1.SLACK_STATUS_EMOJIS[task.status] ?? '⏳';
|
|
17
|
+
const color = status_display_1.TASK_STATUS_COLORS[task.status] ?? 'grey';
|
|
26
18
|
const webUrl = `${(0, config_1.getWebUrl)()}/tasks/${task.id}`;
|
|
27
19
|
const fields = [
|
|
28
20
|
{ label: 'Task', value: `#${task.id}` },
|
|
29
|
-
{ label: 'Description', value: (0, string_utils_1.
|
|
21
|
+
{ label: 'Description', value: (0, string_utils_1.taskDisplayName)(task) },
|
|
30
22
|
{ label: 'Status', value: `${emoji} ${task.status}` },
|
|
31
23
|
{ label: 'Project', value: task.projectKey },
|
|
32
24
|
];
|
|
@@ -44,14 +36,15 @@ let SlackBlockBuilder = class SlackBlockBuilder {
|
|
|
44
36
|
];
|
|
45
37
|
return {
|
|
46
38
|
type: 'card',
|
|
47
|
-
card: { title: `Task #${task.id} — ${task.status}`, fields, actions },
|
|
39
|
+
card: { title: `Task #${task.id} — ${task.status}`, color, fields, actions },
|
|
48
40
|
};
|
|
49
41
|
}
|
|
50
42
|
buildDedupConfirmCard(existingTaskId, description, confirmKey) {
|
|
51
43
|
return {
|
|
52
44
|
type: 'card',
|
|
53
45
|
card: {
|
|
54
|
-
title: 'Duplicate Task Detected',
|
|
46
|
+
title: '⚠️ Duplicate Task Detected',
|
|
47
|
+
color: 'orange',
|
|
55
48
|
fields: [
|
|
56
49
|
{ label: 'Existing Task', value: `#${existingTaskId}` },
|
|
57
50
|
{ label: 'Description', value: (0, string_utils_1.truncate)(description, 50) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-block.builder.js","sourceRoot":"","sources":["../../../src/adapters/slack/slack-block.builder.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;
|
|
1
|
+
{"version":3,"file":"slack-block.builder.js","sourceRoot":"","sources":["../../../src/adapters/slack/slack-block.builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
import type { ParsedCommand } from '../
|
|
2
|
-
export type { ParsedCommand };
|
|
1
|
+
import type { ParsedCommand } from '../command-parser.utils';
|
|
2
|
+
export type { ParsedCommand } from '../command-parser.utils';
|
|
3
3
|
export declare class SlackMessageParser {
|
|
4
4
|
stripBotMention(text: string, botUserId: string): string;
|
|
5
5
|
parse(text: string): ParsedCommand;
|
|
6
|
-
private parseDevelop;
|
|
7
|
-
private parseWithOptionalTaskId;
|
|
8
|
-
private parseWithRequiredTaskId;
|
|
9
|
-
private parseList;
|
|
10
|
-
private parseSearch;
|
|
11
|
-
private parseChoose;
|
|
12
|
-
private parseInput;
|
|
13
|
-
private extractTaskId;
|
|
14
6
|
private unescapeMrkdwn;
|
|
15
|
-
private tokenize;
|
|
16
7
|
}
|
|
17
8
|
//# sourceMappingURL=slack-message.parser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-message.parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack-message.parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"slack-message.parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack-message.parser.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,qBACa,kBAAkB;IAC7B,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAIxD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAsDlC,OAAO,CAAC,cAAc;CAIvB"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.SlackMessageParser = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const protocol_1 = require("@overlordai/protocol");
|
|
12
|
+
const command_parser_utils_1 = require("../command-parser.utils");
|
|
12
13
|
let SlackMessageParser = class SlackMessageParser {
|
|
13
14
|
stripBotMention(text, botUserId) {
|
|
14
15
|
return text.replace(new RegExp(`<@${botUserId}>`, 'g'), '').trim();
|
|
@@ -18,7 +19,7 @@ let SlackMessageParser = class SlackMessageParser {
|
|
|
18
19
|
if (!unescaped) {
|
|
19
20
|
return { type: 'help', args: {} };
|
|
20
21
|
}
|
|
21
|
-
const tokens =
|
|
22
|
+
const tokens = (0, command_parser_utils_1.tokenize)(unescaped);
|
|
22
23
|
if (tokens.length === 0) {
|
|
23
24
|
return { type: 'help', args: {} };
|
|
24
25
|
}
|
|
@@ -26,39 +27,35 @@ let SlackMessageParser = class SlackMessageParser {
|
|
|
26
27
|
switch (commandName) {
|
|
27
28
|
case 'develop':
|
|
28
29
|
case 'dev':
|
|
29
|
-
return
|
|
30
|
+
return (0, command_parser_utils_1.parseDevelop)(tokens.slice(1));
|
|
30
31
|
case 'progress':
|
|
31
|
-
return
|
|
32
|
+
return (0, command_parser_utils_1.parseWithOptionalTaskId)(protocol_1.CommandType.SHOW, tokens.slice(1));
|
|
32
33
|
case 'cancel':
|
|
33
|
-
return
|
|
34
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.CANCEL, tokens.slice(1));
|
|
34
35
|
case 'retry':
|
|
35
|
-
return
|
|
36
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.RETRY, tokens.slice(1));
|
|
36
37
|
case 'list':
|
|
37
38
|
case 'ls':
|
|
38
|
-
return
|
|
39
|
+
return (0, command_parser_utils_1.parseList)(tokens.slice(1));
|
|
39
40
|
case 'workspace':
|
|
40
41
|
case 'ws':
|
|
41
|
-
return
|
|
42
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.SHOW, tokens.slice(1));
|
|
42
43
|
case 'logs':
|
|
43
44
|
case 'log':
|
|
44
|
-
return
|
|
45
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.SHOW, tokens.slice(1));
|
|
45
46
|
case 'confirm':
|
|
46
|
-
return
|
|
47
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.CONFIRM, tokens.slice(1));
|
|
47
48
|
case 'projects':
|
|
48
49
|
case 'proj':
|
|
49
50
|
return { type: protocol_1.CommandType.PROJECTS, args: {} };
|
|
50
51
|
case 'status':
|
|
51
52
|
return { type: protocol_1.CommandType.STATUS, args: {} };
|
|
52
53
|
case 'show':
|
|
53
|
-
return
|
|
54
|
+
return (0, command_parser_utils_1.parseWithRequiredTaskId)(protocol_1.CommandType.SHOW, tokens.slice(1));
|
|
54
55
|
case 'workers':
|
|
55
56
|
return { type: protocol_1.CommandType.WORKERS, args: {} };
|
|
56
57
|
case 'search':
|
|
57
|
-
return
|
|
58
|
-
case 'choose':
|
|
59
|
-
return this.parseChoose(tokens.slice(1));
|
|
60
|
-
case 'input':
|
|
61
|
-
return this.parseInput(tokens.slice(1));
|
|
58
|
+
return (0, command_parser_utils_1.parseSearch)(tokens.slice(1));
|
|
62
59
|
case 'bind':
|
|
63
60
|
return { type: protocol_1.CommandType.BIND, args: {} };
|
|
64
61
|
case 'info':
|
|
@@ -67,129 +64,9 @@ let SlackMessageParser = class SlackMessageParser {
|
|
|
67
64
|
return { type: 'help', args: {} };
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
parseDevelop(tokens) {
|
|
71
|
-
let description;
|
|
72
|
-
let project;
|
|
73
|
-
let worker;
|
|
74
|
-
let i = 0;
|
|
75
|
-
while (i < tokens.length) {
|
|
76
|
-
const token = tokens[i];
|
|
77
|
-
if (token === '--project' || token === '-p') {
|
|
78
|
-
i++;
|
|
79
|
-
if (i < tokens.length)
|
|
80
|
-
project = tokens[i];
|
|
81
|
-
i++;
|
|
82
|
-
continue;
|
|
83
|
-
}
|
|
84
|
-
if (token === '--on') {
|
|
85
|
-
i++;
|
|
86
|
-
if (i < tokens.length)
|
|
87
|
-
worker = tokens[i];
|
|
88
|
-
i++;
|
|
89
|
-
continue;
|
|
90
|
-
}
|
|
91
|
-
if (description === undefined) {
|
|
92
|
-
description = token;
|
|
93
|
-
}
|
|
94
|
-
i++;
|
|
95
|
-
}
|
|
96
|
-
if (!description) {
|
|
97
|
-
return { type: 'help', args: {} };
|
|
98
|
-
}
|
|
99
|
-
let taskType;
|
|
100
|
-
if (description) {
|
|
101
|
-
const typeMatch = description.match(/^(feat|fix|refactor|docs|chore):\s*/i);
|
|
102
|
-
if (typeMatch) {
|
|
103
|
-
taskType = typeMatch[1].toLowerCase();
|
|
104
|
-
description = description.slice(typeMatch[0].length).trim();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
type: protocol_1.CommandType.DEVELOP,
|
|
109
|
-
args: {
|
|
110
|
-
description: description.trim(),
|
|
111
|
-
...(project ? { project } : {}),
|
|
112
|
-
...(worker ? { worker } : {}),
|
|
113
|
-
...(taskType ? { taskType } : {}),
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
parseWithOptionalTaskId(type, tokens) {
|
|
118
|
-
const taskId = this.extractTaskId(tokens);
|
|
119
|
-
return { type, args: taskId !== undefined ? { taskId } : {} };
|
|
120
|
-
}
|
|
121
|
-
parseWithRequiredTaskId(type, tokens) {
|
|
122
|
-
const taskId = this.extractTaskId(tokens);
|
|
123
|
-
if (taskId === undefined) {
|
|
124
|
-
return { type: 'help', args: {} };
|
|
125
|
-
}
|
|
126
|
-
return { type, args: { taskId } };
|
|
127
|
-
}
|
|
128
|
-
parseList(tokens) {
|
|
129
|
-
let project;
|
|
130
|
-
let i = 0;
|
|
131
|
-
while (i < tokens.length) {
|
|
132
|
-
const token = tokens[i];
|
|
133
|
-
if (token === '--project' || token === '-p') {
|
|
134
|
-
i++;
|
|
135
|
-
if (i < tokens.length)
|
|
136
|
-
project = tokens[i];
|
|
137
|
-
i++;
|
|
138
|
-
continue;
|
|
139
|
-
}
|
|
140
|
-
i++;
|
|
141
|
-
}
|
|
142
|
-
return { type: protocol_1.CommandType.LIST, args: project ? { project } : {} };
|
|
143
|
-
}
|
|
144
|
-
parseSearch(tokens) {
|
|
145
|
-
const query = tokens.join(' ').trim();
|
|
146
|
-
if (!query) {
|
|
147
|
-
return { type: 'help', args: {} };
|
|
148
|
-
}
|
|
149
|
-
return { type: protocol_1.CommandType.SEARCH, args: { query } };
|
|
150
|
-
}
|
|
151
|
-
parseChoose(tokens) {
|
|
152
|
-
const taskId = this.extractTaskId(tokens);
|
|
153
|
-
if (taskId === undefined) {
|
|
154
|
-
return { type: 'help', args: {} };
|
|
155
|
-
}
|
|
156
|
-
const option = tokens.find((t) => !/^#?\d+$/.test(t));
|
|
157
|
-
return { type: protocol_1.CommandType.CHOOSE, args: { taskId, ...(option ? { option } : {}) } };
|
|
158
|
-
}
|
|
159
|
-
parseInput(tokens) {
|
|
160
|
-
const taskId = this.extractTaskId(tokens);
|
|
161
|
-
if (taskId === undefined) {
|
|
162
|
-
return { type: 'help', args: {} };
|
|
163
|
-
}
|
|
164
|
-
const taskIdIndex = tokens.findIndex((t) => /^#?\d+$/.test(t));
|
|
165
|
-
const rest = tokens.slice(taskIdIndex + 1).join(' ').trim();
|
|
166
|
-
return {
|
|
167
|
-
type: protocol_1.CommandType.INPUT,
|
|
168
|
-
args: { taskId, ...(rest ? { inputText: rest } : {}) },
|
|
169
|
-
};
|
|
170
|
-
}
|
|
171
|
-
extractTaskId(tokens) {
|
|
172
|
-
for (const token of tokens) {
|
|
173
|
-
const match = /^#?(\d+)$/.exec(token);
|
|
174
|
-
if (match)
|
|
175
|
-
return parseInt(match[1], 10);
|
|
176
|
-
}
|
|
177
|
-
return undefined;
|
|
178
|
-
}
|
|
179
67
|
unescapeMrkdwn(text) {
|
|
180
68
|
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
|
181
69
|
}
|
|
182
|
-
tokenize(text) {
|
|
183
|
-
const tokens = [];
|
|
184
|
-
const regex = /(?:"([^"]*)")|(?:'([^']*)')|(\S+)/g;
|
|
185
|
-
let match;
|
|
186
|
-
while ((match = regex.exec(text)) !== null) {
|
|
187
|
-
const value = match[1] ?? match[2] ?? match[3];
|
|
188
|
-
if (value !== undefined)
|
|
189
|
-
tokens.push(value);
|
|
190
|
-
}
|
|
191
|
-
return tokens;
|
|
192
|
-
}
|
|
193
70
|
};
|
|
194
71
|
exports.SlackMessageParser = SlackMessageParser;
|
|
195
72
|
exports.SlackMessageParser = SlackMessageParser = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-message.parser.js","sourceRoot":"","sources":["../../../src/adapters/slack/slack-message.parser.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAC5C,mDAAmD;
|
|
1
|
+
{"version":3,"file":"slack-message.parser.js","sourceRoot":"","sources":["../../../src/adapters/slack/slack-message.parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,6 +58,7 @@ export declare class SlackAdapter implements IMessageAdapter {
|
|
|
58
58
|
private handleEventCallback;
|
|
59
59
|
handleInteraction(payload: SlackInteractionPayload): Promise<void>;
|
|
60
60
|
handleSlashCommand(payload: SlackSlashCommandPayload): Promise<Command | null>;
|
|
61
|
+
sendDM(platformUid: string, content: AdapterMessage): Promise<string | undefined>;
|
|
61
62
|
sendMessage(chatId: string, content: AdapterMessage): Promise<string>;
|
|
62
63
|
updateMessage(msgId: string, content: AdapterMessage, appId?: string): Promise<void>;
|
|
63
64
|
resolveUser(platformUid: string): Promise<DeveloperPublic | null>;
|
|
@@ -68,6 +69,10 @@ export declare class SlackAdapter implements IMessageAdapter {
|
|
|
68
69
|
private findAnyClient;
|
|
69
70
|
private rememberChatAppId;
|
|
70
71
|
private evictChannelCache;
|
|
72
|
+
private fetchThreadRootContent;
|
|
73
|
+
private resolveDeveloperMention;
|
|
74
|
+
private stripDeveloperMentions;
|
|
75
|
+
private sendTextMessage;
|
|
71
76
|
private sendHelpMessage;
|
|
72
77
|
}
|
|
73
78
|
//# sourceMappingURL=slack.adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"slack.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/slack/slack.adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,7 @@ const crypto_service_1 = require("../../common/crypto.service");
|
|
|
60
60
|
const config_1 = require("../../common/config");
|
|
61
61
|
const slack_message_parser_1 = require("./slack-message.parser");
|
|
62
62
|
const slack_block_builder_1 = require("./slack-block.builder");
|
|
63
|
+
const help_text_1 = require("../help-text");
|
|
63
64
|
let SlackAdapter = class SlackAdapter {
|
|
64
65
|
static { SlackAdapter_1 = this; }
|
|
65
66
|
botRepo;
|
|
@@ -117,16 +118,22 @@ let SlackAdapter = class SlackAdapter {
|
|
|
117
118
|
}
|
|
118
119
|
const isDM = event.channel_type === 'im';
|
|
119
120
|
let commandText;
|
|
121
|
+
let botUserId = '';
|
|
120
122
|
if (isDM) {
|
|
121
123
|
commandText = event.text.trim();
|
|
122
124
|
}
|
|
123
125
|
else if (event.type === 'app_mention') {
|
|
124
|
-
|
|
126
|
+
botUserId = await this.getBotUserId(appId);
|
|
125
127
|
commandText = this.parser.stripBotMention(event.text, botUserId);
|
|
126
128
|
}
|
|
127
129
|
else {
|
|
128
130
|
return null;
|
|
129
131
|
}
|
|
132
|
+
// Extract @mentioned developer before parsing command
|
|
133
|
+
const mentionResult = this.resolveDeveloperMention(commandText, botUserId);
|
|
134
|
+
if (mentionResult) {
|
|
135
|
+
commandText = this.stripDeveloperMentions(commandText, botUserId);
|
|
136
|
+
}
|
|
130
137
|
const parsed = this.parser.parse(commandText);
|
|
131
138
|
if (parsed.type === 'help') {
|
|
132
139
|
await this.sendHelpMessage(event.channel, appId);
|
|
@@ -190,19 +197,50 @@ let SlackAdapter = class SlackAdapter {
|
|
|
190
197
|
}
|
|
191
198
|
return null;
|
|
192
199
|
}
|
|
200
|
+
// Fetch thread root message if this is a reply in a thread (deferred until after help/bind/info)
|
|
201
|
+
let quotedContent;
|
|
202
|
+
let quotedMsgId;
|
|
203
|
+
if (event.thread_ts && event.thread_ts !== event.ts) {
|
|
204
|
+
try {
|
|
205
|
+
const content = await this.fetchThreadRootContent(event.channel, event.thread_ts, appId);
|
|
206
|
+
if (content) {
|
|
207
|
+
quotedContent = content;
|
|
208
|
+
quotedMsgId = event.thread_ts;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch (err) {
|
|
212
|
+
this.logger.error(`Failed to fetch thread root: ${(0, protocol_1.getErrorMessage)(err)}`);
|
|
213
|
+
await this.sendEphemeral(event.channel, event.user, 'Failed to fetch quoted message. Please try again.', appId);
|
|
214
|
+
return null;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
193
217
|
const developer = await this.resolveUser(event.user);
|
|
194
218
|
if (!developer) {
|
|
195
219
|
this.logger.warn(`Cannot resolve Slack user: ${event.user}`);
|
|
196
220
|
await this.sendEphemeral(event.channel, event.user, 'Your Slack account is not linked. Send "bind" to get a link to connect your account.', appId);
|
|
197
221
|
return null;
|
|
198
222
|
}
|
|
223
|
+
// Resolve the mentioned developer if any
|
|
224
|
+
let mentionedDeveloperId;
|
|
225
|
+
if (mentionResult) {
|
|
226
|
+
if ('developerId' in mentionResult) {
|
|
227
|
+
mentionedDeveloperId = mentionResult.developerId;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
await this.sendTextMessage(event.channel, `<@${mentionResult.unregisteredUserId}> is not registered as a developer. Task assigned to you.`, appId);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
199
233
|
const chatBinding = this.botRepo.findBindingByChatId(event.channel);
|
|
200
234
|
if (!parsed.args.project && chatBinding?.projectKey) {
|
|
201
235
|
parsed.args.project = chatBinding.projectKey;
|
|
202
236
|
}
|
|
203
237
|
const command = {
|
|
204
238
|
type: parsed.type,
|
|
205
|
-
args:
|
|
239
|
+
args: {
|
|
240
|
+
...parsed.args,
|
|
241
|
+
...(quotedContent ? { quotedContent, quotedMsgId } : {}),
|
|
242
|
+
...(mentionedDeveloperId ? { developer: mentionedDeveloperId } : {}),
|
|
243
|
+
},
|
|
206
244
|
platform: protocol_1.Platform.SLACK,
|
|
207
245
|
user: { id: developer.id, name: developer.name, platformUid: event.user },
|
|
208
246
|
chat: { id: event.channel, platformChatId: event.channel },
|
|
@@ -313,6 +351,29 @@ let SlackAdapter = class SlackAdapter {
|
|
|
313
351
|
eventId: payload.trigger_id,
|
|
314
352
|
};
|
|
315
353
|
}
|
|
354
|
+
async sendDM(platformUid, content) {
|
|
355
|
+
const bots = this.botRepo.findAll().filter((b) => b.platform === 'slack');
|
|
356
|
+
if (bots.length === 0) {
|
|
357
|
+
this.logger.warn('No Slack bot available for DM');
|
|
358
|
+
return undefined;
|
|
359
|
+
}
|
|
360
|
+
const client = this.getOrCreateClient(bots[0].appId);
|
|
361
|
+
if (!client)
|
|
362
|
+
return undefined;
|
|
363
|
+
try {
|
|
364
|
+
const openResp = await client.conversations.open({ users: platformUid });
|
|
365
|
+
const channelId = openResp.channel?.id;
|
|
366
|
+
if (!channelId) {
|
|
367
|
+
this.logger.warn(`Failed to open DM channel with Slack user ${platformUid}`);
|
|
368
|
+
return undefined;
|
|
369
|
+
}
|
|
370
|
+
return await this.sendMessage(channelId, content);
|
|
371
|
+
}
|
|
372
|
+
catch (err) {
|
|
373
|
+
this.logger.error(`Failed to send DM to Slack user ${platformUid}: ${(0, protocol_1.getErrorMessage)(err)}`);
|
|
374
|
+
return undefined;
|
|
375
|
+
}
|
|
376
|
+
}
|
|
316
377
|
async sendMessage(chatId, content) {
|
|
317
378
|
const binding = this.botRepo.findBindingByChatId(chatId);
|
|
318
379
|
const appId = binding
|
|
@@ -448,37 +509,52 @@ let SlackAdapter = class SlackAdapter {
|
|
|
448
509
|
}
|
|
449
510
|
}
|
|
450
511
|
}
|
|
451
|
-
async
|
|
452
|
-
const
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
512
|
+
async fetchThreadRootContent(channel, threadTs, appId) {
|
|
513
|
+
const client = this.getOrCreateClient(appId);
|
|
514
|
+
if (!client)
|
|
515
|
+
return null;
|
|
516
|
+
const resp = await client.conversations.replies({ channel, ts: threadTs, limit: 1 });
|
|
517
|
+
const rootMsg = resp?.messages?.[0];
|
|
518
|
+
if (!rootMsg?.text)
|
|
519
|
+
return null;
|
|
520
|
+
return rootMsg.text.trim() || null;
|
|
521
|
+
}
|
|
522
|
+
resolveDeveloperMention(text, botUserId) {
|
|
523
|
+
const mentionPattern = /<@(\w+)>/g;
|
|
524
|
+
let match;
|
|
525
|
+
while ((match = mentionPattern.exec(text)) !== null) {
|
|
526
|
+
const userId = match[1];
|
|
527
|
+
if (userId === botUserId)
|
|
528
|
+
continue;
|
|
529
|
+
const dev = this.developerRepo.resolveByPlatformUid(protocol_1.Platform.SLACK, userId);
|
|
530
|
+
if (dev) {
|
|
531
|
+
return { developerId: dev.id, name: dev.name };
|
|
532
|
+
}
|
|
533
|
+
return { unregisteredUserId: userId };
|
|
534
|
+
}
|
|
535
|
+
return null;
|
|
536
|
+
}
|
|
537
|
+
stripDeveloperMentions(text, botUserId) {
|
|
538
|
+
return text.replace(/<@(\w+)>/g, (match, userId) => {
|
|
539
|
+
if (userId === botUserId)
|
|
540
|
+
return match;
|
|
541
|
+
return '';
|
|
542
|
+
}).replace(/\s+/g, ' ').trim();
|
|
543
|
+
}
|
|
544
|
+
async sendTextMessage(channelId, text, appId) {
|
|
472
545
|
const client = this.getOrCreateClient(appId);
|
|
473
546
|
if (!client)
|
|
474
547
|
return;
|
|
475
548
|
try {
|
|
476
|
-
await client.chat.postMessage({ channel: channelId, text
|
|
549
|
+
await client.chat.postMessage({ channel: channelId, text });
|
|
477
550
|
}
|
|
478
551
|
catch (err) {
|
|
479
|
-
this.logger.error(`Failed to send
|
|
552
|
+
this.logger.error(`Failed to send text message: ${(0, protocol_1.getErrorMessage)(err)}`);
|
|
480
553
|
}
|
|
481
554
|
}
|
|
555
|
+
async sendHelpMessage(channelId, appId) {
|
|
556
|
+
await this.sendTextMessage(channelId, (0, help_text_1.buildHelpText)('Slack'), appId);
|
|
557
|
+
}
|
|
482
558
|
};
|
|
483
559
|
exports.SlackAdapter = SlackAdapter;
|
|
484
560
|
exports.SlackAdapter = SlackAdapter = SlackAdapter_1 = __decorate([
|