@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,330 @@
|
|
|
1
|
+
# SpecVerse Hybrid Resource System
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The SpecVerse Hybrid Resource System is a multi-environment resource provider that automatically adapts between filesystem and embedded resources based on deployment context. This enables universal deployment across local terminals, web-based LLM environments, VSCode extensions, and enterprise containers.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
### Core Components
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
HybridResourcesProvider (Interface)
|
|
13
|
+
├── ResourcesProviderService (Filesystem)
|
|
14
|
+
├── EmbeddedResourcesAdapter (Embedded)
|
|
15
|
+
└── Auto-Detection Logic (Environment)
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### Resource Provider Interface
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
interface ResourceProvider {
|
|
22
|
+
initializeResources(): Promise<void>;
|
|
23
|
+
listResources(): Promise<SpecVerseResource[]>;
|
|
24
|
+
getResourceContent(uri: string): Promise<string>;
|
|
25
|
+
readResource(uri: string): Promise<MCPToolResult>;
|
|
26
|
+
isResourceAvailable(uri: string): boolean;
|
|
27
|
+
getCachedResourceCount(): number;
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Environment Detection
|
|
32
|
+
|
|
33
|
+
### Detection Priority Order
|
|
34
|
+
|
|
35
|
+
1. **Explicit Configuration** - `config.embeddedResources` provided
|
|
36
|
+
2. **Embedded Resources File** - `embedded-resources.js` exists
|
|
37
|
+
3. **Web Environment** - Browser-like indicators
|
|
38
|
+
4. **Filesystem Resources** - `resources/` directory exists
|
|
39
|
+
5. **Dynamic Import** - Attempt to load embedded resources
|
|
40
|
+
6. **Default Fallback** - Filesystem mode
|
|
41
|
+
|
|
42
|
+
### Detection Logic
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
private detectMode(config: HybridConfig): 'filesystem' | 'embedded' {
|
|
46
|
+
if (config.mode === 'filesystem') return 'filesystem';
|
|
47
|
+
if (config.mode === 'embedded') return 'embedded';
|
|
48
|
+
|
|
49
|
+
// Auto-detection priority
|
|
50
|
+
if (config.embeddedResources) return 'embedded';
|
|
51
|
+
if (this.hasEmbeddedResourcesFile()) return 'embedded';
|
|
52
|
+
if (this.isWebEnvironment()) return 'embedded';
|
|
53
|
+
|
|
54
|
+
const resourcesPath = config.resourcesPath || join(__dirname, '../../resources');
|
|
55
|
+
if (existsSync(resourcesPath)) return 'filesystem';
|
|
56
|
+
|
|
57
|
+
if (this.tryImportEmbeddedResources()) return 'embedded';
|
|
58
|
+
return 'filesystem'; // Default
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Resource Modes
|
|
63
|
+
|
|
64
|
+
### Filesystem Mode (Local/Development)
|
|
65
|
+
|
|
66
|
+
**Used by**: Local terminals, development environments, VSCode with local server
|
|
67
|
+
|
|
68
|
+
**Characteristics**:
|
|
69
|
+
- Reads resources from actual files on disk
|
|
70
|
+
- Real-time updates when files change
|
|
71
|
+
- Full access to orchestrator and toolchain
|
|
72
|
+
- Optimal for development and local usage
|
|
73
|
+
|
|
74
|
+
**Resource Path Resolution**:
|
|
75
|
+
```typescript
|
|
76
|
+
private resolveResourcePath(uri: string): string {
|
|
77
|
+
switch (uri) {
|
|
78
|
+
case 'specverse://schema/json':
|
|
79
|
+
return join(this.resourcesPath, 'schemas/SPECVERSE-V3.1-SCHEMA.json');
|
|
80
|
+
case 'specverse://prompts/create':
|
|
81
|
+
return join(this.resourcesPath, 'prompts/create.prompt.yaml');
|
|
82
|
+
// ... additional mappings
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Embedded Mode (Web/Remote)
|
|
88
|
+
|
|
89
|
+
**Used by**: Web-based LLM terminals, remote deployments, serverless functions
|
|
90
|
+
|
|
91
|
+
**Characteristics**:
|
|
92
|
+
- Resources bundled into application at build time
|
|
93
|
+
- No filesystem access required
|
|
94
|
+
- Optimized for web deployment and serverless
|
|
95
|
+
- Resources cached in memory for performance
|
|
96
|
+
|
|
97
|
+
**Resource Loading**:
|
|
98
|
+
```typescript
|
|
99
|
+
private async loadEmbeddedResourcesAsync(): Promise<EmbeddedResourcesMap | null> {
|
|
100
|
+
const embeddedPath = join(dirname(__dirname), 'embedded-resources.js');
|
|
101
|
+
if (existsSync(embeddedPath)) {
|
|
102
|
+
const embeddedModule = await import(embeddedPath);
|
|
103
|
+
return embeddedModule.EMBEDDED_RESOURCES || null;
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Build-Time Resource Embedding
|
|
110
|
+
|
|
111
|
+
### Web Build Process
|
|
112
|
+
|
|
113
|
+
1. **Resource Discovery**: Scan all required resources
|
|
114
|
+
2. **Content Reading**: Read file contents at build time
|
|
115
|
+
3. **Embedding**: Generate `embedded-resources.js` with all content
|
|
116
|
+
4. **Optimization**: Minify and optimize for web deployment
|
|
117
|
+
|
|
118
|
+
### Embedded Resources Structure
|
|
119
|
+
|
|
120
|
+
```javascript
|
|
121
|
+
export const EMBEDDED_RESOURCES = {
|
|
122
|
+
"examples/chat-prompts/ecommerce-store-example.md": {
|
|
123
|
+
"content": "...", // Chat integration examples
|
|
124
|
+
"mimeType": "text/markdown",
|
|
125
|
+
"size": 5696
|
|
126
|
+
},
|
|
127
|
+
"examples/api-calls/orchestrator-workflow-example.js": {
|
|
128
|
+
"content": "...", // API integration examples
|
|
129
|
+
"mimeType": "application/javascript",
|
|
130
|
+
"size": 7501
|
|
131
|
+
}
|
|
132
|
+
// Note: Schemas and prompts now provided through AI API
|
|
133
|
+
};
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Available Resources (Phase 3 Optimized)
|
|
137
|
+
|
|
138
|
+
**✅ NEW: AI API Integration**
|
|
139
|
+
As of Phase 3, most resources are now provided through intelligent AI tools rather than raw files:
|
|
140
|
+
|
|
141
|
+
### Schema Information
|
|
142
|
+
- **OLD**: `specverse://schema/json` - Raw 32KB JSON schema ❌ REMOVED
|
|
143
|
+
- **NEW**: `mcp_ai_enhance` tool - Contextual, schema-aware prompts ✅
|
|
144
|
+
|
|
145
|
+
### Library Suggestions
|
|
146
|
+
- **OLD**: `specverse://libraries/catalog` - Raw 8KB catalog dump ❌ REMOVED
|
|
147
|
+
- **NEW**: `mcp_library_suggest` tool - Intelligent, contextual recommendations ✅
|
|
148
|
+
|
|
149
|
+
### Prompt Templates
|
|
150
|
+
- **OLD**: Static prompt files (48KB total) ❌ REMOVED
|
|
151
|
+
- **NEW**: AI API generates dynamic, contextual prompts ✅
|
|
152
|
+
|
|
153
|
+
### Example Resources (Still Available)
|
|
154
|
+
- `specverse://examples/chat-prompts` - Terminal/chat examples
|
|
155
|
+
- `specverse://examples/api-calls` - API integration examples
|
|
156
|
+
|
|
157
|
+
### Benefits of AI Tool Approach
|
|
158
|
+
- **Contextual**: AI provides relevant info based on user's specific needs
|
|
159
|
+
- **Intelligent**: Smart recommendations vs raw data dumps
|
|
160
|
+
- **Up-to-date**: Always uses latest AI knowledge vs static files
|
|
161
|
+
- **Smaller**: 96KB reduction in package size
|
|
162
|
+
|
|
163
|
+
## Performance Characteristics
|
|
164
|
+
|
|
165
|
+
### Resource Loading Performance
|
|
166
|
+
- **First Access**: Dynamic loading from embedded/filesystem
|
|
167
|
+
- **Subsequent Access**: Cached in memory (sub-millisecond)
|
|
168
|
+
- **Total Embedded Size**: 167,204 bytes (13 resources)
|
|
169
|
+
- **Memory Footprint**: Efficient caching with lazy loading
|
|
170
|
+
|
|
171
|
+
### Build Performance
|
|
172
|
+
- **Web Build Time**: ~2-3 seconds for resource embedding
|
|
173
|
+
- **Resource Embedding**: 13 files → Single JavaScript module
|
|
174
|
+
- **Compression**: Resources are stored as strings (future: compression)
|
|
175
|
+
|
|
176
|
+
## Error Handling
|
|
177
|
+
|
|
178
|
+
### Graceful Fallback
|
|
179
|
+
```typescript
|
|
180
|
+
async initializeResources(): Promise<void> {
|
|
181
|
+
if (this.mode === 'embedded' && this.provider instanceof EmbeddedResourcesAdapter) {
|
|
182
|
+
const providerInfo = this.provider.getEmbeddedResourcesInfo();
|
|
183
|
+
if (providerInfo.count === 0) {
|
|
184
|
+
try {
|
|
185
|
+
const embeddedResources = await this.loadEmbeddedResourcesAsync();
|
|
186
|
+
if (embeddedResources) {
|
|
187
|
+
this.provider = new EmbeddedResourcesAdapter(embeddedResources);
|
|
188
|
+
}
|
|
189
|
+
} catch (error) {
|
|
190
|
+
console.warn('Failed to load embedded resources, falling back to filesystem:', error);
|
|
191
|
+
this.mode = 'filesystem';
|
|
192
|
+
this.provider = new ResourcesProviderService();
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
return this.provider.initializeResources();
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Error Recovery
|
|
202
|
+
- **Missing Embedded Resources**: Falls back to filesystem mode
|
|
203
|
+
- **Invalid Resource URIs**: Returns proper error responses
|
|
204
|
+
- **File Access Errors**: Graceful error messages
|
|
205
|
+
- **Network Issues**: Local fallback for hybrid mode
|
|
206
|
+
|
|
207
|
+
## Usage Examples
|
|
208
|
+
|
|
209
|
+
### Basic Usage
|
|
210
|
+
```typescript
|
|
211
|
+
import { HybridResourcesProvider } from './services/HybridResourcesProvider.js';
|
|
212
|
+
|
|
213
|
+
// Auto-detect mode based on environment
|
|
214
|
+
const provider = new HybridResourcesProvider({ mode: 'auto' });
|
|
215
|
+
await provider.initializeResources();
|
|
216
|
+
|
|
217
|
+
// List all available resources
|
|
218
|
+
const resources = await provider.listResources();
|
|
219
|
+
console.log(`Loaded ${resources.length} resources`);
|
|
220
|
+
|
|
221
|
+
// Get specific resource content
|
|
222
|
+
const schema = await provider.getResourceContent('specverse://schema/json');
|
|
223
|
+
console.log(`Schema size: ${schema.length} characters`);
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Explicit Mode Configuration
|
|
227
|
+
```typescript
|
|
228
|
+
// Force filesystem mode
|
|
229
|
+
const fsProvider = new HybridResourcesProvider({
|
|
230
|
+
mode: 'filesystem',
|
|
231
|
+
resourcesPath: '/custom/path/to/resources'
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
// Force embedded mode with custom resources
|
|
235
|
+
const embeddedProvider = new HybridResourcesProvider({
|
|
236
|
+
mode: 'embedded',
|
|
237
|
+
embeddedResources: customResourceMap
|
|
238
|
+
});
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Environment Information
|
|
242
|
+
```typescript
|
|
243
|
+
const provider = new HybridResourcesProvider({ mode: 'auto' });
|
|
244
|
+
await provider.initializeResources();
|
|
245
|
+
|
|
246
|
+
const info = provider.getProviderInfo();
|
|
247
|
+
console.log(`Mode: ${info.mode}`);
|
|
248
|
+
console.log(`Type: ${info.type}`);
|
|
249
|
+
console.log(`Resources: ${info.resourcesInfo.count || info.resourcesInfo.cached}`);
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Integration with MCP Server
|
|
253
|
+
|
|
254
|
+
### Controller Integration
|
|
255
|
+
```typescript
|
|
256
|
+
export class MCPServerController {
|
|
257
|
+
private resourcesProvider: HybridResourcesProvider;
|
|
258
|
+
|
|
259
|
+
constructor(config: MCPServerConfig) {
|
|
260
|
+
this.resourcesProvider = new HybridResourcesProvider({
|
|
261
|
+
mode: 'auto',
|
|
262
|
+
resourcesPath: config.resources_path
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
async listResources(): Promise<SpecVerseResource[]> {
|
|
267
|
+
return this.resourcesProvider.listResources();
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
async readResource(uri: string): Promise<SpecVerseResource> {
|
|
271
|
+
const content = await this.resourcesProvider.getResourceContent(uri);
|
|
272
|
+
const resources = await this.resourcesProvider.listResources();
|
|
273
|
+
const resource = resources.find(r => r.uri === uri);
|
|
274
|
+
|
|
275
|
+
return { ...resource, content };
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
### HTTP API Endpoints
|
|
281
|
+
```typescript
|
|
282
|
+
// In web deployment mode
|
|
283
|
+
server.get('/mcp/resources', async (req, res) => {
|
|
284
|
+
const resources = await controller.listResources();
|
|
285
|
+
res.json({ resources, count: resources.length });
|
|
286
|
+
});
|
|
287
|
+
|
|
288
|
+
server.get('/mcp/resource/:uri', async (req, res) => {
|
|
289
|
+
const uri = decodeURIComponent(req.params.uri);
|
|
290
|
+
const resource = await controller.readResource(uri);
|
|
291
|
+
res.json({ content: [{ type: 'resource', resource }] });
|
|
292
|
+
});
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Future Enhancements
|
|
296
|
+
|
|
297
|
+
### Planned Features
|
|
298
|
+
- **Resource Compression**: Gzip compression for embedded resources
|
|
299
|
+
- **Incremental Loading**: Load resources on-demand for large deployments
|
|
300
|
+
- **Resource Caching**: HTTP caching headers for web deployments
|
|
301
|
+
- **Hot Reload**: Development mode file watching
|
|
302
|
+
- **Resource Validation**: Schema validation for embedded resources
|
|
303
|
+
|
|
304
|
+
### Performance Optimizations
|
|
305
|
+
- **Lazy Loading**: Load resources only when requested
|
|
306
|
+
- **Memory Management**: Release unused resources
|
|
307
|
+
- **Compression**: Reduce embedded resource size
|
|
308
|
+
- **CDN Integration**: External resource hosting for web deployments
|
|
309
|
+
|
|
310
|
+
## Testing
|
|
311
|
+
|
|
312
|
+
### Test Coverage
|
|
313
|
+
- ✅ Environment detection logic
|
|
314
|
+
- ✅ Filesystem resource loading
|
|
315
|
+
- ✅ Embedded resource loading
|
|
316
|
+
- ✅ Error handling and fallback
|
|
317
|
+
- ✅ HTTP API serving
|
|
318
|
+
- ✅ Performance characteristics
|
|
319
|
+
|
|
320
|
+
### Test Results
|
|
321
|
+
```
|
|
322
|
+
Build Outputs: ✅ PASS (All deployment artifacts created)
|
|
323
|
+
Local Deployment: ✅ PASS (Filesystem resources working)
|
|
324
|
+
Web Deployment: ✅ PASS (Embedded resources + HTTP serving)
|
|
325
|
+
Overall Success: 100% ✅
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Conclusion
|
|
329
|
+
|
|
330
|
+
The Hybrid Resource System successfully enables SpecVerse to work across all deployment environments while maintaining optimal performance and resource efficiency. The automatic mode detection ensures the right resource strategy is used for each environment, while the unified interface keeps the codebase simple and maintainable.
|