crewly 1.20.176 → 1.20.178

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 (186) hide show
  1. package/config/skills/orchestrator/update-team-member/SKILL.md +1 -1
  2. package/dist/backend/backend/src/constants.d.ts +79 -3
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +97 -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 +17 -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/planned-relaunch.registry.d.ts +61 -0
  44. package/dist/backend/backend/src/services/agent/planned-relaunch.registry.d.ts.map +1 -0
  45. package/dist/backend/backend/src/services/agent/planned-relaunch.registry.js +73 -0
  46. package/dist/backend/backend/src/services/agent/planned-relaunch.registry.js.map +1 -0
  47. package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
  48. package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
  49. package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
  50. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts +17 -0
  51. package/dist/backend/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/harness/harness-status.service.js +25 -1
  53. package/dist/backend/backend/src/services/harness/harness-status.service.js.map +1 -1
  54. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  55. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +2 -1
  56. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  57. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +3 -2
  59. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  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 +28 -1
  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 +48 -3
  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.map +1 -1
  68. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
  69. package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  70. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
  71. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
  72. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
  73. package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
  74. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +66 -0
  75. package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -0
  76. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +211 -0
  77. package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -0
  78. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +39 -0
  79. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -0
  80. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +56 -0
  81. package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -0
  82. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +417 -0
  83. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -0
  84. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +974 -0
  85. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -0
  86. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts +53 -0
  87. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts.map +1 -0
  88. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js +109 -0
  89. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js.map +1 -0
  90. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +134 -0
  91. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
  92. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
  93. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
  94. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +95 -0
  95. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -0
  96. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +286 -0
  97. package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -0
  98. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +203 -0
  99. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
  100. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +419 -0
  101. package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
  102. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts +94 -0
  103. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts.map +1 -0
  104. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js +186 -0
  105. package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js.map +1 -0
  106. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +113 -0
  107. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -0
  108. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +257 -0
  109. package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -0
  110. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
  111. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  112. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +16 -2
  113. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  114. package/dist/backend/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  115. package/dist/backend/backend/src/services/task-pool/claim.service.js +3 -1
  116. package/dist/backend/backend/src/services/task-pool/claim.service.js.map +1 -1
  117. package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
  118. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -2
  119. package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
  120. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -2
  122. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  123. package/dist/backend/backend/src/types/index.d.ts +14 -0
  124. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  125. package/dist/backend/backend/src/types/index.js.map +1 -1
  126. package/dist/backend/build-info.json +2 -2
  127. package/dist/cli/backend/src/constants.d.ts +79 -3
  128. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  129. package/dist/cli/backend/src/constants.js +97 -3
  130. package/dist/cli/backend/src/constants.js.map +1 -1
  131. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -1
  132. package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  133. package/dist/cli/backend/src/services/agent/agent-registration.service.js +103 -7
  134. package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
  135. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts +1 -1
  136. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  137. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +3 -2
  138. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  139. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +7 -0
  140. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
  141. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +16 -0
  142. package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
  143. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
  144. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +7 -0
  145. package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
  146. package/dist/cli/backend/src/services/agent/planned-relaunch.registry.d.ts +61 -0
  147. package/dist/cli/backend/src/services/agent/planned-relaunch.registry.d.ts.map +1 -0
  148. package/dist/cli/backend/src/services/agent/planned-relaunch.registry.js +73 -0
  149. package/dist/cli/backend/src/services/agent/planned-relaunch.registry.js.map +1 -0
  150. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts +17 -0
  151. package/dist/cli/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
  152. package/dist/cli/backend/src/services/harness/harness-status.service.js +25 -1
  153. package/dist/cli/backend/src/services/harness/harness-status.service.js.map +1 -1
  154. package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  155. package/dist/cli/backend/src/services/messaging/queue-processor.service.js +2 -1
  156. package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  157. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  158. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +3 -2
  159. package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  160. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts +28 -1
  161. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  162. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js +48 -3
  163. package/dist/cli/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  164. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
  165. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
  166. package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
  167. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
  168. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
  169. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
  170. package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
  171. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
  172. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  173. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +16 -2
  174. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  175. package/dist/cli/backend/src/services/task-pool/claim.service.d.ts.map +1 -1
  176. package/dist/cli/backend/src/services/task-pool/claim.service.js +3 -1
  177. package/dist/cli/backend/src/services/task-pool/claim.service.js.map +1 -1
  178. package/dist/cli/backend/src/types/index.d.ts +14 -0
  179. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  180. package/dist/cli/backend/src/types/index.js.map +1 -1
  181. package/dist/cli/cli/src/utils/runtime-auth.d.ts +1 -1
  182. package/dist/cli/cli/src/utils/runtime-auth.js +1 -1
  183. package/frontend/dist/assets/{index-0726afab.js → index-69af46c3.js} +275 -275
  184. package/frontend/dist/assets/{index-0c5449b5.css → index-cdc52122.css} +1 -1
  185. package/frontend/dist/index.html +2 -2
  186. package/package.json +1 -1
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Runtime fallback + runtime smoke test endpoints.
3
+ *
4
+ * - `GET /api/system/runtime-fallback` — settings, runtime availability,
5
+ * exhausted runtimes and active overrides
6
+ * - `PUT /api/system/runtime-fallback/settings` — partial settings update
7
+ * - `POST /api/system/runtime-smoke-test { runtime }` — start a smoke test
8
+ * (`?wait=1` waits for the result, ≤ 5 min)
9
+ * - `GET /api/system/runtime-smoke-test/:jobId` — a smoke test job
10
+ *
11
+ * specs/2026-10-01-runtime-fallback.md
12
+ *
13
+ * @module controllers/system/runtime-fallback.controller
14
+ */
15
+ import { RUNTIME_FALLBACK_CONSTANTS } from '../../constants.js';
16
+ import { getApiToken } from '../../services/core/api-token.service.js';
17
+ import { getRuntimeFallbackService } from '../../services/runtime-fallback/runtime-fallback.service.js';
18
+ import { RuntimeFallbackSettingsError } from '../../services/runtime-fallback/runtime-fallback.types.js';
19
+ import { LocalSmokeApi, RuntimeSmokeTestService } from '../../services/runtime-fallback/runtime-smoke-test.service.js';
20
+ import { getLocalApiBaseUrl } from '../../utils/local-api-url.utils.js';
21
+ let smokeService = null;
22
+ /** Default dependencies: the backend's services. */
23
+ function defaultDeps() {
24
+ return {
25
+ fallback: () => getRuntimeFallbackService(),
26
+ smoke: () => {
27
+ smokeService ??= new RuntimeSmokeTestService({
28
+ api: new LocalSmokeApi(getLocalApiBaseUrl, getApiToken),
29
+ crewlyAgentModel: () => getRuntimeFallbackService()?.getSettings().crewlyAgentModel ?? RUNTIME_FALLBACK_CONSTANTS.DEFAULT_CREWLY_AGENT_MODEL,
30
+ });
31
+ return smokeService;
32
+ },
33
+ };
34
+ }
35
+ /**
36
+ * Register the routes.
37
+ *
38
+ * @param router - The /api router
39
+ * @param deps - Dependencies (default: the backend's)
40
+ */
41
+ export function registerRuntimeFallbackRoutes(router, deps = defaultDeps()) {
42
+ router.get('/system/runtime-fallback', async (_req, res) => {
43
+ const fallback = deps.fallback();
44
+ if (!fallback) {
45
+ res.status(503).json({ success: false, error: 'Runtime fallback is not ready yet — Crewly is still starting.' });
46
+ return;
47
+ }
48
+ try {
49
+ res.json({ success: true, data: await fallback.snapshot() });
50
+ }
51
+ catch (err) {
52
+ res.status(500).json({ success: false, error: err instanceof Error ? err.message : String(err) });
53
+ }
54
+ });
55
+ router.put('/system/runtime-fallback/settings', async (req, res) => {
56
+ const fallback = deps.fallback();
57
+ if (!fallback) {
58
+ res.status(503).json({ success: false, error: 'Runtime fallback is not ready yet — Crewly is still starting.' });
59
+ return;
60
+ }
61
+ try {
62
+ fallback.updateSettings(req.body);
63
+ res.json({ success: true, data: await fallback.snapshot() });
64
+ }
65
+ catch (err) {
66
+ if (err instanceof RuntimeFallbackSettingsError) {
67
+ res.status(400).json({ success: false, error: err.message });
68
+ return;
69
+ }
70
+ res.status(500).json({ success: false, error: err instanceof Error ? err.message : String(err) });
71
+ }
72
+ });
73
+ router.post('/system/runtime-smoke-test', async (req, res) => {
74
+ const runtime = typeof req.body?.runtime === 'string' ? req.body.runtime : '';
75
+ let started;
76
+ try {
77
+ started = deps.smoke().start(runtime);
78
+ }
79
+ catch (err) {
80
+ res.status(400).json({ success: false, error: err instanceof Error ? err.message : String(err) });
81
+ return;
82
+ }
83
+ const wait = req.query.wait === '1' || req.query.wait === 'true';
84
+ if (!wait) {
85
+ res.status(202).json({ success: true, data: started.job });
86
+ return;
87
+ }
88
+ const result = await started.done;
89
+ res.json({ success: true, data: { ...started.job, state: 'done', result } });
90
+ });
91
+ router.get('/system/runtime-smoke-test/:jobId', (req, res) => {
92
+ const job = deps.smoke().get(req.params.jobId);
93
+ if (!job) {
94
+ res.status(404).json({ success: false, error: 'No such smoke test' });
95
+ return;
96
+ }
97
+ res.json({ success: true, data: job });
98
+ });
99
+ }
100
+ //# sourceMappingURL=runtime-fallback.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.controller.js","sourceRoot":"","sources":["../../../../../../backend/src/controllers/system/runtime-fallback.controller.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"team.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team/team.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"team.controller.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/controllers/team/team.controller.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ import { normalizeMemberSkills } from '../../services/ai/prompt-builder.service.
22
22
  import { isSafeModelId, isSafeReasoningEffort } from '../../utils/runtime-model-flags.utils.js';
23
23
  import { evaluateColdLaunch, isDormantTeam, isPreAuthorizedSchedule, COMMITMENT_APPROVAL_LOOKBACK_MS, } from '../../services/orchestrator/commitment-approval-guard.js';
24
24
  import { isOwnerDashboardRequest, readAgentSessionHeader } from '../../utils/agent-caller.utils.js';
25
+ import { effectiveRuntimeType } from '../../services/runtime-fallback/effective-runtime.js';
26
+ import { getRuntimeFallbackService } from '../../services/runtime-fallback/runtime-fallback.service.js';
25
27
  const logger = LoggerService.getInstance().createComponentLogger('TeamController');
26
28
  /**
27
29
  * Module-level EventBusService instance, injected at startup.
@@ -1076,9 +1078,21 @@ export async function getTeams(req, res) {
1076
1078
  const pending = OAuthReloginMonitorService.getInstance().getLoginRequired(sessionName);
1077
1079
  return pending ? { url: pending.url, code: pending.code, detectedAt: pending.detectedAt } : undefined;
1078
1080
  };
1081
+ // Agents running on a fallback runtime (their own ran out of usage).
1082
+ const runtimeOverrideFor = (sessionName) => {
1083
+ const view = getRuntimeFallbackService()?.overrideView(sessionName);
1084
+ return view
1085
+ ? { runtime: view.runtime, primary: view.primary, reason: view.reason, since: view.since, ...(view.until ? { until: view.until } : {}), badge: view.badge }
1086
+ : undefined;
1087
+ };
1079
1088
  orchestratorTeam.members = orchestratorTeam.members.map(member => {
1080
1089
  const loginRequired = loginRequiredFor(member.sessionName);
1081
- return loginRequired ? { ...member, loginRequired } : member;
1090
+ const runtimeOverride = runtimeOverrideFor(member.sessionName);
1091
+ return {
1092
+ ...member,
1093
+ ...(loginRequired ? { loginRequired } : {}),
1094
+ ...(runtimeOverride ? { runtimeOverride } : {}),
1095
+ };
1082
1096
  });
1083
1097
  // Load working status data from ActivityMonitorService
1084
1098
  let workingStatusData;
@@ -1099,11 +1113,13 @@ export async function getTeams(req, res) {
1099
1113
  const resolvedStatus = resolveAgentStatus(member.agentStatus, memberSessionExists, isInProcessActive);
1100
1114
  const resolvedWorkingStatus = workingStatusData?.teamMembers[member.sessionName]?.workingStatus || member.workingStatus || 'idle';
1101
1115
  const loginRequired = loginRequiredFor(member.sessionName);
1116
+ const runtimeOverride = runtimeOverrideFor(member.sessionName);
1102
1117
  return {
1103
1118
  ...member,
1104
1119
  agentStatus: resolvedStatus,
1105
1120
  workingStatus: resolvedWorkingStatus,
1106
1121
  ...(loginRequired ? { loginRequired } : {}),
1122
+ ...(runtimeOverride ? { runtimeOverride } : {}),
1107
1123
  };
1108
1124
  })
1109
1125
  }));
@@ -1165,9 +1181,22 @@ export async function getTeam(req, res) {
1165
1181
  for (const member of team.members) {
1166
1182
  if (member.sessionName) {
1167
1183
  const sessionExists = backend.sessionExists(member.sessionName);
1168
- const resolvedStatus = resolveAgentStatus(member.agentStatus, sessionExists);
1184
+ // In-process runtimes (Crewly Agent) have no PTY session.
1185
+ const inProcessActive = this.agentRegistrationService.isInProcessRuntimeActive(member.sessionName);
1186
+ const resolvedStatus = resolveAgentStatus(member.agentStatus, sessionExists, inProcessActive);
1169
1187
  member.agentStatus = resolvedStatus;
1170
- if (!sessionExists) {
1188
+ const runtimeOverride = getRuntimeFallbackService()?.overrideView(member.sessionName);
1189
+ if (runtimeOverride) {
1190
+ member.runtimeOverride = {
1191
+ runtime: runtimeOverride.runtime,
1192
+ primary: runtimeOverride.primary,
1193
+ reason: runtimeOverride.reason,
1194
+ since: runtimeOverride.since,
1195
+ ...(runtimeOverride.until ? { until: runtimeOverride.until } : {}),
1196
+ badge: runtimeOverride.badge,
1197
+ };
1198
+ }
1199
+ if (!sessionExists && !inProcessActive) {
1171
1200
  member.sessionName = '';
1172
1201
  }
1173
1202
  }
@@ -2315,7 +2344,7 @@ export async function registerMemberStatus(req, res) {
2315
2344
  // Flush any queued messages for this sub-agent (fire-and-forget after response)
2316
2345
  const subAgentQueue = SubAgentMessageQueue.getInstance();
2317
2346
  if (subAgentQueue.hasPending(sessionName)) {
2318
- const runtimeType = (freshTeam?.members.find(m => m.id === targetMemberId)?.runtimeType || RUNTIME_TYPES.CLAUDE_CODE);
2347
+ const runtimeType = effectiveRuntimeType(sessionName, (freshTeam?.members.find(m => m.id === targetMemberId)?.runtimeType || RUNTIME_TYPES.CLAUDE_CODE));
2319
2348
  logger.info('Flushing queued messages', { count: subAgentQueue.getQueueSize(sessionName), sessionName });
2320
2349
  // Fire-and-forget after the response; the shared loop reports which
2321
2350
  // messages actually landed and which went back on the queue.