CLI 작업 및 Cloud 명령어#
작업 네임스페이스, 실행 및 진화 실행 분석, 그리고 플래그, 값 열거형 및 거부 코드가 포함된 임베디드 매니페스트의 모든 작업.
한국어 번역 검토 중 기술적 의미가 충돌하는 경우 영어 원문을 기준으로 사용하세요.
개요#
이 페이지에서는 패키지된 로컬 엔진이 아닌 다른 것을 처리할 수 있는 두 개의 명령 패밀리인 job 네임스페이스와 두 개의 별칭, 그리고 임베디드 작업 매니페스트의 25개의 작업을 다룹니다.
CLI 명령 표면를 먼저 읽으면 라우팅 규칙, 두 개의 종료 코드 세트 및 영수증 봉투가 표시됩니다. 로컬로 파싱된 엔진 네임스페이스의 경우 CLI 엔진 명령를 참조하십시오. 이 릴리스의 자격은 CLI 명령 참조를 참조하고 매니페스트를 읽는 방법은 활동 및 능력 계약를 참조하십시오.
job 네임스페이스#
job는 오프라인 클라이언트 사전 비행과 Job Service에 대한 작업 전송을 다룹니다. 로컬 파서에서 처리되므로 -h가 작동하고 모든 것이 연결되기 전에 값 범위를 확인합니다.
8개의 하위 명령 중 6개는 --runner <local|cloud|private>이며, 기본값은 cloud입니다. 이 플래그는**어떤 Job Service와 대화해야 하는가?**를 선택합니다. rtl compile 및 친구에 대한 엔진 러너 플래그가 아닙니다. job readiness 및 job validate에는 --runner가 전혀 없으며 네트워크를 터치하지 않습니다.
명령 |
필수 |
다른 옵션 |
용도 |
|---|---|---|---|
|
— |
— |
무경로 제품 보고 |
|
— |
|
선택한 Job Service를 통해 하나의 EngineJobV1 문서 제출 |
|
|
|
클라이언트 프리 플라이트 하나 CPU RTL 작업 및 로컬 소스 파일 경계 오프라인 |
|
|
|
한 작업의 현재 상태 읽기 |
|
|
|
작업이 터미널 권한 상태에 도달할 때까지 투표 |
|
|
|
하나의 작업에 대한 터미널 결과 읽기 |
|
|
|
한 작업 취소 요청 |
|
|
|
바이트를 다운로드하지 않고 결과 아티팩트 참조 목록 |
<JOB_ID> 및 --artifact-id는 -- 구분자를 사용하지 않고 하이픈으로 시작할 수 있습니다.
job wait에 대한 두 가지 범위 검사 옵션은 서비스가 아닌 파서에 의해 시행됩니다.
$ alti job wait --poll-interval-ms 99 job-123
error: invalid value '99' for '--poll-interval-ms <POLL_INTERVAL_MS>': 99 is not in 100..=60000
2를 종료합니다.
작업 준비#
job readiness는 자격 증명이나 네트워크없이 응답합니다. 이 릴리스에서는 고정 된 경로가없는 프로젝션입니다. 모든 구성 요소는 configured: false 및 ready: false를보고하고 blockers 배열이 완료됩니다.
{
"schema": "altifigence.engine-product-host-readiness.v1",
"product_id": "altifigence-cli",
"authority": { "configured": false, "ready": false },
"admission": { "configured": false, "ready": false },
"dispatcher": { "configured": false, "ready": false },
"executor": { "configured": false, "ready": false },
"artifact_readback": { "configured": false, "ready": false },
"ready": false,
"blockers": [
"authority_unavailable",
"admission_unavailable",
"dispatcher_unavailable",
"executor_unavailable",
"artifact_readback_unavailable"
]
}
0를 종료합니다. 여기서 0는 준비가 완료되었음을 의미하며 모든 준비가 완료되었음을 의미하지는 않습니다.
작업 유효성#
job validate는 CLI 첫 번째 성공에서 단계적으로 문서화 된 오프라인 프리 플라이트 문서입니다. --job에서 EngineJobV1 문서를 읽습니다 (또는 --job가 -이거나 생략 된 경우 stdin), 정확한 클라우드 CPU RTL 클라이언트 봉투에 대해 검사하고 클라이언트 봉투를 생성하지 않고 로컬 소스를 해결합니다.
Its receipt schema is altifigence.cli.engine-job-preflight.v1. On success status is client_preflight_valid, submitted is false, server_authority_verified is false, job_schema is altifigence.engine.job.v1, execution_placement is cloud, the operation block is rtl-engine / analyze / rtl-analysis-request.v1, and the source block carries workspace_uri, sha256, and size_bytes.
작업 문서는 8388608 바이트의 하드 바운드로 읽습니다. 위의 명령은 EngineJobV1 JSON exceeds the CLI limit.로 실패합니다.
클라우드 제출 시 명시적인 소스 옵트인 필요#
--runner cloud를 사용하면 job submit와 analyze run 모두 세 가지 소스 업로드 옵션이 함께 필요합니다. 이 릴리스에서 클라우드 CPU RTL 작업을 제출하는 방법은 없습니다.
$ alti job submit --job job.json
error: Cloud Engine Job source upload is disabled; pass --allow-source-upload explicitly.
1를 종료합니다. --allow-source-upload를 사용하지만 --workspace-root를 사용하지 않으면 메시지가 --workspace-root is required with --allow-source-upload.이며 --source도 마찬가지입니다.
--workspace-root는 절대값이어야 합니다. --source는 <workspace-root>/inputs 아래의 휴대용 상대 경로입니다.
클라우드 아티팩트 다운로드에는 자체 옵트인이 필요합니다.#
--runner cloud를 사용하는 job result에서 세 가지 아티팩트 옵션은 그룹입니다. 이들 중 하나를 전달하면 명령을 다운로드 모드로 전환 한 다음 세 가지 모두 필요합니다.
--allow-artifact-download없이:Cloud Engine Job artifact download is disabled; pass --allow-artifact-download explicitly.--artifact-id없이:--artifact-id is required with --allow-artifact-download.--output-dir없이:--output-dir is required with --allow-artifact-download.
--output-dir는 절대 디렉터리여야 합니다. --artifact-id는 터미널 EngineResultV1의 출력 목록에서 가져옵니다.
러너 스코프 거부#
세 가지 옵션 그룹이 러너에 범위가 지정되고 외부에서 거부됩니다. 이들 각각은 프로세스가 시작되거나 요청이 이루어지기 전에 결정됩니다.
명령 |
거절된 조합 |
메시지 |
종료 |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
아래 참조 |
|
--runner local 또는 --runner private를 사용하면 하위 명령이 패키지화된 alti-engine-job 실행 파일을 실행하고 CLI 명령 표면에 나열된 엔드포인트 환경 변수를 필요로 합니다.
$ 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
--json의 경우 resolution: "unresolved" 및 exitCode: 2가 있는 altifigence.engine-job-adapter-receipt.v1 객체도 동일한 실패입니다.
URL는 자식 프로세스가 시작되기 전에 유효성이 검사됩니다. 로컬 URL는 http 또는 https 또는 루프백 호스트와 함께 localhost여야 합니다. 개인 URL는 호스트와 함께 https여야 합니다. 사용자 이름이나 암호는 둘 다 사용할 수 없습니다.
기계 판독 가능한 작업 오류#
job subcommands and analyze run invoked with --json emit a structured error envelope on failure instead of a bare message:
{
"schema": "altifigence.cli.error.v1",
"error": {
"code": "ENGINE_JOB_JSON_INVALID",
"message": "The engine job JSON is invalid.",
"retryable": false
}
}
전체 코드 세트는 다음과 같습니다.
코드 |
올랐을때 |
|---|---|
|
문서는 8388608 바이트를 초과합니다. |
|
문서가 유효하지 않습니다 JSON |
|
|
|
실행 위치는 |
|
작업 ID가 비어 있습니다 |
|
작업 ID가 256바이트 이상이거나 지원되지 않는 문자를 사용합니다. |
|
아티팩트 ID가 비어 있습니다 |
|
조직 ID가 비어 있습니다 |
|
이 문서는 지원되는 CPU RTL 작업 모양이 아닙니다. |
|
소스 준비 또는 업로드 실패 |
|
아티팩트 다운로드 실패 |
|
대기 시간 초과 또는 폴링 간격을 사용할 수 없음 |
|
대기 시간 초과 전에 터미널 상태 없음 |
|
서비스 응답을 읽을 수 없음 |
|
응답 작업 ID가 요청과 일치하지 않습니다. |
|
요청 자체가 실패함 |
|
특정 코드가 적용되지 않을 때의 폴백 |
retryable는 이번 릴리스의 모든 제품에서 false입니다. 이 봉투는 job 네임스페이스와 analyze run에만 방출됩니다. 다른 로컬 파싱된 명령은 일반 error: 라인을 인쇄합니다.
analyze run 및 evolve run#
이들은 로컬 파서에 도달하는 유일한 두 단어 형태입니다. analyze 또는 evolve가 매니페스트 디스패처로 넘어 가서 2를 종료 한 후 다른 단어.
명령 |
필수 |
다른 옵션 |
용도 |
|---|---|---|---|
|
|
|
지원되는 클라우드 CPU RTL 분석 작업 제출 |
|
|
— |
JSON 파일 또는 stdin에서 입력된 |
analyze run는 job submit와 동일한 옵션을 설정하고 동일한 클라우드 소스 업로드 규칙을 따릅니다. --runner를 수락하지만 cloud를 제외한 모든 것을 거부합니다.
$ alti analyze run --runner local --job job.json
error: Local and Private job service adapters are not available; use --runner cloud.
1를 종료합니다.
evolve run에는 --runner, --project 및 패스 스루가 없습니다. 하나의 요청 문서 --request -가 stdin을 읽고 패키지 alti-evolve 엔진으로 발송합니다.
$ echo '' | alti evolve run --request -
alti-evolve: invalid request JSON: EOF while parsing a value at line 1 column 0
That 2 is alti-evolve’s own exit status passing through, not a CLI argument error. On an installation where the engine cannot be resolved the same command exits 127 with a receipt whose status is unavailable.
이진에 정의된 다른 evolve 하위 명령인 capabilities, analyze, cx-search, measured-ppa 및 artifact는 이 릴리스에서 액세스할 수 없습니다. CLI 명령 표면를 참조하십시오.
액션 매니페스트#
로컬 파서가 주장하지 않는 모든 것은 매니페스트 디스패처로 전달되며, 이는 내장된 customer-tools.v1.json에 대한 명령 경로와 일치합니다. alti commands는 25개의 항목으로 구성된 하나의 JSON 배열로 매니페스트 전체를 인쇄하고 자격 증명 없이 0를 종료합니다.
22개의 항목은 executes: true로 표시되어 있습니다. 3개 — analyze, evolve 및 verify —는 executes: false이며 발송 전에 [plan-only] 노트를 인쇄합니다. 이 3개만이 소스 바이트를 운반하는 유일한 항목이며 --allow-source-upload 뒤에 게이트가 있습니다.
25명 중 14명도 remote_core 프로파일을 가지고 있습니다. 나머지는 local_extended에만 해당됩니다. 해당 프로파일이 의미하는 바는 활동 및 능력 계약에서 다룹니다.
아래의 모든 동작은 클라이언트를 구성하기 전에 프로세스 환경에서 ALTI_TOKEN 및 ALTI_ORG_ID를 읽고, 다음 중 하나가 누락된 경우 1 종료와 함께 실패합니다.
$ alti credits
Config error: ALTI_TOKEN is not set (org API key or access token).
목록 작업에 공통적인 옵션#
1..=100 범위의 --limit <INTEGER> 및 --cursor <STRING>: 몇 가지 작업이 페이징 모양을 공유합니다. 둘 다 요청 전에 로컬에서 검증됩니다.
$ alti project ls --limit 101
Invalid value for --limit: outside allowed range.
즉, 알 수없는 플래그 (Unknown option(s): --limti), 누락 된 필수 옵션 (Missing required option(s): --projectId) 및 범위 초과 값 (Invalid value for --visibility: expected one of public, private.)과 마찬가지로 2를 종료합니다.
작업 공간 및 프로젝트#
명령 |
필수 |
다른 옵션 |
|---|---|---|
|
— |
|
|
|
— |
|
|
|
|
— |
|
|
|
— |
|
|
|
|
|
— |
대화식 RTL#
명령 |
필수 |
다른 옵션 |
|---|---|---|
|
— |
— |
|
|
|
|
— |
|
|
|
— |
chat models는 chat 이전에 일치합니다. 디스패처가 가장 긴 일치 명령 경로를 선호하기 때문입니다. alti chat는 신용 게이트 및 감사 로그 서버 측입니다.
견적 및 Plan-only 작업#
명령 |
필수 |
다른 옵션 |
실행 |
|---|---|---|---|
|
|
|
yes |
|
|
|
플랜-only |
|
|
|
플랜-only |
|
|
|
플랜-only |
--rtl 및 --testbench는 각각 1048576 바이트의 하드 제한을 가진 인라인 소스 문자열이며 로컬에서 검사합니다.
$ alti analyze --target kv260-fpga --rtl "$(cat huge.sv)" --allow-source-upload
Invalid value for --rtl: exceeds size limit.
2를 종료합니다. --allow-source-upload가 없으면 클라이언트가 구성되기 전에 4를 종료합니다.
Source upload is disabled by default. Re-run with --allow-source-upload only
after reviewing the destination and input.
이 세 가지는 executes: false이므로 옵트인 상태에서도 stderr에 [plan-only] 노트를 인쇄하고 서버는 실행이 아닌 구조화된 디스패치 계획을 반환합니다.
아티팩트, 증거, 러너 및 결제#
명령 |
필수 |
다른 옵션 |
|---|---|---|
|
— |
|
|
|
— |
|
— |
|
|
— |
|
|
— |
— |
|
— |
|
|
— |
|
MCP 레지스트리#
명령 |
필수 |
|---|---|
|
— |
|
— |
이것들은 서버 광고 MCP 도구 레지스트리와 per-org allowlist를 읽습니다. 그것들은 alti mcp serve와 관련이 없으며, 디스패처 전에 인터셉트되고 로컬 stdio 서버를 시작합니다. MCP를 참조하십시오.
하나의 매니페스트 동작에 연결할 수 없음#
The manifest defines a one-word trace action for trace summaries. It cannot be invoked, because trace is claimed by the local parser as an engine namespace. alti trace reaches the local parser, finds no subcommand, and exits 2; alti trace --limit 5 reaches it too and exits 2 on an unknown argument.
이 동작은 alti commands 출력에 여전히 존재합니다. 이 때문에 도달할 수 있는 명령 수는 24이지만 25입니다. 매니페스트를 프로그래밍 방식으로 열거하면 이 값을 필터링합니다.