@jini-ai/platform 0.1.0
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 +201 -0
- package/dist/asset-cache.d.ts +80 -0
- package/dist/asset-cache.d.ts.map +1 -0
- package/dist/asset-cache.js +423 -0
- package/dist/asset-cache.js.map +1 -0
- package/dist/aws-sigv4.d.ts +51 -0
- package/dist/aws-sigv4.d.ts.map +1 -0
- package/dist/aws-sigv4.js +104 -0
- package/dist/aws-sigv4.js.map +1 -0
- package/dist/blob-storage.d.ts +89 -0
- package/dist/blob-storage.d.ts.map +1 -0
- package/dist/blob-storage.js +315 -0
- package/dist/blob-storage.js.map +1 -0
- package/dist/command.d.ts +32 -0
- package/dist/command.d.ts.map +1 -0
- package/dist/command.js +101 -0
- package/dist/command.js.map +1 -0
- package/dist/download.d.ts +92 -0
- package/dist/download.d.ts.map +1 -0
- package/dist/download.js +856 -0
- package/dist/download.js.map +1 -0
- package/dist/fs.d.ts +55 -0
- package/dist/fs.d.ts.map +1 -0
- package/dist/fs.js +124 -0
- package/dist/fs.js.map +1 -0
- package/dist/home-expansion.d.ts +18 -0
- package/dist/home-expansion.d.ts.map +1 -0
- package/dist/home-expansion.js +58 -0
- package/dist/home-expansion.js.map +1 -0
- package/dist/http.d.ts +14 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +39 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/process.d.ts +159 -0
- package/dist/process.d.ts.map +1 -0
- package/dist/process.js +362 -0
- package/dist/process.js.map +1 -0
- package/dist/proxy-env.d.ts +50 -0
- package/dist/proxy-env.d.ts.map +1 -0
- package/dist/proxy-env.js +373 -0
- package/dist/proxy-env.js.map +1 -0
- package/dist/resource-paths.d.ts +68 -0
- package/dist/resource-paths.d.ts.map +1 -0
- package/dist/resource-paths.js +137 -0
- package/dist/resource-paths.js.map +1 -0
- package/dist/sandbox-env.d.ts +86 -0
- package/dist/sandbox-env.d.ts.map +1 -0
- package/dist/sandbox-env.js +215 -0
- package/dist/sandbox-env.js.map +1 -0
- package/dist/shell.d.ts +46 -0
- package/dist/shell.d.ts.map +1 -0
- package/dist/shell.js +78 -0
- package/dist/shell.js.map +1 -0
- package/dist/terminal.d.ts +137 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/terminal.js +398 -0
- package/dist/terminal.js.map +1 -0
- package/dist/toolchain.d.ts +17 -0
- package/dist/toolchain.d.ts.map +1 -0
- package/dist/toolchain.js +251 -0
- package/dist/toolchain.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module toolchain
|
|
3
|
+
*
|
|
4
|
+
* User-level toolchain bin discovery. Single source of truth for the CLI
|
|
5
|
+
* install locations a GUI-launched daemon must search even under a stripped
|
|
6
|
+
* PATH — npm/pnpm/bun/cargo/deno/go/pyenv prefixes, version-manager shims
|
|
7
|
+
* (asdf, volta, mise, nvm, fnm), and per-version Node install roots. Pure path
|
|
8
|
+
* assembly plus best-effort directory probing; no process, command, or proxy
|
|
9
|
+
* concerns.
|
|
10
|
+
*/
|
|
11
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
12
|
+
import { homedir } from "node:os";
|
|
13
|
+
import { isAbsolute, join } from "node:path";
|
|
14
|
+
/** @internal Resolve a possibly `~`-prefixed or absolute path against `home`, or `null` when it is neither. */
|
|
15
|
+
function resolveUserScopedHome(raw, home) {
|
|
16
|
+
if (typeof raw !== "string")
|
|
17
|
+
return null;
|
|
18
|
+
const value = raw.trim();
|
|
19
|
+
if (value.length === 0)
|
|
20
|
+
return null;
|
|
21
|
+
if (value === "~")
|
|
22
|
+
return home;
|
|
23
|
+
if (value.startsWith("~/") || value.startsWith("~\\")) {
|
|
24
|
+
return join(home, value.slice(2));
|
|
25
|
+
}
|
|
26
|
+
return isAbsolute(value) ? value : null;
|
|
27
|
+
}
|
|
28
|
+
// Single source of truth for "user-level CLI install locations the daemon
|
|
29
|
+
// must search even when launched with a minimal PATH". GUI launchers
|
|
30
|
+
// (macOS .app bundles, Linux .desktop files) typically inherit a stripped
|
|
31
|
+
// PATH from launchd / the desktop session and do not read interactive
|
|
32
|
+
// shell rc files, so without this list any CLI installed under the user's
|
|
33
|
+
// own toolchain (`npm i -g`, `pnpm self-install`, `cargo install`, asdf,
|
|
34
|
+
// nvm, fnm, mise, ...) is silently undetected. Both the daemon resolver
|
|
35
|
+
// and the packaged sidecar PATH builder consume this so the two layers
|
|
36
|
+
// can never drift again.
|
|
37
|
+
/**
|
|
38
|
+
* Assemble the ordered list of user-level toolchain bin directories to prepend
|
|
39
|
+
* to PATH so a GUI-launched daemon can find CLIs installed under the user's own
|
|
40
|
+
* toolchain even when it inherits a stripped PATH. Entries are search-path
|
|
41
|
+
* candidates (existence is not required) except version-manager install roots,
|
|
42
|
+
* which are probed and version-sorted.
|
|
43
|
+
*
|
|
44
|
+
* @param options - Optional `home`, `includeSystemBins`, and `env` overrides (all default to real values).
|
|
45
|
+
* @returns The ordered list of candidate bin directories, most-specific first.
|
|
46
|
+
*/
|
|
47
|
+
export function wellKnownUserToolchainBins(options = {}) {
|
|
48
|
+
const home = options.home ?? homedir();
|
|
49
|
+
const includeSystemBins = options.includeSystemBins ?? process.platform !== "win32";
|
|
50
|
+
const env = options.env ?? process.env;
|
|
51
|
+
const dirs = [];
|
|
52
|
+
// Vite+ global installs expose CLI shims from VP_HOME/bin (default
|
|
53
|
+
// ~/.vite-plus/bin). An explicit VP_HOME is the most specific signal for
|
|
54
|
+
// vp-managed shims, so it wins over other global package-manager prefixes
|
|
55
|
+
// when a CLI name exists in multiple stores.
|
|
56
|
+
const vpHome = resolveUserScopedHome(env.VP_HOME, home);
|
|
57
|
+
if (vpHome) {
|
|
58
|
+
dirs.push(join(vpHome, "bin"));
|
|
59
|
+
}
|
|
60
|
+
// The user's *explicit* npm prefix outranks every conventional
|
|
61
|
+
// location below — including `~/.local/bin`. The env var is the
|
|
62
|
+
// user's current npm configuration, so a binary installed via
|
|
63
|
+
// `npm i -g` today lives at `<prefix>/bin`. Conventional locations
|
|
64
|
+
// (`~/.local/bin`, `~/.npm-global`, `~/.npm-packages`) routinely
|
|
65
|
+
// hold *stale* installs from an older prefix the user has since
|
|
66
|
+
// rewritten, and `~/.local/bin` in particular is also a shared
|
|
67
|
+
// dumping ground for pip --user / cargo install / hand-built
|
|
68
|
+
// binaries that may collide with old npm artefacts. Putting the
|
|
69
|
+
// env-driven prefix first matches npm's own resolution order
|
|
70
|
+
// (env > .npmrc > default) and gives "explicit beats convention"
|
|
71
|
+
// semantics across the whole list, not just the npm-prefix block.
|
|
72
|
+
// Trim before length-checking so accidental whitespace-only values
|
|
73
|
+
// (`NPM_CONFIG_PREFIX=" "`) do not produce a `/bin`-suffixed garbage
|
|
74
|
+
// entry.
|
|
75
|
+
const npmPrefixRaw = env.NPM_CONFIG_PREFIX ?? env.npm_config_prefix;
|
|
76
|
+
if (typeof npmPrefixRaw === "string") {
|
|
77
|
+
const npmPrefix = npmPrefixRaw.trim();
|
|
78
|
+
if (npmPrefix.length > 0) {
|
|
79
|
+
// Unix: npm global binaries live in <prefix>/bin. Always add it as a
|
|
80
|
+
// search-path candidate — existence is irrelevant for a PATH directory,
|
|
81
|
+
// and this preserves the long-standing helper contract.
|
|
82
|
+
dirs.push(join(npmPrefix, "bin"));
|
|
83
|
+
// Windows: npm installs global binaries directly into the prefix root
|
|
84
|
+
// (there is no /bin subdirectory), so add the root as well. Additive —
|
|
85
|
+
// the <prefix>/bin entry above is left untouched for cross-platform
|
|
86
|
+
// parity.
|
|
87
|
+
if (process.platform === "win32") {
|
|
88
|
+
dirs.push(npmPrefix);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// Windows: %APPDATA%\npm is npm's default global prefix. NPM_CONFIG_PREFIX /
|
|
93
|
+
// npm_config_prefix are npm-internal vars that are usually absent in Electron
|
|
94
|
+
// child-process environments, so the block above no-ops for most Windows
|
|
95
|
+
// users. Add the default location unconditionally — consistent with the
|
|
96
|
+
// conventional dirs below, which are also added without an existence check.
|
|
97
|
+
if (process.platform === "win32") {
|
|
98
|
+
dirs.push(join(home, "AppData", "Roaming", "npm"));
|
|
99
|
+
}
|
|
100
|
+
dirs.push(join(home, ".local", "bin"), join(home, ".vite-plus", "bin"), join(home, ".kimi-code", "bin"), join(home, ".opencode", "bin"), join(home, ".bun", "bin"), join(home, ".volta", "bin"), join(home, ".asdf", "shims"), join(home, "Library", "pnpm"), join(home, ".cargo", "bin"),
|
|
101
|
+
// Common user-level npm prefixes for sudo-free global installs.
|
|
102
|
+
// ~/.npm-global is the dominant non-canonical convention shipped
|
|
103
|
+
// in most third-party "fix npm EACCES" tutorials, and
|
|
104
|
+
// ~/.npm-packages is the second-most common variant. Without
|
|
105
|
+
// these, GUI-launched daemons miss `npm i -g`'d CLIs even though
|
|
106
|
+
// they resolve cleanly from the user's shell.
|
|
107
|
+
join(home, ".npm-global", "bin"), join(home, ".npm-packages", "bin"),
|
|
108
|
+
// Other common user-level toolchains that install CLI shims outside the
|
|
109
|
+
// Node ecosystem but still ship agent CLIs (or their dependencies):
|
|
110
|
+
// Deno's install root, Go's default GOBIN, and pyenv's shim dir. All are
|
|
111
|
+
// best-effort — a missing dir contributes nothing.
|
|
112
|
+
join(home, ".deno", "bin"), join(home, "go", "bin"), join(home, ".pyenv", "shims"));
|
|
113
|
+
// Windows-only user install roots that GUI launches miss. Scoop drops
|
|
114
|
+
// shims under ~/scoop/shims, and npm's global prefix on Windows defaults
|
|
115
|
+
// to %APPDATA%\npm rather than a `bin` subdir.
|
|
116
|
+
if (process.platform === "win32") {
|
|
117
|
+
dirs.push(join(home, "scoop", "shims"));
|
|
118
|
+
const appData = typeof env.APPDATA === "string" ? env.APPDATA.trim() : "";
|
|
119
|
+
if (appData.length > 0) {
|
|
120
|
+
dirs.push(join(appData, "npm"));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Mise shims: makes every tool installed with `mise install` visible to
|
|
124
|
+
// GUI-launched daemons even when the process inherits a stripped PATH.
|
|
125
|
+
// Respect MISE_DATA_DIR (the official way to relocate the whole mise tree).
|
|
126
|
+
// We only fall back to the legacy ~/.mise/shims path when no explicit
|
|
127
|
+
// MISE_DATA_DIR override is provided.
|
|
128
|
+
const miseDataOverride = resolveUserScopedHome(env.MISE_DATA_DIR, home);
|
|
129
|
+
const miseData = miseDataOverride || join(home, ".local", "share", "mise");
|
|
130
|
+
dirs.push(join(miseData, "shims"));
|
|
131
|
+
if (!miseDataOverride) {
|
|
132
|
+
dirs.push(join(home, ".mise", "shims"));
|
|
133
|
+
}
|
|
134
|
+
if (includeSystemBins) {
|
|
135
|
+
dirs.push("/opt/homebrew/bin", "/usr/local/bin");
|
|
136
|
+
}
|
|
137
|
+
// Per-version Node toolchains: scan the install root and surface every
|
|
138
|
+
// version directory's bin folder. Best-effort — missing roots simply
|
|
139
|
+
// contribute nothing.
|
|
140
|
+
// When MISE_DATA_DIR is set we use the same root for consistency with shims.
|
|
141
|
+
const miseInstalls = join(miseData, "installs");
|
|
142
|
+
dirs.push(...existingMiseNpmPackageBinDirs(miseInstalls));
|
|
143
|
+
const nodeInstallRoots = [
|
|
144
|
+
{
|
|
145
|
+
root: join(miseInstalls, "node"),
|
|
146
|
+
segments: ["bin"],
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
root: join(home, ".nvm", "versions", "node"),
|
|
150
|
+
segments: ["bin"],
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
root: join(home, ".local", "share", "fnm", "node-versions"),
|
|
154
|
+
segments: ["installation", "bin"],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
root: join(home, ".fnm", "node-versions"),
|
|
158
|
+
segments: ["installation", "bin"],
|
|
159
|
+
},
|
|
160
|
+
];
|
|
161
|
+
// Windows fnm keeps Node installs under <fnm-root>\node-versions\<ver>\
|
|
162
|
+
// installation, with node.exe — and any `npm i -g`'d CLI shim such as
|
|
163
|
+
// codex.cmd — directly in `installation` (no POSIX-style `bin` subdir).
|
|
164
|
+
// The fnm root is %APPDATA%\fnm or %LOCALAPPDATA%\fnm depending on the
|
|
165
|
+
// install, and `FNM_DIR` overrides both. A GUI-launched packaged app
|
|
166
|
+
// inherits a stripped PATH and reads no shell rc, so without an explicit
|
|
167
|
+
// probe fnm-managed Node — and every agent CLI it runs — is silently
|
|
168
|
+
// undetected on Windows. See issues #3517 and #3062.
|
|
169
|
+
if (process.platform === "win32") {
|
|
170
|
+
const fnmDirOverride = typeof env.FNM_DIR === "string" ? env.FNM_DIR.trim() : "";
|
|
171
|
+
const fnmRoots = [];
|
|
172
|
+
if (fnmDirOverride.length > 0) {
|
|
173
|
+
fnmRoots.push(fnmDirOverride);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
for (const base of [env.LOCALAPPDATA, env.APPDATA]) {
|
|
177
|
+
const trimmed = typeof base === "string" ? base.trim() : "";
|
|
178
|
+
if (trimmed.length > 0)
|
|
179
|
+
fnmRoots.push(join(trimmed, "fnm"));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
for (const fnmRoot of fnmRoots) {
|
|
183
|
+
nodeInstallRoots.push({ root: join(fnmRoot, "node-versions"), segments: ["installation"] });
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
for (const installRoot of nodeInstallRoots) {
|
|
187
|
+
for (const dir of existingChildBinDirs(installRoot.root, installRoot.segments)) {
|
|
188
|
+
dirs.push(dir);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return dirs;
|
|
192
|
+
}
|
|
193
|
+
/** @internal Surface bin dirs for npm-packaged toolchains installed under a mise installs root (e.g. `npm-openai-codex`). */
|
|
194
|
+
function existingMiseNpmPackageBinDirs(root) {
|
|
195
|
+
const out = [];
|
|
196
|
+
for (const packageName of ["npm-openai-codex"]) {
|
|
197
|
+
const packageRoot = join(root, packageName);
|
|
198
|
+
out.push(...existingChildBinDirs(packageRoot, ["bin"]));
|
|
199
|
+
}
|
|
200
|
+
return out;
|
|
201
|
+
}
|
|
202
|
+
/** @internal List existing `<root>/<versionDir>/<...segments>` directories, version-sorted, skipping non-directories. */
|
|
203
|
+
function existingChildBinDirs(root, segments) {
|
|
204
|
+
const out = [];
|
|
205
|
+
let entries;
|
|
206
|
+
try {
|
|
207
|
+
entries = readdirSync(root, { encoding: "utf8", withFileTypes: true });
|
|
208
|
+
}
|
|
209
|
+
catch {
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
212
|
+
for (const entry of sortVersionedDirEntries(entries)) {
|
|
213
|
+
if (!entry.isDirectory() && !entry.isSymbolicLink())
|
|
214
|
+
continue;
|
|
215
|
+
const candidate = join(root, entry.name, ...segments);
|
|
216
|
+
if (existsSync(candidate))
|
|
217
|
+
out.push(candidate);
|
|
218
|
+
}
|
|
219
|
+
return out;
|
|
220
|
+
}
|
|
221
|
+
/** @internal Sort directory entries by semver-like name (newest first), falling back to locale order. */
|
|
222
|
+
function sortVersionedDirEntries(entries) {
|
|
223
|
+
return [...entries].sort((left, right) => compareVersionLikeDirNames(left.name, right.name));
|
|
224
|
+
}
|
|
225
|
+
/** @internal Compare two version-like directory names descending; semver-parseable names precede non-parseable ones. */
|
|
226
|
+
function compareVersionLikeDirNames(left, right) {
|
|
227
|
+
const leftSemver = parseVersionLikeDirName(left);
|
|
228
|
+
const rightSemver = parseVersionLikeDirName(right);
|
|
229
|
+
if (leftSemver && rightSemver) {
|
|
230
|
+
for (let index = 0; index < leftSemver.length; index += 1) {
|
|
231
|
+
const difference = rightSemver[index] - leftSemver[index];
|
|
232
|
+
if (difference !== 0)
|
|
233
|
+
return difference;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
else if (leftSemver) {
|
|
237
|
+
return -1;
|
|
238
|
+
}
|
|
239
|
+
else if (rightSemver) {
|
|
240
|
+
return 1;
|
|
241
|
+
}
|
|
242
|
+
return left.localeCompare(right);
|
|
243
|
+
}
|
|
244
|
+
/** @internal Parse a `vX.Y.Z` / `X.Y.Z` directory name into its numeric parts, or `null` when it does not match. */
|
|
245
|
+
function parseVersionLikeDirName(name) {
|
|
246
|
+
const match = /^v?(\d+)\.(\d+)\.(\d+)$/.exec(name);
|
|
247
|
+
if (!match)
|
|
248
|
+
return null;
|
|
249
|
+
return [Number(match[1]), Number(match[2]), Number(match[3])];
|
|
250
|
+
}
|
|
251
|
+
//# sourceMappingURL=toolchain.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolchain.js","sourceRoot":"","sources":["../src/toolchain.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jini-ai/platform",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/AINSEP/Jini.git",
|
|
8
|
+
"directory": "packages/platform"
|
|
9
|
+
},
|
|
10
|
+
"jini": {
|
|
11
|
+
"domain": "platform",
|
|
12
|
+
"kind": "abstraction",
|
|
13
|
+
"runtime": "node",
|
|
14
|
+
"admission": "locked"
|
|
15
|
+
},
|
|
16
|
+
"type": "module",
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"import": "./dist/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"!dist/**/*.test.js",
|
|
26
|
+
"!dist/**/*.test.d.ts",
|
|
27
|
+
"!dist/**/*.test.js.map",
|
|
28
|
+
"!dist/**/*.test.d.ts.map",
|
|
29
|
+
"!dist/**/__tests__/**"
|
|
30
|
+
],
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"undici": "^7.25.0"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public",
|
|
36
|
+
"registry": "https://registry.npmjs.org"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@vitest/coverage-v8": "^2.1.9"
|
|
40
|
+
},
|
|
41
|
+
"scripts": {
|
|
42
|
+
"build": "tsc -p tsconfig.json",
|
|
43
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
44
|
+
"test": "vitest run",
|
|
45
|
+
"test:coverage": "vitest run --coverage"
|
|
46
|
+
}
|
|
47
|
+
}
|