theforge-cli 0.2.4 → 0.2.5

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/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
3
3
  Todas as mudanças notáveis deste projeto são documentadas aqui, no
4
4
  formato [Keep a Changelog](https://keepachangelog.com/pt-BR/1.1.0/).
5
5
 
6
+ ## [0.2.5] - 2026-10-21
7
+
8
+ ### Changed
9
+
10
+ - Cycle 13 (graph): Loop Factory lf-0020→lf-0025 — Graph Studio P0 physics fix, scalable visualization modes (overview/explore/full), navigation and inspectors, Forge Portal Graph Explorer with CLI/portal `ForgeGraphView/v1` parity, federation merge/projection, performance baseline, security/a11y/reliability hardening, packaging verification and final homologation report (`docs/graph/final-report.md`).
11
+
6
12
  ## [0.2.4] - 2026-10-20
7
13
 
8
14
  ### Changed
package/dist/index.js CHANGED
@@ -15272,6 +15272,8 @@ async function checkEnvironment() {
15272
15272
  return env;
15273
15273
  }
15274
15274
  function emitJson(data, exitCode = 0) {
15275
+ const handle = process.stdout._handle;
15276
+ handle?.setBlocking?.(true);
15275
15277
  process.stdout.write(`${JSON.stringify(data, null, 2)}
15276
15278
  `);
15277
15279
  process.exit(exitCode);
@@ -25416,7 +25418,32 @@ function targetFindings(targets) {
25416
25418
  async function discoverEnvironment(deps = {}) {
25417
25419
  const platform2 = deps.platform ?? process.platform;
25418
25420
  const home = deps.home ?? cliHome();
25419
- const shells = await discoverShells(deps);
25421
+ const [shells, gitProbe, pyDiscovery] = await Promise.all([
25422
+ discoverShells(deps),
25423
+ deps.gitProbe ? deps.gitProbe() : commandOutput("git", ["--version"]).then((output) => ({ output, timedOut: false })),
25424
+ // Pipeline lf-0017 completo — `run`/`exists`/`env`/`platform` são os
25425
+ // MESMOS da sonda de shells: um fake único controla a descoberta toda.
25426
+ // `pythonProbe` legado (testes pré-lf-0017) vira descoberta sintética.
25427
+ deps.pythonDiscovery ? deps.pythonDiscovery({
25428
+ platform: platform2,
25429
+ env: deps.env,
25430
+ run: deps.run,
25431
+ exists: deps.exists,
25432
+ osHome: deps.osHome,
25433
+ cwd: deps.cwd,
25434
+ targetDir: deps.workspace,
25435
+ explicit: deps.pythonExplicit
25436
+ }) : deps.pythonProbe ? legacyPythonDiscovery(platform2, deps.pythonProbe) : discoverPythons({
25437
+ platform: platform2,
25438
+ env: deps.env,
25439
+ run: deps.run,
25440
+ exists: deps.exists,
25441
+ osHome: deps.osHome,
25442
+ cwd: deps.cwd,
25443
+ targetDir: deps.workspace,
25444
+ explicit: deps.pythonExplicit
25445
+ })
25446
+ ]);
25420
25447
  const route = routeOf(platform2, shells);
25421
25448
  const targets = resolveWriteTargets({
25422
25449
  env: deps.env,
@@ -25432,31 +25459,11 @@ async function discoverEnvironment(deps = {}) {
25432
25459
  workspaceDir: deps.workspace ?? deps.explicit?.workspaceDir
25433
25460
  }
25434
25461
  });
25435
- const gitProbe = deps.gitProbe ? await deps.gitProbe() : { output: await commandOutput("git", ["--version"]), timedOut: false };
25436
25462
  const git = {
25437
25463
  present: gitProbe !== null && !gitProbe.timedOut && gitProbe.output !== null,
25438
25464
  version: gitProbe?.output ?? null,
25439
25465
  executable: gitProbe?.output ? "git" : null
25440
25466
  };
25441
- const pyDiscovery = deps.pythonDiscovery ? await deps.pythonDiscovery({
25442
- platform: platform2,
25443
- env: deps.env,
25444
- run: deps.run,
25445
- exists: deps.exists,
25446
- osHome: deps.osHome,
25447
- cwd: deps.cwd,
25448
- targetDir: deps.workspace,
25449
- explicit: deps.pythonExplicit
25450
- }) : deps.pythonProbe ? await legacyPythonDiscovery(platform2, deps.pythonProbe) : await discoverPythons({
25451
- platform: platform2,
25452
- env: deps.env,
25453
- run: deps.run,
25454
- exists: deps.exists,
25455
- osHome: deps.osHome,
25456
- cwd: deps.cwd,
25457
- targetDir: deps.workspace,
25458
- explicit: deps.pythonExplicit
25459
- });
25460
25467
  const pySelected = pyDiscovery.selected;
25461
25468
  const pyInfo = pySelected ? {
25462
25469
  exe: pySelected.argv[0],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "theforge-cli",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "CLI interativa para clonar e configurar o ecossistema Forge",
5
5
  "type": "module",
6
6
  "bin": {
@@ -69,5 +69,5 @@
69
69
  "provenance": true
70
70
  },
71
71
  "license": "MIT",
72
- "author": "Edgar Sócrates Caria"
72
+ "author": "Edgar S\u00f3crates Caria"
73
73
  }