crewly 1.20.216 → 1.20.218

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 (168) hide show
  1. package/config/skills/agent/core/project-tickets/SKILL.md +17 -1
  2. package/config/skills/agent/core/project-tickets/execute.sh +14 -4
  3. package/config/skills/agent/core/project-tickets/execute.test.sh +6 -0
  4. package/config/skills/agent/core/publish-app/SKILL.md +18 -11
  5. package/config/skills/agent/core/publish-app/execute.sh +1 -1
  6. package/dist/backend/backend/src/constants.d.ts +32 -1
  7. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  8. package/dist/backend/backend/src/constants.js +32 -1
  9. package/dist/backend/backend/src/constants.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts +2 -2
  11. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js +4 -2
  13. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.controller.js.map +1 -1
  14. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.d.ts +1 -1
  15. package/dist/backend/backend/src/controllers/project-tickets/project-tickets.routes.js +1 -1
  16. package/dist/backend/backend/src/index.d.ts.map +1 -1
  17. package/dist/backend/backend/src/index.js +29 -3
  18. package/dist/backend/backend/src/index.js.map +1 -1
  19. package/dist/backend/backend/src/models/Team.d.ts +17 -0
  20. package/dist/backend/backend/src/models/Team.d.ts.map +1 -1
  21. package/dist/backend/backend/src/models/Team.js +28 -10
  22. package/dist/backend/backend/src/models/Team.js.map +1 -1
  23. package/dist/backend/backend/src/scripts/input-guard-classify.d.ts +24 -0
  24. package/dist/backend/backend/src/scripts/input-guard-classify.d.ts.map +1 -1
  25. package/dist/backend/backend/src/scripts/input-guard-classify.js +38 -5
  26. package/dist/backend/backend/src/scripts/input-guard-classify.js.map +1 -1
  27. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts +26 -0
  28. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js +41 -0
  30. package/dist/backend/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  31. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts +67 -9
  32. package/dist/backend/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/monitoring/token-usage.service.js +57 -10
  34. package/dist/backend/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  35. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts +2 -0
  36. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js +9 -0
  38. package/dist/backend/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  39. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts +17 -0
  40. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js +21 -0
  42. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-decision.js.map +1 -1
  43. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts +4 -3
  44. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js +6 -4
  46. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-messages.js.map +1 -1
  47. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts +6 -0
  48. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js +4 -0
  50. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot-stats.js.map +1 -1
  51. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts +23 -5
  52. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js +42 -21
  54. package/dist/backend/backend/src/services/project-tickets/ticket-autopilot.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/project-tickets/ticket-file.js +20 -1
  57. package/dist/backend/backend/src/services/project-tickets/ticket-file.js.map +1 -1
  58. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +7 -0
  60. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  61. package/dist/backend/backend/src/services/session/input-circuit-breaker.d.ts +130 -0
  62. package/dist/backend/backend/src/services/session/input-circuit-breaker.d.ts.map +1 -0
  63. package/dist/backend/backend/src/services/session/input-circuit-breaker.js +180 -0
  64. package/dist/backend/backend/src/services/session/input-circuit-breaker.js.map +1 -0
  65. package/dist/backend/backend/src/services/session/input-guard-known-screens.d.ts +41 -0
  66. package/dist/backend/backend/src/services/session/input-guard-known-screens.d.ts.map +1 -0
  67. package/dist/backend/backend/src/services/session/input-guard-known-screens.js +168 -0
  68. package/dist/backend/backend/src/services/session/input-guard-known-screens.js.map +1 -0
  69. package/dist/backend/backend/src/services/session/input-ledger.d.ts +2 -1
  70. package/dist/backend/backend/src/services/session/input-ledger.d.ts.map +1 -1
  71. package/dist/backend/backend/src/services/session/input-ledger.js +5 -1
  72. package/dist/backend/backend/src/services/session/input-ledger.js.map +1 -1
  73. package/dist/backend/backend/src/services/session/session-command-helper.d.ts +52 -0
  74. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  75. package/dist/backend/backend/src/services/session/session-command-helper.js +155 -3
  76. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  77. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts +81 -1
  78. package/dist/backend/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  79. package/dist/backend/backend/src/services/session/tui-input-guard.js +238 -45
  80. package/dist/backend/backend/src/services/session/tui-input-guard.js.map +1 -1
  81. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts +5 -1
  82. package/dist/backend/backend/src/services/spend/spend-cap.service.d.ts.map +1 -1
  83. package/dist/backend/backend/src/services/spend/spend-cap.service.js +3 -1
  84. package/dist/backend/backend/src/services/spend/spend-cap.service.js.map +1 -1
  85. package/dist/backend/backend/src/services/spend/spend-ledger.service.d.ts +21 -7
  86. package/dist/backend/backend/src/services/spend/spend-ledger.service.d.ts.map +1 -1
  87. package/dist/backend/backend/src/services/spend/spend-ledger.service.js +35 -17
  88. package/dist/backend/backend/src/services/spend/spend-ledger.service.js.map +1 -1
  89. package/dist/backend/backend/src/services/system/input-guard-release-check.d.ts +10 -1
  90. package/dist/backend/backend/src/services/system/input-guard-release-check.d.ts.map +1 -1
  91. package/dist/backend/backend/src/services/system/input-guard-release-check.js +15 -2
  92. package/dist/backend/backend/src/services/system/input-guard-release-check.js.map +1 -1
  93. package/dist/backend/backend/src/services/tl-delegation/lead-share.d.ts +8 -1
  94. package/dist/backend/backend/src/services/tl-delegation/lead-share.d.ts.map +1 -1
  95. package/dist/backend/backend/src/services/tl-delegation/lead-share.js +11 -6
  96. package/dist/backend/backend/src/services/tl-delegation/lead-share.js.map +1 -1
  97. package/dist/backend/backend/src/types/project-ticket.types.d.ts +5 -0
  98. package/dist/backend/backend/src/types/project-ticket.types.d.ts.map +1 -1
  99. package/dist/backend/backend/src/types/project-ticket.types.js +1 -0
  100. package/dist/backend/backend/src/types/project-ticket.types.js.map +1 -1
  101. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  102. package/dist/backend/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  103. package/dist/backend/backend/src/types/ticket-autopilot.types.js +28 -0
  104. package/dist/backend/backend/src/types/ticket-autopilot.types.js.map +1 -1
  105. package/dist/backend/build-info.json +2 -2
  106. package/dist/cli/backend/src/constants.d.ts +32 -1
  107. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  108. package/dist/cli/backend/src/constants.js +32 -1
  109. package/dist/cli/backend/src/constants.js.map +1 -1
  110. package/dist/cli/backend/src/models/Team.d.ts +17 -0
  111. package/dist/cli/backend/src/models/Team.d.ts.map +1 -1
  112. package/dist/cli/backend/src/models/Team.js +28 -10
  113. package/dist/cli/backend/src/models/Team.js.map +1 -1
  114. package/dist/cli/backend/src/scripts/input-guard-classify.d.ts +24 -0
  115. package/dist/cli/backend/src/scripts/input-guard-classify.d.ts.map +1 -1
  116. package/dist/cli/backend/src/scripts/input-guard-classify.js +38 -5
  117. package/dist/cli/backend/src/scripts/input-guard-classify.js.map +1 -1
  118. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts +26 -0
  119. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.d.ts.map +1 -1
  120. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js +41 -0
  121. package/dist/cli/backend/src/services/messaging/input-blocked-retry.service.js.map +1 -1
  122. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts +67 -9
  123. package/dist/cli/backend/src/services/monitoring/token-usage.service.d.ts.map +1 -1
  124. package/dist/cli/backend/src/services/monitoring/token-usage.service.js +57 -10
  125. package/dist/cli/backend/src/services/monitoring/token-usage.service.js.map +1 -1
  126. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts +2 -0
  127. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.d.ts.map +1 -1
  128. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js +9 -0
  129. package/dist/cli/backend/src/services/project-tickets/project-ticket.service.js.map +1 -1
  130. package/dist/cli/backend/src/services/project-tickets/ticket-file.d.ts.map +1 -1
  131. package/dist/cli/backend/src/services/project-tickets/ticket-file.js +20 -1
  132. package/dist/cli/backend/src/services/project-tickets/ticket-file.js.map +1 -1
  133. package/dist/cli/backend/src/services/session/input-circuit-breaker.d.ts +130 -0
  134. package/dist/cli/backend/src/services/session/input-circuit-breaker.d.ts.map +1 -0
  135. package/dist/cli/backend/src/services/session/input-circuit-breaker.js +180 -0
  136. package/dist/cli/backend/src/services/session/input-circuit-breaker.js.map +1 -0
  137. package/dist/cli/backend/src/services/session/input-guard-known-screens.d.ts +41 -0
  138. package/dist/cli/backend/src/services/session/input-guard-known-screens.d.ts.map +1 -0
  139. package/dist/cli/backend/src/services/session/input-guard-known-screens.js +168 -0
  140. package/dist/cli/backend/src/services/session/input-guard-known-screens.js.map +1 -0
  141. package/dist/cli/backend/src/services/session/input-ledger.d.ts +2 -1
  142. package/dist/cli/backend/src/services/session/input-ledger.d.ts.map +1 -1
  143. package/dist/cli/backend/src/services/session/input-ledger.js +5 -1
  144. package/dist/cli/backend/src/services/session/input-ledger.js.map +1 -1
  145. package/dist/cli/backend/src/services/session/session-command-helper.d.ts +52 -0
  146. package/dist/cli/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  147. package/dist/cli/backend/src/services/session/session-command-helper.js +155 -3
  148. package/dist/cli/backend/src/services/session/session-command-helper.js.map +1 -1
  149. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts +81 -1
  150. package/dist/cli/backend/src/services/session/tui-input-guard.d.ts.map +1 -1
  151. package/dist/cli/backend/src/services/session/tui-input-guard.js +238 -45
  152. package/dist/cli/backend/src/services/session/tui-input-guard.js.map +1 -1
  153. package/dist/cli/backend/src/services/system/input-guard-release-check.d.ts +10 -1
  154. package/dist/cli/backend/src/services/system/input-guard-release-check.d.ts.map +1 -1
  155. package/dist/cli/backend/src/services/system/input-guard-release-check.js +15 -2
  156. package/dist/cli/backend/src/services/system/input-guard-release-check.js.map +1 -1
  157. package/dist/cli/backend/src/types/project-ticket.types.d.ts +5 -0
  158. package/dist/cli/backend/src/types/project-ticket.types.d.ts.map +1 -1
  159. package/dist/cli/backend/src/types/project-ticket.types.js +1 -0
  160. package/dist/cli/backend/src/types/project-ticket.types.js.map +1 -1
  161. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts +9 -0
  162. package/dist/cli/backend/src/types/ticket-autopilot.types.d.ts.map +1 -1
  163. package/dist/cli/backend/src/types/ticket-autopilot.types.js +28 -0
  164. package/dist/cli/backend/src/types/ticket-autopilot.types.js.map +1 -1
  165. package/dist/cli/cli/src/commands/doctor.d.ts.map +1 -1
  166. package/dist/cli/cli/src/commands/doctor.js +10 -3
  167. package/dist/cli/cli/src/commands/doctor.js.map +1 -1
  168. package/package.json +1 -1
@@ -14,6 +14,19 @@ export declare class TeamModel implements Team {
14
14
  paused?: TeamPauseState;
15
15
  /** Where other agents file work while the team is paused */
16
16
  issueRepo?: string;
17
+ worktrees?: Team['worktrees'];
18
+ archived?: boolean;
19
+ archivedAt?: string;
20
+ mission?: string;
21
+ budget?: Team['budget'];
22
+ qualityGate?: Team['qualityGate'];
23
+ recoveryPolicy?: Team['recoveryPolicy'];
24
+ ownerUserId?: string;
25
+ ownershipScope?: Team['ownershipScope'];
26
+ serviceContract?: Team['serviceContract'];
27
+ triggers?: Team['triggers'];
28
+ /** Fields this class does not know about (a newer version, a plugin): kept as stored, never dropped. */
29
+ [extra: string]: unknown;
17
30
  createdAt: string;
18
31
  updatedAt: string;
19
32
  constructor(data: Partial<Team>);
@@ -23,6 +36,10 @@ export declare class TeamModel implements Team {
23
36
  removeMember(memberId: string): void;
24
37
  updateMember(memberId: string, updates: Partial<TeamMember>): void;
25
38
  assignTicketsToMember(memberId: string, ticketIds: string[]): void;
39
+ /**
40
+ * Serialise every own field (declared or not), core fields first. Fields
41
+ * left undefined are omitted, as JSON.stringify would drop them anyway.
42
+ */
26
43
  toJSON(): Team;
27
44
  static fromJSON(data: Team): TeamModel;
28
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIrE,qBAAa,SAAU,YAAW,IAAI;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;gBAEN,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAiB/B,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOxC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAYlE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASlE,MAAM,IAAI,IAAI;IAmBd,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;CA+DvC"}
1
+ {"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIrE,qBAAa,SAAU,YAAW,IAAI;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,WAAW,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,cAAc,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACxC,eAAe,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5B,wGAAwG;IACxG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;gBAEN,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC;IAoB/B,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAOxC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK5C,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKpC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI;IAYlE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IASlE;;;OAGG;IACH,MAAM,IAAI,IAAI;IAgBd,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS;CAiEvC"}
@@ -15,9 +15,23 @@ export class TeamModel {
15
15
  paused;
16
16
  /** Where other agents file work while the team is paused */
17
17
  issueRepo;
18
+ worktrees;
19
+ archived;
20
+ archivedAt;
21
+ mission;
22
+ budget;
23
+ qualityGate;
24
+ recoveryPolicy;
25
+ ownerUserId;
26
+ ownershipScope;
27
+ serviceContract;
28
+ triggers;
18
29
  createdAt;
19
30
  updatedAt;
20
31
  constructor(data) {
32
+ // Keep every stored field (known or not) so a read -> save round trip never
33
+ // drops one (#1071); the named assignments below add the defaults.
34
+ Object.assign(this, data);
21
35
  this.id = data.id || '';
22
36
  this.name = data.name || '';
23
37
  this.description = data.description;
@@ -70,23 +84,25 @@ export class TeamModel {
70
84
  this.updatedAt = new Date().toISOString();
71
85
  }
72
86
  }
87
+ /**
88
+ * Serialise every own field (declared or not), core fields first. Fields
89
+ * left undefined are omitted, as JSON.stringify would drop them anyway.
90
+ */
73
91
  toJSON() {
74
- return {
92
+ const out = {
75
93
  id: this.id,
76
94
  name: this.name,
77
95
  description: this.description,
78
96
  members: this.members,
79
97
  projectIds: this.projectIds,
80
- ...(this.hierarchical !== undefined ? { hierarchical: this.hierarchical } : {}),
81
- ...(this.leaderId !== undefined ? { leaderId: this.leaderId } : {}),
82
- ...(this.leaderIds !== undefined ? { leaderIds: this.leaderIds } : {}),
83
- ...(this.templateId !== undefined ? { templateId: this.templateId } : {}),
84
- ...(this.parentTeamId !== undefined ? { parentTeamId: this.parentTeamId } : {}),
85
- ...(this.paused !== undefined ? { paused: this.paused } : {}),
86
- ...(this.issueRepo !== undefined ? { issueRepo: this.issueRepo } : {}),
87
- createdAt: this.createdAt,
88
- updatedAt: this.updatedAt,
89
98
  };
99
+ for (const [key, value] of Object.entries(this)) {
100
+ if (value !== undefined && !(key in out))
101
+ out[key] = value;
102
+ }
103
+ out.createdAt = this.createdAt;
104
+ out.updatedAt = this.updatedAt;
105
+ return out;
90
106
  }
91
107
  static fromJSON(data) {
92
108
  // Handle data migration from legacy format
@@ -98,6 +114,8 @@ export class TeamModel {
98
114
  else {
99
115
  migratedData.projectIds = data.projectIds || [];
100
116
  }
117
+ // The legacy field is migrated away (it is not carried through now that unknown fields are kept).
118
+ delete migratedData.currentProject;
101
119
  // Migration: store the team-lead rule's answer (utils/team.utils) —
102
120
  // explicit leaderIds (or legacy leaderId), else the team-leader /
103
121
  // tech-lead members — and keep leaderId = leaderIds[0]. Idempotent.
@@ -1 +1 @@
1
- {"version":3,"file":"Team.js","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Team.js","sourceRoot":"","sources":["../../../../../backend/src/models/Team.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  * @module backend/scripts/input-guard-classify
12
12
  */
13
13
  import { type TuiInputView } from '../services/session/tui-input-guard.js';
14
+ import { type KnownInputScreen } from '../services/session/input-guard-known-screens.js';
14
15
  /** The message used as the probe: it is never in a box, so only empty / ours-by-marker pass. */
15
16
  export declare const PROBE_MESSAGE = "__probe__";
16
17
  /** One agent's live view, as the backend sends it. */
@@ -19,6 +20,17 @@ export interface InputGuardViewInput {
19
20
  runtime: string;
20
21
  /** Null when the backend has no styled capture for the session */
21
22
  view: TuiInputView | null;
23
+ /**
24
+ * The harness's pastes into this session since the last outside input
25
+ * (input ledger), oldest first: a box holding only those is the
26
+ * harness's own (crewly#1028). Absent from older backends.
27
+ */
28
+ ownPastes?: string[];
29
+ /** Exact markers the box showed for those pastes */
30
+ shownMarkers?: Array<{
31
+ marker: string;
32
+ message: string;
33
+ }>;
22
34
  }
23
35
  /** Verdict for one agent. */
24
36
  export type InputGuardVerdict = 'ok' | 'warn' | 'fail' | 'skip';
@@ -33,6 +45,8 @@ export interface InputGuardClassification {
33
45
  verdict: InputGuardVerdict;
34
46
  /** Short English reason */
35
47
  reason: string;
48
+ /** `fixture` for a known recorded screen (session is `fixture:<name>`); absent for a live agent */
49
+ kind?: 'fixture';
36
50
  }
37
51
  /**
38
52
  * Classify live views with this build's guard.
@@ -41,4 +55,14 @@ export interface InputGuardClassification {
41
55
  * @returns One classification per input, in order
42
56
  */
43
57
  export declare function classifyViews(inputs: readonly InputGuardViewInput[]): InputGuardClassification[];
58
+ /**
59
+ * Classify the known recorded screens (crewly#1028 and the labelled-rule
60
+ * frames) with this build's guard. A screen read differently from its
61
+ * expectation is a `fail`: the build would misread a box it has met in
62
+ * production.
63
+ *
64
+ * @param screens - The screens (default: all known ones)
65
+ * @returns One row per screen, session `fixture:<name>`
66
+ */
67
+ export declare function checkKnownScreens(screens?: readonly KnownInputScreen[]): InputGuardClassification[];
44
68
  //# sourceMappingURL=input-guard-classify.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input-guard-classify.d.ts","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAA+C,KAAK,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAExH,gGAAgG;AAChG,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;CACf;AAmCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,CAkChG"}
1
+ {"version":3,"file":"input-guard-classify.d.ts","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAoD,KAAK,YAAY,EAAE,MAAM,wCAAwC,CAAC;AAC7H,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAE9G,gGAAgG;AAChG,eAAO,MAAM,aAAa,cAAc,CAAC;AAEzC,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,oDAAoD;IACpD,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1D;AAED,6BAA6B;AAC7B,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhE,4CAA4C;AAC5C,MAAM,WAAW,wBAAwB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,iBAAiB,CAAC;IAC3B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,mGAAmG;IACnG,IAAI,CAAC,EAAE,SAAS,CAAC;CACjB;AAmCD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GAAG,wBAAwB,EAAE,CAwChG;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,SAAS,gBAAgB,EAAwB,GAAG,wBAAwB,EAAE,CAgBxH"}
@@ -11,7 +11,8 @@
11
11
  * @module backend/scripts/input-guard-classify
12
12
  */
13
13
  import { INPUT_GUARD_CHECK_CONSTANTS, RUNTIME_INPUT_READY_PATTERNS } from '../constants.js';
14
- import { classifyTuiInput, screenShowsTurnInProgress } from '../services/session/tui-input-guard.js';
14
+ import { classifyWithOwnPastes, screenShowsTurnInProgress } from '../services/session/tui-input-guard.js';
15
+ import { KNOWN_INPUT_SCREENS } from '../services/session/input-guard-known-screens.js';
15
16
  /** The message used as the probe: it is never in a box, so only empty / ours-by-marker pass. */
16
17
  export const PROBE_MESSAGE = '__probe__';
17
18
  /**
@@ -55,7 +56,7 @@ function explainMissingBox(lines) {
55
56
  */
56
57
  export function classifyViews(inputs) {
57
58
  return inputs.map((input) => {
58
- const { session, runtime, view } = input;
59
+ const { session, runtime, view, ownPastes, shownMarkers } = input;
59
60
  if (!view) {
60
61
  return { session, runtime, state: 'unknown', idle: true, verdict: 'skip', reason: 'no styled capture for this session (not checked)' };
61
62
  }
@@ -64,13 +65,19 @@ export function classifyViews(inputs) {
64
65
  return { session, runtime, state: 'unknown', idle: true, verdict: 'skip', reason: 'blank screen (session still starting?)' };
65
66
  }
66
67
  const idle = !screenShowsTurnInProgress(screen);
67
- const reading = classifyTuiInput(view, PROBE_MESSAGE, 'before-write');
68
+ const reading = classifyWithOwnPastes(view, PROBE_MESSAGE, 'before-write', ownPastes ?? [], shownMarkers ?? []);
68
69
  const base = { session, runtime, state: reading.state, layout: reading.layout, idle };
69
70
  switch (reading.state) {
70
71
  case 'empty':
71
72
  return { ...base, verdict: 'ok', reason: `empty ${reading.layout} input box` };
72
73
  case 'ours':
73
- return { ...base, verdict: 'ok', reason: `${reading.layout} box holds the harness's own paste` };
74
+ return {
75
+ ...base,
76
+ verdict: 'ok',
77
+ reason: reading.ownPasteMarker && (reading.ownPasteMessages?.length ?? 0) > 0
78
+ ? `${reading.layout} box holds the harness's own paste (${reading.ownPasteMessages?.length} message${reading.ownPasteMessages?.length === 1 ? '' : 's'}); the guard submits it once the agent is idle`
79
+ : `${reading.layout} box holds the harness's own paste`,
80
+ };
74
81
  case 'foreign':
75
82
  return {
76
83
  ...base,
@@ -90,6 +97,32 @@ export function classifyViews(inputs) {
90
97
  }
91
98
  });
92
99
  }
100
+ /**
101
+ * Classify the known recorded screens (crewly#1028 and the labelled-rule
102
+ * frames) with this build's guard. A screen read differently from its
103
+ * expectation is a `fail`: the build would misread a box it has met in
104
+ * production.
105
+ *
106
+ * @param screens - The screens (default: all known ones)
107
+ * @returns One row per screen, session `fixture:<name>`
108
+ */
109
+ export function checkKnownScreens(screens = KNOWN_INPUT_SCREENS) {
110
+ return screens.map((screen) => {
111
+ const reading = classifyWithOwnPastes(screen.view, screen.message, screen.stage, screen.pastes);
112
+ const idle = !screenShowsTurnInProgress(screen.view.lines.join('\n'));
113
+ const ok = reading.state === screen.expect;
114
+ return {
115
+ session: `fixture:${screen.name}`,
116
+ runtime: screen.runtime,
117
+ state: reading.state,
118
+ layout: reading.layout,
119
+ idle,
120
+ kind: 'fixture',
121
+ verdict: ok ? 'ok' : 'fail',
122
+ reason: ok ? screen.why : `read as ${reading.state}, expected ${screen.expect}: ${screen.why}`,
123
+ };
124
+ });
125
+ }
93
126
  /**
94
127
  * Read all of stdin as text.
95
128
  *
@@ -104,7 +137,7 @@ async function readStdin() {
104
137
  /** stdin `{ sessions: InputGuardViewInput[] }` → stdout `{ results: InputGuardClassification[] }`. */
105
138
  async function main() {
106
139
  const parsed = JSON.parse(await readStdin());
107
- process.stdout.write(JSON.stringify({ results: classifyViews(parsed.sessions ?? []) }));
140
+ process.stdout.write(JSON.stringify({ results: [...classifyViews(parsed.sessions ?? []), ...checkKnownScreens()] }));
108
141
  }
109
142
  // Run only when started as a script (also true for the compiled .js).
110
143
  if (/input-guard-classify\.(js|ts)$/.test(process.argv[1] ?? '')) {
@@ -1 +1 @@
1
- {"version":3,"file":"input-guard-classify.js","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAqB,MAAM,wCAAwC,CAAC;AAExH,gGAAgG;AAChG,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AA0BzC;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,KAAwB,EAAE,OAA0B;IACvE,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/I,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACtD,CAAC;AAED,+EAA+E;AAC/E,MAAM,iBAAiB,GAAsB,MAAM,CAAC,MAAM,CAAC,4BAA4B,CAAC;KACtF,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,mBAAmB,IAAI,CAAC,CAAC,CAAC,CAAE,CAA8C,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpJ;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,KAAwB;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACtD,IAAI,QAAQ;QAAE,OAAO,qCAAqC,QAAQ,uCAAuC,CAAC;IAC1G,IAAI,UAAU,CAAC,KAAK,EAAE,2BAA2B,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,2BAA2B,CAAC,cAAc,CAAC,CAAC;IAC7E,IAAI,MAAM;QAAE,OAAO,kDAAkD,MAAM,IAAI,CAAC;IAChF,OAAO,mFAAmF,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,MAAsC;IACnE,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAA4B,EAAE;QACrD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;QACzC,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,kDAAkD,EAAE,CAAC;QACxI,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;QAC9H,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QACtF,QAAQ,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,KAAK,OAAO;gBACX,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,OAAO,CAAC,MAAM,YAAY,EAAE,CAAC;YAChF,KAAK,MAAM;gBACV,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,oCAAoC,EAAE,CAAC;YAClG,KAAK,SAAS;gBACb,OAAO;oBACN,GAAG,IAAI;oBACP,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;oBAC7B,MAAM,EAAE,IAAI;wBACX,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,oBAAoB,OAAO,CAAC,IAAI,CAAC,MAAM,oBAAoB;wBAC9E,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,gCAAgC;iBACpD,CAAC;YACH,OAAO,CAAC,CAAC,CAAC;gBACT,IAAI,CAAC,IAAI;oBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,uDAAuD,EAAE,CAAC;gBAChH,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,GAAG;oBAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBAC1D,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,+FAA+F,EAAE,CAAC;YAC9I,CAAC;QACF,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,SAAS;IACvB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,sGAAsG;AACtG,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,SAAS,EAAE,CAAyC,CAAC;IACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,sEAAsE;AACtE,IAAI,gCAAgC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;IAClE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACtB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"input-guard-classify.js","sourceRoot":"","sources":["../../../../../backend/src/scripts/input-guard-classify.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,15 @@ export interface InputRefusal {
30
30
  /** A blocked episode, as passed to the notifier. */
31
31
  export interface InputBlockedNotice {
32
32
  sessionName: string;
33
+ /**
34
+ * What blocks it: `foreign` / `unknown` (refusals), `busy`, `stuck`, or
35
+ * `circuit-open` (refused for so long that automatic redelivery was
36
+ * slowed to a probe now and then — crewly#1028); `blockedState` then
37
+ * says what the box held.
38
+ */
33
39
  state: string;
40
+ /** With `circuit-open`: the guard reading that kept refusing */
41
+ blockedState?: string;
34
42
  /** How many characters of text not written by Crewly the box held */
35
43
  inputLength: number;
36
44
  refusals: number;
@@ -58,6 +66,8 @@ export declare class InputBlockedRetryService {
58
66
  private readonly episodes;
59
67
  /** Agents whose long busy hold was already reported (until a delivery) */
60
68
  private readonly busyHoldNotified;
69
+ /** Agents whose blocked input was already reported via the circuit breaker (until a delivery) */
70
+ private readonly circuitNotified;
61
71
  private readonly logger;
62
72
  private readonly now;
63
73
  /**
@@ -110,6 +120,22 @@ export declare class InputBlockedRetryService {
110
120
  * @param forMs - How long it has been there
111
121
  */
112
122
  noteStuckInput(sessionName: string, inputLength: number, forMs: number): void;
123
+ /**
124
+ * The input circuit breaker opened for this agent: every delivery has
125
+ * been refused for a while and automatic redelivery is now only a probe
126
+ * now and then (crewly#1028). Tells the owner once per blocked episode —
127
+ * unless this episode was already reported, so one blocked box is one
128
+ * alert, not two.
129
+ *
130
+ * @param sessionName - The agent
131
+ * @param info - What the breaker saw
132
+ */
133
+ noteCircuitOpen(sessionName: string, info: {
134
+ state: string;
135
+ inputLength: number;
136
+ refusals: number;
137
+ blockedForMs: number;
138
+ }): void;
113
139
  /**
114
140
  * A delivery to this agent went through: the episode is over.
115
141
  *
@@ -1 +1 @@
1
- {"version":3,"file":"input-blocked-retry.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/input-blocked-retry.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC5B,gHAAgH;IAChH,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACrC,0CAA0C;IAC1C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,iCAAiC;IACjC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,8CAA8C;IAC9C,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,yCAAyC;IACzC,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAaD;;GAEG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAChE,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC;;OAEG;gBACS,GAAG,GAAE,MAAM,MAAiB;IAKxC;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAK9C;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI;IAKlE;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAI1C;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAiB7D;;;;;;;;;OASG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3E;;;;;;;;OAQG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7E;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IASxC;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAYhB;;;;;OAKG;YACW,KAAK;IAqBnB;;;;;OAKG;YACW,WAAW;CAoBzB"}
1
+ {"version":3,"file":"input-blocked-retry.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/input-blocked-retry.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAKH,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC5B,gHAAgH;IAChH,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;CAChB;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACrC,0CAA0C;IAC1C,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,iCAAiC;IACjC,MAAM,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,8CAA8C;IAC9C,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,yCAAyC;IACzC,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAaD;;GAEG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAChE,OAAO,CAAC,IAAI,CAAsC;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,0EAA0E;IAC1E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,iGAAiG;IACjG,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAqB;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IAEnC;;OAEG;gBACS,GAAG,GAAE,MAAM,MAAiB;IAKxC;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,wBAAwB;IAK9C;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,GAAG,IAAI;IAKlE;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAI1C;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAiB7D;;;;;;;;;OASG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAS3E;;;;;;;;OAQG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO7E;;;;;;;;;OASG;IACH,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAuBhI;;;;OAIG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAUxC;;;;;OAKG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;;;;OAKG;IACH,OAAO,CAAC,QAAQ;IAYhB;;;;;OAKG;YACW,KAAK;IAqBnB;;;;;OAKG;YACW,WAAW;CAwBzB"}
@@ -29,6 +29,8 @@ export class InputBlockedRetryService {
29
29
  episodes = new Map();
30
30
  /** Agents whose long busy hold was already reported (until a delivery) */
31
31
  busyHoldNotified = new Set();
32
+ /** Agents whose blocked input was already reported via the circuit breaker (until a delivery) */
33
+ circuitNotified = new Set();
32
34
  logger;
33
35
  now;
34
36
  /**
@@ -122,6 +124,40 @@ export class InputBlockedRetryService {
122
124
  .notify({ sessionName, state: 'stuck', inputLength, refusals: 0, blockedForMs: forMs, message: '' })
123
125
  .catch(() => undefined);
124
126
  }
127
+ /**
128
+ * The input circuit breaker opened for this agent: every delivery has
129
+ * been refused for a while and automatic redelivery is now only a probe
130
+ * now and then (crewly#1028). Tells the owner once per blocked episode —
131
+ * unless this episode was already reported, so one blocked box is one
132
+ * alert, not two.
133
+ *
134
+ * @param sessionName - The agent
135
+ * @param info - What the breaker saw
136
+ */
137
+ noteCircuitOpen(sessionName, info) {
138
+ const ep = this.episodes.get(sessionName);
139
+ if (ep?.notified || this.circuitNotified.has(sessionName)) {
140
+ this.logger.warn('Agent input still blocked — automatic redelivery slowed (already reported)', { sessionName, refusals: info.refusals });
141
+ return;
142
+ }
143
+ if (ep)
144
+ ep.notified = true;
145
+ this.circuitNotified.add(sessionName);
146
+ this.logger.error('Agent input blocked — automatic redelivery slowed, telling the owner', { sessionName, ...info });
147
+ if (!this.deps)
148
+ return;
149
+ void this.deps
150
+ .notify({
151
+ sessionName,
152
+ state: 'circuit-open',
153
+ blockedState: info.state,
154
+ inputLength: info.inputLength,
155
+ refusals: info.refusals,
156
+ blockedForMs: info.blockedForMs,
157
+ message: ep?.firstMessage ?? '',
158
+ })
159
+ .catch(() => undefined);
160
+ }
125
161
  /**
126
162
  * A delivery to this agent went through: the episode is over.
127
163
  *
@@ -129,6 +165,7 @@ export class InputBlockedRetryService {
129
165
  */
130
166
  noteDelivered(sessionName) {
131
167
  this.busyHoldNotified.delete(sessionName);
168
+ this.circuitNotified.delete(sessionName);
132
169
  const ep = this.episodes.get(sessionName);
133
170
  if (!ep)
134
171
  return;
@@ -210,6 +247,10 @@ export class InputBlockedRetryService {
210
247
  async maybeNotify(sessionName, ep) {
211
248
  if (ep.notified || !this.deps)
212
249
  return;
250
+ if (this.circuitNotified.has(sessionName)) {
251
+ ep.notified = true;
252
+ return;
253
+ }
213
254
  const blockedForMs = this.now() - ep.firstAt;
214
255
  if (blockedForMs < INPUT_BLOCKED_RETRY_CONSTANTS.NOTIFY_AFTER_MS && ep.refusals < INPUT_BLOCKED_RETRY_CONSTANTS.NOTIFY_AFTER_REFUSALS)
215
256
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"input-blocked-retry.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/input-blocked-retry.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"input-blocked-retry.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/input-blocked-retry.service.ts"],"names":[],"mappings":"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"}
@@ -193,9 +193,61 @@ export interface EventTokens {
193
193
  /** The cached part of {@link input} (cache reads + cache writes) */
194
194
  cachedInput: number;
195
195
  output: number;
196
- /** {@link input} + {@link output} — what caps, boosts and budgets count */
196
+ /**
197
+ * {@link input} + {@link output}: the RAW total, for reporting. Cache reads
198
+ * count in full here, so it overstates what a long-lived agent costs ~10x.
199
+ */
197
200
  total: number;
201
+ /** Of {@link cachedInput}, the part written to the cache (Claude only) */
202
+ cacheWrite: number;
203
+ /**
204
+ * The COST-WEIGHTED total ("budget tokens"): what every budget, cap and
205
+ * boost compares. fresh input x w.input + output x w.output + cache writes
206
+ * x w.cacheWrite + cache reads x w.cacheRead, with the weights of the
207
+ * event's model family ({@link budgetWeightsFor}). Not rounded.
208
+ */
209
+ budget: number;
198
210
  }
211
+ /** How many budget tokens one token of each kind is worth. */
212
+ export interface BudgetWeights {
213
+ /** Fresh (uncached) input */
214
+ input: number;
215
+ /** Output */
216
+ output: number;
217
+ /** Tokens written to the prompt cache */
218
+ cacheWrite: number;
219
+ /** Tokens read from the prompt cache */
220
+ cacheRead: number;
221
+ }
222
+ /**
223
+ * The default budget weights, and the Claude ones: input x1 + output x1 +
224
+ * cache writes x1.25 + cache reads x0.1. They equal the cache/input price
225
+ * ratios of the Anthropic tiers in `model-pricing.ts` (Sonnet 0.3/3 and
226
+ * 3.75/3, Opus 1.5/15 and 18.75/15, Haiku 0.1/1 and 1.25/1). Output stays at
227
+ * x1 on purpose: the budget is a measure of context re-reading, not a USD
228
+ * figure, and an owner's existing numbers keep their meaning.
229
+ */
230
+ export declare const DEFAULT_BUDGET_WEIGHTS: Readonly<BudgetWeights>;
231
+ /**
232
+ * The budget weights of a model family. Cache weights are the ratios of the
233
+ * family's own cache price to its input price, read from the pricing table
234
+ * (`model-pricing.ts`) so there is one source for them:
235
+ *
236
+ * | Family | cache read | cache write |
237
+ * |---|---|---|
238
+ * | Claude (opus / sonnet / haiku / fable) | 0.1 | 1.25 |
239
+ * | OpenAI gpt-5 / codex (Codex CLI) | 0.1 | 1 (no separate write price) |
240
+ * | DeepSeek (crewly-agent) | ~0.26 | 1 |
241
+ * | Gemini 2.5 pro / flash (Antigravity) | ~0.25 | 1 |
242
+ * | Unknown | {@link DEFAULT_BUDGET_WEIGHTS} |
243
+ *
244
+ * @param model - Model id as recorded
245
+ * @returns Weights; `input` and `output` are always 1
246
+ *
247
+ * @example
248
+ * budgetWeightsFor('claude-sonnet-5-5') // { input: 1, output: 1, cacheWrite: 1.25, cacheRead: 0.1 }
249
+ */
250
+ export declare function budgetWeightsFor(model: string): BudgetWeights;
199
251
  /**
200
252
  * Whether an event's `cachedInput` is part of its `input` (true) or comes
201
253
  * on top of it (false).
@@ -210,13 +262,15 @@ export interface EventTokens {
210
262
  */
211
263
  export declare function cachedIsPartOfInput(event: Pick<TokenUsageEvent, 'model' | 'runtime'>): boolean;
212
264
  /**
213
- * The token unit — ONE formula for every cap, boost, budget and stat:
265
+ * The token unit. Two figures from one function:
214
266
  *
215
- * total tokens = input tokens (fresh + cached) + output tokens
267
+ * total = input tokens (fresh + cached) + output tokens (raw, for reports)
268
+ * budget = cost-weighted total (cache reads x0.1, writes x1.25 for Claude)
216
269
  *
217
- * Cached input counts in full (it is shown separately, never left out), and
218
- * whether an account is billed by subscription or by API makes no
219
- * difference. specs/2026-10-02-spend-cap.md §Token unit.
270
+ * Every cap, boost and budget GATE compares `budget`; `total` stays for
271
+ * reporting and is shown beside it. Whether an account is billed by
272
+ * subscription or by API makes no difference.
273
+ * specs/2026-10-02-spend-cap.md §Token unit.
220
274
  *
221
275
  * @param event - Usage event
222
276
  * @returns Input (cached included), cached input, output, total
@@ -225,7 +279,9 @@ export declare function cachedIsPartOfInput(event: Pick<TokenUsageEvent, 'model'
225
279
  * eventTokens({ model: 'claude-opus-5-5', input: 10, cachedInput: 990, output: 50 }).total // 1050
226
280
  * eventTokens({ model: 'deepseek/deepseek-chat', input: 1000, cachedInput: 990, output: 50 }).total // 1050
227
281
  */
228
- export declare function eventTokens(event: Pick<TokenUsageEvent, 'model' | 'runtime' | 'input' | 'output' | 'cachedInput'>): EventTokens;
282
+ export declare function eventTokens(event: Pick<TokenUsageEvent, 'model' | 'runtime' | 'input' | 'output' | 'cachedInput'> & {
283
+ cacheWrite?: number;
284
+ }): EventTokens;
229
285
  /**
230
286
  * Set a cost override for a session. When present, getSummary() uses this
231
287
  * instead of recalculating from events.
@@ -362,14 +418,16 @@ export declare class TokenUsageService {
362
418
  * @param since - Only return events recorded at or after this time
363
419
  * @param until - Only return events before this time (defaults to now)
364
420
  * @returns Aggregated input tokens, output tokens, and cost in the window,
365
- * plus the token-unit figures ({@link eventTokens}): `totalTokens` (the
366
- * unit caps and budgets count) and `cachedInputTokens`
421
+ * plus the token-unit figures ({@link eventTokens}): `totalTokens` (raw,
422
+ * for reporting), `budgetTokens` (cost-weighted; what caps and budgets
423
+ * compare) and `cachedInputTokens`
367
424
  */
368
425
  getSessionUsageSince(sessionName: string, since: Date, until?: Date): {
369
426
  inputTokens: number;
370
427
  outputTokens: number;
371
428
  cost: number;
372
429
  totalTokens: number;
430
+ budgetTokens: number;
373
431
  cachedInputTokens: number;
374
432
  };
375
433
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"token-usage.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-usage.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/token-usage.service.ts"],"names":[],"mappings":"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"}