@qckfx/sdk-schema v1.0.1
Agent SDK – Schema Package
This sub-package contains only the versioned JSON/Zod schema for agent
configuration files. It is intentionally kept lightweight so that users who
just want to validate a agent.json file do not have to depend on the
runtime SDK.
Versioning strategy
One folder per major schema version (
src/v<major>.<minor>). Version 1.0 lives insrc/v1/.Each folder exposes:
agent.ts– Zod schema (strict +.strip()to silently discard unknown keys like$schema). Exported asAgentConfigSchemaV1.migrate.ts(optional) – functions that upgrade that version to the latest representation.
src/index.tskeeps a registryconst schemaRegistry = { '1.0': { schema: AgentConfigSchemaV1, upgrade: upgradeV1ToLatest }, // add new versions here };The helper
parseAgentConfig()- reads the
$schemavalue (if any) and extracts the version, - picks the matching entry from the registry (falls back to latest),
- removes the
$schemakey, validates via Zod, then applies the upgrade function so callers always receive the latest type (AgentConfig).
- reads the
Adding a new version (check-list)
- Copy the previous schema folder to
src/vX.Yand adjust fields. - Export it as
AgentConfigSchemaVXYandAgentConfigVXY. - Provide an
upgradeVXYToLatest()that converts the parsed object to the current latest structure. Update
schemaRegistryinsrc/index.ts:schemaRegistry['X.Y'] = { schema: AgentConfigSchemaVXY, upgrade: upgradeVXYToLatest }; export const SCHEMA_VERSION_LATEST = 'X.Y'; export type AgentConfig = AgentConfigVXY; // new canonical typeAdd unit tests that parse a sample
vX.Yfile and assert correctness.
Following this checklist keeps runtime code unchanged while permitting backwards-compatible evolution of the configuration format.
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
6 months ago