@evermore.work/server 2026.515.0-canary.0 → 2026.517.0-canary.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.
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-CYQ764tf.js → _basePickBy-CLjw_wL0.js} +1 -1
  30. package/ui-dist/assets/{_baseUniq-D7ra-4p2.js → _baseUniq-KwVK1FpI.js} +1 -1
  31. package/ui-dist/assets/{arc-Cea0WpAo.js → arc-8oZE5Bh6.js} +1 -1
  32. package/ui-dist/assets/{architectureDiagram-VXUJARFQ-DS539gJH.js → architectureDiagram-VXUJARFQ-cPCKF5LS.js} +1 -1
  33. package/ui-dist/assets/{blockDiagram-VD42YOAC-COPgRMlG.js → blockDiagram-VD42YOAC-jqSswRjV.js} +1 -1
  34. package/ui-dist/assets/{c4Diagram-YG6GDRKO-B8QWPYCg.js → c4Diagram-YG6GDRKO-VMH0xqNQ.js} +1 -1
  35. package/ui-dist/assets/channel-D2Ym0o1n.js +1 -0
  36. package/ui-dist/assets/{chunk-4BX2VUAB-rA1_76wO.js → chunk-4BX2VUAB-DuF3RiME.js} +1 -1
  37. package/ui-dist/assets/{chunk-55IACEB6-CSFl7LNg.js → chunk-55IACEB6-DFQ9A7dI.js} +1 -1
  38. package/ui-dist/assets/{chunk-B4BG7PRW-DWZPuAg2.js → chunk-B4BG7PRW-BNslSPSi.js} +1 -1
  39. package/ui-dist/assets/{chunk-DI55MBZ5-W-fxWKu-.js → chunk-DI55MBZ5-DJNso3-1.js} +1 -1
  40. package/ui-dist/assets/{chunk-FMBD7UC4-BeLidyhJ.js → chunk-FMBD7UC4-D2qrYxn_.js} +1 -1
  41. package/ui-dist/assets/{chunk-QN33PNHL-DAkb1_ST.js → chunk-QN33PNHL-DTBM8V74.js} +1 -1
  42. package/ui-dist/assets/{chunk-QZHKN3VN-BOl35gaK.js → chunk-QZHKN3VN-BHZCXCYC.js} +1 -1
  43. package/ui-dist/assets/{chunk-TZMSLE5B-CqU7wC3w.js → chunk-TZMSLE5B-YWN6gGxi.js} +1 -1
  44. package/ui-dist/assets/classDiagram-2ON5EDUG-DTBZSTX-.js +1 -0
  45. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-DTBZSTX-.js +1 -0
  46. package/ui-dist/assets/clone-BnZQ4Q3B.js +1 -0
  47. package/ui-dist/assets/{cose-bilkent-S5V4N54A-e07Qm089.js → cose-bilkent-S5V4N54A-DAXpHK3y.js} +1 -1
  48. package/ui-dist/assets/{dagre-6UL2VRFP-CpuAeAze.js → dagre-6UL2VRFP-BAOLq-AR.js} +1 -1
  49. package/ui-dist/assets/{diagram-PSM6KHXK-CeOVta_y.js → diagram-PSM6KHXK-tocAqnic.js} +1 -1
  50. package/ui-dist/assets/{diagram-QEK2KX5R-D_exJTjU.js → diagram-QEK2KX5R-CbkkiYdQ.js} +1 -1
  51. package/ui-dist/assets/{diagram-S2PKOQOG-4q-2fhqZ.js → diagram-S2PKOQOG-B9MyuGQ7.js} +1 -1
  52. package/ui-dist/assets/{erDiagram-Q2GNP2WA-CH5wyu_X.js → erDiagram-Q2GNP2WA-DN6_RaIN.js} +1 -1
  53. package/ui-dist/assets/{flowDiagram-NV44I4VS-CFU0Tm0H.js → flowDiagram-NV44I4VS-B-sSto2y.js} +1 -1
  54. package/ui-dist/assets/{ganttDiagram-JELNMOA3-DhtLZe7_.js → ganttDiagram-JELNMOA3-CuqNpg-X.js} +1 -1
  55. package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-D2TxXve7.js → gitGraphDiagram-V2S2FVAM-CF1XPHne.js} +1 -1
  56. package/ui-dist/assets/{graph-CXblQ4SQ.js → graph-BpwEQ43-.js} +1 -1
  57. package/ui-dist/assets/{index-ZLSMCk6Q.js → index-8wwbNsz8.js} +1 -1
  58. package/ui-dist/assets/{index-BEfAe6bz.js → index-B5sPpqPN.js} +1 -1
  59. package/ui-dist/assets/{index-DHi1a2tB.js → index-BBg02uqZ.js} +154 -154
  60. package/ui-dist/assets/{index-DSMRVLO-.js → index-BC-F8pma.js} +1 -1
  61. package/ui-dist/assets/{index-Br4fdn-K.js → index-BQYZFgXo.js} +1 -1
  62. package/ui-dist/assets/{index-BqxOoDoi.js → index-BoNTGe37.js} +1 -1
  63. package/ui-dist/assets/{index-CJ9FoO2T.js → index-BtjgZSM0.js} +1 -1
  64. package/ui-dist/assets/index-C7XSlsof.css +1 -0
  65. package/ui-dist/assets/{index-DmNphVDd.js → index-CAki4z5J.js} +1 -1
  66. package/ui-dist/assets/{index-B0uAip_K.js → index-CCuwp5Mo.js} +1 -1
  67. package/ui-dist/assets/{index-v3wBHi4R.js → index-CFnI0Q4S.js} +1 -1
  68. package/ui-dist/assets/{index-4I8pRU0Z.js → index-CLX-fUfN.js} +1 -1
  69. package/ui-dist/assets/{index-owENXWCA.js → index-CiNG0PG2.js} +1 -1
  70. package/ui-dist/assets/{index-B_PO2YkZ.js → index-CwI_sqFK.js} +1 -1
  71. package/ui-dist/assets/{index-DOUR3hpy.js → index-D7tsSRsP.js} +1 -1
  72. package/ui-dist/assets/{index-bQNV-vrl.js → index-D8zjj6aT.js} +1 -1
  73. package/ui-dist/assets/{index-Dt4ZvFHI.js → index-DAMiJhQr.js} +1 -1
  74. package/ui-dist/assets/{index-D65Bmpse.js → index-DQppPiOz.js} +1 -1
  75. package/ui-dist/assets/{index-C0v5tWOU.js → index-DSa7KBS7.js} +1 -1
  76. package/ui-dist/assets/{index-DpOZGtp5.js → index-Dc8t_jJI.js} +1 -1
  77. package/ui-dist/assets/{index-C2jCumFc.js → index-DfMi4Z_s.js} +1 -1
  78. package/ui-dist/assets/{index-DnBibVUR.js → index-JKsszIc7.js} +1 -1
  79. package/ui-dist/assets/{index-b56qYjhL.js → index-O1o0xeIY.js} +1 -1
  80. package/ui-dist/assets/{index-RQPX0urm.js → index-mx6xg01m.js} +1 -1
  81. package/ui-dist/assets/{infoDiagram-HS3SLOUP-DyJG0KoS.js → infoDiagram-HS3SLOUP-B8q0MKKa.js} +1 -1
  82. package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-CBml-JBz.js → journeyDiagram-XKPGCS4Q-B2cMCr3o.js} +1 -1
  83. package/ui-dist/assets/{kanban-definition-3W4ZIXB7-SHLU9sNO.js → kanban-definition-3W4ZIXB7-Ctqw1ZiF.js} +1 -1
  84. package/ui-dist/assets/{layout-BnOudPaD.js → layout-E8_0U0S2.js} +1 -1
  85. package/ui-dist/assets/{linear-D8eBbXvE.js → linear-2Y8V7adH.js} +1 -1
  86. package/ui-dist/assets/{mermaid.core-DWiZjjJY.js → mermaid.core-Buv7jM-a.js} +4 -4
  87. package/ui-dist/assets/{mindmap-definition-VGOIOE7T-DHmVyuPd.js → mindmap-definition-VGOIOE7T-CTzTWajQ.js} +1 -1
  88. package/ui-dist/assets/{pieDiagram-ADFJNKIX-UXEmMNcx.js → pieDiagram-ADFJNKIX-B_0i7zwt.js} +1 -1
  89. package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-BI1lOI_q.js → quadrantDiagram-AYHSOK5B-g3KXyyuY.js} +1 -1
  90. package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-DeWo8HaQ.js → requirementDiagram-UZGBJVZJ-DyypU9tf.js} +1 -1
  91. package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-CEySh8c4.js → sankeyDiagram-TZEHDZUN-B0PXWwH7.js} +1 -1
  92. package/ui-dist/assets/{sequenceDiagram-WL72ISMW-8FGKOqUz.js → sequenceDiagram-WL72ISMW-TUGsVinf.js} +1 -1
  93. package/ui-dist/assets/{stateDiagram-FKZM4ZOC-D8xbiEcM.js → stateDiagram-FKZM4ZOC-B-81hWWR.js} +1 -1
  94. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-O1MtLQoU.js +1 -0
  95. package/ui-dist/assets/{timeline-definition-IT6M3QCI-BwNzsT4R.js → timeline-definition-IT6M3QCI-F8rT1qCc.js} +1 -1
  96. package/ui-dist/assets/{treemap-GDKQZRPO-TrW2hWp_.js → treemap-GDKQZRPO-BLjhHWip.js} +1 -1
  97. package/ui-dist/assets/{xychartDiagram-PRI3JC2R-CczDCIXc.js → xychartDiagram-PRI3JC2R-BodTR4ax.js} +1 -1
  98. package/ui-dist/index.html +2 -2
  99. package/ui-dist/assets/channel-DrMZC0Ss.js +0 -1
  100. package/ui-dist/assets/classDiagram-2ON5EDUG-CuC6YGs-.js +0 -1
  101. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-CuC6YGs-.js +0 -1
  102. package/ui-dist/assets/clone-wzmxJAGH.js +0 -1
  103. package/ui-dist/assets/index-BOZP7h9L.css +0 -1
  104. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-UKn3ADXg.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);