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 |
|---|---|---|---|
| — | — | Indiquer la préparation du Job Service produit, sans chemin |
| — |
| Soumettre un document EngineJobV1 via le Job Service sélectionné |
|
|
| Contrôler préalablement hors ligne une tâche RTL CPU et la frontière des fichiers sources locaux |
|
|
| Lire l’état actuel d’une tâche |
|
|
| Interroger jusqu’à ce que la tâche atteigne un état terminal faisant autorité |
|
|
| Lire le résultat terminal d’une tâche |
|
|
| Demander l’annulation d’une tâche |
|
|
| 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.
{
"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:CloudEngineJobartifactdownloadisdisabled;pass--allow-artifact-downloadexplicitly.Sans
--artifact-id:--artifact-idisrequiredwith--allow-artifact-download.Sans
--output-dir:--output-dirisrequiredwith--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 |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
| Voir ci-dessous |
|
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 :
{
"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 |
|---|---|
| Le document dépasse 8388608 octets |
| Le document n’est pas un JSON valide |
|
|
| Le placement d’exécution ne vaut pas |
| L’identifiant de tâche est vide |
| L’identifiant de tâche dépasse 256 octets ou utilise des caractères non pris en charge |
| L’identifiant d’artefact est vide |
| L’identifiant d’organisation est vide |
| Le document ne correspond pas à la structure de tâche RTL CPU prise en charge |
| La préparation ou l’envoi des sources a échoué |
| Le téléchargement d’artefact a échoué |
| Le délai d’attente ou l’intervalle d’interrogation est inutilisable |
| Aucun état terminal n’a été atteint avant le délai d’attente |
| La réponse du service n’a pas pu être lue |
| L’identifiant de tâche de la réponse ne correspond pas à la requête |
| La requête elle-même a échoué |
| 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 |
|---|---|---|---|
|
|
| Soumettre la tâche Cloud d’analyse RTL CPU prise en charge |
|
| — | 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.
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 | Objectif |
|---|---|
| Inspecter les expériences du service et l’état du runtime |
| Envoyer la requête typée du propriétaire ; estimate ne lance aucun travail |
| Demande explicite d’annulation |
| Renommer exactement un dossier d’expérience |
| Suppression récursive permanente explicite de ce dossier d’expérience |
| Lire un fichier de résultat précis |
| Opérations typées de soumission à la synthèse ; consulter l’aide terminale pour les identifiants/options |
| Opérations Flow Analysis activées par le propriétaire |
| GET fixe |
| POST fixe |
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 |
|---|---|---|
| — |
|
|
| — |
|
|
|
| — |
|
|
| — |
|
|
|
|
| — |
RTL conversationnel
Commande | Requis | Autres options |
|---|---|---|
| — | — |
|
|
|
| — |
|
|
| — |
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 |
|---|---|---|---|
|
|
| oui |
|
|
| non — planification uniquement |
|
|
| non — planification uniquement |
|
|
| 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 |
|---|---|---|
| — |
|
|
| — |
| — |
|
| — |
|
| — | — |
| — |
|
| — |
|
Registre MCP
Commande | Requis |
|---|---|
| — |
| — |
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 |
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.