Product status
This page is intentionally conservative. “Designed” and “researched” do not mean “available in the package.”
Available now
Section titled “Available now”- Form Contract schema
0.4.0, strict runtime parsing, canonical JSON, and SHA-256 content hashes. - Declared Formly extraction and trusted scenario compilation.
- Field-type profile and cross-field effect registries with explicit evidence and unknowns.
- Workspace configuration schema
0.2.0, deterministic project discovery, trusted TypeScript config loading, content-addressed artifacts, and a workspace index. - Optional
direct-root-call-v1source indexing for explicit form definitions, direct factory calls/constructors, exact form ID/hash resolution, and a portablesource-usage-catalog.json. - Browser-safe compact authoring for reviewed choice, input, collection, and structural Formly behaviors, including exact alias reuse shared by production registration and canonical profile generation.
formly-contracts list,generate, non-mutatingcheck, and read-onlyauthor-factory-inputscommands.- Programmatic workspace discovery, local factory-input inspection, generation, checking, index parsing, and contract parsing APIs.
@formly-contract/angularguarded JIT composition through disposable project workers, project-local Angular compiler preload, safe per-project failure records, and theformly-contracts-angularCLI. The worker boundary isolates module/cache state, crashes, and timeouts; it is not an untrusted code or network sandbox.- Pure
executeAgentContextQueryover caller-assembled agent-context artifacts, including source-usage search by source path or form ID. - Strict typed test-intent and diagnostic DTOs plus a pure validator that turns the maintained positive/negative synthetic operation subset into a canonical, hashable, source-intent-bound, semantically revalidated execution plan. Unsupported value policies, repeaters, usage actions, and outcomes fail closed instead of becoming no-ops.
- Angular CLI and Nx consumer-shaped fixtures plus a browser-rendered synthetic Formly test application.
Researched or planned
Section titled “Researched or planned”- A production MCP server and CLI-managed query surface.
- Remaining typed-intent operations and automatic Playwright generation.
- Generic and application-specific executable field drivers.
- Browser observation and declared/resolved/observed parity reports.
- Broader interprocedural source discovery, route/render proof, and complete runtime lineage.
- Compact contracted-type presets beyond the current closed behavior vocabulary.
- Journey contracts for routes, authentication, fixtures, submit behavior, and application outcomes.
The existing research describes constraints and candidate delivery slices. It does not authorize consumers to import packages or call APIs that do not exist.
The shipped source index is deliberately partial: it requires explicit
defineFormContractProject registration that directly references the canonical
source descriptor, an explicit defineFormContractDefinition directly listed
by that descriptor, matching literal/runtime IDs, agreement between the
project-config authority Program, the exact Jiti config runtime, and one
configured leaf application Program,
and supported direct calls or new expressions. A same-ID
descriptor outside that chain is not authority. It never executes or serializes
call arguments and reports incomplete coverage; some out-of-grammar calls may
remain unindexed without a per-call diagnostic.
Workspace-contained authority files and traversed aliases are
Program-vs-final-byte snapshot validated, so a mismatch suppresses every
dependent exact usage. Only the exact canonical helper package-export chain may
be external to a nested consumer root; unrelated external aliases fail closed.
Run against a quiescent workspace: both Programs are created before form factories
execute, but the MVP does not claim complete runtime/Jiti module snapshots and
retains a short config-loading-to-Program boundary. Contract generation separately calls
each definition’s create() with no arguments. Implicit root inference
therefore requires a proven zero-argument-compatible signature; explicit
lineage.rootSymbol may name a required-argument factory behind a Node-safe
adapter.
Reusable fragments and steps remain dependencies/lineage and are not promoted to standalone form roots unless explicitly registered.
How pages declare status
Section titled “How pages declare status”Examples in this site use three labels:
- Current — implemented on the repository’s default branch and covered by tests or maintained fixtures.
- Consumer code — an integration pattern you can write today using current APIs; it is not a shipped helper from Formly Contract.
- Planned — research, accepted direction, or roadmap material without a production package surface.