@paperclipai/server 2026.513.0-canary.2 → 2026.513.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/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +43 -0
- package/dist/routes/issues.js.map +1 -1
- package/dist/services/issues.d.ts +3 -0
- package/dist/services/issues.d.ts.map +1 -1
- package/dist/services/issues.js +820 -1
- package/dist/services/issues.js.map +1 -1
- package/dist/services/recovery/service.d.ts +6 -6
- package/package.json +14 -14
- package/ui-dist/assets/{_basePickBy-Cl97GiIS.js → _basePickBy-I3TN64W0.js} +1 -1
- package/ui-dist/assets/{_baseUniq-D6LYKITS.js → _baseUniq-BiKo_T7Z.js} +1 -1
- package/ui-dist/assets/{arc-CIoGe7WL.js → arc-CkjNBU9-.js} +1 -1
- package/ui-dist/assets/{architectureDiagram-VXUJARFQ-BtGX34WV.js → architectureDiagram-VXUJARFQ-CnRGt6cZ.js} +1 -1
- package/ui-dist/assets/{blockDiagram-VD42YOAC-Bx9BbKm1.js → blockDiagram-VD42YOAC-B_DcjZaJ.js} +1 -1
- package/ui-dist/assets/{c4Diagram-YG6GDRKO-xwuFSpQR.js → c4Diagram-YG6GDRKO-B3PD9c_R.js} +1 -1
- package/ui-dist/assets/channel-1Cd-h3PK.js +1 -0
- package/ui-dist/assets/{chunk-4BX2VUAB-DaWB39v7.js → chunk-4BX2VUAB-oSfengxa.js} +1 -1
- package/ui-dist/assets/{chunk-55IACEB6-D90CRNJi.js → chunk-55IACEB6-B5wKH1fv.js} +1 -1
- package/ui-dist/assets/{chunk-B4BG7PRW-B0BTxhNF.js → chunk-B4BG7PRW-r15-2JTB.js} +1 -1
- package/ui-dist/assets/{chunk-DI55MBZ5-D4h1PAJW.js → chunk-DI55MBZ5-BlZESk81.js} +1 -1
- package/ui-dist/assets/{chunk-FMBD7UC4-CzsxErQE.js → chunk-FMBD7UC4-B8qYwcCs.js} +1 -1
- package/ui-dist/assets/{chunk-QN33PNHL-bm-f5Ypf.js → chunk-QN33PNHL-mPDYhhjk.js} +1 -1
- package/ui-dist/assets/{chunk-QZHKN3VN-CoSq73nx.js → chunk-QZHKN3VN-DwtBAkWZ.js} +1 -1
- package/ui-dist/assets/{chunk-TZMSLE5B-BbhDlIqv.js → chunk-TZMSLE5B-BLPgrFmi.js} +1 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-C8TAPNPB.js +1 -0
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-C8TAPNPB.js +1 -0
- package/ui-dist/assets/clone-I11jq4-4.js +1 -0
- package/ui-dist/assets/{cose-bilkent-S5V4N54A-fmI2YMF8.js → cose-bilkent-S5V4N54A-DBD_6-uV.js} +1 -1
- package/ui-dist/assets/{dagre-6UL2VRFP-Cr3pog3j.js → dagre-6UL2VRFP-B0ZXplS0.js} +1 -1
- package/ui-dist/assets/{diagram-PSM6KHXK-C4ckklhG.js → diagram-PSM6KHXK-MU8wNkAz.js} +1 -1
- package/ui-dist/assets/{diagram-QEK2KX5R-BdYTsDWi.js → diagram-QEK2KX5R-CCfNbWCb.js} +1 -1
- package/ui-dist/assets/{diagram-S2PKOQOG-Cmu7ESUn.js → diagram-S2PKOQOG-DdMr7I_J.js} +1 -1
- package/ui-dist/assets/{erDiagram-Q2GNP2WA-BSZW_rSQ.js → erDiagram-Q2GNP2WA-DtFKSehU.js} +1 -1
- package/ui-dist/assets/{flowDiagram-NV44I4VS-Bc2VZpXV.js → flowDiagram-NV44I4VS-B_pFIF4i.js} +1 -1
- package/ui-dist/assets/{ganttDiagram-JELNMOA3-Ba0qqWlJ.js → ganttDiagram-JELNMOA3-a-qWQK-M.js} +1 -1
- package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-BNs0KTnG.js → gitGraphDiagram-V2S2FVAM-C4hbS94c.js} +1 -1
- package/ui-dist/assets/{graph-C0wAKjOq.js → graph-BtgDnY40.js} +1 -1
- package/ui-dist/assets/{index-CQvaOBII.js → index--WRNmWMh.js} +1 -1
- package/ui-dist/assets/{index-BZaueFmu.js → index-5S-Tp9Ds.js} +1 -1
- package/ui-dist/assets/{index-vAONJh9d.js → index-AgtIQi_5.js} +1 -1
- package/ui-dist/assets/{index-nGrBoNcW.js → index-BB_z2YqG.js} +1 -1
- package/ui-dist/assets/{index-DctgxKPE.js → index-BMlfLDqD.js} +153 -153
- package/ui-dist/assets/{index-Btz1sBoZ.js → index-BPlouvTT.js} +1 -1
- package/ui-dist/assets/{index-84J29Nok.js → index-BVgnExhc.js} +1 -1
- package/ui-dist/assets/{index-xnwc4hWt.js → index-BaAVco-d.js} +1 -1
- package/ui-dist/assets/{index-DOKMIztY.js → index-Bd-T6qiC.js} +1 -1
- package/ui-dist/assets/{index-Cv5mxAxh.js → index-BfP7DfVv.js} +1 -1
- package/ui-dist/assets/{index-DI9FwJzR.js → index-CCWg46e1.js} +1 -1
- package/ui-dist/assets/{index-CEnJQ2Hb.js → index-CG2nnKb-.js} +1 -1
- package/ui-dist/assets/{index-34MvAbhM.js → index-CJf2oog-.js} +1 -1
- package/ui-dist/assets/{index-BSLjDi9K.js → index-CVMCSDya.js} +1 -1
- package/ui-dist/assets/{index-BUufrxfc.js → index-ClSpZadR.js} +1 -1
- package/ui-dist/assets/{index-DpW6c6Uj.js → index-D4eBzxSF.js} +1 -1
- package/ui-dist/assets/{index-afxVdgKC.js → index-DQ9JLA32.js} +1 -1
- package/ui-dist/assets/{index-BwVAdHnB.js → index-DT6dSYEd.js} +1 -1
- package/ui-dist/assets/{index-D5610uok.js → index-DirEFlKZ.js} +1 -1
- package/ui-dist/assets/index-Dp1iykP7.css +1 -0
- package/ui-dist/assets/{index-Dcyd6vzt.js → index-DvdrMxk6.js} +1 -1
- package/ui-dist/assets/{index-DXsFwCNA.js → index-SSGb7GUr.js} +1 -1
- package/ui-dist/assets/{index-DknY3AxJ.js → index-cxW3Rqeg.js} +1 -1
- package/ui-dist/assets/{index-DoWqvQc6.js → index-erysj30P.js} +1 -1
- package/ui-dist/assets/{infoDiagram-HS3SLOUP-1SU0qfwO.js → infoDiagram-HS3SLOUP-Cnz1NexZ.js} +1 -1
- package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-BrA_MLSh.js → journeyDiagram-XKPGCS4Q-CJqdxXQF.js} +1 -1
- package/ui-dist/assets/{kanban-definition-3W4ZIXB7-D80Emnew.js → kanban-definition-3W4ZIXB7-CpqjlBLK.js} +1 -1
- package/ui-dist/assets/{layout-CKqT70k7.js → layout-CpS7NXY2.js} +1 -1
- package/ui-dist/assets/{linear-2Gai1-Dd.js → linear-C3mo6FV-.js} +1 -1
- package/ui-dist/assets/{mermaid.core-B6r_vnla.js → mermaid.core-B_Pfodg0.js} +4 -4
- package/ui-dist/assets/{mindmap-definition-VGOIOE7T-DqXyfUHV.js → mindmap-definition-VGOIOE7T-CdiuDCHx.js} +1 -1
- package/ui-dist/assets/{pieDiagram-ADFJNKIX-DWVyJJ7p.js → pieDiagram-ADFJNKIX-s1iDT0Mr.js} +1 -1
- package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-CiNe5n4G.js → quadrantDiagram-AYHSOK5B-BSbQHZ1e.js} +1 -1
- package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-C97cm49e.js → requirementDiagram-UZGBJVZJ-C3UPCVA3.js} +1 -1
- package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-BUWlyogX.js → sankeyDiagram-TZEHDZUN-COutQzze.js} +1 -1
- package/ui-dist/assets/{sequenceDiagram-WL72ISMW-CMIhywaR.js → sequenceDiagram-WL72ISMW-xPe1TWeT.js} +1 -1
- package/ui-dist/assets/{stateDiagram-FKZM4ZOC-Yy43hwu-.js → stateDiagram-FKZM4ZOC-DpMTUnBg.js} +1 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-St9IsqPE.js +1 -0
- package/ui-dist/assets/{timeline-definition-IT6M3QCI-Bc0daZY2.js → timeline-definition-IT6M3QCI-_Jy-Lz9u.js} +1 -1
- package/ui-dist/assets/{treemap-GDKQZRPO-Bo0wz5fl.js → treemap-GDKQZRPO-DPQRQ6JK.js} +1 -1
- package/ui-dist/assets/{xychartDiagram-PRI3JC2R-YLP6MCXp.js → xychartDiagram-PRI3JC2R-7v21yPzV.js} +1 -1
- package/ui-dist/index.html +2 -2
- package/ui-dist/assets/channel-B17NOHvq.js +0 -1
- package/ui-dist/assets/classDiagram-2ON5EDUG-D0nhr1_D.js +0 -1
- package/ui-dist/assets/classDiagram-v2-WZHVMYZB-D0nhr1_D.js +0 -1
- package/ui-dist/assets/clone-5uZFA7cP.js +0 -1
- package/ui-dist/assets/index-BBM9QJm7.css +0 -1
- package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DVIym9nZ.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,iBAAiB,CAAC;AAS1C,OAAO,EA8BL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI3B,MAAM,qBAAqB,CAAC;AAG7B,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,
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAS1C,OAAO,EA8BL,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAI3B,MAAM,qBAAqB,CAAC;AAG7B,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"}
|
package/dist/routes/issues.js
CHANGED
|
@@ -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);
|