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 +6 -0
- package/dist/index.js +28 -21
- package/package.json +2 -2
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
|
|
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.
|
|
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
|
|
72
|
+
"author": "Edgar S\u00f3crates Caria"
|
|
73
73
|
}
|