@evermore.work/server 2026.514.0-canary.0 → 2026.515.0-canary.1

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.
Files changed (104) hide show
  1. package/dist/routes/issues.d.ts.map +1 -1
  2. package/dist/routes/issues.js +43 -0
  3. package/dist/routes/issues.js.map +1 -1
  4. package/dist/services/heartbeat.d.ts.map +1 -1
  5. package/dist/services/heartbeat.js +7 -2
  6. package/dist/services/heartbeat.js.map +1 -1
  7. package/dist/services/issue-thread-interactions.test.js +1 -1
  8. package/dist/services/issue-thread-interactions.test.js.map +1 -1
  9. package/dist/services/issues.d.ts +3 -0
  10. package/dist/services/issues.d.ts.map +1 -1
  11. package/dist/services/issues.js +845 -14
  12. package/dist/services/issues.js.map +1 -1
  13. package/dist/services/plugin-loader.d.ts +8 -0
  14. package/dist/services/plugin-loader.d.ts.map +1 -1
  15. package/dist/services/plugin-loader.js +26 -4
  16. package/dist/services/plugin-loader.js.map +1 -1
  17. package/dist/services/plugin-worker-manager.js +2 -2
  18. package/dist/services/plugin-worker-manager.js.map +1 -1
  19. package/dist/services/recovery/service.d.ts +6 -6
  20. package/dist/services/session-workspace-cwd.d.ts +2 -0
  21. package/dist/services/session-workspace-cwd.d.ts.map +1 -0
  22. package/dist/services/session-workspace-cwd.js +24 -0
  23. package/dist/services/session-workspace-cwd.js.map +1 -0
  24. package/dist/services/session-workspace-cwd.test.d.ts +2 -0
  25. package/dist/services/session-workspace-cwd.test.d.ts.map +1 -0
  26. package/dist/services/session-workspace-cwd.test.js +25 -0
  27. package/dist/services/session-workspace-cwd.test.js.map +1 -0
  28. package/package.json +14 -14
  29. package/ui-dist/assets/{_basePickBy-D-jhdvBK.js → _basePickBy-DO9Z4bOp.js} +1 -1
  30. package/ui-dist/assets/{_baseUniq-BgiGnhvw.js → _baseUniq-aP00T3oZ.js} +1 -1
  31. package/ui-dist/assets/{arc-2DaRAgY5.js → arc-HlYAKbZH.js} +1 -1
  32. package/ui-dist/assets/{architectureDiagram-VXUJARFQ-Ckg8I_Hb.js → architectureDiagram-VXUJARFQ-DdFturvY.js} +1 -1
  33. package/ui-dist/assets/{blockDiagram-VD42YOAC-iFdAlkhO.js → blockDiagram-VD42YOAC-ItWM97pf.js} +1 -1
  34. package/ui-dist/assets/{c4Diagram-YG6GDRKO-COM5HxQz.js → c4Diagram-YG6GDRKO-DlYlvsjK.js} +1 -1
  35. package/ui-dist/assets/channel-Dy06ZP82.js +1 -0
  36. package/ui-dist/assets/{chunk-4BX2VUAB-BjuJzOTM.js → chunk-4BX2VUAB-CdTXD9zN.js} +1 -1
  37. package/ui-dist/assets/{chunk-55IACEB6-Dj5ia904.js → chunk-55IACEB6-Cld3rd3i.js} +1 -1
  38. package/ui-dist/assets/{chunk-B4BG7PRW-C-eRLbni.js → chunk-B4BG7PRW-Q1gBniFR.js} +1 -1
  39. package/ui-dist/assets/{chunk-DI55MBZ5-BdeogsZM.js → chunk-DI55MBZ5-BDkw59ZI.js} +1 -1
  40. package/ui-dist/assets/{chunk-FMBD7UC4-zmEBXd9M.js → chunk-FMBD7UC4-BmlzEXGl.js} +1 -1
  41. package/ui-dist/assets/{chunk-QN33PNHL-0XA6BL6D.js → chunk-QN33PNHL-H9Kq-vRW.js} +1 -1
  42. package/ui-dist/assets/{chunk-QZHKN3VN-tvz9XrbZ.js → chunk-QZHKN3VN-zrJMHPuP.js} +1 -1
  43. package/ui-dist/assets/{chunk-TZMSLE5B-BQct44RY.js → chunk-TZMSLE5B-BE5zIgej.js} +1 -1
  44. package/ui-dist/assets/classDiagram-2ON5EDUG-DkMgOhs0.js +1 -0
  45. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-DkMgOhs0.js +1 -0
  46. package/ui-dist/assets/clone-CEIy6mUF.js +1 -0
  47. package/ui-dist/assets/{cose-bilkent-S5V4N54A-Ci0DKSg9.js → cose-bilkent-S5V4N54A-BS2M0fmn.js} +1 -1
  48. package/ui-dist/assets/{dagre-6UL2VRFP-DrMucNG7.js → dagre-6UL2VRFP-Bqa7X1y0.js} +1 -1
  49. package/ui-dist/assets/{diagram-PSM6KHXK-A73_XOgv.js → diagram-PSM6KHXK-DacALBb7.js} +1 -1
  50. package/ui-dist/assets/{diagram-QEK2KX5R-ZK5UT-YN.js → diagram-QEK2KX5R-C9sDwsVJ.js} +1 -1
  51. package/ui-dist/assets/{diagram-S2PKOQOG-Cl718XM0.js → diagram-S2PKOQOG-BaqZ-WOT.js} +1 -1
  52. package/ui-dist/assets/{erDiagram-Q2GNP2WA-CBa47bgv.js → erDiagram-Q2GNP2WA-DqniVeHf.js} +1 -1
  53. package/ui-dist/assets/{flowDiagram-NV44I4VS-Dya9VRmO.js → flowDiagram-NV44I4VS-CJLqBBEi.js} +1 -1
  54. package/ui-dist/assets/{ganttDiagram-JELNMOA3-Cw07-mAT.js → ganttDiagram-JELNMOA3-X2whglKf.js} +1 -1
  55. package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-Dvl0g7Ws.js → gitGraphDiagram-V2S2FVAM-CBtbZ5jr.js} +1 -1
  56. package/ui-dist/assets/{graph-CRGs6Cm1.js → graph-DaHo0hL7.js} +1 -1
  57. package/ui-dist/assets/{index-HfQVj6CX.js → index-1WfmGaYd.js} +1 -1
  58. package/ui-dist/assets/{index-n2BkbZ3s.js → index-B9EgJSwA.js} +1 -1
  59. package/ui-dist/assets/{index-CTE8qpuM.js → index-BHK-2Saa.js} +1 -1
  60. package/ui-dist/assets/{index-DXZpqEnG.js → index-BIPAO4mn.js} +154 -154
  61. package/ui-dist/assets/{index-DUFmWbRj.js → index-BRo90BuE.js} +1 -1
  62. package/ui-dist/assets/index-C7XSlsof.css +1 -0
  63. package/ui-dist/assets/{index-BeBfrMz9.js → index-CGPSGFW2.js} +1 -1
  64. package/ui-dist/assets/{index-DlgAdwmq.js → index-CSm_hwMf.js} +1 -1
  65. package/ui-dist/assets/{index-By1WI9aj.js → index-CltxQz_J.js} +1 -1
  66. package/ui-dist/assets/{index-DBcppS3t.js → index-Cp2YJp5S.js} +1 -1
  67. package/ui-dist/assets/{index-CDFf5Yfs.js → index-Cy2EmJOb.js} +1 -1
  68. package/ui-dist/assets/{index-L3VQ_UyI.js → index-D3wDBQ_w.js} +1 -1
  69. package/ui-dist/assets/{index-kquw5zAL.js → index-DIf610dR.js} +1 -1
  70. package/ui-dist/assets/{index-BB2dtTsp.js → index-DLZtjrrB.js} +1 -1
  71. package/ui-dist/assets/{index-DVQ4mQvQ.js → index-DakY5q2t.js} +1 -1
  72. package/ui-dist/assets/{index-BYEeDBr6.js → index-DdyKvJKA.js} +1 -1
  73. package/ui-dist/assets/{index-C7b6qo2F.js → index-Dh_-gZjn.js} +1 -1
  74. package/ui-dist/assets/{index-CT6L8cyW.js → index-ETcA1tdF.js} +1 -1
  75. package/ui-dist/assets/{index-D-1326BZ.js → index-KupntUzs.js} +1 -1
  76. package/ui-dist/assets/{index-Qd8DnouI.js → index-__9_bdSA.js} +1 -1
  77. package/ui-dist/assets/{index-BRHbXXqy.js → index-hlLQdFla.js} +1 -1
  78. package/ui-dist/assets/{index-BITrH-Ix.js → index-ug2W4IYs.js} +1 -1
  79. package/ui-dist/assets/{index-DRcU0-A-.js → index-vGB4Wk4z.js} +1 -1
  80. package/ui-dist/assets/{index-DYqZ_CKy.js → index-vz1qcePO.js} +1 -1
  81. package/ui-dist/assets/{infoDiagram-HS3SLOUP-DoOZPIoa.js → infoDiagram-HS3SLOUP-BLQ-lc_4.js} +1 -1
  82. package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-_Kj32CBd.js → journeyDiagram-XKPGCS4Q-BP1mfAZg.js} +1 -1
  83. package/ui-dist/assets/{kanban-definition-3W4ZIXB7-DSlC3gd0.js → kanban-definition-3W4ZIXB7-Ci3mkLxf.js} +1 -1
  84. package/ui-dist/assets/{layout-BK9N89ic.js → layout-BNaQBqtl.js} +1 -1
  85. package/ui-dist/assets/{linear-DU8l53YE.js → linear-BhVafP3H.js} +1 -1
  86. package/ui-dist/assets/{mermaid.core-CU5MSNXU.js → mermaid.core-DhsBF08N.js} +4 -4
  87. package/ui-dist/assets/{mindmap-definition-VGOIOE7T-CJkeo4Ia.js → mindmap-definition-VGOIOE7T-Dpvm46UT.js} +1 -1
  88. package/ui-dist/assets/{pieDiagram-ADFJNKIX-BqBNYE4B.js → pieDiagram-ADFJNKIX-Dd01Yj9z.js} +1 -1
  89. package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-C6MVlh1C.js → quadrantDiagram-AYHSOK5B-DKe05qKf.js} +1 -1
  90. package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-C0uzXIGF.js → requirementDiagram-UZGBJVZJ-B2MGfTuF.js} +1 -1
  91. package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-CbmrEzLu.js → sankeyDiagram-TZEHDZUN-85mIqLY0.js} +1 -1
  92. package/ui-dist/assets/{sequenceDiagram-WL72ISMW-lJlrCDfT.js → sequenceDiagram-WL72ISMW-DoxTv16E.js} +1 -1
  93. package/ui-dist/assets/{stateDiagram-FKZM4ZOC-DoMKgHqh.js → stateDiagram-FKZM4ZOC-BI3kBGXf.js} +1 -1
  94. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-BVAtCHqG.js +1 -0
  95. package/ui-dist/assets/{timeline-definition-IT6M3QCI-BWcC0khN.js → timeline-definition-IT6M3QCI-Daqhi7l9.js} +1 -1
  96. package/ui-dist/assets/{treemap-GDKQZRPO-CtB-bLrU.js → treemap-GDKQZRPO-CB_PUpOx.js} +1 -1
  97. package/ui-dist/assets/{xychartDiagram-PRI3JC2R-BPTfNtGA.js → xychartDiagram-PRI3JC2R-BnArsW92.js} +1 -1
  98. package/ui-dist/index.html +2 -2
  99. package/ui-dist/assets/channel-lI4wkM_Z.js +0 -1
  100. package/ui-dist/assets/classDiagram-2ON5EDUG-BMQEu2Zi.js +0 -1
  101. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-BMQEu2Zi.js +0 -1
  102. package/ui-dist/assets/clone-BqfkzWV0.js +0 -1
  103. package/ui-dist/assets/index-BOZP7h9L.css +0 -1
  104. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DeW0SZN7.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAS5C,OAAO,EA8BL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA8C1D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,0CAA0C,CAAC;AASlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAShF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtF,CAAC;AA2qBF,wBAAgB,WAAW,CACzB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE;IACJ,qBAAqB,CAAC,EAAE;QACtB,0BAA0B,CAAC,KAAK,CAAC,EAAE;YACjC,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,IAAI,CAAC;SACZ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CACtC,8CA+8HP"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,mBAAmB,CAAC;AAS5C,OAAO,EA8BL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI3B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA8C1D,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,0CAA0C,CAAC;AASlD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAShF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtF,CAAC;AA2qBF,wBAAgB,WAAW,CACzB,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,cAAc,EACvB,IAAI,GAAE;IACJ,qBAAqB,CAAC,EAAE;QACtB,0BAA0B,CAAC,KAAK,CAAC,EAAE;YACjC,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,GAAG,CAAC,EAAE,IAAI,CAAC;SACZ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CACtC,8CAggIP"}
@@ -1061,6 +1061,7 @@ export function issueRoutes(db, storage, opts = {}) {
1061
1061
  const parsedOffset = rawOffset !== undefined && /^\d+$/.test(rawOffset)
1062
1062
  ? Number.parseInt(rawOffset, 10)
1063
1063
  : null;
1064
+ const attention = req.query.attention;
1064
1065
  if (assigneeUserFilterRaw === "me" && (!assigneeUserId || req.actor.type !== "board")) {
1065
1066
  res.status(403).json({ error: "assigneeUserId=me requires board authentication" });
1066
1067
  return;
@@ -1077,6 +1078,10 @@ export function issueRoutes(db, storage, opts = {}) {
1077
1078
  res.status(403).json({ error: "unreadForUserId=me requires board authentication" });
1078
1079
  return;
1079
1080
  }
1081
+ if (attention !== undefined && attention !== "blocked") {
1082
+ res.status(400).json({ error: "attention must be 'blocked' when provided" });
1083
+ return;
1084
+ }
1080
1085
  if (rawLimit !== undefined && (parsedLimit === null || !Number.isInteger(parsedLimit) || parsedLimit <= 0)) {
1081
1086
  res.status(400).json({ error: `limit must be a positive integer up to ${ISSUE_LIST_MAX_LIMIT}` });
1082
1087
  return;
@@ -1087,6 +1092,7 @@ export function issueRoutes(db, storage, opts = {}) {
1087
1092
  }
1088
1093
  const offset = parsedOffset ?? 0;
1089
1094
  const result = await svc.list(companyId, {
1095
+ attention: attention === "blocked" ? "blocked" : undefined,
1090
1096
  status: req.query.status,
1091
1097
  assigneeAgentId: req.query.assigneeAgentId,
1092
1098
  participantAgentId: req.query.participantAgentId,
@@ -1107,6 +1113,7 @@ export function issueRoutes(db, storage, opts = {}) {
1107
1113
  excludeRoutineExecutions: req.query.excludeRoutineExecutions === "true" || req.query.excludeRoutineExecutions === "1",
1108
1114
  includePluginOperations: req.query.includePluginOperations === "true" || req.query.includePluginOperations === "1",
1109
1115
  includeBlockedBy: req.query.includeBlockedBy === "true" || req.query.includeBlockedBy === "1",
1116
+ includeBlockedInboxAttention: req.query.includeBlockedInboxAttention === "true" || req.query.includeBlockedInboxAttention === "1",
1110
1117
  q: req.query.q,
1111
1118
  limit,
1112
1119
  offset,
@@ -1122,6 +1129,42 @@ export function issueRoutes(db, storage, opts = {}) {
1122
1129
  activeRecoveryAction: recoveryActionByIssue.get(issue.id) ?? null,
1123
1130
  })));
1124
1131
  });
1132
+ router.get("/companies/:companyId/issues/count", async (req, res) => {
1133
+ const companyId = req.params.companyId;
1134
+ assertCompanyAccess(req, companyId);
1135
+ const attention = req.query.attention;
1136
+ if (attention !== "blocked") {
1137
+ res.status(400).json({ error: "issues/count currently requires attention=blocked" });
1138
+ return;
1139
+ }
1140
+ if (req.query.limit !== undefined || req.query.offset !== undefined) {
1141
+ res.status(400).json({ error: "issues/count does not accept limit or offset" });
1142
+ return;
1143
+ }
1144
+ const count = await svc.count(companyId, {
1145
+ attention: "blocked",
1146
+ status: req.query.status,
1147
+ assigneeAgentId: req.query.assigneeAgentId,
1148
+ participantAgentId: req.query.participantAgentId,
1149
+ assigneeUserId: req.query.assigneeUserId,
1150
+ projectId: req.query.projectId,
1151
+ workspaceId: req.query.workspaceId,
1152
+ executionWorkspaceId: req.query.executionWorkspaceId,
1153
+ parentId: req.query.parentId,
1154
+ descendantOf: req.query.descendantOf,
1155
+ labelId: req.query.labelId,
1156
+ originKind: req.query.originKind,
1157
+ originKindPrefix: req.query.originKindPrefix,
1158
+ originId: req.query.originId,
1159
+ includeRoutineExecutions: req.query.includeRoutineExecutions === "true" || req.query.includeRoutineExecutions === "1",
1160
+ excludeRoutineExecutions: req.query.excludeRoutineExecutions === "true" || req.query.excludeRoutineExecutions === "1",
1161
+ includePluginOperations: req.query.includePluginOperations === "true" || req.query.includePluginOperations === "1",
1162
+ includeBlockedBy: true,
1163
+ includeBlockedInboxAttention: true,
1164
+ q: req.query.q,
1165
+ });
1166
+ res.json({ count });
1167
+ });
1125
1168
  router.get("/companies/:companyId/labels", async (req, res) => {
1126
1169
  const companyId = req.params.companyId;
1127
1170
  assertCompanyAccess(req, companyId);