CLI 명령어 범위#

출하된 alti 바이너리가 커맨드 라인을 어떻게 라우팅하는지, 이 릴리스에서 어떤 네임스페이스에 연결할 수 있는지, 모든 종료 코드의 의미 및 각 명령이 실제로 실행되는 위치를 이해합니다.

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

개요#

이것은 전체 alti 명령 참조의 시작 페이지입니다. 모든 명령에 적용되는 부분을 다룹니다. 바이너리가 인수를 처리하는 파서, 승진된 CLI에서 연결할 수 있는 네임스페이스, 명령이 실제로 실행되는 완전한 종료 코드 세트, 인쇄하는 영수증 봉투 및 읽는 환경 변수를 결정하는 방법.

명령 당 테이블은 두 개의 동반자 페이지에 살고 있습니다:

  • CLI engine commands — every locally parsed engine namespace: rtl, sv, verification, trace, labs, tcl, eidb, physical, px, isa, ide, and capabilities.

  • CLI 작업 및 클라우드 명령job 네임스페이스, analyze run, evolve run 및 임베디드 작업 매니페스트의 25개 동작.

이것은 서명 참조입니다. 인수 승인, 발송 및 영수증 모양을 설명합니다. 엔진이 내부적으로 계산하는 것을 설명하지 않으며 CLI 명령 참조에서 릴리스 자격을 확대하지 않습니다. 자격 경계에 대해 해당 페이지를 읽으십시오. 여기에 모든 것이 상속됩니다.

A command appearing in --help is not evidence that it can complete useful work on your machine. Several documented commands are permanently unavailable in this release, and they are named below rather than quietly omitted.

두 파서, 하나의 바이너리#

alti에는 두 개의 독립적인 인수 파서가 있으며 명령줄의 첫 번째 단어가 어느 것이 실행되는지 결정합니다.

  1. The exact pair mcp serve is intercepted before either parser and starts the stdio MCP server.

  2. 로컬 파서는 13개의 네임스페이스와 2개의 정확한 두 단어 형식을 처리합니다. 완전한 인수 파서입니다. -h, 위치 인수, 값 열거 및 범위 유효성 검사를 지원합니다.

  3. 매니페스트 디스패처는 다른 모든 것을 처리합니다. 명령 경로와 내장된 동작 매니페스트를 일치시키고 ---prefixed 플래그만 인식합니다.

로컬 파서는 첫 번째 단어(선택적인 선행 --json 이후)가 다음 중 하나일 때 명령줄을 수신합니다.

Text
capabilities  job   rtl   sv    verification  trace  labs
tcl           eidb  physical    px            isa    ide

…또는 처음 두 단어가 정확히 analyze run 또는 evolve run일 때.

다른 모든 것은 login, logout, whoami 및 모든 클라우드 작업을 포함하여 매니페스트 디스패처로 이동합니다.

이 라우팅에서 제외되는 항목#

명령의 4개 그룹은 바이너리에 선언되어 있지만 이 릴리스에서는 접근할 수 없습니다. 이 페이지에서는 생략되지 않습니다. 이 명령은 승격된 CLI 아카이브 버전의 모양입니다.

그룹

무슨 일이

종료

eda 및 모든 하위 명령

not in the local-parser list, and not in the action manifest, 따라서 알 수 없는 명령으로 보고됩니다.

2

reports 및 모든 하위 명령

동일

2

run 이외의 evolve 하위 명령

라우팅 규칙은 정확한 쌍 evolve run만 일치합니다. 다른 모든 것은 매니페스트로 전달되며, evolve를 한 단어 동작으로 정의하므로 두 번째 단어는 예상치 못한 인수입니다.

2

run 이외의 analyze 하위 명령

동일한 규칙; analyze도 한 단어 매니페스트 작업입니다.

2

예를 들면:

Text
$ alti eda inspect --format lef --input floorplan.lef
Unknown command: eda inspect. Try `alti help`.

$ alti evolve capabilities
Unexpected argument(s): capabilities

Both exit 2. Do not plan work around alti eda, alti reports, alti evolve capabilities, alti evolve analyze, alti evolve cx-search, alti evolve measured-ppa, or alti evolve artifact in this release. The only reachable evolve command is evolve run.

여기에 존재하지 않는 두 가지 이름:

  • alti ide init is not defined. The ide namespace has exactly one subcommand, ide open. alti ide init exits 2 with error: unrecognized subcommand 'init'. There is no CLI project-scaffolding command in this release.

  • alti login, alti logout, and alti whoami are declared in the local parser with --profile and --no-browser options, but the router never sends them there. They reach the manifest dispatcher, which answers them directly, so those options are accepted and ignored. alti login --profile staging behaves exactly like alti login.

글로벌 플래그#

--json는 로컬 파서의 전역 플래그입니다. 네임스페이스 앞이나 하위 명령 뒤에 나타날 수 있으므로 alti --json labs statusalti labs status --json는 동일합니다. 로컬 경로에서 영수증 봉투에 설명 된 구조화된 영수증 봉투를 선택합니다.

라우팅 규칙은품질 관리--json만 제거합니다. 2단어 양식의 중간에 배치하면 일치가 깨집니다. alti evolve --json run --request req.json는 매니페스트 디스패처로 넘어와 2를 종료하고 alti --json evolve run --request req.jsonalti evolve run --request req.json --json는 모두 작동합니다.

매니페스트 디스패처는 긴 플래그만 인식합니다. alti -h를 명령 이름으로 읽습니다.

Text
$ alti -h
Unknown command: -h. Try `alti help`.

alti --help를 사용합니다. 로컬 파서 -h에서 정상적으로 작동합니다. 로컬 파싱된 모든 하위 명령은 전체 파서를 통과하기 때문입니다. alti rtl synth -h는 하위 명령의 도움말을 인쇄하고 0를 종료합니다.

로컬에서 파싱된 모든 하위 명령은 --json-h/--help를 허용합니다. 컴패니언 페이지는 행당 반복하지 않습니다.

메타 및 계정 명령#

이들은 명백한 dispatcher에 의해 취급됩니다.

명령

용도

종료

alti, alti help, alti --help

손으로 쓴 명령 요약 인쇄

0

alti commands

포함된 작업 매니페스트를 25개 항목의 JSON 배열로 인쇄

0

alti version, alti --version

인쇄 alti <version>

0

alti auth status

확인되지 않은 환경 자격 증명 상태를 JSON로 보고

0

alti login

AUTH_FLOW_UNAVAILABLE로 거부

4

alti whoami

IDENTITY_NOT_VERIFIED로 거부

4

alti logout

저장된 자격 증명이 제거되지 않았다는 보고

0

alti mcp serve

메인 바이너리에서 stdio MCP 서버 시작

0 또는 1

alti auth status reads the environment only. Its JSON object carries apiOrigin, authenticated, configurationError, credentialSource, credentialState, identity, nativePkce, orgIdHint, principalKind, serverVerification, and tokenPresent. With no credentials set, credentialState is missing, tokenPresent is false, nativePkce is unavailable, and serverVerification is not_performed. It never contacts a server and never prints the token.

alti loginalti whoami는 추측이 아닌 폐쇄 실패합니다. stderr에 인쇄하고 4를 종료합니다.

Text
AUTH_FLOW_UNAVAILABLE: native PKCE/keychain login is not enabled for this release.
Use `alti auth status` to inspect environment configuration.

alti mcp serve는 정확한 두 인수와 일치하며 ALTI_TOKENALTI_ORG_ID가 필요합니다. 둘 다 alti mcp fatal: ALTI_TOKEN is not set (org API key or access token).를 인쇄하고 1를 종료하지 않습니다. 프로토콜 표면 및 클라이언트 설정은 MCP를 참조하십시오.

종료 코드#

이 CLI 스크립트를 작성하려면 읽고 있는 두 코드 세트 중 어느 것이 값과 겹치는지 알고 있어야 합니다. 코드는 값이 겹치지만 의미에는 겹치지 않으며, 어느 세트가 적용되느냐는 명령을 처리하는 파서에 따라 다릅니다.

매니페스트 디스패처#

코드

의미

0

성공. 또한 help, version, commands, auth statuslogout

1

레지스트리 오류, 자격 증명 구성 오류, 전송 오류 또는 출력 직렬화 오류

2

알 수 없는 명령, 알 수 없는 후행 경로 단어, 알 수 없는 옵션, 계약 외 값 또는 누락된 필수 옵션

3

일치하는 동작은 외부 고객이 호출할 수 없습니다(CLASS_NOT_ALLOWED)

4

정책에 의해 거부: login, whoami, 또는 --allow-source-upload 없이 호출 하는 소스 베어링 작업

코드 2는 자격 증명이 해결되기 전에 그리고 네트워크 클라이언트가 구성되기 전에 배출됩니다. 코드 34도 사전 네트워크입니다. 코드 1는 요청이 시도되었다는 것을 의미할 수 있는 유일한 것입니다.

로컬 파서#

코드

의미

0

--help--version를 포함한 성공

1

인수 오류가 아닌 CLI 수준 오류(예: 거부된 러너 선택 또는 거부된 레거시 패스스루)

2

모든 것이 시작되기 전에 인수 구문 분석 또는 검증 실패

엔진 코드

패키지 엔진을 실행하는 명령의 경우 엔진 자체의 종료 상태는 변경되지 않습니다.

The pass-through is literal. alti rtl compile with no arguments after -- starts alti-rtlc, which reports its own missing-file error and exits 2; the 2 you see is the engine’s, not the CLI’s.

엔진 실행 코드#

CLI가 패키지 엔진을 실행하면 엔진이 아닌 실행 시도에서 세 가지 코드가 생성됩니다.

코드

의미

2

실행 전에 인수 입력에 실패함 — --project가 비어 있거나 해결할 수 없음, -- 이후 필수 작업이 누락되었거나 1..=16384 바이트 외부에 stdin 입력됨

126

올바른 이름을 가진 형제가 존재하지만 심볼릭 링크이거나 일반 파일이 아니거나 실행 가능하지 않습니다. 또는 프로세스가 “찾을 수 없음”이 아닌 다른 이유로 시작할 수 없습니다.

127

alti 옆에서 엔진을 찾을 수 없으며 PATH에서 찾을 수 없습니다. status: "unavailable" 영수증 보고서

형제가 존재하지만 사용할 수 없는 것은 PATH로 되돌아갈 이유가 아니라 오류입니다. 이는 의도적인 것입니다. 부분적으로 추출된 아카이브는 다른 빌드를 자동으로 실행하는 대신 큰 소리로 실패합니다.

작업 전송 코드#

--runner local 또는 --runner private가있는 job 하위 명령은 패키지 alti-engine-job 실행 파일을 실행하고 동일한 2 / 126 / 127 패턴과 자녀 자신의 상태를 따릅니다. 누락 된 엔드포인트 변수는 2입니다.

Text
$ 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

거부된 러너 범위 옵션 그룹도 2입니다. --runner cloud가 포함된 job 하위 명령은 대신 HTTP 클라이언트를 사용하고 1가 실패합니다.

tcl 코드 평가#

alti tcl evaluate는 전용 결과 스키마를 가진 하나의 명령이기 때문에 자체 세트가 있습니다.

코드

실패 코드

원인

0

평가 완료

2

TCL_INPUT_IO, TCL_INPUT_EMPTY, TCL_INPUT_TOO_LARGE

stdin 읽을 수 없거나, 비어 있거나, 4194304 바이트 이상

1

TCL_WORKSPACE_UNAVAILABLE, TCL_ENGINE_RESULT_TOO_LARGE

개인 평가 작업 공간을 만들 수 없거나 러너의 출력이 제한 범위를 초과했습니다.

127

TCL_INSTALLED_RUNNER_UNAVAILABLE

alti-tcl-local-runneralti의 형제로 존재하지 않습니다.

126

TCL_INSTALLED_RUNNER_UNTRUSTED

형제가 릴리스 인증에 실패했습니다

ide open 종료 코드#

alti ide open는 데스크탑 프로세스가 생성되었을 때 0를 종료하고 그렇지 않으면 1를 종료합니다. 영수증은 이유를 구별합니다. statusspawned, unavailable 또는 failed입니다.

실행 위치#

기본값은 로컬입니다. 로컬 파서의 어떤 것도 요청하지 않는 한 네트워크 서비스에 연락하지 않습니다.

–runner를 사용하는 하위 명령#

정확히 12 개의 하위 명령이 --runner를 수락하며 가족에 따라 두 가지 다른 것을 의미합니다. 다른 모든 로컬 구문 분석 된 하위 명령은 무조건적으로 컴퓨터에서 실행되며 --runner 플래그가 전혀 없습니다.

가족

하위 명령

기본

엔진 호환성 경로

rtl compile, rtl synthesize, physical run, px analyze, isa run

local

local, cloud, private

회사 소개

job submit, job status, job wait, job result, job cancel, job artifacts, analyze run

cloud

local, cloud, private

엔진 호환성 경로에서 --runner는 패키지 엔진을 실행하는 것과 디스패치 계획을 인쇄하는 것 사이에서 선택합니다.

  • local(기본값)는 패키지 엔진을 형제 프로세스로 시작합니다.

  • cloudprivate는 아무 것도 접촉하지 않습니다. 그들은 고정 된 파견 계획을 인쇄하고 0를 종료합니다. json { "status": "scaffold", "domain": "rtl", "operation": "compile", "runner": "cloud", "project": "demo", "next": "encode the shared engine job contract and connect a runner adapter" } Combining a non-local runner with passthrough arguments after -- is rejected: passthrough 엔진 인수는 --runner local, exit 1에서만 사용할 수 있습니다.

직업 수송제품군에서 --runner는 클라이언트가 어떤 Job Service와 대화할지 선택합니다.

  • cloud(기본값)는 내장 HTTP 클라이언트를 사용하며 ALTI_TOKENALTI_ORG_ID가 필요합니다.

  • local and private run the packaged alti-engine-job executable against the URL in ALTIFIGENCE_LOCAL_ENGINE_JOB_URL or ALTIFIGENCE_PRIVATE_ENGINE_JOB_URL. The local URL must be http or https on localhost or a loopback address; the private URL must be https with a host. Neither may embed a username or password.

  • analyze run는 플래그를 수락하지만 cloud: Local and Private job service adapters are not available; use --runner cloud.를 제외한 모든 것을 거부하고 1를 종료합니다.

로컬 엔진 탐색 방식#

이 아카이브는 alti 옆에 19개의 엔진 실행 파일을 제공하고 CLI는 이를 형제로 실행합니다. 해상도는 정확히 두 단계로 나 ⁇ 니다.

  1. 실행 중인 alti 실행 파일과 동일한 디렉터리에서 <engine-name>를 찾습니다. 정규, 심볼릭이 아닌 실행 파일이 있으면 사용하십시오. 영수증은 resolution: "sibling"를 보고합니다.

  2. 그렇지 않으면 운영 체제가 PATH를 통해 해결하는 베어 이름으로 돌아갑니다. 영수증은 resolution: "path"를보고합니다.

형제가 항상 승리합니다. 추출된 디렉토리에서 alti를 복사하면 모든 엔진이 PATH를 통해 해결되고 다른 빌드에 도달할 수 있습니다. 결과가 놀라면 영수증에서 resolutionexecutable를 확인하십시오.

두 개의 명령이 PATH 폴백을 완전히 거부하고 서명된 설치 레이아웃을 추가로 요구하므로 추출된 평면 아카이브에서 성공할 수 없습니다.

  • alti capabilitiesPREFIX/bin/alti와 영수증 백업 릴리스 페이로드를 먼저 해결합니다. 다른 레이아웃에서 error: installed alti binary is not below PREFIX/bin를 인쇄하고 1를 종료합니다.

  • alti tcl evaluatealti-tcl-local-runner를 엄격한 형제로 요구하고 설치된 신뢰 체인에 대해 확인합니다.

엔진의 작업 디렉토리는 하나를 전달할 때 해결 된 --project 디렉토리이며 그렇지 않은 경우 현재 디렉토리입니다.

네임스페이스별 실행 엔진#

네임스페이스 또는 명령

엔진 바이너리

CLI 아카이브와 함께 배송

rtl compile

alti-rtlc

rtl schematic

alti-rtlc

rtl (분석, 신디사이저, 맵, 시뮬레이션, 시뮬레이션-v2, 유물, 합성)

alti-rtl

rtl target-analysis

alti-rtl

rtl *-committed-identities

alti-rtl-runner

아니오입니다

sv frontend, sv library, sv uvm

alti-sv-frontend

sv review immediate

alti-sv-immediate-review

sv review interprocess

alti-sv-interprocess-review

verification golden-diff

alti-golden-diff

trace

alti-trace

labs

alti-lab

tcl 디스크립터

alti-tcl

tcl evaluate

alti-tcl-local-runner

예, 형제 전용 및 트러스트 체크

eidb

alti-eidb-local-runner

physical

alti-physical-runner

px

alti-px-runner

isa

alti-cx

evolve run

alti-evolve

--runner local 또는 private를 가진 job

alti-engine-job

ide open

altifigence-ide

없음 — IDE 제품으로 배송

The nineteen engines the release builds are alti-rtlc, alti-rtl, alti-cx, alti-physical-runner, alti-px-runner, alti-evolve, alti-rtl-analyze, alti-sv-frontend, alti-sv-immediate-review, alti-sv-interprocess-review, alti-golden-diff, alti-trace, alti-tcl, alti-tcl-local-runner, alti-eidb-local-runner, alti-eda-artifact-inspect, alti-reports, alti-engine-job, and alti-lab. With alti and alti-mcp that is the twenty-one executables the archive contains.

위의 표에 대해 그 목록을 읽고 세 가지 불일치가 발생합니다. 그들은 분명히 말할 가치가 있습니다.

  • alti-rtl-runner is not in it. The eight rtl *-committed-identities list and read leaves name it, so they can be resolved neither as a sibling nor on PATH from a correct installation. Invoking one produces a receipt with status: "unavailable" and exit 127.

  • alti-eda-artifact-inspect and alti-reports ship but have no reachable command, because eda and reports are not routed to the local parser.

  • alti-rtl-analyze ships but has no reachable command, because the only subcommand that names it is evolve analyze, and evolve reaches the local parser only as evolve run.

아카이브의 바이너리는 --help의 이름보다 더 이상 기능이 없습니다.

영수증 봉투#

세 개의 봉투 스키마가 있습니다. --json를 사용하면 stdout이 정확히 하나의 JSON 객체를 전달하고 stderr가 비어 있습니다. 사람이 읽을 수 있는 줄이 아닌 봉투를 파싱합니다.

altifigence.local-engine-execution.v1#

패키지 엔진을 실행하는 모든 로컬 파싱된 하위 명령에 의해 방출됩니다.

필드

의미

schema

항상 altifigence.local-engine-execution.v1

status

completed, failed 또는 unavailable입니다.

domain

네임스페이스, 예를 들어 rtl

operation

CLI 작업(예: artifact-list)

runner

항상 local

binary

CLI가 요청한 엔진 실행 파일 이름

engineOperation

해당 엔진에 전달된 작업 이름

resolution

sibling, path 또는 unresolved입니다.

executable

해결된 경로 또는 해결되지 않은 맨 이름

project

--project 값 또는 null

exitCode

엔진의 출구 상태

stdout

엔진의 stdout, 문자열로

stderr

엔진의 stderr, 문자열로

--json가 없으면 엔진 자체의 stdout이 변경되지 않고 하나의 영수증이 stderr로 전달됩니다.

Text
[completed] rtl.artifact-list runner=local engine=alti-rtl/artifact executable=alti-rtl resolution=path exit=0 project=.

status: "completed"는 엔진이 시작되고 반환되었음을 의미합니다. 엔진이 요청한 것을 생성 한 것은 아닙니다.

altifigence.engine-job-adapter-receipt.v1#

Emitted by job subcommands with --runner local or --runner private. It carries schema, status, operation, runner, binary, resolution, executable, exitCode, stdout, and stderr. It has no domain, engineOperation, or project. The gateway secret is redacted out of both captured streams before the receipt is written.

altifigence.cli.tcl-evaluation.v1#

Emitted only by alti tcl evaluate. It carries schema, status, inputBytes, inputSha256, jobSha256, resultArtifactId, resultArtifactSha256, result, resultBytes, provenance, and failure. On an unqualified layout:

JSON
{
  "schema": "altifigence.cli.tcl-evaluation.v1",
  "status": "unavailable",
  "inputBytes": 8,
  "inputSha256": "5b4b60861398e1a5082bfe6140588185afdd406a148fdf94def6614b581c8584",
  "jobSha256": "504dd4a043d34c4be84108be0e8cde4d7c68be47d7436b2c03a325f916a72a44",
  "resultArtifactId": null,
  "resultArtifactSha256": null,
  "result": null,
  "resultBytes": null,
  "provenance": null,
  "failure": {
    "code": "TCL_INSTALLED_RUNNER_UNAVAILABLE",
    "message": "The installed qualified Tcl runner is unavailable.",
    "retryable": false
  }
}

alti job readiness and alti job validate have their own schemas; see CLI job and cloud commands.

환경 변수#

이것들은 주어진 바이너리가 이름으로 읽는 유일한 변수입니다. 이 변수는 설정 파일을 읽지 않으며 --config 플래그가 없습니다.

변수

다음으로 읽기

필수

의미

ALTI_TOKEN

--runner cloud를 사용한 매니페스트 작업, mcp serve, jobanalyze run; 보고되었지만 auth status가 요구하지 않음

예, auth status 제외

Org API 키 또는 액세스 토큰. Trimmed; 비어있는 것은 세트 해제로 처리됩니다. Bearer 접두사가 존재하는 경우 보존되고 그렇지 않은 경우 추가됩니다.

ALTI_ORG_ID

위와 같음

예, auth status 제외

조직 id. 트림됨; 비어 있음

ALTI_API_BASE

위와 같음

아니오

API 원점. 기본값은 https://api.altifigence.com

ALTI_BYO

위와 같음

아니오

값이 1, true 또는 yes일 때 대소문자를 구분하지 않고 Bring Your Own Principal을 선택합니다.

ALTI_ALLOW_SOURCE_UPLOAD

alti-mcp 또는 alti mcp serve로 시작 여부에 관계없이 stdio MCP 서버

아니오

값이 1, true 또는 yes일 때 소스 베어링 MCP 작업을 허용합니다. 기본값은 deny입니다.

ALTIFIGENCE_LOCAL_ENGINE_JOB_URL

--runner local를 가진 job

예, 그 길을 위해

작업 서비스 URL. http 또는 https이어야 하며 localhost 또는 루프백 주소로 해결해야 합니다.

ALTIFIGENCE_PRIVATE_ENGINE_JOB_URL

--runner private를 가진 job

예, 그 길을 위해

작업 서비스 URL. 호스트가있는 https 여야합니다.

ALTIF_ENGINE_JOB_ORG_ID

--runner local 또는 private를 가진 job

예, 그 경로에 대한

alti-engine-job 프로세스에 전달된 조직 ID

ALTIF_ENGINE_JOB_GATEWAY_SECRET

위와 같음

예, 그 경로에 대한

alti-engine-job 프로세스에 전달되는 게이트웨이 비밀

ALTIF_ENGINE_JOB_ENDPOINTalti다음으로에 의해 위의 URL 변수에서 alti-engine-job 자식 프로세스로 설정됩니다. 직접 설정하지 마십시오.

이러한 변수들 중 어느 것도 sv frontend index 또는 trace inspect와 같은 로컬로 파싱된 엔진 명령에 영향을 주지 않습니다. 이들은 자격 증명 없이 실행됩니다. 자격 증명이 범위화되고 인증되지 않는 방법은 CLI 인증를 참조하십시오.

이 페이지에서 다루지 않는 내용#

설계상 이 참조는 인터페이스에서 중지됩니다. 이 참조는 엔진이 결과를 계산하는 방법, 즉 회로도 표현, 분석 또는 지붕선 그림이 파생되는 방법, 검색 진행 방법 또는 확인 참조가 구성되는 방법을 설명하지 않습니다. 이는 내부적이며 게시되지 않습니다.

영수증을 읽을 때 경계는 주목할 가치가 있습니다. CLI는 엔진이 시작되고 실행 가능하며 무엇이 반환되었는지를 알려줍니다. 출력을 정규화 된 엔지니어링 결과로 만들 수 없습니다. 이 릴리스에서 자격을 갖춘 CLI 명령 참조를 참조하십시오.