crewly 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config/roles/orchestrator/prompt.md +20 -2
- package/config/skills/agent/core/get-sops/SKILL.md +6 -2
- package/config/skills/agent/core/get-sops/execute.sh +26 -1
- package/config/skills/agent/core/get-team-norms/SKILL.md +69 -0
- package/config/skills/agent/core/update-sop/SKILL.md +73 -0
- package/config/skills/agent/core/update-sop/execute.sh +115 -0
- package/config/skills/agent/core/update-team-norm/SKILL.md +67 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +2 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +50 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +2 -0
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +6 -2
- package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +10 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/system.controller.js +2 -1
- package/dist/backend/backend/src/controllers/system/system.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts +17 -0
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +32 -0
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts +45 -0
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js +364 -46
- package/dist/backend/backend/src/controllers/wiki/wiki.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.js +9 -1
- package/dist/backend/backend/src/controllers/wiki/wiki.routes.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +44 -70
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +12 -6
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +13 -4
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +47 -11
- package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts +28 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js +49 -0
- package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +60 -2
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +93 -3
- package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts +25 -0
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js +33 -0
- package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +28 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +48 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +21 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +30 -0
- package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.d.ts +14 -0
- package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
- package/dist/backend/backend/src/services/index.d.ts +0 -1
- package/dist/backend/backend/src/services/index.d.ts.map +1 -1
- package/dist/backend/backend/src/services/index.js +0 -1
- package/dist/backend/backend/src/services/index.js.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts +26 -108
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js +26 -214
- package/dist/backend/backend/src/services/intent-task/intent-task-follow-up.service.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +11 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +36 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +10 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +21 -0
- package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.d.ts +12 -0
- package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack.service.js +53 -1
- package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
- package/dist/backend/backend/src/services/sop/sop.service.d.ts +10 -0
- package/dist/backend/backend/src/services/sop/sop.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/sop/sop.service.js +71 -10
- package/dist/backend/backend/src/services/sop/sop.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/sop-catalog.service.d.ts +83 -0
- package/dist/backend/backend/src/services/wiki/sop-catalog.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/sop-catalog.service.js +185 -0
- package/dist/backend/backend/src/services/wiki/sop-catalog.service.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js +12 -0
- package/dist/backend/backend/src/services/wiki/wiki-cleanup.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.d.ts +43 -0
- package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.js +67 -0
- package/dist/backend/backend/src/services/wiki/wiki-overlay.resolver.js.map +1 -0
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts +79 -19
- package/dist/backend/backend/src/services/wiki/wiki-search.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js +275 -106
- package/dist/backend/backend/src/services/wiki/wiki-search.service.js.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js +13 -0
- package/dist/backend/backend/src/services/wiki/wiki-workitem-bridge.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts +13 -0
- package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.js +43 -3
- package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
- package/dist/backend/backend/src/types/sop.types.d.ts +7 -0
- package/dist/backend/backend/src/types/sop.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/sop.types.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +7 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/cli/backend/src/types/sop.types.d.ts +7 -0
- package/dist/cli/backend/src/types/sop.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/sop.types.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +7 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/frontend/dist/assets/index-4099a91c.js +4961 -0
- package/frontend/dist/assets/index-44266b5d.css +42 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +1 -1
- package/frontend/dist/assets/index-068bb4f6.css +0 -42
- package/frontend/dist/assets/index-c24ceb15.js +0 -4960
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/wiki/wiki.routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"wiki.routes.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/wiki/wiki.routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAkCjC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAqCzC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @module controllers/wiki/wiki.routes
|
|
5
5
|
*/
|
|
6
6
|
import { Router } from 'express';
|
|
7
|
-
import { ingest, queryVault, queueAdd, queueList, queueClaim, queueClaimNext, queueProcess, queueSkip, queueStats, bookkeep, bookkeepTriggerNow, listVaults, getVaultTree, getPage, searchVault, getBacklinks, lintVault, getRecent, reflectTriggerNow, migrateScan, migrateApply, migrateOssSops, cleanupScan, cleanupApply, } from './wiki.controller.js';
|
|
7
|
+
import { ingest, queryVault, queueAdd, queueList, queueClaim, queueClaimNext, queueProcess, queueSkip, queueStats, bookkeep, bookkeepTriggerNow, listVaults, getVaultTree, getPage, searchVault, searchAllVaults, listSopCatalog, installSop, uninstallSop, writeOverlayPage, deleteOverlayPage, getBacklinks, lintVault, getRecent, reflectTriggerNow, migrateScan, migrateApply, migrateOssSops, cleanupScan, cleanupApply, } from './wiki.controller.js';
|
|
8
8
|
/**
|
|
9
9
|
* Creates the wiki router.
|
|
10
10
|
*
|
|
@@ -41,6 +41,14 @@ export function createWikiRouter() {
|
|
|
41
41
|
router.get('/tree', getVaultTree);
|
|
42
42
|
router.get('/page', getPage);
|
|
43
43
|
router.get('/search', searchVault);
|
|
44
|
+
router.get('/search-all', searchAllVaults);
|
|
45
|
+
// SOP catalog (marketplace): browse config/sops + install/uninstall per team.
|
|
46
|
+
router.get('/sop-catalog', listSopCatalog);
|
|
47
|
+
router.post('/sop-catalog/install', installSop);
|
|
48
|
+
router.post('/sop-catalog/uninstall', uninstallSop);
|
|
49
|
+
// Owner-authored overlay pages (team norms + custom SOPs).
|
|
50
|
+
router.post('/overlay-page', writeOverlayPage);
|
|
51
|
+
router.delete('/overlay-page', deleteOverlayPage);
|
|
44
52
|
router.get('/backlinks', getBacklinks);
|
|
45
53
|
router.get('/recent', getRecent);
|
|
46
54
|
router.post('/migrate/scan', migrateScan);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wiki.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/wiki/wiki.routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/B,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAClC,yEAAyE;IACzE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IACvC,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;IACzD,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IACvD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChC,yCAAyC;IACzC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAClC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7B,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"wiki.routes.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/wiki/wiki.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":";AAwCA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../backend/src/index.ts"],"names":[],"mappings":";AAwCA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAsIjD,qBAAa,YAAY;IACxB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAqE;IAEnF,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,sBAAsB,CAA0B;IACxD,OAAO,CAAC,4BAA4B,CAAgC;IACpE,OAAO,CAAC,uBAAuB,CAA2B;IAC1D,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAmB;IAC1C,OAAO,CAAC,mBAAmB,CAAuB;IAClD,OAAO,CAAC,qBAAqB,CAAyB;IACtD,OAAO,CAAC,wBAAwB,CAA4B;IAC5D,OAAO,CAAC,eAAe,CAAmB;IAC1C,qEAAqE;IACrE,OAAO,CAAC,qBAAqB,CAAsC;IACnE,kGAAkG;IAClG,OAAO,CAAC,sBAAsB,CAAuC;IAGrE,OAAO,CAAC,+BAA+B,CAAgD;IACvF,+FAA+F;IAC/F,OAAO,CAAC,oBAAoB,CAAqC;IACjE,8HAA8H;IAC9H,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,OAAO,CAAC,6BAA6B,CAA8C;IACnF,OAAO,CAAC,wBAAwB,CAAyC;IACzE,OAAO,CAAC,2BAA2B,CAA+B;IAClE,OAAO,CAAC,0BAA0B,CAA8B;IAChE,OAAO,CAAC,iBAAiB,CAAkC;IAC3D,OAAO,CAAC,kBAAkB,CAA0C;IAKpE,OAAO,CAAC,aAAa,CAAuE;IAC5F,OAAO,CAAC,gBAAgB,CAET;IAGf,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAA+B;gBAEnD,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IA2D3C,OAAO,CAAC,kBAAkB;IA6qB1B,OAAO,CAAC,mBAAmB;IAmD3B,OAAO,CAAC,eAAe;IA6HvB,OAAO,CAAC,kBAAkB;IAwBpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2pC5B;;;OAGG;YACW,2BAA2B;IA8BzC;;;OAGG;YACW,8BAA8B;IAsB5C;;;OAGG;YACW,gCAAgC;IAsB9C;;;OAGG;YACW,8BAA8B;IAsB5C;;;;OAIG;YACW,8BAA8B;IA2F5C;;;;;OAKG;YACW,iCAAiC;IAyJ/C;;;;OAIG;YACW,2BAA2B;YA0B3B,qBAAqB;YAsBrB,eAAe;YA4Ef,kBAAkB;IAgBhC,OAAO,CAAC,WAAW,CAAK;IAExB,OAAO,CAAC,sBAAsB;IAqD9B,OAAO,CAAC,qBAAqB;IAsC7B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA0D1B;;;;;;;;;OASG;IACH,OAAO,CAAC,qBAAqB;IAqH7B,OAAO,CAAC,cAAc;IAchB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiT/B,SAAS,IAAI,aAAa;CAG1B;AAeD,eAAe,YAAY,CAAC"}
|
|
@@ -25,7 +25,6 @@ import { getSettingsService } from './services/settings/index.js';
|
|
|
25
25
|
import { MemoryService } from './services/memory/memory.service.js';
|
|
26
26
|
import { getImprovementStartupService } from './services/orchestrator/improvement-startup.service.js';
|
|
27
27
|
import { initializeSlackIfConfigured, shutdownSlack } from './services/slack/index.js';
|
|
28
|
-
import { resolveTeamByIdOrSlug, slugifyTeamName } from './services/workflow/team-identifier-resolver.js';
|
|
29
28
|
import { initializeWhatsAppIfConfigured, shutdownWhatsApp } from './services/whatsapp/index.js';
|
|
30
29
|
import { initializeGoogleChatIfConfigured } from './services/messaging/google-chat-initializer.js';
|
|
31
30
|
import { initializeTelegramIfConfigured, shutdownTelegram } from './services/telegram/index.js';
|
|
@@ -1283,6 +1282,14 @@ export class CrewlyServer {
|
|
|
1283
1282
|
// needs the list of session names for a given channel
|
|
1284
1283
|
// to fan-out a user message to every huddle member.
|
|
1285
1284
|
huddleMembersFor: (channelId) => chatService.queryHuddleMembersForDispatch(channelId),
|
|
1285
|
+
// Activate-on-send: messaging an offline agent wakes it, then
|
|
1286
|
+
// the dispatcher retries delivery. User-initiated, so it uses
|
|
1287
|
+
// the wake-gate-free activation path.
|
|
1288
|
+
activateAgent: async (agentSession) => {
|
|
1289
|
+
const { activateAgentBySession } = await import('./controllers/team/team.controller.js');
|
|
1290
|
+
const res = await activateAgentBySession(this.apiController, agentSession);
|
|
1291
|
+
return res.success;
|
|
1292
|
+
},
|
|
1286
1293
|
});
|
|
1287
1294
|
this.chatV2Gateway = chatGateway;
|
|
1288
1295
|
this.chatV2Dispatcher = chatDispatcher;
|
|
@@ -1552,82 +1559,49 @@ export class CrewlyServer {
|
|
|
1552
1559
|
error: err instanceof Error ? err.message : String(err),
|
|
1553
1560
|
});
|
|
1554
1561
|
}
|
|
1555
|
-
// #286:
|
|
1562
|
+
// #286/#678: Cron fires ENQUEUE a WorkItem into the task pool instead
|
|
1563
|
+
// of writing straight to the agent's terminal. The pool's wake-mesh
|
|
1564
|
+
// (WorkItemDispatchSubscriber push + AgentAutoClaim pull + reconciler
|
|
1565
|
+
// self-heal) then assigns + delivers it — so a cron firing for an
|
|
1566
|
+
// OFFLINE agent becomes a durable queued item that gets woken, instead
|
|
1567
|
+
// of being silently dropped (#678). No agent-status/auto-start callbacks
|
|
1568
|
+
// are wired: the cron now ALWAYS enqueues regardless of liveness, and
|
|
1569
|
+
// the pool owns online/offline delivery + recovery.
|
|
1556
1570
|
try {
|
|
1557
1571
|
const cronTaskService = CronTaskService.getInstance();
|
|
1558
|
-
const
|
|
1559
|
-
const
|
|
1572
|
+
const { TaskPoolService } = await import('./services/task-pool/task-pool.service.js');
|
|
1573
|
+
const { createWorkItem } = await import('./types/v2/work-item.types.js');
|
|
1560
1574
|
cronTaskService.setExecutionCallback(async (task) => {
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
}
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
availableSlugs: teams.slice(0, 10).map((t) => slugifyTeamName(t.name)),
|
|
1587
|
-
hint: 'Set targetTeamId to either the team UUID or one of availableSlugs (lowercase, spaces→-)',
|
|
1588
|
-
});
|
|
1589
|
-
return false;
|
|
1590
|
-
}
|
|
1591
|
-
const member = team.members.find((m) => m.sessionName === sessionName);
|
|
1592
|
-
if (!member)
|
|
1593
|
-
return false;
|
|
1594
|
-
// #286 Root Cause C: treat both 'active' and 'started' as online
|
|
1595
|
-
return member.agentStatus === 'active' || member.agentStatus === 'started';
|
|
1596
|
-
});
|
|
1597
|
-
cronTaskService.setAgentStartCallback(async (sessionName, teamId) => {
|
|
1598
|
-
try {
|
|
1599
|
-
const teams = await storageRef.getTeams();
|
|
1600
|
-
const team = resolveTeamByIdOrSlug(teams, teamId);
|
|
1601
|
-
if (!team) {
|
|
1602
|
-
this.logger.warn('CronTask auto-start: targetTeamId resolves to no team', {
|
|
1603
|
-
sessionName,
|
|
1604
|
-
targetTeamId: teamId,
|
|
1605
|
-
availableSlugs: teams.slice(0, 10).map((t) => slugifyTeamName(t.name)),
|
|
1606
|
-
hint: 'Set targetTeamId to either the team UUID or one of availableSlugs (lowercase, spaces→-)',
|
|
1607
|
-
});
|
|
1608
|
-
return false;
|
|
1609
|
-
}
|
|
1610
|
-
const member = team.members.find((m) => m.sessionName === sessionName);
|
|
1611
|
-
if (!member)
|
|
1612
|
-
return false;
|
|
1613
|
-
await registrationRef.createAgentSession({
|
|
1614
|
-
sessionName: member.sessionName,
|
|
1615
|
-
role: member.role,
|
|
1616
|
-
// Use the resolved team's UUID — not the user-supplied identifier
|
|
1617
|
-
// — so downstream agent-registration always sees the canonical id.
|
|
1618
|
-
teamId: team.id,
|
|
1619
|
-
memberId: member.id,
|
|
1620
|
-
});
|
|
1621
|
-
return true;
|
|
1622
|
-
}
|
|
1623
|
-
catch {
|
|
1624
|
-
return false;
|
|
1625
|
-
}
|
|
1575
|
+
// Deterministic id per fire slot: re-evaluating the same due slot
|
|
1576
|
+
// is a no-op (addToPool dedups by id), but each scheduled
|
|
1577
|
+
// occurrence is a fresh WorkItem. `task.nextRunAt` is still the
|
|
1578
|
+
// firing slot here — the service advances it AFTER this returns.
|
|
1579
|
+
const slot = task.nextRunAt ?? new Date().toISOString();
|
|
1580
|
+
const workItem = createWorkItem({
|
|
1581
|
+
id: `cron-${task.id}-${slot}`,
|
|
1582
|
+
type: 'cron_run',
|
|
1583
|
+
owner: 'orchestrator',
|
|
1584
|
+
target: task.targetAgent,
|
|
1585
|
+
title: `Cron: ${task.taskDescription.slice(0, 80)}`,
|
|
1586
|
+
description: task.taskDescription,
|
|
1587
|
+
metadata: {
|
|
1588
|
+
source: 'cron',
|
|
1589
|
+
cronTaskId: task.id,
|
|
1590
|
+
targetTeamId: task.targetTeamId,
|
|
1591
|
+
firedSlot: slot,
|
|
1592
|
+
},
|
|
1593
|
+
});
|
|
1594
|
+
await TaskPoolService.getInstance().addToPool(workItem);
|
|
1595
|
+
this.logger.info('Cron task enqueued as WorkItem', {
|
|
1596
|
+
id: task.id,
|
|
1597
|
+
workItemId: workItem.id,
|
|
1598
|
+
target: task.targetAgent,
|
|
1599
|
+
});
|
|
1626
1600
|
});
|
|
1627
1601
|
// Self-heal stale nextRunAt values from pre-timezone-fix versions
|
|
1628
1602
|
await cronTaskService.recalculateAllNextRunTimes();
|
|
1629
1603
|
cronTaskService.start();
|
|
1630
|
-
this.logger.info('CronTaskService started');
|
|
1604
|
+
this.logger.info('CronTaskService started (cron fires → task pool WorkItems)');
|
|
1631
1605
|
}
|
|
1632
1606
|
catch (cronErr) {
|
|
1633
1607
|
this.logger.warn('CronTaskService initialization failed (non-critical)', {
|