@nm-lang/cli 0.6.0 → 0.7.1

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 CHANGED
@@ -3,7 +3,31 @@
3
3
  N/M 0.2.0 Preview command-line tools for running, formatting, linting, testing,
4
4
  exporting and managing local N/M workspaces.
5
5
 
6
- Package **0.6.0** targets the N/M **0.2.0** language contract.
6
+ CLI package **0.7.1** retains Core **0.7.0** and the N/M **0.2.0** language contract.
7
+
8
+ ## 0.7.1 Python build security / Python üretim güvenliği
9
+
10
+ This CLI patch ships the Python source build-backend correction to setuptools
11
+ 84.1.0. The repository's isolated wheel tooling uses wheel 0.46.2. Python 3.10+,
12
+ runtime dependencies, permissions, scientific limits and licenses are unchanged.
13
+ `nm --version --json` reports `cliPackageVersion` separately; `packageVersion`
14
+ and `corePackageVersion` retain the Core runtime identity. `nm doctor` accepts
15
+ a same-train CLI patch while still rejecting Core/language/protocol drift.
16
+
17
+ Bu CLI yaması Python kaynak build backend'ini setuptools 84.1.0'a günceller;
18
+ deponun izole wheel araçları wheel 0.46.2 kullanır. Python 3.10+, çalışma zamanı
19
+ bağımlılıkları, izinler, bilimsel sınırlar ve lisanslar korunur. JSON sürüm
20
+ çıktısında `cliPackageVersion` CLI'yi; `packageVersion` ve `corePackageVersion`
21
+ Core'u gösterir. Doctor, aynı seride CLI yamasını kabul eder; Core/dil/protokol
22
+ uyuşmazlıklarını reddetmeye devam eder.
23
+
24
+ ## 0.7.0 training numerics / Eğitim sayısal işlemleri
25
+
26
+ Core 0.7.0 adds first-order Hermitian exponential H/time derivatives, finite/analytic block QNG, shared-evaluation gradient covariance, deterministic stateful GD/momentum/Adam/QNG checkpoints and past-covariance shot allocation. Language 0.2.0, explicit permissions and scientific limits remain. Analytic QNG is initially flat/noiseless; sampled checkpoint continuation is rejected. Covariance allocation is a heuristic within the existing total budget.
27
+
28
+ Türkçe: Matris üstel türevi, blok/analitik QNG, gradyan kovaryansı, deterministik durumlu devam ve önceki kovaryansla ölçüm dağılımı eklendi. İzinler ve sınırlar korunur; kayıt izin vermez, sonlu ölçümle devam desteklenmez ve daha düşük hata garantisi yoktur. Normal editör Run ayrı kalır.
29
+
30
+ See [Quantum AI](https://quantumsoftware.tech/en/quantum-ai) and the [public documentation](https://quantumsoftware.tech/en/docs/nm-language). Registry availability is separate from this package version.
7
31
 
8
32
  ## Install / Kurulum
9
33
 
@@ -21,12 +45,12 @@ npx --package=@nm-lang/cli nm --version
21
45
  ```
22
46
 
23
47
  An untagged install selects npm's `latest` channel. To pin this version,
24
- append `@0.6.0` to the package name. The N/M language remains
48
+ append `@0.7.1` to the package name. The N/M language remains
25
49
  Preview independently of the npm channel. npm installs the matching Core dependency.
26
50
  No repository checkout or TypeScript build is needed to use a published package.
27
51
 
28
52
  Türkçe: Etiketsiz kurulum npm'in `latest` kanalını seçer.
29
- `@0.6.0` ile sürümü sabitleyebilirsiniz. N/M dili, npm kanalından bağımsız
53
+ `@0.7.1` ile sürümü sabitleyebilirsiniz. N/M dili, npm kanalından bağımsız
30
54
  olarak Önizleme durumundadır. Core bağımlılığı otomatik kurulur; depoyu
31
55
  indirmeniz gerekmez.
32
56
 
package/bin/nm.mjs CHANGED
@@ -32,7 +32,7 @@ if (cliArgs[0] === "bridge") {
32
32
  const { nmVersionManifest } = await import("../dist/version.js");
33
33
  process.stdout.write(
34
34
  cliArgs.includes("--json")
35
- ? `${JSON.stringify(nmVersionManifest, null, 2)}\n`
35
+ ? `${JSON.stringify(cliVersionReport(nmVersionManifest), null, 2)}\n`
36
36
  : `N/M ${nmVersionManifest.languageVersion} (${nmVersionManifest.stability})\n`,
37
37
  );
38
38
  } else {
@@ -130,12 +130,25 @@ if (cliArgs[0] === "bridge") {
130
130
  });
131
131
  } else {
132
132
  const result = runNMCLI(cliArgs, runOptions);
133
+ if ((cliArgs[0] === "--version" || cliArgs[0] === "version") && cliArgs.includes("--json") && result.exitCode === 0) {
134
+ result.stdout = [JSON.stringify(cliVersionReport(JSON.parse(result.stdout.join("\n"))), null, 2)];
135
+ }
133
136
  if (result.stdout.length > 0) process.stdout.write(`${result.stdout.join("\n")}\n`);
134
137
  if (result.stderr.length > 0) process.stderr.write(`${result.stderr.join("\n")}\n`);
135
138
  process.exitCode = result.exitCode;
136
139
  }
137
140
  }
138
141
 
142
+ // Core's packageVersion keeps its existing meaning. Read this executable's own
143
+ // distribution metadata, never a package.json supplied by the working directory.
144
+ function cliVersionReport(manifest) {
145
+ const cli = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8"));
146
+ if (cli.name !== "@nm-lang/cli" || typeof cli.version !== "string" || !/^\d+\.\d+\.\d+(?:-[\da-zA-Z.-]+)?$/.test(cli.version)) {
147
+ throw new Error("Invalid N/M CLI distribution metadata.");
148
+ }
149
+ return { ...manifest, cliPackageVersion: cli.version, corePackageVersion: manifest.packageVersion };
150
+ }
151
+
139
152
  function getWorkspaceIndex(entryPath) {
140
153
  const cacheKey = path.resolve(entryPath);
141
154
  const cached = workspaceCache.get(cacheKey);