veryfront 0.1.48 → 0.1.49
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/esm/cli/app/components/inline-input.d.ts +1 -4
- package/esm/cli/app/components/inline-input.d.ts.map +1 -1
- package/esm/cli/app/components/inline-input.js +1 -1
- package/esm/cli/app/components/list-select.d.ts +0 -8
- package/esm/cli/app/components/list-select.d.ts.map +1 -1
- package/esm/cli/app/components/list-select.js +0 -13
- package/esm/cli/app/operations/project-creation.d.ts +2 -14
- package/esm/cli/app/operations/project-creation.d.ts.map +1 -1
- package/esm/cli/app/operations/project-creation.js +3 -68
- package/esm/cli/app/shell.js +1 -1
- package/esm/cli/app/utils.d.ts +1 -2
- package/esm/cli/app/utils.d.ts.map +1 -1
- package/esm/cli/app/utils.js +1 -17
- package/esm/cli/app/views/dashboard.d.ts +0 -4
- package/esm/cli/app/views/dashboard.d.ts.map +1 -1
- package/esm/cli/app/views/dashboard.js +0 -15
- package/esm/cli/app/views/startup.d.ts +0 -4
- package/esm/cli/app/views/startup.d.ts.map +1 -1
- package/esm/cli/app/views/startup.js +0 -7
- package/esm/cli/auth/login.d.ts.map +1 -1
- package/esm/cli/auth/login.js +1 -2
- package/esm/cli/auth/token-store.js +1 -1
- package/esm/cli/auth/utils.d.ts +2 -1
- package/esm/cli/auth/utils.d.ts.map +1 -1
- package/esm/cli/commands/generate/integration-generator.js +1 -1
- package/esm/cli/commands/install/types.d.ts +2 -2
- package/esm/cli/help/formatters.d.ts +1 -1
- package/esm/cli/help/formatters.d.ts.map +1 -1
- package/esm/cli/help/formatters.js +8 -4
- package/esm/cli/help/main-help.d.ts.map +1 -1
- package/esm/cli/help/main-help.js +2 -2
- package/esm/cli/mcp/server.d.ts +0 -1
- package/esm/cli/mcp/server.d.ts.map +1 -1
- package/esm/cli/mcp/server.js +2 -5
- package/esm/cli/mcp/tools/dev-tools.d.ts +1 -1
- package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
- package/esm/cli/mcp/tools/dev-tools.js +1 -2
- package/esm/cli/mcp/tools/scaffold-tools.d.ts +2 -2
- package/esm/cli/mcp/tools.d.ts +1 -2
- package/esm/cli/mcp/tools.d.ts.map +1 -1
- package/esm/cli/mcp/tools.js +1 -2
- package/esm/cli/shared/reserve-slug.d.ts.map +1 -1
- package/esm/cli/shared/reserve-slug.js +1 -3
- package/esm/cli/sync/ignore.d.ts +1 -1
- package/esm/cli/sync/ignore.d.ts.map +1 -1
- package/esm/cli/sync/ignore.js +22 -18
- package/esm/cli/ui/colors.d.ts +0 -1
- package/esm/cli/ui/colors.d.ts.map +1 -1
- package/esm/cli/ui/colors.js +0 -10
- package/esm/cli/ui/dot-matrix.d.ts.map +1 -1
- package/esm/cli/ui/dot-matrix.js +2 -5
- package/esm/cli/ui/tui.js +2 -3
- package/esm/cli/utils/index.js +1 -2
- package/esm/cli/utils/package-manager.d.ts.map +1 -1
- package/esm/cli/utils/package-manager.js +3 -4
- package/esm/deno.d.ts +3 -0
- package/esm/deno.js +22 -19
- package/esm/src/agent/chat-handler.d.ts.map +1 -1
- package/esm/src/agent/chat-handler.js +8 -23
- package/esm/src/agent/factory.d.ts +0 -8
- package/esm/src/agent/factory.d.ts.map +1 -1
- package/esm/src/agent/factory.js +50 -1
- package/esm/src/agent/index.d.ts +16 -1
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +16 -1
- package/esm/src/agent/memory/memory.d.ts +2 -2
- package/esm/src/agent/memory/memory.d.ts.map +1 -1
- package/esm/src/agent/memory/memory.js +0 -1
- package/esm/src/agent/react/use-chat/types.d.ts +2 -0
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.js +15 -9
- package/esm/src/agent/runtime/index.d.ts +18 -0
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +167 -36
- package/esm/src/agent/runtime/tool-helpers.d.ts +6 -1
- package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
- package/esm/src/agent/runtime/tool-helpers.js +10 -1
- package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
- package/esm/src/agent/types.d.ts +10 -0
- package/esm/src/agent/types.d.ts.map +1 -1
- package/esm/src/ai/registry-manager.d.ts.map +1 -1
- package/esm/src/ai/registry-manager.js +2 -1
- package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts +0 -2
- package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts.map +1 -1
- package/esm/src/build/bundler/code-splitter/manifest-builder.js +1 -1
- package/esm/src/build/compiler/mdx-compiler/validator.d.ts.map +1 -1
- package/esm/src/build/compiler/mdx-compiler/validator.js +2 -3
- package/esm/src/build/compiler/mdx-to-js.d.ts +0 -2
- package/esm/src/build/compiler/mdx-to-js.d.ts.map +1 -1
- package/esm/src/build/compiler/mdx-to-js.js +0 -81
- package/esm/src/build/index.d.ts +0 -6
- package/esm/src/build/index.d.ts.map +1 -1
- package/esm/src/build/index.js +0 -1
- package/esm/src/build/production-build/build/route-collector.d.ts.map +1 -1
- package/esm/src/build/production-build/build/route-collector.js +2 -3
- package/esm/src/build/production-build/templates.d.ts +5 -9
- package/esm/src/build/production-build/templates.d.ts.map +1 -1
- package/esm/src/build/production-build/templates.js +6 -18
- package/esm/src/build/vendor-cache.d.ts.map +1 -1
- package/esm/src/build/vendor-cache.js +0 -5
- package/esm/src/cache/tokenizing-gateway.d.ts +0 -2
- package/esm/src/cache/tokenizing-gateway.d.ts.map +1 -1
- package/esm/src/cache/tokenizing-gateway.js +1 -3
- package/esm/src/chat/index.d.ts +2 -2
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +1 -1
- package/esm/src/config/define-config.d.ts.map +1 -1
- package/esm/src/config/define-config.js +28 -25
- package/esm/src/config/loader.d.ts.map +1 -1
- package/esm/src/config/loader.js +10 -7
- package/esm/src/config/schemas/config.schema.d.ts +58 -12
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +12 -0
- package/esm/src/data/data-fetcher.d.ts +1 -2
- package/esm/src/data/data-fetcher.d.ts.map +1 -1
- package/esm/src/data/data-fetcher.js +14 -15
- package/esm/src/data/server-data-fetcher.d.ts +0 -3
- package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/server-data-fetcher.js +1 -8
- package/esm/src/data/static-data-fetcher.d.ts +1 -3
- package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/static-data-fetcher.js +1 -3
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +19 -1
- package/esm/src/discovery/discovery-utils.d.ts +0 -4
- package/esm/src/discovery/discovery-utils.d.ts.map +1 -1
- package/esm/src/discovery/discovery-utils.js +0 -6
- package/esm/src/discovery/file-discovery.d.ts +3 -1
- package/esm/src/discovery/file-discovery.d.ts.map +1 -1
- package/esm/src/discovery/file-discovery.js +3 -8
- package/esm/src/discovery/handlers/index.d.ts +1 -0
- package/esm/src/discovery/handlers/index.d.ts.map +1 -1
- package/esm/src/discovery/handlers/index.js +1 -0
- package/esm/src/discovery/handlers/skill-handler.d.ts +26 -0
- package/esm/src/discovery/handlers/skill-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/skill-handler.js +87 -0
- package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
- package/esm/src/discovery/handlers/task-handler.js +1 -5
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +7 -4
- package/esm/src/discovery/types.d.ts +3 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/embedding/resolve.d.ts.map +1 -1
- package/esm/src/embedding/resolve.js +1 -3
- package/esm/src/embedding/upload-handler.d.ts.map +1 -1
- package/esm/src/embedding/upload-handler.js +4 -3
- package/esm/src/embedding/upload-store.js +4 -4
- package/esm/src/errors/error-registry.d.ts +2 -1
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/errors/http-error.d.ts +1 -2
- package/esm/src/errors/http-error.d.ts.map +1 -1
- package/esm/src/errors/http-error.js +2 -2
- package/esm/src/errors/middleware/cli-error-boundary.d.ts.map +1 -1
- package/esm/src/errors/middleware/cli-error-boundary.js +13 -2
- package/esm/src/errors/middleware/wrap-unknown.d.ts +0 -7
- package/esm/src/errors/middleware/wrap-unknown.d.ts.map +1 -1
- package/esm/src/errors/middleware/wrap-unknown.js +0 -9
- package/esm/src/errors/veryfront-error.d.ts +0 -3
- package/esm/src/errors/veryfront-error.d.ts.map +1 -1
- package/esm/src/errors/veryfront-error.js +0 -5
- package/esm/src/html/schemas/html.schema.d.ts +2 -2
- package/esm/src/html/styles-builder/css-hash-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/css-hash-cache.js +1 -2
- package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
- package/esm/src/html/styles-builder/plugin-loader.js +50 -21
- package/esm/src/html/styles-builder/tailwind-compiler-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/tailwind-compiler-cache.js +12 -4
- package/esm/src/html/utils.d.ts +0 -7
- package/esm/src/html/utils.d.ts.map +1 -1
- package/esm/src/html/utils.js +0 -25
- package/esm/src/modules/component-registry/registry.d.ts +0 -3
- package/esm/src/modules/component-registry/registry.d.ts.map +1 -1
- package/esm/src/modules/component-registry/registry.js +0 -3
- package/esm/src/oauth/handlers/callback-handler.d.ts +2 -0
- package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/callback-handler.js +10 -4
- package/esm/src/oauth/providers/common.d.ts.map +1 -1
- package/esm/src/oauth/providers/common.js +0 -23
- package/esm/src/observability/auto-instrument/react-instrumentation.js +2 -1
- package/esm/src/observability/instruments/instruments-factory.d.ts +1 -1
- package/esm/src/observability/instruments/instruments-factory.d.ts.map +1 -1
- package/esm/src/observability/instruments/instruments-factory.js +5 -4
- package/esm/src/observability/metrics/config.js +5 -4
- package/esm/src/observability/metrics/manager.js +1 -1
- package/esm/src/observability/tracing/span-operations.d.ts.map +1 -1
- package/esm/src/observability/tracing/span-operations.js +14 -8
- package/esm/src/platform/compat/console/node.d.ts +0 -1
- package/esm/src/platform/compat/console/node.d.ts.map +1 -1
- package/esm/src/platform/compat/console/node.js +4 -11
- package/esm/src/platform/compat/fs.d.ts.map +1 -1
- package/esm/src/platform/compat/fs.js +4 -2
- package/esm/src/platform/compat/opaque-deps.d.ts +4 -2
- package/esm/src/platform/compat/opaque-deps.d.ts.map +1 -1
- package/esm/src/platform/compat/opaque-deps.js +1 -1
- package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
- package/esm/src/platform/compat/path/basic-operations.js +8 -7
- package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
- package/esm/src/platform/compat/path/resolution.js +15 -10
- package/esm/src/platform/compat/path/url-conversion.d.ts.map +1 -1
- package/esm/src/platform/compat/path/url-conversion.js +3 -2
- package/esm/src/platform/compat/process.d.ts +2 -14
- package/esm/src/platform/compat/process.d.ts.map +1 -1
- package/esm/src/platform/compat/process.js +92 -70
- package/esm/src/provider/index.d.ts +1 -1
- package/esm/src/provider/index.d.ts.map +1 -1
- package/esm/src/provider/index.js +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.js +18 -18
- package/esm/src/provider/local/env.d.ts.map +1 -1
- package/esm/src/provider/local/env.js +2 -1
- package/esm/src/provider/model-registry.d.ts +10 -0
- package/esm/src/provider/model-registry.d.ts.map +1 -1
- package/esm/src/provider/model-registry.js +43 -0
- package/esm/src/proxy/retry.d.ts +3 -3
- package/esm/src/proxy/retry.d.ts.map +1 -1
- package/esm/src/proxy/retry.js +0 -7
- package/esm/src/proxy/tracing.d.ts +1 -5
- package/esm/src/proxy/tracing.d.ts.map +1 -1
- package/esm/src/proxy/tracing.js +1 -7
- package/esm/src/react/components/ai/chat/components/code-block.js +1 -1
- package/esm/src/react/components/ai/chat/components/skill-badge.d.ts +12 -0
- package/esm/src/react/components/ai/chat/components/skill-badge.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/skill-badge.js +34 -0
- package/esm/src/react/components/ai/chat/components/step-indicator.js +4 -4
- package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/composition/chat-message-list.js +8 -2
- package/esm/src/react/components/ai/chat/composition/message.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/composition/message.js +8 -2
- package/esm/src/react/components/ai/chat/index.d.ts +4 -1
- package/esm/src/react/components/ai/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/index.js +4 -3
- package/esm/src/react/components/ai/chat/utils/message-parts.d.ts +2 -0
- package/esm/src/react/components/ai/chat/utils/message-parts.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/utils/message-parts.js +9 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts +1 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat-with-sidebar.js +1 -0
- package/esm/src/react/components/ai/chat.d.ts +1 -1
- package/esm/src/react/components/ai/chat.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat.js +1 -1
- package/esm/src/rendering/cache/index.d.ts +1 -5
- package/esm/src/rendering/cache/index.d.ts.map +1 -1
- package/esm/src/rendering/cache/index.js +1 -5
- package/esm/src/rendering/orchestrator/pipeline.d.ts +11 -2
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.js +0 -4
- package/esm/src/repositories/schemas/index.d.ts +1 -1
- package/esm/src/repositories/schemas/index.d.ts.map +1 -1
- package/esm/src/repositories/schemas/index.js +1 -1
- package/esm/src/repositories/schemas/repository.schema.d.ts +0 -11
- package/esm/src/repositories/schemas/repository.schema.d.ts.map +1 -1
- package/esm/src/repositories/schemas/repository.schema.js +0 -13
- package/esm/src/repositories/types.d.ts +1 -1
- package/esm/src/repositories/types.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.js +63 -7
- package/esm/src/routing/api/openapi/path-utils.d.ts +0 -19
- package/esm/src/routing/api/openapi/path-utils.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/path-utils.js +0 -34
- package/esm/src/routing/api/openapi/spec-generator.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/spec-generator.js +1 -19
- package/esm/src/routing/api/openapi/types.d.ts +1 -0
- package/esm/src/routing/api/openapi/types.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/types.js +18 -0
- package/esm/src/sandbox/sandbox.d.ts +1 -0
- package/esm/src/sandbox/sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/sandbox.js +7 -8
- package/esm/src/security/http/cors/constants.d.ts +0 -2
- package/esm/src/security/http/cors/constants.d.ts.map +1 -1
- package/esm/src/security/http/cors/constants.js +0 -2
- package/esm/src/security/http/response/index.d.ts +3 -4
- package/esm/src/security/http/response/index.d.ts.map +1 -1
- package/esm/src/security/http/response/index.js +2 -3
- package/esm/src/server/context/enriched-context.d.ts +0 -8
- package/esm/src/server/context/enriched-context.d.ts.map +1 -1
- package/esm/src/server/context/enriched-context.js +1 -12
- package/esm/src/server/dev-server/server.d.ts.map +1 -1
- package/esm/src/server/dev-server/server.js +11 -4
- package/esm/src/server/dev-ui/manifest.d.ts +20 -20
- package/esm/src/server/dev-ui/manifest.js +20 -20
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +426 -179
- package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.js +14 -24
- package/esm/src/server/shared/renderer/memory/pressure.d.ts +0 -7
- package/esm/src/server/shared/renderer/memory/pressure.d.ts.map +1 -1
- package/esm/src/server/shared/renderer/memory/pressure.js +1 -13
- package/esm/src/server/utils/domain-lookup.d.ts +0 -4
- package/esm/src/server/utils/domain-lookup.d.ts.map +1 -1
- package/esm/src/server/utils/domain-lookup.js +0 -3
- package/esm/src/skill/allowed-tools.d.ts +54 -0
- package/esm/src/skill/allowed-tools.d.ts.map +1 -0
- package/esm/src/skill/allowed-tools.js +87 -0
- package/esm/src/skill/executor.d.ts +28 -0
- package/esm/src/skill/executor.d.ts.map +1 -0
- package/esm/src/skill/executor.js +187 -0
- package/esm/src/skill/index.d.ts +19 -0
- package/esm/src/skill/index.d.ts.map +1 -0
- package/esm/src/skill/index.js +24 -0
- package/esm/src/skill/parser.d.ts +30 -0
- package/esm/src/skill/parser.d.ts.map +1 -0
- package/esm/src/skill/parser.js +162 -0
- package/esm/src/skill/path-safety.d.ts +22 -0
- package/esm/src/skill/path-safety.d.ts.map +1 -0
- package/esm/src/skill/path-safety.js +156 -0
- package/esm/src/skill/prompt-augmentation.d.ts +19 -0
- package/esm/src/skill/prompt-augmentation.d.ts.map +1 -0
- package/esm/src/skill/prompt-augmentation.js +36 -0
- package/esm/src/skill/registry.d.ts +25 -0
- package/esm/src/skill/registry.d.ts.map +1 -0
- package/esm/src/skill/registry.js +42 -0
- package/esm/src/skill/tools.d.ts +27 -0
- package/esm/src/skill/tools.d.ts.map +1 -0
- package/esm/src/skill/tools.js +149 -0
- package/esm/src/skill/types.d.ts +85 -0
- package/esm/src/skill/types.d.ts.map +1 -0
- package/esm/src/skill/types.js +27 -0
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
- package/esm/src/studio/element-selector-injector.d.ts +0 -2
- package/esm/src/studio/element-selector-injector.d.ts.map +1 -1
- package/esm/src/task/runner.d.ts +6 -0
- package/esm/src/task/runner.d.ts.map +1 -1
- package/esm/src/task/runner.js +8 -8
- package/esm/src/tool/factory.js +31 -39
- package/esm/src/transforms/esm/http-cache-helpers.d.ts +0 -8
- package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
- package/esm/src/transforms/esm/http-cache-helpers.js +0 -20
- package/esm/src/transforms/esm/path-resolver.d.ts +0 -14
- package/esm/src/transforms/esm/path-resolver.d.ts.map +1 -1
- package/esm/src/transforms/esm/path-resolver.js +1 -92
- package/esm/src/transforms/esm/source-url-embed.d.ts +0 -14
- package/esm/src/transforms/esm/source-url-embed.d.ts.map +1 -1
- package/esm/src/transforms/esm/source-url-embed.js +0 -47
- package/esm/src/transforms/esm/transform-cache.d.ts.map +1 -1
- package/esm/src/transforms/esm/transform-cache.js +2 -6
- package/esm/src/transforms/mdx/index.d.ts +0 -1
- package/esm/src/transforms/mdx/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.js +0 -4
- package/esm/src/transforms/pipeline/context.d.ts +0 -1
- package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/context.js +0 -1
- package/esm/src/transforms/pipeline/index.d.ts +1 -2
- package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/index.js +0 -3
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +0 -1
- package/esm/src/types/entities/getEntityInfo.js +1 -1
- package/esm/src/types/index.d.ts +2 -13
- package/esm/src/types/index.d.ts.map +1 -1
- package/esm/src/types/server.d.ts +2 -1
- package/esm/src/types/server.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.d.ts +1 -1
- package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.js +5 -6
- package/esm/src/utils/lru-wrapper.d.ts.map +1 -1
- package/esm/src/utils/lru-wrapper.js +2 -4
- package/esm/src/workflow/claude-code/event-publisher.d.ts +0 -4
- package/esm/src/workflow/claude-code/event-publisher.d.ts.map +1 -1
- package/esm/src/workflow/claude-code/event-publisher.js +2 -6
- package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
- package/esm/src/workflow/executor/workflow-executor.js +6 -1
- package/esm/src/workflow/react/use-workflow-list.d.ts.map +1 -1
- package/esm/src/workflow/react/use-workflow-list.js +2 -1
- package/esm/src/workflow/schemas/workflow.schema.d.ts +8 -8
- package/package.json +1 -2
- package/src/cli/app/components/inline-input.ts +0 -5
- package/src/cli/app/components/list-select.ts +0 -21
- package/src/cli/app/operations/project-creation.ts +4 -109
- package/src/cli/app/shell.ts +1 -1
- package/src/cli/app/utils.ts +0 -22
- package/src/cli/app/views/dashboard.ts +0 -17
- package/src/cli/app/views/startup.ts +0 -13
- package/src/cli/auth/login.ts +1 -2
- package/src/cli/auth/token-store.ts +1 -1
- package/src/cli/auth/utils.ts +2 -1
- package/src/cli/commands/generate/integration-generator.ts +1 -1
- package/src/cli/help/formatters.ts +11 -4
- package/src/cli/help/main-help.ts +2 -3
- package/src/cli/mcp/server.ts +2 -5
- package/src/cli/mcp/tools/dev-tools.ts +1 -2
- package/src/cli/mcp/tools.ts +8 -2
- package/src/cli/shared/reserve-slug.ts +1 -4
- package/src/cli/sync/ignore.ts +26 -21
- package/src/cli/ui/colors.ts +0 -12
- package/src/cli/ui/dot-matrix.ts +3 -6
- package/src/cli/ui/tui.ts +3 -3
- package/src/cli/utils/index.ts +1 -1
- package/src/cli/utils/package-manager.ts +3 -4
- package/src/deno.js +22 -19
- package/src/src/agent/chat-handler.ts +8 -23
- package/src/src/agent/factory.ts +58 -9
- package/src/src/agent/index.ts +16 -1
- package/src/src/agent/memory/memory.ts +0 -9
- package/src/src/agent/react/use-chat/types.ts +2 -0
- package/src/src/agent/react/use-chat/use-chat.ts +15 -9
- package/src/src/agent/runtime/index.ts +213 -35
- package/src/src/agent/runtime/tool-helpers.ts +9 -0
- package/src/src/agent/types.ts +10 -0
- package/src/src/ai/registry-manager.ts +2 -1
- package/src/src/build/bundler/code-splitter/manifest-builder.ts +1 -1
- package/src/src/build/compiler/mdx-compiler/validator.ts +3 -7
- package/src/src/build/compiler/mdx-to-js.ts +0 -101
- package/src/src/build/index.ts +0 -8
- package/src/src/build/production-build/build/route-collector.ts +2 -4
- package/src/src/build/production-build/templates.ts +9 -18
- package/src/src/build/vendor-cache.ts +0 -6
- package/src/src/cache/tokenizing-gateway.ts +1 -9
- package/src/src/chat/index.ts +3 -0
- package/src/src/config/define-config.ts +30 -29
- package/src/src/config/loader.ts +10 -9
- package/src/src/config/schemas/config.schema.ts +12 -0
- package/src/src/data/data-fetcher.ts +15 -21
- package/src/src/data/server-data-fetcher.ts +1 -8
- package/src/src/data/static-data-fetcher.ts +1 -6
- package/src/src/discovery/discovery-engine.ts +27 -0
- package/src/src/discovery/discovery-utils.ts +0 -7
- package/src/src/discovery/file-discovery.ts +3 -9
- package/src/src/discovery/handlers/index.ts +1 -0
- package/src/src/discovery/handlers/skill-handler.ts +123 -0
- package/src/src/discovery/handlers/task-handler.ts +1 -5
- package/src/src/discovery/transpiler.ts +7 -4
- package/src/src/discovery/types.ts +3 -0
- package/src/src/embedding/resolve.ts +1 -3
- package/src/src/embedding/upload-handler.ts +7 -3
- package/src/src/embedding/upload-store.ts +4 -4
- package/src/src/errors/error-registry.ts +2 -2
- package/src/src/errors/http-error.ts +7 -3
- package/src/src/errors/middleware/cli-error-boundary.ts +28 -2
- package/src/src/errors/middleware/wrap-unknown.ts +0 -10
- package/src/src/errors/veryfront-error.ts +0 -9
- package/src/src/html/styles-builder/css-hash-cache.ts +5 -2
- package/src/src/html/styles-builder/plugin-loader.ts +58 -21
- package/src/src/html/styles-builder/tailwind-compiler-cache.ts +11 -4
- package/src/src/html/utils.ts +0 -33
- package/src/src/modules/component-registry/registry.ts +0 -3
- package/src/src/modules/server/websocket-handler.ts +1 -1
- package/src/src/oauth/handlers/callback-handler.ts +17 -5
- package/src/src/oauth/providers/base.ts +3 -3
- package/src/src/oauth/providers/common.ts +0 -23
- package/src/src/observability/auto-instrument/react-instrumentation.ts +2 -2
- package/src/src/observability/instruments/instruments-factory.ts +6 -6
- package/src/src/observability/metrics/config.ts +5 -5
- package/src/src/observability/metrics/manager.ts +1 -1
- package/src/src/observability/tracing/span-operations.ts +14 -9
- package/src/src/platform/compat/console/node.ts +4 -14
- package/src/src/platform/compat/fs.ts +14 -3
- package/src/src/platform/compat/opaque-deps.ts +10 -5
- package/src/src/platform/compat/path/basic-operations.ts +9 -7
- package/src/src/platform/compat/path/resolution.ts +15 -8
- package/src/src/platform/compat/path/url-conversion.ts +10 -6
- package/src/src/platform/compat/process.ts +133 -76
- package/src/src/provider/index.ts +1 -0
- package/src/src/provider/local/ai-sdk-adapter.ts +40 -37
- package/src/src/provider/local/env.ts +4 -1
- package/src/src/provider/model-registry.ts +47 -0
- package/src/src/proxy/retry.ts +0 -9
- package/src/src/proxy/tracing.ts +1 -9
- package/src/src/react/components/ai/chat/components/code-block.tsx +1 -1
- package/src/src/react/components/ai/chat/components/skill-badge.tsx +51 -0
- package/src/src/react/components/ai/chat/components/step-indicator.tsx +4 -4
- package/src/src/react/components/ai/chat/composition/chat-message-list.tsx +9 -2
- package/src/src/react/components/ai/chat/composition/message.tsx +9 -2
- package/src/src/react/components/ai/chat/index.tsx +6 -1
- package/src/src/react/components/ai/chat/utils/message-parts.ts +11 -0
- package/src/src/react/components/ai/chat-with-sidebar.tsx +2 -0
- package/src/src/react/components/ai/chat.tsx +3 -0
- package/src/src/rendering/cache/index.ts +12 -5
- package/src/src/rendering/orchestrator/pipeline.ts +12 -2
- package/src/src/rendering/renderer.ts +1 -1
- package/src/src/rendering/shared/context-aware-cache.ts +0 -5
- package/src/src/repositories/schemas/index.ts +0 -2
- package/src/src/repositories/schemas/repository.schema.ts +0 -15
- package/src/src/repositories/types.ts +1 -6
- package/src/src/routing/api/module-loader/loader.ts +88 -3
- package/src/src/routing/api/openapi/path-utils.ts +0 -39
- package/src/src/routing/api/openapi/spec-generator.ts +1 -20
- package/src/src/routing/api/openapi/types.ts +20 -0
- package/src/src/sandbox/sandbox.ts +8 -8
- package/src/src/security/http/cors/constants.ts +0 -4
- package/src/src/security/http/response/index.ts +3 -9
- package/src/src/server/context/enriched-context.ts +1 -19
- package/src/src/server/dev-server/server.ts +11 -4
- package/src/src/server/dev-ui/manifest.js +20 -20
- package/src/src/server/handlers/dev/framework-candidates.generated.ts +426 -179
- package/src/src/server/runtime-handler/index.ts +17 -28
- package/src/src/server/shared/renderer/memory/pressure.ts +2 -15
- package/src/src/server/utils/domain-lookup.ts +0 -4
- package/src/src/skill/allowed-tools.ts +107 -0
- package/src/src/skill/executor.ts +215 -0
- package/src/src/skill/index.ts +60 -0
- package/src/src/skill/parser.ts +214 -0
- package/src/src/skill/path-safety.ts +203 -0
- package/src/src/skill/prompt-augmentation.ts +48 -0
- package/src/src/skill/registry.ts +51 -0
- package/src/src/skill/tools.ts +197 -0
- package/src/src/skill/types.ts +107 -0
- package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
- package/src/src/studio/element-selector-injector.ts +0 -2
- package/src/src/task/runner.ts +10 -8
- package/src/src/tool/factory.ts +54 -54
- package/src/src/transforms/esm/http-cache-helpers.ts +0 -20
- package/src/src/transforms/esm/path-resolver.ts +1 -140
- package/src/src/transforms/esm/source-url-embed.ts +0 -53
- package/src/src/transforms/esm/transform-cache.ts +3 -7
- package/src/src/transforms/mdx/index.ts +0 -5
- package/src/src/transforms/pipeline/context.ts +0 -2
- package/src/src/transforms/pipeline/index.ts +0 -4
- package/src/src/transforms/pipeline/stages/ssr-http-cache.ts +0 -1
- package/src/src/types/entities/getEntityInfo.ts +1 -1
- package/src/src/types/index.ts +1 -20
- package/src/src/types/server.ts +1 -1
- package/src/src/utils/cache-file-ops.ts +5 -5
- package/src/src/utils/lru-wrapper.ts +2 -8
- package/src/src/workflow/claude-code/event-publisher.ts +13 -4
- package/src/src/workflow/executor/workflow-executor.ts +7 -2
- package/src/src/workflow/react/use-workflow-list.ts +3 -2
- package/esm/src/transforms/mdx/parser.d.ts +0 -4
- package/esm/src/transforms/mdx/parser.d.ts.map +0 -1
- package/esm/src/transforms/mdx/parser.js +0 -49
- package/src/src/transforms/mdx/parser.ts +0 -65
|
@@ -1,77 +1,12 @@
|
|
|
1
1
|
import { replaceSpecifiers } from "./lexer.js";
|
|
2
|
-
import {
|
|
3
|
-
import { stat } from "../../platform/compat/fs.js";
|
|
4
|
-
import { withSpan, withSpanSync } from "../../observability/tracing/otlp-setup.js";
|
|
2
|
+
import { withSpanSync } from "../../observability/tracing/otlp-setup.js";
|
|
5
3
|
import {
|
|
6
4
|
isCrossProjectImport,
|
|
7
5
|
parseCrossProjectImport,
|
|
8
6
|
} from "../shared/cross-project-import.js";
|
|
9
7
|
|
|
10
|
-
const logger = rendererLogger.component("cross-project-import");
|
|
11
|
-
|
|
12
|
-
export interface BlockExternalUrlResult {
|
|
13
|
-
code: string;
|
|
14
|
-
blockedUrls: string[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
8
|
export { isCrossProjectImport, parseCrossProjectImport };
|
|
18
9
|
|
|
19
|
-
export interface CrossProjectImportOptions {
|
|
20
|
-
apiBaseUrl?: string;
|
|
21
|
-
ssr?: boolean;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function resolveCrossProjectImports(
|
|
25
|
-
code: string,
|
|
26
|
-
options: CrossProjectImportOptions,
|
|
27
|
-
): Promise<string> {
|
|
28
|
-
return Promise.resolve(
|
|
29
|
-
withSpanSync(
|
|
30
|
-
"transforms.esm.resolveCrossProjectImports",
|
|
31
|
-
() => {
|
|
32
|
-
if (options.ssr ?? false) return code;
|
|
33
|
-
|
|
34
|
-
return replaceSpecifiers(code, (specifier) => {
|
|
35
|
-
const parsed = parseCrossProjectImport(specifier);
|
|
36
|
-
if (!parsed) return null;
|
|
37
|
-
|
|
38
|
-
const { projectSlug, version, path } = parsed;
|
|
39
|
-
|
|
40
|
-
const modulePath = /\.(js|mjs|jsx|ts|tsx|mdx)$/.test(path) ? path : `${path}.tsx`;
|
|
41
|
-
const projectRef = version === "latest" ? projectSlug : `${projectSlug}@${version}`;
|
|
42
|
-
const moduleServerUrl = `/_vf_modules/_cross/${projectRef}/@/${modulePath}`;
|
|
43
|
-
|
|
44
|
-
logger.debug("Rewriting", { from: specifier, to: moduleServerUrl });
|
|
45
|
-
|
|
46
|
-
return moduleServerUrl;
|
|
47
|
-
});
|
|
48
|
-
},
|
|
49
|
-
{ "transforms.ssr": options.ssr ?? false },
|
|
50
|
-
),
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function blockExternalUrlImports(
|
|
55
|
-
code: string,
|
|
56
|
-
_filePath: string,
|
|
57
|
-
): Promise<BlockExternalUrlResult> {
|
|
58
|
-
return Promise.resolve({ code, blockedUrls: [] });
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function resolveVeryfrontSubpathImports(code: string, ssr = false): Promise<string> {
|
|
62
|
-
if (ssr) return Promise.resolve(code);
|
|
63
|
-
|
|
64
|
-
return Promise.resolve(
|
|
65
|
-
replaceSpecifiers(code, (specifier) => {
|
|
66
|
-
if (!specifier.startsWith("#veryfront/")) return null;
|
|
67
|
-
|
|
68
|
-
const path = specifier.substring("#veryfront/".length);
|
|
69
|
-
const normalizedPath = path.replace(/\.(tsx?|jsx)$/, ".js");
|
|
70
|
-
return `/_vf_modules/_veryfront/${normalizedPath}`;
|
|
71
|
-
}),
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
10
|
function getRelativeFilePath(filePath: string, normalizedProjectDir: string): string {
|
|
76
11
|
if (filePath.startsWith(normalizedProjectDir)) {
|
|
77
12
|
return filePath.substring(normalizedProjectDir.length + 1);
|
|
@@ -177,77 +112,3 @@ function resolvePath(baseParts: string[], relativePath: string): string[] {
|
|
|
177
112
|
|
|
178
113
|
return resolvedParts;
|
|
179
114
|
}
|
|
180
|
-
|
|
181
|
-
export function resolveRelativeImportsToAbsolute(
|
|
182
|
-
code: string,
|
|
183
|
-
filePath: string,
|
|
184
|
-
_projectDir: string,
|
|
185
|
-
): Promise<string> {
|
|
186
|
-
return withSpan(
|
|
187
|
-
"transforms.esm.resolveRelativeImportsToAbsolute",
|
|
188
|
-
async () => {
|
|
189
|
-
const normalizedFilePath = filePath.replace(/\\/g, "/");
|
|
190
|
-
const fileDir = normalizedFilePath.substring(0, normalizedFilePath.lastIndexOf("/"));
|
|
191
|
-
|
|
192
|
-
const specifiersToResolve: string[] = [];
|
|
193
|
-
await replaceSpecifiers(code, (specifier) => {
|
|
194
|
-
if (specifier.startsWith("./") || specifier.startsWith("../")) {
|
|
195
|
-
specifiersToResolve.push(specifier);
|
|
196
|
-
}
|
|
197
|
-
return null;
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
const resolvedImports = new Map<string, string>();
|
|
201
|
-
for (const specifier of specifiersToResolve) {
|
|
202
|
-
const absolutePath = resolveAbsolutePath(fileDir, specifier);
|
|
203
|
-
const resolvedPath = await findFileWithExtension(absolutePath);
|
|
204
|
-
resolvedImports.set(specifier, `file://${resolvedPath}`);
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return replaceSpecifiers(code, (specifier) => resolvedImports.get(specifier) ?? null);
|
|
208
|
-
},
|
|
209
|
-
{ "transforms.specifiers_count": 0 },
|
|
210
|
-
);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
async function findFileWithExtension(basePath: string): Promise<string> {
|
|
214
|
-
if (/\.(tsx?|jsx?|mjs|cjs|mdx)$/.test(basePath)) return basePath;
|
|
215
|
-
|
|
216
|
-
const extensions = [".tsx", ".ts", ".jsx", ".js", ".mdx"];
|
|
217
|
-
for (const ext of extensions) {
|
|
218
|
-
const fullPath = basePath + ext;
|
|
219
|
-
try {
|
|
220
|
-
const fileStat = await stat(fullPath);
|
|
221
|
-
if (fileStat.isFile) return fullPath;
|
|
222
|
-
} catch {
|
|
223
|
-
// ignore
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
return basePath + ".ts";
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
export function resolveRelativeImportsForNodeSSR(code: string): Promise<string> {
|
|
231
|
-
return Promise.resolve(
|
|
232
|
-
replaceSpecifiers(code, (specifier) => {
|
|
233
|
-
if (!specifier.startsWith("./") && !specifier.startsWith("../")) return null;
|
|
234
|
-
return specifier.replace(/\.(tsx|ts|jsx)$/, ".js");
|
|
235
|
-
}),
|
|
236
|
-
);
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
export function resolveRelativeImportsForSSR(code: string): Promise<string> {
|
|
240
|
-
return Promise.resolve(
|
|
241
|
-
replaceSpecifiers(code, (specifier) => {
|
|
242
|
-
if (!specifier.startsWith("./") && !specifier.startsWith("../")) return null;
|
|
243
|
-
if (/\.(js|mjs|cjs)$/.test(specifier)) return null;
|
|
244
|
-
|
|
245
|
-
const withoutExt = specifier.replace(/\.(tsx?|jsx|mdx)$/, "");
|
|
246
|
-
return `${withoutExt}.js`;
|
|
247
|
-
}),
|
|
248
|
-
);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function resolveAbsolutePath(baseDir: string, relativePath: string): string {
|
|
252
|
-
return `/${resolvePath(baseDir.split("/").filter(Boolean), relativePath).join("/")}`;
|
|
253
|
-
}
|
|
@@ -7,11 +7,6 @@
|
|
|
7
7
|
* @module transforms/esm/source-url-embed
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { gunzipSync } from "node:zlib";
|
|
11
|
-
import { rendererLogger } from "../../utils/index.js";
|
|
12
|
-
|
|
13
|
-
const logger = rendererLogger.component("http-cache");
|
|
14
|
-
|
|
15
10
|
/** Preserved comment format that survives minification */
|
|
16
11
|
export const VF_SOURCE_PREFIX = "/*! @vf-source: ";
|
|
17
12
|
export const VF_SOURCE_SUFFIX = " */\n";
|
|
@@ -34,51 +29,3 @@ export function extractSourceUrl(code: string): string | null {
|
|
|
34
29
|
if (endIndex === -1) return null;
|
|
35
30
|
return code.slice(VF_SOURCE_PREFIX.length, endIndex).trim();
|
|
36
31
|
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Check if code has an embedded source URL.
|
|
40
|
-
*/
|
|
41
|
-
export function _hasEmbeddedSourceUrl(code: string): boolean {
|
|
42
|
-
return code.startsWith(VF_SOURCE_PREFIX);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Decode gzip-compressed cache content.
|
|
47
|
-
* Returns the decompressed string, or null if decompression fails.
|
|
48
|
-
*/
|
|
49
|
-
export function decodeGzipContent(content: string): string | null {
|
|
50
|
-
const base64Data = content.startsWith("gz:")
|
|
51
|
-
? content.slice(3)
|
|
52
|
-
: content.startsWith("gzip:")
|
|
53
|
-
? content.slice(5)
|
|
54
|
-
: null;
|
|
55
|
-
|
|
56
|
-
if (!base64Data) return null;
|
|
57
|
-
|
|
58
|
-
try {
|
|
59
|
-
const binaryString = atob(base64Data);
|
|
60
|
-
const bytes = new Uint8Array(binaryString.length);
|
|
61
|
-
for (let i = 0; i < binaryString.length; i++) {
|
|
62
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const decompressed = gunzipSync(bytes);
|
|
66
|
-
return new TextDecoder().decode(decompressed);
|
|
67
|
-
} catch (error) {
|
|
68
|
-
logger.debug("Failed to decode gzip content", { error });
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Try to decode content if it's gzip-encoded, otherwise return as-is.
|
|
75
|
-
* Returns [decodedContent, wasGzipped] tuple.
|
|
76
|
-
*/
|
|
77
|
-
export function _maybeDecodeGzip(content: string): [string, boolean] {
|
|
78
|
-
if (!content.startsWith("gz:") && !content.startsWith("gzip:")) return [content, false];
|
|
79
|
-
|
|
80
|
-
const decoded = decodeGzipContent(content);
|
|
81
|
-
if (decoded) return [decoded, true];
|
|
82
|
-
|
|
83
|
-
return [content, false];
|
|
84
|
-
}
|
|
@@ -61,12 +61,6 @@ function getEffectiveCacheGateway(): TokenizingCacheGateway | CacheBackend | nul
|
|
|
61
61
|
return injectedCacheGateway !== undefined ? injectedCacheGateway : cacheGateway;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
// Backward compatibility: provide CacheBackend interface
|
|
65
|
-
function _getEffectiveCacheBackend(): CacheBackend | null {
|
|
66
|
-
const gateway = getEffectiveCacheGateway();
|
|
67
|
-
return gateway as CacheBackend | null;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
64
|
/**
|
|
71
65
|
* Inject custom caches for testing.
|
|
72
66
|
* Call with null to restore default behavior.
|
|
@@ -438,7 +432,9 @@ export async function prewarmProjectTransforms(
|
|
|
438
432
|
for (const filePath of filePaths) {
|
|
439
433
|
try {
|
|
440
434
|
const pattern = `v*:${projectId}:${filePath}:*:ssr`;
|
|
441
|
-
const scan =
|
|
435
|
+
const scan =
|
|
436
|
+
(gateway as unknown as { scan?: (pattern: string, count: number) => Promise<string[]> })
|
|
437
|
+
.scan;
|
|
442
438
|
if (typeof scan !== "function") continue;
|
|
443
439
|
|
|
444
440
|
const keys = await scan.call(gateway, pattern, 10);
|
|
@@ -9,7 +9,6 @@ import { LRUCache } from "../../utils/lru-wrapper.js";
|
|
|
9
9
|
import { MDX_RENDERER_MAX_ENTRIES, MDX_RENDERER_TTL_MS } from "../../utils/constants/cache.js";
|
|
10
10
|
import React from "react";
|
|
11
11
|
import { type ESMLoaderContext, loadModuleESM } from "./esm-module-loader/index.js";
|
|
12
|
-
import { type ParsedMDX, parseMDXCode } from "./parser.js";
|
|
13
12
|
import type { MDXComponents, MDXFrontmatter, MDXGlobals, MDXModule } from "./types.js";
|
|
14
13
|
|
|
15
14
|
export interface MDXRenderOptions {
|
|
@@ -75,10 +74,6 @@ export class MDXRenderer {
|
|
|
75
74
|
React.createElement("code", {}, "await mdxRenderer.loadModuleESM(compiledCode)"),
|
|
76
75
|
);
|
|
77
76
|
}
|
|
78
|
-
|
|
79
|
-
private parseMDXCode(compiledCode: string): ParsedMDX {
|
|
80
|
-
return parseMDXCode(compiledCode);
|
|
81
|
-
}
|
|
82
77
|
}
|
|
83
78
|
|
|
84
79
|
let mdxRendererInstance: MDXRenderer | undefined;
|
|
@@ -122,5 +122,3 @@ export function isMDX(ctx: TransformContext): boolean {
|
|
|
122
122
|
export function isTypeScript(ctx: TransformContext): boolean {
|
|
123
123
|
return ctx.filePath.endsWith(".ts") || ctx.filePath.endsWith(".tsx");
|
|
124
124
|
}
|
|
125
|
-
|
|
126
|
-
export { getExtension } from "../../utils/path-utils.js";
|
|
@@ -366,10 +366,6 @@ function buildReadFile(adapter: unknown, projectDir: string): (path: string) =>
|
|
|
366
366
|
};
|
|
367
367
|
}
|
|
368
368
|
|
|
369
|
-
export function getDefaultPlugins(ssr: boolean): TransformPlugin[] {
|
|
370
|
-
return ssr ? [...SSR_PIPELINE] : [...BROWSER_PIPELINE];
|
|
371
|
-
}
|
|
372
|
-
|
|
373
369
|
export type {
|
|
374
370
|
PipelineConfig,
|
|
375
371
|
TransformContext,
|
|
@@ -20,7 +20,6 @@ const LOG_PREFIX = "[SSR-HTTP-CACHE]";
|
|
|
20
20
|
export const ssrHttpCachePlugin: TransformPlugin = {
|
|
21
21
|
name: "ssr-http-cache",
|
|
22
22
|
stage: TransformStage.FINALIZE - 1, // Run just before finalize
|
|
23
|
-
condition: () => true,
|
|
24
23
|
|
|
25
24
|
async transform(ctx) {
|
|
26
25
|
const cachedMap = ctx.metadata.get("importMap") as ImportMapConfig | undefined;
|
|
@@ -436,7 +436,7 @@ export async function getLayoutEntity(
|
|
|
436
436
|
function getSlugFromPath(filePath: string): string {
|
|
437
437
|
const parts = filePath.split(pathHelper.sep);
|
|
438
438
|
const fileName = parts[parts.length - 1] ?? "";
|
|
439
|
-
const slug = fileName.replace(/\.(mdx?|tsx?|jsx
|
|
439
|
+
const slug = fileName.replace(/\.(mdx?|tsx?|jsx?)$/, "");
|
|
440
440
|
if (slug !== "index") return slug;
|
|
441
441
|
|
|
442
442
|
const parentDir = parts[parts.length - 2];
|
package/src/src/types/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared type definitions — server/handler types, branded IDs, React component
|
|
3
|
-
* contracts, page/request contexts, bundler config
|
|
3
|
+
* contracts, page/request contexts, and bundler config.
|
|
4
4
|
*
|
|
5
5
|
* @module types
|
|
6
6
|
*/
|
|
@@ -23,7 +23,6 @@ export type {
|
|
|
23
23
|
HandlerMetadata,
|
|
24
24
|
HandlerResult,
|
|
25
25
|
MiddlewareFunction,
|
|
26
|
-
MiddlewareFunction as ServerMiddlewareFunction,
|
|
27
26
|
ParsedDomain,
|
|
28
27
|
RouteHandlerModule,
|
|
29
28
|
RoutePattern,
|
|
@@ -119,18 +118,8 @@ export interface RequestContext {
|
|
|
119
118
|
headers?: dntShim.Headers;
|
|
120
119
|
}
|
|
121
120
|
|
|
122
|
-
export interface CacheEntry<T = unknown> {
|
|
123
|
-
value: T;
|
|
124
|
-
ttl?: number;
|
|
125
|
-
timestamp?: number;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
121
|
export type MaybePromise<T> = T | Promise<T>;
|
|
129
122
|
|
|
130
|
-
export type DeepPartial<T> = {
|
|
131
|
-
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
132
|
-
};
|
|
133
|
-
|
|
134
123
|
export interface MdxBundle {
|
|
135
124
|
compiledCode: string;
|
|
136
125
|
frontmatter?: MDXFrontmatter;
|
|
@@ -177,14 +166,6 @@ export interface ScriptPageModule {
|
|
|
177
166
|
generateMetadata?: (ctx: PageContext) => MaybePromise<Record<string, unknown>>;
|
|
178
167
|
}
|
|
179
168
|
|
|
180
|
-
export interface Bundler {
|
|
181
|
-
bundleTsxSourceToComponent?: (
|
|
182
|
-
content: string,
|
|
183
|
-
filePath: string,
|
|
184
|
-
projectDir: string,
|
|
185
|
-
) => Promise<React.ComponentType>;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
169
|
export interface RenderMetadata {
|
|
189
170
|
title?: string;
|
|
190
171
|
description?: string;
|
package/src/src/types/server.ts
CHANGED
|
@@ -145,7 +145,7 @@ export interface RouteRegistryConfig {
|
|
|
145
145
|
enableMetrics?: boolean;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
type RouteHandler = (
|
|
149
149
|
req: dntShim.Request,
|
|
150
150
|
ctx: { params: Record<string, string | string[]> },
|
|
151
151
|
) => Promise<dntShim.Response> | dntShim.Response;
|
|
@@ -80,8 +80,7 @@ export async function writeCacheFile(
|
|
|
80
80
|
export async function verifyCacheFileExists(
|
|
81
81
|
fs: FileSystem,
|
|
82
82
|
path: string,
|
|
83
|
-
|
|
84
|
-
label = "cache",
|
|
83
|
+
_label = "cache",
|
|
85
84
|
): Promise<boolean> {
|
|
86
85
|
try {
|
|
87
86
|
const stat = await fs.stat(path);
|
|
@@ -96,14 +95,15 @@ export async function verifyCacheFileExists(
|
|
|
96
95
|
* (directory removed between mkdir and write).
|
|
97
96
|
*/
|
|
98
97
|
export function isCacheWriteRaceError(error: unknown): boolean {
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
if (error == null || typeof error !== "object") return false;
|
|
99
|
+
|
|
100
|
+
if ("code" in error && (error as Record<string, unknown>).code === "ENOENT") return true;
|
|
101
101
|
|
|
102
102
|
// Deno-specific NotFound
|
|
103
103
|
if (typeof dntShim.Deno !== "undefined" && error instanceof dntShim.Deno.errors.NotFound) return true;
|
|
104
104
|
|
|
105
105
|
// os error 22 (EINVAL) on some platforms when path component is gone
|
|
106
|
-
if (error instanceof TypeError &&
|
|
106
|
+
if (error instanceof TypeError && error.message.includes("os error 22")) return true;
|
|
107
107
|
|
|
108
108
|
return false;
|
|
109
109
|
}
|
|
@@ -33,10 +33,7 @@ export class LRUCache<K, V> {
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
private startPeriodicCleanup(): void {
|
|
36
|
-
if (shouldDisableInterval())
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
|
|
36
|
+
if (shouldDisableInterval()) return;
|
|
40
37
|
this.stopCleanupTimer();
|
|
41
38
|
|
|
42
39
|
this.cleanupTimer = dntShim.setInterval(() => {
|
|
@@ -48,10 +45,7 @@ export class LRUCache<K, V> {
|
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
private stopCleanupTimer(): void {
|
|
51
|
-
if (!this.cleanupTimer)
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
|
|
48
|
+
if (!this.cleanupTimer) return;
|
|
55
49
|
clearInterval(this.cleanupTimer);
|
|
56
50
|
this.cleanupTimer = undefined;
|
|
57
51
|
}
|
|
@@ -86,10 +86,19 @@ export interface RedisEventPublisherConfig {
|
|
|
86
86
|
* Redis-based event publisher for distributed streaming
|
|
87
87
|
* Uses Redis Pub/Sub for real-time event delivery
|
|
88
88
|
*/
|
|
89
|
+
/** Minimal structural type for a Redis Pub/Sub client */
|
|
90
|
+
interface RedisClient {
|
|
91
|
+
connect(): Promise<void>;
|
|
92
|
+
publish(channel: string, message: string): Promise<number>;
|
|
93
|
+
subscribe(channel: string, listener: (message: string) => void): Promise<void>;
|
|
94
|
+
unsubscribe(channel: string): Promise<void>;
|
|
95
|
+
quit(): Promise<void>;
|
|
96
|
+
}
|
|
97
|
+
|
|
89
98
|
export class RedisEventPublisher implements ClaudeCodeEventPublisher, ClaudeCodeEventSubscriber {
|
|
90
99
|
private config: Required<RedisEventPublisherConfig>;
|
|
91
|
-
private publishClient:
|
|
92
|
-
private subscribeClient:
|
|
100
|
+
private publishClient: RedisClient | null = null;
|
|
101
|
+
private subscribeClient: RedisClient | null = null;
|
|
93
102
|
private initialized = false;
|
|
94
103
|
|
|
95
104
|
constructor(config: RedisEventPublisherConfig) {
|
|
@@ -106,8 +115,8 @@ export class RedisEventPublisher implements ClaudeCodeEventPublisher, ClaudeCode
|
|
|
106
115
|
// Dynamic import to avoid loading Redis if not used
|
|
107
116
|
const { createClient } = await import("redis");
|
|
108
117
|
|
|
109
|
-
this.publishClient = createClient({ url: this.config.url });
|
|
110
|
-
this.subscribeClient = createClient({ url: this.config.url });
|
|
118
|
+
this.publishClient = createClient({ url: this.config.url }) as unknown as RedisClient;
|
|
119
|
+
this.subscribeClient = createClient({ url: this.config.url }) as unknown as RedisClient;
|
|
111
120
|
|
|
112
121
|
await Promise.all([this.publishClient.connect(), this.subscribeClient.connect()]);
|
|
113
122
|
|
|
@@ -123,10 +123,15 @@ export class WorkflowExecutor {
|
|
|
123
123
|
if (!bs) return;
|
|
124
124
|
|
|
125
125
|
const resolveIfBlob = <T>(
|
|
126
|
-
ref:
|
|
126
|
+
ref: unknown,
|
|
127
127
|
fn: (id: string) => Promise<T>,
|
|
128
128
|
fallback: T,
|
|
129
|
-
): Promise<T> =>
|
|
129
|
+
): Promise<T> => {
|
|
130
|
+
const blob = ref as Record<string, unknown> | null | undefined;
|
|
131
|
+
return blob?.__kind === "blob" && typeof blob.id === "string"
|
|
132
|
+
? fn(blob.id)
|
|
133
|
+
: Promise.resolve(fallback);
|
|
134
|
+
};
|
|
130
135
|
|
|
131
136
|
this.blobResolver = {
|
|
132
137
|
getText: (ref) => resolveIfBlob(ref, (id) => bs.getText(id), null),
|
|
@@ -87,8 +87,9 @@ export function useWorkflowList(options: UseWorkflowListOptions = {}): UseWorkfl
|
|
|
87
87
|
|
|
88
88
|
if (!response.ok) throw new Error(`Failed to fetch runs: ${response.status}`);
|
|
89
89
|
|
|
90
|
-
const data:
|
|
91
|
-
|
|
90
|
+
const data: { runs?: WorkflowRun[]; cursor?: string; totalCount?: number } = await response
|
|
91
|
+
.json();
|
|
92
|
+
const fetchedRuns: WorkflowRun[] = data.runs ?? (data as unknown as WorkflowRun[]);
|
|
92
93
|
const nextCursor: string | undefined = data.cursor;
|
|
93
94
|
const total: number | undefined = data.totalCount;
|
|
94
95
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../../src/src/transforms/mdx/parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA6B,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvE,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CA0D5D"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { rendererLogger as logger } from "../../utils/index.js";
|
|
2
|
-
import { extractFrontmatter, extractMetadata } from "./esm-module-loader/metadata/index.js";
|
|
3
|
-
export function parseMDXCode(compiledCode) {
|
|
4
|
-
logger.debug("Parsing MDX code, first 200 chars:", compiledCode.substring(0, 200));
|
|
5
|
-
const importRegex = /^\s*import\s+(?:{([^}]+)}|(\w+))\s+from\s+['"]([^'"]+)['"]\s*;?\s*$/gm;
|
|
6
|
-
const imports = new Map();
|
|
7
|
-
for (const match of compiledCode.matchAll(importRegex)) {
|
|
8
|
-
const path = match[3];
|
|
9
|
-
if (!path)
|
|
10
|
-
continue;
|
|
11
|
-
const namedImports = match[1];
|
|
12
|
-
if (namedImports) {
|
|
13
|
-
for (const name of namedImports.split(",").map((n) => n.trim())) {
|
|
14
|
-
imports.set(name, { name, path, isDefault: false });
|
|
15
|
-
}
|
|
16
|
-
continue;
|
|
17
|
-
}
|
|
18
|
-
const defaultImport = match[2];
|
|
19
|
-
if (!defaultImport)
|
|
20
|
-
continue;
|
|
21
|
-
imports.set(defaultImport, { name: defaultImport, path, isDefault: true });
|
|
22
|
-
}
|
|
23
|
-
const cleanedCode = compiledCode
|
|
24
|
-
.replace(importRegex, "")
|
|
25
|
-
.replace(/^\s*export\s+\{[\s\S]*?\};?\s*$/gm, "")
|
|
26
|
-
.replace(/^\s*export\s+default\s+function/gm, "function")
|
|
27
|
-
.replace(/^\s*export\s+default\s+/gm, "")
|
|
28
|
-
.replace(/^\s*export\s+(const|function)\s+/gm, "$1 ")
|
|
29
|
-
.replace(/^\s*import\s+React\s+from.*?;?\s*$/gm, "")
|
|
30
|
-
.replace(/^\s*const\s+(React|Fragment|Fragment2|jsx|jsx2|jsxs|jsxs2)\s*=.*?;?\s*$/gm, "");
|
|
31
|
-
if (cleanedCode.includes("import React")) {
|
|
32
|
-
logger.warn("Import React still in cleaned code");
|
|
33
|
-
}
|
|
34
|
-
if (cleanedCode.includes("const React") || cleanedCode.includes("var React")) {
|
|
35
|
-
logger.warn("React declaration found in cleaned code");
|
|
36
|
-
logger.debug("Code snippet:", cleanedCode.substring(0, 200));
|
|
37
|
-
}
|
|
38
|
-
const exports = {};
|
|
39
|
-
const frontmatter = extractFrontmatter(cleanedCode);
|
|
40
|
-
if (frontmatter)
|
|
41
|
-
exports.frontmatter = frontmatter;
|
|
42
|
-
const metadata = extractMetadata(cleanedCode);
|
|
43
|
-
for (const [key, value] of Object.entries(metadata)) {
|
|
44
|
-
if (value === undefined)
|
|
45
|
-
continue;
|
|
46
|
-
exports[key] = value;
|
|
47
|
-
}
|
|
48
|
-
return { code: cleanedCode, imports, exports };
|
|
49
|
-
}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { rendererLogger as logger } from "../../utils/index.js";
|
|
2
|
-
import type { MDXExports, MDXImportInfo, ParsedMDX } from "./types.js";
|
|
3
|
-
import { extractFrontmatter, extractMetadata } from "./esm-module-loader/metadata/index.js";
|
|
4
|
-
|
|
5
|
-
export type { ParsedMDX };
|
|
6
|
-
|
|
7
|
-
export function parseMDXCode(compiledCode: string): ParsedMDX {
|
|
8
|
-
logger.debug("Parsing MDX code, first 200 chars:", compiledCode.substring(0, 200));
|
|
9
|
-
|
|
10
|
-
const importRegex = /^\s*import\s+(?:{([^}]+)}|(\w+))\s+from\s+['"]([^'"]+)['"]\s*;?\s*$/gm;
|
|
11
|
-
|
|
12
|
-
const imports = new Map<string, MDXImportInfo>();
|
|
13
|
-
|
|
14
|
-
for (const match of compiledCode.matchAll(importRegex)) {
|
|
15
|
-
const path = match[3];
|
|
16
|
-
if (!path) continue;
|
|
17
|
-
|
|
18
|
-
const namedImports = match[1];
|
|
19
|
-
if (namedImports) {
|
|
20
|
-
for (const name of namedImports.split(",").map((n) => n.trim())) {
|
|
21
|
-
imports.set(name, { name, path, isDefault: false });
|
|
22
|
-
}
|
|
23
|
-
continue;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const defaultImport = match[2];
|
|
27
|
-
if (!defaultImport) continue;
|
|
28
|
-
|
|
29
|
-
imports.set(defaultImport, { name: defaultImport, path, isDefault: true });
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const cleanedCode = compiledCode
|
|
33
|
-
.replace(importRegex, "")
|
|
34
|
-
.replace(/^\s*export\s+\{[\s\S]*?\};?\s*$/gm, "")
|
|
35
|
-
.replace(/^\s*export\s+default\s+function/gm, "function")
|
|
36
|
-
.replace(/^\s*export\s+default\s+/gm, "")
|
|
37
|
-
.replace(/^\s*export\s+(const|function)\s+/gm, "$1 ")
|
|
38
|
-
.replace(/^\s*import\s+React\s+from.*?;?\s*$/gm, "")
|
|
39
|
-
.replace(
|
|
40
|
-
/^\s*const\s+(React|Fragment|Fragment2|jsx|jsx2|jsxs|jsxs2)\s*=.*?;?\s*$/gm,
|
|
41
|
-
"",
|
|
42
|
-
);
|
|
43
|
-
|
|
44
|
-
if (cleanedCode.includes("import React")) {
|
|
45
|
-
logger.warn("Import React still in cleaned code");
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (cleanedCode.includes("const React") || cleanedCode.includes("var React")) {
|
|
49
|
-
logger.warn("React declaration found in cleaned code");
|
|
50
|
-
logger.debug("Code snippet:", cleanedCode.substring(0, 200));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
const exports: MDXExports = {};
|
|
54
|
-
|
|
55
|
-
const frontmatter = extractFrontmatter(cleanedCode);
|
|
56
|
-
if (frontmatter) exports.frontmatter = frontmatter;
|
|
57
|
-
|
|
58
|
-
const metadata = extractMetadata(cleanedCode);
|
|
59
|
-
for (const [key, value] of Object.entries(metadata)) {
|
|
60
|
-
if (value === undefined) continue;
|
|
61
|
-
(exports as Record<string, unknown>)[key] = value;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return { code: cleanedCode, imports, exports };
|
|
65
|
-
}
|