@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.
Files changed (136) hide show
  1. package/README.md +556 -386
  2. package/bin/devcc.mjs +50 -23
  3. package/dist/devcc/agents/agents.d.ts +112 -0
  4. package/dist/devcc/agents/agents.d.ts.map +1 -0
  5. package/dist/devcc/agents/agents.js +179 -0
  6. package/dist/devcc/agents/agents.js.map +1 -0
  7. package/dist/devcc/app/App.d.ts +15 -0
  8. package/dist/devcc/app/App.d.ts.map +1 -1
  9. package/dist/devcc/app/App.js +326 -17
  10. package/dist/devcc/app/App.js.map +1 -1
  11. package/dist/devcc/app/controlPlaneCommands.d.ts +14 -0
  12. package/dist/devcc/app/controlPlaneCommands.d.ts.map +1 -0
  13. package/dist/devcc/app/controlPlaneCommands.js +179 -0
  14. package/dist/devcc/app/controlPlaneCommands.js.map +1 -0
  15. package/dist/devcc/app/keymap.d.ts.map +1 -1
  16. package/dist/devcc/app/keymap.js +24 -3
  17. package/dist/devcc/app/keymap.js.map +1 -1
  18. package/dist/devcc/automation.d.ts +31 -0
  19. package/dist/devcc/automation.d.ts.map +1 -0
  20. package/dist/devcc/automation.js +202 -0
  21. package/dist/devcc/automation.js.map +1 -0
  22. package/dist/devcc/cli.d.ts.map +1 -1
  23. package/dist/devcc/cli.js +46 -3
  24. package/dist/devcc/cli.js.map +1 -1
  25. package/dist/devcc/components/Sidebar.d.ts.map +1 -1
  26. package/dist/devcc/components/Sidebar.js +1 -0
  27. package/dist/devcc/components/Sidebar.js.map +1 -1
  28. package/dist/devcc/components/primitives.d.ts.map +1 -1
  29. package/dist/devcc/components/primitives.js +3 -0
  30. package/dist/devcc/components/primitives.js.map +1 -1
  31. package/dist/devcc/core/commands.d.ts +25 -0
  32. package/dist/devcc/core/commands.d.ts.map +1 -1
  33. package/dist/devcc/core/commands.js.map +1 -1
  34. package/dist/devcc/core/config.d.ts +69 -3
  35. package/dist/devcc/core/config.d.ts.map +1 -1
  36. package/dist/devcc/core/config.js +185 -5
  37. package/dist/devcc/core/config.js.map +1 -1
  38. package/dist/devcc/core/state.d.ts +19 -1
  39. package/dist/devcc/core/state.d.ts.map +1 -1
  40. package/dist/devcc/core/state.js +6 -0
  41. package/dist/devcc/core/state.js.map +1 -1
  42. package/dist/devcc/environment/EnvironmentService.d.ts +58 -0
  43. package/dist/devcc/environment/EnvironmentService.d.ts.map +1 -0
  44. package/dist/devcc/environment/EnvironmentService.js +159 -0
  45. package/dist/devcc/environment/EnvironmentService.js.map +1 -0
  46. package/dist/devcc/environment/integrations.d.ts +52 -0
  47. package/dist/devcc/environment/integrations.d.ts.map +1 -0
  48. package/dist/devcc/environment/integrations.js +94 -0
  49. package/dist/devcc/environment/integrations.js.map +1 -0
  50. package/dist/devcc/environment/tools.d.ts +51 -0
  51. package/dist/devcc/environment/tools.d.ts.map +1 -0
  52. package/dist/devcc/environment/tools.js +99 -0
  53. package/dist/devcc/environment/tools.js.map +1 -0
  54. package/dist/devcc/git/GitService.d.ts +26 -0
  55. package/dist/devcc/git/GitService.d.ts.map +1 -1
  56. package/dist/devcc/git/GitService.js +71 -2
  57. package/dist/devcc/git/GitService.js.map +1 -1
  58. package/dist/devcc/git/worktrees.d.ts +88 -0
  59. package/dist/devcc/git/worktrees.d.ts.map +1 -0
  60. package/dist/devcc/git/worktrees.js +226 -0
  61. package/dist/devcc/git/worktrees.js.map +1 -0
  62. package/dist/devcc/index.d.ts +13 -3
  63. package/dist/devcc/index.d.ts.map +1 -1
  64. package/dist/devcc/index.js +11 -1
  65. package/dist/devcc/index.js.map +1 -1
  66. package/dist/devcc/platform/launch.d.ts +30 -0
  67. package/dist/devcc/platform/launch.d.ts.map +1 -0
  68. package/dist/devcc/platform/launch.js +93 -0
  69. package/dist/devcc/platform/launch.js.map +1 -0
  70. package/dist/devcc/services/ServiceManager.d.ts +10 -2
  71. package/dist/devcc/services/ServiceManager.d.ts.map +1 -1
  72. package/dist/devcc/services/ServiceManager.js +18 -4
  73. package/dist/devcc/services/ServiceManager.js.map +1 -1
  74. package/dist/devcc/services/ollama.d.ts +64 -5
  75. package/dist/devcc/services/ollama.d.ts.map +1 -1
  76. package/dist/devcc/services/ollama.js +118 -17
  77. package/dist/devcc/services/ollama.js.map +1 -1
  78. package/dist/devcc/services/remote.d.ts +90 -0
  79. package/dist/devcc/services/remote.d.ts.map +1 -0
  80. package/dist/devcc/services/remote.js +233 -0
  81. package/dist/devcc/services/remote.js.map +1 -0
  82. package/dist/devcc/services/types.d.ts +8 -1
  83. package/dist/devcc/services/types.d.ts.map +1 -1
  84. package/dist/devcc/services/types.js.map +1 -1
  85. package/dist/devcc/utils/exec.d.ts +6 -0
  86. package/dist/devcc/utils/exec.d.ts.map +1 -1
  87. package/dist/devcc/utils/exec.js +12 -2
  88. package/dist/devcc/utils/exec.js.map +1 -1
  89. package/dist/devcc/verify/verify.d.ts +107 -0
  90. package/dist/devcc/verify/verify.d.ts.map +1 -0
  91. package/dist/devcc/verify/verify.js +203 -0
  92. package/dist/devcc/verify/verify.js.map +1 -0
  93. package/dist/devcc/views/OverviewView.d.ts.map +1 -1
  94. package/dist/devcc/views/OverviewView.js +55 -1
  95. package/dist/devcc/views/OverviewView.js.map +1 -1
  96. package/dist/devcc/views/ServicesView.d.ts +2 -0
  97. package/dist/devcc/views/ServicesView.d.ts.map +1 -1
  98. package/dist/devcc/views/ServicesView.js +15 -0
  99. package/dist/devcc/views/ServicesView.js.map +1 -1
  100. package/dist/devcc/views/SystemView.d.ts +10 -1
  101. package/dist/devcc/views/SystemView.d.ts.map +1 -1
  102. package/dist/devcc/views/SystemView.js +127 -19
  103. package/dist/devcc/views/SystemView.js.map +1 -1
  104. package/dist/devcc/views/WorktreesView.d.ts +48 -0
  105. package/dist/devcc/views/WorktreesView.d.ts.map +1 -0
  106. package/dist/devcc/views/WorktreesView.js +235 -0
  107. package/dist/devcc/views/WorktreesView.js.map +1 -0
  108. package/package.json +1 -1
  109. package/src/devcc/agents/agents.ts +282 -0
  110. package/src/devcc/app/App.ts +376 -20
  111. package/src/devcc/app/controlPlaneCommands.ts +197 -0
  112. package/src/devcc/app/keymap.ts +24 -3
  113. package/src/devcc/automation.ts +242 -0
  114. package/src/devcc/cli.ts +45 -3
  115. package/src/devcc/components/Sidebar.ts +1 -0
  116. package/src/devcc/components/primitives.ts +3 -0
  117. package/src/devcc/core/commands.ts +26 -0
  118. package/src/devcc/core/config.ts +271 -11
  119. package/src/devcc/core/state.ts +25 -0
  120. package/src/devcc/environment/EnvironmentService.ts +215 -0
  121. package/src/devcc/environment/integrations.ts +133 -0
  122. package/src/devcc/environment/tools.ts +151 -0
  123. package/src/devcc/git/GitService.ts +104 -2
  124. package/src/devcc/git/worktrees.ts +256 -0
  125. package/src/devcc/index.ts +57 -2
  126. package/src/devcc/platform/launch.ts +125 -0
  127. package/src/devcc/services/ServiceManager.ts +15 -3
  128. package/src/devcc/services/ollama.ts +162 -19
  129. package/src/devcc/services/remote.ts +306 -0
  130. package/src/devcc/services/types.ts +9 -1
  131. package/src/devcc/utils/exec.ts +26 -2
  132. package/src/devcc/verify/verify.ts +316 -0
  133. package/src/devcc/views/OverviewView.ts +76 -1
  134. package/src/devcc/views/ServicesView.ts +17 -0
  135. package/src/devcc/views/SystemView.ts +144 -22
  136. 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":"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"}
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 port = asPositiveInt(record.port);
155
- if (!id || port === undefined) {
156
- issues.push(`services[${index}] needs "id" and a numeric "port"`);
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
- export declare const VIEW_IDS: readonly ["overview", "processes", "services", "scripts", "git", "logs", "dependencies", "system", "settings"];
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":"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"}
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"}
@@ -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":"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"}
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