@specverse/engine-realize 3.5.3
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/templates/README.md +559 -0
- package/assets/templates/TEMPLATE-ENHANCEMENTS-V33.md +462 -0
- package/assets/templates/backend-only/CLAUDE.md +73 -0
- package/assets/templates/backend-only/README.md +197 -0
- package/assets/templates/backend-only/deployments/README.md +149 -0
- package/assets/templates/backend-only/deployments/development.specly +53 -0
- package/assets/templates/backend-only/deployments/production.specly +87 -0
- package/assets/templates/backend-only/docs/README.md +50 -0
- package/assets/templates/backend-only/docs/api/README.md +7 -0
- package/assets/templates/backend-only/docs/diagrams/README.md +85 -0
- package/assets/templates/backend-only/docs/example-documentation-template.md +269 -0
- package/assets/templates/backend-only/docs/guides/README.md +15 -0
- package/assets/templates/backend-only/dot.env.example +18 -0
- package/assets/templates/backend-only/generated/README.md +56 -0
- package/assets/templates/backend-only/generated/code/integration-test.template.js +320 -0
- package/assets/templates/backend-only/generated/code/package.json.template +34 -0
- package/assets/templates/backend-only/generated/docs/README.md +49 -0
- package/assets/templates/backend-only/gitignore +54 -0
- package/assets/templates/backend-only/manifests/README.md +72 -0
- package/assets/templates/backend-only/manifests/docker-compose.specly +91 -0
- package/assets/templates/backend-only/manifests/implementation.yaml +100 -0
- package/assets/templates/backend-only/manifests/kubernetes.specly +140 -0
- package/assets/templates/backend-only/package.json +59 -0
- package/assets/templates/backend-only/scripts/test-all.sh +160 -0
- package/assets/templates/backend-only/scripts/test-generated-code.sh +165 -0
- package/assets/templates/backend-only/specs/main.specly +67 -0
- package/assets/templates/default/CLAUDE.md +141 -0
- package/assets/templates/default/README.md +404 -0
- package/assets/templates/default/deployments/README.md +149 -0
- package/assets/templates/default/deployments/development.specly +53 -0
- package/assets/templates/default/deployments/production.specly +87 -0
- package/assets/templates/default/docs/README.md +50 -0
- package/assets/templates/default/docs/api/README.md +7 -0
- package/assets/templates/default/docs/diagrams/README.md +85 -0
- package/assets/templates/default/docs/example-documentation-template.md +269 -0
- package/assets/templates/default/docs/guides/README.md +15 -0
- package/assets/templates/default/dot.env.example +18 -0
- package/assets/templates/default/generated/README.md +56 -0
- package/assets/templates/default/generated/code/integration-test.template.js +320 -0
- package/assets/templates/default/generated/code/package.json.template +34 -0
- package/assets/templates/default/generated/docs/README.md +49 -0
- package/assets/templates/default/gitignore +54 -0
- package/assets/templates/default/manifests/README.md +72 -0
- package/assets/templates/default/manifests/docker-compose.specly +91 -0
- package/assets/templates/default/manifests/implementation.yaml +176 -0
- package/assets/templates/default/manifests/kubernetes.specly +140 -0
- package/assets/templates/default/package.json +61 -0
- package/assets/templates/default/scripts/test-all.sh +160 -0
- package/assets/templates/default/scripts/test-generated-code.sh +165 -0
- package/assets/templates/default/specs/main.specly +67 -0
- package/assets/templates/frontend-only/CLAUDE.md +75 -0
- package/assets/templates/frontend-only/README.md +231 -0
- package/assets/templates/frontend-only/deployments/README.md +149 -0
- package/assets/templates/frontend-only/deployments/development.specly +53 -0
- package/assets/templates/frontend-only/deployments/production.specly +87 -0
- package/assets/templates/frontend-only/docs/README.md +50 -0
- package/assets/templates/frontend-only/docs/api/README.md +7 -0
- package/assets/templates/frontend-only/docs/diagrams/README.md +85 -0
- package/assets/templates/frontend-only/docs/example-documentation-template.md +269 -0
- package/assets/templates/frontend-only/docs/guides/README.md +15 -0
- package/assets/templates/frontend-only/dot.env.example +18 -0
- package/assets/templates/frontend-only/generated/README.md +56 -0
- package/assets/templates/frontend-only/generated/code/integration-test.template.js +320 -0
- package/assets/templates/frontend-only/generated/code/package.json.template +34 -0
- package/assets/templates/frontend-only/generated/docs/README.md +49 -0
- package/assets/templates/frontend-only/gitignore +54 -0
- package/assets/templates/frontend-only/manifests/README.md +72 -0
- package/assets/templates/frontend-only/manifests/docker-compose.specly +91 -0
- package/assets/templates/frontend-only/manifests/implementation.yaml +58 -0
- package/assets/templates/frontend-only/manifests/kubernetes.specly +140 -0
- package/assets/templates/frontend-only/package.json +59 -0
- package/assets/templates/frontend-only/scripts/test-all.sh +160 -0
- package/assets/templates/frontend-only/scripts/test-generated-code.sh +165 -0
- package/assets/templates/frontend-only/specs/main.specly +57 -0
- package/assets/templates/full-stack/AI-GUIDE.md +60 -0
- package/assets/templates/full-stack/CLAUDE.md +141 -0
- package/assets/templates/full-stack/README.md +382 -0
- package/assets/templates/full-stack/archive/AI-GUIDE-legacy.md +392 -0
- package/assets/templates/full-stack/deployments/README.md +149 -0
- package/assets/templates/full-stack/deployments/development.specly +53 -0
- package/assets/templates/full-stack/deployments/production.specly +87 -0
- package/assets/templates/full-stack/docs/README.md +51 -0
- package/assets/templates/full-stack/docs/api/README.md +7 -0
- package/assets/templates/full-stack/docs/diagrams/README.md +85 -0
- package/assets/templates/full-stack/docs/example-documentation-template.md +269 -0
- package/assets/templates/full-stack/docs/guides/README.md +15 -0
- package/assets/templates/full-stack/generated/README.md +56 -0
- package/assets/templates/full-stack/generated/code/integration-test.template.js +320 -0
- package/assets/templates/full-stack/generated/code/package.json.template +34 -0
- package/assets/templates/full-stack/generated/docs/README.md +49 -0
- package/assets/templates/full-stack/gitignore +54 -0
- package/assets/templates/full-stack/manifests/README.md +72 -0
- package/assets/templates/full-stack/manifests/docker-compose.specly +91 -0
- package/assets/templates/full-stack/manifests/implementation.yaml +155 -0
- package/assets/templates/full-stack/manifests/kubernetes.specly +140 -0
- package/assets/templates/full-stack/package.json +45 -0
- package/assets/templates/full-stack/scripts/test-all.sh +160 -0
- package/assets/templates/full-stack/scripts/test-generated-code.sh +165 -0
- package/assets/templates/full-stack/specs/example-v33.specly +297 -0
- package/assets/templates/full-stack/specs/main-simple.specly +73 -0
- package/assets/templates/full-stack/specs/main.specly +408 -0
- package/dist/engines/code-generator.d.ts +86 -0
- package/dist/engines/code-generator.d.ts.map +1 -0
- package/dist/engines/code-generator.js +159 -0
- package/dist/engines/code-generator.js.map +1 -0
- package/dist/engines/engine-registry.d.ts +94 -0
- package/dist/engines/engine-registry.d.ts.map +1 -0
- package/dist/engines/engine-registry.js +163 -0
- package/dist/engines/engine-registry.js.map +1 -0
- package/dist/engines/index.d.ts +10 -0
- package/dist/engines/index.d.ts.map +1 -0
- package/dist/engines/index.js +12 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/typescript-engine.d.ts +74 -0
- package/dist/engines/typescript-engine.d.ts.map +1 -0
- package/dist/engines/typescript-engine.js +288 -0
- package/dist/engines/typescript-engine.js.map +1 -0
- package/dist/generators/index.d.ts +11 -0
- package/dist/generators/index.d.ts.map +1 -0
- package/dist/generators/index.js +11 -0
- package/dist/generators/index.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +434 -0
- package/dist/index.js.map +1 -0
- package/dist/library/index.d.ts +12 -0
- package/dist/library/index.d.ts.map +1 -0
- package/dist/library/index.js +15 -0
- package/dist/library/index.js.map +1 -0
- package/dist/library/library.d.ts +132 -0
- package/dist/library/library.d.ts.map +1 -0
- package/dist/library/library.js +343 -0
- package/dist/library/library.js.map +1 -0
- package/dist/library/loader.d.ts +73 -0
- package/dist/library/loader.d.ts.map +1 -0
- package/dist/library/loader.js +150 -0
- package/dist/library/loader.js.map +1 -0
- package/dist/library/resolver.d.ts +104 -0
- package/dist/library/resolver.d.ts.map +1 -0
- package/dist/library/resolver.js +299 -0
- package/dist/library/resolver.js.map +1 -0
- package/dist/library/validator.d.ts +65 -0
- package/dist/library/validator.d.ts.map +1 -0
- package/dist/library/validator.js +203 -0
- package/dist/library/validator.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/instance-factory.d.ts +289 -0
- package/dist/types/instance-factory.d.ts.map +1 -0
- package/dist/types/instance-factory.js +8 -0
- package/dist/types/instance-factory.js.map +1 -0
- package/dist/types/unified-mappings.d.ts +163 -0
- package/dist/types/unified-mappings.d.ts.map +1 -0
- package/dist/types/unified-mappings.js +110 -0
- package/dist/types/unified-mappings.js.map +1 -0
- package/dist/utils/ai-spec-loader.d.ts +77 -0
- package/dist/utils/ai-spec-loader.d.ts.map +1 -0
- package/dist/utils/ai-spec-loader.js +138 -0
- package/dist/utils/ai-spec-loader.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/manifest-loader.d.ts +107 -0
- package/dist/utils/manifest-loader.d.ts.map +1 -0
- package/dist/utils/manifest-loader.js +168 -0
- package/dist/utils/manifest-loader.js.map +1 -0
- package/dist/utils/mapping-migration.d.ts +53 -0
- package/dist/utils/mapping-migration.d.ts.map +1 -0
- package/dist/utils/mapping-migration.js +194 -0
- package/dist/utils/mapping-migration.js.map +1 -0
- package/libs/instance-factories/CURVED-INTERFACE.md +278 -0
- package/libs/instance-factories/README.md +433 -0
- package/libs/instance-factories/applications/generic-app.yaml +52 -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 +80 -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 +85 -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 +54 -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/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/commander-js.yaml +55 -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 +145 -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 +992 -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/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/docker-k8s.yaml +61 -0
- package/libs/instance-factories/infrastructure/templates/docker-k8s/infrastructure-generator.ts +46 -0
- package/libs/instance-factories/orms/prisma.yaml +89 -0
- package/libs/instance-factories/orms/templates/prisma/schema-generator.ts +563 -0
- package/libs/instance-factories/orms/templates/prisma/services-generator.ts +408 -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/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/prisma-services.yaml +71 -0
- package/libs/instance-factories/services/templates/prisma/behavior-generator.ts +303 -0
- package/libs/instance-factories/services/templates/prisma/controller-generator.ts +532 -0
- package/libs/instance-factories/services/templates/prisma/service-generator.ts +315 -0
- package/libs/instance-factories/shared/path-resolver.ts +111 -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/templates/vitest/tests-generator.ts +51 -0
- package/libs/instance-factories/testing/vitest-tests.yaml +63 -0
- package/libs/instance-factories/tools/templates/mcp/mcp-server-generator.ts +136 -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 +92 -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 +524 -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 +214 -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/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 +391 -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 +54 -0
- package/libs/instance-factories/views/templates/react/hooks-generator.ts +122 -0
- package/libs/instance-factories/views/templates/react/index-css-generator.ts +209 -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 +103 -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 +42 -0
- package/schema/SPECVERSE-SCHEMA.json +4274 -0
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
# {{projectName}}
|
|
2
|
+
|
|
3
|
+
A SpecVerse project template with AI-powered inference capabilities.
|
|
4
|
+
|
|
5
|
+
## Template Variables
|
|
6
|
+
|
|
7
|
+
This template uses the following variables that will be replaced during project initialization:
|
|
8
|
+
|
|
9
|
+
- `{{projectName}}` - Full project name (e.g., "My Project")
|
|
10
|
+
- `{{componentName}}` - Component name (e.g., "my-component")
|
|
11
|
+
- `{{projectNameKebab}}` - Kebab-case project name (e.g., "my-project")
|
|
12
|
+
- `{{DB_USER}}` - Database username (defaults to system user)
|
|
13
|
+
- `{{DB_PASSWORD}}` - Database password
|
|
14
|
+
|
|
15
|
+
**Default Database Naming:** The database is automatically named `spv_{{projectNameKebab}}_dev` for development environments (prefixed with `spv_` to namespace SpecVerse databases).
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
The typical workflow after running `specverse init`:
|
|
20
|
+
|
|
21
|
+
1. **Generate all code** - `npm run genAll` (generates code + installs dependencies)
|
|
22
|
+
2. **Build the project** - `npm run app:build` (compiles TypeScript)
|
|
23
|
+
3. **Run tests** - `npm run app:test` (runs generated test suite)
|
|
24
|
+
4. **Start the application** - `npm run app:start` (production) or `npm run app:dev` (development)
|
|
25
|
+
|
|
26
|
+
### Detailed Steps
|
|
27
|
+
|
|
28
|
+
1. **Customize the specification** - Edit `specs/main.specly` to define your domain models
|
|
29
|
+
2. **Generate complete code** - Run `npm run genAll` to generate full-stack application
|
|
30
|
+
3. **Database is auto-created** - Database `<project>_dev` and `.env` file are created automatically
|
|
31
|
+
4. **Build and test** - Run `npm run app:build` then `npm run app:test`
|
|
32
|
+
5. **Start developing** - Run `npm run app:dev` to start the development server
|
|
33
|
+
|
|
34
|
+
## Template Structure
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
{{projectName}}/
|
|
38
|
+
├── specs/ # SpecVerse specifications
|
|
39
|
+
│ └── main.specly # Main specification (start here)
|
|
40
|
+
├── deployments/ # Deployment specifications
|
|
41
|
+
│ ├── README.md # Deployment guidance and patterns
|
|
42
|
+
│ ├── development.specly # Development deployment
|
|
43
|
+
│ └── production.specly # Production deployment
|
|
44
|
+
├── manifests/ # Implementation manifests
|
|
45
|
+
│ ├── README.md # Manifest documentation and guidance
|
|
46
|
+
│ ├── docker-compose.specly # Docker Compose implementation
|
|
47
|
+
│ └── kubernetes.specly # Kubernetes implementation
|
|
48
|
+
├── docs/ # Project documentation
|
|
49
|
+
│ ├── diagrams/ # Generated Mermaid diagrams
|
|
50
|
+
│ │ └── README.md # Diagram types and usage
|
|
51
|
+
│ ├── api/ # Generated API documentation
|
|
52
|
+
│ │ └── README.md # API documentation guide
|
|
53
|
+
│ ├── guides/ # Project-specific guides
|
|
54
|
+
│ │ └── README.md # Guide templates
|
|
55
|
+
│ └── example-documentation-template.md
|
|
56
|
+
├── generated/ # Generated code and artifacts
|
|
57
|
+
│ ├── docs/ # Generated documentation
|
|
58
|
+
│ └── README.md # Generated artifacts guide
|
|
59
|
+
├── scripts/ # Build and test scripts
|
|
60
|
+
│ └── test-all.sh # Test runner
|
|
61
|
+
├── CLAUDE.md # AI development guide
|
|
62
|
+
├── env.example # Environment configuration template
|
|
63
|
+
├── package.json # npm scripts and metadata
|
|
64
|
+
└── .gitignore # Git ignore patterns
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Template Customization
|
|
68
|
+
|
|
69
|
+
### Basic Item Model
|
|
70
|
+
The template includes a generic `Item` model that you should customize for your domain:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
# Edit specs/main.specly to replace "Item" with your domain concept
|
|
74
|
+
models:
|
|
75
|
+
Item: # <- Change this to your domain entity (User, Product, Order, etc.)
|
|
76
|
+
description: "Basic item in the system - customize for your domain"
|
|
77
|
+
attributes:
|
|
78
|
+
id: UUID required unique auto=uuid4
|
|
79
|
+
name: String required
|
|
80
|
+
description: String optional
|
|
81
|
+
# Add your domain-specific attributes here
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Deployment Options
|
|
85
|
+
|
|
86
|
+
You can define deployments either in the main specification or in separate deployment files:
|
|
87
|
+
|
|
88
|
+
#### Option 1: Inline Deployments (Simple)
|
|
89
|
+
Add deployment sections directly in `specs/main.specly`:
|
|
90
|
+
|
|
91
|
+
- **Personal/Demo**: SQLite, local auth, single instance
|
|
92
|
+
- **Business**: PostgreSQL, OAuth, 2-3 instances with caching
|
|
93
|
+
- **Enterprise**: Multi-tenant, compliance, 5+ instances with monitoring
|
|
94
|
+
|
|
95
|
+
#### Option 2: Separate Deployment Files (Recommended for Complex Projects)
|
|
96
|
+
Create dedicated deployment specifications in the `deployments/` directory:
|
|
97
|
+
|
|
98
|
+
1. **Rename examples**: `development.specly.example` → `development.specly`
|
|
99
|
+
2. **Customize instances**: Modify controllers, storage, security for your needs
|
|
100
|
+
3. **Reference library patterns**: Use patterns from `libs/deployments/`
|
|
101
|
+
4. **Generate diagrams**: `npm run generate:diagram:deployment`
|
|
102
|
+
|
|
103
|
+
## Development Commands
|
|
104
|
+
|
|
105
|
+
### Essential Workflow
|
|
106
|
+
- `npm run validate` - Validate your specification
|
|
107
|
+
- `npm run infer` - Generate complete architecture with AI
|
|
108
|
+
- `npm run generate:diagrams` - Create visual diagrams
|
|
109
|
+
|
|
110
|
+
### AI-Powered Generation
|
|
111
|
+
- `npm run infer` - Generate complete system architecture from minimal spec
|
|
112
|
+
- `npm run infer:minimal` - Generate enhanced but still minimal specification
|
|
113
|
+
- `npm run infer:deployment` - Generate complete architecture with deployment configuration
|
|
114
|
+
- `npm run infer:deployment:prod` - Generate production deployment configuration
|
|
115
|
+
- `npm run generate:diagrams` - Create all visual diagrams (ER, sequence, architecture, lifecycle, deployment)
|
|
116
|
+
- `npm run generate:docs` - Generate markdown documentation
|
|
117
|
+
- `npm run generate:complete` - Full generation pipeline (infer + diagrams + docs)
|
|
118
|
+
|
|
119
|
+
### Diagram Generation by Type
|
|
120
|
+
- `npm run generate:diagram:er` - Entity-Relationship diagram
|
|
121
|
+
- `npm run generate:diagram:event-flow` - Event-flow-layered architecture (topologically sorted)
|
|
122
|
+
- `npm run generate:diagram:lifecycle` - State machine lifecycles
|
|
123
|
+
- `npm run generate:diagram:deployment` - Deployment topology
|
|
124
|
+
- `npm run generate:diagram:architecture` - Model architecture overview
|
|
125
|
+
|
|
126
|
+
#### Programmatic Diagram API
|
|
127
|
+
SpecVerse diagrams can be generated programmatically:
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { UnifiedDiagramGenerator, EventFlowPlugin } from '@specverse/lang/diagram-engine';
|
|
131
|
+
import { SpecVerseParser } from '@specverse/lang';
|
|
132
|
+
|
|
133
|
+
const parser = new SpecVerseParser(schema);
|
|
134
|
+
const parseResult = parser.parseFile('specs/main.specly');
|
|
135
|
+
|
|
136
|
+
const generator = new UnifiedDiagramGenerator({
|
|
137
|
+
plugins: [new EventFlowPlugin()],
|
|
138
|
+
theme: 'default'
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
const mermaid = generator.generate(parseResult.ast, 'event-flow-layered', {
|
|
142
|
+
title: 'Event Flow Architecture'
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
See [example 11-diagrams documentation](https://github.com/SpecVerse/specverse-lang/tree/main/examples/11-diagrams) for complete API reference.
|
|
147
|
+
|
|
148
|
+
### Code Generation
|
|
149
|
+
|
|
150
|
+
SpecVerse includes powerful code generators that create production-ready implementations using the **Implementation Types System**.
|
|
151
|
+
|
|
152
|
+
#### Quick Start
|
|
153
|
+
|
|
154
|
+
1. **Configure using Implementation Types** - Edit `manifests/implementation.yaml`:
|
|
155
|
+
```yaml
|
|
156
|
+
specVersion: "3.3.0"
|
|
157
|
+
|
|
158
|
+
# Reference implementation types from library
|
|
159
|
+
implementationTypes:
|
|
160
|
+
- name: "FastifyPrismaAPI"
|
|
161
|
+
source: "@specverse/lang/libs/implementation-types/backend/fastify-prisma.yaml"
|
|
162
|
+
version: "1.0.0"
|
|
163
|
+
|
|
164
|
+
# Map capabilities to implementation types
|
|
165
|
+
capabilityMappings:
|
|
166
|
+
- capability: "api.rest"
|
|
167
|
+
implementationType: "FastifyPrismaAPI"
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
2. **Generate code**:
|
|
171
|
+
```bash
|
|
172
|
+
npm run generate:code
|
|
173
|
+
# Output: generated/code/
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
#### v3.3 Code Realization Commands
|
|
177
|
+
|
|
178
|
+
- `npm run realize:all` - Generate **complete runnable project** (ORM + services + routes + scaffolding + main.ts) ✨ **RECOMMENDED**
|
|
179
|
+
- `npm run realize:orm` - Generate ORM schemas only (Prisma schema)
|
|
180
|
+
- `npm run realize:services` - Generate service layer only
|
|
181
|
+
- `npm run realize:routes` - Generate route handlers only
|
|
182
|
+
|
|
183
|
+
#### What Gets Generated (v3.3 Complete Project) ✨
|
|
184
|
+
|
|
185
|
+
**Project Scaffolding** (NEW in v3.3):
|
|
186
|
+
- `package.json` - Aggregated dependencies from all implementation types
|
|
187
|
+
- `tsconfig.json` - Merged TypeScript configuration
|
|
188
|
+
- `.env.example` - Environment variables template (grouped by category)
|
|
189
|
+
- `.env` - Local environment configuration
|
|
190
|
+
- `.gitignore` - Technology-adaptive ignore patterns
|
|
191
|
+
- `README.md` - Auto-generated project documentation
|
|
192
|
+
|
|
193
|
+
**Application Entry Point** (NEW in v3.3):
|
|
194
|
+
- `src/main.ts` - Framework-adaptive server initialization (Fastify/Express/NestJS)
|
|
195
|
+
- Auto-registers all routes
|
|
196
|
+
- Configures CORS, logging, error handling
|
|
197
|
+
- Graceful shutdown handling
|
|
198
|
+
|
|
199
|
+
**ORM Schemas** (`generated/code/prisma/`):
|
|
200
|
+
- Metadata primitives (id, audit, softDelete, status, version)
|
|
201
|
+
- Model attributes with proper types
|
|
202
|
+
- Relationships and foreign keys
|
|
203
|
+
- Database-specific annotations
|
|
204
|
+
|
|
205
|
+
**Service Layer** (`generated/code/src/services/`):
|
|
206
|
+
- Unified `validate(data, context)` method for all operations
|
|
207
|
+
- CURED operations (Create, Retrieve, Update/Evolve, Destroy)
|
|
208
|
+
- Optimistic locking with version checking
|
|
209
|
+
- Soft delete filtering
|
|
210
|
+
- Event publishing integration
|
|
211
|
+
|
|
212
|
+
**Controllers** (`generated/code/src/controllers/`):
|
|
213
|
+
- Business logic layer (CURED operations)
|
|
214
|
+
- Data transformation and validation
|
|
215
|
+
|
|
216
|
+
**Route Handlers** (`generated/code/src/routes/`):
|
|
217
|
+
- HTTP endpoints for all CURED operations
|
|
218
|
+
- Single `/validate` endpoint (accepts operation context)
|
|
219
|
+
- Request/response handling
|
|
220
|
+
- Error handling
|
|
221
|
+
- Framework-specific patterns
|
|
222
|
+
|
|
223
|
+
#### Running the Generated Application
|
|
224
|
+
|
|
225
|
+
After running `npm run realize:all`:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
cd generated/code
|
|
229
|
+
npm install
|
|
230
|
+
cp .env.example .env
|
|
231
|
+
# Edit .env with your database connection string
|
|
232
|
+
npm run db:generate
|
|
233
|
+
npm run db:push # or npm run db:migrate for migrations
|
|
234
|
+
npm run dev # Start development server
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Your application is now running with:
|
|
238
|
+
- ✅ Complete project structure
|
|
239
|
+
- ✅ All dependencies installed
|
|
240
|
+
- ✅ TypeScript configured
|
|
241
|
+
- ✅ Database schema synchronized
|
|
242
|
+
- ✅ REST API endpoints ready
|
|
243
|
+
- ✅ Auto-generated documentation
|
|
244
|
+
|
|
245
|
+
#### Metadata Primitives
|
|
246
|
+
|
|
247
|
+
Add metadata to your models for automatic code generation:
|
|
248
|
+
|
|
249
|
+
```yaml
|
|
250
|
+
models:
|
|
251
|
+
Task:
|
|
252
|
+
metadata:
|
|
253
|
+
id: uuid # ID strategy: uuid | integer | auto
|
|
254
|
+
audit: true # Adds createdAt, updatedAt, createdBy, updatedBy
|
|
255
|
+
softDelete: deletedAt # Soft delete: deletedAt | isDeleted
|
|
256
|
+
status: true # Lifecycle status field
|
|
257
|
+
version: true # Optimistic locking
|
|
258
|
+
attributes:
|
|
259
|
+
title: String required
|
|
260
|
+
# ... your attributes
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Generated Features:**
|
|
264
|
+
- ✅ **Unified Validation** - Single `validate()` method for all operations
|
|
265
|
+
- ✅ **Optimistic Locking** - Version checking prevents concurrent updates
|
|
266
|
+
- ✅ **Soft Delete** - Automatic filtering of deleted records
|
|
267
|
+
- ✅ **Audit Trail** - Automatic timestamps and user tracking
|
|
268
|
+
- ✅ **Event Publishing** - Auto-generated events for all operations
|
|
269
|
+
|
|
270
|
+
**Tech Stack Support:**
|
|
271
|
+
- **ORMs**: Prisma, TypeORM
|
|
272
|
+
- **Frameworks**: Fastify, Express, NestJS
|
|
273
|
+
- **Databases**: PostgreSQL, MySQL, SQLite, MongoDB
|
|
274
|
+
|
|
275
|
+
See `specs/main.specly` for a complete example with all features.
|
|
276
|
+
|
|
277
|
+
### Development Tools
|
|
278
|
+
- `npm run format` - Format specification files
|
|
279
|
+
- `npm run process` - Convert to expanded YAML format
|
|
280
|
+
- `npm run build` - Full build (validate + infer)
|
|
281
|
+
- `npm test` - Run all tests including code generators
|
|
282
|
+
|
|
283
|
+
## Prerequisites
|
|
284
|
+
|
|
285
|
+
You can install SpecVerse tools globally or use them locally:
|
|
286
|
+
|
|
287
|
+
1. **Global installation** (recommended):
|
|
288
|
+
```bash
|
|
289
|
+
# Install SpecVerse CLI globally
|
|
290
|
+
npm install -g @specverse/lang
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
2. **Local development** (for contributing to SpecVerse):
|
|
294
|
+
```bash
|
|
295
|
+
# Clone and build the SpecVerse tools
|
|
296
|
+
git clone https://github.com/SpecVerse/specverse-lang.git
|
|
297
|
+
cd specverse-lang
|
|
298
|
+
npm install
|
|
299
|
+
npm run build
|
|
300
|
+
|
|
301
|
+
# Make tools available globally (optional)
|
|
302
|
+
npm link
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
3. **For this project** - No dependencies to install:
|
|
306
|
+
```bash
|
|
307
|
+
# The npm scripts use the globally installed specverse command
|
|
308
|
+
# If you're using local development, ensure you've run 'npm link' in specverse-lang
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
## Getting Started
|
|
312
|
+
|
|
313
|
+
1. Validate the specification:
|
|
314
|
+
```bash
|
|
315
|
+
npm run validate # Validate main.specly file
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
2. Use AI inference to expand the specification:
|
|
319
|
+
```bash
|
|
320
|
+
npm run infer # Generate complete architecture
|
|
321
|
+
npm run infer:deployment # Generate with deployment configuration
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
3. Generate diagrams and documentation:
|
|
325
|
+
```bash
|
|
326
|
+
npm run generate:diagrams # Create all visual diagrams
|
|
327
|
+
npm run generate:diagram:event-flow # Event-flow architecture
|
|
328
|
+
npm run generate:docs # Generate markdown documentation
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
4. Process to YAML format (if needed):
|
|
332
|
+
```bash
|
|
333
|
+
npm run process # Convert Specly to expanded YAML
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## Specification Format
|
|
337
|
+
|
|
338
|
+
**Specly DSL (main.specly):**
|
|
339
|
+
- Concise, developer-friendly syntax
|
|
340
|
+
- Native SpecVerse format with optimal parsing
|
|
341
|
+
- Convention-based with powerful shorthand
|
|
342
|
+
- Flow syntax for lifecycles
|
|
343
|
+
- Reduced boilerplate (90% less code)
|
|
344
|
+
|
|
345
|
+
**Processed YAML Output:**
|
|
346
|
+
- Generated from Specly using `npm run process`
|
|
347
|
+
- Expanded format with all inferred properties
|
|
348
|
+
- Useful for integration with other tools
|
|
349
|
+
- Complete specification with explicit structure
|
|
350
|
+
|
|
351
|
+
## Deployment Specifications
|
|
352
|
+
|
|
353
|
+
SpecVerse supports logical deployment specifications with capability-based architecture:
|
|
354
|
+
|
|
355
|
+
### Deployment Features
|
|
356
|
+
- **Logical Instances**: Controllers, services, views as scalable instances
|
|
357
|
+
- **Communication Channels**: PubSub, RPC, Queue, Streaming channels
|
|
358
|
+
- **Capability Patterns**: Advertise/use patterns for instance communication
|
|
359
|
+
- **Scaling Configuration**: Define instance counts for different environments
|
|
360
|
+
- **Deployment Diagrams**: Visual representation of deployment architecture
|
|
361
|
+
|
|
362
|
+
### Example Deployment
|
|
363
|
+
```yaml
|
|
364
|
+
deployments:
|
|
365
|
+
production:
|
|
366
|
+
version: "1.0.0"
|
|
367
|
+
environment: production
|
|
368
|
+
instances:
|
|
369
|
+
controllers:
|
|
370
|
+
userController:
|
|
371
|
+
component: "user-management"
|
|
372
|
+
namespace: "user"
|
|
373
|
+
advertises: "*" # All capabilities
|
|
374
|
+
uses: ["database.*", "cache.*"]
|
|
375
|
+
scale: 4
|
|
376
|
+
communications:
|
|
377
|
+
mainBus:
|
|
378
|
+
namespace: "global"
|
|
379
|
+
capabilities: ["user.*", "order.*"]
|
|
380
|
+
type: "pubsub"
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
## Documentation
|
|
384
|
+
|
|
385
|
+
### Project Documentation
|
|
386
|
+
- `docs/README.md` - Documentation guide and structure
|
|
387
|
+
- `docs/example-documentation-template.md` - Template for creating project docs
|
|
388
|
+
|
|
389
|
+
### SpecVerse Language Reference
|
|
390
|
+
For complete language documentation and schema reference:
|
|
391
|
+
- **Schema**: `../schema/SPECVERSE-V3.1-SCHEMA.json` (authoritative specification)
|
|
392
|
+
- **AI Schema**: `../schema/SPECVERSE-V3.1-SCHEMA-AI.yaml` (AI-friendly format)
|
|
393
|
+
- **Guidance**: `../schema/README-AI-GUIDANCE.md` (usage patterns and examples)
|
|
394
|
+
|
|
395
|
+
### SpecVerse Libraries
|
|
396
|
+
This template uses the SpecVerse library system for common types and patterns:
|
|
397
|
+
- **Types**: `../libs/types/` (UUID, DateTime, Money, Status, etc.)
|
|
398
|
+
- **Deployments**: `../libs/deployments/` (monolith, microservices, enterprise patterns)
|
|
399
|
+
- **Manifests**: `../libs/manifests/` (Next.js, PostgreSQL, SQLite implementations)
|
|
400
|
+
|
|
401
|
+
### External Resources
|
|
402
|
+
- [SpecVerse Documentation](https://specverse.org/docs)
|
|
403
|
+
- [Language Repository](https://github.com/SpecVerse/specverse-lang)
|
|
404
|
+
- [@specverse/lang on npm](https://www.npmjs.com/package/@specverse/lang)
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Deployments Directory
|
|
2
|
+
|
|
3
|
+
This directory can be used to organize deployment specifications when you need multiple deployment targets or environment-specific configurations.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
Deployments can be organized by environment, scale, or target platform:
|
|
8
|
+
|
|
9
|
+
1. **Environment-based organization**:
|
|
10
|
+
```
|
|
11
|
+
deployments/
|
|
12
|
+
├── development.specly
|
|
13
|
+
├── staging.specly
|
|
14
|
+
└── production.specly
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
2. **Scale-based organization**:
|
|
18
|
+
```
|
|
19
|
+
deployments/
|
|
20
|
+
├── personal.specly # Single developer, local database
|
|
21
|
+
├── team.specly # Small team, shared database
|
|
22
|
+
├── business.specly # Business scale, clustering
|
|
23
|
+
└── enterprise.specly # Enterprise scale, multi-tenant
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
3. **Platform-based organization**:
|
|
27
|
+
```
|
|
28
|
+
deployments/
|
|
29
|
+
├── local.specly # Local development
|
|
30
|
+
├── cloud.specly # Cloud deployment (AWS, GCP, Azure)
|
|
31
|
+
├── kubernetes.specly # Kubernetes clusters
|
|
32
|
+
└── serverless.specly # Serverless functions
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Deployment Patterns
|
|
36
|
+
|
|
37
|
+
### Based on SpecVerse Library Patterns
|
|
38
|
+
|
|
39
|
+
You can reference deployment patterns from the SpecVerse library system:
|
|
40
|
+
|
|
41
|
+
- **Monolith Pattern**: Single-instance deployment (from `libs/deployments/monolith/`)
|
|
42
|
+
- **Microservices Pattern**: Service-based deployment (from `libs/deployments/microservices/`)
|
|
43
|
+
- **JAMstack Pattern**: Static + API deployment (from `libs/deployments/jamstack/`)
|
|
44
|
+
- **Enterprise Pattern**: Multi-tenant, compliance-ready (from `libs/deployments/enterprise/`)
|
|
45
|
+
|
|
46
|
+
### Example Deployment Structure
|
|
47
|
+
|
|
48
|
+
```yaml
|
|
49
|
+
# deployments/development.specly
|
|
50
|
+
components:
|
|
51
|
+
my-app-dev:
|
|
52
|
+
version: "3.1.0"
|
|
53
|
+
|
|
54
|
+
# Reference library patterns
|
|
55
|
+
import:
|
|
56
|
+
- file: ../../../libs/deployments/monolith/lib/development.yaml
|
|
57
|
+
select: ["development"]
|
|
58
|
+
|
|
59
|
+
deployments:
|
|
60
|
+
development:
|
|
61
|
+
version: "3.1.0"
|
|
62
|
+
environment: "development"
|
|
63
|
+
|
|
64
|
+
# Based on monolith development pattern
|
|
65
|
+
instances:
|
|
66
|
+
controllers:
|
|
67
|
+
appController:
|
|
68
|
+
component: "my-app"
|
|
69
|
+
namespace: "api"
|
|
70
|
+
scale: 1
|
|
71
|
+
advertises: ["api.*"]
|
|
72
|
+
uses: ["database.*"]
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Instance Types
|
|
76
|
+
|
|
77
|
+
SpecVerse v3.3 supports these logical instance types:
|
|
78
|
+
|
|
79
|
+
- **Controllers**: API endpoints, request handlers
|
|
80
|
+
- **Services**: Business logic, background processing
|
|
81
|
+
- **Views**: UI components, frontend applications
|
|
82
|
+
- **Storage**: Databases, caches, file systems
|
|
83
|
+
- **Security**: Authentication, authorization, encryption
|
|
84
|
+
- **Infrastructure**: Load balancers, CDNs, service mesh
|
|
85
|
+
- **Monitoring**: Metrics, logging, alerting, analytics
|
|
86
|
+
- **Communications**: Message queues, event buses, RPC channels
|
|
87
|
+
|
|
88
|
+
## Capability Patterns
|
|
89
|
+
|
|
90
|
+
Use capability patterns to define instance communication:
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
instances:
|
|
94
|
+
controllers:
|
|
95
|
+
apiController:
|
|
96
|
+
advertises: ["api.*", "auth.*"] # What this instance provides
|
|
97
|
+
uses: ["database.*", "cache.*"] # What this instance depends on
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Scaling Configuration
|
|
101
|
+
|
|
102
|
+
Define scaling behavior for different environments:
|
|
103
|
+
|
|
104
|
+
```yaml
|
|
105
|
+
instances:
|
|
106
|
+
controllers:
|
|
107
|
+
webApi:
|
|
108
|
+
scale: 3 # Number of instances
|
|
109
|
+
advertises: ["api.*"]
|
|
110
|
+
uses: ["database.*"]
|
|
111
|
+
config:
|
|
112
|
+
resources:
|
|
113
|
+
memory: "512Mi"
|
|
114
|
+
cpu: "200m"
|
|
115
|
+
healthCheck:
|
|
116
|
+
path: "/health"
|
|
117
|
+
interval: "30s"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Import Examples
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
# In main.specly, reference deployment specifications
|
|
124
|
+
deployments:
|
|
125
|
+
development:
|
|
126
|
+
import:
|
|
127
|
+
- file: deployments/development.specly
|
|
128
|
+
select: ["development"]
|
|
129
|
+
|
|
130
|
+
production:
|
|
131
|
+
import:
|
|
132
|
+
- file: deployments/production.specly
|
|
133
|
+
select: ["production"]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Best Practices
|
|
137
|
+
|
|
138
|
+
1. **Environment Separation**: Keep development and production deployments separate
|
|
139
|
+
2. **Library Usage**: Reference standard patterns from `libs/deployments/`
|
|
140
|
+
3. **Capability Design**: Use clear advertises/uses patterns for dependencies
|
|
141
|
+
4. **Scaling Strategy**: Define appropriate scaling for each environment
|
|
142
|
+
5. **Security Layering**: Include security instances for authentication and authorization
|
|
143
|
+
6. **Monitoring Integration**: Add monitoring instances for production deployments
|
|
144
|
+
|
|
145
|
+
## See Also
|
|
146
|
+
|
|
147
|
+
- **Library Patterns**: `../../libs/deployments/` for standard deployment patterns
|
|
148
|
+
- **Manifests**: `../manifests/` for technology-specific implementation guidance
|
|
149
|
+
- **Main Specification**: `../specs/main.specly` for component definitions
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Development Deployment
|
|
2
|
+
# SpecVerse v3.3 deployment specification for local development
|
|
3
|
+
|
|
4
|
+
deployments:
|
|
5
|
+
development:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
environment: "development"
|
|
8
|
+
description: "Local development deployment with SQLite"
|
|
9
|
+
|
|
10
|
+
# Based on libs/deployments/monolith/development pattern
|
|
11
|
+
instances:
|
|
12
|
+
controllers:
|
|
13
|
+
appController:
|
|
14
|
+
component: "{{componentName}}"
|
|
15
|
+
namespace: "api"
|
|
16
|
+
scale: 1
|
|
17
|
+
advertises: ["api.*"]
|
|
18
|
+
uses: ["database.*", "auth.*"]
|
|
19
|
+
|
|
20
|
+
services:
|
|
21
|
+
appService:
|
|
22
|
+
component: "{{componentName}}"
|
|
23
|
+
namespace: "services"
|
|
24
|
+
scale: 1
|
|
25
|
+
advertises: ["business.*", "validation.*"]
|
|
26
|
+
uses: ["database.*"]
|
|
27
|
+
|
|
28
|
+
storage:
|
|
29
|
+
localDB:
|
|
30
|
+
component: "{{componentName}}"
|
|
31
|
+
namespace: "data"
|
|
32
|
+
type: "relational"
|
|
33
|
+
scale: 1
|
|
34
|
+
advertises: ["persistence.*", "query.*"]
|
|
35
|
+
|
|
36
|
+
security:
|
|
37
|
+
devAuth:
|
|
38
|
+
component: "{{componentName}}"
|
|
39
|
+
namespace: "auth"
|
|
40
|
+
type: "authentication"
|
|
41
|
+
provider: "local"
|
|
42
|
+
scope: "component"
|
|
43
|
+
scale: 1
|
|
44
|
+
advertises: ["auth.*"]
|
|
45
|
+
policies: ["dev-access"]
|
|
46
|
+
encryption: "basic"
|
|
47
|
+
auditLevel: "basic"
|
|
48
|
+
|
|
49
|
+
communications:
|
|
50
|
+
localBus:
|
|
51
|
+
namespace: "local"
|
|
52
|
+
type: "rpc"
|
|
53
|
+
capabilities: ["*"]
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Production Deployment
|
|
2
|
+
# SpecVerse v3.1 deployment specification for production environment
|
|
3
|
+
|
|
4
|
+
deployments:
|
|
5
|
+
production:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
environment: "production"
|
|
8
|
+
description: "Production deployment with PostgreSQL and monitoring"
|
|
9
|
+
|
|
10
|
+
# Based on libs/deployments/monolith/production pattern
|
|
11
|
+
instances:
|
|
12
|
+
controllers:
|
|
13
|
+
apiServer:
|
|
14
|
+
component: "{{componentName}}"
|
|
15
|
+
namespace: "api"
|
|
16
|
+
scale: 3
|
|
17
|
+
advertises: ["api.*"]
|
|
18
|
+
uses: ["database.*", "auth.*", "cache.*"]
|
|
19
|
+
|
|
20
|
+
services:
|
|
21
|
+
businessService:
|
|
22
|
+
component: "{{componentName}}"
|
|
23
|
+
namespace: "services"
|
|
24
|
+
scale: 2
|
|
25
|
+
advertises: ["business.*", "validation.*"]
|
|
26
|
+
uses: ["database.*", "cache.*"]
|
|
27
|
+
|
|
28
|
+
storage:
|
|
29
|
+
mainDB:
|
|
30
|
+
component: "{{componentName}}"
|
|
31
|
+
namespace: "data"
|
|
32
|
+
type: "relational"
|
|
33
|
+
scale: 2
|
|
34
|
+
backup: true
|
|
35
|
+
encryption: true
|
|
36
|
+
advertises: ["persistence.*", "query.*"]
|
|
37
|
+
|
|
38
|
+
cache:
|
|
39
|
+
component: "{{componentName}}"
|
|
40
|
+
namespace: "cache"
|
|
41
|
+
type: "keyvalue"
|
|
42
|
+
scale: 2
|
|
43
|
+
advertises: ["cache.*", "session.*"]
|
|
44
|
+
|
|
45
|
+
security:
|
|
46
|
+
authSystem:
|
|
47
|
+
component: "{{componentName}}"
|
|
48
|
+
namespace: "auth"
|
|
49
|
+
type: "authentication"
|
|
50
|
+
provider: "oauth"
|
|
51
|
+
scope: "global"
|
|
52
|
+
scale: 2
|
|
53
|
+
advertises: ["auth.*", "identity.*"]
|
|
54
|
+
policies: ["session-management", "rate-limiting"]
|
|
55
|
+
encryption: "strong"
|
|
56
|
+
auditLevel: "detailed"
|
|
57
|
+
|
|
58
|
+
monitoring:
|
|
59
|
+
appMetrics:
|
|
60
|
+
component: "{{componentName}}"
|
|
61
|
+
namespace: "monitoring"
|
|
62
|
+
type: "metrics"
|
|
63
|
+
provider: "prometheus"
|
|
64
|
+
scope: "global"
|
|
65
|
+
retention: "medium"
|
|
66
|
+
resolution: "high"
|
|
67
|
+
advertises: ["metrics.*"]
|
|
68
|
+
dashboards: ["overview", "errors", "performance"]
|
|
69
|
+
alerts: ["high-error-rate", "service-down", "high-latency"]
|
|
70
|
+
|
|
71
|
+
infrastructure:
|
|
72
|
+
loadBalancer:
|
|
73
|
+
component: "{{componentName}}"
|
|
74
|
+
namespace: "gateway"
|
|
75
|
+
type: "gateway"
|
|
76
|
+
provider: "nginx"
|
|
77
|
+
tier: "regional"
|
|
78
|
+
redundancy: "basic"
|
|
79
|
+
advertises: ["routing.*", "balancing.*"]
|
|
80
|
+
protocols: ["http", "https"]
|
|
81
|
+
healthChecks: true
|
|
82
|
+
|
|
83
|
+
communications:
|
|
84
|
+
prodBus:
|
|
85
|
+
namespace: "global"
|
|
86
|
+
type: "pubsub"
|
|
87
|
+
capabilities: ["*"]
|