@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.
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
11 months ago