crewly 1.20.176 → 1.20.177

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 (161) hide show
  1. package/config/skills/orchestrator/update-team-member/SKILL.md +1 -1
  2. package/dist/backend/backend/src/constants.d.ts +58 -3
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +72 -3
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  7. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +2 -1
  8. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  9. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +30 -0
  10. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -0
  11. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +100 -0
  12. package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -0
  13. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  14. package/dist/backend/backend/src/controllers/team/team.controller.js +33 -4
  15. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  16. package/dist/backend/backend/src/index.d.ts.map +1 -1
  17. package/dist/backend/backend/src/index.js +25 -0
  18. package/dist/backend/backend/src/index.js.map +1 -1
  19. package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
  20. package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
  21. package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
  22. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
  23. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +6 -0
  24. package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
  25. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -1
  26. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/agent/agent-registration.service.js +103 -7
  28. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  29. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts +1 -1
  30. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +3 -2
  32. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  33. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +7 -0
  34. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  35. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +16 -0
  36. package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  37. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  38. package/dist/backend/backend/src/services/agent/idle-detection.service.js +2 -1
  39. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  40. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  41. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +7 -0
  42. package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  43. package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
  44. package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
  45. package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
  46. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts +17 -0
  47. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/harness/harness-status.service.js +25 -1
  49. package/dist/backend/backend/src/services/harness/harness-status.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  51. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +2 -1
  52. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  53. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +3 -2
  55. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  56. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  57. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
  58. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  59. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
  60. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
  61. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
  62. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
  63. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +66 -0
  64. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -0
  65. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +211 -0
  66. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -0
  67. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +39 -0
  68. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -0
  69. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +56 -0
  70. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -0
  71. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +377 -0
  72. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -0
  73. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +867 -0
  74. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -0
  75. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts +53 -0
  76. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts.map +1 -0
  77. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js +107 -0
  78. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js.map +1 -0
  79. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +126 -0
  80. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
  81. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
  82. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
  83. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +82 -0
  84. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -0
  85. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +219 -0
  86. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -0
  87. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +203 -0
  88. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
  89. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +419 -0
  90. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
  91. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts +54 -0
  92. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts.map +1 -0
  93. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js +80 -0
  94. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js.map +1 -0
  95. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +99 -0
  96. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -0
  97. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +240 -0
  98. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -0
  99. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
  100. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  101. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +16 -2
  102. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  103. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  104. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -2
  105. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  106. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -2
  108. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  109. package/dist/backend/backend/src/types/index.d.ts +14 -0
  110. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  111. package/dist/backend/backend/src/types/index.js.map +1 -1
  112. package/dist/backend/build-info.json +2 -2
  113. package/dist/cli/backend/src/constants.d.ts +58 -3
  114. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  115. package/dist/cli/backend/src/constants.js +72 -3
  116. package/dist/cli/backend/src/constants.js.map +1 -1
  117. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -1
  118. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  119. package/dist/cli/backend/src/services/agent/agent-registration.service.js +103 -7
  120. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  121. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts +1 -1
  122. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  123. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +3 -2
  124. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  125. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +7 -0
  126. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  127. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +16 -0
  128. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  129. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  130. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +7 -0
  131. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  132. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts +17 -0
  133. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  134. package/dist/cli/backend/src/services/harness/harness-status.service.js +25 -1
  135. package/dist/cli/backend/src/services/harness/harness-status.service.js.map +1 -1
  136. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +2 -1
  138. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  140. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +3 -2
  141. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  142. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  143. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
  144. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  145. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
  146. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
  147. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
  148. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
  149. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
  150. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  151. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +16 -2
  152. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  153. package/dist/cli/backend/src/types/index.d.ts +14 -0
  154. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  155. package/dist/cli/backend/src/types/index.js.map +1 -1
  156. package/dist/cli/cli/src/utils/runtime-auth.d.ts +1 -1
  157. package/dist/cli/cli/src/utils/runtime-auth.js +1 -1
  158. package/frontend/dist/assets/{index-0726afab.js → index-69af46c3.js} +275 -275
  159. package/frontend/dist/assets/{index-0c5449b5.css → index-cdc52122.css} +1 -1
  160. package/frontend/dist/index.html +2 -2
  161. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Usage-limit rules — per-runtime patterns that mean "this runtime's account
3
+ * is out of usage", as opposed to a login that expired (login-expiry-rules.ts,
4
+ * the re-login flow) or a short rate limit the runtime retries by itself.
5
+ *
6
+ * Modelled on login-expiry-rules.ts: output is normalized with
7
+ * {@link normalizeTerminalOutput} and every pattern is matched against the
8
+ * normalized text and its spaceless copy (Claude Code places words with
9
+ * cursor moves instead of spaces), so patterns use `\s*` between words.
10
+ *
11
+ * Wording sources:
12
+ * - Claude Code 2.1.287 binary (`strings`, 2026-10-01): `Usage limit
13
+ * reached`, `Usage limit reached again`, `continuing automatically {when}`,
14
+ * `You're out of extra usage`, `You're out of usage credits`, `You've hit
15
+ * your monthly spend limit`, ` resets $…`, `/upgrade to increase your usage
16
+ * limit.`, the API's `billing_error` "spend limit reached (daily; resets …)",
17
+ * and its own note that the client composes "You've hit your limit" from a
18
+ * 429. Older releases print `5-hour limit reached ∙ resets 3pm`, `Claude
19
+ * usage limit reached. Your limit will reset at 3pm (America/Los_Angeles).`
20
+ * and `Claude AI usage limit reached|<epoch>`.
21
+ * - Codex: `You've hit your usage limit. Upgrade to Pro (…) or try again in
22
+ * 4 days 7 hours 3 minutes.` / `… try again at 4:05 PM.`; transient:
23
+ * `exceeded retry limit, last status: 429 Too Many Requests`.
24
+ * - Gemini / Antigravity: `RESOURCE_EXHAUSTED` with `Quota exceeded for quota
25
+ * metric '… per day'`, `You exceeded your current quota`, `You have
26
+ * exhausted your daily quota`; a bare 429 / RESOURCE_EXHAUSTED is transient.
27
+ * - DeepSeek (the in-process Crewly Agent): HTTP 402 `Insufficient Balance`
28
+ * is a usage limit; HTTP 429 `Rate Limit Reached` is transient.
29
+ *
30
+ * Context requirements keep an agent that merely reads or quotes this kind of
31
+ * text (for example while working on this file) from tripping a rule: the
32
+ * Claude UI rules need the `·` / `∙` separator, a reset time or a slash
33
+ * command next to the message; API rules need the API error context.
34
+ * Warnings that the limit is near ("Approaching usage limit", "You've used
35
+ * 90% of your session limit") are deliberately not matched.
36
+ *
37
+ * @module services/runtime-fallback/usage-limit-rules
38
+ */
39
+ /** `usage_limit`: the account is out of usage; `transient`: a short rate limit the runtime retries. */
40
+ export type UsageLimitKind = 'usage_limit' | 'transient';
41
+ /** One rule: every pattern must match (AND); `none` must not match. */
42
+ export interface UsageLimitRule {
43
+ /** Stable id, used in logs (never contains output) */
44
+ id: string;
45
+ /** Runtime type the rule belongs to */
46
+ runtime: string;
47
+ kind: UsageLimitKind;
48
+ /** All must match the normalized text or its spaceless copy */
49
+ all: readonly RegExp[];
50
+ /** None of these may match (e.g. a warning, not the limit itself) */
51
+ none?: readonly RegExp[];
52
+ }
53
+ /** What {@link detectUsageLimit} found. */
54
+ export interface UsageLimitMatch {
55
+ /** Runtime the rule belongs to */
56
+ runtime: string;
57
+ ruleId: string;
58
+ kind: UsageLimitKind;
59
+ /** When the limit lifts (epoch ms), when the message says so */
60
+ resetAt: number | null;
61
+ }
62
+ /** Claude Code rules (usage limits first, then transient). */
63
+ export declare const CLAUDE_USAGE_RULES: readonly UsageLimitRule[];
64
+ /** Codex rules. */
65
+ export declare const CODEX_USAGE_RULES: readonly UsageLimitRule[];
66
+ /** Antigravity CLI rules. */
67
+ export declare const ANTIGRAVITY_USAGE_RULES: readonly UsageLimitRule[];
68
+ /** Gemini CLI rules (retired runtime, detect only). */
69
+ export declare const GEMINI_USAGE_RULES: readonly UsageLimitRule[];
70
+ /**
71
+ * In-process Crewly Agent rules. These run on the error of a failed model
72
+ * call (never on text the model wrote), so they need no UI context.
73
+ */
74
+ export declare const CREWLY_AGENT_USAGE_RULES: readonly UsageLimitRule[];
75
+ /**
76
+ * Usage-limit rules for a runtime.
77
+ *
78
+ * @param runtime - Runtime type
79
+ * @returns Rules to try (empty for a runtime without rules)
80
+ */
81
+ export declare function getUsageLimitRules(runtime: string): readonly UsageLimitRule[];
82
+ /**
83
+ * Find a usage-limit (or transient rate-limit) message in a runtime's output.
84
+ * An expired login is never reported here — that is the re-login flow's.
85
+ *
86
+ * @param output - Raw PTY output (escape sequences allowed), captured screen, or an error message
87
+ * @param runtime - The runtime the output came from
88
+ * @param now - Current time (ms), for the reset time
89
+ * @param defaultTimeZone - Zone for reset clock times that name none
90
+ * @returns The match, or null
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * detectUsageLimit("You've hit your limit · resets 3pm (America/Los_Angeles)", 'claude-code');
95
+ * // { runtime: 'claude-code', ruleId: 'claude.hit_your_limit', kind: 'usage_limit', resetAt: <next 3pm LA> }
96
+ * ```
97
+ */
98
+ export declare function detectUsageLimit(output: string, runtime: string, now?: number, defaultTimeZone?: string): UsageLimitMatch | null;
99
+ //# sourceMappingURL=usage-limit-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-limit-rules.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAOH,uGAAuG;AACvG,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,WAAW,CAAC;AAEzD,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC9B,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,cAAc,CAAC;IACrB,+DAA+D;IAC/D,GAAG,EAAE,SAAS,MAAM,EAAE,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC/B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,cAAc,CAAC;IACrB,gEAAgE;IAChE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AASD,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAuDvD,CAAC;AAEF,mBAAmB;AACnB,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAmBtD,CAAC;AAoBF,6BAA6B;AAC7B,eAAO,MAAM,uBAAuB,EAAE,SAAS,cAAc,EAA8D,CAAC;AAE5H,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAAoD,CAAC;AAE7G;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,cAAc,EAmB7D,CAAC;AAWF;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,cAAc,EAAE,CAE7E;AAcD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB5I"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Usage-limit rules — per-runtime patterns that mean "this runtime's account
3
+ * is out of usage", as opposed to a login that expired (login-expiry-rules.ts,
4
+ * the re-login flow) or a short rate limit the runtime retries by itself.
5
+ *
6
+ * Modelled on login-expiry-rules.ts: output is normalized with
7
+ * {@link normalizeTerminalOutput} and every pattern is matched against the
8
+ * normalized text and its spaceless copy (Claude Code places words with
9
+ * cursor moves instead of spaces), so patterns use `\s*` between words.
10
+ *
11
+ * Wording sources:
12
+ * - Claude Code 2.1.287 binary (`strings`, 2026-10-01): `Usage limit
13
+ * reached`, `Usage limit reached again`, `continuing automatically {when}`,
14
+ * `You're out of extra usage`, `You're out of usage credits`, `You've hit
15
+ * your monthly spend limit`, ` resets $…`, `/upgrade to increase your usage
16
+ * limit.`, the API's `billing_error` "spend limit reached (daily; resets …)",
17
+ * and its own note that the client composes "You've hit your limit" from a
18
+ * 429. Older releases print `5-hour limit reached ∙ resets 3pm`, `Claude
19
+ * usage limit reached. Your limit will reset at 3pm (America/Los_Angeles).`
20
+ * and `Claude AI usage limit reached|<epoch>`.
21
+ * - Codex: `You've hit your usage limit. Upgrade to Pro (…) or try again in
22
+ * 4 days 7 hours 3 minutes.` / `… try again at 4:05 PM.`; transient:
23
+ * `exceeded retry limit, last status: 429 Too Many Requests`.
24
+ * - Gemini / Antigravity: `RESOURCE_EXHAUSTED` with `Quota exceeded for quota
25
+ * metric '… per day'`, `You exceeded your current quota`, `You have
26
+ * exhausted your daily quota`; a bare 429 / RESOURCE_EXHAUSTED is transient.
27
+ * - DeepSeek (the in-process Crewly Agent): HTTP 402 `Insufficient Balance`
28
+ * is a usage limit; HTTP 429 `Rate Limit Reached` is transient.
29
+ *
30
+ * Context requirements keep an agent that merely reads or quotes this kind of
31
+ * text (for example while working on this file) from tripping a rule: the
32
+ * Claude UI rules need the `·` / `∙` separator, a reset time or a slash
33
+ * command next to the message; API rules need the API error context.
34
+ * Warnings that the limit is near ("Approaching usage limit", "You've used
35
+ * 90% of your session limit") are deliberately not matched.
36
+ *
37
+ * @module services/runtime-fallback/usage-limit-rules
38
+ */
39
+ import { RUNTIME_TYPES } from '../../constants.js';
40
+ import { normalizeTerminalOutput } from '../harness/login-rules.js';
41
+ import { detectLoginExpiry } from '../harness/login-expiry-rules.js';
42
+ import { parseResetTime } from './reset-time.js';
43
+ /** Claude UI context: the separator, a reset time, or a Claude slash command. */
44
+ const CLAUDE_UI_CONTEXT = /[·∙•]|\bresets?\b|reset\s*at|continuing\s*automatically|\/(?:upgrade|extra-usage|usage-credits|rate-limit-options|model)\b|\|\s*\d{10}\b/i;
45
+ /** API error context for Claude: a 429 / billing error. */
46
+ const CLAUDE_API_429 = /\b429\b|rate_limit_error|billing_error/i;
47
+ /** Wording that means "usage", not a per-minute rate. */
48
+ const USAGE_WORDING = /usage\s*limit|limit\s*reached|hit\s*your\s*(?:[\w-]+\s*)?limit|spend\s*limit|quota|limit\s*will\s*reset|\bresets?\b|out\s*of\s*(?:extra\s*)?usage/i;
49
+ /** Claude Code rules (usage limits first, then transient). */
50
+ export const CLAUDE_USAGE_RULES = [
51
+ {
52
+ id: 'claude.api_usage_429',
53
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
54
+ kind: 'usage_limit',
55
+ all: [/API\s*Error|"type"\s*:\s*"error"/i, CLAUDE_API_429, USAGE_WORDING],
56
+ },
57
+ {
58
+ id: 'claude.api_credit_balance',
59
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
60
+ kind: 'usage_limit',
61
+ all: [/API\s*Error|"type"\s*:\s*"error"/i, /credit\s*balance\s*(?:is\s*)?too\s*low/i],
62
+ },
63
+ {
64
+ id: 'claude.legacy_limit_reached',
65
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
66
+ kind: 'usage_limit',
67
+ all: [/Claude\s*(?:AI\s*)?usage\s*limit\s*reached\s*(?:\|\s*\d{10}|\.\s*Your\s*limit\s*will\s*reset)/i],
68
+ },
69
+ {
70
+ id: 'claude.hit_your_limit',
71
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
72
+ kind: 'usage_limit',
73
+ all: [/You['’]ve\s*hit\s*your\s*(?:[\w-]+\s*){0,3}limit/i, CLAUDE_UI_CONTEXT],
74
+ },
75
+ {
76
+ id: 'claude.usage_limit_reached',
77
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
78
+ kind: 'usage_limit',
79
+ all: [/usage\s*(?:credit\s*)?limit\s*reached/i, CLAUDE_UI_CONTEXT],
80
+ },
81
+ {
82
+ id: 'claude.window_limit_reached',
83
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
84
+ kind: 'usage_limit',
85
+ all: [/(?:5-hour|five-hour|weekly|session|daily|Opus|Sonnet|Fable)\s*limit\s*reached/i, CLAUDE_UI_CONTEXT],
86
+ },
87
+ {
88
+ id: 'claude.out_of_usage',
89
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
90
+ kind: 'usage_limit',
91
+ all: [/You['’]re\s*out\s*of\s*(?:extra\s*usage|usage\s*credits)/i, CLAUDE_UI_CONTEXT],
92
+ },
93
+ {
94
+ id: 'claude.api_rate_limited',
95
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
96
+ kind: 'transient',
97
+ all: [/API\s*Error/i, /\b429\b|rate_limit_error/i],
98
+ },
99
+ {
100
+ id: 'claude.api_overloaded',
101
+ runtime: RUNTIME_TYPES.CLAUDE_CODE,
102
+ kind: 'transient',
103
+ all: [/API\s*Error/i, /\b529\b|overloaded_error/i],
104
+ },
105
+ ];
106
+ /** Codex rules. */
107
+ export const CODEX_USAGE_RULES = [
108
+ {
109
+ id: 'codex.usage_limit',
110
+ runtime: RUNTIME_TYPES.CODEX_CLI,
111
+ kind: 'usage_limit',
112
+ all: [/You['’]ve\s*hit\s*your\s*usage\s*limit/i, /try\s*again|upgrade|resets?/i],
113
+ },
114
+ {
115
+ id: 'codex.quota_exceeded',
116
+ runtime: RUNTIME_TYPES.CODEX_CLI,
117
+ kind: 'usage_limit',
118
+ all: [/insufficient_quota|exceeded\s*your\s*current\s*quota/i],
119
+ },
120
+ {
121
+ id: 'codex.rate_limited',
122
+ runtime: RUNTIME_TYPES.CODEX_CLI,
123
+ kind: 'transient',
124
+ all: [/\b429\b\s*Too\s*Many\s*Requests|exceeded\s*retry\s*limit|rate\s*limit\s*reached\s*for/i],
125
+ },
126
+ ];
127
+ /** Gemini quota rules, shared by Antigravity CLI and Gemini CLI. */
128
+ function geminiRules(runtime, prefix) {
129
+ return [
130
+ {
131
+ id: `${prefix}.quota_exceeded`,
132
+ runtime,
133
+ kind: 'usage_limit',
134
+ all: [/exceeded\s*your\s*current\s*quota|exhausted\s*your\s*(?:daily\s*)?quota|quota\s*exceeded\s*for\s*quota\s*metric[^\n]*per\s*day|daily\s*(?:quota|limit)\s*(?:exceeded|reached)/i],
135
+ },
136
+ {
137
+ id: `${prefix}.rate_limited`,
138
+ runtime,
139
+ kind: 'transient',
140
+ all: [/RESOURCE_EXHAUSTED|\b429\b\s*Too\s*Many\s*Requests|status\s*(?:code\s*)?:?\s*429|Resource\s*has\s*been\s*exhausted/i],
141
+ },
142
+ ];
143
+ }
144
+ /** Antigravity CLI rules. */
145
+ export const ANTIGRAVITY_USAGE_RULES = geminiRules(RUNTIME_TYPES.ANTIGRAVITY_CLI, 'antigravity');
146
+ /** Gemini CLI rules (retired runtime, detect only). */
147
+ export const GEMINI_USAGE_RULES = geminiRules(RUNTIME_TYPES.GEMINI_CLI, 'gemini');
148
+ /**
149
+ * In-process Crewly Agent rules. These run on the error of a failed model
150
+ * call (never on text the model wrote), so they need no UI context.
151
+ */
152
+ export const CREWLY_AGENT_USAGE_RULES = [
153
+ {
154
+ id: 'crewly-agent.insufficient_balance',
155
+ runtime: RUNTIME_TYPES.CREWLY_AGENT,
156
+ kind: 'usage_limit',
157
+ all: [/Insufficient\s*Balance|\b402\b[^\n]*(?:Payment\s*Required|balance)/i],
158
+ },
159
+ {
160
+ id: 'crewly-agent.quota_exceeded',
161
+ runtime: RUNTIME_TYPES.CREWLY_AGENT,
162
+ kind: 'usage_limit',
163
+ all: [/insufficient_quota|exceeded\s*your\s*current\s*quota|exhausted\s*your\s*(?:daily\s*)?quota|credit\s*balance\s*(?:is\s*)?too\s*low|usage\s*limit\s*reached/i],
164
+ },
165
+ {
166
+ id: 'crewly-agent.rate_limited',
167
+ runtime: RUNTIME_TYPES.CREWLY_AGENT,
168
+ kind: 'transient',
169
+ all: [/statusCode:?\s*429\b|status\s*(?:code\s*)?:?\s*429\b|\b429\s*Too\s*Many|Rate\s*Limit\s*Reached|Too\s*Many\s*Requests|RESOURCE_EXHAUSTED|overloaded_error|\bOverloaded\b/i],
170
+ },
171
+ ];
172
+ /** Rules by runtime. */
173
+ const RULES_BY_RUNTIME = {
174
+ [RUNTIME_TYPES.CLAUDE_CODE]: CLAUDE_USAGE_RULES,
175
+ [RUNTIME_TYPES.CODEX_CLI]: CODEX_USAGE_RULES,
176
+ [RUNTIME_TYPES.ANTIGRAVITY_CLI]: ANTIGRAVITY_USAGE_RULES,
177
+ [RUNTIME_TYPES.GEMINI_CLI]: GEMINI_USAGE_RULES,
178
+ [RUNTIME_TYPES.CREWLY_AGENT]: CREWLY_AGENT_USAGE_RULES,
179
+ };
180
+ /**
181
+ * Usage-limit rules for a runtime.
182
+ *
183
+ * @param runtime - Runtime type
184
+ * @returns Rules to try (empty for a runtime without rules)
185
+ */
186
+ export function getUsageLimitRules(runtime) {
187
+ return RULES_BY_RUNTIME[runtime] ?? [];
188
+ }
189
+ /**
190
+ * Whether a pattern matches the normalized text or its spaceless copy.
191
+ *
192
+ * @param pattern - Pattern
193
+ * @param screen - Normalized screen
194
+ * @returns True on a match
195
+ */
196
+ function matches(pattern, screen) {
197
+ const nonGlobal = new RegExp(pattern.source, pattern.flags.replace('g', ''));
198
+ return nonGlobal.test(screen.text) || nonGlobal.test(screen.spaceless);
199
+ }
200
+ /**
201
+ * Find a usage-limit (or transient rate-limit) message in a runtime's output.
202
+ * An expired login is never reported here — that is the re-login flow's.
203
+ *
204
+ * @param output - Raw PTY output (escape sequences allowed), captured screen, or an error message
205
+ * @param runtime - The runtime the output came from
206
+ * @param now - Current time (ms), for the reset time
207
+ * @param defaultTimeZone - Zone for reset clock times that name none
208
+ * @returns The match, or null
209
+ *
210
+ * @example
211
+ * ```ts
212
+ * detectUsageLimit("You've hit your limit · resets 3pm (America/Los_Angeles)", 'claude-code');
213
+ * // { runtime: 'claude-code', ruleId: 'claude.hit_your_limit', kind: 'usage_limit', resetAt: <next 3pm LA> }
214
+ * ```
215
+ */
216
+ export function detectUsageLimit(output, runtime, now = Date.now(), defaultTimeZone) {
217
+ if (!output)
218
+ return null;
219
+ const rules = getUsageLimitRules(runtime);
220
+ if (rules.length === 0)
221
+ return null;
222
+ if (detectLoginExpiry(output, runtime === RUNTIME_TYPES.CLAUDE_CODE || runtime === RUNTIME_TYPES.CODEX_CLI ? runtime : null)) {
223
+ return null;
224
+ }
225
+ const screen = normalizeTerminalOutput(output);
226
+ for (const rule of rules) {
227
+ if (!rule.all.every((pattern) => matches(pattern, screen)))
228
+ continue;
229
+ if (rule.none?.some((pattern) => matches(pattern, screen)))
230
+ continue;
231
+ return {
232
+ runtime: rule.runtime,
233
+ ruleId: rule.id,
234
+ kind: rule.kind,
235
+ resetAt: rule.kind === 'usage_limit' ? parseResetTime(screen.text, now, defaultTimeZone) : null,
236
+ };
237
+ }
238
+ return null;
239
+ }
240
+ //# sourceMappingURL=usage-limit-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage-limit-rules.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/usage-limit-rules.ts"],"names":[],"mappings":"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"}
@@ -175,6 +175,14 @@ export declare function slackChannelNameFor(teamName: string, prefix?: string):
175
175
  * @returns True for `adhoc:<channel>` mappings
176
176
  */
177
177
  export declare function isAdhocMapping(mapping: Pick<SlackTeamChannelMapping, 'teamId'>): boolean;
178
+ /**
179
+ * Whether a team is a runtime smoke test's temporary team
180
+ * (specs/2026-10-01-runtime-fallback.md).
181
+ *
182
+ * @param team - The team
183
+ * @returns True for `zz-runtime-smoke-<runtime>`
184
+ */
185
+ export declare function isRuntimeSmokeTeam(team: Pick<Team, 'name'>): boolean;
178
186
  /**
179
187
  * The agents that take part in a team channel: every member except the
180
188
  * orchestrator role (the orc is not a huddle participant — the point of
@@ -1 +1 @@
1
- {"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slack-team-channel.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-team-channel.service.ts"],"names":[],"mappings":"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"}
@@ -26,7 +26,7 @@
26
26
  */
27
27
  import { getTicketIntakeService } from '../v3/ticket-intake.service.js';
28
28
  import { intakeWithin, slackIntakeMessage, ticketOfOutcome, markAndLinkTicket } from '../v3/ticket-channel-hooks.js';
29
- import { CREWLY_CONSTANTS } from '../../constants.js';
29
+ import { CREWLY_CONSTANTS, RUNTIME_FALLBACK_CONSTANTS } from '../../constants.js';
30
30
  import { isInterim } from './slack-typing-placeholder.service.js';
31
31
  import { isOwnerAuthored, deliveredSessions } from './slack-auto-working.service.js';
32
32
  import { resolveMemberSessionName } from '../../utils/member-session-name.utils.js';
@@ -82,6 +82,16 @@ export function slackChannelNameFor(teamName, prefix = '') {
82
82
  export function isAdhocMapping(mapping) {
83
83
  return mapping.teamId.startsWith(SLACK_TEAM_CHANNEL_CONSTANTS.ADHOC_TEAM_PREFIX);
84
84
  }
85
+ /**
86
+ * Whether a team is a runtime smoke test's temporary team
87
+ * (specs/2026-10-01-runtime-fallback.md).
88
+ *
89
+ * @param team - The team
90
+ * @returns True for `zz-runtime-smoke-<runtime>`
91
+ */
92
+ export function isRuntimeSmokeTeam(team) {
93
+ return typeof team.name === 'string' && team.name.startsWith(RUNTIME_FALLBACK_CONSTANTS.SMOKE.TEAM_PREFIX);
94
+ }
85
95
  /**
86
96
  * The agents that take part in a team channel: every member except the
87
97
  * orchestrator role (the orc is not a huddle participant — the point of
@@ -181,6 +191,10 @@ export function orchestratorSyncEntry(deviceName, instanceId) {
181
191
  };
182
192
  }
183
193
  export function teamChannelMembers(team) {
194
+ // A runtime smoke test's temporary team lives for minutes: no Slack
195
+ // channel, no owner invite, no agent app for it.
196
+ if (isRuntimeSmokeTeam(team))
197
+ return [];
184
198
  return (team.members ?? [])
185
199
  .filter((m) => m.role !== 'orchestrator' && !!m.id)
186
200
  .map((m) => (m.sessionName ? m : { ...m, sessionName: resolveMemberSessionName(team.name, m) }));
@@ -915,7 +929,7 @@ export class SlackTeamChannelService {
915
929
  // team-saved event; turning each of those into a Slack channel would
916
930
  // carpet the workspace with channels for teams that pre-date this
917
931
  // feature. Existing teams get a channel from Settings → Team Channels.
918
- if (!event.created)
932
+ if (!event.created || isRuntimeSmokeTeam(team))
919
933
  return;
920
934
  const settings = await this.getSettings();
921
935
  if (!settings.autoCreate || !this.deps.slack.isConnected())