@delta-infra/cli 1.1.18 → 1.1.19
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 +11 -4
- package/checksums.txt +5 -5
- package/package.json +3 -2
- package/scripts/install-wizard.js +18 -31
- package/skills/delta-protein/AGENTS.md +73 -0
- package/skills/delta-protein/SKILL.md +389 -0
- package/skills/delta-protein/agents/openai.yaml +4 -0
- package/skills/delta-protein/references/bfitter.md +64 -0
- package/skills/delta-protein/references/catapro_predict.md +63 -0
- package/skills/delta-protein/references/catpred_predict.md +65 -0
- package/skills/delta-protein/references/caver_tunnel_analyze.md +63 -0
- package/skills/delta-protein/references/consensus_mutation.md +61 -0
- package/skills/delta-protein/references/consurf_predict.md +67 -0
- package/skills/delta-protein/references/crop_sequence.md +69 -0
- package/skills/delta-protein/references/dock.md +82 -0
- package/skills/delta-protein/references/dock_score.md +70 -0
- package/skills/delta-protein/references/easifa_predict_active_site.md +70 -0
- package/skills/delta-protein/references/ephod_predict_mutation.md +66 -0
- package/skills/delta-protein/references/ephod_predict_protein.md +61 -0
- package/skills/delta-protein/references/esmfold2_predict.md +67 -0
- package/skills/delta-protein/references/evcouplings_mutation.md +64 -0
- package/skills/delta-protein/references/fasta_to_sequence.md +59 -0
- package/skills/delta-protein/references/foldseek.md +61 -0
- package/skills/delta-protein/references/generate_msa.md +61 -0
- package/skills/delta-protein/references/interpro_analyze.md +63 -0
- package/skills/delta-protein/references/mpnn_design_sequence.md +71 -0
- package/skills/delta-protein/references/multievolve.md +73 -0
- package/skills/delta-protein/references/pisa_query.md +70 -0
- package/skills/delta-protein/references/plip_analyze.md +65 -0
- package/skills/delta-protein/references/pocket_prediction.md +63 -0
- package/skills/delta-protein/references/protein_design.md +65 -0
- package/skills/delta-protein/references/protein_evolution.md +77 -0
- package/skills/delta-protein/references/protein_sol_predict_mutation.md +66 -0
- package/skills/delta-protein/references/protein_sol_predict_protein.md +61 -0
- package/skills/delta-protein/references/protenix.md +66 -0
- package/skills/delta-protein/references/protrek_search.md +90 -0
- package/skills/delta-protein/references/pubchem_search.md +68 -0
- package/skills/delta-protein/references/pubmed_search.md +79 -0
- package/skills/delta-protein/references/reap_design_primer.md +69 -0
- package/skills/delta-protein/references/rfd3_design.md +65 -0
- package/skills/delta-protein/references/structure_to_sequence.md +61 -0
- package/skills/delta-protein/references/summarize_result.md +68 -0
- package/skills/delta-protein/references/surface_charge.md +84 -0
- package/skills/delta-protein/references/uniprot_batch_query.md +63 -0
- package/skills/delta-protein/references/uniprot_query.md +64 -0
- package/skills/delta-protein/references/zero_shot_mutant_candidates.md +76 -0
- package/skills/delta-protein/scripts/gen_references.py +167 -0
- package/skills/delta-protein/scripts/output_metadata.json +275 -0
- package/skills/delta-science/references/xrd.md +704 -197
- package/skills/manifest.json +2 -1
package/README.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Delta Agent Cloud 的命令行工具,用于管理 Delta Sandbox GPU/CPU 计算任务和调用 Science 工具。
|
|
4
4
|
|
|
5
|
+
## v1.1.19 Release Notes
|
|
6
|
+
|
|
7
|
+
- `feat(config)`: `delta-cli config init` 与安装向导自动写入默认 `base_url`,移除首次使用的人工配置步骤。
|
|
8
|
+
- 新增 `delta-protein` skills:蛋白质结构预测/设计/分析等 40+ 工具 reference 与跨工具工作流。
|
|
9
|
+
- 更新 `xrd` science reference(云端 XRD 相识别、artifact、CIF 模拟与精修契约)。
|
|
10
|
+
- 内部:GitHub 公共仓库同步与发布管线优化(sync 规划器及单元测试)。
|
|
11
|
+
|
|
5
12
|
## v1.1.18 Release Notes
|
|
6
13
|
|
|
7
14
|
- Translate the three active agent skills (`delta-shared`, `delta-sandbox`, and `delta-science`) and their maintained references into English.
|
|
@@ -20,7 +27,7 @@ npx @delta-infra/cli@latest install
|
|
|
20
27
|
1. **全局安装** `@delta-infra/cli`(含 Go 二进制)
|
|
21
28
|
2. **选择 AI 工具平台**(可多选):通用 Agent 目录 `~/.agents/skills/`(Codex/Cursor/OpenCode)、Claude Code `~/.claude/skills/`、OpenCode 原生 `~/.config/opencode/skills/`、Cursor `~/.cursor/skills/`、Memento-S 开发模式 `~/memento_s/skills/`
|
|
22
29
|
3. **安装 AI Skills** 到所选平台的 skills 目录
|
|
23
|
-
4. **初始化配置**
|
|
30
|
+
4. **初始化配置** 自动写入默认服务端地址(无需人工填写 base_url)
|
|
24
31
|
5. **身份认证** `delta-cli auth login`(交互式,非 TTY 跳过)
|
|
25
32
|
|
|
26
33
|
AI Agent 也可以直接使用以下指令完成安装:
|
|
@@ -141,9 +148,9 @@ go install github.com/delta-infra/delta-infra-cli/cmd/delta-cli@latest
|
|
|
141
148
|
delta-cli config init
|
|
142
149
|
```
|
|
143
150
|
|
|
144
|
-
|
|
151
|
+
服务端地址无需人工填写:默认使用 `https://delta-infra-nacos.yangtzeailab.com`(已有配置则沿用其中的 base_url),仅交互式提示 Bearer Token(可选,也可后续用 `auth login` 配置)。
|
|
145
152
|
|
|
146
|
-
|
|
153
|
+
如需指向自建服务器,可通过 flag 或环境变量一次性指定:
|
|
147
154
|
|
|
148
155
|
```bash
|
|
149
156
|
# 通过 flag
|
|
@@ -456,7 +463,7 @@ make release
|
|
|
456
463
|
```bash
|
|
457
464
|
export GH_TOKEN=<your-github-pat>
|
|
458
465
|
export NPM_TOKEN=<your-npm-token>
|
|
459
|
-
./release.sh v1.1.
|
|
466
|
+
./release.sh v1.1.19
|
|
460
467
|
```
|
|
461
468
|
|
|
462
469
|
脚本执行步骤:
|
package/checksums.txt
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
a85ffee5fb646cc77fc8d5afe4d34e3b6ed713b1f7abc3987fe3c7f43f5ab1da *delta-cli-darwin-amd64.tar.gz
|
|
2
|
+
22106409c2b10b38fb71cae558e645fc2b1310561613ba8e8a0037eb2655cdaa *delta-cli-darwin-arm64.tar.gz
|
|
3
|
+
9f0656be23adce565aeec0ae3db6bbae4fee484f8b784323ad13041219af7dd3 *delta-cli-linux-amd64.tar.gz
|
|
4
|
+
354c1a28dc0f6d47797276098efbd09bc0ae2394a74ac6eb07ed1e341c3111fc *delta-cli-linux-arm64.tar.gz
|
|
5
|
+
20656d7fbfe7d36d656bbb6a12b09a3b8fe789c2c1b716e4ed8c2096109f1fd0 *delta-cli-windows-amd64.zip
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@delta-infra/cli",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.19",
|
|
4
4
|
"description": "Delta Agent Cloud CLI for sandbox compute and science tools.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"delta-cli": "scripts/run.js"
|
|
@@ -16,7 +16,8 @@
|
|
|
16
16
|
"skills/manifest.json",
|
|
17
17
|
"skills/delta-sandbox/",
|
|
18
18
|
"skills/delta-shared/",
|
|
19
|
-
"skills/delta-science/"
|
|
19
|
+
"skills/delta-science/",
|
|
20
|
+
"skills/delta-protein/"
|
|
20
21
|
],
|
|
21
22
|
"os": [
|
|
22
23
|
"darwin",
|
|
@@ -129,9 +129,7 @@ const messages = {
|
|
|
129
129
|
step2Skip: "已安装,跳过",
|
|
130
130
|
step2Fail: "Skills 安装失败。运行以下命令重试: npx skills add %s -y -g",
|
|
131
131
|
step3: "正在初始化配置...",
|
|
132
|
-
|
|
133
|
-
step3Skip: "跳过配置初始化",
|
|
134
|
-
step3Done: "配置已初始化",
|
|
132
|
+
step3Done: "配置已初始化 (Server: %s)",
|
|
135
133
|
step3Fail: "配置初始化失败。运行以下命令重试: delta-cli config init",
|
|
136
134
|
step4: "身份认证",
|
|
137
135
|
step4Confirm: "是否进行身份认证?",
|
|
@@ -142,7 +140,7 @@ const messages = {
|
|
|
142
140
|
step4Fail: "认证失败。运行以下命令重试: delta-cli auth login",
|
|
143
141
|
done: "安装完成!\n现在可以让你的 AI 工具使用 delta-cli 管理 Delta Sandbox 资源或调用 Science 工具。",
|
|
144
142
|
cancelled: "安装已取消",
|
|
145
|
-
nonTtyHint: "要完成配置,请在终端中运行:\n delta-cli
|
|
143
|
+
nonTtyHint: "要完成配置,请在终端中运行:\n delta-cli auth login\n若还没有 API Key,请先在网页端生成:\n %s",
|
|
146
144
|
uninstallConfirm: "将移除全局包、AI Skills 和配置文件。是否继续?",
|
|
147
145
|
uninstallCancelled: "卸载已取消",
|
|
148
146
|
uninstallDone: "卸载完成",
|
|
@@ -164,9 +162,7 @@ const messages = {
|
|
|
164
162
|
step2Skip: "Already installed. Skipped",
|
|
165
163
|
step2Fail: "Failed to install skills. Run manually: npx skills add %s -y -g",
|
|
166
164
|
step3: "Initializing config...",
|
|
167
|
-
|
|
168
|
-
step3Skip: "Skipped config initialization",
|
|
169
|
-
step3Done: "Config initialized",
|
|
165
|
+
step3Done: "Config initialized (Server: %s)",
|
|
170
166
|
step3Fail: "Failed to init config. Run manually: delta-cli config init",
|
|
171
167
|
step4: "Authorization",
|
|
172
168
|
step4Confirm: "Would you like to authenticate now?",
|
|
@@ -177,7 +173,7 @@ const messages = {
|
|
|
177
173
|
step4Fail: "Failed to authorize. Run delta-cli auth login to retry",
|
|
178
174
|
done: "You are all set!\nYour AI tool can now use delta-cli to manage Delta Sandbox resources or invoke Science tools.",
|
|
179
175
|
cancelled: "Installation cancelled",
|
|
180
|
-
nonTtyHint: "To complete setup, run interactively:\n delta-cli
|
|
176
|
+
nonTtyHint: "To complete setup, run interactively:\n delta-cli auth login\nIf you don't have an API key yet, generate one first:\n %s",
|
|
181
177
|
uninstallConfirm: "This will remove the global package, AI Skills and config. Continue?",
|
|
182
178
|
uninstallCancelled: "Uninstall cancelled",
|
|
183
179
|
uninstallDone: "Uninstall complete",
|
|
@@ -510,32 +506,14 @@ async function stepConfigInit(msg) {
|
|
|
510
506
|
s.start(msg.step3);
|
|
511
507
|
|
|
512
508
|
const existingConfig = getExistingConfig();
|
|
513
|
-
|
|
509
|
+
// 服务器地址无需人工配置:沿用已有值,否则直接用内置默认值。
|
|
510
|
+
const baseUrl = (existingConfig && existingConfig.base_url) || DEFAULT_BASE_URL;
|
|
514
511
|
|
|
515
|
-
|
|
516
|
-
const reuse = await p.confirm({
|
|
517
|
-
message: `发现已有配置 (Server: ${existingConfig.base_url}),继续使用?`,
|
|
518
|
-
});
|
|
519
|
-
if (p.isCancel(reuse)) {
|
|
520
|
-
handleCancel(reuse, msg);
|
|
521
|
-
return;
|
|
522
|
-
}
|
|
523
|
-
if (reuse) {
|
|
524
|
-
p.log.info(msg.step3Skip);
|
|
525
|
-
return;
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
const baseUrl = handleCancel(await p.text({
|
|
530
|
-
message: msg.step3BaseUrl,
|
|
531
|
-
initialValue: existingConfig && existingConfig.base_url
|
|
532
|
-
? existingConfig.base_url
|
|
533
|
-
: DEFAULT_BASE_URL,
|
|
534
|
-
}), msg);
|
|
512
|
+
s.stop(msg.step3);
|
|
535
513
|
|
|
536
514
|
try {
|
|
537
515
|
writeConfig({ baseUrl, existing: existingConfig });
|
|
538
|
-
p.log.success(msg.step3Done);
|
|
516
|
+
p.log.success(fmt(msg.step3Done, baseUrl));
|
|
539
517
|
} catch (e) {
|
|
540
518
|
p.log.error(e.message || String(e));
|
|
541
519
|
p.log.error(msg.step3Fail);
|
|
@@ -654,7 +632,16 @@ async function doInstall() {
|
|
|
654
632
|
const platforms = ["agents"];
|
|
655
633
|
await stepInstallSkills(msg, platforms);
|
|
656
634
|
const existing = getExistingConfig();
|
|
657
|
-
|
|
635
|
+
// 非交互安装同样预置默认服务器地址,免去后续人工配置 config init。
|
|
636
|
+
try {
|
|
637
|
+
writeConfig({
|
|
638
|
+
baseUrl: (existing && existing.base_url) || DEFAULT_BASE_URL,
|
|
639
|
+
existing,
|
|
640
|
+
});
|
|
641
|
+
} catch (e) {
|
|
642
|
+
p.log.error(e.message || String(e));
|
|
643
|
+
}
|
|
644
|
+
console.log(fmt(msg.nonTtyHint, dashboardAPIKeysUrl(getExistingConfig() && getExistingConfig().base_url)));
|
|
658
645
|
}
|
|
659
646
|
}
|
|
660
647
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# skills/delta-protein — Protein Analysis Skill Package
|
|
2
|
+
|
|
3
|
+
**Parent:** `../AGENTS.md`
|
|
4
|
+
|
|
5
|
+
## OVERVIEW
|
|
6
|
+
|
|
7
|
+
Single public `delta-protein` skill: the unified entry point for Huada protein and
|
|
8
|
+
bioinformatics online analysis tools (mutation prediction, structure prediction, MSA,
|
|
9
|
+
protein design, docking, pocket/active-site analysis, conservation/InterPro,
|
|
10
|
+
enzyme kinetics, solubility/pH prediction, and PubMed/PubChem/UniProt/PISA/PLIP
|
|
11
|
+
lookup). It is host-neutral and routed exclusively through the Delta CLI
|
|
12
|
+
(`science invoke`) to the Science Server's `huada_protein_tools` tool. Per-endpoint
|
|
13
|
+
operation contracts live in `references/` and are loaded on demand; there are no
|
|
14
|
+
separate planner-visible per-tool skills and no workflow endpoints.
|
|
15
|
+
|
|
16
|
+
## STRUCTURE
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
delta-protein/
|
|
20
|
+
├── SKILL.md # single entry point: routing, CLI-only execution, safety red lines
|
|
21
|
+
├── agents/
|
|
22
|
+
│ └── openai.yaml # host agent registration
|
|
23
|
+
└── references/
|
|
24
|
+
└── <endpoint>.md # one registered endpoint's operation contract
|
|
25
|
+
# (39 endpoints under tool `huada_protein_tools`)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## DATA SOURCE
|
|
29
|
+
|
|
30
|
+
- Tool/endpoint identity and request fields come from the live Catalog
|
|
31
|
+
(`delta-cli science list`, `delta-cli science endpoints list <tool>`) plus the
|
|
32
|
+
authoritative parameter registry in
|
|
33
|
+
`agent/protein_common/tool_registry/definitions.py` of the `delta-search-backend`
|
|
34
|
+
project (per-tool `params`, `required_groups`, `default_params`, `timeout`).
|
|
35
|
+
- Response envelope is the Huada contract `{"status","message","tool_type",
|
|
36
|
+
"resultjson","download_url"}`; per-tool `resultjson` keys are derived from the
|
|
37
|
+
tool implementations, not invented.
|
|
38
|
+
- Each registered endpoint is a single tool call. Multi-step card workflows
|
|
39
|
+
(cards/*.json) are NOT registered as endpoints and are not documented here; an
|
|
40
|
+
agent may chain single endpoints in sequence when the task requires it.
|
|
41
|
+
|
|
42
|
+
## CONVENTIONS
|
|
43
|
+
|
|
44
|
+
- JSON/query operations go through `delta-cli science invoke --tool huada_protein_tools --endpoint <name>`; binary artifacts from `download_url` go through `delta-cli science file download`
|
|
45
|
+
- Endpoint names are exact server contracts, read from the Catalog — never invent fields/enums from memory
|
|
46
|
+
- Success is reported only when the subprocess exit is 0 AND top-level JSON `ok` is `true`; `data` holds the service response
|
|
47
|
+
- `references/` contains only registered real endpoints; routing and tool selection belong in `SKILL.md`
|
|
48
|
+
- Host-neutral: `delta-cli` is the sole service boundary; no host-specific tool/env dependencies
|
|
49
|
+
- Discover newly-deployed endpoints via `delta-cli science endpoints list huada_protein_tools`
|
|
50
|
+
|
|
51
|
+
## MAINTENANCE
|
|
52
|
+
|
|
53
|
+
- `scripts/gen_references.py` regenerates the `## Output Projection` and
|
|
54
|
+
`## Output Template` sections in every reference from
|
|
55
|
+
`scripts/output_metadata.json` (single source of truth for field projection /
|
|
56
|
+
presentation form / downstream reuse / provenance marker). Stdlib only, idempotent.
|
|
57
|
+
- Workflow: update `output_metadata.json` → run
|
|
58
|
+
`python scripts/gen_references.py` → run `python scripts/gen_references.py --check`.
|
|
59
|
+
`--check` fails loudly on missing sections, drifting titles, broken SKILL links or
|
|
60
|
+
references not covered by metadata.
|
|
61
|
+
- `output_metadata.json` `provenance` is `tested` (verified by a real `delta-cli`
|
|
62
|
+
invocation) or `derived` (from ToolSpec descriptions / agent templates, marked
|
|
63
|
+
"pending live calibration"). Newly verified endpoints should be flipped to `tested`.
|
|
64
|
+
- After changing references/SKILL, resync the opencode install dir:
|
|
65
|
+
`python scripts/gen_references.py --sync "%USERPROFILE%\.config\opencode\skills\delta-protein"`.
|
|
66
|
+
|
|
67
|
+
## ANTI-PATTERNS
|
|
68
|
+
|
|
69
|
+
- Do not call `curl`/`requests`/`httpx`/browser/PowerShell web directly against any Huada or Gateway URL
|
|
70
|
+
- Do not bypass delta-cli or attach local MCP tool servers directly
|
|
71
|
+
- Do not fabricate protein sequences, structures, activity data, or algorithm results, and do not pass local-library results off as Science results
|
|
72
|
+
- Do not create extra JSON/CSV/report/image artifacts unless the user explicitly asks
|
|
73
|
+
- Do not break relative links between SKILL.md and `references/`
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: delta-protein
|
|
3
|
+
description: "The unified entry point for the company's Huada protein/bioinformatics online analysis capabilities — all calls go through the Delta CLI. Any zero-shot or multi-site mutation prediction, structure prediction (Protenix/ESMFold2), sequence extraction (PDB/FASTA/Foldseek), MSA computation, optimal-pH and solubility prediction for proteins/mutants, enzyme kinetic parameters (kcat/Km), consensus mutation and EVcouplings coevolutionary analysis, protein design (MPNN/RFdiffusion3), molecular docking and Vina scoring, pocket prediction, surface charge, flexible sites, tunnel analysis, PLIP/PISA interactions, active sites, InterPro/ConSurf annotations, single-site mutation primer design, and PubMed/PubChem/UniProt/ProTrek retrieval — all protein analysis tasks must use this Skill; call the huada_protein_tools endpoint via delta-cli, and never bypass the Delta CLI through local MCP servers, legacy gateway scripts, or web search. Simple queries, comparisons or verifications return concise text directly; analysis/multi-step/design/mutation/evaluation tasks produce one structured Markdown report (skeleton and per-task-type chapter structure in SKILL.md) after all endpoints complete. By default, do not create additional JSON/CSV, image or chart files unless the user explicitly asks."
|
|
4
|
+
metadata:
|
|
5
|
+
requires:
|
|
6
|
+
bins: ["delta-cli"]
|
|
7
|
+
cliHelp: "delta-cli science --help"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Delta Protein
|
|
11
|
+
|
|
12
|
+
Convert natural-language protein research tasks into the minimal set of verifiable
|
|
13
|
+
Delta CLI Science calls. Expose only this Skill; endpoint selection, parameters,
|
|
14
|
+
cross-endpoint handoffs and result validation are all handled inside this Skill. All
|
|
15
|
+
endpoints belong to the single tool `huada_protein_tools`, and each registered
|
|
16
|
+
endpoint is a single tool call (no workflow endpoints exist).
|
|
17
|
+
|
|
18
|
+
## Service Call Boundary
|
|
19
|
+
|
|
20
|
+
- All online protein/bioinformatics operations ultimately go through the Delta CLI:
|
|
21
|
+
JSON-compatible endpoints use
|
|
22
|
+
`delta-cli science invoke --tool huada_protein_tools --endpoint <name> --data JSON`;
|
|
23
|
+
file/binary artifacts use `delta-cli science file download`.
|
|
24
|
+
- Use the CLI's standard authentication and the Science service address derived from
|
|
25
|
+
`base_url` (`{base_url}/science_tool`). Never override the service route via
|
|
26
|
+
environment variables, command-line arguments or business URLs.
|
|
27
|
+
- It is forbidden to access Huada, the Gateway, or any business service URL directly
|
|
28
|
+
with `curl`, `requests`, `httpx`, a browser, or PowerShell web commands; do not
|
|
29
|
+
assemble/attach a local MCP tool server.
|
|
30
|
+
- Local tools (RDKit/pymatgen/self-run algorithms, etc.) may be used for format
|
|
31
|
+
conversion, file parsing or display, but their origin must be made explicit and kept
|
|
32
|
+
separate from CLI results; they must never be passed off as Science results.
|
|
33
|
+
- Before executing, read the corresponding reference and combine required fields and
|
|
34
|
+
request parameters per that reference; when a reference is missing, stale, or
|
|
35
|
+
inconsistent with the live catalog, query the real-time catalog with
|
|
36
|
+
`delta-cli science list` and `delta-cli science endpoints list huada_protein_tools`.
|
|
37
|
+
Never create fields, enum values or branches beyond the required combinations from memory.
|
|
38
|
+
- Endpoint names are the single authoritative invocation names. The endpoint passed to
|
|
39
|
+
the CLI must match the catalog exactly; do not alias-map (the `protein_dock` tool's
|
|
40
|
+
endpoint in the catalog is `dock`), trim prefixes, or rename-and-retry after a
|
|
41
|
+
`not_found`. When inconsistent with the catalog, terminate and report the
|
|
42
|
+
configuration problem.
|
|
43
|
+
- A call may only be reported as successful when the CLI subprocess exits 0 AND the
|
|
44
|
+
top-level `ok` in its JSON output is `true`. The CLI top-level `data` holds the
|
|
45
|
+
service response; read the server-side return contract per the corresponding
|
|
46
|
+
reference — do not recursively search for plausible-looking values, and do not
|
|
47
|
+
misreport business results such as `status:error` as transport failures.
|
|
48
|
+
- Fields marked as "default" in a reference or ToolSpec are fill-in conveniences for
|
|
49
|
+
the backend agent orchestration layer; they are NOT omissible when calling the CLI
|
|
50
|
+
directly. As long as the server validates a field as required, it must be passed
|
|
51
|
+
explicitly (e.g. `DB` for `consurf_predict`); when validation reports a missing
|
|
52
|
+
field, supply it per the server error and write the live-verified value back into
|
|
53
|
+
the reference.
|
|
54
|
+
- JSON-bearing arguments must follow the shell rules of the calling environment;
|
|
55
|
+
never use bare POSIX single quotes on Windows.
|
|
56
|
+
|
|
57
|
+
### Cross-platform JSON Passing Convention (Mandatory)
|
|
58
|
+
|
|
59
|
+
| Platform / execution environment | Authoritative way to pass `--data` / `--params` JSON |
|
|
60
|
+
|---|---|
|
|
61
|
+
| Linux / macOS (sh/bash) | `--data '{"k":"v"}'` (POSIX single quotes, verbatim) |
|
|
62
|
+
| Windows cmd.exe | `--data "{\"k\":\"v\"}"` (cmd double quotes + `\"` escaping) |
|
|
63
|
+
| Windows PowerShell 5.1 / opencode(win32) | always parse via cmd: `cmd /c '... --data "{\"k\":\"v\"}"'` (outer PowerShell uses single quotes verbatim, inner layer uses cmd `\"` escaping), or write the full command to a `.bat`/`.cmd` file and run it |
|
|
64
|
+
|
|
65
|
+
Rules:
|
|
66
|
+
|
|
67
|
+
- Do not let PowerShell parse `\"` or bare JSON double quotes: PS 5.1 strips embedded
|
|
68
|
+
double quotes from arguments when invoking native binaries (`{"k":"v"}` → `{k:v}`,
|
|
69
|
+
reporting `invalid character 'k'`) or breaks apart the outer quoted string.
|
|
70
|
+
- On win32, opencode's Bash tool is PowerShell: every `delta-cli` call carrying JSON
|
|
71
|
+
must be wrapped with `cmd /c '<cmd syntax>'` or a `.bat` file, with all `--data`
|
|
72
|
+
JSON keys/values escaped as `\"`.
|
|
73
|
+
- On Linux/macOS do not switch to `\"` for Windows compatibility; standard POSIX
|
|
74
|
+
single quotes are fine; documentation examples are host-neutral and actual execution
|
|
75
|
+
follows this table.
|
|
76
|
+
|
|
77
|
+
Call template:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
delta-cli science invoke --tool huada_protein_tools --endpoint ENDPOINT --data JSON
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
File artifact download template (when `download_url` points to raw files such as
|
|
84
|
+
PDB/XLSX/FASTA/ZIP):
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
delta-cli science file download --tool huada_protein_tools --endpoint ENDPOINT \
|
|
88
|
+
--params '{"...":"..."}' --output <path>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Only call the endpoints needed to achieve the goal. File-type parameters
|
|
92
|
+
(`structure_file`/`sequence_file`/`msa_file`/`mutant_list_file` etc.) take
|
|
93
|
+
server-accessible URL/path strings, not local upload paths; when a genuine local
|
|
94
|
+
upload is needed, first derive a `download_url` via endpoints such as
|
|
95
|
+
generate_msa/foldseek/structure_to_sequence and backfill it.
|
|
96
|
+
|
|
97
|
+
## Choosing an Endpoint
|
|
98
|
+
|
|
99
|
+
| Protein task | endpoint | Detailed rules |
|
|
100
|
+
| --- | --- | --- |
|
|
101
|
+
| Zero-shot single-site mutant candidates (no experimental data) | `zero_shot_mutant_candidates` | [zero_shot_mutant_candidates.md](references/zero_shot_mutant_candidates.md) |
|
|
102
|
+
| n-site/multi-site mutation activity regression (data available, explicit n) | `protein_evolution` | [protein_evolution.md](references/protein_evolution.md) |
|
|
103
|
+
| Multi-site combinatorial mutation activity (training data, n unspecified) | `multievolve` | [multievolve.md](references/multievolve.md) |
|
|
104
|
+
| Consensus mutation analysis (aligned MSA) | `consensus_mutation` | [consensus_mutation.md](references/consensus_mutation.md) |
|
|
105
|
+
| EVcouplings coevolutionary mutation scoring | `evcouplings_mutation` | [evcouplings_mutation.md](references/evcouplings_mutation.md) |
|
|
106
|
+
| Multi-model mutation result summary (final chain step) | `summarize_result` | [summarize_result.md](references/summarize_result.md) |
|
|
107
|
+
| Single-site mutation primer design (REAP Step 7) | `reap_design_primer` | [reap_design_primer.md](references/reap_design_primer.md) |
|
|
108
|
+
| Crop a protein sequence by regions | `crop_sequence` | [crop_sequence.md](references/crop_sequence.md) |
|
|
109
|
+
| Pure protein structure prediction | `protenix` | [protenix.md](references/protenix.md) |
|
|
110
|
+
| Protein/DNA/RNA/ligand complex structure prediction | `esmfold2_predict` | [esmfold2_predict.md](references/esmfold2_predict.md) |
|
|
111
|
+
| Extract protein sequence from PDB/CIF | `structure_to_sequence` | [structure_to_sequence.md](references/structure_to_sequence.md) |
|
|
112
|
+
| Extract protein sequence from FASTA | `fasta_to_sequence` | [fasta_to_sequence.md](references/fasta_to_sequence.md) |
|
|
113
|
+
| Extract Foldseek/SaProt sequence from structure | `foldseek` | [foldseek.md](references/foldseek.md) |
|
|
114
|
+
| Compute homolog MSA (MMseqs2, uniref100) | `generate_msa` | [generate_msa.md](references/generate_msa.md) |
|
|
115
|
+
| Protein optimal pH prediction | `ephod_predict_protein` | [ephod_predict_protein.md](references/ephod_predict_protein.md) |
|
|
116
|
+
| Mutant optimal pH prediction | `ephod_predict_mutation` | [ephod_predict_mutation.md](references/ephod_predict_mutation.md) |
|
|
117
|
+
| Protein solubility and isoelectric point prediction | `protein_sol_predict_protein` | [protein_sol_predict_protein.md](references/protein_sol_predict_protein.md) |
|
|
118
|
+
| Mutant solubility prediction | `protein_sol_predict_mutation` | [protein_sol_predict_mutation.md](references/protein_sol_predict_mutation.md) |
|
|
119
|
+
| Enzyme kinetic parameter prediction (CataPro) | `catapro_predict` | [catapro_predict.md](references/catapro_predict.md) |
|
|
120
|
+
| Enzyme kinetic parameter prediction (CatPred) | `catpred_predict` | [catpred_predict.md](references/catpred_predict.md) |
|
|
121
|
+
| De novo protein design (RFdiffusion3+MPNN) | `protein_design` | [protein_design.md](references/protein_design.md) |
|
|
122
|
+
| Protein scaffold design (RFdiffusion3) | `rfd3_design` | [rfd3_design.md](references/rfd3_design.md) |
|
|
123
|
+
| MPNN sequence design (given structure) | `mpnn_design_sequence` | [mpnn_design_sequence.md](references/mpnn_design_sequence.md) |
|
|
124
|
+
| Protein-ligand molecular docking | `dock` | [dock.md](references/dock.md) |
|
|
125
|
+
| Single-pose scoring of a complex (Vina score_only) | `dock_score` | [dock_score.md](references/dock_score.md) |
|
|
126
|
+
| Pocket prediction (p2rank) | `pocket_prediction` | [pocket_prediction.md](references/pocket_prediction.md) |
|
|
127
|
+
| Surface residue charge analysis (ProCaliper+APBS) | `surface_charge` | [surface_charge.md](references/surface_charge.md) |
|
|
128
|
+
| Flexible-site analysis (B-factor) | `bfitter` | [bfitter.md](references/bfitter.md) |
|
|
129
|
+
| Tunnel/channel analysis (CAVER) | `caver_tunnel_analyze` | [caver_tunnel_analyze.md](references/caver_tunnel_analyze.md) |
|
|
130
|
+
| Protein-ligand interaction analysis | `plip_analyze` | [plip_analyze.md](references/plip_analyze.md) |
|
|
131
|
+
| Protein interface analysis (PDBePISA) | `pisa_query` | [pisa_query.md](references/pisa_query.md) |
|
|
132
|
+
| Residue conservation analysis (ConSurf) | `consurf_predict` | [consurf_predict.md](references/consurf_predict.md) |
|
|
133
|
+
| Enzyme active-site prediction (EasIFA) | `easifa_predict_active_site` | [easifa_predict_active_site.md](references/easifa_predict_active_site.md) |
|
|
134
|
+
| Domain/GO annotation (InterProScan) | `interpro_analyze` | [interpro_analyze.md](references/interpro_analyze.md) |
|
|
135
|
+
| Open-ended protein retrieval (text/sequence/structure) | `protrek_search` | [protrek_search.md](references/protrek_search.md) |
|
|
136
|
+
| Known protein metadata query | `uniprot_query` | [uniprot_query.md](references/uniprot_query.md) |
|
|
137
|
+
| Batch protein metadata query | `uniprot_batch_query` | [uniprot_batch_query.md](references/uniprot_batch_query.md) |
|
|
138
|
+
| PubMed literature search | `pubmed_search` | [pubmed_search.md](references/pubmed_search.md) |
|
|
139
|
+
| PubChem compound search | `pubchem_search` | [pubchem_search.md](references/pubchem_search.md) |
|
|
140
|
+
|
|
141
|
+
When the tool is clear, read the selected endpoint's reference directly — it already
|
|
142
|
+
contains the required combinations, request fields, defaults and outputs; do not read
|
|
143
|
+
other endpoint docs. Multi-step tasks are decomposed by this Skill's routing rules,
|
|
144
|
+
reading only the references of the endpoints actually involved in each step.
|
|
145
|
+
|
|
146
|
+
## Routing Boundaries
|
|
147
|
+
|
|
148
|
+
- Use `protenix` for pure protein structure prediction; use `esmfold2_predict` for
|
|
149
|
+
complexes involving DNA/RNA/ligands; never mix them.
|
|
150
|
+
- `ephod_predict_protein`/`protein_sol_predict_protein` accept
|
|
151
|
+
`protein_list`/`protein_list_file` (sequence-file URLs); the `..._mutation`
|
|
152
|
+
variants accept mutation lists; protein-level and mutation-level inputs cannot be
|
|
153
|
+
swapped.
|
|
154
|
+
- `uniprot_query` is for exact metadata queries on known accession/gene/protein
|
|
155
|
+
names; open-ended functional/reaction/family retrieval uses `protrek_search`; the
|
|
156
|
+
two are not interchangeable.
|
|
157
|
+
- Both `catpred_predict` and `catapro_predict` predict kcat, Km and kcat/Km; call each per
|
|
158
|
+
its reference's required fields and constraints — the results are not
|
|
159
|
+
interchangeable in meaning.
|
|
160
|
+
- Without experimental data use `zero_shot_mutant_candidates`; with mutation activity
|
|
161
|
+
data and an explicit n-site/multi-site mutation specification use
|
|
162
|
+
`protein_evolution`; when the number of sites is unspecified but training data is
|
|
163
|
+
provided, use `multievolve`.
|
|
164
|
+
|
|
165
|
+
This Skill has no workflow endpoints. For multi-step chains, call multiple endpoints
|
|
166
|
+
in dependency order, and for downstream `structure_file`/`msa_file`/box parameters
|
|
167
|
+
only use business fields verified in the previous step:
|
|
168
|
+
|
|
169
|
+
- `generate_msa`'s output `download_url` becomes the `msa_file` of
|
|
170
|
+
`consensus_mutation`/`evcouplings_mutation`/`zero_shot_mutant_candidates`;
|
|
171
|
+
- `pocket_prediction`'s output `download_url` (cropped pocket PDB) becomes the
|
|
172
|
+
`structure_file` of `rfd3_design`;
|
|
173
|
+
- `dock`'s rank-1 `pdb_url` (clean complex PDB) becomes the `structure_file` of
|
|
174
|
+
`plip_analyze`;
|
|
175
|
+
- structure-prediction/sequence-extraction outputs feed downstream
|
|
176
|
+
mutation/design/property endpoints; validate success before transitioning.
|
|
177
|
+
- `summarize_result` consumes only a URL list of multiple prediction-result files and
|
|
178
|
+
is the final step of a mutation-prediction chain.
|
|
179
|
+
|
|
180
|
+
By default, do not make extra health, catalog or file-operation calls beyond known
|
|
181
|
+
endpoints; the minimal set of read-only calls is acceptable when the user requests it,
|
|
182
|
+
diagnostics require it, or a reference is inconsistent with the live catalog.
|
|
183
|
+
|
|
184
|
+
## Input Handling
|
|
185
|
+
|
|
186
|
+
- Parameter source priority: (1) provided verbatim by the user, (2) fields already
|
|
187
|
+
confirmed in the session (protein sequence/structure/mutation list), (3)
|
|
188
|
+
`resultjson`/`download_url`/`pdb_url` verified from upstream endpoints. Fabricating
|
|
189
|
+
missing parameters is forbidden.
|
|
190
|
+
- In-session reuse: each step of a multi-step task may only use business fields
|
|
191
|
+
verified in the previous step of the current task; do not pull historical workspace
|
|
192
|
+
results from other sessions to complete the current task. For concrete backfill
|
|
193
|
+
chains of upstream artifacts see "Downstream reuse" in each reference's Output
|
|
194
|
+
Projection; parameter-level examples are in "Routing Boundaries".
|
|
195
|
+
- Defaults vs server-required: fields marked as "default" in a reference or ToolSpec
|
|
196
|
+
are fill-in conveniences for the backend agent orchestration layer; they are NOT
|
|
197
|
+
omissible when calling the CLI directly. As long as the server validates a field as
|
|
198
|
+
required, it must be passed explicitly (e.g. `DB` for `consurf_predict`). When
|
|
199
|
+
validation reports a missing field, supply it per the server error and write the
|
|
200
|
+
live-verified value back into the reference.
|
|
201
|
+
- File-type parameters (`structure_file`/`sequence_file`/`fasta_file`/`msa_file`/
|
|
202
|
+
`mutant_list_file`/`training_dataset`/`result_files` etc.) take server-accessible
|
|
203
|
+
URL/path strings, not local upload paths; when a genuine local upload is needed,
|
|
204
|
+
first derive a `download_url` via generate_msa/foldseek/structure_to_sequence and
|
|
205
|
+
backfill it.
|
|
206
|
+
- Pass multi-valued parameters per the type in the corresponding reference: string
|
|
207
|
+
lists (`model_name`/`cofactors`/`target_columns`), numbers
|
|
208
|
+
(`topk`/`rfd3_n`/`max_results`), booleans (`fix`/`use_msa`), region lists
|
|
209
|
+
(`regions` of `crop_sequence`). Enum values (`input_type`/`query_type`/`DB`/
|
|
210
|
+
`sampling_method` etc.) may only take the values listed in the reference.
|
|
211
|
+
|
|
212
|
+
## Safety, Retry & Artifacts
|
|
213
|
+
|
|
214
|
+
- Remote tasks such as submission, docking, and design require explicit user
|
|
215
|
+
authorization. Do not retry when the outcome is unknown, timed out, or
|
|
216
|
+
disconnected — the remote computation may already have happened; do not retry
|
|
217
|
+
`status:error` or empty results with different parameters.
|
|
218
|
+
- For catalog and clearly read-only, idempotent queries, network-class 502/504 or
|
|
219
|
+
timeout may be retried at most once with identical parameters.
|
|
220
|
+
- After a failed CLI call, return a short summary of the raw error. When the user
|
|
221
|
+
explicitly asks for troubleshooting, run read-only `delta-cli auth status`,
|
|
222
|
+
`delta-cli config show` or `delta-cli ... --help`; never log in yourself, modify
|
|
223
|
+
config or environment variables, forge a UID, token or API key, or retry by
|
|
224
|
+
changing the endpoint, parameters or call chain.
|
|
225
|
+
- `X-User-Uid`, login, quota or permission errors are terminal authentication errors;
|
|
226
|
+
forward only the raw error and the login hint. The Skill never logs in by itself,
|
|
227
|
+
checks credentials, guesses user identity, or attempts to circumvent quota.
|
|
228
|
+
- Heavy calls run serially. A client timeout does not mean the remote computation was
|
|
229
|
+
cancelled.
|
|
230
|
+
- Do not create CSV, images or reports unless the user asks for files; after
|
|
231
|
+
downloading binary artifacts, verify them by filename/MIME.
|
|
232
|
+
- Never fabricate protein sequences, structures, mutations, activities, pH,
|
|
233
|
+
solubility, energies, or infer their mechanisms; prediction results must not be
|
|
234
|
+
described as measured results; do not present model variance or scores as
|
|
235
|
+
experimental error.
|
|
236
|
+
- Paths, JSON, charts or reports auto-attached by the outer planner are not equivalent
|
|
237
|
+
to an explicit user request. If the task is essentially just a query, comparison or
|
|
238
|
+
verification, return the minimal text result directly.
|
|
239
|
+
- When the user explicitly asks for public background material or literature, web
|
|
240
|
+
search is allowed, but it must not be presented as a Science service call or
|
|
241
|
+
substitute for CLI results; label sources separately.
|
|
242
|
+
|
|
243
|
+
## Output
|
|
244
|
+
|
|
245
|
+
Compose the final answer from the business response in the current CLI `data` as
|
|
246
|
+
defined by the corresponding reference; preserve strings, numbers, warnings and
|
|
247
|
+
provenance verbatim. Do not add units, mechanisms, citations, links, predicted values
|
|
248
|
+
or memorized knowledge the service did not return. Re-running the CLI to sort, lay
|
|
249
|
+
out, tabulate or summarize is forbidden, as is hand-copying results into new data
|
|
250
|
+
literals; simple filtering, comparison and text organization happen directly in the
|
|
251
|
+
final answer.
|
|
252
|
+
|
|
253
|
+
### Output Modes (two-mode decision)
|
|
254
|
+
|
|
255
|
+
- **Report mode (default)**: whenever the task produces prediction/analysis/design
|
|
256
|
+
results, output a report even for a single endpoint: property predictions
|
|
257
|
+
(ephod/protein_sol/catpred/catapro), structure prediction and sequence extraction,
|
|
258
|
+
mutation prediction and design, docking/scoring/pocket/charge/tunnel/conservation/
|
|
259
|
+
active-site/annotation, primer design, etc. Also report mode when the user
|
|
260
|
+
explicitly asks for a "report/detailed/summary", or when multiple endpoints/
|
|
261
|
+
reviews/comparisons are involved. **The whole task produces exactly one report**:
|
|
262
|
+
no matter how many endpoints are called, run all endpoints in sequence first
|
|
263
|
+
(validate only `ok:true` at each step and stash key fields), then generate the
|
|
264
|
+
report once at the end.
|
|
265
|
+
- **Concise mode (value-lookup only)**: use it only when the goal is to "look up a
|
|
266
|
+
ready-made value" — answer in the most minimal text directly, without the report
|
|
267
|
+
skeleton — e.g. `pubchem_search` for a single compound's molecular weight/formula,
|
|
268
|
+
`uniprot_query` for a single entry's sequence/metadata,
|
|
269
|
+
`protrek_search`/`pubmed_search` as pure information retrieval display. **Whenever
|
|
270
|
+
prediction/analysis endpoints such as `ephod_predict_*` are called — even just
|
|
271
|
+
once — report mode is mandatory**; do not downgrade to concise mode because of a
|
|
272
|
+
"single return".
|
|
273
|
+
|
|
274
|
+
### Report Mode: one report for the whole task (skeleton)
|
|
275
|
+
|
|
276
|
+
The report follows fixed numbered sections; numbering is consecutive and never skips.
|
|
277
|
+
If a section genuinely has no content, write "No relevant results in this section"
|
|
278
|
+
and state why; never delete the heading. Generic skeleton:
|
|
279
|
+
|
|
280
|
+
- `## 1. Analysis Overview`: analysis goal / endpoints & methods used / input data
|
|
281
|
+
sources.
|
|
282
|
+
- `## 2. Core Results`: `### 2.1 Key findings` (key numbers **bold**); `### 2.2
|
|
283
|
+
Detailed data` (one paragraph per endpoint, see "Tool result snippets"; tables go in
|
|
284
|
+
the relevant subsection, preceded by an intro sentence).
|
|
285
|
+
- `## 3. Data & Downloads`: all `download_url`/`pdb_url`/`zip_download_url` listed as
|
|
286
|
+
`[name](full URL)` with type/use noted; when there are none, write "This analysis
|
|
287
|
+
generated no downloadable files".
|
|
288
|
+
- `## 4. Notes & Recommendations`: prediction limitations, model differences,
|
|
289
|
+
experimental validation suggestions.
|
|
290
|
+
|
|
291
|
+
When intent is clear, replace the skeleton with the matched intent-based section
|
|
292
|
+
structure; for mixed types arrange per "Mixed types / others".
|
|
293
|
+
|
|
294
|
+
### Report Mode: tool result snippets
|
|
295
|
+
|
|
296
|
+
Under `### 2.2 Detailed data` (or the matching subsection of an intent-based
|
|
297
|
+
section), one paragraph per endpoint, formatted as:
|
|
298
|
+
|
|
299
|
+
- `### Tool result: <endpoint display name> (step N)` + `**Status**: succeeded /
|
|
300
|
+
failed (with error summary)`.
|
|
301
|
+
- Data presented per that endpoint's reference "Output template";
|
|
302
|
+
`summarize_result` gives the full overview table (≤100 rows, prompt download
|
|
303
|
+
beyond); `pubmed_search` uses a paper table; key numbers bolded.
|
|
304
|
+
- Structure files (`.pdb`/`.cif`/`.ent`) are presented as plain Markdown links
|
|
305
|
+
`[structure result (.pdb)](full URL)` in "Data & Downloads"; **do not use
|
|
306
|
+
`:::structure` custom blocks** (backend/frontend-only; the TUI on
|
|
307
|
+
Windows/Linux/macOS does not render them and shows raw text).
|
|
308
|
+
- A failed tool states the failure reason in its paragraph; never fabricate results;
|
|
309
|
+
endpoints not executed do not appear in the report.
|
|
310
|
+
|
|
311
|
+
### Intent-based report sections (by task type)
|
|
312
|
+
|
|
313
|
+
| Task type | Report sections |
|
|
314
|
+
|---|---|
|
|
315
|
+
| mutation (mutation prediction with data: protein_evolution/multievolve/consensus/EVcouplings/zero-shot + summary) | 1 Analysis Overview / 2 Recommended mutation sites [2.1 Top candidate mutation table (position/wild type/mutation/model/score/predicted effect); 2.2 Conservation reading (if any, annotation only); 2.3 Multi-model comparison (if any)] / 3 Overall recommendation / 4 Data & Downloads / 5 Notes |
|
|
316
|
+
| structure (protenix/esmfold2/sequence extraction/MSA) | 1 Analysis Overview / 2 Structure information [2.1 Quality assessment (confidence/trusted regions); 2.2 Key structural features; 2.3 Sequence information] / 3 Structure files & downloads / 4 Analysis recommendations / 5 Notes |
|
|
317
|
+
| property (pH/solubility/enzyme kinetics) | 1 Analysis Overview / 2 Prediction results [2.1 Key value summary table (property/predicted value/unit/description); 2.2 Wild type vs mutants, if any] / 3 Result interpretation / 4 Data & Downloads / 5 Notes |
|
|
318
|
+
| design (protein_design/rfd3_design/mpnn_design_sequence) | 1 Design overview / 2 Designed sequences [2.1 Representative sequences (monospace); 2.2 Differences from the original sequence, if any] / 3 Design scores (table) / 4 Design strategy analysis / 5 Data & Downloads / 6 Follow-up suggestions |
|
|
319
|
+
| search (pubmed/pubchem/uniprot/protrek) | 1 Search overview (keywords/databases/hit count) / 2 Result details (literature grouped by PMID; compound/entry lists) / 3 Key findings & summary / 4 Data & Downloads / 5 Notes |
|
|
320
|
+
| analysis (active site/conservation/interface/interaction/pocket/charge/tunnel) | 1 Analysis overview / 2 Active site (table: position/residue/site type/function annotation/confidence) / 3 Conserved residues (table: position/residue/score/rank/conclusion/functional significance) / 4 Functional interpretation / 5 Data & Downloads / 6 Research recommendations |
|
|
321
|
+
| Mixed types / others | 1 Analysis flow overview (actual steps & dependencies) / 2 Per-endpoint results (each `### 2.x` per endpoint using its Output template) / 3 Combined analysis / 4 Data & Downloads / 5 Notes & recommendations |
|
|
322
|
+
|
|
323
|
+
Conservation reading fixed semantics: higher `conserved_score` = less conserved,
|
|
324
|
+
lower = more conserved; higher `conserved_rank` = more conserved (1,2,3 are usually
|
|
325
|
+
variable residues, 7,8,9 are usually conserved).
|
|
326
|
+
|
|
327
|
+
### Report Mode: organization rules (aligned with agent content orchestration)
|
|
328
|
+
|
|
329
|
+
- Multi-endpoint reports are organized by the actual call order, with later results
|
|
330
|
+
citing earlier ones as evidence (note the source field); cross-tool references are
|
|
331
|
+
noted at the end of the relevant subsection rather than repeating the full data;
|
|
332
|
+
only cite fields verified in the current task.
|
|
333
|
+
- Tabulate only when the user needs it or the data suits it; column names restated in
|
|
334
|
+
natural language, never exposing raw JSON key names; keep original references
|
|
335
|
+
(mutations as `Y126A/Y206F`, PMIDs in the last table column).
|
|
336
|
+
|
|
337
|
+
On success, return only bounded text generated from the current CLI business result;
|
|
338
|
+
on failure, return only a short summary of the CLI's raw error.
|
|
339
|
+
|
|
340
|
+
### Keep Execution-layer Details Internal
|
|
341
|
+
|
|
342
|
+
- Answers present only business results, the necessary interpretation basis,
|
|
343
|
+
download links and evidence boundaries; **do not output execution details**,
|
|
344
|
+
including but not limited to:
|
|
345
|
+
- parameters/defaults/required values (e.g. `DB=UNIREF100`, `chain=A`,
|
|
346
|
+
`max_results`) — include them in the command, don't restate them in prose;
|
|
347
|
+
- invocation details (`cmd /c` wrapping, PowerShell escaping, `.bat`, direct exe
|
|
348
|
+
call);
|
|
349
|
+
- working process (retry counts, 503, temp files, quota/credit consumption).
|
|
350
|
+
- Endpoints with defaults/server-required fields still set the parameters when
|
|
351
|
+
executing, but the display only carries business data (e.g. ConSurf output lists
|
|
352
|
+
conserved positions, not "called with `DB=UNIREF100`").
|
|
353
|
+
- After a successful result, give the final answer directly; do not proactively offer
|
|
354
|
+
follow-ups such as "want me to re-run verification / generate a new link"
|
|
355
|
+
(re-running the CLI for verification is forbidden) unless the user explicitly asks.
|
|
356
|
+
|
|
357
|
+
Any URL (`download_url`, `pdb_url`, service-returned links, etc.) must be rendered in
|
|
358
|
+
one of the following two **safe forms**; bare text URLs are forbidden in prose (to
|
|
359
|
+
prevent Markdown treating `_..._` as italics and stripping underscores, which breaks
|
|
360
|
+
links):
|
|
361
|
+
|
|
362
|
+
- **inline code backticks** wrapping the full URL, e.g.
|
|
363
|
+
`` `https://delta-bucket-public.yangtzeailab.com/toolResultFile/protein-test/protein_00735e8a_20261012_103005.xlsx` ``; or
|
|
364
|
+
- **Markdown link** `[name](full URL)` — underscores in the link target are preserved
|
|
365
|
+
from italic handling, e.g.
|
|
366
|
+
`[result file](https://delta-bucket-public.yangtzeailab.com/toolResultFile/protein-test/protein_00735e8a_20261012_103005.xlsx)`.
|
|
367
|
+
|
|
368
|
+
Also state the file type and use. Whenever a URL is cited, verify it against the raw
|
|
369
|
+
JSON returned by the CLI (fields within `data`), not against rendered text.
|
|
370
|
+
|
|
371
|
+
Keep after every successful result:
|
|
372
|
+
|
|
373
|
+
```text
|
|
374
|
+
Evidence boundary: only business results from the current Delta CLI `data`
|
|
375
|
+
Call chain: delta-cli
|
|
376
|
+
No supplementation of unreturned content: yes
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Completion Criteria
|
|
380
|
+
|
|
381
|
+
- Every online operation is evidenced by a CLI exit code of 0 and top-level
|
|
382
|
+
`ok:true`;
|
|
383
|
+
- Every scientific number comes from a business field in the current call's `data`,
|
|
384
|
+
as defined by the reference;
|
|
385
|
+
- Downstream inputs come from upstream results verified in the current task;
|
|
386
|
+
- Failures are correctly classified as config, CLI, parameter, Science Server,
|
|
387
|
+
business service or timeout;
|
|
388
|
+
- No direct HTTP, local science library, cross-session file or manual result
|
|
389
|
+
substitutes.
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Delta Protein"
|
|
3
|
+
short_description: "Unified access to Huada protein analysis tools through the Delta CLI"
|
|
4
|
+
default_prompt: "Use $delta-protein to analyze protein research goals: pick the right endpoint and complete the task by calling huada_protein_tools through the Delta CLI."
|