crewly 1.20.355 → 1.20.356

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 (177) hide show
  1. package/config/roles/team-leader/prompt.md +1 -1
  2. package/config/roles/team-leader/tl-addon.md +1 -1
  3. package/config/skills/team-leader/delegate-task/SKILL.md +23 -1
  4. package/config/skills/team-leader/delegate-task/execute.sh +44 -1
  5. package/config/skills/team-leader/delegate-task/execute.test.sh +95 -1
  6. package/dist/backend/backend/src/constants.d.ts +65 -0
  7. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  8. package/dist/backend/backend/src/constants.js +65 -0
  9. package/dist/backend/backend/src/constants.js.map +1 -1
  10. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.d.ts.map +1 -1
  11. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js +10 -0
  12. package/dist/backend/backend/src/controllers/agent-hooks/agent-hooks.controller.js.map +1 -1
  13. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js +7 -0
  15. package/dist/backend/backend/src/controllers/orchestrator/orchestrator.controller.js.map +1 -1
  16. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  17. package/dist/backend/backend/src/controllers/team/team.controller.js +5 -0
  18. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  19. package/dist/backend/backend/src/index.d.ts +15 -0
  20. package/dist/backend/backend/src/index.d.ts.map +1 -1
  21. package/dist/backend/backend/src/index.js +68 -11
  22. package/dist/backend/backend/src/index.js.map +1 -1
  23. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +11 -0
  24. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.js +73 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  27. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  28. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  29. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  30. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  31. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts +22 -0
  32. package/dist/backend/backend/src/services/agent/resource-mode-protection.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/agent/resource-mode-protection.js +33 -0
  34. package/dist/backend/backend/src/services/agent/resource-mode-protection.js.map +1 -1
  35. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts +50 -3
  36. package/dist/backend/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  37. package/dist/backend/backend/src/services/agent/resource-mode.service.js +92 -10
  38. package/dist/backend/backend/src/services/agent/resource-mode.service.js.map +1 -1
  39. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  40. package/dist/backend/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/harness/harness-relogin.service.js +47 -6
  42. package/dist/backend/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  43. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts +14 -2
  44. package/dist/backend/backend/src/services/messaging/deferred-start-retry.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js +21 -4
  46. package/dist/backend/backend/src/services/messaging/deferred-start-retry.js.map +1 -1
  47. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +10 -1
  49. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts +8 -0
  51. package/dist/backend/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/open-items/open-items.service.js +33 -0
  53. package/dist/backend/backend/src/services/open-items/open-items.service.js.map +1 -1
  54. package/dist/backend/backend/src/services/open-items/open-items.wiring.js +2 -2
  55. package/dist/backend/backend/src/services/open-items/open-items.wiring.js.map +1 -1
  56. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  57. package/dist/backend/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  58. package/dist/backend/backend/src/services/open-items/question-card-gate.js +77 -0
  59. package/dist/backend/backend/src/services/open-items/question-card-gate.js.map +1 -0
  60. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  61. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +10 -0
  62. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  63. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  64. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  65. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  66. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  67. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  68. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  69. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  70. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  71. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  72. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  73. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  74. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  75. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  76. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  77. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +3 -2
  78. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  79. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +101 -5
  80. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
  81. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +247 -19
  82. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
  83. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
  84. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +10 -2
  85. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
  86. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  87. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  88. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  89. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  90. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  91. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  92. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  93. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  94. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  95. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  96. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  97. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  98. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  99. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +13 -0
  100. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  101. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts +22 -0
  102. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  103. package/dist/backend/backend/src/services/workflow/scheduler.service.js +35 -1
  104. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  105. package/dist/backend/backend/src/types/index.d.ts +12 -0
  106. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  107. package/dist/backend/backend/src/types/index.js.map +1 -1
  108. package/dist/backend/backend/src/types/team-template.types.d.ts +1 -0
  109. package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
  110. package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
  111. package/dist/backend/build-info.json +2 -2
  112. package/dist/cli/backend/src/constants.d.ts +65 -0
  113. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  114. package/dist/cli/backend/src/constants.js +65 -0
  115. package/dist/cli/backend/src/constants.js.map +1 -1
  116. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +11 -0
  117. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  118. package/dist/cli/backend/src/services/agent/agent-registration.service.js +73 -1
  119. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  120. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts +9 -1
  121. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  122. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +60 -4
  123. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  124. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts +50 -3
  125. package/dist/cli/backend/src/services/agent/resource-mode.service.d.ts.map +1 -1
  126. package/dist/cli/backend/src/services/agent/resource-mode.service.js +92 -10
  127. package/dist/cli/backend/src/services/agent/resource-mode.service.js.map +1 -1
  128. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts +23 -0
  129. package/dist/cli/backend/src/services/harness/harness-relogin.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/harness/harness-relogin.service.js +47 -6
  131. package/dist/cli/backend/src/services/harness/harness-relogin.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  133. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +10 -1
  134. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  135. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts +8 -0
  136. package/dist/cli/backend/src/services/open-items/open-items.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/open-items/open-items.service.js +33 -0
  138. package/dist/cli/backend/src/services/open-items/open-items.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts +49 -0
  140. package/dist/cli/backend/src/services/open-items/question-card-gate.d.ts.map +1 -0
  141. package/dist/cli/backend/src/services/open-items/question-card-gate.js +77 -0
  142. package/dist/cli/backend/src/services/open-items/question-card-gate.js.map +1 -0
  143. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +2 -0
  144. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  145. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +17 -0
  146. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  147. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts +7 -0
  148. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  149. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +22 -10
  150. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  151. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +16 -0
  152. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -1
  153. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +23 -0
  154. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -1
  155. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts +2 -1
  156. package/dist/cli/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -1
  157. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js +3 -2
  158. package/dist/cli/backend/src/services/runtime-fallback/reset-time.js.map +1 -1
  159. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +78 -0
  160. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -1
  161. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js +159 -1
  162. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -1
  163. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts +63 -0
  164. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.d.ts.map +1 -0
  165. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js +104 -0
  166. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-screen.js.map +1 -0
  167. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts +166 -0
  168. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js +207 -0
  170. package/dist/cli/backend/src/services/runtime-fallback/usage-limit-state.js.map +1 -0
  171. package/dist/cli/backend/src/types/index.d.ts +12 -0
  172. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  173. package/dist/cli/backend/src/types/index.js.map +1 -1
  174. package/dist/cli/backend/src/types/team-template.types.d.ts +1 -0
  175. package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
  176. package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
  177. package/package.json +1 -1
@@ -1523,6 +1523,19 @@ export const EVENT_BUS_CONSTANTS = {
1523
1523
  * replayed publish of the same event is not delivered twice (#926) */
1524
1524
  DELIVERED_EVENT_TTL_MS: 30 * 60 * 1000,
1525
1525
  };
1526
+ /**
1527
+ * Recurring "TL progress check" scheduled by the team-leader delegate-task
1528
+ * skill. Off by default (the lead is woken by the worker's agent:idle event
1529
+ * and by report-status); an opted-in check never fires more often than
1530
+ * MIN_INTERVAL_MINUTES. The 5-minute default woke Claude sessions 219 times
1531
+ * in 3.5 days (2026-10-16).
1532
+ */
1533
+ export const DELEGATION_PROGRESS_CHECK_CONSTANTS = {
1534
+ /** Message prefix the skill uses; identifies these checks in the scheduler */
1535
+ MESSAGE_PREFIX: 'TL progress check:',
1536
+ /** Shortest allowed interval (minutes) for a recurring delegation progress check */
1537
+ MIN_INTERVAL_MINUTES: 30,
1538
+ };
1526
1539
  /**
1527
1540
  * Constants for Slack thread file storage.
1528
1541
  * Used by SlackThreadStoreService to persist thread conversations
@@ -4032,6 +4045,8 @@ export const AGENT_MESSAGE_DELIVERY_CONSTANTS = {
4032
4045
  export const SUB_AGENT_QUEUE_CONSTANTS = {
4033
4046
  /** Wait this long after an agent goes down before waking it for its queued messages (ms) */
4034
4047
  QUEUED_WAKE_DELAY_MS: 5_000,
4048
+ /** After boot, pause before starting agents that were down with messages queued (lets the restore queue claim its own first; a start in between drains the queue and ends the retry) */
4049
+ BOOT_QUEUED_WAKE_DELAY_MS: 60_000,
4035
4050
  /** At most one such wake per agent in this window, so a crashing agent is not relaunched in a loop (ms) */
4036
4051
  QUEUED_WAKE_COOLDOWN_MS: 10 * 60 * 1000,
4037
4052
  /** Maximum messages per agent before dropping oldest */
@@ -6907,6 +6922,10 @@ export const OPEN_ITEMS_CONSTANTS = {
6907
6922
  ASK_OWNER_DEDUPE_WINDOW_MS: 2 * 60 * 60 * 1000,
6908
6923
  /** Two questions with at least this character-bigram overlap are the same question */
6909
6924
  SAME_QUESTION_SIMILARITY: 0.5,
6925
+ /** Window (ms) for counting an agent's lifted-question cards (#1334) */
6926
+ REPLY_CARD_WINDOW_MS: 24 * 60 * 60 * 1000,
6927
+ /** At most this many lifted-question cards per agent per window; later questions are tracked without a card (#1334) */
6928
+ REPLY_CARDS_PER_AGENT_PER_DAY: 3,
6910
6929
  /** Option labels of a derived card */
6911
6930
  YES_LABEL: 'Yes',
6912
6931
  NO_LABEL: 'No',
@@ -7373,6 +7392,14 @@ export const RUNTIME_FALLBACK_CONSTANTS = {
7373
7392
  TRANSIENT_ESCALATED_HORIZON_MS: 30 * 60_000,
7374
7393
  /** A revert is not attempted while the PTY wrote within this window */
7375
7394
  IDLE_QUIET_MS: 20_000,
7395
+ /**
7396
+ * A session's model turn (a Claude Code PreToolUse hook) counts as proof that
7397
+ * its runtime target has usage only this long after the target was marked out
7398
+ * of usage (a response already streaming when the limit hit is not proof)
7399
+ */
7400
+ WORKING_EVIDENCE_GRACE_MS: 2 * 60_000,
7401
+ /** Working-evidence reports of one session are looked at no more often than this */
7402
+ WORKING_EVIDENCE_THROTTLE_MS: 60_000,
7376
7403
  /** Smoke tests */
7377
7404
  SMOKE: {
7378
7405
  TEAM_PREFIX: 'zz-runtime-smoke-',
@@ -7406,6 +7433,44 @@ export const RUNTIME_FALLBACK_CONSTANTS = {
7406
7433
  'crewly-agent': 'Crewly Agent',
7407
7434
  },
7408
7435
  };
7436
+ /**
7437
+ * Per-session usage-limit state (2026-10-16 incident: the orchestrator sat on
7438
+ * Claude Code's weekly-limit menu for ~38 hours while Crewly restarted it,
7439
+ * waited for its prompt, and reported it "active and ready"). While a session
7440
+ * is usage-limited it is not restarted, not waited on and not written to.
7441
+ */
7442
+ export const USAGE_LIMIT_STATE_CONSTANTS = {
7443
+ /** How long to back off when the limit message names no reset time (ms) */
7444
+ NO_RESET_BACKOFF_MS: 30 * 60 * 1000,
7445
+ /** Grace after the parsed reset time before the session is tried again (ms) */
7446
+ RESET_GRACE_MS: 2 * 60 * 1000,
7447
+ /**
7448
+ * Furthest a parsed reset time may lie ahead. Weekly limits reset within
7449
+ * 7 days; a dated message further out is an old one (a past "Oct 10" is
7450
+ * read as next year's), so it is not trusted.
7451
+ */
7452
+ MAX_RESET_AHEAD_MS: 8 * 24 * 60 * 60 * 1000,
7453
+ /** Trailing non-empty screen lines inspected for a usage-limit state */
7454
+ SCREEN_TAIL_LINES: 25,
7455
+ /** Longest a held queue waits before looking at the state again (ms) */
7456
+ RECHECK_MAX_MS: 60_000,
7457
+ /** Delay between the keys that answer the usage-limit menu (ms) */
7458
+ MENU_KEY_DELAY_MS: 300,
7459
+ /** Marker on a delivery result held because the agent is usage-limited */
7460
+ QUEUED_MARKER: '[USAGE_LIMITED]',
7461
+ /**
7462
+ * Fewest printable characters (whitespace collapsed) a live output chunk
7463
+ * needs to count as fresh activity that lifts a usage-limit state; cursor
7464
+ * moves and spinner ticks stay below it.
7465
+ */
7466
+ FRESH_OUTPUT_MIN_CHARS: 40,
7467
+ /**
7468
+ * After a limit is last seen (or its menu answered), activity this soon is
7469
+ * not trusted to lift the state: it is the repaint of the limit screen or
7470
+ * of the key Crewly pressed (ms).
7471
+ */
7472
+ LIFT_GRACE_MS: 10_000,
7473
+ };
7409
7474
  /**
7410
7475
  * Per-person access (issue #968, epic #967): the people directory, the person
7411
7476
  * each agent turn acts for, and grant sharing. specs/per-person-access.md