Documentazione
Assistente AI
Conversazioni nell'ambito del progetto, azioni CAD/CAM digitate, autorizzazioni esplicite e credenziali del fornitore gestite dall'applicazione.
Tradotto automaticamente dall'inglese. Vedi l'originale in inglese
Servizi di assistenza
@cadcamfun/ai fornisce accesso al modello, eventi di conversazione, catalogo di azioni, prompt, competenze, assemblaggio del contesto e integrazione dell'host. Il motore di conversazione predefinito è nikcli incorporato; AI SDK v7 fornisce chiamate dirette con testo, streaming e output strutturato. Il sidecar inserisce gestori per mutazioni di progetto, librerie, cronologia e archiviazione delle applicazioni.
La chat può ispezionare e modificare un progetto attraverso azioni registrate. La generazione di titoli senza stato, l'analisi della progettazione, i suggerimenti sui parametri, l'ottimizzazione del codice G e i riepiloghi dei suggerimenti di progettazione restituiscono consigli o output strutturati; questi metodi di servizio non salvano le modifiche al progetto. Esamina i consigli di lavorazione generati tramite CAM deterministico e verifica prima di fare affidamento su di essi.
Conversazioni e controlli di sessione
POST /api/ai/chat/stream emette eventi digitati per testo, ragionamento, stato di svolta/passo, chiamate e risultati degli strumenti, diagnostica, domande, richieste di autorizzazione, tentativi, modifiche del contesto, obiettivi, completamento ed errori. Gli identificatori di sessione client sono associati alle sessioni host e confrontati con il relativo progetto. Conserva l'ID della sessione per continuare la stessa conversazione.
POST /api/ai/sessions/state recupera lo stato occupato, il testo accumulato e le informazioni sull'attività dopo un flusso disconnesso. /api/ai/chat/queue ammette il seguito di una conversazione attiva; /api/ai/chat/abort ferma il turno e i suoi lavoratori associati. La rimozione di una sessione annulla e unisce i relativi elementi secondari prima di rimuovere la sessione host.
/api/ai/sessions/control supporta lo stato, l'ispezione dettagliata del contesto, la compattazione, il consolidamento della memoria, l'annullamento delle attività, le decisioni sulle autorizzazioni e la risposta o il rifiuto delle domande in sospeso. Le richieste vengono confrontate con la conversazione principale e le relative sessioni secondarie ammesse. Non è possibile rispondere a una domanda non più in sospeso riutilizzando il vecchio identificatore.
Le chiamate a modello diretto riprovano gli errori temporanei del provider con la stessa curva di nikcli: il primo ritardo è di 2 secondi e raddoppia a ogni tentativo, proprio del provider retry-after l'intestazione viene rispettata e senza tale intestazione il ritardo non supera mai i 30 secondi. Per impostazione predefinita una richiesta effettua al massimo cinque chiamate, inclusa la prima; IL retryAttempts l'impostazione può sovrascriverla (packages/ai/src/retry.ts, direct-model.ts). Quando la connessione del modello si interrompe a metà turno, il loop della chat riprende fino a cinque volte con lo stesso backoff di 2–30 secondo e chiede al modello di continuare senza ripetere i passaggi completati.
Fornitori e credenziali
GET /api/ai/providers elenca i metadati del provider e lo stato configurato; GET /api/ai/models espone il catalogo di selezione del modello con optional configuredOnly=true. Le letture del catalogo host incorporato vengono memorizzate nella cache per un minuto. La configurazione e i criteri influiscono sui provider elencati e utilizzabili.
Imposta le credenziali con PUT /api/ai/credentials e rimuoverli con DELETE /api/ai/credentials/:provider. Le chiavi non devono essere vuote e l'URL di base fornito deve essere HTTP o HTTPS. La model factory diretta supporta Anthropic, OpenAI, MiniMax e il gateway AI. Altri ID provider richiedono un URL di base compatibile con OpenAI per le chiamate dirette. L'host incorporato utilizza il proprio catalogo e routing del provider.
Il sidecar mantiene le credenziali su <dataDir>/ai/credentials.json utilizzando un file temporaneo, modalità solo proprietario 0600 e rinomina. Un file mancante o danneggiato viene letto come vuoto. Una scrittura di persistenza non riuscita lascia la chiave disponibile per il processo corrente ma non garantisce che sopravviva al riavvio. Le risposte di stato espongono lo stato di configurazione anziché le chiavi grezze.
Le credenziali sono rappresentate con Redacted servizi interni e propagati all'host tramite un sink di credenziali con ambito. La chiusura dell'ambito cancella la copia dell'host. Le modifiche alle credenziali aggiornano una revisione utilizzata per distinguere i risultati stateless memorizzati nella cache.
Il livello del modello predefinito è balancede le richieste MiniMax vanno a https://api.minimax.io/v1 salvo che CADCAMFUN_AI_MINIMAX_BASE_URL lo sovrascrive (packages/ai/src/models.ts). Il catalogo dei modelli è seminato dal pubblico https://models.dev/api.json endpoint solo quando manca il file memorizzato nella cache e l'accesso alla rete è consentito; non vengono inviate credenziali, le risposte sono limitate a 8 MiB e un corpo che elenca meno di 20 fornitori viene rifiutato perché troncato.
Azioni e permessi
Il catalogo delle azioni dichiara ogni identificatore di azione, schema di parametri, effetto e percorso di esecuzione. Gli strumenti raggruppano le azioni correlate dietro una richiesta action campo. L'host convalida l'input dello strumento e i gestori sidecar eseguono la convalida del dominio e i controlli di accesso alle risorse prima di rendere persistenti le modifiche.
Le modalità di autorizzazione sono approve, ask, e auto. Influenzano il modo in cui vengono ammesse le chiamate agli strumenti ordinari; gli strumenti contenenti azioni distruttive mantengono una regola di approvazione umana in ogni modalità. Un flag di input come confirm: true non sostituisce tale richiesta di autorizzazione. L'host non espone shell illimitate o strumenti di modifica dei file in sostituzione delle azioni dell'applicazione.
Politiche dentro <dataDir>/ai/policy.json limitare l'uso del provider, l'uso degli strumenti e l'accesso al bridge. Vengono caricati dalla configurazione del servizio; non dare per scontato che la modifica del file aggiorni un servizio già in esecuzione. Le directory scratch con ambito progetto e la configurazione nikcli isolata mantengono l'host incorporato separato dallo stato dell'agente autonomo dell'utente.
Le competenze forniscono manuali CAD/CAM e istruzioni create dall'utente. Guidano l'uso degli strumenti esistenti; l'aggiunta di una competenza non aggiunge una nuova API di mutazione. Gli endpoint HTTP delle competenze elencano, salvano ed eliminano il contenuto delle competenze utente supportate.
Gruppi di strumenti registrati
I gruppi integrati lo sono cad, cad_edit, cam, cam_edit, library, parts, library_edit, memory, memory_edit, research, vcs, vcs_edit, e agent. cam_verify espone il sottoinsieme di generazione e verifica necessario al ruolo di verificatore senza garantire lo strumento di modifica CAM completo.
Il raggruppamento degli strumenti preserva i confini degli effetti. L'ispezione della geometria di sola lettura, la ricerca nella libreria e il richiamo della memoria sono separati dalle modifiche a tali risorse. Il registro inserito può anche ammettere strumenti di estensione; gli identificatori duplicati vengono rifiutati.
Scopri il catalogo attuale
GET /api/ai/actions restituisce descrizioni di strumenti, nomi e tipi di azioni e schemi di parametri JSON per i chiamanti esterni. Usalo per scoprire le azioni dell'applicazione in esecuzione invece di copiare un elenco statico in un client. POST /api/ai/actions/invoke accetta un ID progetto, un ID strumento e un input contenente il discriminatore dell'azione.
Le voci del catalogo integrate vengono mantenute in packages/ai/src/actions. Gli esempi includono ispezione CAD e controlli parametrici, modifiche CAD, pianificazione e produzione CAM, ricerca e aggiornamenti di librerie, memoria di progetto, ricerca e proposte VCS. Un contributo che richiede un servizio applicativo restituisce un risultato non disponibile quando l'host non ha fornito il proprio gestore.
API di integrazione pubbliche
ACTION_CATALOGUE, ACTION_TOOL_IDS, EXPOSED_TOOL_IDS, actionById, toolKind, e runAction supportare i consumatori del catalogo. ToolHandlers è il contratto di integrazione del sidecar; ToolRegistry compone strumenti integrati ed estensioni. AiService fornisce conversazioni, metadati del modello, chiamate one-shot e operazioni di sessione.
assembleContext compone il contesto del turno con un budget aggregato predefinito di 24,000 caratteri. Ordina i requisiti permanenti, le osservazioni attuali, le istantanee dell'interfaccia utente, la memoria e i riferimenti di supporto, deduplica per identità e contenuto e registra le fonti omesse o troncate. Questo budget del contesto è separato dalla finestra del token completo del modello e dalla soglia di compattazione dell'host.
Lavoro di base e prove
Lo scheduler di runtime consente quattro attività in background attive e sedici attività in coda. Le attività appartengono a un progetto e a una sessione principale. L'annullamento mantiene la proprietà attiva finché un lavoratore non si ferma; l'interruzione o l'eliminazione del genitore interrompe anche il lavoro associato. Il recupero del read-worker è limitato a due tentativi, mentre il lavoro di editing interrotto è contrassegnato come incerto invece che riprodotto ciecamente.
Il successo dello strumento Assistant è un risultato da verificare. Le operazioni CAD possono restituire una diagnostica parziale della geometria; Gli artefatti CAM hanno le proprie affermazioni e livelli di rilascio; i servizi storici impongono rami protetti. Il testo della conversazione, un'attività contrassegnata come completata e il risultato di una verifica geometrica descrivono prove diverse.
Il contesto del progetto inviato al modello viene preventivato: un documento di contesto del progetto archiviato può contenere fino a 8,000 caratteri, di cui 2,000 raggiungono il prompt, con 1,500 caratteri ciascuno per la memoria del progetto e le abitudini dell'utente. Le note del progetto più vecchie di 90 giorni a cui il contesto del progetto non fa riferimento vengono eliminate quando una sessione si risolve (packages/ai/src/project-context.ts).
Selezione del tempo di esecuzione
CADCAMFUN_AI_HOST seleziona nikcli per impostazione predefinita o direct. Il percorso diretto utilizza le chiamate AI SDK senza il loop degli strumenti dell'agente persistente e lo scheduler specializzato dell'host incorporato. Le operazioni senza stato utilizzano il servizio modello diretto anche quando l'host incorporato è abilitato.
Le directory XDG dell'host e l'override opzionale della home sono radicati <dataDir>/ai/nikcli. Il caricamento della configurazione del progetto e le impostazioni dell'agente ereditato non correlate vengono disabilitate o cancellate prima dell'importazione dell'SDK. La sua area di lavoro è una directory di lavoro dell'applicazione per progetto, anziché la directory di origine dell'utente.
Accesso nikcli autonomo
@cadcamfunv2/cadcamfun-nikcli-plugin collega un nikcli autonomo a un'applicazione in esecuzione. Configuralo url, tokene predefinito projectIdo utilizzare CADCAMFUN_URL, CADCAMFUN_TOKEN, e CADCAMFUN_PROJECT. Fornire un token bridge con ambito emesso dall'applicazione per l'accesso esterno.
I token bridge sono limitati a un progetto e ad azioni di sola lettura o di lettura/scrittura. Per impostazione predefinita sono 30 giorni, consentono 1–365 giorni, possono essere elencati e revocati e rivelano il proprio segreto solo quando vengono rilasciati. Sono ammessi solo i due percorsi del ponte d'azione. La politica può restringere ulteriormente gli strumenti e le azioni visibili.
Il plugin recupera il catalogo dall'applicazione e converte i suoi schemi in argomenti dello strumento nikcli. Le azioni distruttive vengono rifiutate anche con un flag di conferma e in-process agent lo strumento di delega è escluso. Gli strumenti di estensione dei plugin con capacità di scrittura non sono esposti attraverso questo bridge esterno. HTTP 401 segnala un token rifiutato; i rifiuti di azione restituiscono risultati di errore leggibili.
Mappa di implementazione
service.ts possiede operazioni di intelligenza artificiale rivolte alle applicazioni; direct-model.ts possiede le chiamate AI SDK; credentials.ts possiede lo stato chiave; nikcli/ possiede isolamento, sessioni, politiche, contesto e lavoratori; actions/ e tools/ proprie definizioni di capacità e adattatori. Sidecar services/ai.ts wires, gestori di progetti e storage. packages/nikcli-plugin possiede il client HTTP esterno.
Avvia e recupera una conversazione
Con un sidecar in esecuzione e un modello configurato, questa richiesta apre una conversazione senza inserire il contesto dell'area di lavoro archiviata. Impostato CADCAMFUN_URL all'URL di base del loopback scoperto e CADCAMFUN_TOKEN al token dell'applicazione corrente. L'identificatore di sessione riportato di seguito è selezionato dal client; conservalo per i follow-up.
curl --no-buffer --fail-with-body \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" \
-H "Content-Type: application/json" \
--data '{"message":"Explain the difference between G0 and G1.","sessionId":"inspection-demo","includeContext":false,"mode":"gcode"}' \
"$CADCAMFUN_URL/api/ai/chat/stream" Per un turno di progetto, fornisci anche il suo valore reale projectIde facoltativamente a drawingId appartenenti a quel progetto. Il disegno lega gli strumenti del turno a quel disegno. Il riutilizzo di una sessione con un altro progetto o account viene rifiutato.
curl --fail-with-body \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" \
-H "Content-Type: application/json" \
--data '{"sessionId":"inspection-demo"}' \
"$CADCAMFUN_URL/api/ai/sessions/state" Il restituito busy, text, facoltativo events, e tasks ricostruire la vista; la riproduzione di quegli eventi memorizzati non esegue nuovamente gli strumenti. Per interrompere il lavoro, inviare un'interruzione esplicita. La sola chiusura del flusso non unisce gli operatori della conversazione.
Fonte: packages/api/src/groups/ai.ts, apps/sidecar/src/http/ai.ts, e packages/ai/src/service.ts.
Gestisci gli eventi senza perdere lo stato
| Evento | Comportamento del consumatore |
|---|---|
delta / reasoning | Aggiungere text al canale testuale o di ragionamento della sessione corrispondente. |
tool_call / tool_result | Correlare per callId; ispezionare ok e conservare la diagnostica indipendentemente dal testo dell'assistente. |
permission_request | Mostra la richiesta e rispondi con i relativi ID di richiesta/sessione e once, always, o reject. |
question_request | Conservare l'ID della richiesta e le domande; inviare una serie di risposte per domanda tramite i controlli di sessione. |
done | Usa finale text e utilizzo facoltativo come risposta completata; non aggiungere l'intero testo finale ai delta già accumulati. |
error | Display message con config, provider, aborted, o internal classificazione. |
heartbeat | Mantieni viva la connessione senza aggiungere contenuti o dichiarare completato il turno. |
I controlli di sessione accettano solo gli ID di autorizzazione/domanda in sospeso in quella conversazione o nelle relative sessioni secondarie. Una domanda richiede risposte non vuote; una domanda a scelta singola rifiuta più valori selezionati e una domanda che non consente risposte personalizzate accetta solo le etichette delle opzioni elencate.
Fonte: packages/api/src/ai-events.ts, packages/ai/src/nikcli/session-controls.ts, e packages/ai/src/heartbeat.ts.
Allegati e competenze dell'utente
Ogni richiesta di chat accetta fino a cinque allegati. Le immagini supportate sono PNG, JPEG, WebP e GIF, con un limite di 5 MiB ciascuna; I PDF hanno un limite di 10 MiB. Gli allegati di testo accettano fino a 2,000,000 caratteri, con testi fino a 6,000 caratteri inclusi anche in linea. I file non supportati producono un motivo di rifiuto anziché scomparire silenziosamente.
Gli allegati di testo vengono conservati in un archivio in memoria con ambito progetto per gli strumenti di importazione: al massimo 32 nomi e 8,000,000 caratteri per progetto e 32,000,000 caratteri al massimo 64 progetti archiviati. Il riutilizzo di un nome sostituisce il testo precedente. Il riavvio del servizio non mantiene questo archivio allegati. Una mancata corrispondenza della capacità PDF viene segnalata al modello dalla trasformazione del provider.
I nomi delle abilità utente sono costituiti da lettere minuscole/cifre unite da trattini, al massimo 64 caratteri. La descrizione e i limiti del corpo sono rispettivamente 300 e 20,000 caratteri; è possibile caricare al massimo 50 competenze utente. Le competenze integrate non possono essere rimosse tramite l'API delle competenze utente. Un'abilità salvata live il risultato indica se il ricaricamento dell'host ha avuto effetto.
Fonte: packages/ai/src/attachments.ts, packages/ai/src/skills/user.ts, e apps/sidecar/src/http/ai.ts.
Diagnosticare i guasti dell'assistente
- Nessun modello configurato: ispezionare
/api/ai/statuse/api/ai/providers, quindi imposta una chiave per un provider elencato. Un flag configurato dimostra che esiste una chiave memorizzata, non che il fornitore l'ha accettata. - Provider sconosciuto o URL non valido: utilizzare un ID provider pubblicizzato e un URL di base HTTP(S). Un provider diretto non integrato necessita di un endpoint compatibile oltre alla propria chiave.
- Sessione inaccessibile: ripristinare utilizzando l'identità progetto/account/sessione originale. Non inventare un ID progetto sostitutivo per una sessione host esistente.
- Un turno attende indefinitamente: ispezionare lo stato del controllo della sessione per verificare la presenza di autorizzazioni o domande in sospeso prima di ritentare un prompt duplicato. Usa l'interruzione esplicita per annullare il turno e unirti ai suoi lavoratori.
- Uno strumento ha parzialmente cambiato il modello: ispezionarlo
tool_diagnostic, compresomutationApplied, quindi leggere il disegno corrente. Riprovare un'azione di modifica senza controllarne il risultato può duplicare la geometria.
I risultati dello strumento e gli errori digitati preservano la fase che non è riuscita. Un errore del provider dopo che gli strumenti hanno avuto successo non ripristina le mutazioni del progetto. I controlli CAM deterministici e cronologia rimangono disponibili separatamente dalla risposta del modello.
Riferimento all'endpoint dell'assistente
Tutti i percorsi dell'assistente vivono sotto /api/ai e richiedono il token di connessione dell'applicazione. Un token bridge per un nikcli autonomo apre solo l'elenco delle azioni e le rotte di invocazione e solo per il suo progetto.
| Itinerario | Scopo |
|---|---|
POST /api/ai/chat/stream | Inizia un turno in streaming; la risposta è un flusso SSE di eventi dell'assistente. |
POST /api/ai/chat/queue | Metti in coda un messaggio di follow-up per una sessione impegnativa. |
POST /api/ai/chat/abort | Interrompe il turno in corso di una sessione. |
POST /api/ai/permission/reply | Rispondi a una richiesta di autorizzazione: once, always, o reject. |
POST /api/ai/sessions/state, /sessions/control, /sessions/remove | Leggi lo stato della sessione, controlla una sessione, rimuovine una. |
GET /api/ai/status, /models, /providers, /agents, /prompts | Discovery: disponibilità, catalogo modelli, fornitori con il loro stato di configurazione, agenti specializzati, suggerimenti tempestivi. |
PUT /api/ai/credentials, DELETE /api/ai/credentials/:provider | Archiviare o cancellare le credenziali del fornitore. |
GET/PUT /api/ai/skills, DELETE /api/ai/skills/:name | Elenca, salva ed elimina le competenze dell'utente. |
GET /api/ai/actions, POST /api/ai/actions/invoke | Catalogo delle azioni e invocazione diretta (utilizzato anche dal bridge nikcli). |
GET/POST /api/ai/bridge/tokens, DELETE /api/ai/bridge/tokens/:id | Emettere, elencare e revocare token bridge con ambito. |
POST /api/ai/completion | Completamento singolo: prompt, systemPrompt, model, temperature; ritorna text e model. |
POST /api/ai/title | Titolo per un estratto di conversazione. |
POST /api/ai/design-analysis | Suggerimenti con confidence, priority (basso/medio/alto) e kind (ottimizzazione/avviso/critico). |
POST /api/ai/machining-parameters | Cutting speed (m/min), feed (mm/min), depth of cut (mm), stepover (%), coolant (flood/mist/none), engagement (conventional/climb), and warnings. |
POST /api/ai/gcode-optimization | Codice G ottimizzato con modifiche e motivazioni per riga, stima del risparmio di tempo e durata dell'utensile e note. |
POST /api/ai/design-suggestions | Suggerimenti per il passaggio successivo con titolo, motivazione e passaggio successivo. |
POST /api/ai/analyze-gcode | Problemi (errore/avviso/informazioni con codice, riga e messaggio) e statistiche: linee, movimenti rapidi e di taglio, cambi utensile e limiti. |
POST /api/ai/gcode, /toolpath-analysis, /feedback, /proxy | Azioni del codice G, approfondimenti sul percorso utensile, feedback e proxy del provider. |
Le risposte dell'analisi supportata dal modello sono l'output del modello in una forma tipizzata. Valori come i parametri di lavorazione sono suggerimenti da rivedere rispetto ai dati degli utensili e ai limiti della macchina, non ai dati di taglio verificati.
Campi di richiesta di streaming
| Campo | Valori | Effect |
|---|---|---|
message | corda | Il messaggio dell'utente per questo turno. |
sessionId | corda | Continuare una sessione esistente; omettere di iniziarne uno nuovo. |
projectId | corda | Progetto di cui il contesto e gli strumenti utilizzano il turno. |
drawingId | corda | La pesca su cui questo turno può agire. Viene controllato rispetto al progetto prima dell'ammissione della svolta e gli strumenti della svolta agiscono su questo disegno e nient'altro. |
mode | general, cad, cam, gcode, toolpath | Focus del turno. |
permissionMode | auto, ask, approve | Come vengono richieste le autorizzazioni dello strumento. |
agent | corda | Nome dell'agente specializzato da /api/ai/agents. |
attachments | [{ name, mime?, data, encoding?: "base64" | "text" }] | Fino a 5 allegati: immagini fino a 5 MB, PDF fino a 10 MB e testo fino a 2,000,000 caratteri (nel messaggio vengono scritti anche file di testo fino a 6,000 caratteri). |
context, includeContext | stringa, booleano | Testo di contesto aggiuntivo e se includere il contesto del progetto assemblato. |
model | selettore del modello | Sostituisci il modello configurato per questo turno. |
Limiti e default
| Limite | Valore |
|---|---|
| Budget di contesto assemblato | 24,000 caratteri; un blocco che non si adatta viene troncato con un pennarello e un blocco che verrebbe tagliato sotto i 400 caratteri viene invece tralasciato |
| Documento di contesto del progetto | Fino a 8,000 caratteri memorizzati, 2,000 inviati al modello |
| Memoria del progetto/abitudini dell'utente | 1,500 caratteri ciascuno |
| Note di progetto | Eliminato dopo 90 giorni quando non viene fatto riferimento al contesto del progetto |
| Output dello strumento inviato al modello | 24,000 caratteri |
| Elementi creati per chiamata | 40 |
| Gettoni di uscita | 32,000 massimo |
| Battito del cuore | Ogni 5 secondi mentre lo streaming è attivo |
| Azioni di geometria esatta | 60-secondo budget; rapporti esatti 1.5 secondi |
| Lavori nel kernel | Scadenza 120-secondi, inizio lavoratore incluso |
| Attività in background | 4 attivo, 16 in coda, 2 tentativi per readworker, attività stabilite mantenute 7 giorni |
| Continuazioni automatiche | 50 per richiesta; La connessione 5 riprende con il backoff di 2–30 s |
| Nuovi tentativi di chiamata diretta | 5 chiamate inclusa la prima; 2 raddoppia a 30 s, onore retry-after |
| Competenze dell'utente | 50 competenze; nome fino a 64 caratteri (parole minuscole unite da trattini), descrizione fino a 300, corpo fino a 20,000 |
| Recupero della ricerca sul Web | 256 KB per risposta |
| Gettoni del ponte | 30 giorni per impostazione predefinita, 365 giorni al massimo |
Leggi il risultato, non la prosa
Il risultato di uno strumento è presente tool_result e tool_diagnostic eventi. Controlla se è stata applicata una mutazione prima di fidarti del riepilogo dell'assistente su ciò che ha fatto.
Il catalogo completo delle azioni
L'assistente agisce tramite 83 azioni dichiarate in 13 famiglie. Ogni azione dichiara il proprio schema di risultato e il suo effetti: cosa cambia o arriva oltre la lettura del documento aperto. Leggi famiglie (cad, cam, library, memory, research, vcs) nella maggior parte dei casi non hanno alcun effetto; loro _edit le controparti cambiano stato persistente. Gli effetti sono elencati tra parentesi.
| Famiglia | Contare | Azioni (effetti) |
|---|---|---|
cad | 20 | describe, check, relations, grep, vision (interfaccia), inspect_elements, inspect_layers, inspect_search, inspect_property, drawing, parametric_validate, parametric_inspect, parametric_test, parametric_dfm, parametric_exact, exact, assembly, parametric_fastener, parametric_recipe, parametric_from_element |
cad_edit | 12 | add (disegno), add_entities (disegno), modify (disegno), transform (disegno), group (disegno), delete (disegno), editor (interfaccia+disegno), import (disegno), parametric_create (disegno), parametric_update (disegno), parametric_recipe_create (disegno), parametric_convert (disegno) |
cam | 14 | plan_check, review, machine, operations, suggest, compare_setups, analyze, stock, vision (interfaccia), chain_suggest, materials, cutting_data, manufacture, chain_status |
cam_edit | 6 | manufacture (operazione+programma), create (operazione), update (operazione), generate (programma), verify (rapporto), stock_set (azione) |
library | 5 | component_list, lookup_component, lookup_material, lookup_tool, lookup_machine_config |
parts | 3 | save (componente), insert (disegno), delete (componente) |
library_edit | 5 | upsert_material (biblioteca), upsert_tool (biblioteca), upsert_machine_config (biblioteca), set_default (biblioteca), delete (biblioteca) |
memory | 2 | recall, context_read |
memory_edit | 2 | remember (memoria), context_update (contesto) |
research | 2 | search (esterno), read_attachment |
vcs | 3 | status, diff, list_pull_requests |
vcs_edit | 5 | start_change (storia), commit (storia), restore (storia+disegno), open_pull_request (storia), run_workflows (flusso di lavoro) |
agent | 4 | start (compito), list, read, cancel (compito) |
| Effect | Senso |
|---|---|
drawing, component, operation, program, stock, report | Dati di progettazione o produzione persistenti |
library, memory, context | Record della biblioteca, memoria del progetto, contesto dello spazio di lavoro |
history, workflow | Viene eseguito il controllo della versione e il flusso di lavoro |
task | Lo scheduler della delega (agenti in background) |
interface | L'editor o la vista sullo schermo; non persistente |
external | La rete (ricerca web) |
Un'azione di lettura può avere solo interface o external; ogni scrittura nomina almeno un effetto persistente. Gli effetti vengono dichiarati per azione e mai dedotti dallo strumento che la implementa.
Come termina un invito all'azione
| Risultato | Quando |
|---|---|
succeeded | L'azione ha fatto ciò che è stato chiesto. Include letture con risultato negativo, ad esempio un controllo fallito. |
partial | Parte della risposta o batch: complete: false, omitted > 0, non vuoto skipped, o a nextOffset a pagina su |
refused | Niente di fatto: ok: false con un errore o un tag (input non valido, negato, non disponibile, niente da fare) |
conflict | Il documento proseguiva: ActionConflict o stato stale/conflict. Ispezionare nuovamente prima di riprovare. |
cancelled | ActionInterrupted |
uncertain | ActionUncertain: una scrittura potrebbe essere stata confermata ma la sua risposta non può essere letta. Riconciliarsi ispezionando; non riprovare mai alla cieca. |
Le scritture sono legate ad una revisione del disegno. Una scrittura confermata restituisce un ActionCommitted ricevuta con previousRevision e revision; una scrittura contro una stantia expectedRevision ritorna ActionConflict con entrambi expectedRevision e actualRevision. La stessa classificazione (actionOutcome) è condiviso dall'host, dalla modalità codice, dal desktop e dal bridge.
{
"ok": false,
"_tag": "ActionConflict",
"actionId": "cad_edit.modify",
"projectId": "…", "drawingId": "…",
"expectedRevision": 41, "actualRevision": 42,
"message": "…"
}