@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
package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/EXTENSION_DEPLOYMENT.md
ADDED
|
@@ -0,0 +1,552 @@
|
|
|
1
|
+
# VSCode Extension Deployment Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Extension deployment provides hybrid capabilities for VSCode users, combining the convenience of embedded resources with the power of local orchestrator integration when available.
|
|
6
|
+
|
|
7
|
+
## Features (Phase 3 Updated)
|
|
8
|
+
|
|
9
|
+
- ✅ **AI API Integration**: All tools powered by @specverse/lang AI API
|
|
10
|
+
- ✅ **Hybrid Mode**: Embedded resources + filesystem fallback
|
|
11
|
+
- ✅ **Orchestrator Detection**: Automatically detects local SpecVerse installation
|
|
12
|
+
- ✅ **VSCode Integration**: Native extension wrapper
|
|
13
|
+
- ✅ **Development Friendly**: Works in both dev and production environments
|
|
14
|
+
- ✅ **Flexible Deployment**: Supports multiple orchestrator configurations
|
|
15
|
+
- ✅ **IDE Native**: Deep integration with VSCode workflows
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Build extension deployment
|
|
21
|
+
npm run build:extension
|
|
22
|
+
|
|
23
|
+
# The extension package is created at:
|
|
24
|
+
# dist/extension/package.json
|
|
25
|
+
# dist/extension/extension-wrapper.js
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Architecture
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
VSCode Extension Environment
|
|
32
|
+
↓
|
|
33
|
+
Extension Wrapper (Orchestrator Detection)
|
|
34
|
+
↓
|
|
35
|
+
┌─ Local Orchestrator Available ─┐ ┌─ No Local Orchestrator ─┐
|
|
36
|
+
│ Full SpecVerse Integration │ │ Embedded Resources Only │
|
|
37
|
+
│ File System Resources │ │ Limited but Functional │
|
|
38
|
+
└─────────────────────────────────┘ └───────────────────────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Directory Structure
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
dist/extension/
|
|
45
|
+
├── extension-wrapper.js # Main VSCode integration
|
|
46
|
+
├── package.json # Extension manifest
|
|
47
|
+
├── config.json # Extension configuration
|
|
48
|
+
├── server/ # MCP server components
|
|
49
|
+
│ └── mcp-server.js # Server runtime
|
|
50
|
+
├── controllers/ # Request handlers
|
|
51
|
+
├── services/ # AI-powered services
|
|
52
|
+
├── resources/ # Essential examples only (~71KB)
|
|
53
|
+
│ └── examples/ # Terminal/chat examples
|
|
54
|
+
└── types/ # TypeScript definitions
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Note**: Schemas, prompts, and library catalogs are now provided through AI tools for better contextual responses.
|
|
58
|
+
|
|
59
|
+
## Configuration
|
|
60
|
+
|
|
61
|
+
**File**: `dist/extension/config.json`
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"mode": "extension",
|
|
66
|
+
"features": {
|
|
67
|
+
"orchestrator": "conditional",
|
|
68
|
+
"fileSystemResources": true,
|
|
69
|
+
"embeddedResources": true,
|
|
70
|
+
"hybridMode": true
|
|
71
|
+
},
|
|
72
|
+
"resourcesPath": "./resources",
|
|
73
|
+
"vscode": {
|
|
74
|
+
"activationEvents": [
|
|
75
|
+
"onLanguage:specverse",
|
|
76
|
+
"workspaceContains:**/*.specly"
|
|
77
|
+
],
|
|
78
|
+
"capabilities": [
|
|
79
|
+
"mcp-server",
|
|
80
|
+
"resource-provider",
|
|
81
|
+
"tool-provider"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Extension Wrapper
|
|
88
|
+
|
|
89
|
+
The `extension-wrapper.js` provides seamless integration with VSCode:
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
/**
|
|
93
|
+
* VSCode Extension Wrapper for SpecVerse MCP Server
|
|
94
|
+
* Provides hybrid capabilities for extension environment
|
|
95
|
+
*/
|
|
96
|
+
|
|
97
|
+
class VSCodeExtensionMCPServer {
|
|
98
|
+
constructor(extensionPath) {
|
|
99
|
+
this.extensionPath = extensionPath;
|
|
100
|
+
this.config = {
|
|
101
|
+
mode: 'extension',
|
|
102
|
+
logging: true,
|
|
103
|
+
resources_path: path.join(extensionPath, 'resources'),
|
|
104
|
+
features: {
|
|
105
|
+
orchestrator: this.detectOrchestrator(),
|
|
106
|
+
fileSystemResources: true,
|
|
107
|
+
embeddedResources: true
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
this.server = new SpecVerseCleanMCPServer(this.config);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
detectOrchestrator() {
|
|
115
|
+
// Check if orchestrator is available in parent SpecVerse installation
|
|
116
|
+
try {
|
|
117
|
+
const orchestratorPath = path.resolve(
|
|
118
|
+
this.extensionPath,
|
|
119
|
+
'../../../src/orchestrator'
|
|
120
|
+
);
|
|
121
|
+
require.resolve(orchestratorPath);
|
|
122
|
+
return true;
|
|
123
|
+
} catch (error) {
|
|
124
|
+
console.log('Orchestrator not detected, using embedded resources only');
|
|
125
|
+
return false;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async start() {
|
|
130
|
+
return this.server.start();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getController() {
|
|
134
|
+
return this.server.getController();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## VSCode Extension Integration
|
|
140
|
+
|
|
141
|
+
### Extension Manifest
|
|
142
|
+
|
|
143
|
+
**File**: `dist/extension/package.json`
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"name": "specverse-mcp-extension",
|
|
148
|
+
"version": "1.0.0",
|
|
149
|
+
"description": "SpecVerse MCP Server for VSCode Extension",
|
|
150
|
+
"main": "extension-wrapper.js",
|
|
151
|
+
"engines": {
|
|
152
|
+
"node": ">=16.0.0",
|
|
153
|
+
"vscode": "^1.80.0"
|
|
154
|
+
},
|
|
155
|
+
"activationEvents": [
|
|
156
|
+
"onLanguage:specverse",
|
|
157
|
+
"workspaceContains:**/*.specly"
|
|
158
|
+
],
|
|
159
|
+
"contributes": {
|
|
160
|
+
"languages": [
|
|
161
|
+
{
|
|
162
|
+
"id": "specverse",
|
|
163
|
+
"aliases": ["SpecVerse", "specverse"],
|
|
164
|
+
"extensions": [".specly"]
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"commands": [
|
|
168
|
+
{
|
|
169
|
+
"command": "specverse.startMCPServer",
|
|
170
|
+
"title": "Start SpecVerse MCP Server"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"command": "specverse.stopMCPServer",
|
|
174
|
+
"title": "Stop SpecVerse MCP Server"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"command": "specverse.getCreationPrompt",
|
|
178
|
+
"title": "Get SpecVerse Creation Prompt"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
},
|
|
182
|
+
"dependencies": {
|
|
183
|
+
"@modelcontextprotocol/sdk": "^1.17.4",
|
|
184
|
+
"@specverse/lang": "file:../../../../",
|
|
185
|
+
"yaml": "^2.8.1",
|
|
186
|
+
"zod": "^3.25.76"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Extension Code Integration
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// In your VSCode extension (extension.ts)
|
|
195
|
+
import * as vscode from 'vscode';
|
|
196
|
+
import { VSCodeExtensionMCPServer } from './extension-wrapper';
|
|
197
|
+
|
|
198
|
+
let mcpServer: VSCodeExtensionMCPServer | undefined;
|
|
199
|
+
|
|
200
|
+
export async function activate(context: vscode.ExtensionContext) {
|
|
201
|
+
// Initialize MCP server
|
|
202
|
+
mcpServer = new VSCodeExtensionMCPServer(context.extensionPath);
|
|
203
|
+
|
|
204
|
+
// Register commands
|
|
205
|
+
const startCommand = vscode.commands.registerCommand(
|
|
206
|
+
'specverse.startMCPServer',
|
|
207
|
+
async () => {
|
|
208
|
+
try {
|
|
209
|
+
await mcpServer?.start();
|
|
210
|
+
vscode.window.showInformationMessage('SpecVerse MCP Server started');
|
|
211
|
+
} catch (error) {
|
|
212
|
+
vscode.window.showErrorMessage(`Failed to start MCP server: ${error}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
);
|
|
216
|
+
|
|
217
|
+
const getCreationPrompt = vscode.commands.registerCommand(
|
|
218
|
+
'specverse.getCreationPrompt',
|
|
219
|
+
async () => {
|
|
220
|
+
const requirements = await vscode.window.showInputBox({
|
|
221
|
+
prompt: 'Describe your application requirements',
|
|
222
|
+
placeHolder: 'e.g., Build a blog with user authentication'
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
if (requirements) {
|
|
226
|
+
try {
|
|
227
|
+
const controller = mcpServer?.getController();
|
|
228
|
+
const result = await controller?.callTool('get_creation_prompt', {
|
|
229
|
+
requirements,
|
|
230
|
+
scale: 'business'
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
// Show result in new document
|
|
234
|
+
const doc = await vscode.workspace.openTextDocument({
|
|
235
|
+
content: result?.content[0]?.text || 'No content',
|
|
236
|
+
language: 'markdown'
|
|
237
|
+
});
|
|
238
|
+
await vscode.window.showTextDocument(doc);
|
|
239
|
+
} catch (error) {
|
|
240
|
+
vscode.window.showErrorMessage(`Error: ${error}`);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
);
|
|
245
|
+
|
|
246
|
+
context.subscriptions.push(startCommand, getCreationPrompt);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export function deactivate() {
|
|
250
|
+
// Cleanup MCP server
|
|
251
|
+
mcpServer = undefined;
|
|
252
|
+
}
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## Orchestrator Detection Logic
|
|
256
|
+
|
|
257
|
+
The extension automatically detects orchestrator availability:
|
|
258
|
+
|
|
259
|
+
### Detection Methods
|
|
260
|
+
|
|
261
|
+
1. **Local Installation Check**:
|
|
262
|
+
```typescript
|
|
263
|
+
// Check for orchestrator in parent SpecVerse installation
|
|
264
|
+
const orchestratorPath = path.resolve(extensionPath, '../../../src/orchestrator');
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
2. **Global Installation Check**:
|
|
268
|
+
```typescript
|
|
269
|
+
// Check for global SpecVerse CLI
|
|
270
|
+
try {
|
|
271
|
+
execSync('specverse --version');
|
|
272
|
+
return true;
|
|
273
|
+
} catch {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
3. **Workspace Check**:
|
|
279
|
+
```typescript
|
|
280
|
+
// Check if workspace contains SpecVerse project
|
|
281
|
+
const workspaceHasSpecVerse = vscode.workspace.workspaceFolders?.some(folder => {
|
|
282
|
+
return fs.existsSync(path.join(folder.uri.fsPath, 'specverse.config.json'));
|
|
283
|
+
});
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Capability Modes
|
|
287
|
+
|
|
288
|
+
**Full Mode** (Orchestrator Available):
|
|
289
|
+
- Complete workflow orchestration
|
|
290
|
+
- Full library analysis
|
|
291
|
+
- Advanced code generation
|
|
292
|
+
- Real-time specification processing
|
|
293
|
+
|
|
294
|
+
**Limited Mode** (No Orchestrator):
|
|
295
|
+
- Basic prompt expansion
|
|
296
|
+
- Resource serving
|
|
297
|
+
- Library recommendations
|
|
298
|
+
- Template generation
|
|
299
|
+
|
|
300
|
+
## Usage Scenarios
|
|
301
|
+
|
|
302
|
+
### 1. Development with Full SpecVerse
|
|
303
|
+
|
|
304
|
+
**Setup**: VSCode in a project with full SpecVerse installation
|
|
305
|
+
|
|
306
|
+
**Capabilities**:
|
|
307
|
+
- Right-click `.specly` files → "Analyze with SpecVerse"
|
|
308
|
+
- Command palette → "SpecVerse: Create Specification"
|
|
309
|
+
- Hover over SpecVerse keywords for documentation
|
|
310
|
+
- IntelliSense for library imports
|
|
311
|
+
|
|
312
|
+
```typescript
|
|
313
|
+
// Extension activation in full mode
|
|
314
|
+
if (orchestratorDetected) {
|
|
315
|
+
// Register enhanced commands
|
|
316
|
+
registerCommand('specverse.analyzeProject', analyzeEntireProject);
|
|
317
|
+
registerCommand('specverse.generateCode', generateImplementation);
|
|
318
|
+
registerCommand('specverse.validateSpec', validateSpecification);
|
|
319
|
+
}
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### 2. Lightweight Usage
|
|
323
|
+
|
|
324
|
+
**Setup**: VSCode with extension only (no local SpecVerse)
|
|
325
|
+
|
|
326
|
+
**Capabilities**:
|
|
327
|
+
- Basic prompt generation
|
|
328
|
+
- Resource access (schemas, examples)
|
|
329
|
+
- Library suggestions
|
|
330
|
+
- Template expansion
|
|
331
|
+
|
|
332
|
+
```typescript
|
|
333
|
+
// Extension activation in limited mode
|
|
334
|
+
if (!orchestratorDetected) {
|
|
335
|
+
// Register basic commands only
|
|
336
|
+
registerCommand('specverse.getPrompt', getCreationPrompt);
|
|
337
|
+
registerCommand('specverse.showResources', listResources);
|
|
338
|
+
registerCommand('specverse.suggestLibraries', getLibrarySuggestions);
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
## Command Palette Integration
|
|
343
|
+
|
|
344
|
+
The extension adds commands to VSCode's command palette:
|
|
345
|
+
|
|
346
|
+
### Available Commands
|
|
347
|
+
|
|
348
|
+
- `SpecVerse: Start MCP Server`
|
|
349
|
+
- `SpecVerse: Stop MCP Server`
|
|
350
|
+
- `SpecVerse: Get Creation Prompt`
|
|
351
|
+
- `SpecVerse: Get Analysis Prompt`
|
|
352
|
+
- `SpecVerse: Show Library Suggestions`
|
|
353
|
+
- `SpecVerse: Validate Specification` (if orchestrator available)
|
|
354
|
+
- `SpecVerse: Generate Implementation` (if orchestrator available)
|
|
355
|
+
|
|
356
|
+
### Context Menu Integration
|
|
357
|
+
|
|
358
|
+
```json
|
|
359
|
+
{
|
|
360
|
+
"menus": {
|
|
361
|
+
"explorer/context": [
|
|
362
|
+
{
|
|
363
|
+
"when": "resourceExtname == .specly",
|
|
364
|
+
"command": "specverse.analyzeFile",
|
|
365
|
+
"group": "specverse"
|
|
366
|
+
}
|
|
367
|
+
],
|
|
368
|
+
"editor/context": [
|
|
369
|
+
{
|
|
370
|
+
"when": "resourceExtname == .specly",
|
|
371
|
+
"command": "specverse.getCreationPrompt",
|
|
372
|
+
"group": "specverse"
|
|
373
|
+
}
|
|
374
|
+
]
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
## Settings and Configuration
|
|
380
|
+
|
|
381
|
+
### Extension Settings
|
|
382
|
+
|
|
383
|
+
```json
|
|
384
|
+
{
|
|
385
|
+
"specverse.mcpServer.autoStart": {
|
|
386
|
+
"type": "boolean",
|
|
387
|
+
"default": true,
|
|
388
|
+
"description": "Automatically start MCP server when extension activates"
|
|
389
|
+
},
|
|
390
|
+
"specverse.orchestrator.detectPath": {
|
|
391
|
+
"type": "string",
|
|
392
|
+
"default": "",
|
|
393
|
+
"description": "Custom path to SpecVerse orchestrator"
|
|
394
|
+
},
|
|
395
|
+
"specverse.resources.preferEmbedded": {
|
|
396
|
+
"type": "boolean",
|
|
397
|
+
"default": false,
|
|
398
|
+
"description": "Prefer embedded resources over file system"
|
|
399
|
+
},
|
|
400
|
+
"specverse.logging.enabled": {
|
|
401
|
+
"type": "boolean",
|
|
402
|
+
"default": false,
|
|
403
|
+
"description": "Enable debug logging"
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
### User Configuration
|
|
409
|
+
|
|
410
|
+
Users can configure the extension in their VSCode settings:
|
|
411
|
+
|
|
412
|
+
```json
|
|
413
|
+
{
|
|
414
|
+
"specverse.mcpServer.autoStart": true,
|
|
415
|
+
"specverse.orchestrator.detectPath": "/custom/path/to/specverse",
|
|
416
|
+
"specverse.logging.enabled": true
|
|
417
|
+
}
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
## Development and Testing
|
|
421
|
+
|
|
422
|
+
### Local Development
|
|
423
|
+
|
|
424
|
+
```bash
|
|
425
|
+
# Build extension
|
|
426
|
+
npm run build:extension
|
|
427
|
+
|
|
428
|
+
# Test in VSCode Extension Host
|
|
429
|
+
code --extensionDevelopmentPath=/path/to/dist/extension
|
|
430
|
+
|
|
431
|
+
# Or package for distribution
|
|
432
|
+
cd dist/extension
|
|
433
|
+
vsce package
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Extension Testing
|
|
437
|
+
|
|
438
|
+
```typescript
|
|
439
|
+
// Test suite for extension
|
|
440
|
+
import * as assert from 'assert';
|
|
441
|
+
import * as vscode from 'vscode';
|
|
442
|
+
import { VSCodeExtensionMCPServer } from '../extension-wrapper';
|
|
443
|
+
|
|
444
|
+
suite('Extension Test Suite', () => {
|
|
445
|
+
test('MCP Server initializes', async () => {
|
|
446
|
+
const server = new VSCodeExtensionMCPServer('/test/path');
|
|
447
|
+
assert.ok(server);
|
|
448
|
+
});
|
|
449
|
+
|
|
450
|
+
test('Orchestrator detection works', async () => {
|
|
451
|
+
const server = new VSCodeExtensionMCPServer('/test/path');
|
|
452
|
+
const hasOrchestrator = server.detectOrchestrator();
|
|
453
|
+
assert.ok(typeof hasOrchestrator === 'boolean');
|
|
454
|
+
});
|
|
455
|
+
});
|
|
456
|
+
```
|
|
457
|
+
|
|
458
|
+
## Performance Considerations
|
|
459
|
+
|
|
460
|
+
### Memory Usage
|
|
461
|
+
- **With Orchestrator**: ~30MB
|
|
462
|
+
- **Without Orchestrator**: ~15MB
|
|
463
|
+
- **Lazy Loading**: Resources loaded on-demand
|
|
464
|
+
|
|
465
|
+
### Startup Performance
|
|
466
|
+
- **Extension Activation**: ~200ms
|
|
467
|
+
- **MCP Server Start**: ~100ms
|
|
468
|
+
- **Resource Loading**: ~50ms
|
|
469
|
+
|
|
470
|
+
### Resource Optimization
|
|
471
|
+
- Embedded resources for offline usage
|
|
472
|
+
- File system fallback for development
|
|
473
|
+
- Intelligent caching for repeated access
|
|
474
|
+
|
|
475
|
+
## Troubleshooting
|
|
476
|
+
|
|
477
|
+
### Common Issues
|
|
478
|
+
|
|
479
|
+
**Extension Won't Activate**:
|
|
480
|
+
```bash
|
|
481
|
+
# Check extension logs
|
|
482
|
+
code --log-level trace
|
|
483
|
+
|
|
484
|
+
# Look for SpecVerse extension errors in Output panel
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
**MCP Server Fails to Start**:
|
|
488
|
+
```typescript
|
|
489
|
+
// Enable logging in extension settings
|
|
490
|
+
"specverse.logging.enabled": true
|
|
491
|
+
|
|
492
|
+
// Check VSCode Developer Tools Console
|
|
493
|
+
// Help -> Toggle Developer Tools
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**Orchestrator Not Detected**:
|
|
497
|
+
```bash
|
|
498
|
+
# Verify SpecVerse installation
|
|
499
|
+
specverse --version
|
|
500
|
+
|
|
501
|
+
# Check custom path setting
|
|
502
|
+
"specverse.orchestrator.detectPath": "/custom/path"
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
**Resource Access Issues**:
|
|
506
|
+
```typescript
|
|
507
|
+
// Test resource loading
|
|
508
|
+
const server = new VSCodeExtensionMCPServer(extensionPath);
|
|
509
|
+
const resources = await server.getController().listResources();
|
|
510
|
+
console.log('Available resources:', resources.length);
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
### Debugging
|
|
514
|
+
|
|
515
|
+
**Enable Extension Logging**:
|
|
516
|
+
1. Open VSCode settings
|
|
517
|
+
2. Search for "specverse.logging"
|
|
518
|
+
3. Enable logging
|
|
519
|
+
4. Restart VSCode
|
|
520
|
+
5. Check Output panel → "SpecVerse"
|
|
521
|
+
|
|
522
|
+
**Manual Testing**:
|
|
523
|
+
```typescript
|
|
524
|
+
// Test MCP server directly
|
|
525
|
+
const server = new VSCodeExtensionMCPServer(__dirname);
|
|
526
|
+
await server.start();
|
|
527
|
+
|
|
528
|
+
const controller = server.getController();
|
|
529
|
+
const result = await controller.callTool('get_creation_prompt', {
|
|
530
|
+
requirements: 'Test application'
|
|
531
|
+
});
|
|
532
|
+
console.log(result);
|
|
533
|
+
```
|
|
534
|
+
|
|
535
|
+
## Future Enhancements
|
|
536
|
+
|
|
537
|
+
### Planned Features
|
|
538
|
+
- **Workspace Integration**: Multi-root workspace support
|
|
539
|
+
- **Git Integration**: Version control aware prompts
|
|
540
|
+
- **Code Lens**: Inline SpecVerse hints
|
|
541
|
+
- **Auto-completion**: Smart completion for `.specly` files
|
|
542
|
+
- **Diagnostics**: Real-time validation and errors
|
|
543
|
+
- **Refactoring**: Automated specification updates
|
|
544
|
+
|
|
545
|
+
### IDE Features
|
|
546
|
+
- **Syntax Highlighting**: Enhanced `.specly` syntax
|
|
547
|
+
- **Outline View**: Specification structure view
|
|
548
|
+
- **Go to Definition**: Navigate to library definitions
|
|
549
|
+
- **Find References**: Find all usages
|
|
550
|
+
- **Rename Symbol**: Refactor across files
|
|
551
|
+
|
|
552
|
+
The extension deployment bridges the gap between full local development and lightweight resource access, providing the best experience for VSCode users regardless of their SpecVerse installation.
|
package/libs/instance-factories/tools/templates/mcp/static/docs/deployments/LOCAL_DEPLOYMENT.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Local Deployment Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Local deployment is optimized for developers working on their local machines, providing direct access to the SpecVerse AI API and integration with development tools.
|
|
6
|
+
|
|
7
|
+
## Features (Phase 3 Updated)
|
|
8
|
+
|
|
9
|
+
- ✅ **AI API Integration**: Direct access to @specverse/lang AI API
|
|
10
|
+
- ✅ **Intelligent Tools**: 8 AI-powered MCP tools for contextual guidance
|
|
11
|
+
- ✅ **Development Integration**: Works with local development tools
|
|
12
|
+
- ✅ **Orchestrator Support**: Optional full workflow capabilities
|
|
13
|
+
- ✅ **Fast Startup**: ~100ms startup time
|
|
14
|
+
- ✅ **Stdio Transport**: Compatible with MCP clients
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
# Install globally
|
|
20
|
+
npm install -g @specverse/mcp
|
|
21
|
+
|
|
22
|
+
# Basic usage
|
|
23
|
+
specverse-mcp --mode local --silent
|
|
24
|
+
|
|
25
|
+
# With orchestrator (advanced)
|
|
26
|
+
specverse-mcp --mode local --enable-orchestrator --silent
|
|
27
|
+
|
|
28
|
+
# Or build from source
|
|
29
|
+
npm run build:local
|
|
30
|
+
node dist/local/server/mcp-server.js --mode local
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Directory Structure (Phase 3 Optimized)
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
dist/local/
|
|
37
|
+
├── server/
|
|
38
|
+
│ └── mcp-server.js # Main executable (chmod +x)
|
|
39
|
+
├── controllers/
|
|
40
|
+
│ └── MCPServerController.js # Request handling
|
|
41
|
+
├── services/
|
|
42
|
+
│ ├── HybridResourcesProvider.js # Resource management
|
|
43
|
+
│ ├── LibraryToolsService.js # AI-powered library tools
|
|
44
|
+
│ └── PromptToolsService.js # AI-powered prompt tools
|
|
45
|
+
├── resources/ # Essential examples only (71KB total)
|
|
46
|
+
│ └── examples/
|
|
47
|
+
│ ├── chat-prompts/ # Terminal/chat examples
|
|
48
|
+
│ └── api-calls/ # API integration examples
|
|
49
|
+
├── config.json # Local configuration
|
|
50
|
+
└── package.json # Dependencies
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Note**: Schemas, prompts, and library catalogs are now provided through AI tools for better contextual responses.
|
|
54
|
+
|
|
55
|
+
## Available Tools
|
|
56
|
+
|
|
57
|
+
### Core AI Tools (8 total)
|
|
58
|
+
1. `get_creation_prompt` - AI-powered creation prompts
|
|
59
|
+
2. `get_analysis_prompt` - AI-powered analysis prompts
|
|
60
|
+
3. `get_implementation_prompt` - AI-powered implementation prompts
|
|
61
|
+
4. `get_realization_prompt` - AI-powered realization prompts
|
|
62
|
+
5. `create_spec_prompt` - Alternative creation prompt name
|
|
63
|
+
6. `mcp_ai_enhance` - Enhanced prompts with library context ⭐ NEW
|
|
64
|
+
7. `mcp_library_suggest` - Intelligent library suggestions ⭐ NEW
|
|
65
|
+
8. `mcp_cost_estimate` - Cost estimates for operations ⭐ NEW
|
|
66
|
+
|
|
67
|
+
### Orchestrator Tools (Optional with --enable-orchestrator)
|
|
68
|
+
- `analyse_codebase` - Full codebase analysis
|
|
69
|
+
- `create_specification` - End-to-end spec creation
|
|
70
|
+
- `infer_specification` - AI-powered inference
|
|
71
|
+
- `materialise_implementation` - Implementation planning
|
|
72
|
+
- `realize_application` - Code generation
|
|
73
|
+
- `get_workflow_status` - Workflow status tracking
|
|
74
|
+
|
|
75
|
+
### Resources (2 total)
|
|
76
|
+
- `specverse://examples/chat-prompts` - Chat integration examples
|
|
77
|
+
- `specverse://examples/api-calls` - API integration examples
|
|
78
|
+
|
|
79
|
+
## Configuration
|
|
80
|
+
|
|
81
|
+
### Basic Configuration
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"mode": "local",
|
|
85
|
+
"features": {
|
|
86
|
+
"orchestrator": false,
|
|
87
|
+
"fileSystemResources": true,
|
|
88
|
+
"embeddedResources": false
|
|
89
|
+
},
|
|
90
|
+
"logging": true
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### With Orchestrator
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"mode": "local",
|
|
98
|
+
"features": {
|
|
99
|
+
"orchestrator": true,
|
|
100
|
+
"fileSystemResources": true,
|
|
101
|
+
"embeddedResources": false
|
|
102
|
+
},
|
|
103
|
+
"logging": true
|
|
104
|
+
}
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Claude Desktop Integration
|
|
108
|
+
|
|
109
|
+
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
|
|
110
|
+
|
|
111
|
+
### Basic
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"mcpServers": {
|
|
115
|
+
"specverse": {
|
|
116
|
+
"command": "specverse-mcp",
|
|
117
|
+
"args": ["--mode", "local", "--silent"]
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### With Orchestrator
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"mcpServers": {
|
|
127
|
+
"specverse": {
|
|
128
|
+
"command": "specverse-mcp",
|
|
129
|
+
"args": ["--mode", "local", "--enable-orchestrator", "--silent"]
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Phase 3 Improvements
|
|
136
|
+
|
|
137
|
+
✅ **AI API Integration**: All tools use @specverse/lang for consistency
|
|
138
|
+
✅ **Contextual Responses**: Intelligent guidance vs raw data dumps
|
|
139
|
+
✅ **Smaller Package**: 96KB reduction from removing redundant files
|
|
140
|
+
✅ **Better Performance**: AI-generated responses are more accurate
|
|
141
|
+
|
|
142
|
+
## Performance
|
|
143
|
+
|
|
144
|
+
- **Startup Time**: ~100ms
|
|
145
|
+
- **Resource Loading**: Sub-millisecond for examples
|
|
146
|
+
- **Tool Execution**: AI API response times (typically 200-2000ms)
|
|
147
|
+
- **Memory Usage**: ~50MB base, +20MB with orchestrator
|
|
148
|
+
|
|
149
|
+
## Troubleshooting
|
|
150
|
+
|
|
151
|
+
### Common Issues
|
|
152
|
+
|
|
153
|
+
1. **Command not found**: Run `npm install -g @specverse/mcp`
|
|
154
|
+
2. **Permission denied**: Ensure executable permissions on mcp-server.js
|
|
155
|
+
3. **Claude Desktop not connecting**: Restart after config changes
|
|
156
|
+
4. **AI tools slow**: Check internet connection for @specverse/lang API calls
|
|
157
|
+
|
|
158
|
+
### Debug Mode
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
specverse-mcp --mode local --verbose
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Provides detailed logging of AI API calls and resource operations.
|