@tickernelz/paperclip-pro-server 2026.930.4 → 2026.930.6
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/build-info.json +1 -1
- package/dist/routes/issues.d.ts.map +1 -1
- package/dist/routes/issues.js +63 -0
- package/dist/routes/issues.js.map +1 -1
- package/dist/routes/openapi.d.ts.map +1 -1
- package/dist/routes/openapi.js +1 -0
- package/dist/routes/openapi.js.map +1 -1
- package/dist/services/agents.d.ts +10 -10
- package/dist/services/connectors/slack.d.ts +13 -13
- package/dist/services/recovery/service.d.ts.map +1 -1
- package/dist/services/recovery/service.js +9 -3
- package/dist/services/recovery/service.js.map +1 -1
- package/node_modules/remend/dist/index.d.ts +3 -2
- package/node_modules/remend/dist/index.js +23 -20
- package/node_modules/remend/package.json +3 -2
- package/package.json +21 -21
- package/skills/paperclip/SKILL.md +2 -0
- package/skills/paperclip/references/api-reference.md +2 -0
- package/ui-dist/assets/{Agents.production-DbUeI7Fn.js → Agents.production-C92v0Lx-.js} +2 -2
- package/ui-dist/assets/{CompanyActivity.production-ah_9HNB7.js → CompanyActivity.production-zCGxSTfT.js} +1 -1
- package/ui-dist/assets/{CompanyExport-DfQ2w0Io.js → CompanyExport-ZX12qv9W.js} +1 -1
- package/ui-dist/assets/{CompanySkills.production-D1z4_-0O.js → CompanySkills.production-ppXT58tQ.js} +1 -1
- package/ui-dist/assets/{Costs.production-lj6CMOJY.js → Costs.production-BtTAEXoR.js} +1 -1
- package/ui-dist/assets/{OrgChart.production-BYJcahNU.js → OrgChart.production-rZs_mwUx.js} +1 -1
- package/ui-dist/assets/{RoutineDetail.production-7Lqoltnn.js → RoutineDetail.production-B-MVcelq.js} +1 -1
- package/ui-dist/assets/{Routines.production-2drUSpFP.js → Routines.production-BjxyLaNj.js} +1 -1
- package/ui-dist/assets/{definition-CN1PqJxy.js → definition-BghzHoPd.js} +1 -1
- package/ui-dist/assets/{index-CFJc7t_k.js → index-m5QR0hsC.js} +4 -4
- package/ui-dist/index.html +1 -1
- package/ui-dist/sw.js +1 -1
|
@@ -497,14 +497,14 @@ export declare function agentService(db: Db): {
|
|
|
497
497
|
id: string;
|
|
498
498
|
name: string;
|
|
499
499
|
scope: {
|
|
500
|
+
kind: "standard";
|
|
501
|
+
} | {
|
|
500
502
|
kind: "task_bridge";
|
|
501
503
|
projectId?: string | null | undefined;
|
|
502
504
|
projectIds?: string[] | undefined;
|
|
503
505
|
parentIssueId?: string | null | undefined;
|
|
504
506
|
parentIssueIds?: string[] | undefined;
|
|
505
507
|
allowedAssigneeAgentIds?: string[] | undefined;
|
|
506
|
-
} | {
|
|
507
|
-
kind: "standard";
|
|
508
508
|
} | {
|
|
509
509
|
kind: "skill_test";
|
|
510
510
|
issueId: string;
|
|
@@ -517,14 +517,14 @@ export declare function agentService(db: Db): {
|
|
|
517
517
|
id: string;
|
|
518
518
|
name: string;
|
|
519
519
|
scope: {
|
|
520
|
+
kind: "standard";
|
|
521
|
+
} | {
|
|
520
522
|
kind: "task_bridge";
|
|
521
523
|
projectId?: string | null | undefined;
|
|
522
524
|
projectIds?: string[] | undefined;
|
|
523
525
|
parentIssueId?: string | null | undefined;
|
|
524
526
|
parentIssueIds?: string[] | undefined;
|
|
525
527
|
allowedAssigneeAgentIds?: string[] | undefined;
|
|
526
|
-
} | {
|
|
527
|
-
kind: "standard";
|
|
528
528
|
} | {
|
|
529
529
|
kind: "skill_test";
|
|
530
530
|
issueId: string;
|
|
@@ -540,14 +540,14 @@ export declare function agentService(db: Db): {
|
|
|
540
540
|
name: string;
|
|
541
541
|
responsibleUserId: string | null;
|
|
542
542
|
scopeConfig: {
|
|
543
|
+
kind: "standard";
|
|
544
|
+
} | {
|
|
543
545
|
kind: "task_bridge";
|
|
544
546
|
projectId?: string | null | undefined;
|
|
545
547
|
projectIds?: string[] | undefined;
|
|
546
548
|
parentIssueId?: string | null | undefined;
|
|
547
549
|
parentIssueIds?: string[] | undefined;
|
|
548
550
|
allowedAssigneeAgentIds?: string[] | undefined;
|
|
549
|
-
} | {
|
|
550
|
-
kind: "standard";
|
|
551
551
|
} | {
|
|
552
552
|
kind: "skill_test";
|
|
553
553
|
issueId: string;
|
|
@@ -555,14 +555,14 @@ export declare function agentService(db: Db): {
|
|
|
555
555
|
createdAt: Date;
|
|
556
556
|
revokedAt: Date | null;
|
|
557
557
|
scope: {
|
|
558
|
+
kind: "standard";
|
|
559
|
+
} | {
|
|
558
560
|
kind: "task_bridge";
|
|
559
561
|
projectId?: string | null | undefined;
|
|
560
562
|
projectIds?: string[] | undefined;
|
|
561
563
|
parentIssueId?: string | null | undefined;
|
|
562
564
|
parentIssueIds?: string[] | undefined;
|
|
563
565
|
allowedAssigneeAgentIds?: string[] | undefined;
|
|
564
|
-
} | {
|
|
565
|
-
kind: "standard";
|
|
566
566
|
} | {
|
|
567
567
|
kind: "skill_test";
|
|
568
568
|
issueId: string;
|
|
@@ -576,14 +576,14 @@ export declare function agentService(db: Db): {
|
|
|
576
576
|
keyHash: string;
|
|
577
577
|
responsibleUserId: string | null;
|
|
578
578
|
scopeConfig: {
|
|
579
|
+
kind: "standard";
|
|
580
|
+
} | {
|
|
579
581
|
kind: "task_bridge";
|
|
580
582
|
projectId?: string | null | undefined;
|
|
581
583
|
projectIds?: string[] | undefined;
|
|
582
584
|
parentIssueId?: string | null | undefined;
|
|
583
585
|
parentIssueIds?: string[] | undefined;
|
|
584
586
|
allowedAssigneeAgentIds?: string[] | undefined;
|
|
585
|
-
} | {
|
|
586
|
-
kind: "standard";
|
|
587
587
|
} | {
|
|
588
588
|
kind: "skill_test";
|
|
589
589
|
issueId: string;
|
|
@@ -29,10 +29,10 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
29
29
|
state: string;
|
|
30
30
|
instruction: string;
|
|
31
31
|
} | {
|
|
32
|
-
id?: undefined;
|
|
33
32
|
channels: SlackObject[];
|
|
34
33
|
nextCursor: string;
|
|
35
34
|
coverage: string;
|
|
35
|
+
id?: undefined;
|
|
36
36
|
name?: undefined;
|
|
37
37
|
displayName?: undefined;
|
|
38
38
|
realName?: undefined;
|
|
@@ -87,8 +87,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
87
87
|
pins?: undefined;
|
|
88
88
|
bookmarks?: undefined;
|
|
89
89
|
} | {
|
|
90
|
-
id?: undefined;
|
|
91
90
|
channels?: undefined;
|
|
91
|
+
id?: undefined;
|
|
92
92
|
name?: undefined;
|
|
93
93
|
displayName?: undefined;
|
|
94
94
|
realName?: undefined;
|
|
@@ -116,8 +116,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
116
116
|
pins?: undefined;
|
|
117
117
|
bookmarks?: undefined;
|
|
118
118
|
} | {
|
|
119
|
-
id?: undefined;
|
|
120
119
|
channels?: undefined;
|
|
120
|
+
id?: undefined;
|
|
121
121
|
name?: undefined;
|
|
122
122
|
displayName?: undefined;
|
|
123
123
|
realName?: undefined;
|
|
@@ -145,8 +145,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
145
145
|
pins?: undefined;
|
|
146
146
|
bookmarks?: undefined;
|
|
147
147
|
} | {
|
|
148
|
-
id?: undefined;
|
|
149
148
|
channels?: undefined;
|
|
149
|
+
id?: undefined;
|
|
150
150
|
name?: undefined;
|
|
151
151
|
displayName?: undefined;
|
|
152
152
|
realName?: undefined;
|
|
@@ -182,8 +182,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
182
182
|
pins?: undefined;
|
|
183
183
|
bookmarks?: undefined;
|
|
184
184
|
} | {
|
|
185
|
-
id?: undefined;
|
|
186
185
|
channels?: undefined;
|
|
186
|
+
id?: undefined;
|
|
187
187
|
name?: undefined;
|
|
188
188
|
displayName?: undefined;
|
|
189
189
|
realName?: undefined;
|
|
@@ -211,8 +211,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
211
211
|
pins?: undefined;
|
|
212
212
|
bookmarks?: undefined;
|
|
213
213
|
} | {
|
|
214
|
-
id?: undefined;
|
|
215
214
|
channels?: undefined;
|
|
215
|
+
id?: undefined;
|
|
216
216
|
name?: undefined;
|
|
217
217
|
displayName?: undefined;
|
|
218
218
|
realName?: undefined;
|
|
@@ -254,8 +254,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
254
254
|
pins?: undefined;
|
|
255
255
|
bookmarks?: undefined;
|
|
256
256
|
} | {
|
|
257
|
-
id?: undefined;
|
|
258
257
|
channels?: undefined;
|
|
258
|
+
id?: undefined;
|
|
259
259
|
name?: undefined;
|
|
260
260
|
displayName?: undefined;
|
|
261
261
|
realName?: undefined;
|
|
@@ -283,8 +283,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
283
283
|
pins?: undefined;
|
|
284
284
|
bookmarks?: undefined;
|
|
285
285
|
} | {
|
|
286
|
-
id?: undefined;
|
|
287
286
|
channels?: undefined;
|
|
287
|
+
id?: undefined;
|
|
288
288
|
name?: undefined;
|
|
289
289
|
displayName?: undefined;
|
|
290
290
|
realName?: undefined;
|
|
@@ -312,8 +312,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
312
312
|
pins?: undefined;
|
|
313
313
|
bookmarks?: undefined;
|
|
314
314
|
} | {
|
|
315
|
-
id?: undefined;
|
|
316
315
|
channels?: undefined;
|
|
316
|
+
id?: undefined;
|
|
317
317
|
name?: undefined;
|
|
318
318
|
displayName?: undefined;
|
|
319
319
|
realName?: undefined;
|
|
@@ -341,8 +341,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
341
341
|
pins?: undefined;
|
|
342
342
|
bookmarks?: undefined;
|
|
343
343
|
} | {
|
|
344
|
-
id?: undefined;
|
|
345
344
|
channels?: undefined;
|
|
345
|
+
id?: undefined;
|
|
346
346
|
name?: undefined;
|
|
347
347
|
displayName?: undefined;
|
|
348
348
|
realName?: undefined;
|
|
@@ -377,8 +377,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
377
377
|
pins?: undefined;
|
|
378
378
|
bookmarks?: undefined;
|
|
379
379
|
} | {
|
|
380
|
-
id?: undefined;
|
|
381
380
|
channels?: undefined;
|
|
381
|
+
id?: undefined;
|
|
382
382
|
name?: undefined;
|
|
383
383
|
displayName?: undefined;
|
|
384
384
|
realName?: undefined;
|
|
@@ -406,8 +406,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
406
406
|
pins?: undefined;
|
|
407
407
|
bookmarks?: undefined;
|
|
408
408
|
} | {
|
|
409
|
-
id?: undefined;
|
|
410
409
|
channels?: undefined;
|
|
410
|
+
id?: undefined;
|
|
411
411
|
name?: undefined;
|
|
412
412
|
displayName?: undefined;
|
|
413
413
|
realName?: undefined;
|
|
@@ -452,8 +452,8 @@ export declare function executeSlackTool(db: Db, binding: SlackTaskBinding, name
|
|
|
452
452
|
}[];
|
|
453
453
|
bookmarks?: undefined;
|
|
454
454
|
} | {
|
|
455
|
-
id?: undefined;
|
|
456
455
|
channels?: undefined;
|
|
456
|
+
id?: undefined;
|
|
457
457
|
name?: undefined;
|
|
458
458
|
displayName?: undefined;
|
|
459
459
|
realName?: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/recovery/service.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,8BAA8B,CAAC;AAcvD,OAAO,EASL,aAAa,EAOb,MAAM,EAKP,MAAM,8BAA8B,CAAC;AA8DtC,OAAO,EAGL,mCAAmC,EAKpC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAML,KAAK,0BAA0B,EAChC,MAAM,sBAAsB,CAAC;AAY9B,OAAO,EAGL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC3B,MAAM,4CAA4C,CAAC;AAapD,eAAO,MAAM,wCAAwC,QAAiB,CAAC;AACvE,eAAO,MAAM,uCAAuC,QAAqB,CAAC;AAC1E,eAAO,MAAM,mCAAmC,QAAiB,CAAC;AAkBlE,eAAO,MAAM,qCAAqC,QAGjD,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;IAC7D,aAAa,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnD,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE;QAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH,CAAC;AAEF,KAAK,cAAc,GAAG,CACpB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,qBAAqB,KACzB,OAAO,CAAC,OAAO,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;AAEvD,KAAK,oCAAoC,GACvC,+BAA+B,GAAG,oBAAoB,CAAC;AAEzD,KAAK,qCAAqC,GAAG;IAC3C,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,EAAE,oCAAoC,CAAC;CAC/C,CAAC;AAEF,KAAK,cAAc,GACf,CAAC,IAAI,CACH,OAAO,aAAa,CAAC,YAAY,EAC/B,IAAI,GACJ,SAAS,GACT,QAAQ,GACR,OAAO,GACP,WAAW,GACX,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,WAAW,CACd,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC,GACF,IAAI,CAAC;AAKT,MAAM,MAAM,qBAAqB,GAC7B,yBAAyB,GACzB,gCAAgC,GAChC,cAAc,GACd,gBAAgB,GAChB,iCAAiC,GACjC,6BAA6B,GAC7B,0BAA0B,GAC1B,4BAA4B,GAC5B,8BAA8B,GAC9B,2BAA2B,GAC3B,0BAA0B,GAC1B,uCAAuC,GACvC,OAAO,mCAAmC,CAAC;AAS/C,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAOT;AAED,KAAK,sBAAsB,GAAG,MAAM,GAAG,aAAa,GAAG,WAAW,CAAC;AAEnE,KAAK,oCAAoC,GAAG;IAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;CAC5B,CAAC;AAkKF,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,CAAC;AAsF/D,eAAO,MAAM,0CAA0C,QAAiB,CAAC;AAOzE,MAAM,MAAM,oCAAoC,GAC5C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,0BAA0B,CAAA;CAAE,GACpC,IAAI,CAAC;AA+ET,wBAAgB,iCAAiC,CAC/C,SAAS,EAAE,IAAI,CACb,WAAW,CAAC,cAAc,CAAC,EAC3B,OAAO,GAAG,WAAW,GAAG,YAAY,CACrC,EACD,GAAG,OAAa,GACf,oCAAoC,CAiEtC;AAED,KAAK,+BAA+B,GAAG;IACrC,IAAI,EACA,iBAAiB,GACjB,eAAe,GACf,gCAAgC,GAChC,SAAS,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,cAAc,GACxB,+BAA+B,CAgCjC;AA2KD,wBAAgB,eAAe,CAC7B,EAAE,EAAE,EAAE,EACN,IAAI,EAAE;IACJ,aAAa,EAAE,cAAc,CAAC;IAC9B,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,OAAO,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,CAC1B,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,KACnC,OAAO,CAAC;IACb,iBAAiB,CAAC,EAAE,QAAQ,CAAC;QAAE,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3D,8BAA8B,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,sBAAsB,CAAC,EAAE,CACvB,GAAG,EAAE,OAAO,aAAa,CAAC,YAAY,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB;iCAs0CM,IAAI,CACP,OAAO,aAAa,CAAC,YAAY,EAC/B,IAAI,GACJ,WAAW,GACX,QAAQ,GACR,cAAc,GACd,eAAe,GACf,kBAAkB,GAClB,kBAAkB,GAClB,WAAW,GACX,WAAW,CACd,iBAEA,OAAO,CAAC,uBAAuB,CAAC;kDA+cwB;QACzD,KAAK,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC;QAClC,cAAc,EAAE,sBAAsB,CAAC;QACvC,SAAS,EAAE,cAAc,CAAC;KAC3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CAojCmD;QAClD,KAAK,EAAE,OAAO,MAAM,CAAC,YAAY,CAAC;QAClC,cAAc,EAAE,sBAAsB,CAAC;QACvC,SAAS,EAAE,cAAc,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,0BAA0B,GAAG,IAAI,CAAC;QAC3C,aAAa,CAAC,EAAE,qBAAqB,CAAC;QACtC,4BAA4B,CAAC,EAAE,oCAAoC,GAAG,IAAI,CAAC;KAC5E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA/+C4C;QAC3C,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,qBAAqB,CAAC;QAC7B,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,0BAA0B,CAAC;QAC7D,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,GAAG,CAAC,EAAE,IAAI,CAAC;KACZ;kCAjB0C;QACzC,GAAG,CAAC,EAAE,IAAI,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;KACjC;6CAg6DqD;QACpD,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;KACjC;;;;;;;;;;;;;;;;;;;kBAuCmB,MAAM,EAAE;;;;kBA6sDR,MAAM,EAAE;4BACE,MAAM,EAAE;;qDAtkB7B,qCAAqC;;;;;;;;;;;kBAa1B,MAAM,EAAE;;uCAoRc,OAAO,YAAY,MAAM;EAgdpE"}
|
|
@@ -4,7 +4,7 @@ import { externalConversationStateSql } from "../slack-conversation-state.js";
|
|
|
4
4
|
import { hasLiveLegacyController } from "../legacy-controller-lease.js";
|
|
5
5
|
import { instanceSettingsService } from "../instance-settings.js";
|
|
6
6
|
import { isWaitingConversation, settleConversationTurn, deliverConversationComments } from "../agent-conversations.js";
|
|
7
|
-
import { and, asc, desc, eq, exists, gt, gte, inArray, isNull, not, notInArray, or, sql, } from "drizzle-orm";
|
|
7
|
+
import { and, asc, desc, eq, exists, gt, gte, inArray, isNull, not, notInArray, notExists, or, sql, } from "drizzle-orm";
|
|
8
8
|
import { executionBlockerPredicate } from "../execution-blocker.js";
|
|
9
9
|
import { releaseDependencyGateRecoveryHold } from "../dependency-gate-recovery-hold.js";
|
|
10
10
|
import { hasCommittedNativeBoardResponseWait, readNativeBoardResponseWaitSource, } from "../native-runtime/native-board-response-wait.js";
|
|
@@ -1766,11 +1766,17 @@ export function recoveryService(db, deps) {
|
|
|
1766
1766
|
async function existingUnresolvedBlockerIssueIds(companyId, issueId) {
|
|
1767
1767
|
return existingUnresolvedBlockerIssues(companyId, issueId).then((rows) => rows.map((row) => row.id));
|
|
1768
1768
|
}
|
|
1769
|
+
function childNotBlockedByParentCondition(parent) {
|
|
1770
|
+
return notExists(db
|
|
1771
|
+
.select({ id: issueRelations.id })
|
|
1772
|
+
.from(issueRelations)
|
|
1773
|
+
.where(and(eq(issueRelations.companyId, parent.companyId), eq(issueRelations.issueId, parent.id), eq(issueRelations.relatedIssueId, issues.id), eq(issueRelations.type, "blocks"))));
|
|
1774
|
+
}
|
|
1769
1775
|
async function openChildIssues(issue) {
|
|
1770
1776
|
return db
|
|
1771
1777
|
.select({ id: issues.id, identifier: issues.identifier })
|
|
1772
1778
|
.from(issues)
|
|
1773
|
-
.where(and(eq(issues.companyId, issue.companyId), eq(issues.parentId, issue.id), visibleIssueCondition(), notInArray(issues.status, ["done", "cancelled"])));
|
|
1779
|
+
.where(and(eq(issues.companyId, issue.companyId), eq(issues.parentId, issue.id), visibleIssueCondition(), notInArray(issues.status, ["done", "cancelled"]), childNotBlockedByParentCondition(issue)));
|
|
1774
1780
|
}
|
|
1775
1781
|
async function healthyOpenChildIssues(issue, sameWorkspaceOnly = false) {
|
|
1776
1782
|
if (sameWorkspaceOnly && !issue.projectWorkspaceId)
|
|
@@ -1778,7 +1784,7 @@ export function recoveryService(db, deps) {
|
|
|
1778
1784
|
const childCandidates = await db
|
|
1779
1785
|
.select()
|
|
1780
1786
|
.from(issues)
|
|
1781
|
-
.where(and(eq(issues.companyId, issue.companyId), eq(issues.parentId, issue.id), ...(sameWorkspaceOnly ? [eq(issues.projectWorkspaceId, issue.projectWorkspaceId)] : []), visibleIssueCondition(), notInArray(issues.status, ["done", "cancelled"])));
|
|
1787
|
+
.where(and(eq(issues.companyId, issue.companyId), eq(issues.parentId, issue.id), ...(sameWorkspaceOnly ? [eq(issues.projectWorkspaceId, issue.projectWorkspaceId)] : []), visibleIssueCondition(), notInArray(issues.status, ["done", "cancelled"]), childNotBlockedByParentCondition(issue)));
|
|
1782
1788
|
const openChildren = [];
|
|
1783
1789
|
for (const child of childCandidates) {
|
|
1784
1790
|
const childState = await collectDispositionRepairSourceState(db, {
|