CLI 명령어 레퍼런스#

두 개의 인증된 공개 CLI 워크플로를 사용하고 JSON, 영수증, 오류 및 종료 상태 계약을 올바르게 구문 분석합니다.

한국어 번역 검토 중 기술적 의미가 충돌하는 경우 영어 원문을 기준으로 사용하세요.

개요#

공개 CLI 워크플로는 의도적으로 좁습니다. 두 개의 명령은 문서화 된 첫 번째 성공 계약을 가지고 있습니다: 액션 매니페스트 검사 및 오프라인 작업 사전 비행. 아카이브의 다른 곳에서 볼 수있는 명령 이름은이 페이지에서 자격이 없습니다.

액션 매니페스트#

성공시 stdout은 JSON 배열이고 stderr는 비어 있습니다. 각 배열 요소는 다음과 같은 모양을 가지고 있습니다.

필드

종류

의미

name

문자열

내장된 매니페스트에서 안정적인 동작 식별자

description

문자열

인간 이 읽을 수 있는 목적

inputSchema

객체

액션 입력을 위한 JSON 스키마

executes

불린

Dispatch-contract 분류, 현재 실행 가능 여부의 증거가 아님

class

문자열

고객-callability 클래스

현재 공개 매니페스트는 25개의 액션을 포함하고 있습니다. 22개는 executes: true를 가지고 있습니다. altifigence.analyze.run, altifigence.evolve.launch, altifigence.verify.runexecutes: false를 가지고 있으며 플랜 전용입니다.

alti 명령
./alti commands

오프라인 작업 사전 점검#

CLI 첫 번째 성공에서 전체 준비 및 명령을 사용합니다. 유일한 성공 객체는 altifigence.cli.engine-job-preflight.v1 영수증입니다.

영수증은 로컬로 계산된 소스 해시와 크기를 유효한 작업 ID에 바인딩합니다. 이 두 부울은 필수입니다.

  • submittedfalse입니다;

  • server_authority_verifiedfalse입니다.

봉투의 execution_placement: "cloud"는 요청된 배치 필드입니다. 오프라인 동작과 모순되지 않으며 서버가 연결되었음을 보여주지 않습니다.

alti --json 작업 유효성 검사
./alti --json job validate \
  --job "$ALTI_WORKSPACE/job.json" \
  --workspace-root "$ALTI_WORKSPACE" \
  --source rtl/top.sv

JSON 오류 계약#

--json job validate가 유효성 검사에 도달하고 실패하면 stdout은 성공 영수증을 포함하지 않으며 stderr는 하나의 객체를 포함합니다.

코드와 메시지는 실패에 따라 다릅니다. 구조화된 schema, error.codeerror.retryable 필드가 있을 때 사람의 메시지를 구문 분석하지 마십시오. 검사기는 이 오류에서 유효하지 않은 작업 본문이나 소스 바이트를 에코하지 않습니다.

검사 오류
{
  "schema": "altifigence.cli.error.v1",
  "error": {
    "code": "ENGINE_JOB_JSON_INVALID",
    "message": "The engine job JSON is invalid.",
    "retryable": false
  }
}

종료 상태#

alti에는 서로 다른 종료 상태 계약을 가진 두 개의 디스패치 경로가 있으므로 0, 12만 처리하는 스크립트가 실제 결과를 잘못 읽습니다. 어떤 경로가 명령줄의 첫 번째 단어인 선행 --json를 건너뛰고 인수 파싱을 수행합니다. 이러한 경로는 로컬에서 처리됩니다.

capabilities, rtl, sv, verification, trace, labs, tcl, eda, eidb, reports, physical, px, isa, ide, job, plus the exact forms analyze run and evolve run. mcp serve is intercepted ahead of both paths and starts the stdio MCP server.

Everything else is matched against the embedded action manifest. Note that only the run subcommand of analyze and evolve reaches the local path — other evolve subcommands fall through to the manifest, which defines evolve as a one-word action, so the extra word is reported as an unexpected argument with status 2.

이 페이지의 두 워크플로는 경로를 공유하지 않습니다. alti commands는 매니페스트와 일치합니다. alti --json job validatejob로 시작하므로 로컬에서 처리되고 아래 두 번째 테이블을 따릅니다. 이 때문에 유효성 검사 실패가 2가 아니라 1를 종료합니다.

매니페스트 일치 명령:

상태

통역

0

매니페스트 직렬화가 성공했거나 요청이 발송되었고 응답이 직렬화되었습니다.

1

레지스트리, 구성, 직렬화 또는 디스패치 실패

2

알 수 없는 명령, 알 수 없는 후행 인수, 알 수 없는 플래그, 잘못된 값 유형 또는 누락된 필수 옵션

3

CLASS_NOT_ALLOWED — 일치하는 항목의 클래스는 외부 고객이 호출할 수 없습니다. 현재 25 동작 매니페스트의 모든 항목은 클래스 action이므로 현재 연결할 수 있는 상태가 아닌 예약된 상태입니다.

4

The request was refused before dispatch. alti whoami returns IDENTITY_NOT_VERIFIED, alti login returns AUTH_FLOW_UNAVAILABLE, and the three source-bearing actions — analyze, evolve, verify — are denied unless --allow-source-upload is passed. alti logout is the exception: it exits 0 and reports that nothing was removed

로컬에서 처리되는 명령은 인수 파싱을 통해 실행되며, 해당되는 경우 패키지된 엔진 바이너리를 사용합니다.

상태

통역

0

[잡담] 소전) 소전) 소전, 소전, 소전, 소전 모두 다 소전.

1

위의 JSON 오류 계약을 포함한 CLI-사이드 런타임 오류입니다. alti capabilities는 설치된 레이아웃이 없기 때문에 압축된 아카이브에서 1를 종료합니다.

2

Argument-parsing failure 또는 누락된 엔진 작동 또는 out-of-range stdin 페이로드와 같은 사전 실행 거부

126

엔진 바이너리가 alti 옆에 있었지만 시작할 수 없거나 일반 파일이 아니거나 실행 가능하지 않습니다.

127

alti 또는 PATH에서 엔진 바이너리를 찾을 수 없습니다.

* 기타 *

엔진 자체 출구 상태, 변경되지 않음 통과

엔진 상태가 통과하기 때문에 34를 포함한 모든 작은 정수는 엔진 기반 명령에서 스크립트에 도달 할 수 있으며 위의 매니페스트 경로 의미를 전달하지 않습니다. 숫자만으로 실행 한 명령에서 분기하십시오.

stdout을 파싱하기 전에 항상 프로세스 종료 상태를 확인하십시오. stderr를 분리하십시오. 비어 있거나 부분적인 파일은 성공이 아니며 사전 비행 영수증은 엔진, 제출 또는 완료 영수증이 아닙니다.

상태 예제 종료
$ alti job status --runner local job-123
ALTIFIGENCE_LOCAL_ENGINE_JOB_URL must be set to a non-empty value
[failed] job.status runner=local engine=alti-engine-job executable=alti-engine-job resolution=unresolved exit=2

엔진 명령: 실제로 실행되는 것#

The release ships the engine binaries next to alti, and alti runs them. For an engine-backed command, alti looks for the engine binary as a sibling of its own executable, falls back to PATH, and then executes it with the operation and arguments the subcommand builds. The receipt line on stderr names the binary, the resolution (sibling or path), and the exit status, so you can see exactly what was launched. This is the default: --runner defaults to local.

Five subcommands are compatibility paths that accept --runner: rtl compile, rtl synthesize, physical run, px analyze, and isa run. With --runner cloud or --runner private these print a [scaffold] dispatch line instead of running anything, because no runner adapter is connected; if you also pass engine arguments after --, they are rejected with status 1, since passthrough arguments are accepted only by --runner local. Every other engine-backed subcommand runs locally unconditionally and has no --runner flag.

두 개의 명령은 플랫 압축해제된 아카이브가 아닌 서명된 설치 레이아웃을 필요로 하며, 압축해제된 아카이브에서만 실패합니다.

  • alti capabilitiesPREFIX/bin/alti와 영수증 지원 릴리스 페이로드를 아무것도보고하기 전에 해결하고, 그렇지 않으면 1를 종료합니다.

  • alti tcl evaluate, which requires alti-tcl-local-runner as a strict sibling with no PATH fallback and additionally checks it against the installed trust chain. It reports TCL_INSTALLED_RUNNER_UNAVAILABLE and exits 127 when the sibling is absent, and TCL_INSTALLED_RUNNER_UNTRUSTED and exits 126 when it is present but fails release authentication.

자격 경계

  • 매니페스트 백업 원격 작업에는 이 릴리스에서 일반적으로 사용할 수 있는 Cloud 또는 Public API 권한이 없으므로 [scaffold] 라인과 계획 전용 매니페스트 항목은 모두 실행된 작업에 미치지 못합니다.

  • 로컬로 실행된 엔진 명령은 실제 컴퓨터에서 실행됩니다. 이 명령은 자격을 갖춘 엔드 투 엔드 제품 워크플로가 아니며 릴리스 노트에 설명된 릴리스 승인에 포함되지 않으며 출력은 인증된 엔지니어링 결과가 아닙니다.

  • CLI 환경 인증 및 패키지된 stdio MCP 프로세스는 오프라인 사전 비행의 전제 조건이 아닌 별도의 경계입니다.

로컬 엔진 영수증
$ alti --json rtl fanout-free-committed-identities list
{
  "schema": "altifigence.local-engine-execution.v1",
  "status": "unavailable",
  "domain": "rtl",
  "operation": "fanout-free-committed-identities-list",
  "runner": "local",
  "binary": "alti-rtl-runner"
}