@delta-infra/cli 1.1.19 → 1.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +511 -520
- package/checksums.txt +5 -5
- package/package.json +1 -1
- package/scripts/install-wizard.js +689 -688
- package/scripts/install.js +442 -442
- package/scripts/run.js +65 -65
- package/skills/delta-protein/AGENTS.md +72 -72
- package/skills/delta-protein/SKILL.md +388 -388
- package/skills/delta-protein/agents/openai.yaml +3 -3
- package/skills/delta-protein/references/bfitter.md +63 -63
- package/skills/delta-protein/references/catapro_predict.md +62 -62
- package/skills/delta-protein/references/catpred_predict.md +64 -64
- package/skills/delta-protein/references/caver_tunnel_analyze.md +62 -62
- package/skills/delta-protein/references/consensus_mutation.md +60 -60
- package/skills/delta-protein/references/consurf_predict.md +66 -66
- package/skills/delta-protein/references/crop_sequence.md +68 -68
- package/skills/delta-protein/references/dock.md +81 -81
- package/skills/delta-protein/references/dock_score.md +69 -69
- package/skills/delta-protein/references/easifa_predict_active_site.md +69 -69
- package/skills/delta-protein/references/ephod_predict_mutation.md +65 -65
- package/skills/delta-protein/references/ephod_predict_protein.md +60 -60
- package/skills/delta-protein/references/esmfold2_predict.md +66 -66
- package/skills/delta-protein/references/evcouplings_mutation.md +63 -63
- package/skills/delta-protein/references/fasta_to_sequence.md +58 -58
- package/skills/delta-protein/references/foldseek.md +60 -60
- package/skills/delta-protein/references/generate_msa.md +60 -60
- package/skills/delta-protein/references/interpro_analyze.md +62 -62
- package/skills/delta-protein/references/mpnn_design_sequence.md +70 -70
- package/skills/delta-protein/references/multievolve.md +72 -72
- package/skills/delta-protein/references/pisa_query.md +69 -69
- package/skills/delta-protein/references/plip_analyze.md +64 -64
- package/skills/delta-protein/references/pocket_prediction.md +62 -62
- package/skills/delta-protein/references/protein_design.md +64 -64
- package/skills/delta-protein/references/protein_evolution.md +76 -76
- package/skills/delta-protein/references/protein_sol_predict_mutation.md +65 -65
- package/skills/delta-protein/references/protein_sol_predict_protein.md +60 -60
- package/skills/delta-protein/references/protenix.md +65 -65
- package/skills/delta-protein/references/protrek_search.md +89 -89
- package/skills/delta-protein/references/pubchem_search.md +67 -67
- package/skills/delta-protein/references/pubmed_search.md +78 -78
- package/skills/delta-protein/references/reap_design_primer.md +68 -68
- package/skills/delta-protein/references/rfd3_design.md +64 -64
- package/skills/delta-protein/references/structure_to_sequence.md +60 -60
- package/skills/delta-protein/references/summarize_result.md +67 -67
- package/skills/delta-protein/references/surface_charge.md +83 -83
- package/skills/delta-protein/references/uniprot_batch_query.md +62 -62
- package/skills/delta-protein/references/uniprot_query.md +63 -63
- package/skills/delta-protein/references/zero_shot_mutant_candidates.md +75 -75
- package/skills/delta-protein/scripts/gen_references.py +166 -166
- package/skills/delta-protein/scripts/output_metadata.json +274 -274
- package/skills/delta-sandbox/SKILL.md +388 -388
- package/skills/delta-sandbox/agents/openai.yaml +4 -4
- package/skills/delta-sandbox/references/commands.md +71 -58
- package/skills/delta-sandbox/references/lifecycle.md +101 -100
- package/skills/delta-sandbox/references/recipes.md +138 -138
- package/skills/delta-science/AGENTS.md +47 -47
- package/skills/delta-science/SKILL.md +227 -227
- package/skills/delta-science/agents/openai.yaml +4 -4
- package/skills/delta-science/references/antbo.md +105 -105
- package/skills/delta-science/references/delta-bo.md +92 -92
- package/skills/delta-science/references/gsasii.md +118 -118
- package/skills/delta-science/references/lammps.md +68 -68
- package/skills/delta-science/references/ldm-bo.md +132 -132
- package/skills/delta-science/references/materials-design.md +130 -130
- package/skills/delta-science/references/pubchem.md +128 -128
- package/skills/delta-science/references/pymatgen.md +69 -69
- package/skills/delta-science/references/qe.md +134 -134
- package/skills/delta-science/references/rdkit.md +141 -141
- package/skills/delta-science/references/strbo.md +95 -95
- package/skills/delta-science/references/synbo.md +201 -201
- package/skills/delta-science/references/xrd.md +154 -170
- package/skills/delta-science/scripts/catalog.py +92 -92
- package/skills/delta-science/scripts/generated_catalog.py +69 -69
- package/skills/delta-science/scripts/invoke.py +346 -346
- package/skills/delta-shared/SKILL.md +115 -113
- package/skills/delta-shared/agents/openai.yaml +4 -4
- package/skills/manifest.json +20 -20
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
# PubChem reference
|
|
2
|
-
|
|
3
|
-
Call this tool only through `delta-cli science invoke`. Business responses are in the top-level
|
|
4
|
-
CLI `data`; read only the fields described here and do not search recursively. URLs in this file
|
|
5
|
-
explain the endpoint schema and do not authorise direct HTTP access. For a basic lookup by a
|
|
6
|
-
single common name, call `compound-summary` once. For multiple names, call
|
|
7
|
-
`compound-batch-summary` once with a default body containing only `identifiers` and
|
|
8
|
-
`namespace:"name"`; do not call health or schema first.
|
|
9
|
-
|
|
10
|
-
Project results directly from `data`. Batch records are in `data.results[*]`, the original label
|
|
11
|
-
is in `input`, and properties are nested under `properties`. Use this fixed SMILES fallback
|
|
12
|
-
order: `CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`. Do not treat PubChem
|
|
13
|
-
`XLogP` and RDKit `MolLogP` as interchangeable; do not fill a `not_found` result with local
|
|
14
|
-
calculations.
|
|
15
|
-
|
|
16
|
-
Namespaces: `cid`, `name`, `smiles`, `inchi`, `inchikey`, `formula`.
|
|
17
|
-
|
|
18
|
-
## Health
|
|
19
|
-
|
|
20
|
-
Operation: `health`; no request body.
|
|
21
|
-
|
|
22
|
-
## Resolve CIDs
|
|
23
|
-
|
|
24
|
-
Operation: `compound-resolve-cids`.
|
|
25
|
-
|
|
26
|
-
```json
|
|
27
|
-
{"identifier": "aspirin", "namespace": "name", "max_records": 20}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
`max_records`: 1-100.
|
|
31
|
-
|
|
32
|
-
## Properties
|
|
33
|
-
|
|
34
|
-
Operation: `compound-properties`.
|
|
35
|
-
|
|
36
|
-
```json
|
|
37
|
-
{
|
|
38
|
-
"identifier": "2244",
|
|
39
|
-
"namespace": "cid",
|
|
40
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"]
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Allowed properties include `MolecularFormula`, `MolecularWeight`,
|
|
45
|
-
`CanonicalSMILES`, `IsomericSMILES`, `SMILES`, `ConnectivitySMILES`,
|
|
46
|
-
`IUPACName`, `InChI`, `InChIKey`, `XLogP`, `TPSA`, `HBondDonorCount`,
|
|
47
|
-
`HBondAcceptorCount`, `RotatableBondCount`, `ExactMass`, `MonoisotopicMass`,
|
|
48
|
-
`Charge`, `HeavyAtomCount`, `Complexity`, `CovalentUnitCount`,
|
|
49
|
-
`DefinedAtomStereoCount`, `UndefinedAtomStereoCount`, `DefinedBondStereoCount`,
|
|
50
|
-
`UndefinedBondStereoCount`, and `IsotopeAtomCount`.
|
|
51
|
-
|
|
52
|
-
## Synonyms
|
|
53
|
-
|
|
54
|
-
Operation: `compound-synonyms`.
|
|
55
|
-
|
|
56
|
-
```json
|
|
57
|
-
{"identifier": "2244", "namespace": "cid", "max_synonyms": 50}
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
`max_synonyms`: 1-500.
|
|
61
|
-
|
|
62
|
-
## Summary
|
|
63
|
-
|
|
64
|
-
Operation: `compound-summary`.
|
|
65
|
-
|
|
66
|
-
```json
|
|
67
|
-
{
|
|
68
|
-
"identifier": "aspirin",
|
|
69
|
-
"namespace": "name",
|
|
70
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"],
|
|
71
|
-
"synonym_limit": 20
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
`synonym_limit`: 0-100. Use this endpoint for general compound lookup because
|
|
76
|
-
it resolves CID, selected properties, and synonyms in one call.
|
|
77
|
-
|
|
78
|
-
Response fields include `valid`, `cid`, `properties`, `properties_raw`,
|
|
79
|
-
`aliases`, `synonyms`, and `metadata`. Numeric properties are coerced to JSON
|
|
80
|
-
numbers when possible. Requested SMILES aliases are filled when PubChem returns
|
|
81
|
-
an equivalent key such as `ConnectivitySMILES`.
|
|
82
|
-
|
|
83
|
-
## Batch Summary
|
|
84
|
-
|
|
85
|
-
Operation: `compound-batch-summary`.
|
|
86
|
-
|
|
87
|
-
```json
|
|
88
|
-
{
|
|
89
|
-
"identifiers": ["aspirin", "ibuprofen", "caffeine"],
|
|
90
|
-
"namespace": "name",
|
|
91
|
-
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "XLogP", "TPSA"],
|
|
92
|
-
"synonym_limit": 5
|
|
93
|
-
}
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
Limits: 1-100 identifiers. The response preserves input order and includes
|
|
97
|
-
per-item errors:
|
|
98
|
-
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"valid": false,
|
|
102
|
-
"namespace": "name",
|
|
103
|
-
"properties_requested": ["CanonicalSMILES"],
|
|
104
|
-
"results": [
|
|
105
|
-
{
|
|
106
|
-
"input": "aspirin",
|
|
107
|
-
"valid": true,
|
|
108
|
-
"cid": 2244,
|
|
109
|
-
"properties": {
|
|
110
|
-
"CanonicalSMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
111
|
-
"ConnectivitySMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
112
|
-
"_aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
113
|
-
"properties_raw": {}
|
|
114
|
-
},
|
|
115
|
-
"properties_raw": {},
|
|
116
|
-
"aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
117
|
-
"synonyms": []
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"input": "bad-name",
|
|
121
|
-
"valid": false,
|
|
122
|
-
"error": "not found"
|
|
123
|
-
}
|
|
124
|
-
],
|
|
125
|
-
"count": 2,
|
|
126
|
-
"failed_count": 1
|
|
127
|
-
}
|
|
128
|
-
```
|
|
1
|
+
# PubChem reference
|
|
2
|
+
|
|
3
|
+
Call this tool only through `delta-cli science invoke`. Business responses are in the top-level
|
|
4
|
+
CLI `data`; read only the fields described here and do not search recursively. URLs in this file
|
|
5
|
+
explain the endpoint schema and do not authorise direct HTTP access. For a basic lookup by a
|
|
6
|
+
single common name, call `compound-summary` once. For multiple names, call
|
|
7
|
+
`compound-batch-summary` once with a default body containing only `identifiers` and
|
|
8
|
+
`namespace:"name"`; do not call health or schema first.
|
|
9
|
+
|
|
10
|
+
Project results directly from `data`. Batch records are in `data.results[*]`, the original label
|
|
11
|
+
is in `input`, and properties are nested under `properties`. Use this fixed SMILES fallback
|
|
12
|
+
order: `CanonicalSMILES -> ConnectivitySMILES -> SMILES -> IsomericSMILES`. Do not treat PubChem
|
|
13
|
+
`XLogP` and RDKit `MolLogP` as interchangeable; do not fill a `not_found` result with local
|
|
14
|
+
calculations.
|
|
15
|
+
|
|
16
|
+
Namespaces: `cid`, `name`, `smiles`, `inchi`, `inchikey`, `formula`.
|
|
17
|
+
|
|
18
|
+
## Health
|
|
19
|
+
|
|
20
|
+
Operation: `health`; no request body.
|
|
21
|
+
|
|
22
|
+
## Resolve CIDs
|
|
23
|
+
|
|
24
|
+
Operation: `compound-resolve-cids`.
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{"identifier": "aspirin", "namespace": "name", "max_records": 20}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`max_records`: 1-100.
|
|
31
|
+
|
|
32
|
+
## Properties
|
|
33
|
+
|
|
34
|
+
Operation: `compound-properties`.
|
|
35
|
+
|
|
36
|
+
```json
|
|
37
|
+
{
|
|
38
|
+
"identifier": "2244",
|
|
39
|
+
"namespace": "cid",
|
|
40
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"]
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Allowed properties include `MolecularFormula`, `MolecularWeight`,
|
|
45
|
+
`CanonicalSMILES`, `IsomericSMILES`, `SMILES`, `ConnectivitySMILES`,
|
|
46
|
+
`IUPACName`, `InChI`, `InChIKey`, `XLogP`, `TPSA`, `HBondDonorCount`,
|
|
47
|
+
`HBondAcceptorCount`, `RotatableBondCount`, `ExactMass`, `MonoisotopicMass`,
|
|
48
|
+
`Charge`, `HeavyAtomCount`, `Complexity`, `CovalentUnitCount`,
|
|
49
|
+
`DefinedAtomStereoCount`, `UndefinedAtomStereoCount`, `DefinedBondStereoCount`,
|
|
50
|
+
`UndefinedBondStereoCount`, and `IsotopeAtomCount`.
|
|
51
|
+
|
|
52
|
+
## Synonyms
|
|
53
|
+
|
|
54
|
+
Operation: `compound-synonyms`.
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{"identifier": "2244", "namespace": "cid", "max_synonyms": 50}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`max_synonyms`: 1-500.
|
|
61
|
+
|
|
62
|
+
## Summary
|
|
63
|
+
|
|
64
|
+
Operation: `compound-summary`.
|
|
65
|
+
|
|
66
|
+
```json
|
|
67
|
+
{
|
|
68
|
+
"identifier": "aspirin",
|
|
69
|
+
"namespace": "name",
|
|
70
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "IUPACName"],
|
|
71
|
+
"synonym_limit": 20
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`synonym_limit`: 0-100. Use this endpoint for general compound lookup because
|
|
76
|
+
it resolves CID, selected properties, and synonyms in one call.
|
|
77
|
+
|
|
78
|
+
Response fields include `valid`, `cid`, `properties`, `properties_raw`,
|
|
79
|
+
`aliases`, `synonyms`, and `metadata`. Numeric properties are coerced to JSON
|
|
80
|
+
numbers when possible. Requested SMILES aliases are filled when PubChem returns
|
|
81
|
+
an equivalent key such as `ConnectivitySMILES`.
|
|
82
|
+
|
|
83
|
+
## Batch Summary
|
|
84
|
+
|
|
85
|
+
Operation: `compound-batch-summary`.
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"identifiers": ["aspirin", "ibuprofen", "caffeine"],
|
|
90
|
+
"namespace": "name",
|
|
91
|
+
"properties": ["MolecularFormula", "MolecularWeight", "CanonicalSMILES", "XLogP", "TPSA"],
|
|
92
|
+
"synonym_limit": 5
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Limits: 1-100 identifiers. The response preserves input order and includes
|
|
97
|
+
per-item errors:
|
|
98
|
+
|
|
99
|
+
```json
|
|
100
|
+
{
|
|
101
|
+
"valid": false,
|
|
102
|
+
"namespace": "name",
|
|
103
|
+
"properties_requested": ["CanonicalSMILES"],
|
|
104
|
+
"results": [
|
|
105
|
+
{
|
|
106
|
+
"input": "aspirin",
|
|
107
|
+
"valid": true,
|
|
108
|
+
"cid": 2244,
|
|
109
|
+
"properties": {
|
|
110
|
+
"CanonicalSMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
111
|
+
"ConnectivitySMILES": "CC(=O)Oc1ccccc1C(=O)O",
|
|
112
|
+
"_aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
113
|
+
"properties_raw": {}
|
|
114
|
+
},
|
|
115
|
+
"properties_raw": {},
|
|
116
|
+
"aliases": {"CanonicalSMILES": "ConnectivitySMILES"},
|
|
117
|
+
"synonyms": []
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"input": "bad-name",
|
|
121
|
+
"valid": false,
|
|
122
|
+
"error": "not found"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"count": 2,
|
|
126
|
+
"failed_count": 1
|
|
127
|
+
}
|
|
128
|
+
```
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
# pymatgen reference
|
|
2
|
-
|
|
3
|
-
Make all calls with `delta-cli science invoke`. Prefer pymatgen for inorganic formulae,
|
|
4
|
-
composition and formula weight; do not use PubChem or a local element table as a substitute.
|
|
5
|
-
Structure operations require the complete structure text, not a local file path. Supported formats
|
|
6
|
-
are `cif`, `poscar`, `json`, `cssr` and `xsf`; LAMMPS data and dump files are not accepted.
|
|
7
|
-
|
|
8
|
-
## Health
|
|
9
|
-
|
|
10
|
-
Operation: `health`; no request body.
|
|
11
|
-
|
|
12
|
-
## Composition Parse
|
|
13
|
-
|
|
14
|
-
Operation: `composition-parse`.
|
|
15
|
-
|
|
16
|
-
```json
|
|
17
|
-
{"formula": "LiFePO4", "format": "formula"}
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
Key response fields in `data`: `valid`, `formula`, `reduced_formula`,
|
|
21
|
-
`alphabetic_formula`, `anonymous_formula`, `chemical_system`,
|
|
22
|
-
`number_of_atoms`, `weight`, `element_amounts`, `atomic_fractions`,
|
|
23
|
-
`weight_fractions`, `error`.
|
|
24
|
-
|
|
25
|
-
## Structure Parse / Summary
|
|
26
|
-
|
|
27
|
-
Operation: `structure-parse` or `structure-summary`.
|
|
28
|
-
|
|
29
|
-
```json
|
|
30
|
-
{"input": "<CIF text>", "format": "cif", "primitive": false}
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Input formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
34
|
-
|
|
35
|
-
Summary fields include `formula`, `reduced_formula`, `chemical_system`,
|
|
36
|
-
`nsites`, `nelements`, `density`, `volume`, `lattice`, `element_amounts`, and
|
|
37
|
-
`species`.
|
|
38
|
-
|
|
39
|
-
## Structure Convert
|
|
40
|
-
|
|
41
|
-
Operation: `structure-convert`.
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
{
|
|
45
|
-
"input": "<CIF text>",
|
|
46
|
-
"input_format": "cif",
|
|
47
|
-
"output_format": "poscar",
|
|
48
|
-
"primitive": false
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Output formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
53
|
-
|
|
54
|
-
## Symmetry
|
|
55
|
-
|
|
56
|
-
Operation: `structure-symmetry`.
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{
|
|
60
|
-
"input": "<CIF text>",
|
|
61
|
-
"format": "cif",
|
|
62
|
-
"primitive": false,
|
|
63
|
-
"symprec": 0.01,
|
|
64
|
-
"angle_tolerance": 5.0
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Returns `space_group_symbol`, `space_group_number`, `crystal_system`,
|
|
69
|
-
`point_group_symbol`, `hall`, and `nsites`.
|
|
1
|
+
# pymatgen reference
|
|
2
|
+
|
|
3
|
+
Make all calls with `delta-cli science invoke`. Prefer pymatgen for inorganic formulae,
|
|
4
|
+
composition and formula weight; do not use PubChem or a local element table as a substitute.
|
|
5
|
+
Structure operations require the complete structure text, not a local file path. Supported formats
|
|
6
|
+
are `cif`, `poscar`, `json`, `cssr` and `xsf`; LAMMPS data and dump files are not accepted.
|
|
7
|
+
|
|
8
|
+
## Health
|
|
9
|
+
|
|
10
|
+
Operation: `health`; no request body.
|
|
11
|
+
|
|
12
|
+
## Composition Parse
|
|
13
|
+
|
|
14
|
+
Operation: `composition-parse`.
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{"formula": "LiFePO4", "format": "formula"}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Key response fields in `data`: `valid`, `formula`, `reduced_formula`,
|
|
21
|
+
`alphabetic_formula`, `anonymous_formula`, `chemical_system`,
|
|
22
|
+
`number_of_atoms`, `weight`, `element_amounts`, `atomic_fractions`,
|
|
23
|
+
`weight_fractions`, `error`.
|
|
24
|
+
|
|
25
|
+
## Structure Parse / Summary
|
|
26
|
+
|
|
27
|
+
Operation: `structure-parse` or `structure-summary`.
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{"input": "<CIF text>", "format": "cif", "primitive": false}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Input formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
34
|
+
|
|
35
|
+
Summary fields include `formula`, `reduced_formula`, `chemical_system`,
|
|
36
|
+
`nsites`, `nelements`, `density`, `volume`, `lattice`, `element_amounts`, and
|
|
37
|
+
`species`.
|
|
38
|
+
|
|
39
|
+
## Structure Convert
|
|
40
|
+
|
|
41
|
+
Operation: `structure-convert`.
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"input": "<CIF text>",
|
|
46
|
+
"input_format": "cif",
|
|
47
|
+
"output_format": "poscar",
|
|
48
|
+
"primitive": false
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Output formats: `cif`, `poscar`, `json`, `cssr`, `xsf`.
|
|
53
|
+
|
|
54
|
+
## Symmetry
|
|
55
|
+
|
|
56
|
+
Operation: `structure-symmetry`.
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"input": "<CIF text>",
|
|
61
|
+
"format": "cif",
|
|
62
|
+
"primitive": false,
|
|
63
|
+
"symprec": 0.01,
|
|
64
|
+
"angle_tolerance": 5.0
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Returns `space_group_symbol`, `space_group_number`, `crystal_system`,
|
|
69
|
+
`point_group_symbol`, `hall`, and `nsites`.
|
|
@@ -1,134 +1,134 @@
|
|
|
1
|
-
# Quantum ESPRESSO DFT reference
|
|
2
|
-
|
|
3
|
-
Use QE to run traceable, asynchronous Quantum ESPRESSO workflows through Chemistry Gateway.
|
|
4
|
-
The agent interacts only with the Gateway/Science Server contract: it does not run local `pw.x`,
|
|
5
|
-
call internal QE containers, or submit shell commands, scheduler scripts, `pseudo_dir`, `outdir`
|
|
6
|
-
or host paths.
|
|
7
|
-
|
|
8
|
-
The actual CLI tool for this reference is `qe`. Copy `tools.name` and `tool_endpoints.name`
|
|
9
|
-
exactly from the current CLI catalogue. The paths below describe the QE service contract; they
|
|
10
|
-
are not URLs to access directly or endpoint aliases that may be rewritten automatically.
|
|
11
|
-
|
|
12
|
-
## Capability groups
|
|
13
|
-
|
|
14
|
-
| Service path | Purpose | Type |
|
|
15
|
-
| --- | --- | --- |
|
|
16
|
-
| `/chem/qe/health`, `/healthz`, `/readyz` | Runtime, scheduler, storage and PP readiness | Read-only |
|
|
17
|
-
| `/chem/qe/v1/qe/workflow-types` | Workflow catalogue and support status | Read-only |
|
|
18
|
-
| `/chem/qe/v1/pp-sets`, `/pp-locks/{digest}` | Published PP profiles/locks | Read-only |
|
|
19
|
-
| `/chem/qe/v1/pp-sets:resolve` | Resolve PP candidates for the complete set of campaign elements | Read-only/validation |
|
|
20
|
-
| `/chem/qe/v1/artifacts` | Upload, query and download structure/fixed-coordinate artifacts | File/binary |
|
|
21
|
-
| `/chem/qe/v1/qe/jobs` | Submit asynchronous calculations and query jobs | Remote mutation |
|
|
22
|
-
| `/chem/qe/v1/qe/jobs/{job_id}/events`, `steps`, `logs`, `artifacts` | Read job progress and results | Read-only |
|
|
23
|
-
| `/chem/qe/v1/qe/jobs/{job_id}:cancel`, `:retry`, `:review` | Cancel, retry and scientifically review a job | Remote mutation |
|
|
24
|
-
|
|
25
|
-
When selecting a new operation, first run:
|
|
26
|
-
|
|
27
|
-
```text
|
|
28
|
-
delta-cli science list
|
|
29
|
-
delta-cli science endpoints list <exact tool name>
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Then call it using the exact names returned by the catalogue. If the catalogue has no schema, do
|
|
33
|
-
not guess the operation, path parameters, headers or body.
|
|
34
|
-
|
|
35
|
-
## CLI file and idempotency boundaries
|
|
36
|
-
|
|
37
|
-
Structure artifact uploads require `application/octet-stream` and query metadata; QE job
|
|
38
|
-
submission requires a stable `Idempotency-Key`. `science invoke` remains for JSON/query only;
|
|
39
|
-
send files through `science file` and persistent jobs through `science task`:
|
|
40
|
-
|
|
41
|
-
- `delta-cli science file invoke --tool qe --endpoint artifact-upload --file <path>` uploads
|
|
42
|
-
a structure artifact; for `custom-pp-upload`, also provide `custom_pp_id` in `--data`;
|
|
43
|
-
- `delta-cli science task submit --tool qe --operation job-submit --input JSON
|
|
44
|
-
--idempotency-key KEY` submits a durable QE job; the worker passes the idempotency key to Gateway;
|
|
45
|
-
- `delta-cli science file download --tool qe --endpoint artifact-content --params JSON
|
|
46
|
-
--output <path>` downloads a raw artifact;
|
|
47
|
-
- Do not send structure text, file paths, base64, `Idempotency-Key` or QE service credentials as
|
|
48
|
-
ordinary business fields, and do not call public or private Gateway URLs or `qe-cloud-compute:18020`.
|
|
49
|
-
|
|
50
|
-
## Correct sequence for a new job
|
|
51
|
-
|
|
52
|
-
1. Read health. Read readiness only when diagnosing the deployment, and choose a currently
|
|
53
|
-
`supported` task from the workflow catalogue.
|
|
54
|
-
2. Determine the complete `campaign_elements` set and use `pp-sets:resolve` to obtain a profile.
|
|
55
|
-
Production jobs must use the returned `pp_set_id` and immutable `lock_id`; do not infer the
|
|
56
|
-
lock from the profile name alone.
|
|
57
|
-
3. Ask the service to validate the structure artifact. The job must reference only the returned
|
|
58
|
-
`sha256:<digest>` artifact ID.
|
|
59
|
-
4. Submit to `qe/jobs` with stable idempotency semantics. A `202` response means accepted/queued,
|
|
60
|
-
not that QE has converged.
|
|
61
|
-
5. Poll the job, events, steps, logs and artifacts; read the `execution`, `solver` and
|
|
62
|
-
`scientific` states independently.
|
|
63
|
-
6. Verify each artifact's SHA-256 when downloading results. Report the selected backend, resource
|
|
64
|
-
telemetry, solver state, scientific review state and warnings separately.
|
|
65
|
-
|
|
66
|
-
The minimum business-data shape for PP resolution is shown below. Values must come from the
|
|
67
|
-
current service/catalogue; do not insert a fabricated production lock:
|
|
68
|
-
|
|
69
|
-
```json
|
|
70
|
-
{
|
|
71
|
-
"campaign_id": "si-bulk-scf-v1",
|
|
72
|
-
"campaign_elements": ["Si", "O"],
|
|
73
|
-
"workflows": ["qe.pw.scf"],
|
|
74
|
-
"explicit_mode": null
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
The core job structure is shown below. `workflow_inputs` must follow the current task schema:
|
|
79
|
-
|
|
80
|
-
```json
|
|
81
|
-
{
|
|
82
|
-
"task": "qe.pw.scf",
|
|
83
|
-
"schema_version": "1.1",
|
|
84
|
-
"campaign_id": "si-bulk-scf-v1",
|
|
85
|
-
"campaign_elements": ["Si"],
|
|
86
|
-
"structure": {"format": "artifact", "artifact_id": "sha256:<64-hex>"},
|
|
87
|
-
"physics": {
|
|
88
|
-
"parameter_set": "<approved-parameter-set>",
|
|
89
|
-
"pp_policy": {
|
|
90
|
-
"mode": "sssp_single",
|
|
91
|
-
"pp_set_id": "<approved-pp-set>",
|
|
92
|
-
"lock_id": "sha256:<64-hex>"
|
|
93
|
-
},
|
|
94
|
-
"kpoints": [4, 4, 4]
|
|
95
|
-
},
|
|
96
|
-
"resources": {
|
|
97
|
-
"profile": "standard",
|
|
98
|
-
"nodes": 1,
|
|
99
|
-
"mpi_ranks_per_node": 1,
|
|
100
|
-
"omp_threads_per_rank": 1,
|
|
101
|
-
"walltime_seconds": 3600,
|
|
102
|
-
"gpu_policy": "cpu"
|
|
103
|
-
},
|
|
104
|
-
"client_request_id": "si-scf-v1",
|
|
105
|
-
"workflow_inputs": {}
|
|
106
|
-
}
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
## CPU/GPU and state interpretation
|
|
110
|
-
|
|
111
|
-
CPU is the default, particularly for small or medium interactive jobs, PP/structure/audit/archive
|
|
112
|
-
jobs, and cost-sensitive work. Use `gpu` only when the user explicitly requests it or the project
|
|
113
|
-
already has a GPU budget, and the live catalogue returns `gpu_support_status: "verified"`. Do not
|
|
114
|
-
silently fall back to CPU when GPU is required. Claim that GPU was used only when the result
|
|
115
|
-
explicitly returns `selected_backend: "gpu"`; `auto` does not prove GPU use.
|
|
116
|
-
|
|
117
|
-
Keep the three state channels separate:
|
|
118
|
-
|
|
119
|
-
- `execution`: prepared/submitted/queued/running/scheduler completion/cancelled/failed;
|
|
120
|
-
- `solver`: not started/running/converged/not converged/failed/unknown;
|
|
121
|
-
- `scientific`: unreviewed, scientifically accepted, accepted with limitations, needs
|
|
122
|
-
recalculation, not assessable, failed or archived.
|
|
123
|
-
|
|
124
|
-
scheduler completion does not mean solver convergence, and solver convergence does not mean
|
|
125
|
-
scientific acceptance. Branch on stable error codes rather than messages. Key codes include
|
|
126
|
-
`PP_SET_INCOMPLETE`, `PP_POLICY_INCOMPATIBLE`,
|
|
127
|
-
`PP_CAPABILITY_UNKNOWN`, `ARTIFACT_MISSING`, `SOLVER_NOT_CONVERGED`,
|
|
128
|
-
`SCIENTIFIC_GATE_FAILED`, `RESTART_INCOMPATIBLE`, `IDEMPOTENCY_CONFLICT`,
|
|
129
|
-
`EXECUTION_BACKEND_NOT_READY`, `GPU_UNSUPPORTED` and `GPU_UNAVAILABLE`.
|
|
130
|
-
|
|
131
|
-
Submission, cancellation, retry and review are remote mutations and require the user's explicit
|
|
132
|
-
authorisation. Do not retry when the outcome is unknown. Do not describe a GPU smoke test,
|
|
133
|
-
scheduler log or parseable QE output as a scientific conclusion or a customer-level performance
|
|
134
|
-
guarantee.
|
|
1
|
+
# Quantum ESPRESSO DFT reference
|
|
2
|
+
|
|
3
|
+
Use QE to run traceable, asynchronous Quantum ESPRESSO workflows through Chemistry Gateway.
|
|
4
|
+
The agent interacts only with the Gateway/Science Server contract: it does not run local `pw.x`,
|
|
5
|
+
call internal QE containers, or submit shell commands, scheduler scripts, `pseudo_dir`, `outdir`
|
|
6
|
+
or host paths.
|
|
7
|
+
|
|
8
|
+
The actual CLI tool for this reference is `qe`. Copy `tools.name` and `tool_endpoints.name`
|
|
9
|
+
exactly from the current CLI catalogue. The paths below describe the QE service contract; they
|
|
10
|
+
are not URLs to access directly or endpoint aliases that may be rewritten automatically.
|
|
11
|
+
|
|
12
|
+
## Capability groups
|
|
13
|
+
|
|
14
|
+
| Service path | Purpose | Type |
|
|
15
|
+
| --- | --- | --- |
|
|
16
|
+
| `/chem/qe/health`, `/healthz`, `/readyz` | Runtime, scheduler, storage and PP readiness | Read-only |
|
|
17
|
+
| `/chem/qe/v1/qe/workflow-types` | Workflow catalogue and support status | Read-only |
|
|
18
|
+
| `/chem/qe/v1/pp-sets`, `/pp-locks/{digest}` | Published PP profiles/locks | Read-only |
|
|
19
|
+
| `/chem/qe/v1/pp-sets:resolve` | Resolve PP candidates for the complete set of campaign elements | Read-only/validation |
|
|
20
|
+
| `/chem/qe/v1/artifacts` | Upload, query and download structure/fixed-coordinate artifacts | File/binary |
|
|
21
|
+
| `/chem/qe/v1/qe/jobs` | Submit asynchronous calculations and query jobs | Remote mutation |
|
|
22
|
+
| `/chem/qe/v1/qe/jobs/{job_id}/events`, `steps`, `logs`, `artifacts` | Read job progress and results | Read-only |
|
|
23
|
+
| `/chem/qe/v1/qe/jobs/{job_id}:cancel`, `:retry`, `:review` | Cancel, retry and scientifically review a job | Remote mutation |
|
|
24
|
+
|
|
25
|
+
When selecting a new operation, first run:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
delta-cli science list
|
|
29
|
+
delta-cli science endpoints list <exact tool name>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Then call it using the exact names returned by the catalogue. If the catalogue has no schema, do
|
|
33
|
+
not guess the operation, path parameters, headers or body.
|
|
34
|
+
|
|
35
|
+
## CLI file and idempotency boundaries
|
|
36
|
+
|
|
37
|
+
Structure artifact uploads require `application/octet-stream` and query metadata; QE job
|
|
38
|
+
submission requires a stable `Idempotency-Key`. `science invoke` remains for JSON/query only;
|
|
39
|
+
send files through `science file` and persistent jobs through `science task`:
|
|
40
|
+
|
|
41
|
+
- `delta-cli science file invoke --tool qe --endpoint artifact-upload --file <path>` uploads
|
|
42
|
+
a structure artifact; for `custom-pp-upload`, also provide `custom_pp_id` in `--data`;
|
|
43
|
+
- `delta-cli science task submit --tool qe --operation job-submit --input JSON
|
|
44
|
+
--idempotency-key KEY` submits a durable QE job; the worker passes the idempotency key to Gateway;
|
|
45
|
+
- `delta-cli science file download --tool qe --endpoint artifact-content --params JSON
|
|
46
|
+
--output <path>` downloads a raw artifact;
|
|
47
|
+
- Do not send structure text, file paths, base64, `Idempotency-Key` or QE service credentials as
|
|
48
|
+
ordinary business fields, and do not call public or private Gateway URLs or `qe-cloud-compute:18020`.
|
|
49
|
+
|
|
50
|
+
## Correct sequence for a new job
|
|
51
|
+
|
|
52
|
+
1. Read health. Read readiness only when diagnosing the deployment, and choose a currently
|
|
53
|
+
`supported` task from the workflow catalogue.
|
|
54
|
+
2. Determine the complete `campaign_elements` set and use `pp-sets:resolve` to obtain a profile.
|
|
55
|
+
Production jobs must use the returned `pp_set_id` and immutable `lock_id`; do not infer the
|
|
56
|
+
lock from the profile name alone.
|
|
57
|
+
3. Ask the service to validate the structure artifact. The job must reference only the returned
|
|
58
|
+
`sha256:<digest>` artifact ID.
|
|
59
|
+
4. Submit to `qe/jobs` with stable idempotency semantics. A `202` response means accepted/queued,
|
|
60
|
+
not that QE has converged.
|
|
61
|
+
5. Poll the job, events, steps, logs and artifacts; read the `execution`, `solver` and
|
|
62
|
+
`scientific` states independently.
|
|
63
|
+
6. Verify each artifact's SHA-256 when downloading results. Report the selected backend, resource
|
|
64
|
+
telemetry, solver state, scientific review state and warnings separately.
|
|
65
|
+
|
|
66
|
+
The minimum business-data shape for PP resolution is shown below. Values must come from the
|
|
67
|
+
current service/catalogue; do not insert a fabricated production lock:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"campaign_id": "si-bulk-scf-v1",
|
|
72
|
+
"campaign_elements": ["Si", "O"],
|
|
73
|
+
"workflows": ["qe.pw.scf"],
|
|
74
|
+
"explicit_mode": null
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
The core job structure is shown below. `workflow_inputs` must follow the current task schema:
|
|
79
|
+
|
|
80
|
+
```json
|
|
81
|
+
{
|
|
82
|
+
"task": "qe.pw.scf",
|
|
83
|
+
"schema_version": "1.1",
|
|
84
|
+
"campaign_id": "si-bulk-scf-v1",
|
|
85
|
+
"campaign_elements": ["Si"],
|
|
86
|
+
"structure": {"format": "artifact", "artifact_id": "sha256:<64-hex>"},
|
|
87
|
+
"physics": {
|
|
88
|
+
"parameter_set": "<approved-parameter-set>",
|
|
89
|
+
"pp_policy": {
|
|
90
|
+
"mode": "sssp_single",
|
|
91
|
+
"pp_set_id": "<approved-pp-set>",
|
|
92
|
+
"lock_id": "sha256:<64-hex>"
|
|
93
|
+
},
|
|
94
|
+
"kpoints": [4, 4, 4]
|
|
95
|
+
},
|
|
96
|
+
"resources": {
|
|
97
|
+
"profile": "standard",
|
|
98
|
+
"nodes": 1,
|
|
99
|
+
"mpi_ranks_per_node": 1,
|
|
100
|
+
"omp_threads_per_rank": 1,
|
|
101
|
+
"walltime_seconds": 3600,
|
|
102
|
+
"gpu_policy": "cpu"
|
|
103
|
+
},
|
|
104
|
+
"client_request_id": "si-scf-v1",
|
|
105
|
+
"workflow_inputs": {}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## CPU/GPU and state interpretation
|
|
110
|
+
|
|
111
|
+
CPU is the default, particularly for small or medium interactive jobs, PP/structure/audit/archive
|
|
112
|
+
jobs, and cost-sensitive work. Use `gpu` only when the user explicitly requests it or the project
|
|
113
|
+
already has a GPU budget, and the live catalogue returns `gpu_support_status: "verified"`. Do not
|
|
114
|
+
silently fall back to CPU when GPU is required. Claim that GPU was used only when the result
|
|
115
|
+
explicitly returns `selected_backend: "gpu"`; `auto` does not prove GPU use.
|
|
116
|
+
|
|
117
|
+
Keep the three state channels separate:
|
|
118
|
+
|
|
119
|
+
- `execution`: prepared/submitted/queued/running/scheduler completion/cancelled/failed;
|
|
120
|
+
- `solver`: not started/running/converged/not converged/failed/unknown;
|
|
121
|
+
- `scientific`: unreviewed, scientifically accepted, accepted with limitations, needs
|
|
122
|
+
recalculation, not assessable, failed or archived.
|
|
123
|
+
|
|
124
|
+
scheduler completion does not mean solver convergence, and solver convergence does not mean
|
|
125
|
+
scientific acceptance. Branch on stable error codes rather than messages. Key codes include
|
|
126
|
+
`PP_SET_INCOMPLETE`, `PP_POLICY_INCOMPATIBLE`,
|
|
127
|
+
`PP_CAPABILITY_UNKNOWN`, `ARTIFACT_MISSING`, `SOLVER_NOT_CONVERGED`,
|
|
128
|
+
`SCIENTIFIC_GATE_FAILED`, `RESTART_INCOMPATIBLE`, `IDEMPOTENCY_CONFLICT`,
|
|
129
|
+
`EXECUTION_BACKEND_NOT_READY`, `GPU_UNSUPPORTED` and `GPU_UNAVAILABLE`.
|
|
130
|
+
|
|
131
|
+
Submission, cancellation, retry and review are remote mutations and require the user's explicit
|
|
132
|
+
authorisation. Do not retry when the outcome is unknown. Do not describe a GPU smoke test,
|
|
133
|
+
scheduler log or parseable QE output as a scientific conclusion or a customer-level performance
|
|
134
|
+
guarantee.
|