@xtalpi/science-manual-service-sdk
v0.0.1
Published
Validation and normalization SDK for XtalPi Science manual services.
Keywords
Readme
@xtalpi/science-manual-service-sdk
XtalPi Science 人工服务输入校验与规范化 SDK。
当前初始化版本支持以下服务类型:
library_design
library_synthesis_quote本包保持为纯 TypeScript 领域包,不依赖 NestJS、TypeORM、Space App Entity、数据库或 OSS。
安装
pnpm add @xtalpi/science-manual-service-sdk使用
import { ManualServiceSdk } from '@xtalpi/science-manual-service-sdk';
const sdk = new ManualServiceSdk();
const result = await sdk.validateAndNormalizeInput({
serviceType: 'library_design',
parameters: {
entry_mode: 'scaffold_bb',
},
});SDK 支持库设计和库合成报价的服务专属字段校验、默认值补齐、错误明细和输入规范化。
库合成报价可通过可选 context 校验候选数据集及候选分子归属:
const result = await sdk.validateAndNormalizeInput({
serviceType: 'library_synthesis_quote',
parameters: {
candidate_dataset_id: 'ds_enumeration_002',
items: [
{
record_id: 'Q001',
molecule_id: 'mol_001',
amount_mg: 10,
},
],
},
context: {
candidateDatasets: [
{
dataset_id: 'ds_enumeration_002',
candidates: [{ molecule_id: 'mol_001' }],
},
],
},
});- 不传
context时只执行字段格式校验,不校验数据集存在性和分子归属。 - 传入空的
candidateDatasets表示调用方已查询,但没有可用候选数据集。 candidateDatasets由调用方根据 Tenant、Owner、来源 Request、完成状态和可用状态查询后传入;SDK 不访问数据库或鉴权上下文。- SDK 使用
dataset_id匹配candidate_dataset_id,使用candidates[].molecule_id校验items[].molecule_id,不使用record_id替代候选分子标识。
开发
pnpm typecheck
pnpm test
pnpm build
pnpm check构建产物同时支持:
- ESM:
dist/esm/index.js - CommonJS:
dist/cjs/index.cjs - TypeScript 类型声明:
dist/esm/index.d.ts
执行 pnpm publish 前会通过 prepublishOnly 自动运行类型检查、测试和构建。
