@specverse/engines 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/examples/09-api/ai-spec.yaml +194 -0
- package/assets/examples/09-api/converted.yaml +95 -0
- package/assets/examples/09-api/diagram-architecture.mmd +10 -0
- package/assets/examples/09-api/diagram-er.mmd +10 -0
- package/assets/examples/09-api/documentation.html +104 -0
- package/assets/examples/09-api/documentation.md +95 -0
- package/assets/examples/09-api/inferred-spec.yaml +420 -0
- package/assets/examples/09-api/openapi.json +61 -0
- package/assets/examples/10-api/README.md +216 -0
- package/assets/examples/10-api/ai-spec.yaml +194 -0
- package/assets/examples/10-api/converted.yaml +96 -0
- package/assets/examples/10-api/diagram-architecture.mmd +10 -0
- package/assets/examples/10-api/diagram-er.mmd +10 -0
- package/assets/examples/10-api/documentation.html +104 -0
- package/assets/examples/10-api/documentation.md +95 -0
- package/assets/examples/10-api/inferred-spec.yaml +7 -0
- package/assets/examples/10-api/metadata.yaml +89 -0
- package/assets/examples/10-api/openapi.json +61 -0
- package/assets/examples/10-api/package-integration-test.js +177 -0
- package/assets/examples/10-api/usage-example.js +323 -0
- package/assets/examples/10-api/usage-example.ts +363 -0
- package/assets/examples/10-api/workflow-test.js +113 -0
- package/assets/examples/manifests/01-simple-default-mappings.yaml +36 -0
- package/assets/examples/manifests/02-capability-mappings.yaml +55 -0
- package/assets/examples/manifests/03-hybrid-mappings.yaml +109 -0
- package/assets/examples/manifests/README.md +245 -0
- package/assets/examples/manifests/backend-only.yaml +43 -0
- package/assets/examples/manifests/blog-api.md +78 -0
- package/assets/examples/manifests/blog-api.specly +79 -0
- package/assets/examples/manifests/frontend-only.yaml +27 -0
- package/assets/examples/manifests/fullstack-app.yaml +44 -0
- package/assets/examples/manifests/fullstack-monorepo.yaml +62 -0
- package/assets/examples/validate-examples-with-expected-failures.cjs +328 -0
- package/assets/examples/validate-examples.cjs +225 -0
- package/assets/examples-decomposed/cloud-native-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/cloud-native-manifest.md +379 -0
- package/assets/examples-decomposed/cloud-native-manifest.specly +60 -0
- package/assets/examples-decomposed/docker-compose-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/docker-compose-manifest.md +326 -0
- package/assets/examples-decomposed/docker-compose-manifest.specly +40 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.example.yaml +8 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.md +237 -0
- package/assets/examples-decomposed/kubernetes-deployment-manifest.specly +41 -0
- package/assets/examples-inference/inference-engine-demo.example.yaml +8 -0
- package/assets/examples-inference/inference-engine-demo.md +574 -0
- package/assets/examples-inference/inference-engine-demo.specly +216 -0
- package/assets/prompts/MOVED.md +35 -0
- package/assets/prompts/SUMMARY-v8-PROMOTION.md +445 -0
- package/assets/prompts/core/CHANGELOG.md +158 -0
- package/assets/prompts/core/MIGRATION-v6-to-v7.md +379 -0
- package/assets/prompts/core/README.md +319 -0
- package/assets/prompts/core/base-terminal-prompt.md +201 -0
- package/assets/prompts/core/examples/example-usage.ts +140 -0
- package/assets/prompts/core/schemas/prompt.schema.json +309 -0
- package/assets/prompts/core/schemas/prompt.schema.yaml +229 -0
- package/assets/prompts/core/standard/archive/v1/analyse.prompt.yaml +259 -0
- package/assets/prompts/core/standard/archive/v1/create.prompt.yaml +302 -0
- package/assets/prompts/core/standard/archive/v1/materialise.prompt.yaml +328 -0
- package/assets/prompts/core/standard/archive/v1/realize.prompt.yaml +606 -0
- package/assets/prompts/core/standard/archive/v2/README.md +110 -0
- package/assets/prompts/core/standard/archive/v2/analyse.prompt.yaml +151 -0
- package/assets/prompts/core/standard/archive/v2/create.prompt.yaml +151 -0
- package/assets/prompts/core/standard/archive/v2/materialise.prompt.yaml +132 -0
- package/assets/prompts/core/standard/archive/v2/realize.prompt.yaml +147 -0
- package/assets/prompts/core/standard/archive/v3/README.md +279 -0
- package/assets/prompts/core/standard/archive/v3/analyse.prompt.yaml +309 -0
- package/assets/prompts/core/standard/archive/v3/create.prompt.yaml +351 -0
- package/assets/prompts/core/standard/archive/v3/materialise.prompt.yaml +247 -0
- package/assets/prompts/core/standard/archive/v3/realize.prompt.yaml +344 -0
- package/assets/prompts/core/standard/archive/v4/README.md +79 -0
- package/assets/prompts/core/standard/archive/v4/analyse.prompt.yaml +204 -0
- package/assets/prompts/core/standard/archive/v4/create.prompt.yaml +185 -0
- package/assets/prompts/core/standard/archive/v5/README.md +224 -0
- package/assets/prompts/core/standard/archive/v5/analyse.prompt.yaml +209 -0
- package/assets/prompts/core/standard/archive/v5/create.prompt.yaml +225 -0
- package/assets/prompts/core/standard/archive/v5/materialise.prompt.yaml +242 -0
- package/assets/prompts/core/standard/archive/v5/realize.prompt.yaml +336 -0
- package/assets/prompts/core/standard/archive/v6/README.md +187 -0
- package/assets/prompts/core/standard/archive/v6/analyse.prompt.yaml +219 -0
- package/assets/prompts/core/standard/archive/v6/create.prompt.yaml +180 -0
- package/assets/prompts/core/standard/archive/v6/materialise.prompt.yaml +203 -0
- package/assets/prompts/core/standard/archive/v6/realize.prompt.yaml +215 -0
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.nick.yaml +144 -0
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.old.yaml +146 -0
- package/assets/prompts/core/standard/archive/v7/analyse.prompt.yaml +129 -0
- package/assets/prompts/core/standard/archive/v7/create.prompt.yaml +146 -0
- package/assets/prompts/core/standard/archive/v7/materialise.prompt.yaml +297 -0
- package/assets/prompts/core/standard/archive/v7/realize.prompt.yaml +294 -0
- package/assets/prompts/core/standard/archive/v8/README.md +400 -0
- package/assets/prompts/core/standard/archive/v8/analyse.prompt.yaml +185 -0
- package/assets/prompts/core/standard/archive/v8/create.prompt.yaml +203 -0
- package/assets/prompts/core/standard/archive/v8/materialise.prompt.yaml +297 -0
- package/assets/prompts/core/standard/archive/v8/realize.prompt.yaml +294 -0
- package/assets/prompts/core/standard/default/analyse.prompt.yaml +496 -0
- package/assets/prompts/core/standard/default/app-demo.prompt.yaml +213 -0
- package/assets/prompts/core/standard/default/create.prompt.yaml +418 -0
- package/assets/prompts/core/standard/default/materialise.prompt.yaml +814 -0
- package/assets/prompts/core/standard/default/realize.prompt.yaml +574 -0
- package/assets/prompts/core/standard/v9/analyse.prompt.yaml +496 -0
- package/assets/prompts/core/standard/v9/create.prompt.yaml +418 -0
- package/assets/prompts/core/standard/v9/materialise.prompt.yaml +814 -0
- package/assets/prompts/core/standard/v9/realize.prompt.yaml +574 -0
- package/assets/prompts/templates/api-orchestrator-template.yaml +188 -0
- package/assets/prompts/templates/claude-integration-template.md +121 -0
- package/assets/prompts/templates/terminal-prompt-template.md +97 -0
- package/dist/ai/commands/enhance.d.ts +8 -0
- package/dist/ai/commands/enhance.d.ts.map +1 -0
- package/dist/ai/commands/enhance.js +155 -0
- package/dist/ai/commands/enhance.js.map +1 -0
- package/dist/ai/commands/fill.d.ts +8 -0
- package/dist/ai/commands/fill.d.ts.map +1 -0
- package/dist/ai/commands/fill.js +179 -0
- package/dist/ai/commands/fill.js.map +1 -0
- package/dist/ai/commands/index.d.ts +11 -0
- package/dist/ai/commands/index.d.ts.map +1 -0
- package/dist/ai/commands/index.js +11 -0
- package/dist/ai/commands/index.js.map +1 -0
- package/dist/ai/commands/spec-analyser.d.ts +18 -0
- package/dist/ai/commands/spec-analyser.d.ts.map +1 -0
- package/dist/ai/commands/spec-analyser.js +175 -0
- package/dist/ai/commands/spec-analyser.js.map +1 -0
- package/dist/ai/commands/suggest.d.ts +8 -0
- package/dist/ai/commands/suggest.d.ts.map +1 -0
- package/dist/ai/commands/suggest.js +101 -0
- package/dist/ai/commands/suggest.js.map +1 -0
- package/dist/ai/commands/template.d.ts +8 -0
- package/dist/ai/commands/template.d.ts.map +1 -0
- package/dist/ai/commands/template.js +136 -0
- package/dist/ai/commands/template.js.map +1 -0
- package/dist/ai/config/index.d.ts +71 -0
- package/dist/ai/config/index.d.ts.map +1 -0
- package/dist/ai/config/index.js +193 -0
- package/dist/ai/config/index.js.map +1 -0
- package/dist/ai/config-loader.d.ts +31 -0
- package/dist/ai/config-loader.d.ts.map +1 -0
- package/dist/ai/config-loader.js +66 -0
- package/dist/ai/config-loader.js.map +1 -0
- package/dist/ai/core/ecosystem-prompt-manager.d.ts +107 -0
- package/dist/ai/core/ecosystem-prompt-manager.d.ts.map +1 -0
- package/dist/ai/core/ecosystem-prompt-manager.js +462 -0
- package/dist/ai/core/ecosystem-prompt-manager.js.map +1 -0
- package/dist/ai/examples/basic-usage.d.ts +9 -0
- package/dist/ai/examples/basic-usage.d.ts.map +1 -0
- package/dist/ai/examples/basic-usage.js +94 -0
- package/dist/ai/examples/basic-usage.js.map +1 -0
- package/dist/ai/index.d.ts +44 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +164 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/orchestrator/index.d.ts +3 -0
- package/dist/ai/orchestrator/index.d.ts.map +1 -0
- package/dist/ai/orchestrator/index.js +3 -0
- package/dist/ai/orchestrator/index.js.map +1 -0
- package/dist/ai/orchestrator/interactive-workflow.d.ts +66 -0
- package/dist/ai/orchestrator/interactive-workflow.d.ts.map +1 -0
- package/dist/ai/orchestrator/interactive-workflow.js +214 -0
- package/dist/ai/orchestrator/interactive-workflow.js.map +1 -0
- package/dist/ai/orchestrator/specverse-orchestrator.d.ts +217 -0
- package/dist/ai/orchestrator/specverse-orchestrator.d.ts.map +1 -0
- package/dist/ai/orchestrator/specverse-orchestrator.js +745 -0
- package/dist/ai/orchestrator/specverse-orchestrator.js.map +1 -0
- package/dist/ai/prompt-loader.d.ts +24 -0
- package/dist/ai/prompt-loader.d.ts.map +1 -0
- package/dist/ai/prompt-loader.js +159 -0
- package/dist/ai/prompt-loader.js.map +1 -0
- package/dist/ai/providers/anthropic-provider.d.ts +38 -0
- package/dist/ai/providers/anthropic-provider.d.ts.map +1 -0
- package/dist/ai/providers/anthropic-provider.js +235 -0
- package/dist/ai/providers/anthropic-provider.js.map +1 -0
- package/dist/ai/providers/index.d.ts +6 -0
- package/dist/ai/providers/index.d.ts.map +1 -0
- package/dist/ai/providers/index.js +6 -0
- package/dist/ai/providers/index.js.map +1 -0
- package/dist/ai/providers/interactive-provider.d.ts +67 -0
- package/dist/ai/providers/interactive-provider.d.ts.map +1 -0
- package/dist/ai/providers/interactive-provider.js +337 -0
- package/dist/ai/providers/interactive-provider.js.map +1 -0
- package/dist/ai/providers/llm-provider.d.ts +127 -0
- package/dist/ai/providers/llm-provider.d.ts.map +1 -0
- package/dist/ai/providers/llm-provider.js +141 -0
- package/dist/ai/providers/llm-provider.js.map +1 -0
- package/dist/ai/providers/openai-provider.d.ts +39 -0
- package/dist/ai/providers/openai-provider.d.ts.map +1 -0
- package/dist/ai/providers/openai-provider.js +193 -0
- package/dist/ai/providers/openai-provider.js.map +1 -0
- package/dist/ai/providers/provider-factory.d.ts +47 -0
- package/dist/ai/providers/provider-factory.d.ts.map +1 -0
- package/dist/ai/providers/provider-factory.js +159 -0
- package/dist/ai/providers/provider-factory.js.map +1 -0
- package/dist/ai/session/claude-executor.d.ts +39 -0
- package/dist/ai/session/claude-executor.d.ts.map +1 -0
- package/dist/ai/session/claude-executor.js +136 -0
- package/dist/ai/session/claude-executor.js.map +1 -0
- package/dist/ai/session/session-manager.d.ts +72 -0
- package/dist/ai/session/session-manager.d.ts.map +1 -0
- package/dist/ai/session/session-manager.js +294 -0
- package/dist/ai/session/session-manager.js.map +1 -0
- package/dist/ai/session/types.d.ts +152 -0
- package/dist/ai/session/types.d.ts.map +1 -0
- package/dist/ai/session/types.js +6 -0
- package/dist/ai/session/types.js.map +1 -0
- package/dist/ai/types/index.d.ts +83 -0
- package/dist/ai/types/index.d.ts.map +1 -0
- package/dist/ai/types/index.js +5 -0
- package/dist/ai/types/index.js.map +1 -0
- package/dist/generators/UML-generator.d.ts +64 -0
- package/dist/generators/UML-generator.d.ts.map +1 -0
- package/dist/generators/UML-generator.js +541 -0
- package/dist/generators/UML-generator.js.map +1 -0
- package/dist/generators/ai-view-generator.d.ts +391 -0
- package/dist/generators/ai-view-generator.d.ts.map +1 -0
- package/dist/generators/ai-view-generator.js +907 -0
- package/dist/generators/ai-view-generator.js.map +1 -0
- package/dist/generators/diagram-engine/core/BaseDiagramPlugin.d.ts +41 -0
- package/dist/generators/diagram-engine/core/BaseDiagramPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/core/BaseDiagramPlugin.js +64 -0
- package/dist/generators/diagram-engine/core/BaseDiagramPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/core/DiagramContext.d.ts +155 -0
- package/dist/generators/diagram-engine/core/DiagramContext.d.ts.map +1 -0
- package/dist/generators/diagram-engine/core/DiagramContext.js +481 -0
- package/dist/generators/diagram-engine/core/DiagramContext.js.map +1 -0
- package/dist/generators/diagram-engine/core/StyleManager.d.ts +51 -0
- package/dist/generators/diagram-engine/core/StyleManager.d.ts.map +1 -0
- package/dist/generators/diagram-engine/core/StyleManager.js +227 -0
- package/dist/generators/diagram-engine/core/StyleManager.js.map +1 -0
- package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.d.ts +83 -0
- package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.d.ts.map +1 -0
- package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.js +200 -0
- package/dist/generators/diagram-engine/core/UnifiedDiagramGenerator.js.map +1 -0
- package/dist/generators/diagram-engine/index.d.ts +41 -0
- package/dist/generators/diagram-engine/index.d.ts.map +1 -0
- package/dist/generators/diagram-engine/index.js +74 -0
- package/dist/generators/diagram-engine/index.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.d.ts +65 -0
- package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.js +490 -0
- package/dist/generators/diagram-engine/plugins/architecture/ArchitecturePlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.d.ts +40 -0
- package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.js +323 -0
- package/dist/generators/diagram-engine/plugins/class-diagram/ClassDiagramPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.d.ts +46 -0
- package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.js +391 -0
- package/dist/generators/diagram-engine/plugins/deployment/DeploymentPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.d.ts +57 -0
- package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.js +300 -0
- package/dist/generators/diagram-engine/plugins/er-diagram/ERDiagramPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.d.ts +70 -0
- package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.js +955 -0
- package/dist/generators/diagram-engine/plugins/event-flow/EventFlowPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.d.ts +40 -0
- package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.js +183 -0
- package/dist/generators/diagram-engine/plugins/lifecycle/LifecyclePlugin.js.map +1 -0
- package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.d.ts +71 -0
- package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.d.ts.map +1 -0
- package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.js +396 -0
- package/dist/generators/diagram-engine/plugins/manifest/ManifestPlugin.js.map +1 -0
- package/dist/generators/diagram-engine/renderers/MermaidRenderer.d.ts +72 -0
- package/dist/generators/diagram-engine/renderers/MermaidRenderer.d.ts.map +1 -0
- package/dist/generators/diagram-engine/renderers/MermaidRenderer.js +441 -0
- package/dist/generators/diagram-engine/renderers/MermaidRenderer.js.map +1 -0
- package/dist/generators/diagram-engine/types/index.d.ts +261 -0
- package/dist/generators/diagram-engine/types/index.d.ts.map +1 -0
- package/dist/generators/diagram-engine/types/index.js +7 -0
- package/dist/generators/diagram-engine/types/index.js.map +1 -0
- package/dist/generators/documentation-generator.d.ts +54 -0
- package/dist/generators/documentation-generator.d.ts.map +1 -0
- package/dist/generators/documentation-generator.js +756 -0
- package/dist/generators/documentation-generator.js.map +1 -0
- package/dist/generators/index.d.ts +47 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +51 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/index.js.map +1 -0
- package/dist/inference/comprehensive-engine.d.ts +71 -0
- package/dist/inference/comprehensive-engine.d.ts.map +1 -0
- package/dist/inference/comprehensive-engine.js +271 -0
- package/dist/inference/comprehensive-engine.js.map +1 -0
- package/dist/inference/core/context.d.ts +60 -0
- package/dist/inference/core/context.d.ts.map +1 -0
- package/dist/inference/core/context.js +292 -0
- package/dist/inference/core/context.js.map +1 -0
- package/dist/inference/core/index.d.ts +14 -0
- package/dist/inference/core/index.d.ts.map +1 -0
- package/dist/inference/core/index.js +18 -0
- package/dist/inference/core/index.js.map +1 -0
- package/dist/inference/core/rule-engine.d.ts +52 -0
- package/dist/inference/core/rule-engine.d.ts.map +1 -0
- package/dist/inference/core/rule-engine.js +1329 -0
- package/dist/inference/core/rule-engine.js.map +1 -0
- package/dist/inference/core/rule-file-types.d.ts +225 -0
- package/dist/inference/core/rule-file-types.d.ts.map +1 -0
- package/dist/inference/core/rule-file-types.js +79 -0
- package/dist/inference/core/rule-file-types.js.map +1 -0
- package/dist/inference/core/rule-loader.d.ts +93 -0
- package/dist/inference/core/rule-loader.d.ts.map +1 -0
- package/dist/inference/core/rule-loader.js +645 -0
- package/dist/inference/core/rule-loader.js.map +1 -0
- package/dist/inference/core/specly-converter.d.ts +50 -0
- package/dist/inference/core/specly-converter.d.ts.map +1 -0
- package/dist/inference/core/specly-converter.js +885 -0
- package/dist/inference/core/specly-converter.js.map +1 -0
- package/dist/inference/core/types.d.ts +395 -0
- package/dist/inference/core/types.d.ts.map +1 -0
- package/dist/inference/core/types.js +31 -0
- package/dist/inference/core/types.js.map +1 -0
- package/dist/inference/deployment/deployment-generator.d.ts +48 -0
- package/dist/inference/deployment/deployment-generator.d.ts.map +1 -0
- package/dist/inference/deployment/deployment-generator.js +343 -0
- package/dist/inference/deployment/deployment-generator.js.map +1 -0
- package/dist/inference/deployment/index.d.ts +6 -0
- package/dist/inference/deployment/index.d.ts.map +1 -0
- package/dist/inference/deployment/index.js +5 -0
- package/dist/inference/deployment/index.js.map +1 -0
- package/dist/inference/dev-specly-generator.d.ts +19 -0
- package/dist/inference/dev-specly-generator.d.ts.map +1 -0
- package/dist/inference/dev-specly-generator.js +127 -0
- package/dist/inference/dev-specly-generator.js.map +1 -0
- package/dist/inference/index.d.ts +29 -0
- package/dist/inference/index.d.ts.map +1 -0
- package/dist/inference/index.js +170 -0
- package/dist/inference/index.js.map +1 -0
- package/dist/inference/logical/generators/component-type-resolver.d.ts +82 -0
- package/dist/inference/logical/generators/component-type-resolver.d.ts.map +1 -0
- package/dist/inference/logical/generators/component-type-resolver.js +151 -0
- package/dist/inference/logical/generators/component-type-resolver.js.map +1 -0
- package/dist/inference/logical/generators/controller-generator.d.ts +43 -0
- package/dist/inference/logical/generators/controller-generator.d.ts.map +1 -0
- package/dist/inference/logical/generators/controller-generator.js +303 -0
- package/dist/inference/logical/generators/controller-generator.js.map +1 -0
- package/dist/inference/logical/generators/event-generator.d.ts +67 -0
- package/dist/inference/logical/generators/event-generator.d.ts.map +1 -0
- package/dist/inference/logical/generators/event-generator.js +466 -0
- package/dist/inference/logical/generators/event-generator.js.map +1 -0
- package/dist/inference/logical/generators/promotion-generator.d.ts +32 -0
- package/dist/inference/logical/generators/promotion-generator.d.ts.map +1 -0
- package/dist/inference/logical/generators/promotion-generator.js +133 -0
- package/dist/inference/logical/generators/promotion-generator.js.map +1 -0
- package/dist/inference/logical/generators/service-generator.d.ts +51 -0
- package/dist/inference/logical/generators/service-generator.d.ts.map +1 -0
- package/dist/inference/logical/generators/service-generator.js +268 -0
- package/dist/inference/logical/generators/service-generator.js.map +1 -0
- package/dist/inference/logical/generators/specialist-view-expander.d.ts +75 -0
- package/dist/inference/logical/generators/specialist-view-expander.d.ts.map +1 -0
- package/dist/inference/logical/generators/specialist-view-expander.js +182 -0
- package/dist/inference/logical/generators/specialist-view-expander.js.map +1 -0
- package/dist/inference/logical/generators/view-generator.d.ts +131 -0
- package/dist/inference/logical/generators/view-generator.d.ts.map +1 -0
- package/dist/inference/logical/generators/view-generator.js +1115 -0
- package/dist/inference/logical/generators/view-generator.js.map +1 -0
- package/dist/inference/logical/index.d.ts +19 -0
- package/dist/inference/logical/index.d.ts.map +1 -0
- package/dist/inference/logical/index.js +15 -0
- package/dist/inference/logical/index.js.map +1 -0
- package/dist/inference/logical/logical-engine.d.ts +68 -0
- package/dist/inference/logical/logical-engine.d.ts.map +1 -0
- package/dist/inference/logical/logical-engine.js +484 -0
- package/dist/inference/logical/logical-engine.js.map +1 -0
- package/dist/inference/quint-transpiler.d.ts +64 -0
- package/dist/inference/quint-transpiler.d.ts.map +1 -0
- package/dist/inference/quint-transpiler.js +433 -0
- package/dist/inference/quint-transpiler.js.map +1 -0
- package/dist/inference/test-harness.d.ts +41 -0
- package/dist/inference/test-harness.d.ts.map +1 -0
- package/dist/inference/test-harness.js +357 -0
- package/dist/inference/test-harness.js.map +1 -0
- package/dist/parser/convention-processor.d.ts +66 -0
- package/dist/parser/convention-processor.d.ts.map +1 -0
- package/dist/parser/convention-processor.js +349 -0
- package/dist/parser/convention-processor.js.map +1 -0
- package/dist/parser/import-resolver/cache.d.ts +56 -0
- package/dist/parser/import-resolver/cache.d.ts.map +1 -0
- package/dist/parser/import-resolver/cache.js +191 -0
- package/dist/parser/import-resolver/cache.js.map +1 -0
- package/dist/parser/import-resolver/index.d.ts +10 -0
- package/dist/parser/import-resolver/index.d.ts.map +1 -0
- package/dist/parser/import-resolver/index.js +9 -0
- package/dist/parser/import-resolver/index.js.map +1 -0
- package/dist/parser/import-resolver/resolver.d.ts +102 -0
- package/dist/parser/import-resolver/resolver.d.ts.map +1 -0
- package/dist/parser/import-resolver/resolver.js +669 -0
- package/dist/parser/import-resolver/resolver.js.map +1 -0
- package/dist/parser/import-resolver/types.d.ts +55 -0
- package/dist/parser/import-resolver/types.d.ts.map +1 -0
- package/dist/parser/import-resolver/types.js +5 -0
- package/dist/parser/import-resolver/types.js.map +1 -0
- package/dist/parser/index.d.ts +38 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +61 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/namespace-utils.d.ts +61 -0
- package/dist/parser/namespace-utils.d.ts.map +1 -0
- package/dist/parser/namespace-utils.js +191 -0
- package/dist/parser/namespace-utils.js.map +1 -0
- package/dist/parser/processors/AbstractProcessor.d.ts +10 -0
- package/dist/parser/processors/AbstractProcessor.d.ts.map +1 -0
- package/dist/parser/processors/AbstractProcessor.js +11 -0
- package/dist/parser/processors/AbstractProcessor.js.map +1 -0
- package/dist/parser/processors/AttributeProcessor.d.ts +19 -0
- package/dist/parser/processors/AttributeProcessor.d.ts.map +1 -0
- package/dist/parser/processors/AttributeProcessor.js +154 -0
- package/dist/parser/processors/AttributeProcessor.js.map +1 -0
- package/dist/parser/processors/ControllerProcessor.d.ts +9 -0
- package/dist/parser/processors/ControllerProcessor.d.ts.map +1 -0
- package/dist/parser/processors/ControllerProcessor.js +74 -0
- package/dist/parser/processors/ControllerProcessor.js.map +1 -0
- package/dist/parser/processors/DeploymentProcessor.d.ts +19 -0
- package/dist/parser/processors/DeploymentProcessor.d.ts.map +1 -0
- package/dist/parser/processors/DeploymentProcessor.js +244 -0
- package/dist/parser/processors/DeploymentProcessor.js.map +1 -0
- package/dist/parser/processors/EventProcessor.d.ts +8 -0
- package/dist/parser/processors/EventProcessor.d.ts.map +1 -0
- package/dist/parser/processors/EventProcessor.js +28 -0
- package/dist/parser/processors/EventProcessor.js.map +1 -0
- package/dist/parser/processors/ExecutableProcessor.d.ts +21 -0
- package/dist/parser/processors/ExecutableProcessor.d.ts.map +1 -0
- package/dist/parser/processors/ExecutableProcessor.js +135 -0
- package/dist/parser/processors/ExecutableProcessor.js.map +1 -0
- package/dist/parser/processors/LifecycleProcessor.d.ts +9 -0
- package/dist/parser/processors/LifecycleProcessor.d.ts.map +1 -0
- package/dist/parser/processors/LifecycleProcessor.js +41 -0
- package/dist/parser/processors/LifecycleProcessor.js.map +1 -0
- package/dist/parser/processors/ModelProcessor.d.ts +67 -0
- package/dist/parser/processors/ModelProcessor.d.ts.map +1 -0
- package/dist/parser/processors/ModelProcessor.js +495 -0
- package/dist/parser/processors/ModelProcessor.js.map +1 -0
- package/dist/parser/processors/RelationshipProcessor.d.ts +10 -0
- package/dist/parser/processors/RelationshipProcessor.d.ts.map +1 -0
- package/dist/parser/processors/RelationshipProcessor.js +55 -0
- package/dist/parser/processors/RelationshipProcessor.js.map +1 -0
- package/dist/parser/processors/ServiceProcessor.d.ts +9 -0
- package/dist/parser/processors/ServiceProcessor.d.ts.map +1 -0
- package/dist/parser/processors/ServiceProcessor.js +59 -0
- package/dist/parser/processors/ServiceProcessor.js.map +1 -0
- package/dist/parser/processors/ViewProcessor.d.ts +7 -0
- package/dist/parser/processors/ViewProcessor.d.ts.map +1 -0
- package/dist/parser/processors/ViewProcessor.js +66 -0
- package/dist/parser/processors/ViewProcessor.js.map +1 -0
- package/dist/parser/types/ast.d.ts +518 -0
- package/dist/parser/types/ast.d.ts.map +1 -0
- package/dist/parser/types/ast.js +8 -0
- package/dist/parser/types/ast.js.map +1 -0
- package/dist/parser/types/views.d.ts +186 -0
- package/dist/parser/types/views.d.ts.map +1 -0
- package/dist/parser/types/views.js +8 -0
- package/dist/parser/types/views.js.map +1 -0
- package/dist/parser/unified-parser.d.ts +195 -0
- package/dist/parser/unified-parser.d.ts.map +1 -0
- package/dist/parser/unified-parser.js +1180 -0
- package/dist/parser/unified-parser.js.map +1 -0
- package/dist/parser/vitest.config.d.ts +3 -0
- package/dist/parser/vitest.config.d.ts.map +1 -0
- package/dist/parser/vitest.config.js +27 -0
- package/dist/parser/vitest.config.js.map +1 -0
- package/dist/realize/engines/code-generator.d.ts +86 -0
- package/dist/realize/engines/code-generator.d.ts.map +1 -0
- package/dist/realize/engines/code-generator.js +159 -0
- package/dist/realize/engines/code-generator.js.map +1 -0
- package/dist/realize/engines/engine-registry.d.ts +94 -0
- package/dist/realize/engines/engine-registry.d.ts.map +1 -0
- package/dist/realize/engines/engine-registry.js +163 -0
- package/dist/realize/engines/engine-registry.js.map +1 -0
- package/dist/realize/engines/index.d.ts +10 -0
- package/dist/realize/engines/index.d.ts.map +1 -0
- package/dist/realize/engines/index.js +12 -0
- package/dist/realize/engines/index.js.map +1 -0
- package/dist/realize/engines/typescript-engine.d.ts +74 -0
- package/dist/realize/engines/typescript-engine.d.ts.map +1 -0
- package/dist/realize/engines/typescript-engine.js +289 -0
- package/dist/realize/engines/typescript-engine.js.map +1 -0
- package/dist/realize/generators/index.d.ts +11 -0
- package/dist/realize/generators/index.d.ts.map +1 -0
- package/dist/realize/generators/index.js +11 -0
- package/dist/realize/generators/index.js.map +1 -0
- package/dist/realize/index.d.ts +48 -0
- package/dist/realize/index.d.ts.map +1 -0
- package/dist/realize/index.js +529 -0
- package/dist/realize/index.js.map +1 -0
- package/dist/realize/library/index.d.ts +12 -0
- package/dist/realize/library/index.d.ts.map +1 -0
- package/dist/realize/library/index.js +15 -0
- package/dist/realize/library/index.js.map +1 -0
- package/dist/realize/library/library.d.ts +132 -0
- package/dist/realize/library/library.d.ts.map +1 -0
- package/dist/realize/library/library.js +343 -0
- package/dist/realize/library/library.js.map +1 -0
- package/dist/realize/library/loader.d.ts +73 -0
- package/dist/realize/library/loader.d.ts.map +1 -0
- package/dist/realize/library/loader.js +159 -0
- package/dist/realize/library/loader.js.map +1 -0
- package/dist/realize/library/resolver.d.ts +104 -0
- package/dist/realize/library/resolver.d.ts.map +1 -0
- package/dist/realize/library/resolver.js +299 -0
- package/dist/realize/library/resolver.js.map +1 -0
- package/dist/realize/library/validator.d.ts +65 -0
- package/dist/realize/library/validator.d.ts.map +1 -0
- package/dist/realize/library/validator.js +203 -0
- package/dist/realize/library/validator.js.map +1 -0
- package/dist/realize/types/index.d.ts +5 -0
- package/dist/realize/types/index.d.ts.map +1 -0
- package/dist/realize/types/index.js +5 -0
- package/dist/realize/types/index.js.map +1 -0
- package/dist/realize/types/instance-factory.d.ts +7 -0
- package/dist/realize/types/instance-factory.d.ts.map +1 -0
- package/dist/realize/types/instance-factory.js +2 -0
- package/dist/realize/types/instance-factory.js.map +1 -0
- package/dist/realize/types/unified-mappings.d.ts +163 -0
- package/dist/realize/types/unified-mappings.d.ts.map +1 -0
- package/dist/realize/types/unified-mappings.js +110 -0
- package/dist/realize/types/unified-mappings.js.map +1 -0
- package/dist/realize/utils/ai-spec-loader.d.ts +77 -0
- package/dist/realize/utils/ai-spec-loader.d.ts.map +1 -0
- package/dist/realize/utils/ai-spec-loader.js +142 -0
- package/dist/realize/utils/ai-spec-loader.js.map +1 -0
- package/dist/realize/utils/index.d.ts +9 -0
- package/dist/realize/utils/index.d.ts.map +1 -0
- package/dist/realize/utils/index.js +9 -0
- package/dist/realize/utils/index.js.map +1 -0
- package/dist/realize/utils/manifest-loader.d.ts +107 -0
- package/dist/realize/utils/manifest-loader.d.ts.map +1 -0
- package/dist/realize/utils/manifest-loader.js +168 -0
- package/dist/realize/utils/manifest-loader.js.map +1 -0
- package/dist/realize/utils/mapping-migration.d.ts +53 -0
- package/dist/realize/utils/mapping-migration.d.ts.map +1 -0
- package/dist/realize/utils/mapping-migration.js +194 -0
- package/dist/realize/utils/mapping-migration.js.map +1 -0
- package/dist/registry/cache/cache-manager.d.ts +132 -0
- package/dist/registry/cache/cache-manager.d.ts.map +1 -0
- package/dist/registry/cache/cache-manager.js +218 -0
- package/dist/registry/cache/cache-manager.js.map +1 -0
- package/dist/registry/client/registry-client.d.ts +129 -0
- package/dist/registry/client/registry-client.d.ts.map +1 -0
- package/dist/registry/client/registry-client.js +317 -0
- package/dist/registry/client/registry-client.js.map +1 -0
- package/dist/registry/formatters/error-formatter.d.ts +100 -0
- package/dist/registry/formatters/error-formatter.d.ts.map +1 -0
- package/dist/registry/formatters/error-formatter.js +290 -0
- package/dist/registry/formatters/error-formatter.js.map +1 -0
- package/dist/registry/formatters/index.d.ts +8 -0
- package/dist/registry/formatters/index.d.ts.map +1 -0
- package/dist/registry/formatters/index.js +7 -0
- package/dist/registry/formatters/index.js.map +1 -0
- package/dist/registry/index.d.ts +19 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +22 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/offline/offline-handler.d.ts +150 -0
- package/dist/registry/offline/offline-handler.d.ts.map +1 -0
- package/dist/registry/offline/offline-handler.js +290 -0
- package/dist/registry/offline/offline-handler.js.map +1 -0
- package/dist/registry/types/index.d.ts +13 -0
- package/dist/registry/types/index.d.ts.map +1 -0
- package/dist/registry/types/index.js +11 -0
- package/dist/registry/types/index.js.map +1 -0
- package/dist/registry/types/registry.d.ts +220 -0
- package/dist/registry/types/registry.d.ts.map +1 -0
- package/dist/registry/types/registry.js +55 -0
- package/dist/registry/types/registry.js.map +1 -0
- package/dist/registry/types/validation.d.ts +197 -0
- package/dist/registry/types/validation.d.ts.map +1 -0
- package/dist/registry/types/validation.js +140 -0
- package/dist/registry/types/validation.js.map +1 -0
- package/dist/registry/utils/manifest-adapter.d.ts +42 -0
- package/dist/registry/utils/manifest-adapter.d.ts.map +1 -0
- package/dist/registry/utils/manifest-adapter.js +182 -0
- package/dist/registry/utils/manifest-adapter.js.map +1 -0
- package/dist/registry/validators/index.d.ts +12 -0
- package/dist/registry/validators/index.d.ts.map +1 -0
- package/dist/registry/validators/index.js +9 -0
- package/dist/registry/validators/index.js.map +1 -0
- package/dist/registry/validators/installation-validator.d.ts +75 -0
- package/dist/registry/validators/installation-validator.d.ts.map +1 -0
- package/dist/registry/validators/installation-validator.js +142 -0
- package/dist/registry/validators/installation-validator.js.map +1 -0
- package/dist/registry/validators/manifest-validator.d.ts +82 -0
- package/dist/registry/validators/manifest-validator.d.ts.map +1 -0
- package/dist/registry/validators/manifest-validator.js +213 -0
- package/dist/registry/validators/manifest-validator.js.map +1 -0
- package/dist/registry/validators/validator.d.ts +113 -0
- package/dist/registry/validators/validator.d.ts.map +1 -0
- package/dist/registry/validators/validator.js +165 -0
- package/dist/registry/validators/validator.js.map +1 -0
- package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
- package/libs/instance-factories/README.md +73 -0
- package/libs/instance-factories/applications/README.md +51 -0
- package/libs/instance-factories/applications/generic-app.yaml +52 -0
- package/libs/instance-factories/applications/react-app-runtime.yaml +139 -0
- package/libs/instance-factories/applications/react-app.yaml +186 -0
- package/libs/instance-factories/applications/templates/generic/backend-env-generator.ts +31 -0
- package/libs/instance-factories/applications/templates/generic/backend-package-json-generator.ts +84 -0
- package/libs/instance-factories/applications/templates/generic/backend-tsconfig-generator.ts +69 -0
- package/libs/instance-factories/applications/templates/generic/main-generator.ts +308 -0
- package/libs/instance-factories/applications/templates/react/_view-components-source.ts +555 -0
- package/libs/instance-factories/applications/templates/react/api-client-generator.ts +436 -0
- package/libs/instance-factories/applications/templates/react/api-types-generator.ts +153 -0
- package/libs/instance-factories/applications/templates/react/app-tsx-generator.ts +94 -0
- package/libs/instance-factories/applications/templates/react/env-example-generator.ts +24 -0
- package/libs/instance-factories/applications/templates/react/field-helpers-generator.ts +106 -0
- package/libs/instance-factories/applications/templates/react/gitignore-generator.ts +38 -0
- package/libs/instance-factories/applications/templates/react/index-css-generator.ts +14 -0
- package/libs/instance-factories/applications/templates/react/index-html-generator.ts +30 -0
- package/libs/instance-factories/applications/templates/react/main-tsx-generator.ts +34 -0
- package/libs/instance-factories/applications/templates/react/package-json-generator.ts +57 -0
- package/libs/instance-factories/applications/templates/react/pattern-adapter-generator.ts +179 -0
- package/libs/instance-factories/applications/templates/react/react-pattern-adapter.tsx +1347 -0
- package/libs/instance-factories/applications/templates/react/relationship-field-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/runtime-app-tsx-generator.ts +90 -0
- package/libs/instance-factories/applications/templates/react/runtime-package-json-generator.ts +61 -0
- package/libs/instance-factories/applications/templates/react/tailwind-adapter-generator.ts +704 -0
- package/libs/instance-factories/applications/templates/react/tailwind-adapter-wrapper-generator.ts +84 -0
- package/libs/instance-factories/applications/templates/react/tsconfig-generator.ts +35 -0
- package/libs/instance-factories/applications/templates/react/use-api-hooks-generator.ts +121 -0
- package/libs/instance-factories/applications/templates/react/view-dashboard-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/view-detail-generator.ts +150 -0
- package/libs/instance-factories/applications/templates/react/view-form-generator.ts +362 -0
- package/libs/instance-factories/applications/templates/react/view-list-generator.ts +98 -0
- package/libs/instance-factories/applications/templates/react/view-router-generator.ts +89 -0
- package/libs/instance-factories/applications/templates/react/vite-config-generator.ts +49 -0
- package/libs/instance-factories/archived/fastify-prisma.yaml +104 -0
- package/libs/instance-factories/cli/README.md +43 -0
- package/libs/instance-factories/cli/commander-js.yaml +55 -0
- package/libs/instance-factories/cli/templates/commander/cli-bin-wrapper-generator.ts +20 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts +12 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.d.ts.map +1 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js +115 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.js.map +1 -0
- package/libs/instance-factories/cli/templates/commander/cli-entry-generator.ts +168 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.d.ts +14 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.d.ts.map +1 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.js +182 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.js.map +1 -0
- package/libs/instance-factories/cli/templates/commander/command-generator.ts +1036 -0
- package/libs/instance-factories/communication/README.md +47 -0
- package/libs/instance-factories/communication/event-emitter.yaml +56 -0
- package/libs/instance-factories/communication/rabbitmq-events.yaml +87 -0
- package/libs/instance-factories/communication/templates/eventemitter/bus-generator.ts +93 -0
- package/libs/instance-factories/communication/templates/eventemitter/publisher-generator.ts +117 -0
- package/libs/instance-factories/communication/templates/eventemitter/subscriber-generator.ts +101 -0
- package/libs/instance-factories/controllers/README.md +42 -0
- package/libs/instance-factories/controllers/fastify.yaml +127 -0
- package/libs/instance-factories/controllers/templates/fastify/meta-routes-generator.ts +103 -0
- package/libs/instance-factories/controllers/templates/fastify/routes-generator.ts +389 -0
- package/libs/instance-factories/controllers/templates/fastify/server-generator.ts +76 -0
- package/libs/instance-factories/infrastructure/README.md +29 -0
- package/libs/instance-factories/infrastructure/docker-k8s.yaml +61 -0
- package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
- package/libs/instance-factories/orms/README.md +54 -0
- package/libs/instance-factories/orms/prisma.yaml +89 -0
- package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +576 -0
- package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -0
- package/libs/instance-factories/scaffolding/README.md +49 -0
- package/libs/instance-factories/scaffolding/generic-scaffold.yaml +65 -0
- package/libs/instance-factories/scaffolding/templates/generic/env-example-generator.ts +73 -0
- package/libs/instance-factories/scaffolding/templates/generic/env-generator.ts +85 -0
- package/libs/instance-factories/scaffolding/templates/generic/gitignore-generator.ts +69 -0
- package/libs/instance-factories/scaffolding/templates/generic/package-json-generator.ts +176 -0
- package/libs/instance-factories/scaffolding/templates/generic/readme-generator.ts +207 -0
- package/libs/instance-factories/scaffolding/templates/generic/tsconfig-generator.ts +78 -0
- package/libs/instance-factories/scaffolding/templates/generic/tsconfig-react-generator.ts +41 -0
- package/libs/instance-factories/sdks/README.md +28 -0
- package/libs/instance-factories/sdks/python-sdk.yaml +66 -0
- package/libs/instance-factories/sdks/templates/python/sdk-generator.ts +50 -0
- package/libs/instance-factories/sdks/templates/typescript/sdk-generator.ts +49 -0
- package/libs/instance-factories/sdks/typescript-sdk.yaml +59 -0
- package/libs/instance-factories/services/README.md +55 -0
- package/libs/instance-factories/services/prisma-services.yaml +71 -0
- package/libs/instance-factories/services/templates/memory/generate-interpreter.ts +25 -0
- package/libs/instance-factories/services/templates/memory/step-conventions-memory.ts +465 -0
- package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +304 -0
- package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
- package/libs/instance-factories/services/templates/prisma/service-generator.ts +334 -0
- package/libs/instance-factories/services/templates/prisma/step-conventions.ts +309 -0
- package/libs/instance-factories/services/templates/shared-patterns.ts +38 -0
- package/libs/instance-factories/shared/path-resolver.ts +111 -0
- package/libs/instance-factories/storage/README.md +34 -0
- package/libs/instance-factories/storage/mongodb.yaml +79 -0
- package/libs/instance-factories/storage/postgresql.yaml +75 -0
- package/libs/instance-factories/storage/redis.yaml +79 -0
- package/libs/instance-factories/storage/templates/mongodb/config-generator.ts +15 -0
- package/libs/instance-factories/storage/templates/mongodb/docker-generator.ts +18 -0
- package/libs/instance-factories/storage/templates/postgresql/config-generator.ts +54 -0
- package/libs/instance-factories/storage/templates/postgresql/docker-generator.ts +55 -0
- package/libs/instance-factories/storage/templates/redis/config-generator.ts +16 -0
- package/libs/instance-factories/storage/templates/redis/docker-generator.ts +18 -0
- package/libs/instance-factories/test-generation.ts +192 -0
- package/libs/instance-factories/testing/README.md +40 -0
- package/libs/instance-factories/testing/templates/vitest/tests-generator.ts +51 -0
- package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
- package/libs/instance-factories/tools/README.md +70 -0
- package/libs/instance-factories/tools/mcp.yaml +36 -0
- package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +190 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/DEPLOYMENT_GUIDE.md +630 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/HYBRID_RESOURCE_SYSTEM.md +330 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md +552 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md +164 -0
- package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/WEB_DEPLOYMENT.md +247 -0
- package/libs/instance-factories/tools/templates/mcp/static/package.json +94 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-enterprise.js +284 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-extension.js +139 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-local.js +74 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/build-web.js +156 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/copy-canonical-files.js +41 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-deployments.js +259 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-resources.js +231 -0
- package/libs/instance-factories/tools/templates/mcp/static/scripts/test-hybrid-simple.js +196 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/controllers/MCPServerController.ts +293 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/events/EventEmitter.ts +90 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/index.ts +24 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/interfaces/ResourceProvider.ts +15 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/models/LibrarySuggestion.ts +106 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/models/SpecVerseResource.ts +75 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/server/mcp-server.ts +239 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/CLIProxyService.ts +1501 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/EmbeddedResourcesAdapter.ts +211 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/EntityModuleService.ts +308 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/HybridResourcesProvider.ts +210 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/LibraryToolsService.ts +356 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorBridge.ts +522 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/OrchestratorToolsService.ts +530 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/PromptToolsService.ts +594 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/services/ResourcesProviderService.ts +170 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.init.test.ts +544 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/CLIProxyService.test.ts +189 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/tests/unit/ResourcesProviderService.test.ts +89 -0
- package/libs/instance-factories/tools/templates/mcp/static/src/types/index.ts +110 -0
- package/libs/instance-factories/tools/templates/mcp/static/tsconfig.json +28 -0
- package/libs/instance-factories/tools/templates/vscode/static/extension.ts +1195 -0
- package/libs/instance-factories/tools/templates/vscode/static/language-configuration.json +34 -0
- package/libs/instance-factories/tools/templates/vscode/static/schemas/specverse-v3-schema.json +4279 -0
- package/libs/instance-factories/tools/templates/vscode/static/syntaxes/specverse.tmLanguage.json +138 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/README.md +74 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/complete-specverse-colors.json +122 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-basic-theme.json +65 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-complete-theme.json +123 -0
- package/libs/instance-factories/tools/templates/vscode/static/themes/specverse-theme-colors.json +64 -0
- package/libs/instance-factories/tools/templates/vscode/vscode-extension-generator.ts +300 -0
- package/libs/instance-factories/tools/vscode.yaml +35 -0
- package/libs/instance-factories/validation/README.md +38 -0
- package/libs/instance-factories/validation/templates/zod/validation-generator.ts +46 -0
- package/libs/instance-factories/validation/zod.yaml +56 -0
- package/libs/instance-factories/views/README.md +62 -0
- package/libs/instance-factories/views/index.d.ts +13 -0
- package/libs/instance-factories/views/index.d.ts.map +1 -0
- package/libs/instance-factories/views/index.js +18 -0
- package/libs/instance-factories/views/index.js.map +1 -0
- package/libs/instance-factories/views/index.ts +45 -0
- package/libs/instance-factories/views/react-components.yaml +129 -0
- package/libs/instance-factories/views/templates/ARCHITECTURE.md +198 -0
- package/libs/instance-factories/views/templates/react/adapters/antd-adapter.ts +869 -0
- package/libs/instance-factories/views/templates/react/adapters/mui-adapter.ts +953 -0
- package/libs/instance-factories/views/templates/react/adapters/shadcn-adapter.ts +806 -0
- package/libs/instance-factories/views/templates/react/app-generator.ts +55 -0
- package/libs/instance-factories/views/templates/react/components-generator.ts +887 -0
- package/libs/instance-factories/views/templates/react/forms-generator.ts +343 -0
- package/libs/instance-factories/views/templates/react/frontend-package-json-generator.ts +57 -0
- package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
- package/libs/instance-factories/views/templates/react/index-css-generator.ts +14 -0
- package/libs/instance-factories/views/templates/react/index-html-generator.ts +34 -0
- package/libs/instance-factories/views/templates/react/main-tsx-generator.ts +29 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.d.ts +152 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.js +398 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.js.map +1 -0
- package/libs/instance-factories/views/templates/react/react-component-generator.ts +533 -0
- package/libs/instance-factories/views/templates/react/router-generator.ts +197 -0
- package/libs/instance-factories/views/templates/react/router-generic-generator.ts +132 -0
- package/libs/instance-factories/views/templates/react/shared-utils-generator.ts +188 -0
- package/libs/instance-factories/views/templates/react/spec-json-generator.ts +17 -0
- package/libs/instance-factories/views/templates/react/types-generator.ts +76 -0
- package/libs/instance-factories/views/templates/react/views-metadata-generator.ts +42 -0
- package/libs/instance-factories/views/templates/react/vite-config-generator.ts +38 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.js.map +1 -0
- package/libs/instance-factories/views/templates/runtime/runtime-view-renderer.ts +474 -0
- package/libs/instance-factories/views/templates/shared/__tests__/composite-patterns.test.ts +242 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.d.ts +77 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.js +47 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/adapter-types.ts +142 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts +63 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.js +822 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/atomic-components-registry.ts +908 -0
- package/libs/instance-factories/views/templates/shared/base-generator.d.ts +247 -0
- package/libs/instance-factories/views/templates/shared/base-generator.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/base-generator.js +363 -0
- package/libs/instance-factories/views/templates/shared/base-generator.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/base-generator.ts +608 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.d.ts +254 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.js +602 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/component-metadata.ts +803 -0
- package/libs/instance-factories/views/templates/shared/composite-pattern-types.ts +250 -0
- package/libs/instance-factories/views/templates/shared/composite-patterns.ts +535 -0
- package/libs/instance-factories/views/templates/shared/index.ts +68 -0
- package/libs/instance-factories/views/templates/shared/pattern-validator.ts +279 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.d.ts +149 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.js +580 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/property-mapper.ts +700 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts +143 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.d.ts.map +1 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.js +420 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.js.map +1 -0
- package/libs/instance-factories/views/templates/shared/syntax-mapper.ts +539 -0
- package/package.json +63 -0
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
# Example 03-06: Inference Engine Demo
|
|
2
|
+
|
|
3
|
+
This example demonstrates SpecVerse's inference engine capabilities, showing how the system can automatically derive relationships, generate code patterns, and suggest architectural improvements.
|
|
4
|
+
|
|
5
|
+
## Learning Objectives
|
|
6
|
+
|
|
7
|
+
- Understand automatic relationship inference
|
|
8
|
+
- Learn about code pattern generation
|
|
9
|
+
- Explore architectural suggestion capabilities
|
|
10
|
+
- Master inference rule configuration
|
|
11
|
+
- See how inference improves development velocity
|
|
12
|
+
|
|
13
|
+
## Key Concepts
|
|
14
|
+
|
|
15
|
+
### Complete E-Commerce Domain Model
|
|
16
|
+
|
|
17
|
+
The inference engine analyzes comprehensive domain models to detect patterns and suggest improvements:
|
|
18
|
+
|
|
19
|
+
```specly
|
|
20
|
+
models:
|
|
21
|
+
Customer:
|
|
22
|
+
description: "Root entity - customer account"
|
|
23
|
+
attributes:
|
|
24
|
+
id: UUID required
|
|
25
|
+
email: Email required unique
|
|
26
|
+
firstName: String required
|
|
27
|
+
lastName: String required
|
|
28
|
+
creditLimit: Money default=1000.00
|
|
29
|
+
registrationDate: DateTime required
|
|
30
|
+
relationships:
|
|
31
|
+
orders: hasMany Order # ← Engine infers from order.customerEmail
|
|
32
|
+
reviews: hasMany Review
|
|
33
|
+
lifecycles:
|
|
34
|
+
account:
|
|
35
|
+
flow: pending -> active -> suspended -> deleted
|
|
36
|
+
|
|
37
|
+
Order:
|
|
38
|
+
description: "Customer order - belongs to customer, has many items"
|
|
39
|
+
attributes:
|
|
40
|
+
id: UUID required
|
|
41
|
+
orderNumber: String required unique
|
|
42
|
+
customerEmail: Email required # ← Engine suggests: belongsTo Customer
|
|
43
|
+
total: Money required
|
|
44
|
+
relationships:
|
|
45
|
+
customer: belongsTo Customer
|
|
46
|
+
items: hasMany OrderItem
|
|
47
|
+
payments: hasMany Payment
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Advanced Relationship Patterns
|
|
51
|
+
|
|
52
|
+
The engine detects complex relationship patterns in the domain:
|
|
53
|
+
|
|
54
|
+
```specly
|
|
55
|
+
Product:
|
|
56
|
+
description: "Product catalog entity"
|
|
57
|
+
attributes:
|
|
58
|
+
id: UUID required
|
|
59
|
+
name: String required
|
|
60
|
+
price: Money required
|
|
61
|
+
sku: String required unique # ← Engine suggests: index for performance
|
|
62
|
+
relationships:
|
|
63
|
+
orderItems: hasMany OrderItem
|
|
64
|
+
reviews: hasMany Review
|
|
65
|
+
inventory: hasOne Inventory # ← Engine infers 1:1 relationship
|
|
66
|
+
lifecycles:
|
|
67
|
+
inventory:
|
|
68
|
+
flow: draft -> active -> discontinued -> archived
|
|
69
|
+
|
|
70
|
+
OrderItem:
|
|
71
|
+
description: "Individual line item in an order"
|
|
72
|
+
attributes:
|
|
73
|
+
productSku: String required # ← Engine links to Product.sku
|
|
74
|
+
quantity: Integer required
|
|
75
|
+
unitPrice: Money required
|
|
76
|
+
relationships:
|
|
77
|
+
order: belongsTo Order
|
|
78
|
+
product: belongsTo Product # ← Engine infers from productSku
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Controller Pattern Inference
|
|
82
|
+
|
|
83
|
+
```specly
|
|
84
|
+
controllers:
|
|
85
|
+
OrderController:
|
|
86
|
+
description: "Handle order operations"
|
|
87
|
+
model: Order # ← Engine infers standard CRUD operations
|
|
88
|
+
actions:
|
|
89
|
+
createOrder:
|
|
90
|
+
description: "Create new order"
|
|
91
|
+
parameters:
|
|
92
|
+
customerId: UUID required # ← Engine links to Customer model
|
|
93
|
+
items: String required
|
|
94
|
+
shippingAddress: String required
|
|
95
|
+
returns: Order
|
|
96
|
+
requires: ["Customer exists", "Products available"] # ← Engine suggests validation
|
|
97
|
+
ensures: ["Order created", "Inventory updated"]
|
|
98
|
+
publishes: [OrderCreated] # ← Engine suggests event publishing
|
|
99
|
+
|
|
100
|
+
# Engine suggests additional actions based on Order lifecycle:
|
|
101
|
+
# - updateOrderStatus, cancelOrder, processPayment, trackShipment
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Container Architecture
|
|
105
|
+
|
|
106
|
+
### v3.2 Component Structure
|
|
107
|
+
|
|
108
|
+
```specly
|
|
109
|
+
components:
|
|
110
|
+
ECommerceSystem:
|
|
111
|
+
version: "3.2.0"
|
|
112
|
+
description: "Example 03-06: Complete e-commerce system to test inference engine"
|
|
113
|
+
|
|
114
|
+
export:
|
|
115
|
+
models: [Customer, Product, Order, OrderItem, Payment, Category, Review, Inventory]
|
|
116
|
+
controllers: [OrderController]
|
|
117
|
+
events: [OrderCreated]
|
|
118
|
+
views: [OrderDashboard]
|
|
119
|
+
|
|
120
|
+
import:
|
|
121
|
+
- from: "@specverse/primitives"
|
|
122
|
+
select: [UUID, Email, DateTime, Money]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Inference Engine Analysis Points
|
|
126
|
+
|
|
127
|
+
**Relationship Pattern Detection**:
|
|
128
|
+
- `Order.customerEmail` → suggests `belongsTo Customer`
|
|
129
|
+
- `OrderItem.productSku` → suggests `belongsTo Product`
|
|
130
|
+
- `Category.parentId` → suggests `belongsTo Category` (self-referencing)
|
|
131
|
+
- `Inventory.product` → suggests `hasOne` relationship
|
|
132
|
+
|
|
133
|
+
**Lifecycle Pattern Recognition**:
|
|
134
|
+
- Order: `pending -> processing -> shipped -> delivered`
|
|
135
|
+
- Payment: `pending -> authorized -> captured -> settled`
|
|
136
|
+
- Review: `pending -> approved -> rejected`
|
|
137
|
+
|
|
138
|
+
**Behavior Pattern Suggestions**:
|
|
139
|
+
- Customer.`calculateTotalSpent()` → aggregate function pattern
|
|
140
|
+
- Inventory.`checkLowStock()` → business rule pattern
|
|
141
|
+
- Customer.`validateCreditLimit()` → constraint validation pattern
|
|
142
|
+
|
|
143
|
+
### Domain-Specific Pattern Detection
|
|
144
|
+
|
|
145
|
+
**E-Commerce Patterns Detected**:
|
|
146
|
+
- **Order Management**: Order → OrderItem → Product chain
|
|
147
|
+
- **Customer Lifecycle**: Registration → Active → Suspended flow
|
|
148
|
+
- **Inventory Management**: Product → Inventory → Stock tracking
|
|
149
|
+
- **Payment Processing**: Order → Payment → Transaction handling
|
|
150
|
+
- **Review System**: Customer → Review → Product feedback loop
|
|
151
|
+
|
|
152
|
+
**Architectural Insights**:
|
|
153
|
+
- **Event-Driven**: OrderCreated event suggests pub/sub architecture
|
|
154
|
+
- **Domain Modeling**: Rich behaviors on Customer and Inventory models
|
|
155
|
+
- **View Integration**: OrderDashboard connects to backend Order model
|
|
156
|
+
- **Lifecycle Management**: Multiple state machines for different concerns
|
|
157
|
+
|
|
158
|
+
## Advanced Inference Capabilities
|
|
159
|
+
|
|
160
|
+
### Business Logic Pattern Recognition
|
|
161
|
+
|
|
162
|
+
```specly
|
|
163
|
+
# Engine detects common business patterns
|
|
164
|
+
Inventory:
|
|
165
|
+
behaviors:
|
|
166
|
+
updateQuantity:
|
|
167
|
+
description: "Update inventory levels"
|
|
168
|
+
parameters:
|
|
169
|
+
quantity: Integer required
|
|
170
|
+
reason: String required # ← Engine suggests: audit trail
|
|
171
|
+
returns: Boolean
|
|
172
|
+
ensures: ["Inventory levels updated correctly"]
|
|
173
|
+
|
|
174
|
+
checkLowStock:
|
|
175
|
+
description: "Check if reorder needed"
|
|
176
|
+
returns: Boolean
|
|
177
|
+
ensures: ["Low stock status determined"]
|
|
178
|
+
# ← Engine suggests: could trigger reorder event
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Complex Relationship Analysis
|
|
182
|
+
|
|
183
|
+
**Multi-Level Relationships Detected**:
|
|
184
|
+
- Customer → Order → OrderItem → Product (4-level chain)
|
|
185
|
+
- Category → Category (self-referencing hierarchy)
|
|
186
|
+
- Product → Review ← Customer (many-to-many through Review)
|
|
187
|
+
- Order → Payment (one-to-many transaction tracking)
|
|
188
|
+
|
|
189
|
+
**Cross-Model Validation Suggestions**:
|
|
190
|
+
- OrderItem.productSku should match Product.sku
|
|
191
|
+
- Order.customerEmail should match Customer.email
|
|
192
|
+
- Payment.amount should not exceed Order.total
|
|
193
|
+
|
|
194
|
+
### View and Component Integration
|
|
195
|
+
|
|
196
|
+
```specly
|
|
197
|
+
views:
|
|
198
|
+
OrderDashboard:
|
|
199
|
+
description: "Order management dashboard"
|
|
200
|
+
model: Order # ← Engine connects view to domain model
|
|
201
|
+
components:
|
|
202
|
+
- OrderTable # ← Engine suggests: pagination for large datasets
|
|
203
|
+
- OrderSummary # ← Engine suggests: aggregate calculations
|
|
204
|
+
- OrderFilters # ← Engine suggests: search by status, date, customer
|
|
205
|
+
properties:
|
|
206
|
+
orderLimit: 50 # ← Engine suggests: performance optimization
|
|
207
|
+
responsive: true # ← Engine suggests: mobile compatibility
|
|
208
|
+
realtime: true # ← Engine suggests: event subscription for updates
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
**Dashboard Optimization Suggestions**:
|
|
212
|
+
- OrderTable: Paginate large order lists
|
|
213
|
+
- OrderSummary: Cache aggregate calculations
|
|
214
|
+
- OrderFilters: Index commonly searched fields
|
|
215
|
+
- Real-time Updates: Subscribe to OrderCreated events
|
|
216
|
+
|
|
217
|
+
## Advanced Inference Features
|
|
218
|
+
|
|
219
|
+
### Cross-Model Analysis
|
|
220
|
+
|
|
221
|
+
```yaml
|
|
222
|
+
# Engine analyzes entire domain for consistency
|
|
223
|
+
DomainAnalysis:
|
|
224
|
+
ModelConsistency:
|
|
225
|
+
- "All entities have consistent ID strategy"
|
|
226
|
+
- "Audit fields applied uniformly"
|
|
227
|
+
- "Naming conventions followed"
|
|
228
|
+
|
|
229
|
+
RelationshipIntegrity:
|
|
230
|
+
- "No orphaned foreign keys"
|
|
231
|
+
- "Bidirectional relationships defined"
|
|
232
|
+
- "Cascade rules specified"
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Business Logic Inference
|
|
236
|
+
|
|
237
|
+
```yaml
|
|
238
|
+
# Engine suggests business rules based on patterns
|
|
239
|
+
BusinessRuleInference:
|
|
240
|
+
CustomerLifecycle:
|
|
241
|
+
States: ["prospect", "active", "inactive", "churned"]
|
|
242
|
+
Transitions: "Inferred from typical customer journey"
|
|
243
|
+
|
|
244
|
+
OrderProcessing:
|
|
245
|
+
RequiredSteps: ["validate", "payment", "fulfillment"]
|
|
246
|
+
Events: ["OrderCreated", "PaymentProcessed", "OrderShipped"]
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
### Integration Pattern Suggestions
|
|
250
|
+
|
|
251
|
+
```yaml
|
|
252
|
+
ServiceIntegration:
|
|
253
|
+
PaymentService:
|
|
254
|
+
SuggestedOperations:
|
|
255
|
+
- processPayment
|
|
256
|
+
- refundPayment
|
|
257
|
+
- verifyPayment
|
|
258
|
+
ErrorHandling: "Retry with exponential backoff"
|
|
259
|
+
|
|
260
|
+
NotificationService:
|
|
261
|
+
Channels: ["email", "sms", "push"]
|
|
262
|
+
Templates: "Inferred from domain events"
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
## Visual Diagram
|
|
266
|
+
|
|
267
|
+
import Mermaid from '@site/src/components/Mermaid';
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
{/* Auto-generated diagram from canonical examples */}
|
|
272
|
+
|
|
273
|
+
{/* Generated: 2025-07-26T14:40:17.525Z */}
|
|
274
|
+
|
|
275
|
+
<div className="diagram-generated">
|
|
276
|
+
|
|
277
|
+
<Mermaid chart={`
|
|
278
|
+
classDiagram
|
|
279
|
+
class Customer {
|
|
280
|
+
+id: UUID required
|
|
281
|
+
+email: Email required unique
|
|
282
|
+
+firstName: String required
|
|
283
|
+
+lastName: String required
|
|
284
|
+
+phone: String
|
|
285
|
+
+status: String = active
|
|
286
|
+
+creditLimit: Money = 1000.00
|
|
287
|
+
+registrationDate: DateTime required
|
|
288
|
+
+calculateTotalSpent(): Money %% ensures: Returns accurate total spending
|
|
289
|
+
+validateCreditLimit(amount: Money): Boolean %% ensures: Credit limit validation completed
|
|
290
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
291
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
292
|
+
+hasProfile(profileName: String): Boolean
|
|
293
|
+
}
|
|
294
|
+
class Product {
|
|
295
|
+
+id: UUID required
|
|
296
|
+
+name: String required
|
|
297
|
+
+description: String
|
|
298
|
+
+price: Money required
|
|
299
|
+
+category: String required
|
|
300
|
+
+stock: Integer required
|
|
301
|
+
+isDigital: Boolean = false
|
|
302
|
+
+weight: String
|
|
303
|
+
+sku: String required unique
|
|
304
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
305
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
306
|
+
+hasProfile(profileName: String): Boolean
|
|
307
|
+
}
|
|
308
|
+
class Order {
|
|
309
|
+
+id: UUID required
|
|
310
|
+
+orderNumber: String required unique
|
|
311
|
+
+customerEmail: Email required
|
|
312
|
+
+subtotal: Money required
|
|
313
|
+
+tax: Money required
|
|
314
|
+
+shipping: Money required
|
|
315
|
+
+total: Money required
|
|
316
|
+
+shippingAddress: String required
|
|
317
|
+
+billingAddress: String required
|
|
318
|
+
+orderDate: DateTime required
|
|
319
|
+
+expectedDelivery: DateTime
|
|
320
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
321
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
322
|
+
+hasProfile(profileName: String): Boolean
|
|
323
|
+
}
|
|
324
|
+
class OrderItem {
|
|
325
|
+
+id: UUID required
|
|
326
|
+
+productName: String required
|
|
327
|
+
+productSku: String required
|
|
328
|
+
+quantity: Integer required
|
|
329
|
+
+unitPrice: Money required
|
|
330
|
+
+lineTotal: Money required
|
|
331
|
+
+discountApplied: Money
|
|
332
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
333
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
334
|
+
+hasProfile(profileName: String): Boolean
|
|
335
|
+
}
|
|
336
|
+
class Payment {
|
|
337
|
+
+id: UUID required
|
|
338
|
+
+amount: Money required
|
|
339
|
+
+paymentMethod: String required
|
|
340
|
+
+transactionId: String required
|
|
341
|
+
+processorResponse: String
|
|
342
|
+
+processedAt: DateTime
|
|
343
|
+
+refundedAmount: Money
|
|
344
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
345
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
346
|
+
+hasProfile(profileName: String): Boolean
|
|
347
|
+
}
|
|
348
|
+
class Category {
|
|
349
|
+
+id: UUID required
|
|
350
|
+
+name: String required
|
|
351
|
+
+description: String
|
|
352
|
+
+parentId: UUID
|
|
353
|
+
+isActive: Boolean = true
|
|
354
|
+
+sortOrder: Integer = 0
|
|
355
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
356
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
357
|
+
+hasProfile(profileName: String): Boolean
|
|
358
|
+
}
|
|
359
|
+
class Review {
|
|
360
|
+
+id: UUID required
|
|
361
|
+
+rating: Integer required
|
|
362
|
+
+title: String required
|
|
363
|
+
+comment: String
|
|
364
|
+
+isVerifiedPurchase: Boolean = false
|
|
365
|
+
+isApproved: Boolean = false
|
|
366
|
+
+reviewDate: DateTime required
|
|
367
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
368
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
369
|
+
+hasProfile(profileName: String): Boolean
|
|
370
|
+
}
|
|
371
|
+
class Inventory {
|
|
372
|
+
+id: UUID required
|
|
373
|
+
+location: String required
|
|
374
|
+
+quantityOnHand: Integer required
|
|
375
|
+
+quantityReserved: Integer = 0
|
|
376
|
+
+quantityAvailable: Integer required
|
|
377
|
+
+reorderPoint: Integer = 10
|
|
378
|
+
+maxStock: Integer = 100
|
|
379
|
+
+lastRestocked: DateTime
|
|
380
|
+
+updateQuantity(quantity: Integer, reason: String): Boolean %% ensures: Inventory levels updated correctly
|
|
381
|
+
+checkLowStock(): Boolean %% ensures: Low stock status determined
|
|
382
|
+
+attachProfile(profileName: String): Boolean %% requires: Profile exists and is compatible with this model | ensures: Profile is attached, Profile attributes are available
|
|
383
|
+
+detachProfile(profileName: String): Boolean %% requires: Profile is currently attached | ensures: Profile is detached, Profile attributes are no longer available
|
|
384
|
+
+hasProfile(profileName: String): Boolean
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
Customer o-- Order : *_orders
|
|
388
|
+
Customer o-- Review : *_reviews
|
|
389
|
+
Product o-- OrderItem : *_orderItems
|
|
390
|
+
Product o-- Review : *_reviews
|
|
391
|
+
Product -- Inventory : 1_inventory
|
|
392
|
+
Order -- Customer : 1_customer
|
|
393
|
+
Order o-- OrderItem : *_items
|
|
394
|
+
Order o-- Payment : *_payments
|
|
395
|
+
OrderItem -- Order : 1_order
|
|
396
|
+
OrderItem -- Product : 1_product
|
|
397
|
+
Payment -- Order : 1_order
|
|
398
|
+
Category -- Category : 1_parent
|
|
399
|
+
Category o-- Category : *_children
|
|
400
|
+
Category o-- Product : *_products
|
|
401
|
+
Review -- Product : 1_product
|
|
402
|
+
Review -- Customer : 1_customer
|
|
403
|
+
Inventory -- Product : 1_product
|
|
404
|
+
OrderController -- Order : 1_manages
|
|
405
|
+
|
|
406
|
+
%% Other components
|
|
407
|
+
class OrderController {
|
|
408
|
+
<<controller>>
|
|
409
|
+
OrderController
|
|
410
|
+
}
|
|
411
|
+
class OrderCreated {
|
|
412
|
+
<<event>>
|
|
413
|
+
OrderCreated
|
|
414
|
+
}
|
|
415
|
+
`} />
|
|
416
|
+
|
|
417
|
+
</div>
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
### Customer - account Lifecycle
|
|
421
|
+
|
|
422
|
+
|
|
423
|
+
<Mermaid chart={`
|
|
424
|
+
stateDiagram-v2
|
|
425
|
+
%% Customer - account Lifecycle
|
|
426
|
+
___ --> pending : start
|
|
427
|
+
pending --> active : to_active
|
|
428
|
+
active --> suspended : to_suspended
|
|
429
|
+
suspended --> deleted : to_deleted
|
|
430
|
+
`} />
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
### Product - inventory Lifecycle
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
<Mermaid chart={`
|
|
437
|
+
stateDiagram-v2
|
|
438
|
+
%% Product - inventory Lifecycle
|
|
439
|
+
___ --> draft : start
|
|
440
|
+
draft --> active : to_active
|
|
441
|
+
active --> discontinued : to_discontinued
|
|
442
|
+
discontinued --> archived : to_archived
|
|
443
|
+
`} />
|
|
444
|
+
|
|
445
|
+
|
|
446
|
+
### Order - fulfillment Lifecycle
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
<Mermaid chart={`
|
|
450
|
+
stateDiagram-v2
|
|
451
|
+
%% Order - fulfillment Lifecycle
|
|
452
|
+
___ --> pending : start
|
|
453
|
+
pending --> processing : to_processing
|
|
454
|
+
processing --> shipped : to_shipped
|
|
455
|
+
shipped --> delivered : to_delivered
|
|
456
|
+
`} />
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
### Order - payment Lifecycle
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
<Mermaid chart={`
|
|
463
|
+
stateDiagram-v2
|
|
464
|
+
%% Order - payment Lifecycle
|
|
465
|
+
___ --> unpaid : start
|
|
466
|
+
unpaid --> paid : to_paid
|
|
467
|
+
paid --> refunded : to_refunded
|
|
468
|
+
`} />
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
### Payment - processing Lifecycle
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
<Mermaid chart={`
|
|
475
|
+
stateDiagram-v2
|
|
476
|
+
%% Payment - processing Lifecycle
|
|
477
|
+
___ --> pending : start
|
|
478
|
+
pending --> authorized : to_authorized
|
|
479
|
+
authorized --> captured : to_captured
|
|
480
|
+
captured --> settled : to_settled
|
|
481
|
+
`} />
|
|
482
|
+
|
|
483
|
+
|
|
484
|
+
### Review - moderation Lifecycle
|
|
485
|
+
|
|
486
|
+
|
|
487
|
+
<Mermaid chart={`
|
|
488
|
+
stateDiagram-v2
|
|
489
|
+
%% Review - moderation Lifecycle
|
|
490
|
+
___ --> pending : start
|
|
491
|
+
pending --> approved : to_approved
|
|
492
|
+
approved --> rejected : to_rejected
|
|
493
|
+
`} />
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
## Complete Example
|
|
498
|
+
|
|
499
|
+
### Specly DSL Format
|
|
500
|
+
See [./03-06-inference-engine-demo.specly](./03-06-inference-engine-demo.specly) for the complete v3.2 specification.
|
|
501
|
+
|
|
502
|
+
### Generated: YAML Format
|
|
503
|
+
SpecVerse v3.2 uses convention-based Specly DSL as the source format. The build process can generate structured YAML for tooling integration:
|
|
504
|
+
|
|
505
|
+
```bash
|
|
506
|
+
# Generate YAML from Specly DSL
|
|
507
|
+
specverse build --format yaml 03-06-inference-engine-demo.specly
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
This produces fully structured YAML with expanded relationship definitions, behavior contracts, and inference analysis derived from the concise Specly syntax.
|
|
511
|
+
|
|
512
|
+
## Key Features Demonstrated
|
|
513
|
+
|
|
514
|
+
- **Automatic relationship detection**: Smart foreign key analysis
|
|
515
|
+
- **Pattern recognition**: Common architectural patterns
|
|
516
|
+
- **Code generation suggestions**: Controller actions, service operations
|
|
517
|
+
- **Performance optimization**: Analysis and recommendations
|
|
518
|
+
- **Business rule inference**: Domain-specific patterns
|
|
519
|
+
|
|
520
|
+
## Practical Benefits
|
|
521
|
+
|
|
522
|
+
### Development Acceleration
|
|
523
|
+
- Reduces boilerplate code writing
|
|
524
|
+
- Suggests missing components
|
|
525
|
+
- Provides architectural guidance
|
|
526
|
+
|
|
527
|
+
### Quality Improvement
|
|
528
|
+
- Enforces naming conventions
|
|
529
|
+
- Suggests best practices
|
|
530
|
+
- Identifies potential issues
|
|
531
|
+
|
|
532
|
+
### Consistency Maintenance
|
|
533
|
+
- Cross-model validation
|
|
534
|
+
- Pattern enforcement
|
|
535
|
+
- Standard compliance
|
|
536
|
+
|
|
537
|
+
## Inference Engine Configuration
|
|
538
|
+
|
|
539
|
+
### Inference Engine Analysis Summary
|
|
540
|
+
|
|
541
|
+
**High-Confidence Patterns (Auto-Applied)**:
|
|
542
|
+
- Customer.email → Order.customerEmail relationship
|
|
543
|
+
- Product.sku → OrderItem.productSku relationship
|
|
544
|
+
- Category self-referencing hierarchy
|
|
545
|
+
- Standard CRUD operations for OrderController
|
|
546
|
+
|
|
547
|
+
**Medium-Confidence Suggestions (Review Required)**:
|
|
548
|
+
- Add inventory alerts for low stock conditions
|
|
549
|
+
- Consider caching Customer.calculateTotalSpent() results
|
|
550
|
+
- Add validation for Payment.amount vs Order.total
|
|
551
|
+
- Implement order cancellation workflow
|
|
552
|
+
|
|
553
|
+
**Domain-Specific Recommendations**:
|
|
554
|
+
- E-commerce order lifecycle management
|
|
555
|
+
- Inventory reorder point automation
|
|
556
|
+
- Customer credit limit validation
|
|
557
|
+
- Review moderation workflow
|
|
558
|
+
|
|
559
|
+
## Validation
|
|
560
|
+
|
|
561
|
+
Test this example:
|
|
562
|
+
```bash
|
|
563
|
+
specverse validate examples/03-architecture/03-06-inference-engine-demo.specly
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
## Next Steps
|
|
567
|
+
|
|
568
|
+
Continue to [Example 03-07: Relationships Demo](./03-07-relationships-demo) to explore advanced relationship patterns and modeling techniques.
|
|
569
|
+
|
|
570
|
+
## Related Examples
|
|
571
|
+
|
|
572
|
+
- [Example 01-04: Models with Relations](../01-fundamentals/01-04-models-with-relations) - Basic relationship concepts
|
|
573
|
+
- [Example 02-01: Using Profiles](../02-profiles/02-01-using-profiles) - Profile attachment patterns
|
|
574
|
+
- [Example 05-02: SpecVerse App Build](../05-meta/05-02-specverse-app-build) - Build system integration
|