orchestrai 0.1.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 +51 -0
- package/bin/orchestrai.js +82 -0
- package/package.json +25 -0
package/README.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# orchestrai
|
|
2
|
+
|
|
3
|
+
Run [OrchestrAI](https://github.com/Muhamad-Yussuf/devops-mcp-server) — a local, terminal-oriented multi-agent DevOps orchestration prototype — with nothing pre-installed:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
npx orchestrai --project /path/to/your/project
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
or, with Bun:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
bunx orchestrai --project /path/to/your/project
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
No Bun, no clone, no separate download step — the right platform binary installs automatically as part of this package (an optional dependency scoped to your OS/architecture), and this command just runs it.
|
|
16
|
+
|
|
17
|
+
## Supported platforms
|
|
18
|
+
|
|
19
|
+
| Platform | Package |
|
|
20
|
+
|---|---|
|
|
21
|
+
| Windows x64 | `orchestrai-win32-x64` |
|
|
22
|
+
| Linux x64 | `orchestrai-linux-x64` |
|
|
23
|
+
| macOS Apple Silicon (arm64) | `orchestrai-darwin-arm64` |
|
|
24
|
+
|
|
25
|
+
macOS Intel (x64) isn't published yet. If `npx`/`bunx` reports no build for your platform, that's why — build from source instead (see the main repository).
|
|
26
|
+
|
|
27
|
+
### macOS: unsigned binary
|
|
28
|
+
|
|
29
|
+
The macOS build isn't code-signed or notarized. On first run, macOS Gatekeeper will likely refuse to open it. Clear that with:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
xattr -d com.apple.quarantine "$(which orchestrai)"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
(or the equivalent path npm installed it under) before running it again.
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
orchestrai # start everything, interactively in a real terminal
|
|
41
|
+
orchestrai init # interactive setup wizard, run once per project
|
|
42
|
+
orchestrai --project "/path/to/app"
|
|
43
|
+
orchestrai --only devops-agent
|
|
44
|
+
orchestrai --help
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
See the [main repository](https://github.com/Muhamad-Yussuf/devops-mcp-server) for full documentation.
|
|
48
|
+
|
|
49
|
+
## Reproducibility
|
|
50
|
+
|
|
51
|
+
Each published version of this package corresponds to a specific, immutable build — pinning a version (`npx orchestrai@1.2.3`) always resolves the identical binary, not a rolling "latest."
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// specs/032-npm-package-distribution/spec.md
|
|
3
|
+
//
|
|
4
|
+
// Dispatcher npm's "bin" field points at. The real binary is NOT
|
|
5
|
+
// downloaded at runtime — it's installed by npm itself, as one of three
|
|
6
|
+
// mutually-exclusive optionalDependencies (orchestrai-win32-x64,
|
|
7
|
+
// orchestrai-linux-x64, orchestrai-darwin-arm64), each restricted to its
|
|
8
|
+
// own platform via package.json's "os"/"cpu" fields, so exactly one of
|
|
9
|
+
// them physically lands in node_modules on any given install. This is
|
|
10
|
+
// the same pattern esbuild/swc/turbo use, and it sidesteps needing any
|
|
11
|
+
// download/checksum code at runtime at all — npm's own registry already
|
|
12
|
+
// verifies each tarball's integrity during install.
|
|
13
|
+
//
|
|
14
|
+
// (An earlier design in this same checkpoint instead downloaded the
|
|
15
|
+
// binary from this repository's GitHub Releases at first run. Reworked
|
|
16
|
+
// away from that: this repository is private, so an unauthenticated
|
|
17
|
+
// bunx/npx invocation on a machine with no repo access could never reach
|
|
18
|
+
// GitHub's Releases API or asset-download endpoints — confirmed live via
|
|
19
|
+
// plain unauthenticated curl returning 404 on both. Publishing the binary
|
|
20
|
+
// through npm's own registry has no dependency on GitHub repo visibility
|
|
21
|
+
// at all.)
|
|
22
|
+
|
|
23
|
+
"use strict"
|
|
24
|
+
|
|
25
|
+
const path = require("path")
|
|
26
|
+
const { spawnSync } = require("child_process")
|
|
27
|
+
|
|
28
|
+
// One fixed platform package per supported platform+arch — mirrors
|
|
29
|
+
// npm-package/*/package.json's own "os"/"cpu" restrictions exactly.
|
|
30
|
+
const PLATFORM_PACKAGES = {
|
|
31
|
+
"win32-x64": { pkg: "orchestrai-win32-x64", bin: "orchestrai.exe" },
|
|
32
|
+
"linux-x64": { pkg: "orchestrai-linux-x64", bin: "orchestrai" },
|
|
33
|
+
"darwin-arm64": { pkg: "orchestrai-darwin-arm64", bin: "orchestrai-macos-arm64" },
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function platformKey() {
|
|
37
|
+
return `${process.platform}-${process.arch}`
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function resolveBinaryPath() {
|
|
41
|
+
const entry = PLATFORM_PACKAGES[platformKey()]
|
|
42
|
+
if (!entry) {
|
|
43
|
+
throw new Error(
|
|
44
|
+
`No orchestrai build is published for ${platformKey()}. ` +
|
|
45
|
+
`Supported: ${Object.keys(PLATFORM_PACKAGES).join(", ")}. ` +
|
|
46
|
+
`See https://github.com/Muhamad-Yussuf/devops-mcp-server#readme for building from source instead.`,
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
// require.resolve() walks node_modules exactly the way `require()`
|
|
51
|
+
// would — correct whether this dispatcher is itself inside
|
|
52
|
+
// node_modules/orchestrai/bin/ (the real installed case) or run
|
|
53
|
+
// directly from a workspace/monorepo layout during local testing.
|
|
54
|
+
return require.resolve(path.join(entry.pkg, "bin", entry.bin))
|
|
55
|
+
} catch {
|
|
56
|
+
throw new Error(
|
|
57
|
+
`The "${entry.pkg}" optional dependency isn't installed. ` +
|
|
58
|
+
`This usually means the install ran with --no-optional or ` +
|
|
59
|
+
`--ignore-scripts, or npm's platform detection didn't select it. ` +
|
|
60
|
+
`Try reinstalling without those flags.`,
|
|
61
|
+
)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function main() {
|
|
66
|
+
let binPath
|
|
67
|
+
try {
|
|
68
|
+
binPath = resolveBinaryPath()
|
|
69
|
+
} catch (err) {
|
|
70
|
+
console.error(`orchestrai: ${err.message}`)
|
|
71
|
+
process.exit(1)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const result = spawnSync(binPath, process.argv.slice(2), { stdio: "inherit" })
|
|
75
|
+
if (result.error) {
|
|
76
|
+
console.error(`orchestrai: failed to launch the platform binary: ${result.error.message}`)
|
|
77
|
+
process.exit(1)
|
|
78
|
+
}
|
|
79
|
+
process.exit(result.status === null ? 1 : result.status)
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
main()
|
package/package.json
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "orchestrai",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "OrchestrAI — run the standalone orchestrai binary via bunx/npx with nothing pre-installed. The right platform binary is installed automatically as an optional dependency; no network download at runtime.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"bin": {
|
|
7
|
+
"orchestrai": "bin/orchestrai.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"optionalDependencies": {
|
|
14
|
+
"orchestrai-win32-x64": "0.1.1",
|
|
15
|
+
"orchestrai-linux-x64": "0.1.1",
|
|
16
|
+
"orchestrai-darwin-arm64": "0.1.1"
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18"
|
|
20
|
+
},
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+https://github.com/Muhamad-Yussuf/devops-mcp-server.git"
|
|
24
|
+
}
|
|
25
|
+
}
|