crewly 1.20.181 → 1.20.183
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/roles/orchestrator/prompt.md +4 -0
- package/config/skills/agent/core/report-status/execute.sh +4 -2
- package/dist/backend/backend/src/constants.d.ts +101 -1
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +110 -1
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js +22 -1
- package/dist/backend/backend/src/controllers/chat/agent-reply.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/chat/chat.controller.js +25 -24
- package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/slack/slack.controller.js +15 -0
- package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts +11 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js +44 -9
- package/dist/backend/backend/src/controllers/system/runtime-fallback.controller.js.map +1 -1
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts +31 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js +99 -0
- package/dist/backend/backend/src/controllers/system/runtime-terms.controller.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +4 -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/antigravity-runtime.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +5 -0
- package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts +14 -4
- package/dist/backend/backend/src/services/decisions/decision-card.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision-card.js +31 -10
- package/dist/backend/backend/src/services/decisions/decision-card.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts +40 -2
- package/dist/backend/backend/src/services/decisions/decision.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.service.js +100 -8
- package/dist/backend/backend/src/services/decisions/decision.service.js.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/decisions/decision.wiring.js +7 -0
- package/dist/backend/backend/src/services/decisions/decision.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts +2 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/messaging/message-queue.service.js +6 -3
- package/dist/backend/backend/src/services/messaging/message-queue.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 +6 -1
- package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
- package/dist/backend/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts +110 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js +229 -0
- package/dist/backend/backend/src/services/orc/orc-status-router.service.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts +108 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.js +145 -0
- package/dist/backend/backend/src/services/orc/orc-status-routing.js.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.js +130 -0
- package/dist/backend/backend/src/services/orc/orc-wake-counter.js.map +1 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts +33 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.js +49 -0
- package/dist/backend/backend/src/services/orc/work-item-destination.js.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts +2 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js +10 -4
- package/dist/backend/backend/src/services/orc/work-item-destination.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts +8 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js +5 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-availability.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts +2 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js +4 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +2 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js +3 -0
- package/dist/backend/backend/src/services/runtime-fallback/runtime-fallback.wiring.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +15 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +13 -2
- package/dist/backend/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -1
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
- package/dist/backend/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts +75 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js +218 -0
- package/dist/backend/backend/src/services/runtime-terms/fake-agy-tui.fixture.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts +39 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.d.ts.map +1 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js +161 -0
- package/dist/backend/backend/src/services/runtime-terms/runtime-terms.wiring.js.map +1 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +16 -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 +31 -8
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js +2 -0
- package/dist/backend/backend/src/services/task-pool/give-up/give-up-recovery.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +61 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/types/decision.types.d.ts +29 -5
- package/dist/backend/backend/src/types/decision.types.d.ts.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +101 -1
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +110 -1
- package/dist/cli/backend/src/constants.js.map +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 +5 -0
- package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts +165 -0
- package/dist/cli/backend/src/services/decisions/decision-card.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-card.js +358 -0
- package/dist/cli/backend/src/services/decisions/decision-card.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts +83 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.js +226 -0
- package/dist/cli/backend/src/services/decisions/decision-contract.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-store.d.ts +80 -0
- package/dist/cli/backend/src/services/decisions/decision-store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision-store.js +151 -0
- package/dist/cli/backend/src/services/decisions/decision-store.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts +376 -0
- package/dist/cli/backend/src/services/decisions/decision.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js +821 -0
- package/dist/cli/backend/src/services/decisions/decision.service.js.map +1 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts +97 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.js +137 -0
- package/dist/cli/backend/src/services/decisions/ticket-thread-store.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts +2 -1
- package/dist/cli/backend/src/services/messaging/message-queue.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/messaging/message-queue.service.js +6 -3
- package/dist/cli/backend/src/services/messaging/message-queue.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 +6 -1
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts +3 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js +7 -4
- package/dist/cli/backend/src/services/orc/orc-delivery-enforcer.service.js.map +1 -1
- package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts +108 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.js +145 -0
- package/dist/cli/backend/src/services/orc/orc-status-routing.js.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts +86 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.js +130 -0
- package/dist/cli/backend/src/services/orc/orc-wake-counter.js.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts +198 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.js +288 -0
- package/dist/cli/backend/src/services/orc/work-item-destination.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts +136 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js +152 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-fallback.types.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts +217 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js +430 -0
- package/dist/cli/backend/src/services/runtime-fallback/runtime-smoke-test.service.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts +92 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js +199 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-driver.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts +79 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js +145 -0
- package/dist/cli/backend/src/services/runtime-terms/antigravity-terms-screens.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts +245 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js +428 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms-consent.service.js.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts +67 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js +78 -0
- package/dist/cli/backend/src/services/runtime-terms/runtime-terms.store.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +16 -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 +31 -8
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +23 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +61 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/decision.types.d.ts +192 -0
- package/dist/cli/backend/src/types/decision.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/decision.types.js +13 -0
- package/dist/cli/backend/src/types/decision.types.js.map +1 -0
- package/dist/cli/cli/src/commands/harness-setup.js +2 -2
- package/frontend/dist/assets/{index-4271e95e.js → index-9c91de50.js} +138 -138
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -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,217 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime smoke test — prove a runtime really works on this machine by
|
|
3
|
+
* running one agent on it end to end.
|
|
4
|
+
*
|
|
5
|
+
* Through the backend's own REST API (the calls the dashboard makes):
|
|
6
|
+
*
|
|
7
|
+
* 1. `create_team` — temp project + team `zz-runtime-smoke-<runtime>` with
|
|
8
|
+
* one member on the runtime (a leftover of the same name is removed first).
|
|
9
|
+
* 2. `start_member` — start it (as the owner's dashboard would).
|
|
10
|
+
* 3. `agent_ready` — wait until it registered. Antigravity's first-run Terms
|
|
11
|
+
* screen fails the test with "Antigravity needs its terms accepted once"
|
|
12
|
+
* and the screen text — Crewly never accepts terms for the owner.
|
|
13
|
+
* 4. `send_task` — `echo ok > <file>` with bash, then reply with a token.
|
|
14
|
+
* 5. `bash` — the file holds `ok`.
|
|
15
|
+
* 6. `reply` — the token `SMOKE-ok-<nonce>` shows in the agent's output. The
|
|
16
|
+
* task never contains that string verbatim (only its parts), so an echo
|
|
17
|
+
* of the task does not count.
|
|
18
|
+
* 7. `cleanup` — stop and delete the team and the project (always).
|
|
19
|
+
*
|
|
20
|
+
* Bounded by 5 minutes. specs/2026-10-01-runtime-fallback.md
|
|
21
|
+
*
|
|
22
|
+
* @module services/runtime-fallback/runtime-smoke-test.service
|
|
23
|
+
*/
|
|
24
|
+
/** Steps, in order. */
|
|
25
|
+
export type SmokeStep = 'create_team' | 'start_member' | 'agent_ready' | 'send_task' | 'bash' | 'reply' | 'cleanup';
|
|
26
|
+
/** Result of one smoke test. */
|
|
27
|
+
export interface SmokeTestResult {
|
|
28
|
+
runtime: string;
|
|
29
|
+
passed: boolean;
|
|
30
|
+
/** The step that failed */
|
|
31
|
+
failedStep?: SmokeStep;
|
|
32
|
+
/** Owner-facing reason (English) */
|
|
33
|
+
error?: string;
|
|
34
|
+
/** Steps that passed, in order */
|
|
35
|
+
steps: Array<{
|
|
36
|
+
step: SmokeStep;
|
|
37
|
+
ok: boolean;
|
|
38
|
+
ms: number;
|
|
39
|
+
detail?: string;
|
|
40
|
+
}>;
|
|
41
|
+
/** Last screen text (on failure, and for the Terms screen) */
|
|
42
|
+
screen?: string;
|
|
43
|
+
durationMs: number;
|
|
44
|
+
}
|
|
45
|
+
/** A job (POST returns its id; GET reads it). */
|
|
46
|
+
export interface SmokeTestJob {
|
|
47
|
+
jobId: string;
|
|
48
|
+
runtime: string;
|
|
49
|
+
state: 'running' | 'done';
|
|
50
|
+
startedAt: string;
|
|
51
|
+
result?: SmokeTestResult;
|
|
52
|
+
}
|
|
53
|
+
/** The REST calls the smoke test makes (the default talks to the local API). */
|
|
54
|
+
export interface SmokeApi {
|
|
55
|
+
listTeams(): Promise<Array<{
|
|
56
|
+
id: string;
|
|
57
|
+
name: string;
|
|
58
|
+
}>>;
|
|
59
|
+
listProjects(): Promise<Array<{
|
|
60
|
+
id: string;
|
|
61
|
+
name: string;
|
|
62
|
+
}>>;
|
|
63
|
+
createProject(name: string, projectPath: string): Promise<string>;
|
|
64
|
+
deleteProject(projectId: string): Promise<void>;
|
|
65
|
+
createTeam(body: Record<string, unknown>): Promise<{
|
|
66
|
+
id: string;
|
|
67
|
+
memberId: string;
|
|
68
|
+
}>;
|
|
69
|
+
startMember(teamId: string, memberId: string): Promise<{
|
|
70
|
+
ok: boolean;
|
|
71
|
+
error?: string;
|
|
72
|
+
}>;
|
|
73
|
+
getMember(teamId: string, memberId: string): Promise<{
|
|
74
|
+
agentStatus: string;
|
|
75
|
+
sessionName: string;
|
|
76
|
+
} | null>;
|
|
77
|
+
capture(sessionName: string, lines: number): Promise<string>;
|
|
78
|
+
/** The session's persistent log (also after the session is gone) */
|
|
79
|
+
sessionLog(sessionName: string, lines: number): Promise<string>;
|
|
80
|
+
deliver(sessionName: string, message: string): Promise<{
|
|
81
|
+
ok: boolean;
|
|
82
|
+
error?: string;
|
|
83
|
+
}>;
|
|
84
|
+
stopTeam(teamId: string): Promise<void>;
|
|
85
|
+
/** Kill a session by name (a refused start can leave its PTY behind) */
|
|
86
|
+
killSession(sessionName: string): Promise<void>;
|
|
87
|
+
/** Whether a session is still live */
|
|
88
|
+
sessionExists(sessionName: string): Promise<boolean>;
|
|
89
|
+
deleteTeam(teamId: string): Promise<void>;
|
|
90
|
+
}
|
|
91
|
+
/** Dependencies. */
|
|
92
|
+
export interface SmokeTestDeps {
|
|
93
|
+
api: SmokeApi;
|
|
94
|
+
/** Scratch root for the project + proof files */
|
|
95
|
+
workRoot?: string;
|
|
96
|
+
now?: () => number;
|
|
97
|
+
sleep?: (ms: number) => Promise<void>;
|
|
98
|
+
nonce?: () => string;
|
|
99
|
+
timeoutMs?: number;
|
|
100
|
+
pollMs?: number;
|
|
101
|
+
/** provider/model a Crewly Agent test runs (the fallback's model, DeepSeek by default) */
|
|
102
|
+
crewlyAgentModel?: () => string;
|
|
103
|
+
/**
|
|
104
|
+
* The test stopped on the runtime's first-run Terms screen: ask the owner
|
|
105
|
+
* (specs/2026-10-01-runtime-terms-consent.md). `ownerInitiated` = the
|
|
106
|
+
* owner pressed Test.
|
|
107
|
+
*/
|
|
108
|
+
onTermsScreen?: (runtime: string, report: {
|
|
109
|
+
ownerInitiated: boolean;
|
|
110
|
+
screen?: string;
|
|
111
|
+
}) => void;
|
|
112
|
+
}
|
|
113
|
+
/** The failure reason when the runtime stopped on its first-run Terms screen. */
|
|
114
|
+
export declare const SMOKE_TERMS_ERROR = "Antigravity needs its terms accepted once";
|
|
115
|
+
/**
|
|
116
|
+
* Whether a screen shows Antigravity's first-run (Terms) screens.
|
|
117
|
+
*
|
|
118
|
+
* @param screen - Screen text
|
|
119
|
+
* @returns True when the Terms / onboarding screen is up
|
|
120
|
+
*/
|
|
121
|
+
export declare function showsAntigravityTerms(screen: string): boolean;
|
|
122
|
+
/**
|
|
123
|
+
* The task the smoke agent gets.
|
|
124
|
+
*
|
|
125
|
+
* @param file - Proof file to write with bash
|
|
126
|
+
* @param nonce - Code for the reply token
|
|
127
|
+
* @returns Message text (never contains `SMOKE-ok-<nonce>` verbatim)
|
|
128
|
+
*/
|
|
129
|
+
export declare function buildSmokeTask(file: string, nonce: string): string;
|
|
130
|
+
/** Runs smoke tests and keeps their jobs. */
|
|
131
|
+
export declare class RuntimeSmokeTestService {
|
|
132
|
+
private readonly deps;
|
|
133
|
+
private readonly jobs;
|
|
134
|
+
private readonly running;
|
|
135
|
+
private readonly now;
|
|
136
|
+
private readonly sleep;
|
|
137
|
+
/**
|
|
138
|
+
* @param deps - Dependencies
|
|
139
|
+
*/
|
|
140
|
+
constructor(deps: SmokeTestDeps);
|
|
141
|
+
/**
|
|
142
|
+
* Start a smoke test (one per runtime at a time).
|
|
143
|
+
*
|
|
144
|
+
* @param runtime - Runtime id
|
|
145
|
+
* @param opts - `ownerInitiated`: the owner pressed Test (a Terms screen then asks again even after "Don't agree")
|
|
146
|
+
* @returns The job and a promise of its result
|
|
147
|
+
* @throws Error for an unknown runtime
|
|
148
|
+
*/
|
|
149
|
+
start(runtime: string, opts?: {
|
|
150
|
+
ownerInitiated?: boolean;
|
|
151
|
+
}): {
|
|
152
|
+
job: SmokeTestJob;
|
|
153
|
+
done: Promise<SmokeTestResult>;
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* A job by id.
|
|
157
|
+
*
|
|
158
|
+
* @param jobId - Job id
|
|
159
|
+
* @returns Job, or null
|
|
160
|
+
*/
|
|
161
|
+
get(jobId: string): SmokeTestJob | null;
|
|
162
|
+
private prune;
|
|
163
|
+
/**
|
|
164
|
+
* Run one smoke test.
|
|
165
|
+
*
|
|
166
|
+
* @param runtime - Runtime id
|
|
167
|
+
* @returns Result (never throws)
|
|
168
|
+
*/
|
|
169
|
+
run(runtime: string): Promise<SmokeTestResult>;
|
|
170
|
+
/** Remove a team / project left over from an earlier run. */
|
|
171
|
+
private removeLeftovers;
|
|
172
|
+
private result;
|
|
173
|
+
}
|
|
174
|
+
/** Fetch-based client for the local API (the default {@link SmokeApi}). */
|
|
175
|
+
export declare class LocalSmokeApi implements SmokeApi {
|
|
176
|
+
private readonly baseUrl;
|
|
177
|
+
private readonly token;
|
|
178
|
+
/**
|
|
179
|
+
* @param baseUrl - e.g. http://127.0.0.1:8787
|
|
180
|
+
* @param token - Crewly API token
|
|
181
|
+
*/
|
|
182
|
+
constructor(baseUrl: () => string, token: () => string);
|
|
183
|
+
private call;
|
|
184
|
+
listTeams(): Promise<Array<{
|
|
185
|
+
id: string;
|
|
186
|
+
name: string;
|
|
187
|
+
}>>;
|
|
188
|
+
listProjects(): Promise<Array<{
|
|
189
|
+
id: string;
|
|
190
|
+
name: string;
|
|
191
|
+
}>>;
|
|
192
|
+
createProject(name: string, projectPath: string): Promise<string>;
|
|
193
|
+
deleteProject(projectId: string): Promise<void>;
|
|
194
|
+
createTeam(body: Record<string, unknown>): Promise<{
|
|
195
|
+
id: string;
|
|
196
|
+
memberId: string;
|
|
197
|
+
}>;
|
|
198
|
+
startMember(teamId: string, memberId: string): Promise<{
|
|
199
|
+
ok: boolean;
|
|
200
|
+
error?: string;
|
|
201
|
+
}>;
|
|
202
|
+
getMember(teamId: string, memberId: string): Promise<{
|
|
203
|
+
agentStatus: string;
|
|
204
|
+
sessionName: string;
|
|
205
|
+
} | null>;
|
|
206
|
+
capture(sessionName: string, lines: number): Promise<string>;
|
|
207
|
+
sessionLog(sessionName: string, lines: number): Promise<string>;
|
|
208
|
+
deliver(sessionName: string, message: string): Promise<{
|
|
209
|
+
ok: boolean;
|
|
210
|
+
error?: string;
|
|
211
|
+
}>;
|
|
212
|
+
killSession(sessionName: string): Promise<void>;
|
|
213
|
+
sessionExists(sessionName: string): Promise<boolean>;
|
|
214
|
+
stopTeam(teamId: string): Promise<void>;
|
|
215
|
+
deleteTeam(teamId: string): Promise<void>;
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=runtime-smoke-test.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-smoke-test.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/runtime-fallback/runtime-smoke-test.service.ts"],"names":[],"mappings":"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"}
|