@telora/daemon 0.14.2 → 0.14.3
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/build-info.json +2 -2
- package/dist/queries/schemas.d.ts +4 -4
- package/dist/queries/schemas.js +1 -1
- package/dist/queries/schemas.js.map +1 -1
- package/dist/spawner-lifecycle.d.ts +43 -0
- package/dist/spawner-lifecycle.d.ts.map +1 -0
- package/dist/spawner-lifecycle.js +152 -0
- package/dist/spawner-lifecycle.js.map +1 -0
- package/dist/spawner-stream-handlers.d.ts +67 -0
- package/dist/spawner-stream-handlers.d.ts.map +1 -0
- package/dist/spawner-stream-handlers.js +193 -0
- package/dist/spawner-stream-handlers.js.map +1 -0
- package/dist/spawner.d.ts +15 -36
- package/dist/spawner.d.ts.map +1 -1
- package/dist/spawner.js +29 -327
- package/dist/spawner.js.map +1 -1
- package/dist/strategy-completion-event.d.ts +29 -0
- package/dist/strategy-completion-event.d.ts.map +1 -0
- package/dist/strategy-completion-event.js +69 -0
- package/dist/strategy-completion-event.js.map +1 -0
- package/dist/strategy-executor.d.ts +8 -45
- package/dist/strategy-executor.d.ts.map +1 -1
- package/dist/strategy-executor.js +22 -423
- package/dist/strategy-executor.js.map +1 -1
- package/dist/strategy-spawn-helpers.d.ts +67 -0
- package/dist/strategy-spawn-helpers.d.ts.map +1 -0
- package/dist/strategy-spawn-helpers.js +160 -0
- package/dist/strategy-spawn-helpers.js.map +1 -0
- package/dist/strategy-team-lifecycle.d.ts +50 -0
- package/dist/strategy-team-lifecycle.d.ts.map +1 -0
- package/dist/strategy-team-lifecycle.js +218 -0
- package/dist/strategy-team-lifecycle.js.map +1 -0
- package/dist/unified-engine-lifecycle.d.ts +36 -0
- package/dist/unified-engine-lifecycle.d.ts.map +1 -0
- package/dist/unified-engine-lifecycle.js +250 -0
- package/dist/unified-engine-lifecycle.js.map +1 -0
- package/dist/unified-shell-config.d.ts +25 -0
- package/dist/unified-shell-config.d.ts.map +1 -1
- package/dist/unified-shell-config.js +45 -0
- package/dist/unified-shell-config.js.map +1 -1
- package/dist/unified-shell-status.d.ts.map +1 -1
- package/dist/unified-shell-status.js +16 -2
- package/dist/unified-shell-status.js.map +1 -1
- package/dist/unified-shell.d.ts +2 -15
- package/dist/unified-shell.d.ts.map +1 -1
- package/dist/unified-shell.js +18 -619
- package/dist/unified-shell.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine creation, initialization, and diagnostic signal registration
|
|
3
|
+
* for the unified daemon shell.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from unified-shell.ts -- pure structural refactor, no behavioral
|
|
6
|
+
* changes.
|
|
7
|
+
*/
|
|
8
|
+
import { type ExecutionEngine, type UnifiedConfig, ResourceGovernor } from '@telora/daemon-core';
|
|
9
|
+
import type { UnifiedDaemonOptions } from './unified-shell-config.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create engine instances from config, set up the resource governor, and
|
|
12
|
+
* inject it into each engine. Exits the process if no engines are available.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createEnginesAndGovernor(config: UnifiedConfig, pidFilePath: string): Promise<{
|
|
15
|
+
engines: ExecutionEngine[];
|
|
16
|
+
governor: ResourceGovernor;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Initialize, run crash recovery, and start each engine. On failure, stops
|
|
20
|
+
* any engines that already started, releases the PID lock, and exits.
|
|
21
|
+
*/
|
|
22
|
+
export declare function initializeAndStartEngines(engines: ExecutionEngine[], config: UnifiedConfig, opts: UnifiedDaemonOptions, pidFilePath: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Claim products for this daemon's hostname. Unclaimed products are
|
|
25
|
+
* auto-claimed; products already claimed by another host are skipped.
|
|
26
|
+
*
|
|
27
|
+
* Mutates `config.base.products` in place to contain only claimed products.
|
|
28
|
+
* Uses a direct fetch call to avoid needing the full API client infrastructure
|
|
29
|
+
* (which is initialized per-engine later).
|
|
30
|
+
*/
|
|
31
|
+
export declare function claimProducts(config: UnifiedConfig): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Register SIGUSR1 (status dump) and SIGUSR2 (circuit breaker reset) handlers.
|
|
34
|
+
*/
|
|
35
|
+
export declare function registerDiagnosticSignals(engines: ExecutionEngine[], governor: ResourceGovernor): void;
|
|
36
|
+
//# sourceMappingURL=unified-engine-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-engine-lifecycle.d.ts","sourceRoot":"","sources":["../src/unified-engine-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,aAAa,EAKlB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAOtE;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,aAAa,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IAAC,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAAC,CAwGrE;AAMD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,eAAe,EAAE,EAC1B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,oBAAoB,EAC1B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAyDf;AAMD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0DxE;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EAAE,EAC1B,QAAQ,EAAE,gBAAgB,GACzB,IAAI,CAQN"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine creation, initialization, and diagnostic signal registration
|
|
3
|
+
* for the unified daemon shell.
|
|
4
|
+
*
|
|
5
|
+
* Extracted from unified-shell.ts -- pure structural refactor, no behavioral
|
|
6
|
+
* changes.
|
|
7
|
+
*/
|
|
8
|
+
import { hostname as osHostname } from 'node:os';
|
|
9
|
+
import { buildEngineConfig, releasePidLock, forceCloseAllCircuitBreakers, ResourceGovernor, } from '@telora/daemon-core';
|
|
10
|
+
import { StrategyEngine } from './strategy-engine.js';
|
|
11
|
+
import { PMEngine } from './pm-engine.js';
|
|
12
|
+
import { LoopEngine } from './loop-engine.js';
|
|
13
|
+
import { buildStrategyConfig, buildFactoryConfig, pmSectionFromRawConfig, loopSectionFromRawConfig, } from './unified-shell-config.js';
|
|
14
|
+
import { printAggregatedStatus } from './unified-shell-status.js';
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
// Engine creation + resource governor
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
/**
|
|
19
|
+
* Create engine instances from config, set up the resource governor, and
|
|
20
|
+
* inject it into each engine. Exits the process if no engines are available.
|
|
21
|
+
*/
|
|
22
|
+
export async function createEnginesAndGovernor(config, pidFilePath) {
|
|
23
|
+
const engines = [];
|
|
24
|
+
if (config.strategy.enabled) {
|
|
25
|
+
engines.push(new StrategyEngine());
|
|
26
|
+
}
|
|
27
|
+
if (config.factory.enabled) {
|
|
28
|
+
try {
|
|
29
|
+
// Dynamic import: @telora/factory may not be installed in all deployments.
|
|
30
|
+
// The specifier is constructed via a variable so TypeScript does not attempt
|
|
31
|
+
// static module resolution (the factory dist/ may not exist at typecheck time).
|
|
32
|
+
const factoryModulePath = '@telora/factory/factory-engine';
|
|
33
|
+
const factoryModule = await import(/* webpackIgnore: true */ factoryModulePath);
|
|
34
|
+
engines.push(new factoryModule.FactoryEngine());
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
console.warn(`Factory engine is enabled but @telora/factory could not be loaded: ` +
|
|
38
|
+
`${err instanceof Error ? err.message : String(err)}`);
|
|
39
|
+
console.warn('The factory engine will be skipped. Install @telora/factory to enable it.');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
// PM engine: enabled by default, no dynamic import needed
|
|
43
|
+
const pmSection = config.rawFileConfig.engines
|
|
44
|
+
? config.rawFileConfig.engines.pm
|
|
45
|
+
: undefined;
|
|
46
|
+
const pmEnabled = pmSection !== undefined
|
|
47
|
+
? pmSection.enabled !== false
|
|
48
|
+
: true;
|
|
49
|
+
// Allow env-var override for PM engine
|
|
50
|
+
const pmEnvEnabled = process.env.TELORA_ENGINE_PM_ENABLED;
|
|
51
|
+
const pmFinalEnabled = pmEnvEnabled !== undefined
|
|
52
|
+
? pmEnvEnabled !== '0' && pmEnvEnabled !== 'false'
|
|
53
|
+
: pmEnabled;
|
|
54
|
+
if (pmFinalEnabled) {
|
|
55
|
+
engines.push(new PMEngine());
|
|
56
|
+
}
|
|
57
|
+
// Loop engine: enabled by default, no dynamic import needed
|
|
58
|
+
const loopSection = config.rawFileConfig.engines
|
|
59
|
+
? config.rawFileConfig.engines.loop
|
|
60
|
+
: undefined;
|
|
61
|
+
const loopEnabled = loopSection !== undefined
|
|
62
|
+
? loopSection.enabled !== false
|
|
63
|
+
: true;
|
|
64
|
+
const loopEnvEnabled = process.env.TELORA_ENGINE_LOOP_ENABLED;
|
|
65
|
+
const loopFinalEnabled = loopEnvEnabled !== undefined
|
|
66
|
+
? loopEnvEnabled !== '0' && loopEnvEnabled !== 'false'
|
|
67
|
+
: loopEnabled;
|
|
68
|
+
if (loopFinalEnabled) {
|
|
69
|
+
engines.push(new LoopEngine());
|
|
70
|
+
}
|
|
71
|
+
if (engines.length === 0) {
|
|
72
|
+
console.error('No engines are enabled. Enable at least one engine in the config or remove --engine filter.');
|
|
73
|
+
releasePidLock(pidFilePath);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
// Compute per-engine limits from config (using resolved defaults)
|
|
77
|
+
const engineLimits = {};
|
|
78
|
+
if (config.strategy.enabled && engines.some(e => e.name === 'strategy')) {
|
|
79
|
+
const strategyMax = typeof config.strategy.fields.maxTotalSessions === 'number'
|
|
80
|
+
? config.strategy.fields.maxTotalSessions : 5;
|
|
81
|
+
engineLimits.strategy = strategyMax;
|
|
82
|
+
}
|
|
83
|
+
if (config.factory.enabled && engines.some(e => e.name === 'factory')) {
|
|
84
|
+
const factoryMax = typeof config.factory.fields.maxConcurrentInstances === 'number'
|
|
85
|
+
? config.factory.fields.maxConcurrentInstances : 3;
|
|
86
|
+
engineLimits.factory = factoryMax;
|
|
87
|
+
}
|
|
88
|
+
// Global max: sum of per-engine limits (or env override)
|
|
89
|
+
const env = process.env;
|
|
90
|
+
const defaultGlobalMax = Object.values(engineLimits).reduce((sum, v) => sum + v, 0) || 8;
|
|
91
|
+
const maxGlobalSessions = env.TELORA_MAX_GLOBAL_SESSIONS
|
|
92
|
+
? parseInt(env.TELORA_MAX_GLOBAL_SESSIONS, 10)
|
|
93
|
+
: (typeof config.rawFileConfig.maxGlobalSessions === 'number'
|
|
94
|
+
? config.rawFileConfig.maxGlobalSessions : defaultGlobalMax);
|
|
95
|
+
const governor = new ResourceGovernor({
|
|
96
|
+
maxGlobalSessions,
|
|
97
|
+
engineLimits,
|
|
98
|
+
});
|
|
99
|
+
// Inject governor into engines via the ExecutionEngine interface
|
|
100
|
+
for (const engine of engines) {
|
|
101
|
+
engine.setGovernor?.(governor);
|
|
102
|
+
}
|
|
103
|
+
console.log(`Resource governor: max ${maxGlobalSessions} global sessions ` +
|
|
104
|
+
`(${Object.entries(engineLimits).map(([k, v]) => `${k}: ${v}`).join(', ')})`);
|
|
105
|
+
return { engines, governor };
|
|
106
|
+
}
|
|
107
|
+
// ---------------------------------------------------------------------------
|
|
108
|
+
// Engine initialization and startup
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
/**
|
|
111
|
+
* Initialize, run crash recovery, and start each engine. On failure, stops
|
|
112
|
+
* any engines that already started, releases the PID lock, and exits.
|
|
113
|
+
*/
|
|
114
|
+
export async function initializeAndStartEngines(engines, config, opts, pidFilePath) {
|
|
115
|
+
try {
|
|
116
|
+
for (const engine of engines) {
|
|
117
|
+
console.log(`\n--- Initializing ${engine.name} engine ---`);
|
|
118
|
+
// Build the full config for this engine with all defaults applied
|
|
119
|
+
let engineConfig;
|
|
120
|
+
if (engine.name === 'strategy') {
|
|
121
|
+
engineConfig = buildStrategyConfig(config.base, config.strategy);
|
|
122
|
+
}
|
|
123
|
+
else if (engine.name === 'factory') {
|
|
124
|
+
engineConfig = buildFactoryConfig(config.base, config.factory);
|
|
125
|
+
}
|
|
126
|
+
else if (engine.name === 'pm') {
|
|
127
|
+
// PM engine uses base config + PM-specific fields from engines.pm section
|
|
128
|
+
const pmSection = pmSectionFromRawConfig(config.rawFileConfig);
|
|
129
|
+
engineConfig = buildEngineConfig(config.base, pmSection);
|
|
130
|
+
}
|
|
131
|
+
else if (engine.name === 'loop') {
|
|
132
|
+
// Loop engine uses base config + loop-specific fields from engines.loop section
|
|
133
|
+
const loopSec = loopSectionFromRawConfig(config.rawFileConfig);
|
|
134
|
+
engineConfig = buildEngineConfig(config.base, loopSec);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
// Unknown engine type -- pass a basic merged config
|
|
138
|
+
const section = config.strategy.enabled ? config.strategy : config.factory;
|
|
139
|
+
engineConfig = buildEngineConfig(config.base, section);
|
|
140
|
+
}
|
|
141
|
+
// Init
|
|
142
|
+
await engine.init(engineConfig);
|
|
143
|
+
console.log(`[${engine.name}] Initialized`);
|
|
144
|
+
// Crash recovery
|
|
145
|
+
if (opts.skipRecovery) {
|
|
146
|
+
console.log(`[${engine.name}] Skipping crash recovery (--skip-recovery flag)`);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
await engine.recoverFromCrash();
|
|
150
|
+
console.log(`[${engine.name}] Crash recovery complete`);
|
|
151
|
+
}
|
|
152
|
+
// Start
|
|
153
|
+
await engine.start();
|
|
154
|
+
console.log(`[${engine.name}] Started`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
console.error('Failed to initialize engines:', err instanceof Error ? err.message : String(err));
|
|
159
|
+
// Clean up: stop any engines that already started
|
|
160
|
+
for (const engine of engines) {
|
|
161
|
+
try {
|
|
162
|
+
engine.stop();
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Best effort
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
releasePidLock(pidFilePath);
|
|
169
|
+
process.exit(1);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// Product claiming
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
/**
|
|
176
|
+
* Claim products for this daemon's hostname. Unclaimed products are
|
|
177
|
+
* auto-claimed; products already claimed by another host are skipped.
|
|
178
|
+
*
|
|
179
|
+
* Mutates `config.base.products` in place to contain only claimed products.
|
|
180
|
+
* Uses a direct fetch call to avoid needing the full API client infrastructure
|
|
181
|
+
* (which is initialized per-engine later).
|
|
182
|
+
*/
|
|
183
|
+
export async function claimProducts(config) {
|
|
184
|
+
const base = config.base;
|
|
185
|
+
const products = base.products ?? [];
|
|
186
|
+
if (products.length === 0)
|
|
187
|
+
return;
|
|
188
|
+
const teloraUrl = base.teloraUrl;
|
|
189
|
+
const trackerId = base.trackerId;
|
|
190
|
+
if (!teloraUrl || !trackerId)
|
|
191
|
+
return;
|
|
192
|
+
const myHostname = osHostname();
|
|
193
|
+
const apiUrl = `${teloraUrl}/functions/v1/product-api`;
|
|
194
|
+
const claimed = [];
|
|
195
|
+
for (const product of products) {
|
|
196
|
+
try {
|
|
197
|
+
const response = await fetch(apiUrl, {
|
|
198
|
+
method: 'POST',
|
|
199
|
+
headers: {
|
|
200
|
+
Authorization: `Bearer ${trackerId}`,
|
|
201
|
+
'Content-Type': 'application/json',
|
|
202
|
+
},
|
|
203
|
+
body: JSON.stringify({
|
|
204
|
+
action: 'daemon_claim_product',
|
|
205
|
+
productId: product.id,
|
|
206
|
+
fields: { daemonHostname: myHostname },
|
|
207
|
+
}),
|
|
208
|
+
});
|
|
209
|
+
if (!response.ok) {
|
|
210
|
+
console.warn(`[claim] Failed to claim product ${product.id}: HTTP ${response.status}`);
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
213
|
+
const result = await response.json();
|
|
214
|
+
if (result.claimed) {
|
|
215
|
+
claimed.push(product);
|
|
216
|
+
console.log(`[claim] Product ${product.id} claimed by ${myHostname}`);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
console.warn(`[claim] Product ${product.id} is claimed by ${result.claimedBy} -- skipping`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
console.warn(`[claim] Failed to claim product ${product.id}: ${err.message}`);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (claimed.length === 0) {
|
|
227
|
+
throw new Error(`No products claimed by this host (${myHostname}). ` +
|
|
228
|
+
'All configured products are claimed by other daemons. ' +
|
|
229
|
+
'Use the Telora UI to reassign a product to this host, or stop the other daemon.');
|
|
230
|
+
}
|
|
231
|
+
if (claimed.length < products.length) {
|
|
232
|
+
console.log(`[claim] Processing ${claimed.length} of ${products.length} configured products`);
|
|
233
|
+
}
|
|
234
|
+
base.products = claimed;
|
|
235
|
+
}
|
|
236
|
+
// ---------------------------------------------------------------------------
|
|
237
|
+
// Diagnostic signal handlers
|
|
238
|
+
// ---------------------------------------------------------------------------
|
|
239
|
+
/**
|
|
240
|
+
* Register SIGUSR1 (status dump) and SIGUSR2 (circuit breaker reset) handlers.
|
|
241
|
+
*/
|
|
242
|
+
export function registerDiagnosticSignals(engines, governor) {
|
|
243
|
+
process.on('SIGUSR1', () => {
|
|
244
|
+
printAggregatedStatus(engines, governor);
|
|
245
|
+
});
|
|
246
|
+
process.on('SIGUSR2', () => {
|
|
247
|
+
forceCloseAllCircuitBreakers();
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=unified-engine-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unified-engine-lifecycle.js","sourceRoot":"","sources":["../src/unified-engine-lifecycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,21 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { type UnifiedConfig, type EngineSection } from '@telora/daemon-core';
|
|
9
9
|
import type { BaseConfig } from '@telora/daemon-core';
|
|
10
|
+
/** Options for the unified daemon. */
|
|
11
|
+
export interface UnifiedDaemonOptions {
|
|
12
|
+
/** Enable verbose logging (prints full config). */
|
|
13
|
+
verbose?: boolean;
|
|
14
|
+
/** Explicit path to config file (default: .telora/daemon.json). */
|
|
15
|
+
config?: string;
|
|
16
|
+
/** Print configuration and exit without starting. */
|
|
17
|
+
dryRun?: boolean;
|
|
18
|
+
/** Skip crash recovery on startup. */
|
|
19
|
+
skipRecovery?: boolean;
|
|
20
|
+
/** Override: only enable this engine (for debugging). */
|
|
21
|
+
engineFilter?: 'strategy' | 'factory' | 'pm';
|
|
22
|
+
/** Disable auto-update (--no-auto-update flag). */
|
|
23
|
+
noAutoUpdate?: boolean;
|
|
24
|
+
}
|
|
10
25
|
/**
|
|
11
26
|
* Build a complete strategy engine config (DaemonConfig) from the unified
|
|
12
27
|
* base config and the strategy engine section. Applies the same defaults
|
|
@@ -19,6 +34,16 @@ export declare function buildStrategyConfig(base: Partial<BaseConfig>, section:
|
|
|
19
34
|
* and env-var overrides as factory/src/config.ts loadConfig().
|
|
20
35
|
*/
|
|
21
36
|
export declare function buildFactoryConfig(base: Partial<BaseConfig>, section: EngineSection, env?: Record<string, string | undefined>): BaseConfig & Record<string, unknown>;
|
|
37
|
+
/**
|
|
38
|
+
* Extract the PM engine section from the raw file config.
|
|
39
|
+
* Returns an EngineSection with PM-specific fields (pollCadence, etc.).
|
|
40
|
+
*/
|
|
41
|
+
export declare function pmSectionFromRawConfig(rawFileConfig: Record<string, unknown>): EngineSection;
|
|
42
|
+
/**
|
|
43
|
+
* Extract the Loop engine section from the raw file config.
|
|
44
|
+
* Returns an EngineSection with loop-specific fields (intervals, thresholds, etc.).
|
|
45
|
+
*/
|
|
46
|
+
export declare function loopSectionFromRawConfig(rawFileConfig: Record<string, unknown>): EngineSection;
|
|
22
47
|
/**
|
|
23
48
|
* Resolve whether auto-update is enabled from env vars and config file.
|
|
24
49
|
* Env var TELORA_AUTO_UPDATE takes precedence over config file autoUpdate.enabled.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell-config.d.ts","sourceRoot":"","sources":["../src/unified-shell-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"unified-shell-config.d.ts","sourceRoot":"","sources":["../src/unified-shell-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMtD,sCAAsC;AACtC,MAAM,WAAW,oBAAoB;IACnC,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yDAAyD;IACzD,YAAY,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC;IAC7C,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA2DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EACzB,OAAO,EAAE,aAAa,EACtB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAmItC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,EACzB,OAAO,EAAE,aAAa,EACtB,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAqD,GAC1F,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2CtC;AAMD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAgB5F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,aAAa,CAgB9F;AAQD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAWvE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAYzE"}
|
|
@@ -190,6 +190,51 @@ export function buildFactoryConfig(base, section, env = process.env) {
|
|
|
190
190
|
};
|
|
191
191
|
}
|
|
192
192
|
// ---------------------------------------------------------------------------
|
|
193
|
+
// Raw config section extractors
|
|
194
|
+
// ---------------------------------------------------------------------------
|
|
195
|
+
/**
|
|
196
|
+
* Extract the PM engine section from the raw file config.
|
|
197
|
+
* Returns an EngineSection with PM-specific fields (pollCadence, etc.).
|
|
198
|
+
*/
|
|
199
|
+
export function pmSectionFromRawConfig(rawFileConfig) {
|
|
200
|
+
const engines = rawFileConfig.engines;
|
|
201
|
+
if (typeof engines === 'object' && engines !== null && !Array.isArray(engines)) {
|
|
202
|
+
const pm = engines.pm;
|
|
203
|
+
if (typeof pm === 'object' && pm !== null && !Array.isArray(pm)) {
|
|
204
|
+
const pmObj = pm;
|
|
205
|
+
const fields = {};
|
|
206
|
+
for (const [key, value] of Object.entries(pmObj)) {
|
|
207
|
+
if (key !== 'enabled') {
|
|
208
|
+
fields[key] = value;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return { enabled: pmObj.enabled !== false, fields };
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return { enabled: true, fields: {} };
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Extract the Loop engine section from the raw file config.
|
|
218
|
+
* Returns an EngineSection with loop-specific fields (intervals, thresholds, etc.).
|
|
219
|
+
*/
|
|
220
|
+
export function loopSectionFromRawConfig(rawFileConfig) {
|
|
221
|
+
const engines = rawFileConfig.engines;
|
|
222
|
+
if (typeof engines === 'object' && engines !== null && !Array.isArray(engines)) {
|
|
223
|
+
const loop = engines.loop;
|
|
224
|
+
if (typeof loop === 'object' && loop !== null && !Array.isArray(loop)) {
|
|
225
|
+
const loopObj = loop;
|
|
226
|
+
const fields = {};
|
|
227
|
+
for (const [key, value] of Object.entries(loopObj)) {
|
|
228
|
+
if (key !== 'enabled') {
|
|
229
|
+
fields[key] = value;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return { enabled: loopObj.enabled !== false, fields };
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return { enabled: true, fields: {} };
|
|
236
|
+
}
|
|
237
|
+
// ---------------------------------------------------------------------------
|
|
193
238
|
// Auto-update config resolution
|
|
194
239
|
// ---------------------------------------------------------------------------
|
|
195
240
|
const DEFAULT_AUTO_UPDATE_INTERVAL_MS = 3_600_000; // 1 hour
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell-config.js","sourceRoot":"","sources":["../src/unified-shell-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAGL,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"unified-shell-config.js","sourceRoot":"","sources":["../src/unified-shell-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAGL,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAuB7B,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAE9E;;;GAGG;AACH,SAAS,aAAa;IACpB,MAAM,UAAU,GAAG,iBAAiB,EAAE,CAAC;IACvC,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,YAAY;YAAE,SAAS;QAC5B,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC/C,OAAO,KAAK,CAAC,OAAO,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,8EAA8E;AAC9E,2DAA2D;AAC3D,8EAA8E;AAE9E,SAAS,UAAU,CACjB,MAA0B,EAC1B,OAAgB,EAChB,UAAkB;IAElB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,YAAY,CACnB,MAA0B,EAC1B,OAAgB,EAChB,UAAkB;IAElB,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8EAA8E;AAC9E,yBAAyB;AACzB,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAyB,EACzB,OAAsB,EACtB,MAA0C,OAAO,CAAC,GAAyC;IAE3F,6CAA6C;IAC7C,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,cAAc,GAAI,IAAI,CAAC,cAAyB,IAAI,QAAQ,CAAC;IACnE,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,gBAAgB,GAAI,IAAI,CAAC,gBAA2B,IAAI,OAAO,CAAC;IAEtE,8CAA8C;IAC9C,MAAM,WAAW,GAAG,GAAG,CAAC,mBAAmB;WACtC,CAAC,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;WAClE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAE/C,MAAM,iBAAiB,GAAG,GAAG,CAAC,yBAAyB;WAClD,CAAC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;WAC9E,aAAa,CAAC;IAEnB,MAAM,gBAAgB,GAAG,UAAU,CACjC,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC,CACnD,CAAC;IAEF,MAAM,UAAU,GAAG,UAAU,CAC3B,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAC3C,CAAC;IAEF,MAAM,SAAS,GAAG,YAAY,CAC5B,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,CACvC,CAAC;IAEF,MAAM,kBAAkB,GAAG,UAAU,CACnC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAC7D,CAAC;IAEF,MAAM,4BAA4B,GAAG,UAAU,CAC7C,GAAG,CAAC,gCAAgC,EAAE,MAAM,CAAC,4BAA4B,EAAE,KAAK,CACjF,CAAC;IAEF,qBAAqB;IACrB,MAAM,oBAAoB,GAAG,GAAG,CAAC,0BAA0B;WACtD,CAAC,OAAO,MAAM,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;WAC9E,WAAW,CAAC;IACjB,IAAI,oBAAoB,KAAK,WAAW,IAAI,oBAAoB,KAAK,aAAa,EAAE,CAAC;QACnF,MAAM,IAAI,KAAK,CACb,wCAAwC,oBAAoB,0CAA0C,CACvG,CAAC;IACJ,CAAC;IAED,gBAAgB;IAChB,MAAM,aAAa,GAAG,UAAU,CAC9B,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAC9C,CAAC;IACF,MAAM,gBAAgB,GAAG,UAAU,CACjC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC,gBAAgB,EAAE,UAAU,CAC7D,CAAC;IACF,MAAM,WAAW,GAAG,UAAU,CAC5B,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,CAC3C,CAAC;IAEF,YAAY;IACZ,MAAM,aAAa,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC;QACvF,CAAC,CAAC,MAAM,CAAC,SAAoC;QAC7C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG;QAChB,OAAO,EAAE,GAAG,CAAC,wBAAwB,KAAK,SAAS;YACjD,CAAC,CAAC,GAAG,CAAC,wBAAwB,KAAK,GAAG,IAAI,GAAG,CAAC,wBAAwB,KAAK,OAAO;YAClF,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAC/E,IAAI,EAAE,UAAU,CACd,GAAG,CAAC,qBAAqB,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CACpD;QACD,eAAe,EAAE,UAAU,CACzB,GAAG,CAAC,kCAAkC,EAAE,aAAa,CAAC,eAAe,EAAE,IAAI,CAC5E;QACD,aAAa,EAAE,UAAU,CACvB,GAAG,CAAC,+BAA+B,EAAE,aAAa,CAAC,aAAa,EAAE,EAAE,CACrE;KACF,CAAC;IAEF,iBAAiB;IACjB,MAAM,gBAAgB,GAAG,UAAU,CACjC,GAAG,CAAC,0BAA0B,EAAE,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAC9D,CAAC;IACF,MAAM,cAAc,GAAG,UAAU,CAC/B,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,cAAc,EAAE,IAAI,CAC1D,CAAC;IACF,MAAM,MAAM,GAAG,GAAG,CAAC,cAAc;WAC5B,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;WACxD,aAAa,EAAE,CAAC;IAErB,iBAAiB;IACjB,MAAM,gBAAgB,GAAG,GAAG,CAAC,yBAAyB;WACjD,CAAC,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;WAC5E,wBAAwB,CAAC;IAC9B,MAAM,oBAAoB,GAAG,GAAG,CAAC,8BAA8B;WAC1D,CAAC,OAAO,MAAM,CAAC,oBAAoB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;WACpF,IAAI,CAAC;IAEV,0EAA0E;IAC1E,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAoD,IAAI,EAAE,CAAC;IAElF,OAAO;QACL,cAAc;QACd,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,MAAM;QACN,gBAAgB;QAChB,2BAA2B;QAC3B,WAAW;QACX,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;QACV,SAAS;QACT,kBAAkB;QAClB,4BAA4B;QAC5B,iBAAiB,EAAE,oBAAoB;QACvC,aAAa;QACb,gBAAgB;QAChB,WAAW;QACX,SAAS;QACT,gBAAgB;QAChB,cAAc;QACd,MAAM;QACN,gBAAgB;QAChB,oBAAoB;KACmB,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAyB,EACzB,OAAsB,EACtB,MAA0C,OAAO,CAAC,GAAyC;IAE3F,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC5D,MAAM,cAAc,GAAI,IAAI,CAAC,cAAyB,IAAI,QAAQ,CAAC;IACnE,mDAAmD;IACnD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACvF,MAAM,gBAAgB,GAAI,IAAI,CAAC,gBAA2B,IAAI,OAAO,CAAC;IAEtE,6CAA6C;IAC7C,MAAM,kBAAkB,GAAG,GAAG,CAAC,2BAA2B;WACrD,CAAC,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;WAChF,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC;IAEvD,MAAM,sBAAsB,GAAG,GAAG,CAAC,gCAAgC;QACjE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,gCAAgC,EAAE,EAAE,CAAC;QACpD,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,sBAAsB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5F,iFAAiF;IACjF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC;QACtE,CAAC,CAAC,IAAI,CAAC,SAA+C;QACtD,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAElC,0EAA0E;IAC1E,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAoD,IAAI,EAAE,CAAC;IAElF,OAAO;QACL,cAAc;QACd,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,QAAQ;QACR,QAAQ;QACR,cAAc;QACd,MAAM;QACN,gBAAgB;QAChB,0BAA0B;QAC1B,kBAAkB;QAClB,sBAAsB;QACtB,SAAS;KAC8B,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAsC;IAC3E,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,MAAM,EAAE,GAAI,OAAmC,CAAC,EAAE,CAAC;QACnD,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAChE,MAAM,KAAK,GAAG,EAA6B,CAAC;YAC5C,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,KAAK,KAAK,EAAE,MAAM,EAAE,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,aAAsC;IAC7E,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;IACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAI,OAAmC,CAAC,IAAI,CAAC;QACvD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,OAAO,GAAG,IAA+B,CAAC;YAChD,MAAM,MAAM,GAA4B,EAAE,CAAC;YAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACtB,CAAC;YACH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,MAAM,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACvC,CAAC;AAED,8EAA8E;AAC9E,gCAAgC;AAChC,8EAA8E;AAE9E,MAAM,+BAA+B,GAAG,SAAS,CAAC,CAAC,SAAS;AAE5D;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAqB;IAC5D,MAAM,MAAM,GAAI,OAAO,CAAC,GAA0C,CAAC,kBAAkB,CAAC;IACtF,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,OAAO,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,OAAO,CAAC;IAC9C,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAwC,CAAC;IACnE,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChF,MAAM,EAAE,GAAG,UAAU,CAAC,UAAqC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC,OAAO,CAAC;IACzD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAqB;IAC/D,MAAM,MAAM,GAAI,OAAO,CAAC,GAA0C,CAAC,8BAA8B,CAAC;IAClG,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,CAAC;IAClD,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,aAAwC,CAAC;IACnE,IAAI,OAAO,UAAU,CAAC,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;QAChF,MAAM,EAAE,GAAG,UAAU,CAAC,UAAqC,CAAC;QAC5D,IAAI,OAAO,EAAE,CAAC,UAAU,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC,UAAU,CAAC;IACnF,CAAC;IACD,OAAO,+BAA+B,CAAC;AACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell-status.d.ts","sourceRoot":"","sources":["../src/unified-shell-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"unified-shell-status.d.ts","sourceRoot":"","sources":["../src/unified-shell-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5F;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,IAAI,CA8DnG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAmCrE"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Aggregated status display (SIGUSR1) and configuration summary printing.
|
|
5
5
|
*/
|
|
6
|
+
import { pmSectionFromRawConfig, loopSectionFromRawConfig } from './unified-shell-config.js';
|
|
6
7
|
/**
|
|
7
8
|
* Print aggregated status from all active engines.
|
|
8
9
|
*/
|
|
@@ -77,8 +78,17 @@ export function printUnifiedConfigSummary(config) {
|
|
|
77
78
|
console.log(` Telora URL: ${config.base.teloraUrl ?? '[not set]'}`);
|
|
78
79
|
console.log(` Tracker ID: ${config.base.trackerId ? '[configured]' : '[not set]'}`);
|
|
79
80
|
console.log(` Organization ID: ${config.base.organizationId ?? '[not set]'}`);
|
|
80
|
-
|
|
81
|
-
|
|
81
|
+
const products = config.base.products ?? [];
|
|
82
|
+
if (products.length > 0) {
|
|
83
|
+
console.log(` Products: ${products.length}`);
|
|
84
|
+
for (const p of products) {
|
|
85
|
+
console.log(` - ${p.id} -> ${p.repoPath}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
console.log(` Product ID: ${config.base.productId ?? '[not set]'}`);
|
|
90
|
+
console.log(` Repository Path: ${config.base.repoPath ?? '[cwd]'}`);
|
|
91
|
+
}
|
|
82
92
|
console.log(` Claude Code Path: ${config.base.claudeCodePath ?? 'claude'}`);
|
|
83
93
|
console.log(` Log Directory: ${config.base.logDir ?? '[default]'}`);
|
|
84
94
|
console.log(` Session Timeout: ${config.base.sessionTimeoutMs ?? 3600000}ms`);
|
|
@@ -95,5 +105,9 @@ export function printUnifiedConfigSummary(config) {
|
|
|
95
105
|
console.log(` factoryWorktreeDir: ${String(ff.factoryWorktreeDir ?? '[default]')}`);
|
|
96
106
|
console.log(` maxConcurrentInstances: ${String(ff.maxConcurrentInstances ?? 3)}`);
|
|
97
107
|
}
|
|
108
|
+
const pmSection = pmSectionFromRawConfig(config.rawFileConfig);
|
|
109
|
+
console.log(`\n PM engine: ${pmSection.enabled ? 'enabled' : 'disabled'}`);
|
|
110
|
+
const loopSec = loopSectionFromRawConfig(config.rawFileConfig);
|
|
111
|
+
console.log(` Loop engine: ${loopSec.enabled ? 'enabled' : 'disabled'}`);
|
|
98
112
|
}
|
|
99
113
|
//# sourceMappingURL=unified-shell-status.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell-status.js","sourceRoot":"","sources":["../src/unified-shell-status.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"unified-shell-status.js","sourceRoot":"","sources":["../src/unified-shell-status.ts"],"names":[],"mappings":"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"}
|
package/dist/unified-shell.d.ts
CHANGED
|
@@ -22,21 +22,8 @@
|
|
|
22
22
|
* 3. Release PID lock
|
|
23
23
|
* 4. Exit
|
|
24
24
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/** Enable verbose logging (prints full config). */
|
|
28
|
-
verbose?: boolean;
|
|
29
|
-
/** Explicit path to config file (default: .telora/daemon.json). */
|
|
30
|
-
config?: string;
|
|
31
|
-
/** Print configuration and exit without starting. */
|
|
32
|
-
dryRun?: boolean;
|
|
33
|
-
/** Skip crash recovery on startup. */
|
|
34
|
-
skipRecovery?: boolean;
|
|
35
|
-
/** Override: only enable this engine (for debugging). */
|
|
36
|
-
engineFilter?: 'strategy' | 'factory' | 'pm';
|
|
37
|
-
/** Disable auto-update (--no-auto-update flag). */
|
|
38
|
-
noAutoUpdate?: boolean;
|
|
39
|
-
}
|
|
25
|
+
export type { UnifiedDaemonOptions } from './unified-shell-config.js';
|
|
26
|
+
import type { UnifiedDaemonOptions } from './unified-shell-config.js';
|
|
40
27
|
/**
|
|
41
28
|
* Run the unified daemon process shell.
|
|
42
29
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unified-shell.d.ts","sourceRoot":"","sources":["../src/unified-shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;
|
|
1
|
+
{"version":3,"file":"unified-shell.d.ts","sourceRoot":"","sources":["../src/unified-shell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA2BH,YAAY,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAkDtE;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4OhF"}
|