JSPM

  • Created
  • Published
  • Downloads 580
  • Score
    100M100P100Q30779F
  • License MIT

Core contract specification definitions and runtime

Package Exports

  • @contractspec/lib.contracts
  • @contractspec/lib.contracts/app-config
  • @contractspec/lib.contracts/app-config/app-config.capability
  • @contractspec/lib.contracts/app-config/app-config.contracts
  • @contractspec/lib.contracts/app-config/app-config.feature
  • @contractspec/lib.contracts/app-config/branding
  • @contractspec/lib.contracts/app-config/docs/app-config.docblock
  • @contractspec/lib.contracts/app-config/events
  • @contractspec/lib.contracts/app-config/index
  • @contractspec/lib.contracts/app-config/lifecycle
  • @contractspec/lib.contracts/app-config/lifecycle-contracts
  • @contractspec/lib.contracts/app-config/runtime
  • @contractspec/lib.contracts/app-config/spec
  • @contractspec/lib.contracts/app-config/validation
  • @contractspec/lib.contracts/capabilities
  • @contractspec/lib.contracts/capabilities/capabilities
  • @contractspec/lib.contracts/capabilities/context
  • @contractspec/lib.contracts/capabilities/docs/capabilities.docblock
  • @contractspec/lib.contracts/capabilities/guards
  • @contractspec/lib.contracts/capabilities/index
  • @contractspec/lib.contracts/capabilities/meeting-recorder
  • @contractspec/lib.contracts/capabilities/openbanking
  • @contractspec/lib.contracts/capabilities/validation
  • @contractspec/lib.contracts/client
  • @contractspec/lib.contracts/client/index
  • @contractspec/lib.contracts/client/react
  • @contractspec/lib.contracts/client/react/drivers/rn-reusables
  • @contractspec/lib.contracts/client/react/drivers/shadcn
  • @contractspec/lib.contracts/client/react/feature-render
  • @contractspec/lib.contracts/client/react/form-render
  • @contractspec/lib.contracts/client/react/index
  • @contractspec/lib.contracts/contract-registry
  • @contractspec/lib.contracts/contract-registry/index
  • @contractspec/lib.contracts/contract-registry/schemas
  • @contractspec/lib.contracts/contract-registry/types
  • @contractspec/lib.contracts/data-views
  • @contractspec/lib.contracts/data-views/data-views
  • @contractspec/lib.contracts/data-views/docs/data-views.docblock
  • @contractspec/lib.contracts/data-views/index
  • @contractspec/lib.contracts/data-views/query-generator
  • @contractspec/lib.contracts/data-views/registry
  • @contractspec/lib.contracts/data-views/report/contractVerificationTable
  • @contractspec/lib.contracts/data-views/runtime
  • @contractspec/lib.contracts/data-views/spec
  • @contractspec/lib.contracts/data-views/types
  • @contractspec/lib.contracts/docs
  • @contractspec/lib.contracts/docs/accessibility_wcag_compliance_specs.docblock
  • @contractspec/lib.contracts/docs/capabilities
  • @contractspec/lib.contracts/docs/capabilities/documentationSystem.capability
  • @contractspec/lib.contracts/docs/capabilities/index
  • @contractspec/lib.contracts/docs/commands
  • @contractspec/lib.contracts/docs/commands/docsGenerate.command
  • @contractspec/lib.contracts/docs/commands/docsPublish.command
  • @contractspec/lib.contracts/docs/commands/index
  • @contractspec/lib.contracts/docs/constants
  • @contractspec/lib.contracts/docs/contracts
  • @contractspec/lib.contracts/docs/ensure-docblocks
  • @contractspec/lib.contracts/docs/events
  • @contractspec/lib.contracts/docs/events/docsGenerated.event
  • @contractspec/lib.contracts/docs/events/docsPublished.event
  • @contractspec/lib.contracts/docs/events/index
  • @contractspec/lib.contracts/docs/forms
  • @contractspec/lib.contracts/docs/forms/docsSearch.form
  • @contractspec/lib.contracts/docs/forms/index
  • @contractspec/lib.contracts/docs/index
  • @contractspec/lib.contracts/docs/meta.docs
  • @contractspec/lib.contracts/docs/presentations
  • @contractspec/lib.contracts/docs/presentations/docsLayout.presentation
  • @contractspec/lib.contracts/docs/presentations/docsReferencePage.presentation
  • @contractspec/lib.contracts/docs/presentations/index
  • @contractspec/lib.contracts/docs/queries
  • @contractspec/lib.contracts/docs/queries/contractReference.query
  • @contractspec/lib.contracts/docs/queries/docsIndex.query
  • @contractspec/lib.contracts/docs/queries/index
  • @contractspec/lib.contracts/docs/registry
  • @contractspec/lib.contracts/docs/tech-contracts.docs
  • @contractspec/lib.contracts/docs/tech/auth/better-auth-nextjs.docblock
  • @contractspec/lib.contracts/docs/tech/cli.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/README.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/migrations.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/openapi-export.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/openapi-import.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/ops-to-presentation-linking.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/overlays.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/tests.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/themes.docblock
  • @contractspec/lib.contracts/docs/tech/contracts/vertical-pocket-family-office.docblock
  • @contractspec/lib.contracts/docs/tech/docs-system.docblock
  • @contractspec/lib.contracts/docs/tech/lifecycle-stage-system.docblock
  • @contractspec/lib.contracts/docs/tech/llm/llm-integration.docblock
  • @contractspec/lib.contracts/docs/tech/mcp-endpoints.docblock
  • @contractspec/lib.contracts/docs/tech/presentation-runtime.docblock
  • @contractspec/lib.contracts/docs/tech/report-verification-table.docblock
  • @contractspec/lib.contracts/docs/tech/schema/README.docblock
  • @contractspec/lib.contracts/docs/tech/studio/learning-events.docblock
  • @contractspec/lib.contracts/docs/tech/studio/learning-journeys.docblock
  • @contractspec/lib.contracts/docs/tech/studio/platform-admin-panel.docblock
  • @contractspec/lib.contracts/docs/tech/studio/project-access-teams.docblock
  • @contractspec/lib.contracts/docs/tech/studio/project-routing.docblock
  • @contractspec/lib.contracts/docs/tech/studio/sandbox-unlogged.docblock
  • @contractspec/lib.contracts/docs/tech/studio/team-invitations.docblock
  • @contractspec/lib.contracts/docs/tech/studio/workspace-ops.docblock
  • @contractspec/lib.contracts/docs/tech/studio/workspaces.docblock
  • @contractspec/lib.contracts/docs/tech/telemetry-ingest.docblock
  • @contractspec/lib.contracts/docs/tech/vscode-extension.docblock
  • @contractspec/lib.contracts/docs/types
  • @contractspec/lib.contracts/docs/views
  • @contractspec/lib.contracts/docs/views/contractReference.dataView
  • @contractspec/lib.contracts/docs/views/docsIndex.dataView
  • @contractspec/lib.contracts/docs/views/exampleCatalog.dataView
  • @contractspec/lib.contracts/docs/views/index
  • @contractspec/lib.contracts/events
  • @contractspec/lib.contracts/examples
  • @contractspec/lib.contracts/examples/docs/examples.docblock
  • @contractspec/lib.contracts/examples/index
  • @contractspec/lib.contracts/examples/registry
  • @contractspec/lib.contracts/examples/schema
  • @contractspec/lib.contracts/examples/types
  • @contractspec/lib.contracts/examples/validation
  • @contractspec/lib.contracts/experiments/docs/experiments.docblock
  • @contractspec/lib.contracts/experiments/evaluator
  • @contractspec/lib.contracts/experiments/spec
  • @contractspec/lib.contracts/experiments/spec-resolver
  • @contractspec/lib.contracts/features
  • @contractspec/lib.contracts/features/index
  • @contractspec/lib.contracts/features/install
  • @contractspec/lib.contracts/features/registry
  • @contractspec/lib.contracts/features/types
  • @contractspec/lib.contracts/features/validation
  • @contractspec/lib.contracts/forms
  • @contractspec/lib.contracts/forms/docs/forms.docblock
  • @contractspec/lib.contracts/forms/forms
  • @contractspec/lib.contracts/forms/index
  • @contractspec/lib.contracts/install
  • @contractspec/lib.contracts/integrations
  • @contractspec/lib.contracts/integrations/binding
  • @contractspec/lib.contracts/integrations/connection
  • @contractspec/lib.contracts/integrations/docs/integrations.docblock
  • @contractspec/lib.contracts/integrations/health
  • @contractspec/lib.contracts/integrations/index
  • @contractspec/lib.contracts/integrations/integrations.capability
  • @contractspec/lib.contracts/integrations/integrations.feature
  • @contractspec/lib.contracts/integrations/meeting-recorder/contracts
  • @contractspec/lib.contracts/integrations/meeting-recorder/contracts/index
  • @contractspec/lib.contracts/integrations/meeting-recorder/contracts/meetings
  • @contractspec/lib.contracts/integrations/meeting-recorder/contracts/transcripts
  • @contractspec/lib.contracts/integrations/meeting-recorder/contracts/webhooks
  • @contractspec/lib.contracts/integrations/meeting-recorder/meeting-recorder.capability
  • @contractspec/lib.contracts/integrations/meeting-recorder/meeting-recorder.feature
  • @contractspec/lib.contracts/integrations/meeting-recorder/models
  • @contractspec/lib.contracts/integrations/meeting-recorder/telemetry
  • @contractspec/lib.contracts/integrations/openbanking/contracts
  • @contractspec/lib.contracts/integrations/openbanking/contracts/accounts
  • @contractspec/lib.contracts/integrations/openbanking/contracts/balances
  • @contractspec/lib.contracts/integrations/openbanking/contracts/index
  • @contractspec/lib.contracts/integrations/openbanking/contracts/transactions
  • @contractspec/lib.contracts/integrations/openbanking/guards
  • @contractspec/lib.contracts/integrations/openbanking/models
  • @contractspec/lib.contracts/integrations/openbanking/openbanking.capability
  • @contractspec/lib.contracts/integrations/openbanking/openbanking.feature
  • @contractspec/lib.contracts/integrations/openbanking/telemetry
  • @contractspec/lib.contracts/integrations/operations
  • @contractspec/lib.contracts/integrations/providers
  • @contractspec/lib.contracts/integrations/providers/analytics
  • @contractspec/lib.contracts/integrations/providers/analytics-reader
  • @contractspec/lib.contracts/integrations/providers/analytics-writer
  • @contractspec/lib.contracts/integrations/providers/calendar
  • @contractspec/lib.contracts/integrations/providers/database
  • @contractspec/lib.contracts/integrations/providers/elevenlabs
  • @contractspec/lib.contracts/integrations/providers/email
  • @contractspec/lib.contracts/integrations/providers/embedding
  • @contractspec/lib.contracts/integrations/providers/fal
  • @contractspec/lib.contracts/integrations/providers/fathom
  • @contractspec/lib.contracts/integrations/providers/fireflies
  • @contractspec/lib.contracts/integrations/providers/gcs-storage
  • @contractspec/lib.contracts/integrations/providers/gmail
  • @contractspec/lib.contracts/integrations/providers/google-calendar
  • @contractspec/lib.contracts/integrations/providers/gradium
  • @contractspec/lib.contracts/integrations/providers/granola
  • @contractspec/lib.contracts/integrations/providers/index
  • @contractspec/lib.contracts/integrations/providers/jira
  • @contractspec/lib.contracts/integrations/providers/linear
  • @contractspec/lib.contracts/integrations/providers/llm
  • @contractspec/lib.contracts/integrations/providers/meeting-recorder
  • @contractspec/lib.contracts/integrations/providers/mistral
  • @contractspec/lib.contracts/integrations/providers/notion
  • @contractspec/lib.contracts/integrations/providers/openbanking
  • @contractspec/lib.contracts/integrations/providers/payments
  • @contractspec/lib.contracts/integrations/providers/posthog
  • @contractspec/lib.contracts/integrations/providers/posthog-llm-telemetry
  • @contractspec/lib.contracts/integrations/providers/postmark
  • @contractspec/lib.contracts/integrations/providers/powens
  • @contractspec/lib.contracts/integrations/providers/project-management
  • @contractspec/lib.contracts/integrations/providers/qdrant
  • @contractspec/lib.contracts/integrations/providers/registry
  • @contractspec/lib.contracts/integrations/providers/sms
  • @contractspec/lib.contracts/integrations/providers/storage
  • @contractspec/lib.contracts/integrations/providers/stripe
  • @contractspec/lib.contracts/integrations/providers/supabase-postgres
  • @contractspec/lib.contracts/integrations/providers/supabase-vector
  • @contractspec/lib.contracts/integrations/providers/tldv
  • @contractspec/lib.contracts/integrations/providers/twilio-sms
  • @contractspec/lib.contracts/integrations/providers/vector-store
  • @contractspec/lib.contracts/integrations/providers/voice
  • @contractspec/lib.contracts/integrations/runtime
  • @contractspec/lib.contracts/integrations/secrets
  • @contractspec/lib.contracts/integrations/secrets-types
  • @contractspec/lib.contracts/integrations/secrets/aws-secret-manager
  • @contractspec/lib.contracts/integrations/secrets/env-secret-provider
  • @contractspec/lib.contracts/integrations/secrets/gcp-secret-manager
  • @contractspec/lib.contracts/integrations/secrets/index
  • @contractspec/lib.contracts/integrations/secrets/manager
  • @contractspec/lib.contracts/integrations/secrets/provider
  • @contractspec/lib.contracts/integrations/secrets/scaleway-secret-manager
  • @contractspec/lib.contracts/integrations/spec
  • @contractspec/lib.contracts/jobs
  • @contractspec/lib.contracts/jobs/define-job
  • @contractspec/lib.contracts/jobs/gcp-cloud-tasks
  • @contractspec/lib.contracts/jobs/gcp-pubsub
  • @contractspec/lib.contracts/jobs/handlers
  • @contractspec/lib.contracts/jobs/handlers/gmail-sync-handler
  • @contractspec/lib.contracts/jobs/handlers/index
  • @contractspec/lib.contracts/jobs/handlers/ping-handler
  • @contractspec/lib.contracts/jobs/handlers/storage-document-handler
  • @contractspec/lib.contracts/jobs/index
  • @contractspec/lib.contracts/jobs/memory-queue
  • @contractspec/lib.contracts/jobs/queue
  • @contractspec/lib.contracts/jobs/scaleway-sqs-queue
  • @contractspec/lib.contracts/jsonschema
  • @contractspec/lib.contracts/knowledge
  • @contractspec/lib.contracts/knowledge/binding
  • @contractspec/lib.contracts/knowledge/docs/knowledge.docblock
  • @contractspec/lib.contracts/knowledge/index
  • @contractspec/lib.contracts/knowledge/ingestion
  • @contractspec/lib.contracts/knowledge/ingestion/document-processor
  • @contractspec/lib.contracts/knowledge/ingestion/embedding-service
  • @contractspec/lib.contracts/knowledge/ingestion/gmail-adapter
  • @contractspec/lib.contracts/knowledge/ingestion/index
  • @contractspec/lib.contracts/knowledge/ingestion/storage-adapter
  • @contractspec/lib.contracts/knowledge/ingestion/vector-indexer
  • @contractspec/lib.contracts/knowledge/knowledge.capability
  • @contractspec/lib.contracts/knowledge/knowledge.feature
  • @contractspec/lib.contracts/knowledge/operations
  • @contractspec/lib.contracts/knowledge/query
  • @contractspec/lib.contracts/knowledge/query/index
  • @contractspec/lib.contracts/knowledge/query/service
  • @contractspec/lib.contracts/knowledge/runtime
  • @contractspec/lib.contracts/knowledge/source
  • @contractspec/lib.contracts/knowledge/spaces
  • @contractspec/lib.contracts/knowledge/spaces/email-threads
  • @contractspec/lib.contracts/knowledge/spaces/financial-docs
  • @contractspec/lib.contracts/knowledge/spaces/financial-overview
  • @contractspec/lib.contracts/knowledge/spaces/index
  • @contractspec/lib.contracts/knowledge/spaces/product-canon
  • @contractspec/lib.contracts/knowledge/spaces/support-faq
  • @contractspec/lib.contracts/knowledge/spaces/uploaded-docs
  • @contractspec/lib.contracts/knowledge/spec
  • @contractspec/lib.contracts/llm
  • @contractspec/lib.contracts/llm/exporters
  • @contractspec/lib.contracts/llm/index
  • @contractspec/lib.contracts/llm/prompts
  • @contractspec/lib.contracts/llm/types
  • @contractspec/lib.contracts/markdown
  • @contractspec/lib.contracts/migrations
  • @contractspec/lib.contracts/model-registry
  • @contractspec/lib.contracts/onboarding-base
  • @contractspec/lib.contracts/openapi
  • @contractspec/lib.contracts/operations
  • @contractspec/lib.contracts/operations/index
  • @contractspec/lib.contracts/operations/operation
  • @contractspec/lib.contracts/operations/registry
  • @contractspec/lib.contracts/operations/report
  • @contractspec/lib.contracts/operations/report/getContractVerificationStatus
  • @contractspec/lib.contracts/operations/report/index
  • @contractspec/lib.contracts/ownership
  • @contractspec/lib.contracts/policy
  • @contractspec/lib.contracts/policy/context
  • @contractspec/lib.contracts/policy/docs/policy.docblock
  • @contractspec/lib.contracts/policy/engine
  • @contractspec/lib.contracts/policy/guards
  • @contractspec/lib.contracts/policy/index
  • @contractspec/lib.contracts/policy/opa-adapter
  • @contractspec/lib.contracts/policy/registry
  • @contractspec/lib.contracts/policy/spec
  • @contractspec/lib.contracts/policy/validation
  • @contractspec/lib.contracts/presentations
  • @contractspec/lib.contracts/presentations/docs/presentations-conventions.docblock
  • @contractspec/lib.contracts/presentations/index
  • @contractspec/lib.contracts/presentations/presentations
  • @contractspec/lib.contracts/presentations/registry
  • @contractspec/lib.contracts/presentations/transform-engine
  • @contractspec/lib.contracts/product-intent
  • @contractspec/lib.contracts/product-intent/contract-patch-intent
  • @contractspec/lib.contracts/product-intent/contract-spec-patch
  • @contractspec/lib.contracts/product-intent/evidence
  • @contractspec/lib.contracts/product-intent/findings
  • @contractspec/lib.contracts/product-intent/impact-report
  • @contractspec/lib.contracts/product-intent/index
  • @contractspec/lib.contracts/product-intent/insights
  • @contractspec/lib.contracts/product-intent/opportunity-brief
  • @contractspec/lib.contracts/product-intent/problems
  • @contractspec/lib.contracts/product-intent/registry
  • @contractspec/lib.contracts/product-intent/runtime
  • @contractspec/lib.contracts/product-intent/spec
  • @contractspec/lib.contracts/product-intent/task-pack
  • @contractspec/lib.contracts/product-intent/tickets
  • @contractspec/lib.contracts/product-intent/types
  • @contractspec/lib.contracts/product-intent/ui-wireframe
  • @contractspec/lib.contracts/prompt
  • @contractspec/lib.contracts/promptRegistry
  • @contractspec/lib.contracts/regenerator
  • @contractspec/lib.contracts/regenerator/adapters
  • @contractspec/lib.contracts/regenerator/docs/regenerator.docblock
  • @contractspec/lib.contracts/regenerator/executor
  • @contractspec/lib.contracts/regenerator/index
  • @contractspec/lib.contracts/regenerator/service
  • @contractspec/lib.contracts/regenerator/sinks
  • @contractspec/lib.contracts/regenerator/types
  • @contractspec/lib.contracts/regenerator/utils
  • @contractspec/lib.contracts/registry
  • @contractspec/lib.contracts/registry-utils
  • @contractspec/lib.contracts/resources
  • @contractspec/lib.contracts/schema-to-markdown
  • @contractspec/lib.contracts/serialization
  • @contractspec/lib.contracts/serialization/index
  • @contractspec/lib.contracts/serialization/serializers
  • @contractspec/lib.contracts/serialization/types
  • @contractspec/lib.contracts/server
  • @contractspec/lib.contracts/server/contracts-adapter-hydration
  • @contractspec/lib.contracts/server/contracts-adapter-input
  • @contractspec/lib.contracts/server/graphql-pothos
  • @contractspec/lib.contracts/server/index
  • @contractspec/lib.contracts/server/mcp/createMcpServer
  • @contractspec/lib.contracts/server/mcp/mcpTypes
  • @contractspec/lib.contracts/server/mcp/registerPresentations
  • @contractspec/lib.contracts/server/mcp/registerPrompts
  • @contractspec/lib.contracts/server/mcp/registerResources
  • @contractspec/lib.contracts/server/mcp/registerTools
  • @contractspec/lib.contracts/server/provider-mcp
  • @contractspec/lib.contracts/server/rest-elysia
  • @contractspec/lib.contracts/server/rest-express
  • @contractspec/lib.contracts/server/rest-generic
  • @contractspec/lib.contracts/server/rest-next-app
  • @contractspec/lib.contracts/server/rest-next-mcp
  • @contractspec/lib.contracts/server/rest-next-pages
  • @contractspec/lib.contracts/telemetry
  • @contractspec/lib.contracts/telemetry/anomaly
  • @contractspec/lib.contracts/telemetry/docs/telemetry.docblock
  • @contractspec/lib.contracts/telemetry/index
  • @contractspec/lib.contracts/telemetry/spec
  • @contractspec/lib.contracts/telemetry/tracker
  • @contractspec/lib.contracts/tests
  • @contractspec/lib.contracts/tests/index
  • @contractspec/lib.contracts/tests/runner
  • @contractspec/lib.contracts/tests/spec
  • @contractspec/lib.contracts/themes
  • @contractspec/lib.contracts/translations
  • @contractspec/lib.contracts/translations/catalog
  • @contractspec/lib.contracts/translations/index
  • @contractspec/lib.contracts/translations/registry
  • @contractspec/lib.contracts/translations/spec
  • @contractspec/lib.contracts/translations/tenant
  • @contractspec/lib.contracts/translations/validation
  • @contractspec/lib.contracts/types
  • @contractspec/lib.contracts/versioning
  • @contractspec/lib.contracts/versioning/index
  • @contractspec/lib.contracts/versioning/refs
  • @contractspec/lib.contracts/versioning/types
  • @contractspec/lib.contracts/versioning/utils
  • @contractspec/lib.contracts/workflow
  • @contractspec/lib.contracts/workflow/adapters
  • @contractspec/lib.contracts/workflow/adapters/db-adapter
  • @contractspec/lib.contracts/workflow/adapters/file-adapter
  • @contractspec/lib.contracts/workflow/adapters/index
  • @contractspec/lib.contracts/workflow/adapters/memory-store
  • @contractspec/lib.contracts/workflow/context
  • @contractspec/lib.contracts/workflow/expression
  • @contractspec/lib.contracts/workflow/index
  • @contractspec/lib.contracts/workflow/overview.docblock
  • @contractspec/lib.contracts/workflow/runner
  • @contractspec/lib.contracts/workflow/sla-monitor
  • @contractspec/lib.contracts/workflow/spec
  • @contractspec/lib.contracts/workflow/state
  • @contractspec/lib.contracts/workflow/validation
  • @contractspec/lib.contracts/workspace-config
  • @contractspec/lib.contracts/workspace-config/contractsrc-schema
  • @contractspec/lib.contracts/workspace-config/contractsrc-types
  • @contractspec/lib.contracts/workspace-config/index
  • @contractspec/lib.contracts/workspace-config/workspace-config.docblock

Readme

@contractspec/lib.contracts

npm version npm downloads Ask DeepWiki

Website: https://contractspec.io/

The core of ContractSpec — Define contracts once, generate consistent code across all surfaces.

Unified specifications for Operations (commands/queries), Events, and Presentations. Contracts serve as the canonical source of truth that AI agents and code generators read to understand system constraints.

Purpose

To provide a single, typed source of truth for backend operations (ContractSpec), events (EventSpec), and UI/data presentations. This enables runtime adapters (REST, GraphQL, MCP, UI) to automatically generate endpoints, schemas, and user interfaces without code duplication.

Installation

npm install @contractspec/lib.contracts @contractspec/lib.schema
# or
bun add @contractspec/lib.contracts @contractspec/lib.schema

Key Concepts

  • Spec-First, TypeScript-First: Define operations in pure TypeScript (no YAML).
  • Runtime Adapters: The OperationSpecRegistry is passed to adapters (e.g., makeNextAppHandler) to serve APIs dynamically. There is no intermediate "compile" step to generate code; the spec is the code.
  • Capabilities: defineCommand (writes) and defineQuery (reads) with Zod-backed I/O.
  • Events: defineEvent for type-safe side effects.
  • Presentations: (V2) Describe how data is rendered (Web Components, Markdown, Data) for automated UI generation.

Exports

  • Core: OperationSpecRegistry, defineCommand, defineQuery, defineEvent.
  • Config: SchemaFormat ('contractspec' | 'zod' | 'json-schema' | 'graphql').
  • Adapters:
    • server/rest-next-app: Next.js App Router adapter.
    • server/provider-mcp: Model Context Protocol (MCP) adapter for AI agents.
    • server/graphql-pothos: GraphQL schema generator.
  • Docs: markdown utilities to generate human-readable documentation from specs.

Usage

1. Define a Spec

import { defineCommand, defineQuery } from '@contractspec/lib.contracts';
import * as z from "zod";
import { SchemaModel, ScalarTypeEnum } from '@contractspec/lib.schema';

const UserInput = new SchemaModel({
  name: 'UserInput',
  fields: {
    email: { type: ScalarTypeEnum.Email(), isOptional: false },
  },
});

export const CreateUser = defineCommand({
  meta: {
    name: 'user.create',
    version: '1.0.0',
    description: 'Register a new user',
    owners: ['team-auth'],
    tags: ['auth'],
    goal: 'Onboard users',
    context: 'Public registration',
    stability: 'stable',
  },
  io: {
    input: UserInput,
    output: new SchemaModel({
      name: 'UserOutput',
      fields: {
        id: { type: ScalarTypeEnum.String(), isOptional: false },
      },
    }),
  },
  policy: {
    auth: 'anonymous',
  },
});

2. Register and Implement

import { OperationSpecRegistry, installOp } from '@contractspec/lib.contracts';

const reg = new OperationSpecRegistry();

installOp(reg, CreateUser, async (ctx, input) => {
  // Implementation logic here
  return { id: '123' };
});

3. Serve (Next.js Adapter)

// app/api/[...route]/route.ts
import { makeNextAppHandler } from '@contractspec/lib.contracts/server/rest-next-app';

const handler = makeNextAppHandler(reg, (req) => ({ actor: 'anonymous' }));

export { handler as GET, handler as POST };