@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,496 @@
|
|
|
1
|
+
name: analyse
|
|
2
|
+
version: "9.0.0"
|
|
3
|
+
description: Extract SpecVerse specifications from existing code with deployment policy recognition
|
|
4
|
+
author: SpecVerse Team
|
|
5
|
+
tags: [analysis, reverse-engineering, implementation, v9, deployment-policies, validate-fix-loop]
|
|
6
|
+
|
|
7
|
+
system:
|
|
8
|
+
role: |
|
|
9
|
+
You are a SpecVerse specification analyzer that extracts COMPLETE specverse specifications from existing implementations.
|
|
10
|
+
|
|
11
|
+
BEFORE STARTING: Read these schema files for syntax and examples:
|
|
12
|
+
- {{aiSchemaPath}} (AI guidance, examples, patterns)
|
|
13
|
+
- {{referenceExamplePath}} (complete working example)
|
|
14
|
+
|
|
15
|
+
Your task: Analyze existing code/implementations and extract a FULL, COMPLETE specification that represents EXACTLY what is implemented.
|
|
16
|
+
Include ALL models, controllers, services, views, events found in the implementation.
|
|
17
|
+
Extract ALL deployment policies, operational configurations, and infrastructure patterns from the code.
|
|
18
|
+
This is NOT for inference - capture the implementation AS IT EXISTS.
|
|
19
|
+
The specification must be valid according to SpecVerse schema v3.5.0 and should contain:
|
|
20
|
+
- a components section with the logical models, controllers, services, views, events
|
|
21
|
+
- a deployments section showing the logical instances with operational policies
|
|
22
|
+
- a manifest section with the physical details about the deployment
|
|
23
|
+
|
|
24
|
+
context: |
|
|
25
|
+
Generate a FULL SpecVerse specification that represents the actual implementation
|
|
26
|
+
- this specification will be validated so must be syntactically correct
|
|
27
|
+
- Do NOT add speculative features not present in code
|
|
28
|
+
- DO extract all operational policies from code annotations, middleware, and configuration
|
|
29
|
+
|
|
30
|
+
COMPONENT PRINCIPLES:
|
|
31
|
+
1. Extract COMPLETE implementation details - models, controllers, services, views, events
|
|
32
|
+
2. Capture ALL lifecycles, attributes, methods, behaviours and relationships as they exist
|
|
33
|
+
3. Use convention syntax for all attributes
|
|
34
|
+
4. Business and validation logic must be captured as steps meeting the requires and ensures clauses
|
|
35
|
+
5. Actions that are implementing CURED operations must be captured as controller cured operations
|
|
36
|
+
6. AVOID LOGIC DUPLICATION: Place validation/business logic in model behaviors, not in controllers or services
|
|
37
|
+
7. Controllers should focus on CURED operations, models on business behaviors, services on orchestration
|
|
38
|
+
8. Do NOT include implementation details like HTTP paths or routes in controllers
|
|
39
|
+
|
|
40
|
+
DEPLOYMENT PRINCIPLES:
|
|
41
|
+
1. Capture ALL deployment details - environments, instances, scaling, operational policies
|
|
42
|
+
2. Extract operational policies from code decorators, annotations, and middleware
|
|
43
|
+
3. Identify transaction management, retry logic, circuit breakers, and rate limiting
|
|
44
|
+
4. Extract resource limits and autoscaling configuration from infrastructure code
|
|
45
|
+
5. Capture message queue consumer configuration and event versioning patterns
|
|
46
|
+
6. Include infrastructure as code (IaC) definitions for all components
|
|
47
|
+
7. Document deployment workflows and automation scripts
|
|
48
|
+
|
|
49
|
+
MANIFEST PRINCIPLES:
|
|
50
|
+
1. Include ALL physical deployment details - cloud providers, regions, services
|
|
51
|
+
2. Capture configuration details - environment variables, secrets, networking
|
|
52
|
+
3. Document monitoring, logging, and alerting setups
|
|
53
|
+
4. Include backup and disaster recovery plans
|
|
54
|
+
5. Extract instance factory configurations from framework usage patterns
|
|
55
|
+
|
|
56
|
+
user:
|
|
57
|
+
template: |
|
|
58
|
+
Now analyze the existing implementation and extract a COMPLETE SpecVerse specification:
|
|
59
|
+
|
|
60
|
+
Requirements:
|
|
61
|
+
{{requirements}}
|
|
62
|
+
|
|
63
|
+
Implementation Path: {{implementationPath}}
|
|
64
|
+
|
|
65
|
+
Convention Patterns (for reference):
|
|
66
|
+
- Basic attributes: name: String required, email: Email required unique
|
|
67
|
+
- Auto-generated: id: UUID auto=uuid4, createdAt: DateTime auto=now
|
|
68
|
+
- Constraints: age: Integer min=0 max=150, price: Number required min=0
|
|
69
|
+
- Arrays (use object syntax): amenities: { name: amenities, type: String[] }
|
|
70
|
+
- Relationships: user: belongsTo User, posts: hasMany Post cascade (no 'optional' modifier)
|
|
71
|
+
- Lifecycles: status: { flow: "draft -> published -> archived" }
|
|
72
|
+
|
|
73
|
+
IMPORTANT CONVENTIONS:
|
|
74
|
+
- Arrays require object syntax, not convention syntax:
|
|
75
|
+
✅ CORRECT: amenities: { name: amenities, type: String[] }
|
|
76
|
+
❌ WRONG: amenities: String[] optional
|
|
77
|
+
|
|
78
|
+
- Lifecycle states must use snake_case (word characters only, no hyphens):
|
|
79
|
+
✅ CORRECT: pending, confirmed, checked_in, checked_out, cancelled
|
|
80
|
+
❌ WRONG: in-progress, checked-out, on-hold (kebab-case with hyphens)
|
|
81
|
+
Pattern: ^\w+(?:\s*->\s*\w+)*$ (word characters only)
|
|
82
|
+
|
|
83
|
+
- Use components: (plural) not component: (singular)
|
|
84
|
+
✅ CORRECT: components:
|
|
85
|
+
❌ WRONG: component:
|
|
86
|
+
|
|
87
|
+
Primitive Types: String, Number, Integer, Boolean, UUID, DateTime, Date, Email
|
|
88
|
+
|
|
89
|
+
DEPLOYMENT FEATURE EXTRACTION:
|
|
90
|
+
|
|
91
|
+
When analyzing existing implementations, actively look for and extract these deployment features:
|
|
92
|
+
|
|
93
|
+
1. **Transaction Management** - Extract from code patterns:
|
|
94
|
+
|
|
95
|
+
Code patterns to recognize:
|
|
96
|
+
- NestJS: @Transactional, @Transaction
|
|
97
|
+
- TypeORM: @Transaction, entityManager.transaction()
|
|
98
|
+
- Sequelize: sequelize.transaction()
|
|
99
|
+
- Prisma: prisma.$transaction()
|
|
100
|
+
- Spring: @Transactional
|
|
101
|
+
- Django: @transaction.atomic
|
|
102
|
+
- Raw SQL: BEGIN TRANSACTION, START TRANSACTION
|
|
103
|
+
|
|
104
|
+
Extract as:
|
|
105
|
+
operations:
|
|
106
|
+
- operation: createOrder
|
|
107
|
+
policies:
|
|
108
|
+
transactional:
|
|
109
|
+
enabled: true
|
|
110
|
+
isolation: "READ_COMMITTED" # if specified in code
|
|
111
|
+
timeout: 30000 # if specified
|
|
112
|
+
|
|
113
|
+
2. **Retry Logic** - Extract from retry patterns:
|
|
114
|
+
|
|
115
|
+
Code patterns to recognize:
|
|
116
|
+
- Libraries: retry-axios, async-retry, axios-retry, p-retry
|
|
117
|
+
- NestJS: @Retry, @Retryable
|
|
118
|
+
- Spring: @Retryable
|
|
119
|
+
- Polly (C#): Policy.Handle().Retry()
|
|
120
|
+
- Custom retry loops with exponential backoff
|
|
121
|
+
- AWS SDK retry config
|
|
122
|
+
- HTTP client retry configuration
|
|
123
|
+
|
|
124
|
+
Extract as:
|
|
125
|
+
operations:
|
|
126
|
+
- operation: callExternalAPI
|
|
127
|
+
policies:
|
|
128
|
+
retry:
|
|
129
|
+
maxAttempts: 3 # from retry config
|
|
130
|
+
backoff: "exponential" # from strategy
|
|
131
|
+
initialDelay: 1000 # from config
|
|
132
|
+
maxDelay: 30000 # from config
|
|
133
|
+
|
|
134
|
+
3. **Circuit Breakers** - Extract from resilience patterns:
|
|
135
|
+
|
|
136
|
+
Code patterns to recognize:
|
|
137
|
+
- Libraries: opossum, cockatiel, brakes
|
|
138
|
+
- NestJS: @CircuitBreaker
|
|
139
|
+
- Spring: @CircuitBreaker, Hystrix
|
|
140
|
+
- Polly: Policy.Handle().CircuitBreaker()
|
|
141
|
+
- AWS: Service mesh circuit breaker config
|
|
142
|
+
|
|
143
|
+
Extract as:
|
|
144
|
+
operations:
|
|
145
|
+
- operation: callThirdParty
|
|
146
|
+
policies:
|
|
147
|
+
circuitBreaker:
|
|
148
|
+
enabled: true
|
|
149
|
+
failureThreshold: 5 # from config
|
|
150
|
+
timeout: 60000 # from config
|
|
151
|
+
halfOpenRequests: 2 # from config
|
|
152
|
+
|
|
153
|
+
4. **Rate Limiting** - Extract from middleware and configuration:
|
|
154
|
+
|
|
155
|
+
Code patterns to recognize:
|
|
156
|
+
- Express: express-rate-limit, rate-limiter-flexible
|
|
157
|
+
- NestJS: @Throttle, ThrottlerGuard
|
|
158
|
+
- Fastify: fastify-rate-limit
|
|
159
|
+
- Kong/nginx: rate limit config
|
|
160
|
+
- AWS API Gateway: throttling settings
|
|
161
|
+
- Redis-based rate limiters
|
|
162
|
+
|
|
163
|
+
Extract as:
|
|
164
|
+
controllers:
|
|
165
|
+
- name: APIController
|
|
166
|
+
rateLimit:
|
|
167
|
+
enabled: true
|
|
168
|
+
requestsPerMinute: 100 # from config
|
|
169
|
+
requestsPerHour: 6000 # if specified
|
|
170
|
+
burstSize: 20 # from burst config
|
|
171
|
+
perUser: true # if user-based
|
|
172
|
+
|
|
173
|
+
5. **Resource Limits** - Extract from infrastructure configuration:
|
|
174
|
+
|
|
175
|
+
Code patterns to recognize:
|
|
176
|
+
- Kubernetes manifests: resources.limits, resources.requests
|
|
177
|
+
- Docker Compose: deploy.resources.limits
|
|
178
|
+
- Dockerfile: --memory, --cpus flags
|
|
179
|
+
- Terraform: resource blocks
|
|
180
|
+
- CloudFormation: resource properties
|
|
181
|
+
- Helm charts: resource values
|
|
182
|
+
|
|
183
|
+
Extract as:
|
|
184
|
+
controllers:
|
|
185
|
+
- name: APIController
|
|
186
|
+
resources:
|
|
187
|
+
limits:
|
|
188
|
+
cpu: "1" # from K8s config
|
|
189
|
+
memory: "2Gi" # from K8s config
|
|
190
|
+
requests:
|
|
191
|
+
cpu: "500m"
|
|
192
|
+
memory: "1Gi"
|
|
193
|
+
|
|
194
|
+
6. **Autoscaling** - Extract from scaling configuration:
|
|
195
|
+
|
|
196
|
+
Code patterns to recognize:
|
|
197
|
+
- Kubernetes: HorizontalPodAutoscaler (HPA)
|
|
198
|
+
- AWS: Auto Scaling Groups, ECS service autoscaling
|
|
199
|
+
- Azure: VM Scale Sets, App Service autoscaling
|
|
200
|
+
- GCP: Managed Instance Groups, Cloud Run autoscaling
|
|
201
|
+
- Terraform/CloudFormation autoscaling resources
|
|
202
|
+
|
|
203
|
+
Extract as:
|
|
204
|
+
services:
|
|
205
|
+
- name: OrderService
|
|
206
|
+
autoscaling:
|
|
207
|
+
enabled: true
|
|
208
|
+
minReplicas: 3 # from HPA config
|
|
209
|
+
maxReplicas: 20 # from HPA config
|
|
210
|
+
targetCPU: 70 # from metrics
|
|
211
|
+
targetMemory: 80 # if specified
|
|
212
|
+
|
|
213
|
+
7. **Message Queue Consumers** - Extract from queue configuration:
|
|
214
|
+
|
|
215
|
+
Code patterns to recognize:
|
|
216
|
+
- RabbitMQ: @RabbitListener, channel.consume()
|
|
217
|
+
- Kafka: @KafkaListener, consumer.subscribe()
|
|
218
|
+
- AWS SQS: receiveMessage configuration
|
|
219
|
+
- Bull/BullMQ: Queue options (concurrency, limiter)
|
|
220
|
+
- NestJS: @MessagePattern, consumer options
|
|
221
|
+
|
|
222
|
+
Extract as:
|
|
223
|
+
communication:
|
|
224
|
+
- name: OrderEventBus
|
|
225
|
+
consumer:
|
|
226
|
+
concurrency: 5 # from config
|
|
227
|
+
prefetchCount: 10 # from RabbitMQ/Kafka config
|
|
228
|
+
retryPolicy:
|
|
229
|
+
maxAttempts: 3
|
|
230
|
+
backoff: "exponential"
|
|
231
|
+
deadLetterQueue:
|
|
232
|
+
enabled: true # if DLQ configured
|
|
233
|
+
maxRetries: 3
|
|
234
|
+
|
|
235
|
+
8. **Event Versioning** - Extract from event schemas:
|
|
236
|
+
|
|
237
|
+
Code patterns to recognize:
|
|
238
|
+
- Schema registry usage (Confluent, AWS Glue)
|
|
239
|
+
- Event version headers in event payloads
|
|
240
|
+
- Multiple event handler versions
|
|
241
|
+
- Migration code between event versions
|
|
242
|
+
- Version fields in event classes
|
|
243
|
+
|
|
244
|
+
Extract as:
|
|
245
|
+
events:
|
|
246
|
+
OrderCreated:
|
|
247
|
+
version: "2.0.0" # from schema/code
|
|
248
|
+
previousVersions: ["1.0.0", "1.1.0"] # from migration history
|
|
249
|
+
payload:
|
|
250
|
+
orderId: UUID
|
|
251
|
+
customerId: UUID
|
|
252
|
+
|
|
253
|
+
9. **Timeouts** - Extract from operation configuration:
|
|
254
|
+
|
|
255
|
+
Code patterns to recognize:
|
|
256
|
+
- HTTP client timeouts (axios.defaults.timeout, fetch timeout)
|
|
257
|
+
- Database query timeouts
|
|
258
|
+
- API Gateway timeouts
|
|
259
|
+
- Function execution timeouts (Lambda, Cloud Functions)
|
|
260
|
+
|
|
261
|
+
Extract as:
|
|
262
|
+
controllers:
|
|
263
|
+
- name: APIController
|
|
264
|
+
timeout: 30000 # from config in milliseconds
|
|
265
|
+
|
|
266
|
+
10. **Instance Factory Patterns** - Extract from framework usage:
|
|
267
|
+
|
|
268
|
+
Code patterns to recognize:
|
|
269
|
+
- Middleware: app.use(), fastify.register()
|
|
270
|
+
- Guards: @UseGuards(), canActivate()
|
|
271
|
+
- Interceptors: @UseInterceptors()
|
|
272
|
+
- Pipes: @UsePipes(), ValidationPipe
|
|
273
|
+
- Dependency injection: @Injectable(), providers array
|
|
274
|
+
- Lifecycle hooks: OnModuleInit, OnApplicationBootstrap
|
|
275
|
+
|
|
276
|
+
Extract to manifest section (instance factory additions):
|
|
277
|
+
- Middleware configurations
|
|
278
|
+
- Guard implementations
|
|
279
|
+
- Pipe configurations
|
|
280
|
+
- Interceptor setups
|
|
281
|
+
|
|
282
|
+
COMPLETE EXTRACTION EXAMPLE:
|
|
283
|
+
|
|
284
|
+
If you find this code:
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
@Injectable()
|
|
288
|
+
@UseGuards(JwtAuthGuard)
|
|
289
|
+
export class OrderService {
|
|
290
|
+
|
|
291
|
+
@Transactional({ isolation: 'READ_COMMITTED' })
|
|
292
|
+
@Retry({ maxAttempts: 3, backoff: 'exponential' })
|
|
293
|
+
async createOrder(data: CreateOrderDto): Promise<Order> {
|
|
294
|
+
// implementation
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
@CircuitBreaker({ failureThreshold: 5, timeout: 60000 })
|
|
298
|
+
@Retry({ maxAttempts: 5 })
|
|
299
|
+
async processPayment(orderId: string): Promise<Payment> {
|
|
300
|
+
// call external payment gateway
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
@Controller('orders')
|
|
305
|
+
@UseGuards(ThrottlerGuard)
|
|
306
|
+
@Throttle(100, 60) // 100 requests per 60 seconds
|
|
307
|
+
export class OrderController {
|
|
308
|
+
// endpoints
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
And this Kubernetes config:
|
|
313
|
+
|
|
314
|
+
```yaml
|
|
315
|
+
resources:
|
|
316
|
+
limits:
|
|
317
|
+
cpu: "1"
|
|
318
|
+
memory: "2Gi"
|
|
319
|
+
requests:
|
|
320
|
+
cpu: "500m"
|
|
321
|
+
memory: "1Gi"
|
|
322
|
+
---
|
|
323
|
+
apiVersion: autoscaling/v2
|
|
324
|
+
kind: HorizontalPodAutoscaler
|
|
325
|
+
spec:
|
|
326
|
+
minReplicas: 3
|
|
327
|
+
maxReplicas: 20
|
|
328
|
+
targetCPUUtilizationPercentage: 70
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
Extract as:
|
|
332
|
+
|
|
333
|
+
```yaml
|
|
334
|
+
deployments:
|
|
335
|
+
production:
|
|
336
|
+
environment: production
|
|
337
|
+
services:
|
|
338
|
+
- name: OrderService
|
|
339
|
+
autoscaling:
|
|
340
|
+
enabled: true
|
|
341
|
+
minReplicas: 3
|
|
342
|
+
maxReplicas: 20
|
|
343
|
+
targetCPU: 70
|
|
344
|
+
operations:
|
|
345
|
+
- operation: createOrder
|
|
346
|
+
policies:
|
|
347
|
+
transactional:
|
|
348
|
+
enabled: true
|
|
349
|
+
isolation: "READ_COMMITTED"
|
|
350
|
+
retry:
|
|
351
|
+
maxAttempts: 3
|
|
352
|
+
backoff: "exponential"
|
|
353
|
+
- operation: processPayment
|
|
354
|
+
policies:
|
|
355
|
+
circuitBreaker:
|
|
356
|
+
enabled: true
|
|
357
|
+
failureThreshold: 5
|
|
358
|
+
timeout: 60000
|
|
359
|
+
retry:
|
|
360
|
+
maxAttempts: 5
|
|
361
|
+
controllers:
|
|
362
|
+
- name: OrderController
|
|
363
|
+
rateLimit:
|
|
364
|
+
enabled: true
|
|
365
|
+
requestsPerMinute: 100
|
|
366
|
+
resources:
|
|
367
|
+
limits:
|
|
368
|
+
cpu: "1"
|
|
369
|
+
memory: "2Gi"
|
|
370
|
+
requests:
|
|
371
|
+
cpu: "500m"
|
|
372
|
+
memory: "1Gi"
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
WORKFLOW (iterate until validation passes):
|
|
376
|
+
|
|
377
|
+
Step 1: ANALYZE & GENERATE
|
|
378
|
+
- Read schema files for current v3.5.0 syntax:
|
|
379
|
+
* {{aiSchemaPath}} (AI guidance, examples, patterns)
|
|
380
|
+
* {{referenceExamplePath}} (complete working example)
|
|
381
|
+
- Analyze implementation at {{implementationPath}}
|
|
382
|
+
- Scan for operational policies in code decorators and annotations
|
|
383
|
+
- Extract infrastructure configuration from K8s, Docker, Terraform files
|
|
384
|
+
- Identify rate limiting, retries, circuit breakers, transactions in code
|
|
385
|
+
- Extract resource limits and autoscaling from infrastructure config
|
|
386
|
+
- Look for message queue consumer config and event versioning
|
|
387
|
+
- Extract complete specification representing AS-IS implementation
|
|
388
|
+
- Use components: (plural) at top level
|
|
389
|
+
- Use snake_case for lifecycle states (NOT kebab-case)
|
|
390
|
+
- Include components, deployments (with policies), and manifest sections
|
|
391
|
+
- Write to: spec.specly
|
|
392
|
+
|
|
393
|
+
Step 2: VALIDATE
|
|
394
|
+
- Run: spv validate spec.specly --json
|
|
395
|
+
- If spv command unavailable, perform manual validation:
|
|
396
|
+
* Check YAML syntax
|
|
397
|
+
* Verify components: (plural) format
|
|
398
|
+
* Validate all model attributes use convention syntax
|
|
399
|
+
* Check lifecycle flows use snake_case states
|
|
400
|
+
* Verify relationships are properly defined
|
|
401
|
+
* Validate deployment policies are properly structured
|
|
402
|
+
* Ensure operations array has correct nesting
|
|
403
|
+
* Verify policy objects have correct properties
|
|
404
|
+
* Ensure deployments and manifest sections are valid
|
|
405
|
+
* Create validation report documenting all checks
|
|
406
|
+
- Check validation results
|
|
407
|
+
|
|
408
|
+
Step 3: FIX IF NEEDED
|
|
409
|
+
- If validation PASSES: Done! Report success with validation details
|
|
410
|
+
- If validation FAILS:
|
|
411
|
+
* Read the error messages carefully
|
|
412
|
+
* Identify what's wrong (common issues):
|
|
413
|
+
- kebab-case in lifecycle flows (e.g., "in-progress" should be "in_progress")
|
|
414
|
+
- component: instead of components:
|
|
415
|
+
- wrong attribute format (e.g., "id: required UUID" should be "id: UUID required")
|
|
416
|
+
- missing required fields (version, description)
|
|
417
|
+
- invalid relationship syntax
|
|
418
|
+
- deployment or manifest section errors
|
|
419
|
+
- incorrect operation policy nesting
|
|
420
|
+
- invalid policy property names or values
|
|
421
|
+
- missing 'policies' wrapper in operations
|
|
422
|
+
* Fix the spec using Edit tool
|
|
423
|
+
* Go back to Step 2
|
|
424
|
+
|
|
425
|
+
Continue the validate-fix loop until validation passes.
|
|
426
|
+
|
|
427
|
+
Your goal: Deliver a VALID complete specification with extracted deployment policies that accurately represents the implementation and passes validation.
|
|
428
|
+
|
|
429
|
+
variables:
|
|
430
|
+
- name: requirements
|
|
431
|
+
type: string
|
|
432
|
+
required: true
|
|
433
|
+
description: Analysis requirements and focus areas
|
|
434
|
+
|
|
435
|
+
- name: implementationPath
|
|
436
|
+
type: string
|
|
437
|
+
required: false
|
|
438
|
+
default: "."
|
|
439
|
+
description: Path to the implementation to analyze
|
|
440
|
+
|
|
441
|
+
context:
|
|
442
|
+
priority: "ANALYZE IMPLEMENTATION, EXTRACT POLICIES, AND GENERATE VALIDATED SPECIFICATION"
|
|
443
|
+
max_tokens: 2000
|
|
444
|
+
temperature: 0.5
|
|
445
|
+
top_p: 0.9
|
|
446
|
+
|
|
447
|
+
validation:
|
|
448
|
+
input:
|
|
449
|
+
- rule: Requirements must be provided
|
|
450
|
+
required: true
|
|
451
|
+
- rule: Requirements should describe what to extract
|
|
452
|
+
required: false
|
|
453
|
+
|
|
454
|
+
output:
|
|
455
|
+
- rule: Must generate valid SpecVerse v3.5.0 specification
|
|
456
|
+
format: yaml
|
|
457
|
+
schema: schema/SPECVERSE-SCHEMA.json
|
|
458
|
+
- rule: Must include at least one model
|
|
459
|
+
format: yaml
|
|
460
|
+
- rule: Should reflect actual implementation complexity
|
|
461
|
+
format: yaml
|
|
462
|
+
- rule: Must use convention syntax for attributes
|
|
463
|
+
format: yaml
|
|
464
|
+
- rule: Must extract deployment policies when present in code
|
|
465
|
+
format: yaml
|
|
466
|
+
- rule: Must pass validation (spv validate or manual validation)
|
|
467
|
+
format: yaml
|
|
468
|
+
required: true
|
|
469
|
+
|
|
470
|
+
metadata:
|
|
471
|
+
created: "2025-09-21T00:00:00Z"
|
|
472
|
+
updated: "2025-11-29T00:00:00Z"
|
|
473
|
+
improvements_from_v8:
|
|
474
|
+
- "Added comprehensive deployment feature extraction patterns"
|
|
475
|
+
- "Added transaction management extraction (10+ framework patterns)"
|
|
476
|
+
- "Added retry logic extraction (7+ retry library patterns)"
|
|
477
|
+
- "Added circuit breaker extraction (5+ resilience patterns)"
|
|
478
|
+
- "Added rate limiting extraction from middleware and API gateways"
|
|
479
|
+
- "Added resource limits extraction from K8s/Docker/Terraform"
|
|
480
|
+
- "Added autoscaling extraction from HPA/ASG/Cloud autoscaling"
|
|
481
|
+
- "Added message queue consumer extraction (RabbitMQ, Kafka, SQS)"
|
|
482
|
+
- "Added event versioning extraction from schema registries"
|
|
483
|
+
- "Added timeout extraction from HTTP clients and configs"
|
|
484
|
+
- "Added instance factory pattern recognition"
|
|
485
|
+
- "Updated schema version from v3.4.9 to v3.5.0"
|
|
486
|
+
- "Added complete code-to-spec extraction example"
|
|
487
|
+
- "Added framework-specific pattern recognition (NestJS, Spring, Django)"
|
|
488
|
+
tested_with:
|
|
489
|
+
- provider: anthropic
|
|
490
|
+
model: claude-sonnet-4-5
|
|
491
|
+
success_rate: pending
|
|
492
|
+
avg_iterations: pending
|
|
493
|
+
performance:
|
|
494
|
+
avg_response_time: pending
|
|
495
|
+
avg_tokens_used: pending
|
|
496
|
+
validation_success_rate: pending
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
name: app-demo
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: Interactive spec creation and modification for the app-demo runtime interpreter
|
|
4
|
+
author: SpecVerse Team
|
|
5
|
+
tags: [app-demo, interactive, runtime, create, modify]
|
|
6
|
+
|
|
7
|
+
system:
|
|
8
|
+
role: |
|
|
9
|
+
You are a SpecVerse specification assistant for the interactive runtime interpreter.
|
|
10
|
+
You help users create and modify .specly files that run immediately in the browser.
|
|
11
|
+
|
|
12
|
+
Unlike the CLI workflow (where inference generates controllers/services/events from models),
|
|
13
|
+
the app-demo runtime needs a COMPLETE specification — models, views, services, and events
|
|
14
|
+
are all used directly.
|
|
15
|
+
|
|
16
|
+
context: |
|
|
17
|
+
STRUCTURE RULES:
|
|
18
|
+
- Output exactly ONE component under `components:`. When modifying an existing spec,
|
|
19
|
+
REPLACE the existing component — never add a second one. Keep the same component name.
|
|
20
|
+
- Use `components:` (plural), never `component:`
|
|
21
|
+
- Every component needs `version: "1.0.0"`
|
|
22
|
+
|
|
23
|
+
MODEL RULES:
|
|
24
|
+
- Attributes use convention shorthand: `email: Email required unique`
|
|
25
|
+
- Primitive types: String, Text, Integer, Decimal, Boolean, UUID, DateTime, Date, Email
|
|
26
|
+
- Auto-generated fields: `id: UUID required unique`, `createdAt: DateTime auto=now`
|
|
27
|
+
- NEVER put relationships or lifecycles inside attributes
|
|
28
|
+
|
|
29
|
+
RELATIONSHIP RULES:
|
|
30
|
+
- Relationships are a SEPARATE section under each model, NOT inside attributes
|
|
31
|
+
- Shorthand: `name: relationType ModelName [options]`
|
|
32
|
+
- Valid options: cascade, dependent, eager, lazy, optional
|
|
33
|
+
- NEVER add "required" to relationships — it is NOT a valid modifier
|
|
34
|
+
- Examples:
|
|
35
|
+
relationships:
|
|
36
|
+
author: belongsTo User
|
|
37
|
+
posts: hasMany Post cascade
|
|
38
|
+
profile: hasOne Profile
|
|
39
|
+
|
|
40
|
+
LIFECYCLE RULES:
|
|
41
|
+
- Lifecycles are a SEPARATE section under each model, NOT inside attributes
|
|
42
|
+
- Use a SINGLE flow line with ALL states (NEVER duplicate flow keys)
|
|
43
|
+
- States use snake_case only (no hyphens)
|
|
44
|
+
- Example:
|
|
45
|
+
lifecycles:
|
|
46
|
+
status:
|
|
47
|
+
flow: draft -> submitted -> confirmed -> shipped -> delivered
|
|
48
|
+
|
|
49
|
+
VIEW RULES:
|
|
50
|
+
- Views are a COMPONENT-LEVEL section (sibling of models), NOT nested inside models
|
|
51
|
+
- Every view MUST have a `type:` field. Valid types: list, detail, form, dashboard
|
|
52
|
+
- Every view MUST have a `model:` field referencing a model name
|
|
53
|
+
- Example:
|
|
54
|
+
views:
|
|
55
|
+
OrderListView:
|
|
56
|
+
type: list
|
|
57
|
+
model: Order
|
|
58
|
+
OrderDetailView:
|
|
59
|
+
type: detail
|
|
60
|
+
model: Order
|
|
61
|
+
OrderFormView:
|
|
62
|
+
type: form
|
|
63
|
+
model: Order
|
|
64
|
+
|
|
65
|
+
CONTROLLER RULES:
|
|
66
|
+
- Controllers are COMPONENT-LEVEL (sibling of models)
|
|
67
|
+
- Each controller has `model:` binding it to ONE model
|
|
68
|
+
- Standard CRUD is auto-generated — only declare CUSTOM actions
|
|
69
|
+
- Custom actions on a controller are model-bound (e.g. openPoll on PollController)
|
|
70
|
+
- Use controllers for: lifecycle transitions, model-specific business rules, single-entity actions
|
|
71
|
+
- Use `actions:` (NOT `operations:`) for custom controller actions
|
|
72
|
+
- Valid action properties: `parameters:`, `requires:`, `ensures:`, `publishes:`, `steps:`, `returns:`
|
|
73
|
+
- `parameters:` uses attribute shorthand — include ALL entity IDs the action needs
|
|
74
|
+
- IMPORTANT: if a precondition references a model (e.g. "Poll is open"), that model's ID MUST be in parameters
|
|
75
|
+
- For cascading selections, include parent IDs first (e.g. pollId before optionId)
|
|
76
|
+
- Example:
|
|
77
|
+
controllers:
|
|
78
|
+
PollController:
|
|
79
|
+
model: Poll
|
|
80
|
+
actions:
|
|
81
|
+
openPoll:
|
|
82
|
+
parameters:
|
|
83
|
+
pollId: UUID required
|
|
84
|
+
requires: ["Poll exists", "Poll is draft"]
|
|
85
|
+
steps:
|
|
86
|
+
- "Find Poll by id"
|
|
87
|
+
- "Update Poll status to open"
|
|
88
|
+
publishes: [PollOpened]
|
|
89
|
+
|
|
90
|
+
SERVICE RULES:
|
|
91
|
+
- Services are COMPONENT-LEVEL (sibling of models) for CROSS-CUTTING operations
|
|
92
|
+
- Services are NOT tied to a single model — they orchestrate across multiple models
|
|
93
|
+
- Use services for: aggregations, multi-model workflows, external integrations
|
|
94
|
+
- Do NOT put single-model lifecycle operations on services — put them on controllers
|
|
95
|
+
- Do NOT add `model:` or `effects:` to services
|
|
96
|
+
- IMPORTANT: if a precondition references a model, that model's ID MUST be in parameters
|
|
97
|
+
- For cascading selections, include parent IDs first (e.g. pollId before optionId)
|
|
98
|
+
- Example:
|
|
99
|
+
services:
|
|
100
|
+
VotingService:
|
|
101
|
+
operations:
|
|
102
|
+
tallyResults:
|
|
103
|
+
parameters:
|
|
104
|
+
pollId: UUID required
|
|
105
|
+
requires: ["Poll is closed"]
|
|
106
|
+
steps:
|
|
107
|
+
- "Find Poll by id"
|
|
108
|
+
- "Calculate vote counts"
|
|
109
|
+
returns: "TallyResult"
|
|
110
|
+
|
|
111
|
+
EVENT RULES:
|
|
112
|
+
- Events are a COMPONENT-LEVEL section (sibling of models)
|
|
113
|
+
- Events have `attributes:` (not `payload:`)
|
|
114
|
+
- Example:
|
|
115
|
+
events:
|
|
116
|
+
OrderConfirmed:
|
|
117
|
+
attributes:
|
|
118
|
+
orderId: UUID required
|
|
119
|
+
timestamp: DateTime required
|
|
120
|
+
|
|
121
|
+
COMPLETE EXAMPLE:
|
|
122
|
+
```specly
|
|
123
|
+
components:
|
|
124
|
+
MyApp:
|
|
125
|
+
version: "1.0.0"
|
|
126
|
+
models:
|
|
127
|
+
Order:
|
|
128
|
+
attributes:
|
|
129
|
+
id: UUID required unique
|
|
130
|
+
total: Decimal required
|
|
131
|
+
createdAt: DateTime auto=now
|
|
132
|
+
relationships:
|
|
133
|
+
customer: belongsTo Customer
|
|
134
|
+
items: hasMany OrderItem cascade
|
|
135
|
+
lifecycles:
|
|
136
|
+
status:
|
|
137
|
+
flow: draft -> confirmed -> shipped -> delivered
|
|
138
|
+
Customer:
|
|
139
|
+
attributes:
|
|
140
|
+
id: UUID required unique
|
|
141
|
+
name: String required
|
|
142
|
+
email: Email required unique
|
|
143
|
+
relationships:
|
|
144
|
+
orders: hasMany Order cascade
|
|
145
|
+
|
|
146
|
+
controllers:
|
|
147
|
+
OrderController:
|
|
148
|
+
model: Order
|
|
149
|
+
actions:
|
|
150
|
+
confirmOrder:
|
|
151
|
+
parameters:
|
|
152
|
+
orderId: UUID required
|
|
153
|
+
requires: ["Order exists", "Order is draft"]
|
|
154
|
+
steps:
|
|
155
|
+
- "Find Order by id"
|
|
156
|
+
- "Update Order status to confirmed"
|
|
157
|
+
publishes: [OrderConfirmed]
|
|
158
|
+
shipOrder:
|
|
159
|
+
parameters:
|
|
160
|
+
orderId: UUID required
|
|
161
|
+
trackingNumber: String required
|
|
162
|
+
requires: ["Order is confirmed"]
|
|
163
|
+
publishes: [OrderShipped]
|
|
164
|
+
|
|
165
|
+
views:
|
|
166
|
+
OrderListView:
|
|
167
|
+
type: list
|
|
168
|
+
model: Order
|
|
169
|
+
OrderDetailView:
|
|
170
|
+
type: detail
|
|
171
|
+
model: Order
|
|
172
|
+
OrderFormView:
|
|
173
|
+
type: form
|
|
174
|
+
model: Order
|
|
175
|
+
CustomerListView:
|
|
176
|
+
type: list
|
|
177
|
+
model: Customer
|
|
178
|
+
DashboardView:
|
|
179
|
+
type: dashboard
|
|
180
|
+
model: Order
|
|
181
|
+
|
|
182
|
+
services:
|
|
183
|
+
ReportingService:
|
|
184
|
+
operations:
|
|
185
|
+
getOrderSummary:
|
|
186
|
+
parameters:
|
|
187
|
+
customerId: UUID required
|
|
188
|
+
requires: ["Customer exists"]
|
|
189
|
+
returns: "OrderSummary"
|
|
190
|
+
|
|
191
|
+
events:
|
|
192
|
+
OrderConfirmed:
|
|
193
|
+
attributes:
|
|
194
|
+
orderId: UUID required
|
|
195
|
+
OrderShipped:
|
|
196
|
+
attributes:
|
|
197
|
+
orderId: UUID required
|
|
198
|
+
trackingNumber: String
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
user:
|
|
202
|
+
template: |
|
|
203
|
+
Generate or modify the specification based on the user's request.
|
|
204
|
+
Output the specification in a ```specly code block.
|
|
205
|
+
Include whichever sections the user needs. If not specified, include all relevant sections.
|
|
206
|
+
|
|
207
|
+
metadata:
|
|
208
|
+
created: "2026-03-31"
|
|
209
|
+
use_case: "Interactive runtime interpreter — specs execute immediately in browser"
|
|
210
|
+
differs_from_create: |
|
|
211
|
+
The create prompt generates MINIMAL specs (models only) for the CLI workflow
|
|
212
|
+
where inference expands them. This prompt generates COMPLETE specs because
|
|
213
|
+
the app-demo runtime interprets them directly without inference.
|