CLI 첫 실행#

공개 CLI 작업 매니페스트를 검사하고 자격 증명, 네트워크 액세스 또는 제출 없이 오프라인 클라이언트 사전 전달 영수증을 생성합니다.

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

개요#

이것은 플랫 CLI 아카이브의 제한적인 첫 번째 성공 경로입니다. 포함된 작업 매니페스트를 읽고 하나의 작업 봉투와 하나의 로컬 소스 파일을 검증합니다. 자격 증명을 읽거나, 서버에 문의하거나, 소스를 업로드하거나, 작업을 제출하거나, RTL 엔진을 실행하지 않습니다.

새로 추출된 압축 파일 디렉토리에서 예제를 실행합니다.

수신의 모든 권한 필드가 false이기 때문에 전달 브랜치는 여전히 정지 노드에서 끝납니다: 이 경로는 봉투와 로컬 소스의 유효성을 검사하고, 이 가이드에 의해 자격이 부여된 후에는 아무 것도 검증하지 않습니다.

1. 제공된 액션 매니페스트 확인#

Bash
./alti commands

A successful command writes one JSON array to stdout and nothing to stderr. Each entry contains name, description, inputSchema, executes, and class. The current public CLI returns 25 entries. The value of executes describes the dispatch contract; it does not prove that a local engine or hosted authority is available.

2. 개인 로컬 소스를 준비#

추출 디렉터리 아래에 새 작업 공간을 만듭니다.

Bash
ALTI_WORKSPACE="$(mktemp -d -p "$PWD" alti-first-success.XXXXXX)"
mkdir -p "$ALTI_WORKSPACE/inputs/rtl"

이 무해한 소스를 $ALTI_WORKSPACE/inputs/rtl/top.sv로 저장:

SystemVerilog
module top(input logic clock, output logic value);
    always_ff @(posedge clock) value <= ~value;
endmodule

소스를 소유자만 읽을 수 있도록 작성합니다:

Bash
chmod 600 "$ALTI_WORKSPACE/inputs/rtl/top.sv"

사전 비행은 작업 공간 외부에 있거나, 두 번 이상 연결되었거나, 현재 사용자가 소유하지 않았거나, 그룹 또는 다른 사용자가 쓸 수 있는 소스를 거부합니다. 권한 검사를 완화하지 마십시오.

$ALTI_WORKSPACE/job.json로 다음 저장:

JSON
{
  "schema": "altifigence.engine.job.v1",
  "job_id": "offline-job-1",
  "operation": {
    "engine_id": "rtl-engine",
    "operation_id": "analyze",
    "contract_id": "rtl-analysis-request.v1"
  },
  "execution_placement": "cloud",
  "device_preference": {
    "selection": { "mode": "class", "value": "cpu" },
    "fallback": "deny"
  },
  "resources": {
    "cpu_slots": 1,
    "memory_bytes": 536870912,
    "device_slots": 0,
    "device_memory_bytes": 0,
    "max_wall_time_ms": 30000
  },
  "inputs": [
    {
      "artifact_id": "rtl-source-bundle",
      "role": "source_bundle",
      "artifact_schema": "rtl-source-bundle.v1",
      "uri": "workspace://inputs/placeholder",
      "sha256": "0000000000000000000000000000000000000000000000000000000000000000"
    }
  ],
  "cancellation": { "cancellation_id": "cancel-offline-job-1" }
}

클라이언트는 자리 표시자 URI를 대체하고 메모리 내 유효성 검사 복사본을 선택한 작업 영역 관련 소스와 계산된 SHA-256으로 소화합니다.

3. 오프라인 영수증 생성#

Bash
./alti --json job validate \
  --job "$ALTI_WORKSPACE/job.json" \
  --workspace-root "$ALTI_WORKSPACE" \
  --source rtl/top.sv

성공적인 결과는이 계약으로 stdout에서 하나의 JSON 객체입니다.

필드

필요한 통역

receipt_schema

altifigence.cli.engine-job-preflight.v1

status

client_preflight_valid

submitted

false이어야 함

server_authority_verified

false이어야 함

job_schema, job_id, operation

로컬에서 확인된 봉투 ID

execution_placement

봉투에 요청 된 배치, 제출의 증거가 아닙니다.

source.workspace_uri

정규화된 작업 영역 상대 소스 URI

source.sha256, source.size_bytes

지역적으로 계산된 소스 증거

종료 상태 0는 이 클라이언트가 사전 비행을 통과했음을 의미합니다. 이는 컴파일된 소스, 서버가 작업을 수락했거나 작업이 실행되었음을 의미하지 않습니다.

실패 출력과 종료 상태#

--json에서 유효성 검사 실패는 stdout에 성공 영수증을 기록하지 않고 하나의 altifigence.cli.error.v1 개체를 stderr에 기록합니다. 예를 들어, 형식이 잘못된 작업 JSON는 retryable: falseENGINE_JOB_JSON_INVALID를 생성하고 상태 1로 종료합니다.

이 페이지의 두 가지 워크플로:

종료 상태

의미

0

매니페스트가 인쇄되었거나 오프라인 클라이언트 사전 비행이 통과되었습니다.

1

레지스트리, I/O, 소스 경계 또는 작업 검증 실패

2

명령행 구문 또는 인수 파싱 실패

Other alti commands use exit statuses this table does not list. 3 is CLASS_NOT_ALLOWED; 4 marks a request refused before dispatch, and both alti whoami and alti login exit 4 in this release; an engine-backed command passes the engine’s own exit status through, plus 126 when the engine cannot be started and 127 when it is not found. If your script will ever run more than the two commands above, use the full contract in Command Reference and treat every non-zero status as failure by default.

stdout 및 stderr를 별도로 유지하고 영수증을 구문 분석하기 전에 종료 상태를 확인하십시오. 이 가이드의 목적을 위해이 사전 비행 후에 중지하십시오. 성공적인 설치 기능 검색 및 일반 원격 작업 제출은 공개 아카이브에서 사용할 수 없으며 아카이브가 수행 할 수있는 로컬 엔진 실행은 여기서 엔드 투 엔드 제품 워크플로로 자격이 없습니다.