CLI 작업 및 Cloud 명령어#

작업 네임스페이스, 실행 및 진화 실행 분석, 그리고 플래그, 값 열거형 및 거부 코드가 포함된 임베디드 매니페스트의 모든 작업.

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

개요#

이 페이지에서는 패키지된 로컬 엔진이 아닌 다른 것을 처리할 수 있는 두 개의 명령 패밀리인 job 네임스페이스와 두 개의 별칭, 그리고 임베디드 작업 매니페스트의 25개의 작업을 다룹니다.

CLI 명령 표면를 먼저 읽으면 라우팅 규칙, 두 개의 종료 코드 세트 및 영수증 봉투가 표시됩니다. 로컬로 파싱된 엔진 네임스페이스의 경우 CLI 엔진 명령를 참조하십시오. 이 릴리스의 자격은 CLI 명령 참조를 참조하고 매니페스트를 읽는 방법은 활동 및 능력 계약를 참조하십시오.

job 네임스페이스#

job는 오프라인 클라이언트 사전 비행과 Job Service에 대한 작업 전송을 다룹니다. 로컬 파서에서 처리되므로 -h가 작동하고 모든 것이 연결되기 전에 값 범위를 확인합니다.

8개의 하위 명령 중 6개는 --runner <local|cloud|private>이며, 기본값은 cloud입니다. 이 플래그는**어떤 Job Service와 대화해야 하는가?**를 선택합니다. rtl compile 및 친구에 대한 엔진 러너 플래그가 아닙니다. job readinessjob validate에는 --runner가 전혀 없으며 네트워크를 터치하지 않습니다.

명령

필수

다른 옵션

용도

job readiness

무경로 제품 보고

job submit

--runner (default cloud), --job <JOB> (default -), --allow-source-upload, --workspace-root <ABSOLUTE_PATH>, --source <RELATIVE_PATH>

선택한 Job Service를 통해 하나의 EngineJobV1 문서 제출

job validate

--workspace-root <ABSOLUTE_PATH>, --source <RELATIVE_PATH>

--job <JOB> (기본값 -)

클라이언트 프리 플라이트 하나 CPU RTL 작업 및 로컬 소스 파일 경계 오프라인

job status <JOB_ID>

<JOB_ID>

--runner (기본값 cloud)

한 작업의 현재 상태 읽기

job wait <JOB_ID>

<JOB_ID>

--runner, --timeout-seconds <N> (과태 300의 범위 1..=86400), --poll-interval-ms <N> (과태 1000의 범위 100..=60000)

작업이 터미널 권한 상태에 도달할 때까지 투표

job result <JOB_ID>

<JOB_ID>

--runner, --allow-artifact-download, --artifact-id <ARTIFACT_ID>, --output-dir <ABSOLUTE_PATH>

하나의 작업에 대한 터미널 결과 읽기

job cancel <JOB_ID>

<JOB_ID>

--runner

한 작업 취소 요청

job artifacts <JOB_ID>

<JOB_ID>

--runner

바이트를 다운로드하지 않고 결과 아티팩트 참조 목록

<JOB_ID>--artifact-id-- 구분자를 사용하지 않고 하이픈으로 시작할 수 있습니다.

job wait에 대한 두 가지 범위 검사 옵션은 서비스가 아닌 파서에 의해 시행됩니다.

Text
$ 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: falseready: false를보고하고 blockers 배열이 완료됩니다.

JSON
{
  "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 validateCLI 첫 번째 성공에서 단계적으로 문서화 된 오프라인 프리 플라이트 문서입니다. --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 submitanalyze run 모두 세 가지 소스 업로드 옵션이 함께 필요합니다. 이 릴리스에서 클라우드 CPU RTL 작업을 제출하는 방법은 없습니다.

Text
$ 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의 출력 목록에서 가져옵니다.

러너 스코프 거부#

세 가지 옵션 그룹이 러너에 범위가 지정되고 외부에서 거부됩니다. 이들 각각은 프로세스가 시작되거나 요청이 이루어지기 전에 결정됩니다.

명령

거절된 조합

메시지

종료

job submit

--allow-source-upload, --workspace-root, --source의 무엇이든을 가진 --runner local 또는 private

Local and Private Engine Job submission accepts only --job; Cloud source-upload options are not supported.

2

job result

--allow-artifact-download, --artifact-id, --output-dir의 무엇이든을 가진 --runner local 또는 private

Local and Private Engine Job results are references-only; artifact download options are available only with --runner cloud.

2

job status, wait, cancel, artifacts, result

--runner cloud는 클라이언트가 내장 된 유일한 경로입니다. 다른 두 개는 패키지 어댑터와 환경이 필요합니다.

아래 참조

2

--runner local 또는 --runner private를 사용하면 하위 명령이 패키지화된 alti-engine-job 실행 파일을 실행하고 CLI 명령 표면에 나열된 엔드포인트 환경 변수를 필요로 합니다.

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

--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:

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

전체 코드 세트는 다음과 같습니다.

코드

올랐을때

ENGINE_JOB_JSON_TOO_LARGE

문서는 8388608 바이트를 초과합니다.

ENGINE_JOB_JSON_INVALID

문서가 유효하지 않습니다 JSON

ENGINE_JOB_SCHEMA_UNSUPPORTED

schemaaltifigence.engine.job.v1가 아닙니다.

ENGINE_JOB_PLACEMENT_UNSUPPORTED

실행 위치는 cloud가 아닙니다.

ENGINE_JOB_ID_EMPTY

작업 ID가 비어 있습니다

ENGINE_JOB_ID_INVALID

작업 ID가 256바이트 이상이거나 지원되지 않는 문자를 사용합니다.

ENGINE_JOB_ARTIFACT_ID_EMPTY

아티팩트 ID가 비어 있습니다

ENGINE_JOB_ORG_ID_EMPTY

조직 ID가 비어 있습니다

ENGINE_JOB_CPU_RTL_UNSUPPORTED

이 문서는 지원되는 CPU RTL 작업 모양이 아닙니다.

ENGINE_JOB_SOURCE_UPLOAD_FAILED

소스 준비 또는 업로드 실패

ENGINE_JOB_ARTIFACT_DOWNLOAD_FAILED

아티팩트 다운로드 실패

ENGINE_JOB_WAIT_CONFIGURATION_INVALID

대기 시간 초과 또는 폴링 간격을 사용할 수 없음

ENGINE_JOB_WAIT_TIMED_OUT

대기 시간 초과 전에 터미널 상태 없음

ENGINE_JOB_API_RESPONSE_INVALID

서비스 응답을 읽을 수 없음

ENGINE_JOB_API_RESPONSE_ID_MISMATCH

응답 작업 ID가 요청과 일치하지 않습니다.

ENGINE_JOB_API_REQUEST_FAILED

요청 자체가 실패함

ENGINE_JOB_COMMAND_FAILED

특정 코드가 적용되지 않을 때의 폴백

retryable는 이번 릴리스의 모든 제품에서 false입니다. 이 봉투는 job 네임스페이스와 analyze run에만 방출됩니다. 다른 로컬 파싱된 명령은 일반 error: 라인을 인쇄합니다.

analyze run 및 evolve run#

이들은 로컬 파서에 도달하는 유일한 두 단어 형태입니다. analyze 또는 evolve가 매니페스트 디스패처로 넘어 가서 2를 종료 한 후 다른 단어.

명령

필수

다른 옵션

용도

analyze run

--allow-source-upload, --workspace-root <ABSOLUTE_PATH>, --source <RELATIVE_PATH>

--runner (기본 cloud), --job <JOB> (기본 -)

지원되는 클라우드 CPU RTL 분석 작업 제출

evolve run

--request <PATH_OR_DASH>

JSON 파일 또는 stdin에서 입력된 rtl_ep_readiness 요청 하나를 실행

analyze runjob submit와 동일한 옵션을 설정하고 동일한 클라우드 소스 업로드 규칙을 따릅니다. --runner를 수락하지만 cloud를 제외한 모든 것을 거부합니다.

Text
$ 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 엔진으로 발송합니다.

Text
$ 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-ppaartifact는 이 릴리스에서 액세스할 수 없습니다. CLI 명령 표면를 참조하십시오.

액션 매니페스트#

로컬 파서가 주장하지 않는 모든 것은 매니페스트 디스패처로 전달되며, 이는 내장된 customer-tools.v1.json에 대한 명령 경로와 일치합니다. alti commands는 25개의 항목으로 구성된 하나의 JSON 배열로 매니페스트 전체를 인쇄하고 자격 증명 없이 0를 종료합니다.

22개의 항목은 executes: true로 표시되어 있습니다. 3개 — analyze, evolveverify —는 executes: false이며 발송 전에 [plan-only] 노트를 인쇄합니다. 이 3개만이 소스 바이트를 운반하는 유일한 항목이며 --allow-source-upload 뒤에 게이트가 있습니다.

25명 중 14명도 remote_core 프로파일을 가지고 있습니다. 나머지는 local_extended에만 해당됩니다. 해당 프로파일이 의미하는 바는 활동 및 능력 계약에서 다룹니다.

아래의 모든 동작은 클라이언트를 구성하기 전에 프로세스 환경에서 ALTI_TOKENALTI_ORG_ID를 읽고, 다음 중 하나가 누락된 경우 1 종료와 함께 실패합니다.

Text
$ alti credits
Config error: ALTI_TOKEN is not set (org API key or access token).

목록 작업에 공통적인 옵션#

1..=100 범위의 --limit <INTEGER>--cursor <STRING>: 몇 가지 작업이 페이징 모양을 공유합니다. 둘 다 요청 전에 로컬에서 검증됩니다.

Text
$ 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를 종료합니다.

작업 공간 및 프로젝트#

명령

필수

다른 옵션

alti workspace ls

--limit, --cursor, --가시성 <public|개인>, --상태 <STRING>

alti workspace get

--workspaceId <STRING>

alti workspace create

--name <STRING>

--비주얼리티 <public|개인>

alti project ls

--limit, --cursor, --workspaceId <STRING>

alti project get

--projectId <STRING>

alti project create

--name <STRING>

--workspaceId <STRING>

alti project usage

--projectId <STRING>

대화식 RTL#

명령

필수

다른 옵션

alti chat models

alti chat

--message <STRING>

--projectId <STRING>, --model <STRING>

alti conversations ls

--limit, --cursor, --projectId <STRING>

alti conversations get

--conversationId <STRING>

chat modelschat 이전에 일치합니다. 디스패처가 가장 긴 일치 명령 경로를 선호하기 때문입니다. alti chat는 신용 게이트 및 감사 로그 서버 측입니다.

견적 및 Plan-only 작업#

명령

필수

다른 옵션

실행

alti roofline

--params <NUMBER>, --quantization <int4|int8|fp16|bf16|fp32>, --deviceId <STRING>

--modelName <STRING>

yes

alti analyze

--target <STRING>, --rtl <STRING>

--allow-source-upload

플랜-only

alti evolve

--target <STRING>, --rtl <STRING>, --testbench <STRING>

--objective <STRING>, --generations <INTEGER>, --allow-source-upload

플랜-only

alti verify

--rtl <STRING>, --testbench <STRING>

--target <STRING>, --allow-source-upload

플랜-only

--rtl--testbench는 각각 1048576 바이트의 하드 제한을 가진 인라인 소스 문자열이며 로컬에서 검사합니다.

Text
$ alti analyze --target kv260-fpga --rtl "$(cat huge.sv)" --allow-source-upload
Invalid value for --rtl: exceeds size limit.

2를 종료합니다. --allow-source-upload가 없으면 클라이언트가 구성되기 전에 4를 종료합니다.

Text
Source upload is disabled by default. Re-run with --allow-source-upload only
after reviewing the destination and input.

이 세 가지는 executes: false이므로 옵트인 상태에서도 stderr에 [plan-only] 노트를 인쇄하고 서버는 실행이 아닌 구조화된 디스패치 계획을 반환합니다.

아티팩트, 증거, 러너 및 결제#

명령

필수

다른 옵션

alti artifacts ls

--limit, --cursor, --product <STRING>, --platform <STRING>, --채널 <stable|미리보기>

alti artifacts url

--artifactId <STRING>

alti evidence

--limit, --cursor, --workspaceId <STRING>, --status <STRING>

alti runners ls

--limit, --cursor, --kind <managed|private_aws|local>, --status <provisioning|online|offline|disabled>

alti credits

alti usage

--dimension <api_request|mcp_tool_invocation|cloud_job|storage_bytes|retention_day|parallelism_slot>, --periodFrom <STRING>, --periodTo <STRING>

alti billing

--product <local|online|compute|ai>

MCP 레지스트리#

명령

필수

alti mcp tools

alti mcp allowlist

이것들은 서버 광고 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입니다. 매니페스트를 프로그래밍 방식으로 열거하면 이 값을 필터링합니다.