Guida alle API reference utilizzabili con Script Bridge

Questa guida spiega come individuare, leggere e applicare le API reference GX-TXT che sono realmente invocabili da uno script Python o GNU Octave. Non sostituisce le singole reference: insegna a capire quale reference consultare, quale sottoinsieme è esposto dal Bridge e come trasformare la documentazione del provider in una chiamata gxtxt_api_call() corretta.

Versione verificata

Framework verificatoGX-TXT 0.9.8.10-dev-031
Data verifica3 ottobre 2026
Bridge contractOCTAVE_SCRIPT_BRIDGE_API_v1, condiviso dai client GNU Octave e Python
Inventario usatodocs/api/SCRIPT_BRIDGE_COVERAGE_v1.json
Guida dipendente dalla release
Questa pagina fotografa la copertura Script Bridge della release indicata. Le singole API mantengono versioni proprie, ma l'insieme di provider e operazioni script-callable può crescere o cambiare fra release GX-TXT. La sezione finale contiene la procedura di aggiornamento.

1. Prima distinzione: reference pubblica ≠ operazione disponibile al Bridge

Una API reference GX-TXT può descrivere il contratto pubblico completo del provider, comprese operazioni destinate a CORE, Tcl, GUI o moduli nativi. Lo Script Bridge espone soltanto le operazioni per le quali esiste una binding script-callable registrata dal provider.

Architettura Script Bridge e provider public API
Il Bridge non contiene una tabella privata di adattatori specifici per ogni API. Ogni provider registra la propria binding; il Bridge ne espone il sottoinsieme consentito agli script.

Per questo motivo la domanda corretta non è soltanto «esiste FOO_API_v1?», ma:

  1. questa API è registrata per lo Script Bridge corrente?
  2. la specifica operation che mi serve è registrata?
  3. provider, versione e capability corrispondono a ciò che richiede il mio script?
  4. quali sono gli argomenti e il result contract documentati dal provider?

2. Le funzioni generiche del Bridge

Il livello generico è stabile e uguale concettualmente per Python e Octave.

FunzioneUso
gxtxt_bridge_info()Identità/versione del Bridge, linguaggi supportati e callback contract.
gxtxt_api_list()Elenca soltanto le API attualmente registrate come script-callable.
gxtxt_api_has(api_id)Test rapido di disponibilità.
gxtxt_api_describe(api_id)Descriptor machine-readable: provider, versione, capability, operations, argomenti e result contract.
gxtxt_api_has_operation(api_id, operation)Verifica una operation specifica.
gxtxt_api_require(requirements)Preflight dichiarativo; fallisce prima del calcolo se il contratto richiesto non è presente.
gxtxt_api_call(api_id, operation, args)Invoca l'operation con argomenti posizionali tipizzati.
gxtxt_context()Contesto della run: input alias, run ID, script identity, output directory e parametri.
gxtxt_callback_register() / release()Callback execution-scoped per le API che le supportano.
Regola pratica
La reference del provider spiega che cosa significa l'operazione. gxtxt_api_describe() conferma se e come quella operazione è esposta al tuo script in quella release.

3. Metodo corretto per leggere una API reference

Workflow per leggere e usare una API reference tramite Script Bridge
Workflow consigliato: discovery runtime → reference del provider → verifica Bridge → required API → call.

3.1 Identifica API ID e versione

Cerca nella reference l'ID versionato, per esempio CANONICAL_DATASET_API_v2. La versione del contratto è indipendente dalla release GX-TXT.

3.2 Cerca la sezione Script Bridge

Molte reference riportano esplicitamente una sezione Octave Script Bridge o equivalente. Quella sezione è particolarmente importante: descrive le operations esposte, la convenzione degli argomenti posizionali e il risultato visto dallo script.

3.3 Non trasformare automaticamente le firme Tcl in chiamate Bridge

Esempio: la Canonical Dataset API v2 documenta numerose funzioni Tcl per handle, hyperslab e binary transport. Nella dev-031 il Bridge espone invece soltanto:

list()
describe(dataset_id)
read_range(dataset_id, variable_ids, zero_based_start, count)

Quindi una funzione Tcl presente nella stessa reference non diventa automaticamente un nome valido per gxtxt_api_call().

3.4 Controlla gli argomenti strutturati

gxtxt_api_describe() include descriptor delle operations con nome, summary, argomenti strutturati, required status e result_contract. Le opzioni scientifiche, enumerazioni, unità e semantiche restano però responsabilità della reference specifica del provider.

3.5 Controlla provider e capability quando la dipendenza è importante

Se lo script dipende non soltanto dall'ID ma da un provider o da capability specifiche, esprimilo nel preflight anziché affidarti a un controllo manuale.

4. Required APIs: rendere esplicito il contratto dello script

La sintassi compatta è:

API_ID
API_ID@version
API_ID@version:provider_id
API_ID@version:provider_id+capability|capability

Esempi:

CANONICAL_DATASET_API_v2@2
PLOT_DATASET_API_v3@3:plot.dataset+plotspec|render

Il controllo avviene prima del corpo scientifico. Questo è preferibile a scoprire a metà calcolo che un'operazione necessaria non è disponibile.

5. Dalla reference alla chiamata: esempio completo

La reference di CANONICAL_DATASET_API_v2 dichiara per il Bridge l'operation read_range con argomenti:

dataset_id, variable_id_cell/list, zero_based_start, count

Python

from gxtxt import (
    gxtxt_api_list, gxtxt_api_describe, gxtxt_api_require,
    gxtxt_api_has_operation, gxtxt_api_call
)

# 1. Runtime discovery
apis = gxtxt_api_list()
desc = gxtxt_api_describe("CANONICAL_DATASET_API_v2")

# 2. Fail before scientific work if the contract is missing
gxtxt_api_require("CANONICAL_DATASET_API_v2@2:canonical_dataset")

# 3. Verify the operation named by the reference
if not gxtxt_api_has_operation("CANONICAL_DATASET_API_v2", "read_range"):
    raise RuntimeError("read_range is unavailable")

# 4. Translate the provider reference literally into positional args
block = gxtxt_api_call(
    "CANONICAL_DATASET_API_v2",
    "read_range",
    ["sample", ["v0001"], 0, 1024],
)

GNU Octave

apis = gxtxt_api_list();
desc = gxtxt_api_describe('CANONICAL_DATASET_API_v2');

gxtxt_api_require('CANONICAL_DATASET_API_v2@2:canonical_dataset');

if (!gxtxt_api_has_operation('CANONICAL_DATASET_API_v2','read_range'))
  error('read_range is unavailable');
endif

block = gxtxt_api_call(
  'CANONICAL_DATASET_API_v2',
  'read_range',
  {'sample', {'v0001'}, 0, 1024}
);

La traduzione è deliberatamente meccanica: API ID e operation sono stringhe esatte della binding; args resta una lista/tupla Python o una cell array Octave nello stesso ordine documentato.

Guide API scientifiche collegate

Per una spiegazione didattica delle API più ampie: NUMERIC_API_v1 e SIGNAL_API_v1.

6. Reference utilizzabili con lo Script Bridge nella dev-031

La tabella seguente non sostituisce le reference specifiche: serve a sapere quali reference vale la pena consultare da uno script e quali operations risultano esposte nella copertura verificata.

API referencevProviderOperations bridgedQuando consultarla
CANONICAL_DATASET_API_v22canonical_datasetlist, describe, read_rangeDataset: elenco, descrizione e lettura bounded.
DATASET_VARIABLE_SCHEMA_API_v33dataset_variable_schemalist, getVariable ID, dtype, shape, coordinate e metadata.
DATASET_METADATA_API_v11dataset_metadataread, update, unsetMetadata persistenti del Dataset.
DATASET_SELECTION_API_v11dataset_selectionlist, describeLettura delle selezioni persistenti.
TABLE_STREAM_API_v33table_streamopen_dataset, metadata, next, diagnostics, closeStreaming tabellare per Dataset grandi.
TEMPORAL_SET_API_v11temporal_setlist, read, resolve_info, resolve_memberSet temporali e risoluzione dei membri.
UNIT_REGISTRY_API_v11unit_registrylist, definition, compatible, convertUnità, compatibilità e conversione.
DATASET_PUBLICATION_API_v22dataset_publicationbegin, declare_dimension, declare_variable, write_variable, append, finalize, abortPubblicazione di Dataset derivati.
DATASET_FILE_PUBLICATION_API_v11dataset_file_publicationpublishPubblicazione di file completati.
SESSION_PERSISTENCE_API_v11session_persistencecommitCommit esplicito della persistenza Session.
PLOT_DATASET_API_v33plot.datasetapi_info, new_spec, validate_spec, upsert_plot, read_plot, render, artifacts, build_scene, interactive_status, sync_interactiveFacade corrente per grafici persistenti e 3D.
PLOT_DATASET_API_v22plot.datasetapi_info, validate_spec, create_plot, read_plot, render, rerenderFacade PlotSpec v2 ancora bridged.
GRAPH_SERIES_API_v11graph_serieslistIspezione delle Graph Series.
VIEWER_PROVIDER_API_v11viewer_providerproviders, scene_get, scene_set, layer_ids, layer_get, layer_setScene/layer tramite Viewer Provider pubblico.
NATIVE_3D_VIEWER_API_v11viewer.native_3dsource_identityIdentità pubblica della sorgente 3D.
NUMERIC_API_v11math.numericarray_binary, array_compare, array_mask, array_reduce, array_select, array_unary, array_where, foundation, linear_matrix, statistics_dataset, root_find, minimize_1d, minimize, nonlinear_fit, dataset_nonlinear_fitNumerica generale, algebra, fitting, ottimizzazione e callback.
SIGNAL_API_v11math.signal66 operazioniSignal processing: filter, spectral, STFT, LTI, metrics, multirate.
RF_NETWORK_API_v11math.rf_network29 operazioniReti RF: conversioni, metriche, cascade, de-embedding, sweep.
MAGNETICS_API_v11math.magnetics45 operazioniMagnetismo: campi, circuiti, BH, energia, integrali e coordinate.
SCRIPT_CALLBACK_API_v11Bridge execution scoperegister, releaseCallback Python/Octave passabili alle API numeriche supportate.
PARALLEL_EXECUTION_API_v11parallel_executionapi_info, resourcesPolicy risorse; execute/process_command restano host-only.
PROGRESS_API_v11progresspublishAggiornamento dello stato/progresso.
SESSION_INSPECTION_API_v11session_inspectionsummary, dataset_ids, dataset, selection_idsIspezione read-oriented della Session.
PROJECT_API_v11projectlist, getIspezione dei Project.
SCIENTIFIC_REFERENCE_LIBRARY_API_v11scientific_reference_librarylist_libraries, library_info, list_entities, entity_info, list_spectra, spectrum_info, read_spectrum, search, bulk_rankLibrerie scientifiche di riferimento.
SEMANTIC_REGISTRY_API_v11semantic_registrylist, definitionSemantiche registrate.
DOCUMENTATION_BROWSER_API_v11documentation_browserlist, readDocumentazione pubblica accessibile al runtime.
INTERACTIVE_DOCUMENT_API_v11interactive_documentlist, readDocumenti interattivi: lettura; write resta host-only.
MODULE_API_v11modulepublic_api_idsScoperta delle API pubbliche esposte dai moduli.
Signal, RF e Magnetics
Le tre API scientifiche più ampie espongono rispettivamente 66, 29 e 45 operations nella dev-031. Per queste reference è più utile usare gxtxt_api_describe() per filtrare per nome e poi aprire la reference specifica, invece di memorizzare l'intero catalogo.

7. Percorsi consigliati per tipo di lavoro

Leggere un Dataset

SESSION_INSPECTION_API_v1 → DATASET_VARIABLE_SCHEMA_API_v3 → CANONICAL_DATASET_API_v2. Per flussi grandi usa TABLE_STREAM_API_v3.

Pubblicare risultati

DATASET_PUBLICATION_API_v2 per Dataset strutturati; DATASET_FILE_PUBLICATION_API_v1 per file completati.

Creare o aggiornare grafici

Preferisci PLOT_DATASET_API_v3 come facade corrente. La reference Plot Dataset spiega PlotSpec, identità persistente, rendering e 3D.

Calcolo numerico

NUMERIC_API_v1, SIGNAL_API_v1, RF_NETWORK_API_v1, MAGNETICS_API_v1. Se la firma richiede una funzione, consulta anche SCRIPT_CALLBACK_API_v1.

Unità e semantica

UNIT_REGISTRY_API_v1 e SEMANTIC_REGISTRY_API_v1 evitano conversioni e interpretazioni hardcoded nello script.

Viewer e 3D

VIEWER_PROVIDER_API_v1, NATIVE_3D_VIEWER_API_v1 e PLOT_DATASET_API_v3. I controlli GUI live non sono tutti script-callable.

Librerie scientifiche

SCIENTIFIC_REFERENCE_LIBRARY_API_v1 per ricerca, ranking, entità e spettri registrati.

Risorse e progress

PARALLEL_EXECUTION_API_v1/resources per dimensionare i worker; PROGRESS_API_v1/publish per lo stato della run.

8. Callback: quando una reference contiene una funzione da valutare

Alcune operations numeriche accettano funzioni definite dallo script. Non si serializza il codice della funzione: si registra un handle execution-scoped con SCRIPT_CALLBACK_API_v1.

# Python
rhs = gxtxt_callback_register(lambda t, y: -2*y)
result = gxtxt_api_call(
    "NUMERIC_API_v1", "foundation",
    ["ode", "solve", rhs, [0.,1.], [1.], {"reltol":1e-8}]
)
gxtxt_callback_release(rhs)

Lo stesso principio vale in Octave con function handle. La reference numerica specifica definisce shape e semantica del callback; la Callback API definisce lifecycle, errori e limiti del trasporto.

Niente Bridge annidato nel callback
Una callback viene eseguita mentre la chiamata API originaria è ancora in corso. Una nuova chiamata Bridge dall'interno della callback è quindi rifiutata.

9. Tipi e transport: come interpretare i result contract

Il Bridge trasporta stringhe UTF-8, booleani, interi, float, vettori, matrici, celle/liste, struct/dict, liste di struct e combinazioni annidate. Gli array numerici grandi usano automaticamente un trasporto binario privato.

Quando una reference parla di «struct», «dictionary», «cell» o «list», interpreta il tipo nel linguaggio client mantenendo la struttura logica, non l'implementazione Tcl del provider.

10. API pubbliche ma host-only

Le seguenti reference possono essere pubbliche e utili per sviluppare moduli o CORE, ma la copertura dev-031 le marca come host-only per gli script:

API / operationPerché non si usa dal Bridge
CONFIGURATION_API_v1Configurazione host e selezione runtime.
GRAPH_PROVIDER_API_v1Registrazione provider e dispatch grafico GUI.
ANALYSIS_SOURCE_MAP_API_v1Registrazione Analysis Sources; lo script riceve binding già risolti in gxtxt_context().
SESSION_GENERATOR_LIBRARY_API_v1Amministrazione generatori e creazione Session.
SCRIPT_EXECUTION_API_v1Registry e lifecycle del runner.
PARALLEL_EXECUTION_API_v1/executeCommand prefix Tcl/process rimangono host-owned; lo script legge solo la policy resources.
NATIVE_3D_VIEWER_API_v1/renderer_controlsControlli renderer con GUI live.
INTERACTIVE_DOCUMENT_API_v1/writeCreazione/update documenti provider-owned.

Notare i casi parziali: PARALLEL_EXECUTION_API_v1 è disponibile per resources, ma non per execute; INTERACTIVE_DOCUMENT_API_v1 è leggibile, ma write è host-only.

11. Interfacce intenzionalmente non script-safe

InterfacciaMotivo
PLUGIN_INSTALL_API_v1Installazione amministrativa dei package.
ACQUISITION_HANDLER_API_v1Registrazione handler, probe e import dispatch.
NATIVE_3D_RAW_HOST_PROTOCOLProtocollo raw privato Native3D.
DATASET_REGISTRY_INTERNALRegistry Dataset mutabile e Manifest raw.
VIEWER_BACKEND_REGISTERRegistrazione backend e callback GUI.
PARALLEL_EXECUTION_API_v1/process_commandBuilder di comandi eseguibili arbitrari.
Confine da mantenere
Uno script non deve aggirare questi limiti aprendo registry, Manifest, binding file o protocolli privati. Se manca una capability scientificamente necessaria, va aggiunta o estesa una API pubblica/provider binding, non introdotto un accesso laterale.

12. Errori del Bridge

Gli identificatori generici stabili documentati sono:

GXTXT:ScriptBridge:NotActiveChiamata fuori da una run con Bridge attivo.
UnknownAPIAPI non registrata script-callable.
UnknownOperationOperation non presente nella binding.
InvalidArgumentsFirma/argomenti non validi.
TransportErrore nel typed transport.
RemoteErrorErrore esplicito del provider.

Un provider error non viene convertito in un risultato vuoto. In Python gli errori arrivano come GXTXTBridgeError; in Octave come errori con identificatore/messaggio.

13. Il Bridge non è una sandbox

Il Bridge limita quali servizi GX-TXT possono essere invocati, ma lo script Python/Octave resta codice del ricercatore eseguito con i permessi locali dell'utente. Non usare questa architettura come confine di sicurezza per codice non fidato.

14. Come aggiornare questa guida a una nuova release GX-TXT

Questa è la parte da ripetere ogni volta che la documentazione viene riallineata a una nuova release.

  1. Leggere VERSION.txt della nuova baseline.
  2. Leggere integralmente docs/api/SCRIPT_BRIDGE_COVERAGE_v1.json.
  3. Confrontare API aggiunte/rimosse, versioni, provider, status e lista operations.
  4. Ricontrollare OCTAVE_SCRIPT_BRIDGE_API_v1.md e PYTHON_SCRIPT_CLIENT_v1.md.
  5. Per ogni API che cambia, aprire la reference del provider e verificare la sua sezione Script Bridge.
  6. Controllare gxtxt_api_describe() su una run reale per almeno le API principali.
  7. Aggiornare la matrice di questa pagina e la data di verifica.
  8. Rigenerare soltanto lo ZIP differenziale del sito.
Cosa non richiede automaticamente una riscrittura
Se cambia la release GX-TXT ma una API mantiene lo stesso ID/versione e la stessa binding/operation metadata, la spiegazione concettuale resta valida. L'aggiornamento deve concentrarsi sulla copertura effettiva e sui contratti che hanno davvero cambiato forma.

15. Riferimenti del framework usati per questa guida