crewly 1.20.287 → 1.20.289
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/backend/backend/src/constants.d.ts +55 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +56 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +8 -0
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +18 -1
- package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +30 -2
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +39 -0
- package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/resource-mode-protection.js +54 -0
- package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -0
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +32 -3
- package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/resource-mode.service.js +95 -9
- package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/backend/backend/src/services/briefing/briefing.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/briefing/briefing.service.js +3 -0
- package/dist/backend/backend/src/services/briefing/briefing.service.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.d.ts +17 -0
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.d.ts.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.js +64 -3
- package/dist/backend/backend/src/services/drive/drive-briefing-snapshot.js.map +1 -1
- package/dist/backend/backend/src/services/drive/drive-briefing.contract.d.ts +15 -0
- package/dist/backend/backend/src/services/drive/drive-briefing.contract.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts +17 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket-workflow.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +1 -1
- package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.d.ts +160 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.js +256 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.js.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.service.d.ts +135 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.service.js +366 -0
- package/dist/backend/backend/src/services/project-tickets/ticket-hygiene.service.js.map +1 -0
- package/dist/backend/backend/src/services/v3/ticket-hygiene.d.ts +22 -0
- package/dist/backend/backend/src/services/v3/ticket-hygiene.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-hygiene.js +34 -1
- package/dist/backend/backend/src/services/v3/ticket-hygiene.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js +1 -3
- package/dist/backend/backend/src/services/v3/ticket-intake.service.js.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts +2 -0
- package/dist/backend/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/v3/ticket-review.service.js +35 -7
- package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +1 -1
- 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 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +55 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +56 -1
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +32 -3
- package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/resource-mode.service.js +95 -9
- package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +5 -0
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +1 -1
- package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-hygiene.d.ts +22 -0
- package/dist/cli/backend/src/services/v3/ticket-hygiene.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-hygiene.js +34 -1
- package/dist/cli/backend/src/services/v3/ticket-hygiene.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js +1 -3
- package/dist/cli/backend/src/services/v3/ticket-intake.service.js.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts +2 -0
- package/dist/cli/backend/src/services/v3/ticket-review.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/v3/ticket-review.service.js +35 -7
- package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +1 -1
- 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 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/package.json +1 -1
|
@@ -299,7 +299,7 @@ export class ProjectTicketService {
|
|
|
299
299
|
return current;
|
|
300
300
|
const now = this.now();
|
|
301
301
|
const changes = {
|
|
302
|
-
fields: { ...(mutation.fields ?? {}), updatedAt: now },
|
|
302
|
+
fields: { ...(mutation.fields ?? {}), ...(mutation.keepUpdatedAt ? {} : { updatedAt: now }) },
|
|
303
303
|
description: mutation.description,
|
|
304
304
|
acceptance: mutation.acceptance,
|
|
305
305
|
logLines: (mutation.log ?? []).map((m) => formatLogLine(actor, m, now)),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-ticket.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/project-ticket.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-ticket.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/project-ticket.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAwB,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,8BAA8B,EAC9B,8BAA8B,GAQ/B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,YAAY,GAGb,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAA8B,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,gEAAgE;AAChE,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAKf;IAJ5B;;;OAGG;IACH,YAA4B,MAAc,EAAE,OAAe;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QADW,WAAM,GAAN,MAAM,CAAQ;QAExC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAmED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,KAA6C;IAC/D,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;SACtH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC3C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,GAAG,8BAA8B,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,MAAiB;IACpC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvF,CAAC;AAoBD,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAC,QAAQ,GAAgC,IAAI,CAAC;IAE5D,uEAAuE;IACtD,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IAEnD,MAAM,CAAkB;IACxB,GAAG,CAAe;IAClB,aAAa,CAA0D;IACxF,oCAAoC;IACnB,KAAK,GAAG,IAAI,GAAG,EAAmC,CAAC;IACpE,wDAAwD;IACvC,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,2DAA2D;IAC1C,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAErD;;OAEG;IACH,YAAY,OAAiC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,WAAW,EAAE,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,CAAC;QACvG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,oBAAoB,CAAC,QAAQ;YAAE,oBAAoB,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC/F,OAAO,oBAAoB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,mCAAmC;IACnC,MAAM,CAAC,aAAa;QAClB,oBAAoB,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,WAAmB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAe,CAAC;QACpB,IAAI,CAAC;YACH,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC1F,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAsB,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC9B,KAAK,MAAM,MAAM,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhG,MAAM,OAAO,GAAoB,EAAE,CAAC;QACpC,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC9F,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,MAAM,WAAW,GAAG,wBAAwB,CAAC,QAA6B,CAAC;QAC3E,MAAM,SAAS,GAAG,wBAAwB,CAAC,UAA+B,CAAC;QAC3E,MAAM,GAAG,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CACV,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;YAC7D,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACxB,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,WAAmB,EAAE,EAAU;QACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrG,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,WAAmB,EAAE,KAA+B,EAAE,KAAa;QACnG,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,gBAAgB,CAAC;QAC9G,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,wBAAwB,CAAC,cAAc,CAAC;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YACpD,MAAM,MAAM,GAAwB;gBAClC,EAAE;gBACF,KAAK;gBACL,MAAM;gBACN,QAAQ;gBACR,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;gBAChC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;gBACxB,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;gBACvC,WAAW,EAAE,KAAK,CAAC,WAAW,KAAK,IAAI;gBACvC,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,GAAG;gBACjC,SAAS,EAAE,GAAG;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI;gBAClC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;gBAC5B,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI;aACzC,CAAC;YACF,MAAM,QAAQ,GAAG,GAAG,EAAE,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,mBAAmB,CAAC;gBAClC,MAAM;gBACN,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE;gBACpC,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC9C,QAAQ,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC;aAC7D,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACzC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,EAAE;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,iCAAiC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,yBAAyB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;QAC7H,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAqC;QAC5C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,MAA2B;QAC9C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9H,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,CACV,WAAmB,EACnB,EAAU,EACV,KAAa,EACb,OAA0F;QAE1F,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,MAAM,GAAyC,IAAI,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAC3E,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,CAAC,QAAQ;gBAAE,OAAO,OAAO,CAAC;YAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAkB;gBAC7B,MAAM,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE;gBAC7F,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;aACxE,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC/C,IAAI,KAAK,KAAK,GAAG;gBAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAClE,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,4BAA4B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9F,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC/E,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,MAA8C,CAAC;QAC3D,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtH,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,aAAa;gBAAE,IAAI,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;QAClI,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,WAAmB,EAAE,EAAU,EAAE,KAA+B,EAAE,KAAa,EAAE,IAAa;QACzG,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YAC9C,MAAM,MAAM,GAAiC,EAAE,CAAC;YAChD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1D,IAAI,CAAC,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;gBACnE,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACjB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAClC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;gBAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBACnC,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7E,IAAI,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC;gBACrI,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,2CAA2C,CAAC,CAAC;gBACzH,MAAM,CAAC,UAAU,GAAG,GAAG,IAAI,IAAI,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/G,OAAO;gBACL,MAAM;gBACN,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,UAAU,EAAE,KAAK,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrF,GAAG;aACJ,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CACd,WAAmB,EACnB,EAAU,EACV,EAAuB,EACvB,KAAa,EACb,IAAa,EACb,QAAsC,EAAE;QAExC,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;YAC/C,IAAI,CAAC,CAAC,MAAM,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YACjC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,MAAM,OAAO,EAAE,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,SAAS,CAAC,WAAmB,EAAE,EAAU,EAAE,KAAa,EAAE,IAAY;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU,CAAC,QAAiC,EAAE,QAAgB,EAAE,QAAgB;QAC5F,IAAI,IAAI,CAAC;QACT,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAChC,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC;QACrF,IAAI,MAAyB,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QAClF,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9F,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;OASG;IACK,QAAQ,CACd,MAAgD,EAChD,QAAgB,EAChB,QAAgB,EAChB,WAAmB,EACnB,QAAiB;QAEjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACxB,OAAO;YACL,GAAG,IAAI,CAAC,MAAM;YACd,QAAQ;YACR,QAAQ;YACR,WAAW;YACX,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,aAAa,CAAC,WAAmB;QAC7C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC;YAAE,OAAO;QAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACtD,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACjG,CAAC;iBAAM,IAAI,OAAO,KAAK,eAAe,EAAE,CAAC;gBACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iEAAiE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,EAAE;gBACnE,WAAW;gBACX,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACxD,CAAC,CAAC;QACL,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket hygiene, pure half: when is a ticket stale, which stale tickets go to
|
|
3
|
+
* which lead today, and the brief that lead receives.
|
|
4
|
+
*
|
|
5
|
+
* Kept free of I/O so the thresholds, the cooldown and the batching are easy to
|
|
6
|
+
* test; {@link ./ticket-hygiene.service} does the reading and writing.
|
|
7
|
+
*
|
|
8
|
+
* @module services/project-tickets/ticket-hygiene
|
|
9
|
+
*/
|
|
10
|
+
import type { Team } from '../../types/index.js';
|
|
11
|
+
/** Statuses of a ticket that still counts as open work. */
|
|
12
|
+
export declare const OPEN_TICKET_STATUSES: ReadonlySet<string>;
|
|
13
|
+
/** The ticket fields hygiene reads. */
|
|
14
|
+
export interface HygieneTicketFields {
|
|
15
|
+
id: string;
|
|
16
|
+
title: string;
|
|
17
|
+
status: string;
|
|
18
|
+
labels: string[];
|
|
19
|
+
assignee: string | null;
|
|
20
|
+
team: string | null;
|
|
21
|
+
ownerReview?: boolean;
|
|
22
|
+
deferUntil?: string | null;
|
|
23
|
+
createdAt: string;
|
|
24
|
+
updatedAt: string;
|
|
25
|
+
/** Log lines: `<iso> · <actor> · <message>` */
|
|
26
|
+
log: string[];
|
|
27
|
+
}
|
|
28
|
+
/** A ticket with the project it belongs to. */
|
|
29
|
+
export interface HygieneTicket extends HygieneTicketFields {
|
|
30
|
+
projectId: string;
|
|
31
|
+
projectName: string;
|
|
32
|
+
projectPath: string;
|
|
33
|
+
}
|
|
34
|
+
/** How stale a ticket is. */
|
|
35
|
+
export interface TicketStaleness {
|
|
36
|
+
/** Open, past its threshold, and not parked / deferred / waiting on the owner */
|
|
37
|
+
stale: boolean;
|
|
38
|
+
/** Whole days since the last activity */
|
|
39
|
+
idleDays: number;
|
|
40
|
+
/** ISO time of the last activity */
|
|
41
|
+
lastActivityAt: string;
|
|
42
|
+
/** The threshold that applies to its status (days); null for a closed ticket */
|
|
43
|
+
thresholdDays: number | null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The days of silence after which a ticket of this status is stale.
|
|
47
|
+
*
|
|
48
|
+
* @param status - Ticket status
|
|
49
|
+
* @returns Days, or null when the status is not open
|
|
50
|
+
*/
|
|
51
|
+
export declare function staleThresholdDays(status: string): number | null;
|
|
52
|
+
/**
|
|
53
|
+
* The time of a ticket's last real activity: the later of `updatedAt` and its
|
|
54
|
+
* newest Log line, ignoring lines the hygiene sweep wrote itself (a flag the
|
|
55
|
+
* sweep adds is not someone working on the ticket).
|
|
56
|
+
*
|
|
57
|
+
* @param t - Ticket
|
|
58
|
+
* @returns Epoch ms (0 when nothing parses)
|
|
59
|
+
*/
|
|
60
|
+
export declare function ticketLastActivityMs(t: Pick<HygieneTicketFields, 'updatedAt' | 'createdAt' | 'log'>): number;
|
|
61
|
+
/**
|
|
62
|
+
* Whether a ticket is stale right now.
|
|
63
|
+
*
|
|
64
|
+
* Not stale: closed tickets, tickets labelled parked / deferred / needs-owner,
|
|
65
|
+
* tickets deferred to a later date, and a `review` ticket that waits for the
|
|
66
|
+
* owner (`ownerReview`) — nobody on the team can decide that one.
|
|
67
|
+
*
|
|
68
|
+
* @param t - Ticket
|
|
69
|
+
* @param nowMs - Clock
|
|
70
|
+
* @returns Staleness
|
|
71
|
+
*/
|
|
72
|
+
export declare function ticketStaleness(t: HygieneTicketFields, nowMs: number): TicketStaleness;
|
|
73
|
+
/**
|
|
74
|
+
* Whether a name looks like an agent session (`<team>-<name>-<8 hex>`), as
|
|
75
|
+
* opposed to a person's name. Only agent-looking assignees can be orphaned.
|
|
76
|
+
*
|
|
77
|
+
* @param name - Assignee
|
|
78
|
+
* @returns True for a session-shaped name
|
|
79
|
+
*/
|
|
80
|
+
export declare function looksLikeAgentSession(name: string): boolean;
|
|
81
|
+
/** Why a ticket has no live owner any more. */
|
|
82
|
+
export interface OrphanReason {
|
|
83
|
+
assignee?: string;
|
|
84
|
+
team?: string;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Whether a ticket's assignee or team no longer exists.
|
|
88
|
+
*
|
|
89
|
+
* @param t - Ticket
|
|
90
|
+
* @param teams - All teams
|
|
91
|
+
* @returns The missing parts, or null when both (that are set) exist
|
|
92
|
+
*/
|
|
93
|
+
export declare function orphanReason(t: Pick<HygieneTicketFields, 'assignee' | 'team'>, teams: Team[]): OrphanReason | null;
|
|
94
|
+
/** One ticket picked for a lead's review, with why. */
|
|
95
|
+
export interface ReviewCandidate {
|
|
96
|
+
ticket: HygieneTicket;
|
|
97
|
+
staleness: TicketStaleness;
|
|
98
|
+
/** `stale` and / or `orphaned` */
|
|
99
|
+
reasons: string[];
|
|
100
|
+
}
|
|
101
|
+
/** The stale tickets of one team, and who decides them. */
|
|
102
|
+
export interface ReviewBatch {
|
|
103
|
+
/** Team id, or `orchestrator` for tickets with no team */
|
|
104
|
+
key: string;
|
|
105
|
+
teamId: string | null;
|
|
106
|
+
teamName: string;
|
|
107
|
+
/** Session that receives the batch: the team lead, else the orchestrator */
|
|
108
|
+
target: string;
|
|
109
|
+
/** True when the target is the orchestrator because the team has no lead */
|
|
110
|
+
fallbackToOrchestrator: boolean;
|
|
111
|
+
/** Candidates, longest silence first, at most {@link TICKET_HYGIENE_CONSTANTS.MAX_TICKETS_PER_REVIEW} */
|
|
112
|
+
candidates: ReviewCandidate[];
|
|
113
|
+
/** How many more are waiting for the next batch */
|
|
114
|
+
more: number;
|
|
115
|
+
}
|
|
116
|
+
/** Key of a ticket in the "already sent" memory. */
|
|
117
|
+
export declare function ticketKey(projectPath: string, id: string): string;
|
|
118
|
+
/**
|
|
119
|
+
* The session that decides a team's stale tickets: its first lead that has a
|
|
120
|
+
* session, else the orchestrator.
|
|
121
|
+
*
|
|
122
|
+
* @param team - Team (null = no team)
|
|
123
|
+
* @returns Session and whether it is the fallback
|
|
124
|
+
*/
|
|
125
|
+
export declare function reviewTargetOf(team: Team | null): {
|
|
126
|
+
target: string;
|
|
127
|
+
fallback: boolean;
|
|
128
|
+
};
|
|
129
|
+
/** Inputs of {@link selectReviewBatches}. */
|
|
130
|
+
export interface SelectInput {
|
|
131
|
+
tickets: HygieneTicket[];
|
|
132
|
+
teams: Team[];
|
|
133
|
+
nowMs: number;
|
|
134
|
+
/** Ticket key → when it was last sent to a lead (ms) */
|
|
135
|
+
sentAt: Readonly<Record<string, number>>;
|
|
136
|
+
/** Tickets the sweep found orphaned (ticket key → reason); they are listed even when not stale */
|
|
137
|
+
orphans?: ReadonlyMap<string, OrphanReason>;
|
|
138
|
+
/** Teams that must not be woken (paused) */
|
|
139
|
+
skipTeamIds?: ReadonlySet<string>;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Group the stale tickets by owning team, drop the ones sent within the
|
|
143
|
+
* cooldown, and cap each batch. A team with nothing stale has no batch.
|
|
144
|
+
*
|
|
145
|
+
* A ticket belongs to its `team`, else to the team its assignee is on, else to
|
|
146
|
+
* the only team working on its project, else to the orchestrator.
|
|
147
|
+
*
|
|
148
|
+
* @param input - Tickets, teams, clock, memory
|
|
149
|
+
* @returns One batch per team that has something to decide
|
|
150
|
+
*/
|
|
151
|
+
export declare function selectReviewBatches(input: SelectInput): ReviewBatch[];
|
|
152
|
+
/**
|
|
153
|
+
* The brief the lead receives (WorkItem `briefMarkdown`): the list, the four
|
|
154
|
+
* ways to decide, and the rule that nothing here goes to the owner.
|
|
155
|
+
*
|
|
156
|
+
* @param batch - The batch
|
|
157
|
+
* @returns Markdown
|
|
158
|
+
*/
|
|
159
|
+
export declare function buildReviewBrief(batch: ReviewBatch): string;
|
|
160
|
+
//# sourceMappingURL=ticket-hygiene.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticket-hygiene.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-hygiene.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,sBAAsB,CAAC;AAM7D,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAA0D,CAAC;AAKhH,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,EAAE,CAAC;CACf;AAED,+CAA+C;AAC/C,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6BAA6B;AAC7B,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,KAAK,EAAE,OAAO,CAAC;IACf,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIhE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,WAAW,GAAG,KAAK,CAAC,GAAG,MAAM,CAW5G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAatF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,+CAA+C;AAC/C,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,YAAY,GAAG,IAAI,CASlH;AAED,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,eAAe,CAAC;IAC3B,kCAAkC;IAClC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,2DAA2D;AAC3D,MAAM,WAAW,WAAW;IAC1B,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,sBAAsB,EAAE,OAAO,CAAC;IAChC,yGAAyG;IACzG,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAMvF;AAED,6CAA6C;AAC7C,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzC,kGAAkG;IAClG,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAiDrE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAsC3D"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ticket hygiene, pure half: when is a ticket stale, which stale tickets go to
|
|
3
|
+
* which lead today, and the brief that lead receives.
|
|
4
|
+
*
|
|
5
|
+
* Kept free of I/O so the thresholds, the cooldown and the batching are easy to
|
|
6
|
+
* test; {@link ./ticket-hygiene.service} does the reading and writing.
|
|
7
|
+
*
|
|
8
|
+
* @module services/project-tickets/ticket-hygiene
|
|
9
|
+
*/
|
|
10
|
+
import { ORCHESTRATOR_SESSION_NAME, TICKET_HYGIENE_CONSTANTS } from '../../constants.js';
|
|
11
|
+
import { getTeamLeads } from '../../utils/team.utils.js';
|
|
12
|
+
const C = TICKET_HYGIENE_CONSTANTS;
|
|
13
|
+
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
14
|
+
/** Statuses of a ticket that still counts as open work. */
|
|
15
|
+
export const OPEN_TICKET_STATUSES = new Set(['backlog', 'ready', 'in_progress', 'review']);
|
|
16
|
+
/** Labels that say "leave this alone for now" (the autopilot's park / owner-wait labels). */
|
|
17
|
+
const QUIET_LABELS = new Set(['parked', 'deferred', 'needs-owner']);
|
|
18
|
+
/**
|
|
19
|
+
* The days of silence after which a ticket of this status is stale.
|
|
20
|
+
*
|
|
21
|
+
* @param status - Ticket status
|
|
22
|
+
* @returns Days, or null when the status is not open
|
|
23
|
+
*/
|
|
24
|
+
export function staleThresholdDays(status) {
|
|
25
|
+
if (status === 'in_progress' || status === 'review')
|
|
26
|
+
return C.STALE_ACTIVE_DAYS;
|
|
27
|
+
if (status === 'ready' || status === 'backlog')
|
|
28
|
+
return C.STALE_IDLE_DAYS;
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The time of a ticket's last real activity: the later of `updatedAt` and its
|
|
33
|
+
* newest Log line, ignoring lines the hygiene sweep wrote itself (a flag the
|
|
34
|
+
* sweep adds is not someone working on the ticket).
|
|
35
|
+
*
|
|
36
|
+
* @param t - Ticket
|
|
37
|
+
* @returns Epoch ms (0 when nothing parses)
|
|
38
|
+
*/
|
|
39
|
+
export function ticketLastActivityMs(t) {
|
|
40
|
+
let best = Date.parse(t.updatedAt);
|
|
41
|
+
if (!Number.isFinite(best))
|
|
42
|
+
best = Date.parse(t.createdAt);
|
|
43
|
+
if (!Number.isFinite(best))
|
|
44
|
+
best = 0;
|
|
45
|
+
for (const line of t.log ?? []) {
|
|
46
|
+
const m = /^(\S+) · ([^·]+?) · /.exec(line);
|
|
47
|
+
if (!m || m[2] === C.ACTOR)
|
|
48
|
+
continue;
|
|
49
|
+
const at = Date.parse(m[1]);
|
|
50
|
+
if (Number.isFinite(at) && at > best)
|
|
51
|
+
best = at;
|
|
52
|
+
}
|
|
53
|
+
return best;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Whether a ticket is stale right now.
|
|
57
|
+
*
|
|
58
|
+
* Not stale: closed tickets, tickets labelled parked / deferred / needs-owner,
|
|
59
|
+
* tickets deferred to a later date, and a `review` ticket that waits for the
|
|
60
|
+
* owner (`ownerReview`) — nobody on the team can decide that one.
|
|
61
|
+
*
|
|
62
|
+
* @param t - Ticket
|
|
63
|
+
* @param nowMs - Clock
|
|
64
|
+
* @returns Staleness
|
|
65
|
+
*/
|
|
66
|
+
export function ticketStaleness(t, nowMs) {
|
|
67
|
+
const lastMs = ticketLastActivityMs(t);
|
|
68
|
+
const thresholdDays = staleThresholdDays(t.status);
|
|
69
|
+
const idleDays = lastMs > 0 ? Math.max(0, Math.floor((nowMs - lastMs) / DAY_MS)) : 0;
|
|
70
|
+
const base = { idleDays, lastActivityAt: new Date(lastMs).toISOString(), thresholdDays };
|
|
71
|
+
if (thresholdDays === null || lastMs === 0)
|
|
72
|
+
return { ...base, stale: false };
|
|
73
|
+
if ((t.labels ?? []).some((l) => QUIET_LABELS.has(l)))
|
|
74
|
+
return { ...base, stale: false };
|
|
75
|
+
if (t.status === 'review' && t.ownerReview)
|
|
76
|
+
return { ...base, stale: false };
|
|
77
|
+
if (t.deferUntil) {
|
|
78
|
+
const until = Date.parse(t.deferUntil);
|
|
79
|
+
if (Number.isFinite(until) && until > nowMs)
|
|
80
|
+
return { ...base, stale: false };
|
|
81
|
+
}
|
|
82
|
+
return { ...base, stale: nowMs - lastMs >= thresholdDays * DAY_MS };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Whether a name looks like an agent session (`<team>-<name>-<8 hex>`), as
|
|
86
|
+
* opposed to a person's name. Only agent-looking assignees can be orphaned.
|
|
87
|
+
*
|
|
88
|
+
* @param name - Assignee
|
|
89
|
+
* @returns True for a session-shaped name
|
|
90
|
+
*/
|
|
91
|
+
export function looksLikeAgentSession(name) {
|
|
92
|
+
return /^[a-z0-9][a-z0-9-]*-[0-9a-f]{8}$/.test(name);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether a ticket's assignee or team no longer exists.
|
|
96
|
+
*
|
|
97
|
+
* @param t - Ticket
|
|
98
|
+
* @param teams - All teams
|
|
99
|
+
* @returns The missing parts, or null when both (that are set) exist
|
|
100
|
+
*/
|
|
101
|
+
export function orphanReason(t, teams) {
|
|
102
|
+
const live = teams.filter((x) => !x.archived);
|
|
103
|
+
const reason = {};
|
|
104
|
+
if (t.team && !live.some((x) => x.id === t.team))
|
|
105
|
+
reason.team = t.team;
|
|
106
|
+
if (t.assignee && t.assignee !== ORCHESTRATOR_SESSION_NAME && looksLikeAgentSession(t.assignee)) {
|
|
107
|
+
const known = live.some((x) => (x.members ?? []).some((m) => m.sessionName === t.assignee || m.agentId === t.assignee));
|
|
108
|
+
if (!known)
|
|
109
|
+
reason.assignee = t.assignee;
|
|
110
|
+
}
|
|
111
|
+
return reason.assignee || reason.team ? reason : null;
|
|
112
|
+
}
|
|
113
|
+
/** Key of a ticket in the "already sent" memory. */
|
|
114
|
+
export function ticketKey(projectPath, id) {
|
|
115
|
+
return `${projectPath}#${id}`;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* The session that decides a team's stale tickets: its first lead that has a
|
|
119
|
+
* session, else the orchestrator.
|
|
120
|
+
*
|
|
121
|
+
* @param team - Team (null = no team)
|
|
122
|
+
* @returns Session and whether it is the fallback
|
|
123
|
+
*/
|
|
124
|
+
export function reviewTargetOf(team) {
|
|
125
|
+
if (team) {
|
|
126
|
+
const lead = getTeamLeads(team).find((m) => !!(m.sessionName || m.agentId));
|
|
127
|
+
if (lead)
|
|
128
|
+
return { target: (lead.sessionName || lead.agentId), fallback: false };
|
|
129
|
+
}
|
|
130
|
+
return { target: ORCHESTRATOR_SESSION_NAME, fallback: true };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Group the stale tickets by owning team, drop the ones sent within the
|
|
134
|
+
* cooldown, and cap each batch. A team with nothing stale has no batch.
|
|
135
|
+
*
|
|
136
|
+
* A ticket belongs to its `team`, else to the team its assignee is on, else to
|
|
137
|
+
* the only team working on its project, else to the orchestrator.
|
|
138
|
+
*
|
|
139
|
+
* @param input - Tickets, teams, clock, memory
|
|
140
|
+
* @returns One batch per team that has something to decide
|
|
141
|
+
*/
|
|
142
|
+
export function selectReviewBatches(input) {
|
|
143
|
+
const live = input.teams.filter((t) => !t.archived);
|
|
144
|
+
const byId = new Map(live.map((t) => [t.id, t]));
|
|
145
|
+
const teamOfSession = new Map();
|
|
146
|
+
for (const t of live)
|
|
147
|
+
for (const m of t.members ?? [])
|
|
148
|
+
for (const s of [m.sessionName, m.agentId])
|
|
149
|
+
if (s && !teamOfSession.has(s))
|
|
150
|
+
teamOfSession.set(s, t);
|
|
151
|
+
const cooldownMs = C.REVIEW_COOLDOWN_DAYS * DAY_MS;
|
|
152
|
+
const groups = new Map();
|
|
153
|
+
for (const ticket of input.tickets) {
|
|
154
|
+
if (!OPEN_TICKET_STATUSES.has(ticket.status))
|
|
155
|
+
continue;
|
|
156
|
+
const staleness = ticketStaleness(ticket, input.nowMs);
|
|
157
|
+
const orphan = input.orphans?.get(ticketKey(ticket.projectPath, ticket.id));
|
|
158
|
+
const reasons = [];
|
|
159
|
+
if (staleness.stale)
|
|
160
|
+
reasons.push('stale');
|
|
161
|
+
if (orphan)
|
|
162
|
+
reasons.push('orphaned');
|
|
163
|
+
if (reasons.length === 0)
|
|
164
|
+
continue;
|
|
165
|
+
const sent = input.sentAt[ticketKey(ticket.projectPath, ticket.id)];
|
|
166
|
+
if (sent !== undefined && input.nowMs - sent < cooldownMs)
|
|
167
|
+
continue;
|
|
168
|
+
const projectTeams = live.filter((t) => (t.projectIds ?? []).includes(ticket.projectId));
|
|
169
|
+
const team = (ticket.team && byId.get(ticket.team)) ||
|
|
170
|
+
(ticket.assignee ? teamOfSession.get(ticket.assignee) : undefined) ||
|
|
171
|
+
// A project with exactly one team: that team owns its unowned tickets.
|
|
172
|
+
(projectTeams.length === 1 ? projectTeams[0] : undefined) ||
|
|
173
|
+
null;
|
|
174
|
+
if (team && input.skipTeamIds?.has(team.id))
|
|
175
|
+
continue;
|
|
176
|
+
const key = team ? team.id : 'orchestrator';
|
|
177
|
+
const g = groups.get(key) ?? { team, list: [] };
|
|
178
|
+
g.list.push({ ticket, staleness, reasons });
|
|
179
|
+
groups.set(key, g);
|
|
180
|
+
}
|
|
181
|
+
const batches = [];
|
|
182
|
+
for (const [key, g] of groups) {
|
|
183
|
+
const sorted = g.list.sort((a, b) => b.staleness.idleDays - a.staleness.idleDays || a.ticket.projectPath.localeCompare(b.ticket.projectPath) || a.ticket.id.localeCompare(b.ticket.id, undefined, { numeric: true }));
|
|
184
|
+
const { target, fallback } = reviewTargetOf(g.team);
|
|
185
|
+
batches.push({
|
|
186
|
+
key,
|
|
187
|
+
teamId: g.team?.id ?? null,
|
|
188
|
+
teamName: g.team?.name ?? 'No team',
|
|
189
|
+
target,
|
|
190
|
+
fallbackToOrchestrator: fallback,
|
|
191
|
+
candidates: sorted.slice(0, C.MAX_TICKETS_PER_REVIEW),
|
|
192
|
+
more: Math.max(0, sorted.length - C.MAX_TICKETS_PER_REVIEW),
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return batches.sort((a, b) => a.key.localeCompare(b.key));
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* The brief the lead receives (WorkItem `briefMarkdown`): the list, the four
|
|
199
|
+
* ways to decide, and the rule that nothing here goes to the owner.
|
|
200
|
+
*
|
|
201
|
+
* @param batch - The batch
|
|
202
|
+
* @returns Markdown
|
|
203
|
+
*/
|
|
204
|
+
export function buildReviewBrief(batch) {
|
|
205
|
+
const tk = '$AGENT_SKILLS_PATH/core/project-tickets/execute.sh';
|
|
206
|
+
const n = batch.candidates.length;
|
|
207
|
+
const lines = [
|
|
208
|
+
`# Ticket review — ${batch.teamName} (${n} ticket${n === 1 ? '' : 's'})`,
|
|
209
|
+
'',
|
|
210
|
+
'These tickets have had no activity for a while, so status views (Drive mode, boards) may show them wrongly.',
|
|
211
|
+
`Decide every ticket below, then complete this WorkItem (complete-task with its id) with one line per ticket saying what you did. This is internal housekeeping: do not message the owner about it.`,
|
|
212
|
+
'',
|
|
213
|
+
'## For each ticket, do one of these',
|
|
214
|
+
'',
|
|
215
|
+
`1. **Finished** — a ticket in progress or in review: \`bash ${tk} update --project <PROJECT> --id <ID> --status done --note "<what shipped / where>"\`. A backlog or ready ticket cannot go straight to done: cancel it with the note "already done: <evidence>".`,
|
|
216
|
+
`2. **No longer wanted** — \`bash ${tk} update --project <PROJECT> --id <ID> --status cancelled --note "<why>"\`.`,
|
|
217
|
+
`3. **Still valid** — leave it and say so: \`bash ${tk} log --project <PROJECT> --id <ID> --note "still valid: <one line — status / next step / blocker>"\`. A ticket not worth doing soon: \`… update --project <PROJECT> --id <ID> --defer-until YYYY-MM-DD\`.`,
|
|
218
|
+
`4. **Status is wrong** — move it (\`… update --project <PROJECT> --id <ID> --status ready|review|…\`) or reassign it (\`… assign --project <PROJECT> --id <ID> --to <member>\`) with a one-line note. A ticket marked orphaned lost its assignee or team: give it a new owner or cancel it.`,
|
|
219
|
+
'',
|
|
220
|
+
'Look at the ticket (`… show --project <PROJECT> --id <ID>`) and its linked work before deciding; do not close work you cannot confirm. Any of these actions counts as the review, so a reviewed ticket is not listed again for a few days.',
|
|
221
|
+
'',
|
|
222
|
+
'## Tickets',
|
|
223
|
+
'',
|
|
224
|
+
];
|
|
225
|
+
for (const c of batch.candidates) {
|
|
226
|
+
const t = c.ticket;
|
|
227
|
+
const last = c.staleness.lastActivityAt.slice(0, 10);
|
|
228
|
+
const bits = [
|
|
229
|
+
`**${t.id}**`,
|
|
230
|
+
`[${t.status}]`,
|
|
231
|
+
clip(t.title, C.TITLE_MAX_CHARS),
|
|
232
|
+
`project \`${t.projectId}\` (${t.projectName})`,
|
|
233
|
+
`no activity for ${c.staleness.idleDays} day${c.staleness.idleDays === 1 ? '' : 's'} (last ${last})`,
|
|
234
|
+
t.assignee ? `assignee ${t.assignee}` : 'unassigned',
|
|
235
|
+
];
|
|
236
|
+
if (c.reasons.includes('orphaned'))
|
|
237
|
+
bits.push('ORPHANED (assignee or team no longer exists)');
|
|
238
|
+
lines.push(`- ${bits.join(' · ')}`);
|
|
239
|
+
}
|
|
240
|
+
if (batch.more > 0)
|
|
241
|
+
lines.push('', `${batch.more} more stale ticket${batch.more === 1 ? '' : 's'} will be listed in a later review.`);
|
|
242
|
+
lines.push('', `List all tickets of a project: \`bash ${tk} list --project <PROJECT>\`.`);
|
|
243
|
+
return lines.join('\n');
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Cut a one-line string.
|
|
247
|
+
*
|
|
248
|
+
* @param text - Text
|
|
249
|
+
* @param max - Max characters
|
|
250
|
+
* @returns Text on one line, within `max`
|
|
251
|
+
*/
|
|
252
|
+
function clip(text, max) {
|
|
253
|
+
const one = String(text ?? '').replace(/\s+/g, ' ').trim();
|
|
254
|
+
return one.length <= max ? one : `${one.slice(0, max - 1)}…`;
|
|
255
|
+
}
|
|
256
|
+
//# sourceMappingURL=ticket-hygiene.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticket-hygiene.js","sourceRoot":"","sources":["../../../../../../backend/src/services/project-tickets/ticket-hygiene.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,GAAG,wBAAwB,CAAC;AACnC,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEnC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,oBAAoB,GAAwB,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;AAEhH,6FAA6F;AAC7F,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;AAqCzF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,MAAM,KAAK,aAAa,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC;IAChF,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC,eAAe,CAAC;IACzE,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAA+D;IAClG,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,IAAI,GAAG,CAAC,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK;YAAE,SAAS;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI;YAAE,IAAI,GAAG,EAAE,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,CAAsB,EAAE,KAAa;IACnE,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,aAAa,GAAG,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,CAAC;IACzF,IAAI,aAAa,KAAK,IAAI,IAAI,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACxF,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,CAAC,WAAW;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAC7E,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAChF,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,IAAI,aAAa,GAAG,MAAM,EAAE,CAAC;AACtE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAChD,OAAO,kCAAkC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvD,CAAC;AAQD;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,CAAiD,EAAE,KAAa;IAC3F,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;IACvE,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,KAAK,yBAAyB,IAAI,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxH,IAAI,CAAC,KAAK;YAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3C,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AA0BD,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,EAAU;IACvD,OAAO,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAiB;IAC9C,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,yBAAyB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC/D,CAAC;AAeD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE;YAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3J,MAAM,UAAU,GAAG,CAAC,CAAC,oBAAoB,GAAG,MAAM,CAAC;IAEnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0D,CAAC;IACjF,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,SAAS;QACvD,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,SAAS,CAAC,KAAK;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,UAAU;YAAE,SAAS;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACzF,MAAM,IAAI,GACR,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,uEAAuE;YACvE,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACzD,IAAI,CAAC;QACP,IAAI,IAAI,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,MAAM,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CACxB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAC1L,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG;YACH,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;YAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS;YACnC,MAAM;YACN,sBAAsB,EAAE,QAAQ;YAChC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC;YACrD,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,sBAAsB,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAkB;IACjD,MAAM,EAAE,GAAG,oDAAoD,CAAC;IAChE,MAAM,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;IAClC,MAAM,KAAK,GAAa;QACtB,qBAAqB,KAAK,CAAC,QAAQ,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG;QACxE,EAAE;QACF,6GAA6G;QAC7G,oMAAoM;QACpM,EAAE;QACF,qCAAqC;QACrC,EAAE;QACF,+DAA+D,EAAE,kMAAkM;QACnQ,oCAAoC,EAAE,4EAA4E;QAClH,oDAAoD,EAAE,2MAA2M;QACjQ,6RAA6R;QAC7R,EAAE;QACF,4OAA4O;QAC5O,EAAE;QACF,YAAY;QACZ,EAAE;KACH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACnB,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,IAAI,GAAG;YACX,KAAK,CAAC,CAAC,EAAE,IAAI;YACb,IAAI,CAAC,CAAC,MAAM,GAAG;YACf,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;YAChC,aAAa,CAAC,CAAC,SAAS,OAAO,CAAC,CAAC,WAAW,GAAG;YAC/C,mBAAmB,CAAC,CAAC,SAAS,CAAC,QAAQ,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG;YACpG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,YAAY;SACrD,CAAC;QACF,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;QAC9F,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,IAAI,qBAAqB,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,oCAAoC,CAAC,CAAC;IACtI,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,yCAAyC,EAAE,8BAA8B,CAAC,CAAC;IAC1F,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;GAMG;AACH,SAAS,IAAI,CAAC,IAAY,EAAE,GAAW;IACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;AAC/D,CAAC"}
|