Commandes CLI pour les tâches et le Cloud

Utilisez les tâches Cloud, la connexion, la recherche et le terminal DDS natifs, les opérations HTTP héritées et le manifeste d’actions client.

Présentation

Cette page présente le transport des tâches, les sessions Cloud et les opérations d’espace de travail DDS natives, l’adaptateur explicite de service HTTP hérité et les 25 actions du manifeste client. Les opérations Evolve natives disposent de contrats de requête distincts.

Lisez Surface des commandes CLI pour connaître la règle de routage, les deux ensembles de codes de sortie et les enveloppes de reçus. Pour les espaces de noms de moteurs analysés localement, consultez Commandes CLI des moteurs. Pour les limites de la version actuelle, consultez Référence des commandes CLI, et pour savoir comment lire le manifeste, consultez Contrat des actions et des capacités.

L’espace de noms job

job couvre les contrôles préalables du client hors ligne et le transport des tâches auprès d’un Job Service. Il est traité par l’analyseur local ; ainsi, -h fonctionne et les plages de valeurs sont vérifiées avant tout contact.

Six de ses huit sous-commandes acceptent --runner <local|cloud|private>, avec pour valeur par défaut cloud. Cet indicateur sélectionne le Job Service à contacter. Il ne s’agit pas de l’indicateur de runner de moteur de rtl compile et des commandes similaires. job readiness et job validate n’acceptent aucun --runner et n’accèdent jamais au réseau.

Commande

Requis

Autres options

Objectif

job readiness

—

—

Indiquer la préparation du Job Service produit, sans chemin

job submit

—

--runner (par défaut cloud), --job <JOB> (par défaut -), --allow-source-upload, --workspace-root <ABSOLUTE_PATH>, --source <RELATIVE_PATH>

Soumettre un document EngineJobV1 via le Job Service sélectionné

job validate

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

--job <JOB> (par défaut -)

Contrôler préalablement hors ligne une tâche RTL CPU et la frontière des fichiers sources locaux

job status <JOB_ID>

<JOB_ID>

--runner (par défaut cloud)

Lire l’état actuel d’une tâche

job wait <JOB_ID>

<JOB_ID>

--runner, --timeout-seconds <N> (par défaut 300, plage 1..=86400), --poll-interval-ms <N> (par défaut 1000, plage 100..=60000)

Interroger jusqu’à ce que la tâche atteigne un état terminal faisant autorité

job result <JOB_ID>

<JOB_ID>

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

Lire le résultat terminal d’une tâche

job cancel <JOB_ID>

<JOB_ID>

--runner

Demander l’annulation d’une tâche

job artifacts <JOB_ID>

<JOB_ID>

--runner

Lister les références des artefacts de résultat sans télécharger leurs octets

<JOB_ID> et --artifact-id peuvent commencer par un trait d’union sans séparateur -- ; l’analyseur accepte ces valeurs pour ces arguments.

Les deux options à plage contrôlée de job wait sont imposées par l’analyseur, et non par le service :

Texte

$ 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

Cela entraîne le code de sortie 2.

job readiness

job readiness répond sans identifiants ni réseau. Dans cette version, il s’agit d’une projection fixe sans chemin : chaque composant indique configured: false et ready: false, et le tableau blockers est complet.

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"
  ]
}

La commande se termine avec le code 0. Un 0 signifie ici que la question de préparation a reçu une réponse, et non qu’un élément est prêt.

job validate

job validate est le contrôle préalable hors ligne documenté étape par étape dans Première réussite avec le CLI. Elle lit un document EngineJobV1 depuis --job (ou stdin lorsque --job est - ou est omis), le vérifie selon l’enveloppe client Cloud RTL CPU exacte et calcule le hachage d’un fichier source local. Elle ne résout aucun identifiant, ne crée aucun client et ne contacte aucun service.

Son schéma de reçu est altifigence.cli.engine-job-preflight.v1. En cas de réussite, status est client_preflight_valid, submitted est false, server_authority_verified est false, job_schema est altifigence.engine.job.v1, execution_placement est cloud, le bloc operation vaut rtl-engine / analyze / rtl-analysis-request.v1, et le bloc source contient workspace_uri, sha256, et size_bytes.

La lecture du document de tâche est strictement limitée à 8388608 octets. Au-delà, la commande échoue avec EngineJobV1 JSON exceeds the CLI limit.

La soumission Cloud exige une autorisation explicite d’envoi des sources

Avec --runner cloud, job submit et analyze run exigent les trois options d’envoi des sources ensemble. Cette version ne permet pas de soumettre une tâche Cloud RTL CPU sans elles :

Texte

$ alti job submit --job job.json
error: Cloud Engine Job source upload is disabled; pass --allow-source-upload explicitly.

Cela entraîne le code de sortie 1. Avec --allow-source-upload mais sans --workspace-root, le message est --workspace-root is required with --allow-source-upload., et il en va de même pour --source.

--workspace-root doit être absolu. --source est un chemin relatif portable sous <workspace-root>/inputs.

Le téléchargement des artefacts Cloud exige sa propre autorisation

Sur job result avec --runner cloud, les trois options d’artefact forment un groupe. Fournir l’une d’elles active le mode téléchargement et exige alors les trois :

  • Sans --allow-artifact-download: Cloud Engine Job artifact download is disabled; pass --allow-artifact-download explicitly.

  • Sans --artifact-id: --artifact-id is required with --allow-artifact-download.

  • Sans --output-dir: --output-dir is required with --allow-artifact-download.

--output-dir doit être un répertoire absolu. --artifact-id provient de la liste de sorties d’un EngineResultV1.

Refus propres à un runner

Trois groupes d’options sont limités à un runner et refusés en dehors de celui-ci. Chaque décision est prise avant tout démarrage de processus ou toute requête :

Commande

Combinaison refusée

Message

Code de sortie

job submit

--runner local ou private avec l’une des options --allow-source-upload, --workspace-root, --source

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

2

job result

--runner local ou private avec l’une des options --allow-artifact-download, --artifact-id, --output-dir

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 possède le client intégré ; les deux autres n’ont pas d’adaptateur fourni

Voir ci-dessous

2

L’ancien chemin local/privé désigne l’adaptateur retiré alti-engine-job, absent de l’inventaire des 24 runners de la version. Une syntaxe de runner et des variables d’endpoint acceptées n’établissent pas la livraison d’un Job Service local/privé. Utilisez le chemin Cloud intégré uniquement lorsque le service et le compte sont activés, ou une commande directe de moteur local documentée.

Erreurs de tâche lisibles par machine

job : ses sous-commandes et analyze run invoquées avec --json produisent en cas d’échec une enveloppe d’erreur structurée plutôt qu’un simple message :

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

L’ensemble complet des codes est :

Code

Déclenché lorsque

ENGINE_JOB_JSON_TOO_LARGE

Le document dépasse 8388608 octets

ENGINE_JOB_JSON_INVALID

Le document n’est pas un JSON valide

ENGINE_JOB_SCHEMA_UNSUPPORTED

schema ne vaut pas altifigence.engine.job.v1

ENGINE_JOB_PLACEMENT_UNSUPPORTED

Le placement d’exécution ne vaut pas cloud

ENGINE_JOB_ID_EMPTY

L’identifiant de tâche est vide

ENGINE_JOB_ID_INVALID

L’identifiant de tâche dépasse 256 octets ou utilise des caractères non pris en charge

ENGINE_JOB_ARTIFACT_ID_EMPTY

L’identifiant d’artefact est vide

ENGINE_JOB_ORG_ID_EMPTY

L’identifiant d’organisation est vide

ENGINE_JOB_CPU_RTL_UNSUPPORTED

Le document ne correspond pas à la structure de tâche RTL CPU prise en charge

ENGINE_JOB_SOURCE_UPLOAD_FAILED

La préparation ou l’envoi des sources a échoué

ENGINE_JOB_ARTIFACT_DOWNLOAD_FAILED

Le téléchargement d’artefact a échoué

ENGINE_JOB_WAIT_CONFIGURATION_INVALID

Le délai d’attente ou l’intervalle d’interrogation est inutilisable

ENGINE_JOB_WAIT_TIMED_OUT

Aucun état terminal n’a été atteint avant le délai d’attente

ENGINE_JOB_API_RESPONSE_INVALID

La réponse du service n’a pas pu être lue

ENGINE_JOB_API_RESPONSE_ID_MISMATCH

L’identifiant de tâche de la réponse ne correspond pas à la requête

ENGINE_JOB_API_REQUEST_FAILED

La requête elle-même a échoué

ENGINE_JOB_COMMAND_FAILED

Code de repli lorsqu’aucun code plus précis ne s’applique

retryable est false pour chacun d’eux dans cette version. Cette enveloppe est produite pour l’espace de noms job et analyze run. Les autres familles de commandes utilisent leurs propres contrats d’erreur/de reçu ; consultez Référence des commandes.

analyze run et evolve run

analyze run et les sous-commandes Evolve natives explicites atteignent l’analyseur local. Les actions client d’un seul mot analyze et evolve relèvent de contrats distincts.

Commande

Requis

Autres options

Objectif

analyze run

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

--runner (par défaut cloud), --job <JOB> (par défaut -)

Soumettre la tâche Cloud d’analyse RTL CPU prise en charge

evolve run

--request <PATH_OR_DASH>

—

Exécuter une enveloppe d’opération typée de préparation, d’analyse RTL ou de recherche CX

analyze run accepte les mêmes options que job submit et suit la même règle d’envoi des sources Cloud. Elle se distingue sur un point : elle accepte --runner mais refuse toute valeur autre que cloud.

Texte

$ alti analyze run --runner local --job job.json
error: Local and Private job service adapters are not available; use --runner cloud.

Cela entraîne le code de sortie 1.

evolve run n’accepte ni --runner, ni --project, ni transmission d’arguments. Elle lit un document de requête — --request - lit stdin — et le transmet au moteur fourni alti-evolve, dont le code de sortie est transmis :

Texte

$ echo '' | alti evolve run --request -
alti-evolve: invalid request JSON: EOF while parsing a value at line 1 column 0

Ce code 2 est le code de sortie propre à alti-evolve transmis directement, et non une erreur d’argument CLI. Dans une installation où le moteur est introuvable, la même commande se termine avec le code 127 et un reçu dont status est unavailable.

evolve capabilities, evolve analyze, evolve cx-search, evolve measured-ppa, et evolve artifact sont également routés. Par exemple, evolve analyze SAVED_RTL --top TOP [--project ABS] analyse les sources enregistrées. L’admission, la préparation et les contrôles préalables PPA mesuré ne produisent pas de PPA mesuré.

L’opération publique d’activité GPU est compute rtl-evolve --request FILE_OR_DASH. Elle possède une enveloppe native de génération distincte et une politique explicite CPU de référence/CUDA. Consultez Commandes des moteurs au lieu de lui transmettre une requête evolve run.

Digital Design Studio Cloud

Utilisez ide cloud login, puis ide cloud whoami pour vérifier l’identité de la session native. refresh et logout gèrent cette session ; --session-dir sélectionne une alternative privée à la valeur par défaut. Consultez Authentification CLI.

ide cloud contract --request FILE_OR_DASH valide hors ligne une requête typée de projet/membre/source/espace de travail. ide cloud run --request FILE_OR_DASH envoie cette requête via l’API native avec la session enregistrée. Les requêtes contenant des sources exigent --allow-source-upload. La validation du contrat n’accorde jamais d’accès à une organisation et ne remplace pas les autorisations actuelles du service.

Bash
alti ide cloud search --org "$ORG_ID" --project "$PROJECT_ID" \
  --query 'module' --limit 80
alti ide cloud terminal --org "$ORG_ID" --project "$PROJECT_ID" \
  --name cli --max-seconds 60

Utilisez de vrais UUID d’organisation/projet autorisés. La recherche accepte --match-case, --whole-word, un mode prudent de largeur fixe --regex, --limit 1..500, et --timeout-seconds 1..120. Elle utilise les routes files/read à portée définie existantes et le contenu enregistré, avec des budgets de 500 fichiers, 4 MiB/fichier, 16 MiB au total et 1 MiB de sortie. Les modifications du manifeste/de l’en-tête/de la génération invalident un instantané mixte. Le contentHash renvoyé hache le texte UTF-8 exact lu et doit, pour le propriétaire Cloud actuel, être égal à fileVersion. Conservez fileVersion et workspaceRevision comme champs CAS distincts.

Le rattachement au terminal conserve le transport WebSocket et l’autorisation actuelle. Il transmet les octets stdout ; l’état va sur stderr, même avec l’option globale --json. Utilisez --cursor pour reprendre, et --cols 2..500, --rows 1..200, et --max-seconds 1..300 pour borner le rattachement. Le détachement ne demande pas l’arrêt du PTY persistant. Il s’agit d’une exécution de projet Cloud, et non d’un shell CLI local.

Service DDS Workspace hérité

ide service cible un propriétaire d’espace de travail HTTP hérité explicitement configuré. Définissez --endpoint ou ALTI_STUDIO_ENDPOINT et son ALTI_STUDIO_SERVICE_SECRET existant dans l’environnement privé de l’appelant. Aucune session Cloud native, aucun cookie de navigateur et aucun transfert d’URL/corps arbitraire ne lui sont substitués. Ceci décrit l’adaptateur de service hérité, sans affirmer que l’interface desktop native actuelle utilise ces endpoints ni qu’un service public de production est activé.

Commande après ide service

Objectif

evolve runtime, evolve list, evolve get RUN_ID, evolve lineage RUN_ID

Inspecter les expériences du service et l’état du runtime

evolve start --request FILE_OR_DASH, evolve estimate --request FILE_OR_DASH

Envoyer la requête typée du propriétaire ; estimate ne lance aucun travail

evolve cancel RUN_ID

Demande explicite d’annulation

evolve rename-folder --from evolve/OLD --to evolve/NEW

Renommer exactement un dossier d’expérience

evolve delete-folder evolve/FOLDER

Suppression récursive permanente explicite de ce dossier d’expérience

evolve read-file evolve/FOLDER/RESULT_PATH

Lire un fichier de résultat précis

synthesis capability, synthesis submit, synthesis get, synthesis cancel

Opérations typées de soumission à la synthèse ; consulter l’aide terminale pour les identifiants/options

analysis run --request FILE_OR_DASH, analysis estimate --request FILE_OR_DASH

Opérations Flow Analysis activées par le propriétaire

workspace search --query TEXT

GET fixe /api/search, conservant les hachages du propriétaire et les métadonnées de troncature

workspace replace --request FILE_OR_DASH

POST fixe /api/search/replace pour exactement un fichier lié par CAS

La recherche accepte --match-case, --whole-word, un mode prudent de largeur fixe --regex, et --limit 1..1000 (80 par défaut). L’admission des expressions régulières accepte volontairement un sous-ensemble de la syntaxe JavaScript du propriétaire ; groupes, alternatives et quantificateurs sont rejetés. La correspondance du backend reste à la charge du service.

Le remplacement prend un objet JSON fermé exigeant query, replacement, paths: [one portable path], et expectedHashes: {same path: 64 hex digits}. Le champ facultatif options contient uniquement les booléens matchCase, regex, et wholeWord. Le champ facultatif match contient ce même path et les entiers indexés à partir de 1 line/column compris entre 1 et 4194305. Omettez match pour remplacer dans le fichier sélectionné, et non dans tout l’espace de travail. Obtenez le hachage depuis le résultat actuel de ce même service.

Les requêtes sont limitées à 64 KiB, encodage JSON et texte de remplacement compris. Les champs inconnus, les clés/chemins de hachage incompatibles, les indices invalides, les traversées de chemin, les liens hors de la frontière du serveur et les chemins de métadonnées protégées/exclus de la recherche ne sont pas pris en charge. Le CLI rejette les structures invalides et les chemins protégés avant HTTP ; la propriété du système de fichiers et la vérification des liens restent au service. Il n’effectue jamais de remplacement dans l’espace de travail local.

Les réponses sont limitées à 8 MiB. --timeout-seconds 1..3600 définit le délai HTTP complet (30 par défaut) ; les redirections et les nouvelles tentatives automatiques sont désactivées. Le altifigence.dds.service-receipt.v1 conserve le statut HTTP et le corps, y compris une réponse DELETE réussie vide. Un 409 reste un conflit. Le CAS et l’atomicité du backend ne constituent pas une garantie entre backends ; les hachages locaux/Cloud ne doivent pas remplacer le hachage attendu par ce service sans accord de son contrat.

Le manifeste d’actions

Tout ce qui n’est pas traité par l’analyseur local est transmis au répartiteur du manifeste, qui compare votre chemin de commande au customer-tools.v1.json. alti commands affiche tout le manifeste sous forme d’un tableau JSON de vingt-cinq entrées et se termine avec le code 0 sans identifiants.

Vingt-deux entrées sont marquées executes: true. Trois — analyze, evolve, et verify — sont executes: false et affichent une note [plan-only] avant répartition. Ces trois mêmes entrées sont les seules à porter des octets de source, et leur accès est contrôlé par --allow-source-upload.

Quatorze des vingt-cinq portent également le profil remote_core ; les autres portent uniquement local_extended. La signification de ce profil pour la disponibilité est expliquée dans Contrat des actions et des capacités.

Chaque action ci-dessous lit ALTI_TOKEN et ALTI_ORG_ID dans l’environnement du processus avant de construire un client, et échoue avec le code de sortie 1 si l’un manque :

Texte

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

Options communes aux actions de liste

Plusieurs actions partagent une structure de pagination : --limit <INTEGER> dans la plage 1..=100, et --cursor <STRING>. Les deux sont validés localement avant toute requête :

Texte

$ alti project ls --limit 101
Invalid value for --limit: outside allowed range.

Cela entraîne le code de sortie 2, tout comme un indicateur inconnu (Unknown option(s): --limti), une option requise manquante (Missing required option(s): --projectId) ou une valeur absente de l’énumération (Invalid value for --visibility: expected one of public, private.).

Espaces de travail et projets

Commande

Requis

Autres options

alti workspace ls

—

--limit, --cursor, --visibility <public|private>, --status <STRING>

alti workspace get

--workspaceId <STRING>

—

alti workspace create

--name <STRING>

--visibility <public|private>

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 conversationnel

Commande

Requis

Autres options

alti chat models

—

—

alti chat

--message <STRING>

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

alti conversations ls

—

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

alti conversations get

--conversationId <STRING>

—

chat models est associé avant chat, car le répartiteur privilégie le chemin de commande correspondant le plus long. alti chat est soumis aux crédits et journalisé pour audit côté serveur.

Actions d’estimation et limitées à la planification

Commande

Requis

Autres options

Exécute

alti roofline

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

--modelName <STRING>

oui

alti analyze

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

--allow-source-upload

non — planification uniquement

alti evolve

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

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

non — planification uniquement

alti verify

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

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

non — planification uniquement

--rtl et --testbench sont des chaînes sources en ligne, limitées chacune strictement à 1048576 octets et contrôlées localement :

Texte

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

Cela entraîne le code de sortie 2. Sans --allow-source-upload, chacune de ces trois commandes se termine avec le code 4 avant la construction du client :

Texte

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

Ces trois commandes sont executes: false ; même avec l’autorisation explicite, elles affichent une note [plan-only] sur stderr et le serveur renvoie un plan de répartition structuré plutôt qu’une exécution.

Artefacts, preuves, runners et facturation

Commande

Requis

Autres options

alti artifacts ls

—

--limit, --cursor, --product <STRING>, --platform <STRING>, --channel <stable|preview>

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>

Registre MCP

Commande

Requis

alti mcp tools

—

alti mcp allowlist

—

Ces commandes lisent le registre d’outils MCP annoncé par le serveur et la liste autorisée par organisation. Elles sont indépendantes de alti mcp serve, qui est interceptée avant les deux répartiteurs et démarre le serveur stdio local. Consultez MCP.

Une action du manifeste est inaccessible

Le manifeste définit une action d’un seul mot trace pour les résumés de traces. Elle ne peut pas être invoquée, car trace est réservé par l’analyseur local comme espace de noms de moteur. alti trace atteint l’analyseur local, ne trouve aucune sous-commande et se termine avec le code 2; alti trace --limit 5 l’atteint également et se termine avec le code 2 pour argument inconnu.

L’action figure toujours dans la sortie alti commands, ce qui explique le nombre de vingt-cinq alors que seules vingt-quatre commandes sont accessibles. Si vous énumérez le manifeste par programme, excluez cette action.

Choisir le workflow Cloud

Besoin

Workflow

Lire ou manipuler un projet Cloud enregistré

Session native ide cloud et opérations typées.

Soumettre une enveloppe de sources locales via le client de tâches

Les contrats explicites d’envoi des sources et de résultat des tâches décrits sur cette page.

Analyser un fichier RTL enregistré dans le navigateur

Analyse RTL Cloud avec son estimation, sa tâche et son résultat enregistré.

Inspecter un projet via un assistant

MCP avec les outils précisément accordés.

Ne réutilisez pas un identifiant, un hachage ou un reçu d’un autre workflow sauf si son contrat l’accepte explicitement. Un terminal qui se reconnecte reste la session distante existante ; une réponse de soumission perdue peut toujours correspondre à une tâche existante. Inspectez l’état avant de créer un doublon.