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 @@
1
+ {"version":3,"file":"runtime-fallback.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Persistence of runtime-fallback settings and state
3
+ * (`<CREWLY_HOME>/runtime-fallback.json`).
4
+ *
5
+ * Writes are atomic (temp file + rename) so a crash never leaves a half
6
+ * file; an unreadable file reads as defaults.
7
+ *
8
+ * @module services/runtime-fallback/runtime-fallback.store
9
+ */
10
+ import { type RuntimeFallbackState } from './runtime-fallback.types.js';
11
+ /** Reads and writes the state. */
12
+ export interface RuntimeFallbackStore {
13
+ load(): RuntimeFallbackState;
14
+ save(state: RuntimeFallbackState): void;
15
+ }
16
+ /**
17
+ * Normalize a parsed state file.
18
+ *
19
+ * @param raw - Parsed JSON (untrusted)
20
+ * @returns State with defaults filled in
21
+ */
22
+ export declare function normalizeState(raw: unknown): RuntimeFallbackState;
23
+ /** File-backed store. */
24
+ export declare class FileRuntimeFallbackStore implements RuntimeFallbackStore {
25
+ private readonly filePath;
26
+ /**
27
+ * @param filePath - State file
28
+ */
29
+ constructor(filePath: string);
30
+ /**
31
+ * Read the state (defaults when missing or unreadable).
32
+ *
33
+ * @returns State
34
+ */
35
+ load(): RuntimeFallbackState;
36
+ /**
37
+ * Write the state atomically.
38
+ *
39
+ * @param state - State
40
+ */
41
+ save(state: RuntimeFallbackState): void;
42
+ }
43
+ /** In-memory store (tests). */
44
+ export declare class MemoryRuntimeFallbackStore implements RuntimeFallbackStore {
45
+ private state;
46
+ /**
47
+ * @param initial - Starting state (defaults when absent)
48
+ */
49
+ constructor(initial?: unknown);
50
+ load(): RuntimeFallbackState;
51
+ save(state: RuntimeFallbackState): void;
52
+ }
53
+ //# sourceMappingURL=runtime-fallback.store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.store.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAA4C,KAAK,oBAAoB,EAAwB,MAAM,6BAA6B,CAAC;AAExI,kCAAkC;AAClC,MAAM,WAAW,oBAAoB;IACpC,IAAI,IAAI,oBAAoB,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAmCjE;AAED,yBAAyB;AACzB,qBAAa,wBAAyB,YAAW,oBAAoB;IAIxD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC;;OAEG;gBAC0B,QAAQ,EAAE,MAAM;IAE7C;;;;OAIG;IACH,IAAI,IAAI,oBAAoB;IAQ5B;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;CAMvC;AAED,+BAA+B;AAC/B,qBAAa,0BAA2B,YAAW,oBAAoB;IACtE,OAAO,CAAC,KAAK,CAAuB;IAEpC;;OAEG;gBACS,OAAO,CAAC,EAAE,OAAO;IAI7B,IAAI,IAAI,oBAAoB;IAI5B,IAAI,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI;CAGvC"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Persistence of runtime-fallback settings and state
3
+ * (`<CREWLY_HOME>/runtime-fallback.json`).
4
+ *
5
+ * Writes are atomic (temp file + rename) so a crash never leaves a half
6
+ * file; an unreadable file reads as defaults.
7
+ *
8
+ * @module services/runtime-fallback/runtime-fallback.store
9
+ */
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ import { normalizeSettings } from './runtime-fallback.types.js';
13
+ /**
14
+ * Normalize a parsed state file.
15
+ *
16
+ * @param raw - Parsed JSON (untrusted)
17
+ * @returns State with defaults filled in
18
+ */
19
+ export function normalizeState(raw) {
20
+ const obj = raw && typeof raw === 'object' ? raw : {};
21
+ const exhausted = {};
22
+ if (obj.exhausted && typeof obj.exhausted === 'object') {
23
+ for (const [runtime, entry] of Object.entries(obj.exhausted)) {
24
+ if (!entry || typeof entry.since !== 'string')
25
+ continue;
26
+ exhausted[runtime] = {
27
+ runtime,
28
+ since: entry.since,
29
+ ...(typeof entry.until === 'string' ? { until: entry.until } : {}),
30
+ ruleId: typeof entry.ruleId === 'string' ? entry.ruleId : 'unknown',
31
+ ...(typeof entry.lastProbeAt === 'string' ? { lastProbeAt: entry.lastProbeAt } : {}),
32
+ switched: Array.isArray(entry.switched) ? entry.switched.filter((s) => typeof s === 'string') : [],
33
+ switchedTo: Array.isArray(entry.switchedTo) ? entry.switchedTo.filter((s) => typeof s === 'string') : [],
34
+ notified: entry.notified === true,
35
+ ...(entry.noFallback ? { noFallback: true } : {}),
36
+ };
37
+ }
38
+ }
39
+ const overrides = {};
40
+ if (obj.overrides && typeof obj.overrides === 'object') {
41
+ for (const [session, o] of Object.entries(obj.overrides)) {
42
+ if (!o || typeof o.runtime !== 'string' || typeof o.primary !== 'string' || typeof o.since !== 'string')
43
+ continue;
44
+ overrides[session] = {
45
+ runtime: o.runtime,
46
+ primary: o.primary,
47
+ reason: 'usage_limit',
48
+ since: o.since,
49
+ ...(typeof o.until === 'string' ? { until: o.until } : {}),
50
+ ...(typeof o.primarySessionId === 'string' ? { primarySessionId: o.primarySessionId } : {}),
51
+ ...(o.revertPending ? { revertPending: true } : {}),
52
+ };
53
+ }
54
+ }
55
+ return { version: 1, settings: normalizeSettings(obj.settings), exhausted, overrides };
56
+ }
57
+ /** File-backed store. */
58
+ export class FileRuntimeFallbackStore {
59
+ filePath;
60
+ /**
61
+ * @param filePath - State file
62
+ */
63
+ constructor(filePath) {
64
+ this.filePath = filePath;
65
+ }
66
+ /**
67
+ * Read the state (defaults when missing or unreadable).
68
+ *
69
+ * @returns State
70
+ */
71
+ load() {
72
+ try {
73
+ return normalizeState(JSON.parse(fs.readFileSync(this.filePath, 'utf-8')));
74
+ }
75
+ catch {
76
+ return normalizeState(undefined);
77
+ }
78
+ }
79
+ /**
80
+ * Write the state atomically.
81
+ *
82
+ * @param state - State
83
+ */
84
+ save(state) {
85
+ fs.mkdirSync(path.dirname(this.filePath), { recursive: true });
86
+ const tmp = `${this.filePath}.${process.pid}.tmp`;
87
+ fs.writeFileSync(tmp, `${JSON.stringify(state, null, 2)}\n`, 'utf-8');
88
+ fs.renameSync(tmp, this.filePath);
89
+ }
90
+ }
91
+ /** In-memory store (tests). */
92
+ export class MemoryRuntimeFallbackStore {
93
+ state;
94
+ /**
95
+ * @param initial - Starting state (defaults when absent)
96
+ */
97
+ constructor(initial) {
98
+ this.state = normalizeState(initial);
99
+ }
100
+ load() {
101
+ return JSON.parse(JSON.stringify(this.state));
102
+ }
103
+ save(state) {
104
+ this.state = JSON.parse(JSON.stringify(state));
105
+ }
106
+ }
107
+ //# sourceMappingURL=runtime-fallback.store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.store.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Runtime fallback — shared types, settings defaults and validation.
3
+ *
4
+ * specs/2026-10-01-runtime-fallback.md
5
+ *
6
+ * @module services/runtime-fallback/runtime-fallback.types
7
+ */
8
+ /** Every runtime id Crewly knows. */
9
+ export declare const KNOWN_RUNTIMES: readonly string[];
10
+ /** Why an agent runs on a runtime other than its configured one. */
11
+ export type RuntimeOverrideReason = 'usage_limit';
12
+ /**
13
+ * An agent temporarily running on another runtime. The member's configured
14
+ * runtime (`primary`) is never changed.
15
+ */
16
+ export interface RuntimeOverride {
17
+ /** Runtime the agent runs on now */
18
+ runtime: string;
19
+ /** The member's configured runtime */
20
+ primary: string;
21
+ reason: RuntimeOverrideReason;
22
+ /** ISO time the override started */
23
+ since: string;
24
+ /** ISO time the primary is expected back, when known */
25
+ until?: string;
26
+ /** Conversation id of the primary, restored when switching back */
27
+ primarySessionId?: string;
28
+ /** The primary is back; revert at the next idle boundary */
29
+ revertPending?: boolean;
30
+ }
31
+ /** A runtime that is out of usage on this machine (account-wide). */
32
+ export interface ExhaustedRuntime {
33
+ runtime: string;
34
+ /** ISO time it was detected */
35
+ since: string;
36
+ /** ISO time it resets, when known */
37
+ until?: string;
38
+ /** Rule that matched (never contains output) */
39
+ ruleId: string;
40
+ /** Last switch-back probe (ISO) */
41
+ lastProbeAt?: string;
42
+ /** Sessions switched away during this event */
43
+ switched: string[];
44
+ /** Fallback runtimes those sessions went to */
45
+ switchedTo: string[];
46
+ /** The owner was told about this event */
47
+ notified: boolean;
48
+ /** No fallback was available for at least one agent */
49
+ noFallback?: boolean;
50
+ }
51
+ /** Owner-editable settings. */
52
+ export interface RuntimeFallbackSettings {
53
+ enabled: boolean;
54
+ /** Global fallback order */
55
+ chain: string[];
56
+ /** Per-member chains, keyed by member id */
57
+ memberChains: Record<string, string[]>;
58
+ /** The orchestrator switches too */
59
+ orcFollows: boolean;
60
+ /** provider/model a Crewly Agent fallback runs */
61
+ crewlyAgentModel: string;
62
+ probeIntervalMinutes: number;
63
+ }
64
+ /** What is persisted. */
65
+ export interface RuntimeFallbackState {
66
+ version: 1;
67
+ settings: RuntimeFallbackSettings;
68
+ exhausted: Record<string, ExhaustedRuntime>;
69
+ /** Active overrides, keyed by session name */
70
+ overrides: Record<string, RuntimeOverride>;
71
+ }
72
+ /** Availability of one runtime as a fallback target. */
73
+ export interface RuntimeAvailability {
74
+ runtime: string;
75
+ label: string;
76
+ /** Installed and signed in (Crewly Agent: an API key for its model's provider) */
77
+ selectable: boolean;
78
+ /** Why not, when not selectable ("Not installed", "Not signed in", …) */
79
+ reason?: string;
80
+ }
81
+ /**
82
+ * Default settings.
83
+ *
84
+ * @returns A fresh copy
85
+ */
86
+ export declare function defaultRuntimeFallbackSettings(): RuntimeFallbackSettings;
87
+ /**
88
+ * Display name of a runtime.
89
+ *
90
+ * @param runtime - Runtime id
91
+ * @param crewlyAgentModel - Model a Crewly Agent runs (a DeepSeek model reads as "DeepSeek")
92
+ * @returns e.g. "Claude Code", "DeepSeek"
93
+ */
94
+ export declare function runtimeLabel(runtime: string, crewlyAgentModel?: string): string;
95
+ /**
96
+ * Short name of a runtime for "(Claude limit)".
97
+ *
98
+ * @param runtime - Runtime id
99
+ * @returns e.g. "Claude"
100
+ */
101
+ export declare function runtimeShortLabel(runtime: string): string;
102
+ /** A validation failure. */
103
+ export declare class RuntimeFallbackSettingsError extends Error {
104
+ }
105
+ /**
106
+ * Apply a partial settings update.
107
+ *
108
+ * @param current - Current settings
109
+ * @param patch - Owner's update (untrusted)
110
+ * @returns New settings
111
+ * @throws RuntimeFallbackSettingsError when the patch is invalid
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * applySettingsPatch(defaultRuntimeFallbackSettings(), { chain: ['claude-code', 'antigravity-cli'] });
116
+ * ```
117
+ */
118
+ export declare function applySettingsPatch(current: RuntimeFallbackSettings, patch: unknown): RuntimeFallbackSettings;
119
+ /**
120
+ * Settings read from disk, with defaults for anything missing or invalid.
121
+ *
122
+ * @param raw - Parsed JSON (untrusted)
123
+ * @returns Settings
124
+ */
125
+ export declare function normalizeSettings(raw: unknown): RuntimeFallbackSettings;
126
+ //# sourceMappingURL=runtime-fallback.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,qCAAqC;AACrC,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAAiC,CAAC;AAE9E,oEAAoE;AACpE,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,0CAA0C;IAC1C,QAAQ,EAAE,OAAO,CAAC;IAClB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,+BAA+B;AAC/B,MAAM,WAAW,uBAAuB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;CAC7B;AAED,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,uBAAuB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CAC3C;AAED,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,uBAAuB,CASxE;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAG/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,4BAA4B;AAC5B,qBAAa,4BAA6B,SAAQ,KAAK;CAAG;AAsB1D;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAyC5G;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,uBAAuB,CAYvE"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Runtime fallback — shared types, settings defaults and validation.
3
+ *
4
+ * specs/2026-10-01-runtime-fallback.md
5
+ *
6
+ * @module services/runtime-fallback/runtime-fallback.types
7
+ */
8
+ import { RUNTIME_FALLBACK_CONSTANTS, RUNTIME_TYPES } from '../../constants.js';
9
+ /** Every runtime id Crewly knows. */
10
+ export const KNOWN_RUNTIMES = Object.values(RUNTIME_TYPES);
11
+ /**
12
+ * Default settings.
13
+ *
14
+ * @returns A fresh copy
15
+ */
16
+ export function defaultRuntimeFallbackSettings() {
17
+ return {
18
+ enabled: true,
19
+ chain: [...RUNTIME_FALLBACK_CONSTANTS.DEFAULT_CHAIN],
20
+ memberChains: {},
21
+ orcFollows: true,
22
+ crewlyAgentModel: RUNTIME_FALLBACK_CONSTANTS.DEFAULT_CREWLY_AGENT_MODEL,
23
+ probeIntervalMinutes: RUNTIME_FALLBACK_CONSTANTS.DEFAULT_PROBE_INTERVAL_MINUTES,
24
+ };
25
+ }
26
+ /**
27
+ * Display name of a runtime.
28
+ *
29
+ * @param runtime - Runtime id
30
+ * @param crewlyAgentModel - Model a Crewly Agent runs (a DeepSeek model reads as "DeepSeek")
31
+ * @returns e.g. "Claude Code", "DeepSeek"
32
+ */
33
+ export function runtimeLabel(runtime, crewlyAgentModel) {
34
+ if (runtime === RUNTIME_TYPES.CREWLY_AGENT && crewlyAgentModel?.toLowerCase().startsWith('deepseek/'))
35
+ return 'DeepSeek';
36
+ return RUNTIME_FALLBACK_CONSTANTS.LABELS[runtime] ?? runtime;
37
+ }
38
+ /**
39
+ * Short name of a runtime for "(Claude limit)".
40
+ *
41
+ * @param runtime - Runtime id
42
+ * @returns e.g. "Claude"
43
+ */
44
+ export function runtimeShortLabel(runtime) {
45
+ return RUNTIME_FALLBACK_CONSTANTS.SHORT_LABELS[runtime] ?? runtime;
46
+ }
47
+ /** A validation failure. */
48
+ export class RuntimeFallbackSettingsError extends Error {
49
+ }
50
+ /**
51
+ * Validate a chain: known runtime ids, no duplicates (later duplicates dropped).
52
+ *
53
+ * @param value - Candidate
54
+ * @param field - Field name for the error
55
+ * @returns The clean chain
56
+ * @throws RuntimeFallbackSettingsError on an unknown id or a non-array
57
+ */
58
+ function validateChain(value, field) {
59
+ if (!Array.isArray(value))
60
+ throw new RuntimeFallbackSettingsError(`${field} must be a list of runtimes`);
61
+ const out = [];
62
+ for (const entry of value) {
63
+ if (typeof entry !== 'string' || !KNOWN_RUNTIMES.includes(entry)) {
64
+ throw new RuntimeFallbackSettingsError(`${field} has an unknown runtime: ${String(entry)}`);
65
+ }
66
+ if (!out.includes(entry))
67
+ out.push(entry);
68
+ }
69
+ return out;
70
+ }
71
+ /**
72
+ * Apply a partial settings update.
73
+ *
74
+ * @param current - Current settings
75
+ * @param patch - Owner's update (untrusted)
76
+ * @returns New settings
77
+ * @throws RuntimeFallbackSettingsError when the patch is invalid
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * applySettingsPatch(defaultRuntimeFallbackSettings(), { chain: ['claude-code', 'antigravity-cli'] });
82
+ * ```
83
+ */
84
+ export function applySettingsPatch(current, patch) {
85
+ if (!patch || typeof patch !== 'object' || Array.isArray(patch)) {
86
+ throw new RuntimeFallbackSettingsError('Settings must be an object');
87
+ }
88
+ const p = patch;
89
+ const next = { ...current, chain: [...current.chain], memberChains: { ...current.memberChains } };
90
+ if ('enabled' in p) {
91
+ if (typeof p.enabled !== 'boolean')
92
+ throw new RuntimeFallbackSettingsError('enabled must be true or false');
93
+ next.enabled = p.enabled;
94
+ }
95
+ if ('orcFollows' in p) {
96
+ if (typeof p.orcFollows !== 'boolean')
97
+ throw new RuntimeFallbackSettingsError('orcFollows must be true or false');
98
+ next.orcFollows = p.orcFollows;
99
+ }
100
+ if ('chain' in p)
101
+ next.chain = validateChain(p.chain, 'chain');
102
+ if ('memberChains' in p) {
103
+ const raw = p.memberChains;
104
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
105
+ throw new RuntimeFallbackSettingsError('memberChains must be an object');
106
+ const chains = {};
107
+ for (const [memberId, chain] of Object.entries(raw)) {
108
+ // null / empty clears a member's override
109
+ if (chain === null || (Array.isArray(chain) && chain.length === 0))
110
+ continue;
111
+ chains[memberId] = validateChain(chain, `memberChains.${memberId}`);
112
+ }
113
+ next.memberChains = chains;
114
+ }
115
+ if ('crewlyAgentModel' in p) {
116
+ if (typeof p.crewlyAgentModel !== 'string' || !/^[a-z0-9-]+\/[A-Za-z0-9._:-]+$/.test(p.crewlyAgentModel)) {
117
+ throw new RuntimeFallbackSettingsError('crewlyAgentModel must look like provider/model');
118
+ }
119
+ next.crewlyAgentModel = p.crewlyAgentModel;
120
+ }
121
+ if ('probeIntervalMinutes' in p) {
122
+ const n = Number(p.probeIntervalMinutes);
123
+ const { MIN_PROBE_INTERVAL_MINUTES: min, MAX_PROBE_INTERVAL_MINUTES: max } = RUNTIME_FALLBACK_CONSTANTS;
124
+ if (!Number.isInteger(n) || n < min || n > max) {
125
+ throw new RuntimeFallbackSettingsError(`probeIntervalMinutes must be a whole number from ${min} to ${max}`);
126
+ }
127
+ next.probeIntervalMinutes = n;
128
+ }
129
+ return next;
130
+ }
131
+ /**
132
+ * Settings read from disk, with defaults for anything missing or invalid.
133
+ *
134
+ * @param raw - Parsed JSON (untrusted)
135
+ * @returns Settings
136
+ */
137
+ export function normalizeSettings(raw) {
138
+ const base = defaultRuntimeFallbackSettings();
139
+ if (!raw || typeof raw !== 'object')
140
+ return base;
141
+ let out = base;
142
+ for (const [key, value] of Object.entries(raw)) {
143
+ try {
144
+ out = applySettingsPatch(out, { [key]: value });
145
+ }
146
+ catch {
147
+ // keep the default for a field that does not validate
148
+ }
149
+ }
150
+ return out;
151
+ }
152
+ //# sourceMappingURL=runtime-fallback.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.types.js","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Runtime fallback — the real dependencies, bound to the running backend.
3
+ *
4
+ * Kept apart from the coordinator so the coordinator stays testable with
5
+ * fakes; heavy services are imported lazily so importing this module from
6
+ * index.ts adds no import cycles.
7
+ *
8
+ * @module services/runtime-fallback/runtime-fallback.wiring
9
+ */
10
+ import { RuntimeFallbackService, type FallbackLogger, type FallbackOwnerNotifier, type HandoverRequest } from './runtime-fallback.service.js';
11
+ /** Team / member facts the wiring reads. */
12
+ interface StorageLike {
13
+ getTeams(): Promise<Array<{
14
+ id: string;
15
+ name: string;
16
+ projectIds: string[];
17
+ members: Array<{
18
+ id: string;
19
+ name: string;
20
+ role: string;
21
+ sessionName: string;
22
+ runtimeType?: string;
23
+ }>;
24
+ }>>;
25
+ getProjects(): Promise<Array<{
26
+ id: string;
27
+ path: string;
28
+ }>>;
29
+ getOrchestratorStatus(): Promise<{
30
+ runtimeType?: string;
31
+ } | null>;
32
+ }
33
+ /** The registration-service calls the wiring makes. */
34
+ interface RegistrationLike {
35
+ isInProcessRuntimeActive(sessionName: string): boolean;
36
+ stopSessionForRelaunch(sessionName: string): Promise<boolean>;
37
+ createAgentSession(config: {
38
+ sessionName: string;
39
+ role: string;
40
+ projectPath?: string;
41
+ memberId?: string;
42
+ teamId?: string;
43
+ }): Promise<{
44
+ success: boolean;
45
+ error?: string;
46
+ }>;
47
+ sendMessageToAgent(sessionName: string, message: string): Promise<{
48
+ success: boolean;
49
+ queued?: boolean;
50
+ }>;
51
+ }
52
+ /** What index.ts provides. */
53
+ export interface RuntimeFallbackWiringContext {
54
+ crewlyHome: string;
55
+ storage: StorageLike;
56
+ registration: () => RegistrationLike | null;
57
+ /** Whether a PTY session exists */
58
+ sessionExists: (sessionName: string) => boolean;
59
+ notifier: () => FallbackOwnerNotifier | null;
60
+ machineName: () => string;
61
+ logger: FallbackLogger;
62
+ }
63
+ /**
64
+ * Write a handover file for a runtime change.
65
+ *
66
+ * @param crewlyHome - CREWLY_HOME
67
+ * @param req - What changes
68
+ * @param cwd - The agent's working directory (Claude transcripts are keyed on it)
69
+ * @param now - Clock
70
+ * @returns The file path
71
+ */
72
+ export declare function writeRuntimeHandover(crewlyHome: string, req: HandoverRequest, cwd: string | undefined, now?: Date): string;
73
+ /**
74
+ * Build the backend's runtime-fallback service, register its hooks and the
75
+ * instance, and start its tick.
76
+ *
77
+ * @param ctx - Backend context
78
+ * @returns The running service
79
+ */
80
+ export declare function startBackendRuntimeFallback(ctx: RuntimeFallbackWiringContext): RuntimeFallbackService;
81
+ export {};
82
+ //# sourceMappingURL=runtime-fallback.wiring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-fallback.wiring.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-fallback.wiring.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,OAAO,EACN,sBAAsB,EAGtB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,MAAM,+BAA+B,CAAC;AAIvC,4CAA4C;AAC5C,UAAU,WAAW;IACpB,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,WAAW,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC,CAAC,CAAC;IACtL,WAAW,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAC5D,qBAAqB,IAAI,OAAO,CAAC;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAClE;AAED,uDAAuD;AACvD,UAAU,gBAAgB;IACzB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9D,kBAAkB,CAAC,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3K,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1G;AAED,8BAA8B;AAC9B,MAAM,WAAW,4BAA4B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAC5C,mCAAmC;IACnC,aAAa,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,QAAQ,EAAE,MAAM,qBAAqB,GAAG,IAAI,CAAC;IAC7C,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;CACvB;AAUD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,GAAE,IAAiB,GAAG,MAAM,CA2BtI;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,4BAA4B,GAAG,sBAAsB,CAoJrG"}