@xenosystem/agent-cli 0.5.19 → 0.5.21
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/LICENSE +15 -15
- package/README.md +88 -88
- package/dist/index.js +1892 -1722
- package/dist/metafile-esm.json +1 -1
- package/native/xeno-pty/prebuilds/linux-x64/manifest.json +1 -1
- package/native/xeno-pty/prebuilds/win32-arm64/manifest.json +4 -4
- package/native/xeno-pty/prebuilds/win32-arm64/xeno_pty.node +0 -0
- package/native/xeno-pty/prebuilds/win32-x64/manifest.json +3 -3
- package/native/xeno-pty/prebuilds/win32-x64/xeno_pty.node +0 -0
- package/ownership/audit.mjs +34 -3
- package/package.json +9 -4
- package/scripts/install.ps1 +18 -18
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"abi": "napi-v8",
|
|
9
9
|
"napi": 8,
|
|
10
10
|
"minimumNode": "20.0.0",
|
|
11
|
-
"nodeHeaders": "24.
|
|
11
|
+
"nodeHeaders": "24.14.1",
|
|
12
12
|
"compiler": "c++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0",
|
|
13
13
|
"sourceSha256": "6ba69e62cf0c0765546afa19f1820c1cc7f64f452802718c20b4a117d6c8f9c6",
|
|
14
14
|
"sha256": "31140996faed13b946c0c30a2573e8675110c44f997f39d4f99f8a87dff0723a",
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"abi": "napi-v8",
|
|
9
9
|
"napi": 8,
|
|
10
10
|
"minimumNode": "20.0.0",
|
|
11
|
-
"nodeHeaders": "24.
|
|
12
|
-
"compiler": "Microsoft (R) C/C++ Optimizing Compiler Version 19.44.
|
|
13
|
-
"sourceSha256": "
|
|
14
|
-
"sha256": "
|
|
11
|
+
"nodeHeaders": "24.13.1",
|
|
12
|
+
"compiler": "Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35222 for ARM64",
|
|
13
|
+
"sourceSha256": "4b12adfcdadac88141aafac5a6c2dd040b44fcc4b0c9b868c2b5b8c989f081f3",
|
|
14
|
+
"sha256": "74dcec518d368cf9ba6dd3de92d8bcc32e14d2142255587c2e3bec5b0cb53492",
|
|
15
15
|
"signature": {
|
|
16
16
|
"status": "unsigned-development"
|
|
17
17
|
}
|
|
Binary file
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
"abi": "napi-v8",
|
|
9
9
|
"napi": 8,
|
|
10
10
|
"minimumNode": "20.0.0",
|
|
11
|
-
"nodeHeaders": "24.
|
|
11
|
+
"nodeHeaders": "24.13.1",
|
|
12
12
|
"compiler": "Microsoft (R) C/C++ Optimizing Compiler Version 19.44.35222 for x64",
|
|
13
|
-
"sourceSha256": "
|
|
14
|
-
"sha256": "
|
|
13
|
+
"sourceSha256": "4b12adfcdadac88141aafac5a6c2dd040b44fcc4b0c9b868c2b5b8c989f081f3",
|
|
14
|
+
"sha256": "e01bb2a4e2a91d3d68914aeadb2c2897fa962756ed177e215e574b7f9ed43fe9",
|
|
15
15
|
"signature": {
|
|
16
16
|
"status": "unsigned-development"
|
|
17
17
|
}
|
|
Binary file
|
package/ownership/audit.mjs
CHANGED
|
@@ -7,11 +7,12 @@ import {
|
|
|
7
7
|
mkdirSync,
|
|
8
8
|
readFileSync,
|
|
9
9
|
readdirSync,
|
|
10
|
+
realpathSync,
|
|
10
11
|
writeFileSync,
|
|
11
12
|
} from "node:fs";
|
|
12
13
|
import { builtinModules } from "node:module";
|
|
13
14
|
import { dirname, extname, isAbsolute, join, relative, resolve } from "node:path";
|
|
14
|
-
import { fileURLToPath
|
|
15
|
+
import { fileURLToPath } from "node:url";
|
|
15
16
|
|
|
16
17
|
const CLASSIFICATIONS = new Set([
|
|
17
18
|
"xeno-owned",
|
|
@@ -718,8 +719,38 @@ async function main() {
|
|
|
718
719
|
if (report.violations.length > 0) process.exitCode = 1;
|
|
719
720
|
}
|
|
720
721
|
|
|
721
|
-
|
|
722
|
-
|
|
722
|
+
/**
|
|
723
|
+
* 🔴 Compare REAL paths. `resolve` normalises; it does not follow symlinks.
|
|
724
|
+
*
|
|
725
|
+
* This file SHIPS: `files` in package.json lists `ownership`, in BOTH packages that carry it. So
|
|
726
|
+
* the lexical form is the idiom that made `@xenosystem/agent-cli` 0.5.17 exit 0 for every command
|
|
727
|
+
* on Linux and macOS — and stayed shipped for a full release — sitting in code that reaches users.
|
|
728
|
+
*
|
|
729
|
+
* It is not broken today because nothing symlinks this path, which is precisely the state the
|
|
730
|
+
* 0.5.17 entry was in until npm made its bin a symlink.
|
|
731
|
+
*
|
|
732
|
+
* ⚠️ Resolution can throw — the invoked path may be gone, and some mounts refuse it — so failure
|
|
733
|
+
* falls back to the LEXICAL comparison, never to `false`. Returning false on error would
|
|
734
|
+
* reintroduce the silent no-op through a different door.
|
|
735
|
+
*
|
|
736
|
+
* Reference: `xeno-agent-cli/apps/xeno-agent-cli/src/cli/direct-invocation.ts`, the tested version.
|
|
737
|
+
*
|
|
738
|
+
* ⚠️ This comment is deliberately generic. The first fix wrote a repo-specific note into each
|
|
739
|
+
* copy and broke the byte-identical rule stated at the top of this file within minutes of applying
|
|
740
|
+
* it — which is the drift that rule exists to prevent.
|
|
741
|
+
*/
|
|
742
|
+
function isDirectInvocation() {
|
|
743
|
+
const invoked = process.argv[1];
|
|
744
|
+
if (!invoked) return false;
|
|
745
|
+
const modulePath = fileURLToPath(import.meta.url);
|
|
746
|
+
try {
|
|
747
|
+
return realpathSync(resolve(invoked)) === realpathSync(modulePath);
|
|
748
|
+
} catch {
|
|
749
|
+
return resolve(invoked) === resolve(modulePath);
|
|
750
|
+
}
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
if (isDirectInvocation()) {
|
|
723
754
|
main().catch((error) => {
|
|
724
755
|
console.error(error instanceof Error ? error.message : String(error));
|
|
725
756
|
process.exitCode = 1;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xenosystem/agent-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.21",
|
|
4
4
|
"description": "XENO AGENT - AI-powered terminal agent CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -37,7 +37,10 @@
|
|
|
37
37
|
"dev": "tsx src/index.ts",
|
|
38
38
|
"build": "tsup --config tsup.config.ts",
|
|
39
39
|
"build:pty": "node native/xeno-pty/scripts/build.mjs",
|
|
40
|
-
"test:pty:native": "node native/xeno-pty/scripts/smoke-native.mjs && node native/xeno-pty/scripts/fuzz-native.mjs --iterations 100",
|
|
40
|
+
"test:pty:native": "node native/xeno-pty/scripts/smoke-native.mjs && node native/xeno-pty/scripts/ctrlc-native.mjs && node native/xeno-pty/scripts/graceful-native.mjs && node native/xeno-pty/scripts/fuzz-native.mjs --iterations 100 && node native/xeno-pty/scripts/verify-prebuild-provenance.mjs",
|
|
41
|
+
"test:pty:ctrlc": "node native/xeno-pty/scripts/ctrlc-native.mjs",
|
|
42
|
+
"test:pty:graceful": "node native/xeno-pty/scripts/graceful-native.mjs",
|
|
43
|
+
"test:pty:provenance": "node native/xeno-pty/scripts/verify-prebuild-provenance.mjs",
|
|
41
44
|
"bench:pty:native": "node native/xeno-pty/scripts/benchmark-native.mjs",
|
|
42
45
|
"start": "node dist/index.js",
|
|
43
46
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
@@ -68,8 +71,10 @@
|
|
|
68
71
|
],
|
|
69
72
|
"license": "UNLICENSED",
|
|
70
73
|
"dependencies": {
|
|
71
|
-
"@xenosystem/agent-
|
|
72
|
-
"
|
|
74
|
+
"@xenosystem/agent-interface-client": "0.1.4",
|
|
75
|
+
"@xenosystem/agent-interface-contract": "0.1.4",
|
|
76
|
+
"@xenosystem/agent-sdk": "0.9.10",
|
|
77
|
+
"undici": "6.28.0"
|
|
73
78
|
},
|
|
74
79
|
"engines": {
|
|
75
80
|
"node": ">=20.0.0"
|
package/scripts/install.ps1
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
$ErrorActionPreference = "Stop"
|
|
2
|
-
|
|
3
|
-
$Package = if ($env:XENO_PACKAGE) { $env:XENO_PACKAGE } else { "@xenosystem/agent-cli" }
|
|
4
|
-
$Channel = if ($env:XENO_RELEASE_CHANNEL) { $env:XENO_RELEASE_CHANNEL } else { "latest" }
|
|
5
|
-
|
|
6
|
-
if (-not (Get-Command npm -ErrorAction SilentlyContinue)) {
|
|
7
|
-
throw "npm is required. Install Node.js first: https://nodejs.org/"
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
$Integrity = npm view "$Package@$Channel" dist.integrity 2>$null
|
|
11
|
-
if ($Integrity) {
|
|
12
|
-
Write-Host "Resolved npm integrity: $Integrity"
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
npm install -g "$Package@$Channel"
|
|
16
|
-
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
17
|
-
|
|
18
|
-
xeno --version
|
|
1
|
+
$ErrorActionPreference = "Stop"
|
|
2
|
+
|
|
3
|
+
$Package = if ($env:XENO_PACKAGE) { $env:XENO_PACKAGE } else { "@xenosystem/agent-cli" }
|
|
4
|
+
$Channel = if ($env:XENO_RELEASE_CHANNEL) { $env:XENO_RELEASE_CHANNEL } else { "latest" }
|
|
5
|
+
|
|
6
|
+
if (-not (Get-Command npm -ErrorAction SilentlyContinue)) {
|
|
7
|
+
throw "npm is required. Install Node.js first: https://nodejs.org/"
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
$Integrity = npm view "$Package@$Channel" dist.integrity 2>$null
|
|
11
|
+
if ($Integrity) {
|
|
12
|
+
Write-Host "Resolved npm integrity: $Integrity"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
npm install -g "$Package@$Channel"
|
|
16
|
+
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
|
|
17
|
+
|
|
18
|
+
xeno --version
|