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.
- package/config/skills/orchestrator/update-team-member/SKILL.md +1 -1
- package/dist/backend/backend/src/constants.d.ts +58 -3
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +72 -3
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +2 -1
- package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +30 -0
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +100 -0
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/team/team.controller.js +33 -4
- package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +25 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/modules/system.routes.js +3 -0
- package/dist/backend/backend/src/routes/modules/system.routes.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js +6 -0
- package/dist/backend/backend/src/services/agent/agent-heartbeat-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +10 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +103 -7
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +3 -2
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +7 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +16 -0
- package/dist/backend/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js +2 -1
- package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js +7 -0
- package/dist/backend/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js +2 -1
- package/dist/backend/backend/src/services/agent/tmux.service.js.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.d.ts +17 -0
- package/dist/backend/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.js +25 -1
- package/dist/backend/backend/src/services/harness/harness-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js +2 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +3 -2
- package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
- package/dist/backend/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
- package/dist/backend/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts +66 -0
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.js +211 -0
- package/dist/backend/backend/src/services/runtime-fallback/reset-time.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +39 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +56 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +377 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +867 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts +53 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js +107 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.store.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +126 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts +82 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +219 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +203 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +419 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts +54 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js +80 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-usage-probe.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts +99 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js +240 -0
- package/dist/backend/backend/src/services/runtime-fallback/usage-limit-rules.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +16 -2
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js +3 -2
- package/dist/backend/backend/src/services/workflow/message-scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/scheduler.service.js +3 -2
- package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
- package/dist/backend/backend/src/types/index.d.ts +14 -0
- package/dist/backend/backend/src/types/index.d.ts.map +1 -1
- package/dist/backend/backend/src/types/index.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +58 -3
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +72 -3
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +10 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +103 -7
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +3 -2
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts +7 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js +16 -0
- package/dist/cli/backend/src/services/agent/crewly-agent/crewly-agent-external-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js +7 -0
- package/dist/cli/backend/src/services/agent/oauth-relogin-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.d.ts +17 -0
- package/dist/cli/backend/src/services/harness/harness-status.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.js +25 -1
- package/dist/cli/backend/src/services/harness/harness-status.service.js.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js +2 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js +3 -2
- package/dist/cli/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js +3 -2
- package/dist/cli/backend/src/services/orchestrator/orchestrator-status.service.js.map +1 -1
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts +100 -0
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js +115 -0
- package/dist/cli/backend/src/services/runtime-fallback/effective-runtime.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +8 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +16 -2
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/types/index.d.ts +14 -0
- package/dist/cli/backend/src/types/index.d.ts.map +1 -1
- package/dist/cli/backend/src/types/index.js.map +1 -1
- package/dist/cli/cli/src/utils/runtime-auth.d.ts +1 -1
- package/dist/cli/cli/src/utils/runtime-auth.js +1 -1
- package/frontend/dist/assets/{index-0726afab.js → index-69af46c3.js} +275 -275
- package/frontend/dist/assets/{index-0c5449b5.css → index-cdc52122.css} +1 -1
- package/frontend/dist/index.html +2 -2
- 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"}
|