@doriandev/devcc 0.1.2 → 0.2.0
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/README.md +556 -386
- package/bin/devcc.mjs +50 -23
- package/dist/devcc/agents/agents.d.ts +112 -0
- package/dist/devcc/agents/agents.d.ts.map +1 -0
- package/dist/devcc/agents/agents.js +179 -0
- package/dist/devcc/agents/agents.js.map +1 -0
- package/dist/devcc/app/App.d.ts +15 -0
- package/dist/devcc/app/App.d.ts.map +1 -1
- package/dist/devcc/app/App.js +326 -17
- package/dist/devcc/app/App.js.map +1 -1
- package/dist/devcc/app/controlPlaneCommands.d.ts +14 -0
- package/dist/devcc/app/controlPlaneCommands.d.ts.map +1 -0
- package/dist/devcc/app/controlPlaneCommands.js +179 -0
- package/dist/devcc/app/controlPlaneCommands.js.map +1 -0
- package/dist/devcc/app/keymap.d.ts.map +1 -1
- package/dist/devcc/app/keymap.js +24 -3
- package/dist/devcc/app/keymap.js.map +1 -1
- package/dist/devcc/automation.d.ts +31 -0
- package/dist/devcc/automation.d.ts.map +1 -0
- package/dist/devcc/automation.js +202 -0
- package/dist/devcc/automation.js.map +1 -0
- package/dist/devcc/cli.d.ts.map +1 -1
- package/dist/devcc/cli.js +46 -3
- package/dist/devcc/cli.js.map +1 -1
- package/dist/devcc/components/Sidebar.d.ts.map +1 -1
- package/dist/devcc/components/Sidebar.js +1 -0
- package/dist/devcc/components/Sidebar.js.map +1 -1
- package/dist/devcc/components/primitives.d.ts.map +1 -1
- package/dist/devcc/components/primitives.js +3 -0
- package/dist/devcc/components/primitives.js.map +1 -1
- package/dist/devcc/core/commands.d.ts +25 -0
- package/dist/devcc/core/commands.d.ts.map +1 -1
- package/dist/devcc/core/commands.js.map +1 -1
- package/dist/devcc/core/config.d.ts +69 -3
- package/dist/devcc/core/config.d.ts.map +1 -1
- package/dist/devcc/core/config.js +185 -5
- package/dist/devcc/core/config.js.map +1 -1
- package/dist/devcc/core/state.d.ts +19 -1
- package/dist/devcc/core/state.d.ts.map +1 -1
- package/dist/devcc/core/state.js +6 -0
- package/dist/devcc/core/state.js.map +1 -1
- package/dist/devcc/environment/EnvironmentService.d.ts +58 -0
- package/dist/devcc/environment/EnvironmentService.d.ts.map +1 -0
- package/dist/devcc/environment/EnvironmentService.js +159 -0
- package/dist/devcc/environment/EnvironmentService.js.map +1 -0
- package/dist/devcc/environment/integrations.d.ts +52 -0
- package/dist/devcc/environment/integrations.d.ts.map +1 -0
- package/dist/devcc/environment/integrations.js +94 -0
- package/dist/devcc/environment/integrations.js.map +1 -0
- package/dist/devcc/environment/tools.d.ts +51 -0
- package/dist/devcc/environment/tools.d.ts.map +1 -0
- package/dist/devcc/environment/tools.js +99 -0
- package/dist/devcc/environment/tools.js.map +1 -0
- package/dist/devcc/git/GitService.d.ts +26 -0
- package/dist/devcc/git/GitService.d.ts.map +1 -1
- package/dist/devcc/git/GitService.js +71 -2
- package/dist/devcc/git/GitService.js.map +1 -1
- package/dist/devcc/git/worktrees.d.ts +88 -0
- package/dist/devcc/git/worktrees.d.ts.map +1 -0
- package/dist/devcc/git/worktrees.js +226 -0
- package/dist/devcc/git/worktrees.js.map +1 -0
- package/dist/devcc/index.d.ts +13 -3
- package/dist/devcc/index.d.ts.map +1 -1
- package/dist/devcc/index.js +11 -1
- package/dist/devcc/index.js.map +1 -1
- package/dist/devcc/platform/launch.d.ts +30 -0
- package/dist/devcc/platform/launch.d.ts.map +1 -0
- package/dist/devcc/platform/launch.js +93 -0
- package/dist/devcc/platform/launch.js.map +1 -0
- package/dist/devcc/services/ServiceManager.d.ts +10 -2
- package/dist/devcc/services/ServiceManager.d.ts.map +1 -1
- package/dist/devcc/services/ServiceManager.js +18 -4
- package/dist/devcc/services/ServiceManager.js.map +1 -1
- package/dist/devcc/services/ollama.d.ts +64 -5
- package/dist/devcc/services/ollama.d.ts.map +1 -1
- package/dist/devcc/services/ollama.js +118 -17
- package/dist/devcc/services/ollama.js.map +1 -1
- package/dist/devcc/services/remote.d.ts +90 -0
- package/dist/devcc/services/remote.d.ts.map +1 -0
- package/dist/devcc/services/remote.js +233 -0
- package/dist/devcc/services/remote.js.map +1 -0
- package/dist/devcc/services/types.d.ts +8 -1
- package/dist/devcc/services/types.d.ts.map +1 -1
- package/dist/devcc/services/types.js.map +1 -1
- package/dist/devcc/utils/exec.d.ts +6 -0
- package/dist/devcc/utils/exec.d.ts.map +1 -1
- package/dist/devcc/utils/exec.js +12 -2
- package/dist/devcc/utils/exec.js.map +1 -1
- package/dist/devcc/verify/verify.d.ts +107 -0
- package/dist/devcc/verify/verify.d.ts.map +1 -0
- package/dist/devcc/verify/verify.js +203 -0
- package/dist/devcc/verify/verify.js.map +1 -0
- package/dist/devcc/views/OverviewView.d.ts.map +1 -1
- package/dist/devcc/views/OverviewView.js +55 -1
- package/dist/devcc/views/OverviewView.js.map +1 -1
- package/dist/devcc/views/ServicesView.d.ts +2 -0
- package/dist/devcc/views/ServicesView.d.ts.map +1 -1
- package/dist/devcc/views/ServicesView.js +15 -0
- package/dist/devcc/views/ServicesView.js.map +1 -1
- package/dist/devcc/views/SystemView.d.ts +10 -1
- package/dist/devcc/views/SystemView.d.ts.map +1 -1
- package/dist/devcc/views/SystemView.js +127 -19
- package/dist/devcc/views/SystemView.js.map +1 -1
- package/dist/devcc/views/WorktreesView.d.ts +48 -0
- package/dist/devcc/views/WorktreesView.d.ts.map +1 -0
- package/dist/devcc/views/WorktreesView.js +235 -0
- package/dist/devcc/views/WorktreesView.js.map +1 -0
- package/package.json +1 -1
- package/src/devcc/agents/agents.ts +282 -0
- package/src/devcc/app/App.ts +376 -20
- package/src/devcc/app/controlPlaneCommands.ts +197 -0
- package/src/devcc/app/keymap.ts +24 -3
- package/src/devcc/automation.ts +242 -0
- package/src/devcc/cli.ts +45 -3
- package/src/devcc/components/Sidebar.ts +1 -0
- package/src/devcc/components/primitives.ts +3 -0
- package/src/devcc/core/commands.ts +26 -0
- package/src/devcc/core/config.ts +271 -11
- package/src/devcc/core/state.ts +25 -0
- package/src/devcc/environment/EnvironmentService.ts +215 -0
- package/src/devcc/environment/integrations.ts +133 -0
- package/src/devcc/environment/tools.ts +151 -0
- package/src/devcc/git/GitService.ts +104 -2
- package/src/devcc/git/worktrees.ts +256 -0
- package/src/devcc/index.ts +57 -2
- package/src/devcc/platform/launch.ts +125 -0
- package/src/devcc/services/ServiceManager.ts +15 -3
- package/src/devcc/services/ollama.ts +162 -19
- package/src/devcc/services/remote.ts +306 -0
- package/src/devcc/services/types.ts +9 -1
- package/src/devcc/utils/exec.ts +26 -2
- package/src/devcc/verify/verify.ts +316 -0
- package/src/devcc/views/OverviewView.ts +76 -1
- package/src/devcc/views/ServicesView.ts +17 -0
- package/src/devcc/views/SystemView.ts +144 -22
- package/src/devcc/views/WorktreesView.ts +270 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/devcc/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAA+B,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/devcc/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,9 @@ export const EMPTY_CONFIG = {
|
|
|
14
14
|
services: [],
|
|
15
15
|
projects: [],
|
|
16
16
|
projectSearchDirs: [],
|
|
17
|
+
verify: [],
|
|
18
|
+
remoteMachines: [],
|
|
19
|
+
agents: {},
|
|
17
20
|
refresh: DEFAULT_REFRESH,
|
|
18
21
|
};
|
|
19
22
|
/** Identity helper that gives config files full type checking and completion. */
|
|
@@ -151,15 +154,39 @@ export function validateConfig(raw) {
|
|
|
151
154
|
continue;
|
|
152
155
|
}
|
|
153
156
|
const id = asString(record.id);
|
|
154
|
-
const
|
|
155
|
-
if (
|
|
156
|
-
issues.push(`services[${index}]
|
|
157
|
+
const type = asString(record.type) ?? "port";
|
|
158
|
+
if (type !== "port" && type !== "ollama") {
|
|
159
|
+
issues.push(`services[${index}] has unknown type "${type}" (expected "port" or "ollama")`);
|
|
157
160
|
continue;
|
|
158
161
|
}
|
|
159
|
-
if (seenServiceIds.has(id)) {
|
|
162
|
+
if (id && seenServiceIds.has(id)) {
|
|
160
163
|
issues.push(`services[${index}] duplicates id "${id}"`);
|
|
161
164
|
continue;
|
|
162
165
|
}
|
|
166
|
+
if (type === "ollama") {
|
|
167
|
+
const baseUrl = asString(record.baseUrl);
|
|
168
|
+
const endpoint = baseUrl ? parseHttpUrl(baseUrl) : null;
|
|
169
|
+
if (!id || !endpoint) {
|
|
170
|
+
issues.push(`services[${index}] (ollama) needs "id" and an http(s) "baseUrl"`);
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
seenServiceIds.add(id);
|
|
174
|
+
services.push({
|
|
175
|
+
id,
|
|
176
|
+
name: asString(record.name) ?? `Ollama (${endpoint.host})`,
|
|
177
|
+
type: "ollama",
|
|
178
|
+
baseUrl: endpoint.baseUrl,
|
|
179
|
+
host: endpoint.host,
|
|
180
|
+
port: endpoint.port,
|
|
181
|
+
category: "ai",
|
|
182
|
+
});
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
const port = asPositiveInt(record.port);
|
|
186
|
+
if (!id || port === undefined) {
|
|
187
|
+
issues.push(`services[${index}] needs "id" and a numeric "port"`);
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
163
190
|
seenServiceIds.add(id);
|
|
164
191
|
services.push({
|
|
165
192
|
id,
|
|
@@ -170,6 +197,15 @@ export function validateConfig(raw) {
|
|
|
170
197
|
category: asServiceCategory(record.category),
|
|
171
198
|
});
|
|
172
199
|
}
|
|
200
|
+
const remoteMachines = asRemoteMachines(input.remoteMachines, seenServiceIds, issues);
|
|
201
|
+
const verify = asVerify(input.verify, issues);
|
|
202
|
+
const agents = asAgents(input.agents, issues);
|
|
203
|
+
const editor = asEditor(input.editor, issues);
|
|
204
|
+
const terminal = asTerminal(input.terminal, issues);
|
|
205
|
+
const worktreesRecord = asRecord(input.worktrees);
|
|
206
|
+
if (input.worktrees !== undefined && !worktreesRecord)
|
|
207
|
+
issues.push(`"worktrees" must be an object`);
|
|
208
|
+
const worktrees = worktreesRecord ? { directory: asString(worktreesRecord.directory) } : undefined;
|
|
173
209
|
const refreshInput = asRecord(input.refresh) ?? {};
|
|
174
210
|
const refresh = {
|
|
175
211
|
system: asPositiveInt(refreshInput.system) ?? DEFAULT_REFRESH.system,
|
|
@@ -191,6 +227,12 @@ export function validateConfig(raw) {
|
|
|
191
227
|
refresh,
|
|
192
228
|
maxLogLines: asPositiveInt(input.maxLogLines),
|
|
193
229
|
logLevel: logLevel && isLogLevel(logLevel) ? logLevel : undefined,
|
|
230
|
+
editor,
|
|
231
|
+
terminal,
|
|
232
|
+
agents,
|
|
233
|
+
worktrees,
|
|
234
|
+
verify,
|
|
235
|
+
remoteMachines,
|
|
194
236
|
},
|
|
195
237
|
issues,
|
|
196
238
|
};
|
|
@@ -304,10 +346,148 @@ function asReadiness(value, processId, issues) {
|
|
|
304
346
|
};
|
|
305
347
|
}
|
|
306
348
|
function asServiceCategory(value) {
|
|
307
|
-
const categories = ["container", "database", "runtime", "ai", "web"];
|
|
349
|
+
const categories = ["container", "database", "runtime", "ai", "web", "remote"];
|
|
308
350
|
const name = asString(value);
|
|
309
351
|
return name && categories.includes(name)
|
|
310
352
|
? name
|
|
311
353
|
: "web";
|
|
312
354
|
}
|
|
355
|
+
function parseHttpUrl(value) {
|
|
356
|
+
try {
|
|
357
|
+
const url = new URL(value);
|
|
358
|
+
if (url.protocol !== "http:" && url.protocol !== "https:")
|
|
359
|
+
return null;
|
|
360
|
+
const port = url.port ? Number(url.port) : url.protocol === "https:" ? 443 : 80;
|
|
361
|
+
return { baseUrl: `${url.protocol}//${url.host}`, host: url.hostname, port };
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
return null;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* A value handed to `ssh` as an argument must never be readable as an option
|
|
369
|
+
* (`-oProxyCommand=...`), so hosts and users are held to a conservative charset.
|
|
370
|
+
*/
|
|
371
|
+
const SSH_TOKEN = /^[A-Za-z0-9_][A-Za-z0-9._%+:[\]-]*$/u;
|
|
372
|
+
function asRemoteMachines(value, serviceIds, issues) {
|
|
373
|
+
const machines = [];
|
|
374
|
+
const seen = new Set();
|
|
375
|
+
for (const [index, entry] of asArray(value, "remoteMachines", issues).entries()) {
|
|
376
|
+
const record = asRecord(entry);
|
|
377
|
+
const id = asString(record?.id);
|
|
378
|
+
const host = asString(record?.host);
|
|
379
|
+
if (!record || !id || !host) {
|
|
380
|
+
issues.push(`remoteMachines[${index}] needs "id" and "host"`);
|
|
381
|
+
continue;
|
|
382
|
+
}
|
|
383
|
+
if (seen.has(id)) {
|
|
384
|
+
issues.push(`remoteMachines[${index}] duplicates id "${id}"`);
|
|
385
|
+
continue;
|
|
386
|
+
}
|
|
387
|
+
const transport = asString(record.transport) ?? "ssh";
|
|
388
|
+
if (transport !== "ssh") {
|
|
389
|
+
issues.push(`remoteMachines "${id}": transport "${transport}" is not supported (only "ssh")`);
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
if (!SSH_TOKEN.test(host)) {
|
|
393
|
+
issues.push(`remoteMachines "${id}": host "${host}" is not a valid hostname or SSH alias`);
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
const user = asString(record.user);
|
|
397
|
+
if (user !== undefined && !SSH_TOKEN.test(user)) {
|
|
398
|
+
issues.push(`remoteMachines "${id}": user "${user}" is not valid`);
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
const services = asStringArray(record.services);
|
|
402
|
+
for (const serviceId of services ?? []) {
|
|
403
|
+
if (!serviceIds.has(serviceId)) {
|
|
404
|
+
issues.push(`remoteMachines "${id}": service "${serviceId}" is not a declared service`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
seen.add(id);
|
|
408
|
+
machines.push({
|
|
409
|
+
id,
|
|
410
|
+
name: asString(record.name) ?? id,
|
|
411
|
+
host,
|
|
412
|
+
transport: "ssh",
|
|
413
|
+
port: asPositiveInt(record.port),
|
|
414
|
+
user,
|
|
415
|
+
services,
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
return machines;
|
|
419
|
+
}
|
|
420
|
+
function asVerify(value, issues) {
|
|
421
|
+
const entries = [];
|
|
422
|
+
for (const [index, entry] of asArray(value, "verify", issues).entries()) {
|
|
423
|
+
const name = asString(entry);
|
|
424
|
+
if (name) {
|
|
425
|
+
entries.push(name);
|
|
426
|
+
continue;
|
|
427
|
+
}
|
|
428
|
+
const record = asRecord(entry);
|
|
429
|
+
const id = asString(record?.id);
|
|
430
|
+
const command = asString(record?.command);
|
|
431
|
+
if (!record || !id || !command) {
|
|
432
|
+
issues.push(`verify[${index}] must be a command id, a script name, or { id, command }`);
|
|
433
|
+
continue;
|
|
434
|
+
}
|
|
435
|
+
entries.push({
|
|
436
|
+
id,
|
|
437
|
+
name: asString(record.name),
|
|
438
|
+
command,
|
|
439
|
+
args: asStringArray(record.args),
|
|
440
|
+
cwd: asString(record.cwd),
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
return entries;
|
|
444
|
+
}
|
|
445
|
+
function asAgents(value, issues) {
|
|
446
|
+
if (value === undefined)
|
|
447
|
+
return {};
|
|
448
|
+
const record = asRecord(value);
|
|
449
|
+
if (!record) {
|
|
450
|
+
issues.push(`"agents" must be an object keyed by agent id`);
|
|
451
|
+
return {};
|
|
452
|
+
}
|
|
453
|
+
const agents = {};
|
|
454
|
+
for (const [id, entry] of Object.entries(record)) {
|
|
455
|
+
const agent = asRecord(entry);
|
|
456
|
+
if (!agent) {
|
|
457
|
+
issues.push(`agents.${id} must be an object`);
|
|
458
|
+
continue;
|
|
459
|
+
}
|
|
460
|
+
agents[id] = {
|
|
461
|
+
name: asString(agent.name),
|
|
462
|
+
command: asString(agent.command),
|
|
463
|
+
args: asStringArray(agent.args),
|
|
464
|
+
enabled: agent.enabled === false ? false : undefined,
|
|
465
|
+
};
|
|
466
|
+
}
|
|
467
|
+
return agents;
|
|
468
|
+
}
|
|
469
|
+
function asEditor(value, issues) {
|
|
470
|
+
if (value === undefined)
|
|
471
|
+
return undefined;
|
|
472
|
+
const record = asRecord(value);
|
|
473
|
+
const command = asString(record?.command);
|
|
474
|
+
const application = asString(record?.application);
|
|
475
|
+
if (!record || (!command && !application)) {
|
|
476
|
+
issues.push(`"editor" needs a "command" (e.g. "zed") or an "application" (e.g. "WebStorm")`);
|
|
477
|
+
return undefined;
|
|
478
|
+
}
|
|
479
|
+
return { command, application, args: asStringArray(record.args) };
|
|
480
|
+
}
|
|
481
|
+
function asTerminal(value, issues) {
|
|
482
|
+
if (value === undefined)
|
|
483
|
+
return undefined;
|
|
484
|
+
const record = asRecord(value);
|
|
485
|
+
const command = asString(record?.command);
|
|
486
|
+
const application = asString(record?.application);
|
|
487
|
+
if (!record || (!command && !application)) {
|
|
488
|
+
issues.push(`"terminal" needs a "command" or an "application"`);
|
|
489
|
+
return undefined;
|
|
490
|
+
}
|
|
491
|
+
return { command, application, args: asStringArray(record.args), execArgs: asStringArray(record.execArgs) };
|
|
492
|
+
}
|
|
313
493
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/devcc/core/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/devcc/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { AgentSession } from "../agents/agents.js";
|
|
2
|
+
import type { EnvironmentSnapshot } from "../environment/EnvironmentService.js";
|
|
1
3
|
import type { GitSnapshot } from "../git/GitService.js";
|
|
2
4
|
import type { LogSource } from "../logs/LogBuffer.js";
|
|
3
5
|
import type { ManagedProcess } from "../processes/ManagedProcess.js";
|
|
@@ -6,7 +8,8 @@ import type { ProjectEntry } from "../projects/ProjectRegistry.js";
|
|
|
6
8
|
import type { ServiceSnapshot } from "../services/types.js";
|
|
7
9
|
import type { HostInfo, SystemMetrics, ToolVersions } from "../system/SystemMonitor.js";
|
|
8
10
|
import type { PackageManagerDetection } from "../utils/packageManager.js";
|
|
9
|
-
|
|
11
|
+
import type { VerifyStepResult } from "../verify/verify.js";
|
|
12
|
+
export declare const VIEW_IDS: readonly ["overview", "processes", "services", "scripts", "git", "worktrees", "logs", "dependencies", "system", "settings"];
|
|
10
13
|
export type ViewId = (typeof VIEW_IDS)[number];
|
|
11
14
|
export type OverlayKind = "none" | "palette" | "help" | "confirm" | "prompt" | "projects" | "inspect";
|
|
12
15
|
export type NotificationLevel = "info" | "success" | "warn" | "error";
|
|
@@ -42,6 +45,17 @@ export interface ScriptsState {
|
|
|
42
45
|
}[];
|
|
43
46
|
runs: Record<string, ScriptRun>;
|
|
44
47
|
}
|
|
48
|
+
export interface VerifyState {
|
|
49
|
+
/** Steps resolved from config; empty when verification is not configured. */
|
|
50
|
+
configured: number;
|
|
51
|
+
running: boolean;
|
|
52
|
+
/** Progress of the current or most recent run. */
|
|
53
|
+
steps: VerifyStepResult[];
|
|
54
|
+
startedAt?: Date;
|
|
55
|
+
finishedAt?: Date;
|
|
56
|
+
ok?: boolean;
|
|
57
|
+
}
|
|
58
|
+
export declare const EMPTY_VERIFY: VerifyState;
|
|
45
59
|
export interface UiState {
|
|
46
60
|
view: ViewId;
|
|
47
61
|
overlay: OverlayKind;
|
|
@@ -64,6 +78,10 @@ export interface AppState {
|
|
|
64
78
|
scripts: ScriptsState;
|
|
65
79
|
git: GitSnapshot;
|
|
66
80
|
dependencies: DependencySnapshot;
|
|
81
|
+
/** AI agent sessions started in this project, newest first. */
|
|
82
|
+
agents: AgentSession[];
|
|
83
|
+
environment: EnvironmentSnapshot;
|
|
84
|
+
verify: VerifyState;
|
|
67
85
|
system: SystemMetrics | null;
|
|
68
86
|
logSources: LogSource[];
|
|
69
87
|
notifications: Notification[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/devcc/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/devcc/core/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACvF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,QAAQ,6HAWX,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAA;AAE9C,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;AAErG,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAA;AAErE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,iBAAiB,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,uBAAuB,CAAA;IACvC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,YAAY,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;CAC3C;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC9C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,kDAAkD;IAClD,KAAK,EAAE,gBAAgB,EAAE,CAAA;IACzB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,EAAE,CAAC,EAAE,OAAO,CAAA;CACb;AAED,eAAO,MAAM,YAAY,EAAE,WAA0D,CAAA;AAErF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,WAAW,CAAA;IACpB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,SAAS,EAAE,OAAO,CAAA;IAClB,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,KAAK,EAAE,IAAI,CAAA;CACZ;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,YAAY,CAAA;IACrB,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,QAAQ,EAAE,eAAe,EAAE,CAAA;IAC3B,OAAO,EAAE,YAAY,CAAA;IACrB,GAAG,EAAE,WAAW,CAAA;IAChB,YAAY,EAAE,kBAAkB,CAAA;IAChC,+DAA+D;IAC/D,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,WAAW,EAAE,mBAAmB,CAAA;IAChC,MAAM,EAAE,WAAW,CAAA;IACnB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAA;IAC5B,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,aAAa,EAAE,YAAY,EAAE,CAAA;IAC7B,+DAA+D;IAC/D,QAAQ,EAAE,YAAY,EAAE,CAAA;CACzB;AAED,qDAAqD;AACrD,eAAO,MAAM,YAAY,KAAK,CAAA;AAC9B,wDAAwD;AACxD,eAAO,MAAM,YAAY,KAAK,CAAA;AAE9B,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE/D;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CA4BjG;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAA;AAEzD;;;;;GAKG;AACH,qBAAa,KAAK,CAAC,CAAC,SAAS,MAAM;IACjC,OAAO,CAAC,KAAK,CAAG;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAKrB;gBAEQ,YAAY,EAAE,CAAC;IAI3B,QAAQ,IAAI,CAAC;IAIb,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;IAQxC,iEAAiE;IACjE,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAa9B,KAAK,CAAC,CAAC,EACL,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EACvB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,MAAM,GAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAmB,GAC1C,MAAM,IAAI;IAab,OAAO,CAAC,MAAM;CASf;AAED,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;AAEtC,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAO9E;AAED,kDAAkD;AAClD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAWvE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAK/E"}
|
package/dist/devcc/core/state.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EMPTY_ENVIRONMENT } from "../environment/EnvironmentService.js";
|
|
1
2
|
import { EMPTY_GIT_SNAPSHOT } from "../git/GitService.js";
|
|
2
3
|
import { EMPTY_DEPENDENCY_SNAPSHOT } from "../deps/DependencyService.js";
|
|
3
4
|
export const VIEW_IDS = [
|
|
@@ -6,11 +7,13 @@ export const VIEW_IDS = [
|
|
|
6
7
|
"services",
|
|
7
8
|
"scripts",
|
|
8
9
|
"git",
|
|
10
|
+
"worktrees",
|
|
9
11
|
"logs",
|
|
10
12
|
"dependencies",
|
|
11
13
|
"system",
|
|
12
14
|
"settings",
|
|
13
15
|
];
|
|
16
|
+
export const EMPTY_VERIFY = { configured: 0, running: false, steps: [] };
|
|
14
17
|
/** Terminal narrower than this hides the sidebar. */
|
|
15
18
|
export const NARROW_WIDTH = 76;
|
|
16
19
|
/** Terminal shorter than this drops decorative rows. */
|
|
@@ -38,6 +41,9 @@ export function createInitialState(project, width, height) {
|
|
|
38
41
|
scripts: { available: [], runs: {} },
|
|
39
42
|
git: EMPTY_GIT_SNAPSHOT,
|
|
40
43
|
dependencies: EMPTY_DEPENDENCY_SNAPSHOT,
|
|
44
|
+
agents: [],
|
|
45
|
+
environment: EMPTY_ENVIRONMENT,
|
|
46
|
+
verify: EMPTY_VERIFY,
|
|
41
47
|
system: null,
|
|
42
48
|
logSources: [],
|
|
43
49
|
notifications: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/devcc/core/state.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/devcc/core/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TypedEmitter } from "../core/events.js";
|
|
2
|
+
import type { ScopedLogger } from "../utils/logger.js";
|
|
3
|
+
import { type DirenvStatus, type MiseStatus } from "./integrations.js";
|
|
4
|
+
import { type Exec, type ToolDefinition, type ToolStatus, type Which } from "./tools.js";
|
|
5
|
+
export interface EnvironmentSnapshot {
|
|
6
|
+
tools: ToolStatus[];
|
|
7
|
+
mise: MiseStatus;
|
|
8
|
+
direnv: DirenvStatus;
|
|
9
|
+
/** Null until the first detection finishes. */
|
|
10
|
+
checkedAt: Date | null;
|
|
11
|
+
checking: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const EMPTY_ENVIRONMENT: EnvironmentSnapshot;
|
|
14
|
+
export type EnvironmentServiceEvents = {
|
|
15
|
+
"environment:changed": [EnvironmentSnapshot];
|
|
16
|
+
};
|
|
17
|
+
export interface EnvironmentServiceOptions {
|
|
18
|
+
rootDir: string;
|
|
19
|
+
logger?: ScopedLogger;
|
|
20
|
+
tools?: readonly ToolDefinition[];
|
|
21
|
+
/** Injected for tests. */
|
|
22
|
+
run?: Exec;
|
|
23
|
+
which?: Which;
|
|
24
|
+
env?: NodeJS.ProcessEnv;
|
|
25
|
+
exists?: (path: string) => boolean;
|
|
26
|
+
timeoutMs?: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Machine and project environment health.
|
|
30
|
+
*
|
|
31
|
+
* Detection runs asynchronously, every external call has a timeout, and the
|
|
32
|
+
* result is cached until someone asks for a refresh: tool versions change
|
|
33
|
+
* rarely, so there is nothing to poll.
|
|
34
|
+
*/
|
|
35
|
+
export declare class EnvironmentService extends TypedEmitter<EnvironmentServiceEvents> {
|
|
36
|
+
private readonly options;
|
|
37
|
+
private snapshot;
|
|
38
|
+
private pending;
|
|
39
|
+
private readonly run;
|
|
40
|
+
private readonly which;
|
|
41
|
+
private readonly env;
|
|
42
|
+
constructor(options: EnvironmentServiceOptions);
|
|
43
|
+
getSnapshot(): EnvironmentSnapshot;
|
|
44
|
+
/** Detect everything. Concurrent calls share one run. */
|
|
45
|
+
refresh(): Promise<EnvironmentSnapshot>;
|
|
46
|
+
/** The cached snapshot, detecting first if nothing has been checked yet. */
|
|
47
|
+
ensure(): Promise<EnvironmentSnapshot>;
|
|
48
|
+
/**
|
|
49
|
+
* `direnv allow` for this project's `.envrc`. Only ever called from an
|
|
50
|
+
* explicit, confirmed user action - devcc never approves an `.envrc` itself.
|
|
51
|
+
*/
|
|
52
|
+
allowDirenv(): Promise<void>;
|
|
53
|
+
private detect;
|
|
54
|
+
private detectMise;
|
|
55
|
+
private detectDirenv;
|
|
56
|
+
private publish;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=EnvironmentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnvironmentService.d.ts","sourceRoot":"","sources":["../../../src/devcc/environment/EnvironmentService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAML,KAAK,YAAY,EACjB,KAAK,UAAU,EAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAKL,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,KAAK,EACX,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,MAAM,EAAE,YAAY,CAAA;IACpB,+CAA+C;IAC/C,SAAS,EAAE,IAAI,GAAG,IAAI,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,iBAAiB,EAAE,mBAM/B,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,qBAAqB,EAAE,CAAC,mBAAmB,CAAC,CAAA;CAC7C,CAAA;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAA;IACjC,0BAA0B;IAC1B,GAAG,CAAC,EAAE,IAAI,CAAA;IACV,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAA;IACvB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;IAClC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;GAMG;AACH,qBAAa,kBAAmB,SAAQ,YAAY,CAAC,wBAAwB,CAAC;IAOhE,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAAyC;IACzD,OAAO,CAAC,OAAO,CAA4C;IAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;gBAEV,OAAO,EAAE,yBAAyB;IAO/D,WAAW,IAAI,mBAAmB;IAIlC,yDAAyD;IACzD,OAAO,IAAI,OAAO,CAAC,mBAAmB,CAAC;IASvC,4EAA4E;IACtE,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI5C;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAoBpB,MAAM;YA2BN,UAAU;YAaV,YAAY;IA8C1B,OAAO,CAAC,OAAO;CAKhB"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { TypedEmitter } from "../core/events.js";
|
|
4
|
+
import { DevccError } from "../utils/errors.js";
|
|
5
|
+
import { exec } from "../utils/exec.js";
|
|
6
|
+
import { isDirenvLoaded, MISE_ARGS, miseErrorMessage, parseDirenvStatus, parseMiseLs, } from "./integrations.js";
|
|
7
|
+
import { DEFAULT_TOOLS, detectTool, findExecutable, firstLine, } from "./tools.js";
|
|
8
|
+
export const EMPTY_ENVIRONMENT = {
|
|
9
|
+
tools: [],
|
|
10
|
+
mise: { installed: false, runtimes: [] },
|
|
11
|
+
direnv: { installed: false, approval: "unknown", loaded: null },
|
|
12
|
+
checkedAt: null,
|
|
13
|
+
checking: false,
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Machine and project environment health.
|
|
17
|
+
*
|
|
18
|
+
* Detection runs asynchronously, every external call has a timeout, and the
|
|
19
|
+
* result is cached until someone asks for a refresh: tool versions change
|
|
20
|
+
* rarely, so there is nothing to poll.
|
|
21
|
+
*/
|
|
22
|
+
export class EnvironmentService extends TypedEmitter {
|
|
23
|
+
options;
|
|
24
|
+
snapshot = EMPTY_ENVIRONMENT;
|
|
25
|
+
pending = null;
|
|
26
|
+
run;
|
|
27
|
+
which;
|
|
28
|
+
env;
|
|
29
|
+
constructor(options) {
|
|
30
|
+
super();
|
|
31
|
+
this.options = options;
|
|
32
|
+
this.env = options.env ?? process.env;
|
|
33
|
+
this.run = options.run ?? exec;
|
|
34
|
+
this.which = options.which ?? ((command) => findExecutable(command, this.env.PATH ?? ""));
|
|
35
|
+
}
|
|
36
|
+
getSnapshot() {
|
|
37
|
+
return this.snapshot;
|
|
38
|
+
}
|
|
39
|
+
/** Detect everything. Concurrent calls share one run. */
|
|
40
|
+
refresh() {
|
|
41
|
+
if (this.pending)
|
|
42
|
+
return this.pending;
|
|
43
|
+
this.publish({ ...this.snapshot, checking: true });
|
|
44
|
+
this.pending = this.detect().finally(() => {
|
|
45
|
+
this.pending = null;
|
|
46
|
+
});
|
|
47
|
+
return this.pending;
|
|
48
|
+
}
|
|
49
|
+
/** The cached snapshot, detecting first if nothing has been checked yet. */
|
|
50
|
+
async ensure() {
|
|
51
|
+
return this.snapshot.checkedAt ? this.snapshot : this.refresh();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* `direnv allow` for this project's `.envrc`. Only ever called from an
|
|
55
|
+
* explicit, confirmed user action - devcc never approves an `.envrc` itself.
|
|
56
|
+
*/
|
|
57
|
+
async allowDirenv() {
|
|
58
|
+
const { rcPath, installed } = this.snapshot.direnv;
|
|
59
|
+
if (!installed || !rcPath) {
|
|
60
|
+
throw new DevccError({ scope: "system", message: "No .envrc for direnv to allow" });
|
|
61
|
+
}
|
|
62
|
+
const result = await this.run("direnv", ["allow", rcPath], {
|
|
63
|
+
cwd: this.options.rootDir,
|
|
64
|
+
timeoutMs: 10_000,
|
|
65
|
+
logger: this.options.logger,
|
|
66
|
+
});
|
|
67
|
+
if (!result.ok) {
|
|
68
|
+
throw new DevccError({
|
|
69
|
+
scope: "system",
|
|
70
|
+
message: "direnv allow failed",
|
|
71
|
+
detail: result.stderr.trim() || undefined,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
await this.refresh();
|
|
75
|
+
}
|
|
76
|
+
async detect() {
|
|
77
|
+
const startedAt = Date.now();
|
|
78
|
+
const definitions = this.options.tools ?? DEFAULT_TOOLS;
|
|
79
|
+
const tools = await Promise.all(definitions.map((definition) => detectTool(definition, {
|
|
80
|
+
run: (command, args, options) => this.run(command, args, { ...options, logger: this.options.logger }),
|
|
81
|
+
which: this.which,
|
|
82
|
+
timeoutMs: this.options.timeoutMs,
|
|
83
|
+
})));
|
|
84
|
+
const installed = (id) => tools.find((tool) => tool.id === id)?.installed === true;
|
|
85
|
+
const [mise, direnv] = await Promise.all([
|
|
86
|
+
this.detectMise(installed("mise")),
|
|
87
|
+
this.detectDirenv(installed("direnv")),
|
|
88
|
+
]);
|
|
89
|
+
this.options.logger?.debug("environment detected", {
|
|
90
|
+
durationMs: Date.now() - startedAt,
|
|
91
|
+
installed: tools.filter((tool) => tool.installed).map((tool) => tool.id),
|
|
92
|
+
});
|
|
93
|
+
return this.publish({ tools, mise, direnv, checkedAt: new Date(), checking: false });
|
|
94
|
+
}
|
|
95
|
+
async detectMise(installed) {
|
|
96
|
+
if (!installed)
|
|
97
|
+
return { installed: false, runtimes: [] };
|
|
98
|
+
const result = await this.run("mise", MISE_ARGS, {
|
|
99
|
+
cwd: this.options.rootDir,
|
|
100
|
+
timeoutMs: this.options.timeoutMs ?? 5_000,
|
|
101
|
+
// stdin is closed by exec, so mise cannot stop to prompt (e.g. to trust a config).
|
|
102
|
+
logger: this.options.logger,
|
|
103
|
+
});
|
|
104
|
+
if (result.timedOut)
|
|
105
|
+
return { installed: true, runtimes: [], error: "mise did not answer in time" };
|
|
106
|
+
if (!result.ok)
|
|
107
|
+
return { installed: true, runtimes: [], error: miseErrorMessage(result.stderr) };
|
|
108
|
+
return { installed: true, runtimes: parseMiseLs(result.stdout) };
|
|
109
|
+
}
|
|
110
|
+
async detectDirenv(installed) {
|
|
111
|
+
const exists = this.options.exists ?? existsSync;
|
|
112
|
+
const localRc = [".envrc", ".env"]
|
|
113
|
+
.map((name) => join(this.options.rootDir, name))
|
|
114
|
+
.find((path) => exists(path));
|
|
115
|
+
if (!installed) {
|
|
116
|
+
return {
|
|
117
|
+
installed: false,
|
|
118
|
+
rcPath: localRc,
|
|
119
|
+
approval: "unknown",
|
|
120
|
+
loaded: localRc ? false : null,
|
|
121
|
+
error: localRc?.endsWith(".envrc")
|
|
122
|
+
? "direnv is not installed; .envrc is not being loaded"
|
|
123
|
+
: undefined,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
const options = {
|
|
127
|
+
cwd: this.options.rootDir,
|
|
128
|
+
timeoutMs: this.options.timeoutMs ?? 5_000,
|
|
129
|
+
logger: this.options.logger,
|
|
130
|
+
};
|
|
131
|
+
let result = await this.run("direnv", ["status", "--json"], options);
|
|
132
|
+
if (!result.ok && !result.timedOut)
|
|
133
|
+
result = await this.run("direnv", ["status"], options);
|
|
134
|
+
if (!result.ok) {
|
|
135
|
+
return {
|
|
136
|
+
installed: true,
|
|
137
|
+
rcPath: localRc,
|
|
138
|
+
approval: "unknown",
|
|
139
|
+
loaded: null,
|
|
140
|
+
error: result.timedOut
|
|
141
|
+
? "direnv did not answer in time"
|
|
142
|
+
: (firstLine(result.stderr) ?? "direnv status failed"),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
const parsed = parseDirenvStatus(result.stdout);
|
|
146
|
+
return {
|
|
147
|
+
installed: true,
|
|
148
|
+
rcPath: parsed.rcPath,
|
|
149
|
+
approval: parsed.rcPath ? parsed.approval : "unknown",
|
|
150
|
+
loaded: parsed.rcPath ? isDirenvLoaded(parsed.rcPath, this.env) : null,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
publish(snapshot) {
|
|
154
|
+
this.snapshot = snapshot;
|
|
155
|
+
this.emit("environment:changed", snapshot);
|
|
156
|
+
return snapshot;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=EnvironmentService.js.map
|