@cleocode/cant 2026.9.23 → 2026.9.25

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
@@ -17,10 +17,9 @@ typed frontmatter.
17
17
  pnpm add @cleocode/cant
18
18
  ```
19
19
 
20
- The package ships pre-built napi binaries via `optionalDependencies` for
21
- `x86_64-unknown-linux-gnu`. On other platforms `@cleocode/cant` falls back to
22
- typed errors at runtime — the TypeScript surface still loads but
23
- parser/validator/executor calls require a native binding present.
20
+ The package bundles pre-built napi binaries for every supported platform, with
21
+ a WebAssembly (WASI) fallback for the rest — see
22
+ [Native binaries and the WebAssembly fallback](#native-binaries-and-the-webassembly-fallback).
24
23
 
25
24
  **`cant-core` is the single source of truth (SSoT) for all CANT parsing.**
26
25
  There is no JS-regex fallback parser in the routine code path. If the native
@@ -146,6 +145,12 @@ The published package bundles the cant-napi addon for every supported
146
145
  platform in `napi/` (T12382): native binaries for linux x64/arm64 (glibc and
147
146
  musl), darwin x64/arm64 and win32 x64/arm64, plus
148
147
  `cant.wasm32-wasi.wasm`, the same crate built for `wasm32-wasip1-threads`.
148
+
149
+ **glibc floor on ARM64 Linux:** `linux-arm64-gnu` is built on GitHub's native
150
+ `ubuntu-24.04-arm` runner, so it requires glibc ≥ 2.39 (Ubuntu 24.04+ /
151
+ Debian 13+). Older ARM64 Linux loads the WebAssembly build instead (the
152
+ fallback below), and the native worktree helper in `@cleocode/worktree` is
153
+ unavailable there. musl (Alpine) ARM64 is unaffected.
149
154
  The napi-rs generated loader (`napi/index.cjs`) uses the native binary for
150
155
  the host and falls back to the WebAssembly build automatically when none
151
156
  matches. `NAPI_RS_FORCE_WASI=error` forces the WebAssembly build (tests use
@@ -151,7 +151,8 @@ export declare function isNativeAvailable(): boolean;
151
151
  export declare function cantAddonBackend(): CantAddonBackend | null;
152
152
  /**
153
153
  * Return the source-revision stamp compiled into the loaded addon, e.g.
154
- * `"cant-napi-source-rev:<git sha>"` (`"…:unversioned"` for local builds).
154
+ * `"cant-napi-source-rev:<native source hash>"` (`"…:unversioned"` for local builds;
155
+ * the hash is `node scripts/native-source-hash.mjs cant`).
155
156
  *
156
157
  * @returns The stamp, or `null` when the addon could not be loaded.
157
158
  */
@@ -98,7 +98,8 @@ function cantAddonBackend() {
98
98
  }
99
99
  /**
100
100
  * Return the source-revision stamp compiled into the loaded addon, e.g.
101
- * `"cant-napi-source-rev:<git sha>"` (`"…:unversioned"` for local builds).
101
+ * `"cant-napi-source-rev:<native source hash>"` (`"…:unversioned"` for local builds;
102
+ * the hash is `node scripts/native-source-hash.mjs cant`).
102
103
  *
103
104
  * @returns The stamp, or `null` when the addon could not be loaded.
104
105
  */
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/cant",
3
- "version": "2026.9.23",
3
+ "version": "2026.9.25",
4
4
  "description": "CANT DSL — cant-core (SSoT) parser, validator, and pipeline executor via napi-rs; agent identity, message parsing, and migration utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,9 +16,9 @@
16
16
  "@emnapi/core": "1.11.3",
17
17
  "@emnapi/runtime": "1.11.3",
18
18
  "@napi-rs/wasm-runtime": "1.2.4",
19
- "@cleocode/contracts": "2026.9.23",
20
- "@cleocode/core": "2026.9.23",
21
- "@cleocode/lafs": "2026.9.23"
19
+ "@cleocode/contracts": "2026.9.25",
20
+ "@cleocode/core": "2026.9.25",
21
+ "@cleocode/lafs": "2026.9.25"
22
22
  },
23
23
  "devDependencies": {
24
24
  "typescript": "^6.0.2",