@delta-infra/cli 1.0.96 → 1.0.98

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.
Files changed (36) hide show
  1. package/README.md +473 -471
  2. package/checksums.txt +5 -5
  3. package/package.json +1 -1
  4. package/scripts/install-wizard.js +701 -701
  5. package/scripts/install.js +442 -442
  6. package/scripts/run.js +65 -65
  7. package/skills/delta-sandbox/SKILL.md +344 -345
  8. package/skills/delta-sandbox/agents/openai.yaml +4 -4
  9. package/skills/delta-sandbox/references/commands.md +58 -58
  10. package/skills/delta-sandbox/references/lifecycle.md +100 -98
  11. package/skills/delta-sandbox/references/recipes.md +138 -138
  12. package/skills/delta-science/AGENTS.md +46 -49
  13. package/skills/delta-science/SKILL.md +147 -136
  14. package/skills/delta-science/agents/openai.yaml +4 -4
  15. package/skills/delta-science/references/antbo.md +100 -100
  16. package/skills/delta-science/references/delta-bo.md +89 -89
  17. package/skills/delta-science/references/gsasii.md +116 -116
  18. package/skills/delta-science/references/lammps.md +66 -66
  19. package/skills/delta-science/references/ldm-bo.md +129 -129
  20. package/skills/delta-science/references/materials-design.md +109 -0
  21. package/skills/delta-science/references/pubchem.md +126 -126
  22. package/skills/delta-science/references/pymatgen.md +68 -68
  23. package/skills/delta-science/references/qe.md +123 -0
  24. package/skills/delta-science/references/rdkit.md +138 -138
  25. package/skills/delta-science/references/strbo.md +87 -87
  26. package/skills/delta-science/references/synbo.md +198 -198
  27. package/skills/delta-science/scripts/catalog.py +92 -0
  28. package/skills/delta-science/scripts/generated_catalog.py +69 -0
  29. package/skills/delta-science/scripts/invoke.py +346 -0
  30. package/skills/delta-shared/SKILL.md +97 -97
  31. package/skills/delta-shared/agents/openai.yaml +4 -4
  32. package/skills/manifest.json +19 -19
  33. package/skills/delta-science/references/cli-contract.md +0 -53
  34. package/skills/delta-science/references/ldm.md +0 -73
  35. package/skills/delta-science/references/routing-index.md +0 -36
  36. package/skills/delta-science/references/workflows.md +0 -61
@@ -1,53 +0,0 @@
1
- # Delta CLI 执行约定
2
-
3
- ## 使用 CLI
4
-
5
- 所有实时 Science 调用最终都使用已安装的 Delta CLI;CLI 是服务调用边界。标准命令为:
6
-
7
- ```text
8
- delta-cli science invoke --tool TOOL --endpoint ENDPOINT --data JSON
9
- ```
10
-
11
- `TOOL` 与 `ENDPOINT` 必须逐字使用当前 reference 或实时目录中的
12
- `tools.name`、`tool_endpoints.name`;不得增加别名映射、裁剪前缀或在 `not_found` 后改名重试。
13
- 仅当 operation 文档明确要求查询参数时使用 `--params JSON`。不要同时传递 `--data` 和
14
- `--params`,也不要改用 `curl`、`httpx`、`requests`、`Invoke-RestMethod` 或业务服务 URL。
15
-
16
- CLI 使用其标准认证和由 `base_url` 派生出的 Science 服务地址(`{base_url}/science_tool`)。
17
- Skill 不得通过环境变量、命令参数或临时配置改写服务路由,也不读取、修改或伪造凭据。
18
-
19
- ## 成功与结果
20
-
21
- CLI 成功时输出单个 JSON 信封:
22
-
23
- ```json
24
- {
25
- "ok": true,
26
- "data": {}
27
- }
28
- ```
29
-
30
- 只有 CLI 退出码为 0 且顶层 `ok` 为 `true` 时,才能报告调用成功。顶层 `data` 保存服务响应。
31
- 按 operation reference 规定的响应结构读取字段:若文档明确说明网关或业务信封的 `data`,
32
- 可读取该已知层级;不得递归搜索字段,也不得将业务返回的 `valid:false`、空结果或警告误报为
33
- CLI 传输失败。
34
-
35
- 退出码非 0 或顶层 `ok:false` 时,本次调用失败;转发 CLI 的原始错误短摘要,不得切换到
36
- 其他调用链、修改参数或重试可能已执行的远程变更。
37
-
38
- ## 实时目录
39
-
40
- 当用户点名 reference 以外的新工具,或 reference 缺失、过期或与 CLI 返回不一致时,依次执行:
41
-
42
- ```text
43
- delta-cli science list
44
- delta-cli science endpoints list TOOL
45
- ```
46
-
47
- 两次调用都必须满足成功条件。目录只用于获取精确名称;若其未提供足以安全构造请求的 schema,
48
- 说明该限制而不要猜测请求体。
49
-
50
- ## 二进制产物
51
-
52
- operation 返回 base64 数据时,只解码 operation 文档指定的 `data` 字段。PNG 文件必须以
53
- `89 50 4e 47 0d 0a 1a 0a` 开头。以 `7b`(`{`)开头的是 JSON,不能描述成图片。
@@ -1,73 +0,0 @@
1
- # LDM 科研工作流
2
-
3
- 这里的 **LDM / 大发现模型** 是用户可见的科研工作流名称,不是可以直接访问网关的
4
- tool。在线计算必须先按任务语义选择 `ldm-bo`、`strbo` 或 `antbo`,再通过
5
- `delta-cli science invoke`
6
- 调用 Delta CLI;禁止运行旧 `large-discovery-model` Skill、`run_ldm_loop.py`、gateway
7
- backend、`stream_widget` 中的联网命令或任何 HTTP 客户端。
8
-
9
- ## 路由
10
-
11
- | 用户目标 | 实际 tool | 需要同时读取 |
12
- | --- | --- | --- |
13
- | 在给定 SMILES 候选池中推荐下一批,或运行 PDF2Dock/Vina+NN 轨迹 | `ldm-bo` | `references/ldm-bo.md` |
14
- | 围绕服务端固定 KRAS G12D 生成、评估并迭代小分子 | `strbo` | `references/strbo.md` |
15
- | 为指定抗原生成、评估并迭代 11-aa CDRH3 | `antbo` | `references/antbo.md` |
16
-
17
- 不得因为用户只说“LDM”“药物发现”就自动选择后端。根据实体、已有数据和目标判断;
18
- 仍无法区分时,结束并说明需要用户确认“小分子候选池、KRAS G12D 生成优化或抗体
19
- CDRH3”中的哪一种。
20
-
21
- ## 最小执行范围
22
-
23
- - 用户只要求检查参数时,只调用相应 `*-validate` operation。
24
- - 用户只要求评估已有候选时,只调用 evaluate,不生成新候选。
25
- - 用户只要求推荐下一批且已经给出历史记录时,只调用 suggest/recommend。
26
- - 用户明确要求“完整迭代优化”时,才运行初始化、评估、建议、再评估的闭环。
27
- - 用户未给轮数时,STRBO/AntBO 最多执行一个建议轮次;不得沿用旧 Skill 的 6/8 轮
28
- 隐式默认值。LDM-BO `trajectory` 的评估次数必须来自用户,缺失时先要求确认。
29
-
30
- 生成、评估、建议和 trajectory 都会消耗远端资源。一次自然语言中的“帮我优化”视为
31
- 执行授权,但不得擅自扩大候选数、轮数或切换后端。
32
-
33
- ## STRBO 完整闭环
34
-
35
- 1. 调用 `molecules-init` 或 `molecules-init-job`,取得初始 SMILES。
36
- 2. 调用 `molecules-evaluate` 或对应异步 operation,取得 `[vina, activity]`。
37
- 3. 使用当前成功业务响应中的 SMILES 和 scores 构造 `history_xs/history_ys`。
38
- 4. 调用一次 `molecules-suggest-job`,按 STRBO reference 轮询至成功。
39
- 5. 只评估新建议,并把结果与当前任务内历史合并后返回。
40
-
41
- 提交 operation 不得重试。任一步失败、超时或返回数量不一致,立即结束;不得用旧
42
- gateway、离线 mock、本地 RDKit/Vina 或模型猜测补全。
43
-
44
- ## AntBO 完整闭环
45
-
46
- 1. 用户必须提供抗原;未提供时不得替用户选择。
47
- 2. 必要时调用一次 `ldm-health`,确认抗原与 CDRH3 长度约束。
48
- 3. 调用 `ldm-init` 取得初始 CDRH3,再调用 `evaluate` 取得结合能。
49
- 4. 使用当前成功业务响应构造一维 `history_ys`,调用一次 `ldm-suggest`。
50
- 5. 只评估新建议,并返回当前任务内的候选与结合能。
51
-
52
- 不得把 AntBO 的一维 score 改成 STRBO 的二维 score,也不得把 CDRH3 交给小分子
53
- LDM-BO。
54
-
55
- ## 固定候选池与轨迹
56
-
57
- - 已有候选池和历史分数,要求下一批:使用 `ldm-bo/recommend`。
58
- - 用户明确要求完整 PDF2Dock/Vina+NN 搜索并给出评估次数:使用
59
- `ldm-bo/trajectory`。
60
- - 不得把 `ldm-bo` 的 provider、模型路径、密钥、GPU 或 Vina 配置放进请求;这些由
61
- Science Server 管理。
62
-
63
- ## 结果与展示
64
-
65
- 只报告当前 Delta CLI 业务响应中真实存在的候选、目标值、warnings、job_id、状态和
66
- 服务端 provenance。不得自行添加相似度阈值、机制解释、湿实验结论或“最优”断言;
67
- 只有在方向明确且比较集合完整时,才能按实际目标值指出当前集合中的最好候选。
68
- 推荐结果中的 acquisition value 不是预测目标值、置信度或推荐理由;除非业务响应
69
- 明确给出语义和方向,否则只作为原始采集函数值报告。
70
-
71
- LDM 的仪表盘是展示层,不是计算入口。用户明确要求图表时,先完成一次 CLI 计算,
72
- 再让外层使用同一份已验证结果绘图;禁止为了仪表盘再次提交远端任务。普通请求直接
73
- 返回简洁文本。
@@ -1,36 +0,0 @@
1
- # Delta Science 路由索引
2
-
3
- 本文件只描述稳定的科研意图边界,不复制 Science Server 的工具和 endpoint 清单。
4
- 实际可用工具以 `delta-cli science list` 和 `delta-cli science endpoints list` 返回的
5
- 实时目录为准。
6
-
7
- ## 路由优先级
8
-
9
- - 普通化合物名称、CID 和公共属性使用 PubChem;已有 SMILES/InChI 且需要结构计算时
10
- 使用 RDKit。
11
- - 无机化学式、组成、CIF、POSCAR 和空间群使用 pymatgen;粉末衍射模拟或 Rietveld
12
- 精修使用 GSAS-II。
13
- - 明确的 LAMMPS input、data 和力场任务使用 LAMMPS;不得从化学式或 CIF 猜测势函数。
14
- - 通用数值、整数或分类实验变量优化使用 Delta-BO。
15
- - 固定 SMILES 候选池或 PDF2Dock 轨迹使用 LDM-BO;固定 KRAS G12D 生成式优化使用
16
- STRBO;反应条件与真实历史得率使用 SynBO;抗体 CDRH3 使用 AntBO。
17
- - “LDM/大发现模型”是跨上述三类能力的工作流意图,先读取 `ldm.md` 决定唯一后端,
18
- 不是服务端 tool,也不得路由到旧 `large-discovery-model` Skill。
19
-
20
- ## 已验证 reference
21
-
22
- - [pubchem.md](pubchem.md)
23
- - [rdkit.md](rdkit.md)
24
- - [pymatgen.md](pymatgen.md)
25
- - [gsasii.md](gsasii.md)
26
- - [lammps.md](lammps.md)
27
- - [delta-bo.md](delta-bo.md)
28
- - [ldm-bo.md](ldm-bo.md)
29
- - [ldm.md](ldm.md)
30
- - [strbo.md](strbo.md)
31
- - [synbo.md](synbo.md)
32
- - [antbo.md](antbo.md)
33
-
34
- 以上 reference 是已验证参数契约,不是服务端完整目录。用户明确点名新工具时,按
35
- `SKILL.md` 的实时 catalog 流程发现工具和 endpoint;若目录未返回请求 schema,不猜测
36
- 请求体。
@@ -1,61 +0,0 @@
1
- # 跨服务工作流
2
-
3
- 整个流程由单一 `delta-science` Skill 编排。线上调用最终执行
4
- `delta-cli science invoke`,禁止直接 HTTP。可使用 subagent 协助整理输入、核对 reference
5
- 或展示结果,但主流程负责工具选择和所有线上调用。CLI 成功后每一步只消费对应 reference
6
- 定义的 `data` 响应字段。已知 reference 中没有目标 operation 时,不猜测相近 endpoint;reference
7
- 缺失、过期或与 CLI 返回不一致时,按 `SKILL.md` 的只读实时 catalog 流程确认。
8
-
9
- ## 单个已命名分子
10
-
11
- 1. 用 PubChem `compound-summary` 解析名称并取得身份字段。
12
- 2. 按文档规定的回退顺序提取 SMILES。
13
- 3. 只有用户要求 RDKit 描述符或明确的结构校验时,才调用 RDKit `batch-parse-describe`。
14
- 4. 只有用户明确要求图片时,才调用 RDKit `render`,并解码、验证图片字节。
15
- 5. 比较分子式、分子量、InChIKey 和供体/受体数量时,要明确区分 LogP、TPSA 等依赖模型的数值。
16
-
17
- ## 多分子比较
18
-
19
- 1. 用 PubChem 批量解析全部名称,请求体只包含 `identifiers` 和 `namespace:"name"`。省略 `properties`。
20
- 2. 从业务响应的 `results[*]` 读取记录,并从每条记录的嵌套 `properties` 读取字段。
21
- 3. 未解析成功的记录要排除,并明确说明原因。
22
- 4. 使用 RDKit `similarity-matrix` 校验和排序两两相似度。它的 `sanitize` 已经校验输入,不要额外调用 parse。
23
- 5. 用 PubChem 记录的原始 `input` 作为 molecule id,并按文档顺序从嵌套属性中提取 SMILES。
24
- 6. 保持输入顺序,报告每个分数时明确对应的分子对。
25
- 7. 除非用户明确要求,不要渲染、保存用户文件、检查健康状态或探测额外描述符。
26
- 8. `ranked_pairs` 使用命名字段 `a`、`b`、`similarity`。找指定目标的最近邻时,
27
- 在包含该目标的记录中取最大 `similarity`,另一侧字段就是最近邻;不要使用
28
- `i`、`j`、`score` 或猜测矩阵下标。
29
-
30
- ## 材料工作流
31
-
32
- 1. 使用 pymatgen 校验化学式/结构并转换 CIF;无机式量只能取当前业务响应 `weight`。
33
- 2. GSAS-II 只能接收真实 CIF 文本后再做衍射计算。
34
- 3. LAMMPS 只能在已有明确的力场、data 和脚本设置后运行;部署检查可以使用内置有界示例。
35
- 4. 从 LAMMPS 返回 pymatgen 或 GSAS-II 前,需要从弛豫结果重新构造 CIF/POSCAR。不要直接传递 LAMMPS data/dump 文件。
36
-
37
- ## 优化工作流
38
-
39
- - 通用数值或分类实验变量:Delta-BO
40
- - 固定 SMILES 候选池或 PDF2Dock/Vina+NN 轨迹:LDM-BO
41
- - 固定 KRAS G12D 的生成式小分子闭环:STRBO
42
- - 指定抗原的 11-aa CDRH3 闭环:AntBO
43
- - 偶联反应、反应条件和带真实历史得率的下一批实验推荐:SynBO
44
-
45
- 用户以 “LDM/大发现模型” 描述任务时,必须先按 `SKILL.md` 读取 `ldm.md`,再读取唯一
46
- 选定后端的 reference。LDM 是工作流意图,不是 tool;禁止旧
47
- `large-discovery-model`、`run_ldm_loop.py`、gateway backend 和直接 HTTP。
48
-
49
- 禁止为了让优化器运行而编造观测数据。用户没有提供测量结果时,只能使用初始化或随机建议模式,并明确说明它是待实验验证的建议,不是已经验证的最优条件。
50
- SynBO/Delta-BO 没有返回 recommendations 时,不得用本地回归、GP、UCB 或人工排序替代。
51
-
52
- SynBO 只接受离散条件列表。用户给连续范围时,在一次调用前完成以下处理:
53
-
54
- 1. 条件网格包含用户上下界、全部历史观测值和少量合理中间点。
55
- 2. 同一条件列在 `condition_dict` 与 `previous_results` 中统一为字符串。
56
- 3. 得率等 objective metric 保持数值。
57
- 4. 小数据 CPU 默认 `tiny + RF + UCB`,并在最终答案中报告实际离散网格。
58
- 5. CLI 返回失败或业务响应为空 recommendations 时结束;不得连续尝试多种 payload 或模型。
59
-
60
- 用户未要求文件时只返回 recommendations 文本,不创建输入 CSV。必须交接时,仅把本次
61
- 成功业务响应写入当前 `WORKSPACE_ROOT/synbo_result.json`。