affaan-m/ECC · error
The canonical ito-compute-cli is unpublished and ECC will no
Error message
The canonical ito-compute-cli is unpublished and ECC will not resolve a credential-bearing "ito" executable from PATH. Build it from ${CANONICAL_REPOSITORY.replace(/\.git$/, "")}/${CANONICAL_PACKAGE_PATH}, run npm ci and npm run check, then set ${EXECUTABLE_OVERRIDE} to the explicit absolute dist/bin/ito.js path. What it means
Thrown by resolveItoExecutable at scripts/ito.js:189-196 when the ECC_ITO_CLI_EXECUTABLE environment variable is unset, undefined, or trims to empty. ECC deliberately refuses to discover a credential-bearing 'ito' binary via PATH for security: PATH resolution could pick up a shim or hostile executable. The canonical ito-compute-cli package is currently unpublished, so the operator must build it locally and point ECC at the explicit built entry. The message embeds build instructions and the canonical repo path (CANONICAL_REPOSITORY with trailing .git stripped, plus CANONICAL_PACKAGE_PATH).
Source
Thrown at scripts/ito.js:190
}
if (command === "evals") {
validateNodeQualificationArgs(withoutJson, environment);
}
return Object.freeze({
help: false,
invocationArgs: Object.freeze([
...(jsonIndexes.length === 1 ? ["--json"] : []),
command,
...withoutJson,
]),
});
}
function resolveItoExecutable(environment = process.env) {
const configured = environment[EXECUTABLE_OVERRIDE]?.trim();
if (!configured) {
throw new Error([
"The canonical ito-compute-cli is unpublished and ECC will not resolve",
`a credential-bearing "ito" executable from PATH. Build it from`,
`${CANONICAL_REPOSITORY.replace(/\.git$/, "")}/${CANONICAL_PACKAGE_PATH},`,
"run npm ci and npm run check, then set",
`${EXECUTABLE_OVERRIDE} to the explicit absolute dist/bin/ito.js path.`,
].join(" "));
}
if (!path.isAbsolute(configured)) {
throw new Error(
`${EXECUTABLE_OVERRIDE} must be an absolute path explicitly configured by the operator.`
);
}
return assertUsableExecutable(configured);
}
function assertUsableExecutable(candidate) {
let canonicalCandidate;View on GitHub (pinned to 01e15490f0)
Solutions
- Clone and build the canonical CLI: `git clone https://github.com/Ito-Markets/ito-cloud-runtime.git && cd ito-cloud-runtime/cli/ito-compute-cli && npm ci && npm run check`.
- Export the absolute built entry: `export ECC_ITO_CLI_EXECUTABLE="/abs/ito-cloud-runtime/cli/ito-compute-cli/dist/bin/ito.js"`.
- Add the export to ~/.zshrc / ~/.bashrc / the CI env so it persists.
- Verify with `echo "$ECC_ITO_CLI_EXECUTABLE"` and `test -f "$ECC_ITO_CLI_EXECUTABLE"` before rerunning ecc ito.
Example fix
// before $ ecc ito status Error: The canonical ito-compute-cli is unpublished ... // after $ git clone https://github.com/Ito-Markets/ito-cloud-runtime.git $ cd ito-cloud-runtime/cli/ito-compute-cli && npm ci && npm run check $ export ECC_ITO_CLI_EXECUTABLE="$PWD/dist/bin/ito.js" $ ecc ito status
Defensive patterns
Strategy: validation
Validate before calling
function assertItoExecutableConfigured(env) {
const v = (env.ECC_ITO_CLI_EXECUTABLE || '').trim();
if (!v) {
throw new Error('ECC_ITO_CLI_EXECUTABLE is unset. Build ito-compute-cli and export the absolute dist/bin/ito.js path.');
}
return v;
} Prevention
- Add the export to ~/.zshrc / ~/.bashrc and to the CI environment secrets.
- Verify the env var in a preflight step at the start of any pipeline that uses ecc ito.
- Document the build + export pair in onboarding so new operators hit it once, not repeatedly.
When it happens
Trigger: Any `ecc ito <command>` invocation (other than --help/-h) when ECC_ITO_CLI_EXECUTABLE is not set. main() always calls resolveItoExecutable after parseArgs succeeds (ito.js:304).
Common situations: First-time setup after upgrading ECC; new machine without the env var exported; CI runner that does not source the operator's shell rc; operator cloned ito-cloud-runtime but forgot to export ECC_ITO_CLI_EXECUTABLE in the shell that runs ecc.
Related errors
- ${EXECUTABLE_OVERRIDE} must be an absolute path explicitly c
- Live node qualification requires ITO_ENABLE_SIXTYTWO_LIVE=1
- Itô compute has no paper or dry-run success mode. No CLI ope
- ${EXECUTABLE_OVERRIDE} does not point to a readable local It
- ${EXECUTABLE_OVERRIDE} must point to the canonical dist/bin/
AI-assisted analysis of affaan-m/ECC@01e15490f0 (2026-08-13).
Data as JSON: /api/errors/b971dfdf27ed4d44.
Report an issue: GitHub.