veryfront 0.1.47 → 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 +2 -2
- 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/build/handler.d.ts +1 -1
- package/esm/cli/commands/generate/integration-generator.js +1 -1
- package/esm/cli/commands/init/catalog.js +3 -3
- package/esm/cli/commands/init/command-help.js +2 -2
- package/esm/cli/commands/init/config-generator.d.ts.map +1 -1
- package/esm/cli/commands/init/config-generator.js +8 -0
- package/esm/cli/commands/init/types.d.ts +1 -1
- package/esm/cli/commands/init/types.d.ts.map +1 -1
- package/esm/cli/commands/install/types.d.ts +2 -2
- package/esm/cli/commands/merge/command.d.ts +1 -1
- 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/help/tips.js +1 -1
- package/esm/cli/mcp/remote-file-tools.js +1 -1
- 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/catalog-tools.d.ts +3 -3
- package/esm/cli/mcp/tools/catalog-tools.js +3 -3
- 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/templates/index.js +2 -2
- package/esm/cli/templates/manifest.d.ts +10 -8
- package/esm/cli/templates/manifest.js +15 -13
- package/esm/cli/templates/types.d.ts +1 -1
- package/esm/cli/templates/types.d.ts.map +1 -1
- 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 +10 -0
- package/esm/deno.js +30 -20
- package/esm/src/agent/chat-handler.d.ts +22 -0
- package/esm/src/agent/chat-handler.d.ts.map +1 -1
- package/esm/src/agent/chat-handler.js +88 -28
- 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 +17 -2
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +17 -2
- 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/index.d.ts +1 -1
- package/esm/src/agent/react/index.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/index.d.ts +1 -1
- package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/streaming/handler.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/streaming/handler.js +42 -4
- package/esm/src/agent/react/use-chat/streaming/parts-builder.d.ts +2 -2
- package/esm/src/agent/react/use-chat/streaming/parts-builder.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/streaming/parts-builder.js +14 -1
- package/esm/src/agent/react/use-chat/streaming/types.d.ts +5 -0
- package/esm/src/agent/react/use-chat/streaming/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/types.d.ts +23 -1
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts +15 -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 +187 -35
- 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/client-runtime.d.ts +7 -3
- package/esm/src/build/production-build/client-runtime.d.ts.map +1 -1
- package/esm/src/build/production-build/client-runtime.js +9 -9
- 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 +33 -24
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +40 -26
- 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 -2
- package/esm/src/discovery/types.d.ts +3 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/embedding/chunk.d.ts +18 -0
- package/esm/src/embedding/chunk.d.ts.map +1 -0
- package/esm/src/embedding/chunk.js +48 -0
- package/esm/src/embedding/embedding.d.ts +23 -0
- package/esm/src/embedding/embedding.d.ts.map +1 -0
- package/esm/src/embedding/embedding.js +54 -0
- package/esm/src/embedding/index.d.ts +29 -0
- package/esm/src/embedding/index.d.ts.map +1 -0
- package/esm/src/embedding/index.js +26 -0
- package/esm/src/embedding/react/use-uploads.d.ts +31 -0
- package/esm/src/embedding/react/use-uploads.d.ts.map +1 -0
- package/esm/src/embedding/react/use-uploads.js +71 -0
- package/esm/src/embedding/resolve.d.ts +27 -0
- package/esm/src/embedding/resolve.d.ts.map +1 -0
- package/esm/src/embedding/resolve.js +94 -0
- package/esm/src/embedding/types.d.ts +90 -0
- package/esm/src/embedding/types.d.ts.map +1 -0
- package/esm/src/embedding/types.js +1 -0
- package/esm/src/embedding/upload-handler.d.ts +43 -0
- package/esm/src/embedding/upload-handler.d.ts.map +1 -0
- package/esm/src/embedding/upload-handler.js +144 -0
- package/esm/src/embedding/upload-loader.d.ts +14 -0
- package/esm/src/embedding/upload-loader.d.ts.map +1 -0
- package/esm/src/embedding/upload-loader.js +70 -0
- package/esm/src/embedding/upload-store.d.ts +27 -0
- package/esm/src/embedding/upload-store.d.ts.map +1 -0
- package/esm/src/embedding/upload-store.js +244 -0
- package/esm/src/embedding/vector-store.d.ts +33 -0
- package/esm/src/embedding/vector-store.d.ts.map +1 -0
- package/esm/src/embedding/vector-store.js +215 -0
- 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/modules/import-map/default-import-map.d.ts.map +1 -1
- package/esm/src/modules/import-map/default-import-map.js +8 -0
- package/esm/src/modules/react-loader/component-loader.d.ts.map +1 -1
- package/esm/src/modules/react-loader/component-loader.js +1 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts.map +1 -1
- package/esm/src/modules/react-loader/ssr-module-loader/loader.js +10 -1
- package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts +2 -0
- package/esm/src/modules/react-loader/ssr-module-loader/types.d.ts.map +1 -1
- package/esm/src/modules/react-loader/types.d.ts +2 -0
- package/esm/src/modules/react-loader/types.d.ts.map +1 -1
- package/esm/src/modules/server/module-server.d.ts +2 -0
- package/esm/src/modules/server/module-server.d.ts.map +1 -1
- package/esm/src/modules/server/module-server.js +2 -1
- 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 +18 -2
- package/esm/src/platform/compat/opaque-deps.d.ts.map +1 -1
- package/esm/src/platform/compat/opaque-deps.js +19 -0
- package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
- package/esm/src/platform/compat/path/basic-operations.js +17 -10
- package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
- package/esm/src/platform/compat/path/resolution.js +65 -20
- 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/local/local-embedding-adapter.d.ts +19 -0
- package/esm/src/provider/local/local-embedding-adapter.d.ts.map +1 -0
- package/esm/src/provider/local/local-embedding-adapter.js +32 -0
- package/esm/src/provider/local/local-embedding-engine.d.ts +17 -0
- package/esm/src/provider/local/local-embedding-engine.d.ts.map +1 -0
- package/esm/src/provider/local/local-embedding-engine.js +63 -0
- package/esm/src/provider/local/local-engine.d.ts +7 -0
- package/esm/src/provider/local/local-engine.d.ts.map +1 -1
- package/esm/src/provider/local/local-engine.js +1 -1
- package/esm/src/provider/local/model-catalog.d.ts +10 -1
- package/esm/src/provider/local/model-catalog.d.ts.map +1 -1
- package/esm/src/provider/local/model-catalog.js +61 -0
- 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/agent-card.js +13 -13
- package/esm/src/react/components/ai/chat/components/animations.d.ts +5 -0
- package/esm/src/react/components/ai/chat/components/animations.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/animations.js +13 -1
- package/esm/src/react/components/ai/chat/components/attachment-pill.d.ts +15 -0
- package/esm/src/react/components/ai/chat/components/attachment-pill.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/attachment-pill.js +40 -0
- package/esm/src/react/components/ai/chat/components/branch-picker.d.ts +9 -0
- package/esm/src/react/components/ai/chat/components/branch-picker.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/branch-picker.js +17 -0
- package/esm/src/react/components/ai/chat/components/code-block.d.ts +8 -0
- package/esm/src/react/components/ai/chat/components/code-block.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/code-block.js +38 -0
- package/esm/src/react/components/ai/chat/components/drop-zone.d.ts +7 -0
- package/esm/src/react/components/ai/chat/components/drop-zone.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/drop-zone.js +14 -0
- package/esm/src/react/components/ai/chat/components/empty-state.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/empty-state.js +10 -8
- package/esm/src/react/components/ai/chat/components/inference-badge.js +1 -1
- package/esm/src/react/components/ai/chat/components/inline-citation.d.ts +10 -0
- package/esm/src/react/components/ai/chat/components/inline-citation.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/inline-citation.js +59 -0
- package/esm/src/react/components/ai/chat/components/message-actions.d.ts +3 -2
- package/esm/src/react/components/ai/chat/components/message-actions.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/message-actions.js +10 -10
- package/esm/src/react/components/ai/chat/components/message-edit-form.d.ts +8 -0
- package/esm/src/react/components/ai/chat/components/message-edit-form.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/message-edit-form.js +46 -0
- package/esm/src/react/components/ai/chat/components/message-feedback.d.ts +9 -0
- package/esm/src/react/components/ai/chat/components/message-feedback.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/message-feedback.js +19 -0
- package/esm/src/react/components/ai/chat/components/quick-actions.d.ts +14 -0
- package/esm/src/react/components/ai/chat/components/quick-actions.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/quick-actions.js +7 -0
- package/esm/src/react/components/ai/chat/components/reasoning.d.ts +3 -4
- package/esm/src/react/components/ai/chat/components/reasoning.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/reasoning.js +11 -6
- package/esm/src/react/components/ai/chat/components/sidebar.d.ts +14 -0
- package/esm/src/react/components/ai/chat/components/sidebar.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/sidebar.js +92 -0
- 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/sources.d.ts +13 -0
- package/esm/src/react/components/ai/chat/components/sources.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/sources.js +28 -0
- package/esm/src/react/components/ai/chat/components/step-indicator.d.ts +8 -0
- package/esm/src/react/components/ai/chat/components/step-indicator.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/step-indicator.js +15 -0
- package/esm/src/react/components/ai/chat/components/tab-switcher.d.ts +16 -0
- package/esm/src/react/components/ai/chat/components/tab-switcher.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/tab-switcher.js +28 -0
- package/esm/src/react/components/ai/chat/components/tool-ui.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/tool-ui.js +23 -21
- package/esm/src/react/components/ai/chat/components/upgrade-cta.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/components/upgrade-cta.js +3 -3
- package/esm/src/react/components/ai/chat/components/uploads-panel.d.ts +16 -0
- package/esm/src/react/components/ai/chat/components/uploads-panel.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/uploads-panel.js +46 -0
- package/esm/src/react/components/ai/chat/composition/api.d.ts +10 -5
- package/esm/src/react/components/ai/chat/composition/api.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/composition/api.js +12 -20
- package/esm/src/react/components/ai/chat/composition/chat-composer.d.ts +35 -0
- package/esm/src/react/components/ai/chat/composition/chat-composer.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/chat-composer.js +53 -0
- package/esm/src/react/components/ai/chat/composition/chat-empty.d.ts +20 -0
- package/esm/src/react/components/ai/chat/composition/chat-empty.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/chat-empty.js +23 -0
- package/esm/src/react/components/ai/chat/composition/chat-if.d.ts +14 -0
- package/esm/src/react/components/ai/chat/composition/chat-if.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/chat-if.js +11 -0
- package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts +36 -0
- package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/chat-message-list.js +113 -0
- package/esm/src/react/components/ai/chat/composition/chat-root.d.ts +43 -0
- package/esm/src/react/components/ai/chat/composition/chat-root.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/chat-root.js +78 -0
- package/esm/src/react/components/ai/chat/composition/error-banner.d.ts +12 -0
- package/esm/src/react/components/ai/chat/composition/error-banner.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/error-banner.js +17 -0
- package/esm/src/react/components/ai/chat/composition/message.d.ts +54 -0
- package/esm/src/react/components/ai/chat/composition/message.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/message.js +175 -0
- package/esm/src/react/components/ai/chat/composition/model-avatar.d.ts +14 -0
- package/esm/src/react/components/ai/chat/composition/model-avatar.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/composition/model-avatar.js +60 -0
- package/esm/src/react/components/ai/chat/contexts/chat-context.d.ts +45 -0
- package/esm/src/react/components/ai/chat/contexts/chat-context.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/contexts/chat-context.js +20 -0
- package/esm/src/react/components/ai/chat/contexts/composer-context.d.ts +34 -0
- package/esm/src/react/components/ai/chat/contexts/composer-context.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/contexts/composer-context.js +21 -0
- package/esm/src/react/components/ai/chat/contexts/index.d.ts +13 -0
- package/esm/src/react/components/ai/chat/contexts/index.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/contexts/index.js +12 -0
- package/esm/src/react/components/ai/chat/contexts/message-context.d.ts +30 -0
- package/esm/src/react/components/ai/chat/contexts/message-context.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/contexts/message-context.js +21 -0
- package/esm/src/react/components/ai/chat/contexts/thread-list-context.d.ts +23 -0
- package/esm/src/react/components/ai/chat/contexts/thread-list-context.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/contexts/thread-list-context.js +21 -0
- package/esm/src/react/components/ai/chat/hooks/use-threads.d.ts +24 -0
- package/esm/src/react/components/ai/chat/hooks/use-threads.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/hooks/use-threads.js +151 -0
- package/esm/src/react/components/ai/chat/index.d.ts +102 -17
- package/esm/src/react/components/ai/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/index.js +164 -95
- package/esm/src/react/components/ai/chat/utils/export.d.ts +10 -0
- package/esm/src/react/components/ai/chat/utils/export.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/utils/export.js +64 -0
- package/esm/src/react/components/ai/chat/utils/message-parts.d.ts +12 -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 +55 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts +98 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat-with-sidebar.js +165 -0
- package/esm/src/react/components/ai/chat.d.ts +10 -1
- package/esm/src/react/components/ai/chat.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat.js +25 -1
- package/esm/src/react/components/ai/error-boundary.js +6 -6
- package/esm/src/react/components/ai/icons/index.d.ts +9 -0
- package/esm/src/react/components/ai/icons/index.d.ts.map +1 -1
- package/esm/src/react/components/ai/icons/index.js +82 -0
- package/esm/src/react/components/ai/markdown.d.ts.map +1 -1
- package/esm/src/react/components/ai/markdown.js +12 -12
- package/esm/src/react/components/ai/model-selector.d.ts +10 -2
- package/esm/src/react/components/ai/model-selector.d.ts.map +1 -1
- package/esm/src/react/components/ai/model-selector.js +138 -4
- package/esm/src/react/components/ai/theme.d.ts +96 -13
- package/esm/src/react/components/ai/theme.d.ts.map +1 -1
- package/esm/src/react/components/ai/theme.js +177 -21
- package/esm/src/react/primitives/input-box.d.ts.map +1 -1
- package/esm/src/react/primitives/input-box.js +16 -3
- 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/component-handling.d.ts +2 -0
- package/esm/src/rendering/component-handling.d.ts.map +1 -1
- package/esm/src/rendering/component-handling.js +7 -9
- 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/page-renderer.d.ts.map +1 -1
- package/esm/src/rendering/page-renderer.js +1 -0
- 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/esbuild-plugin.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/esbuild-plugin.js +11 -24
- package/esm/src/routing/api/module-loader/loader.d.ts +1 -0
- package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.js +347 -27
- 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 +9 -0
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -0
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +5187 -0
- package/esm/src/server/handlers/dev/styles-candidate-scanner.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/styles-candidate-scanner.js +3 -190
- package/esm/src/server/handlers/request/module/module-server-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/module-server-handler.js +1 -0
- 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/transforms/plugins/rehype-node-positions.d.ts.map +1 -1
- package/esm/src/transforms/plugins/rehype-node-positions.js +1 -0
- 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 +10 -3
- 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 +2 -2
- 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/commands/init/catalog.ts +3 -3
- package/src/cli/commands/init/command-help.ts +2 -2
- package/src/cli/commands/init/config-generator.ts +9 -0
- package/src/cli/commands/init/types.ts +1 -1
- package/src/cli/help/formatters.ts +11 -4
- package/src/cli/help/main-help.ts +2 -3
- package/src/cli/help/tips.ts +1 -1
- package/src/cli/mcp/remote-file-tools.ts +1 -1
- package/src/cli/mcp/server.ts +2 -5
- package/src/cli/mcp/tools/catalog-tools.ts +3 -3
- 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/templates/index.ts +2 -2
- package/src/cli/templates/manifest.js +15 -13
- package/src/cli/templates/types.ts +1 -1
- 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 +30 -20
- package/src/src/agent/chat-handler.ts +138 -28
- package/src/src/agent/factory.ts +58 -9
- package/src/src/agent/index.ts +24 -2
- package/src/src/agent/memory/memory.ts +0 -9
- package/src/src/agent/react/index.ts +2 -0
- package/src/src/agent/react/use-chat/index.ts +2 -0
- package/src/src/agent/react/use-chat/streaming/handler.ts +66 -5
- package/src/src/agent/react/use-chat/streaming/parts-builder.ts +18 -1
- package/src/src/agent/react/use-chat/streaming/types.ts +6 -0
- package/src/src/agent/react/use-chat/types.ts +26 -1
- package/src/src/agent/react/use-chat/use-chat.ts +245 -36
- 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/client-runtime.ts +21 -5
- 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 +169 -34
- 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 -2
- package/src/src/discovery/types.ts +3 -0
- package/src/src/embedding/chunk.ts +60 -0
- package/src/src/embedding/embedding.ts +62 -0
- package/src/src/embedding/index.ts +49 -0
- package/src/src/embedding/react/use-uploads.ts +101 -0
- package/src/src/embedding/resolve.ts +126 -0
- package/src/src/embedding/types.ts +103 -0
- package/src/src/embedding/upload-handler.ts +180 -0
- package/src/src/embedding/upload-loader.ts +76 -0
- package/src/src/embedding/upload-store.ts +299 -0
- package/src/src/embedding/vector-store.ts +282 -0
- 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/import-map/default-import-map.ts +10 -0
- package/src/src/modules/react-loader/component-loader.ts +1 -0
- package/src/src/modules/react-loader/ssr-module-loader/loader.ts +12 -1
- package/src/src/modules/react-loader/ssr-module-loader/types.ts +2 -0
- package/src/src/modules/react-loader/types.ts +2 -0
- package/src/src/modules/server/module-server.ts +4 -1
- 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 +32 -2
- package/src/src/platform/compat/path/basic-operations.ts +19 -10
- package/src/src/platform/compat/path/resolution.ts +69 -18
- 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/local/local-embedding-adapter.ts +37 -0
- package/src/src/provider/local/local-embedding-engine.ts +88 -0
- package/src/src/provider/local/local-engine.ts +1 -1
- package/src/src/provider/local/model-catalog.ts +67 -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/agent-card.tsx +13 -13
- package/src/src/react/components/ai/chat/components/animations.tsx +31 -1
- package/src/src/react/components/ai/chat/components/attachment-pill.tsx +110 -0
- package/src/src/react/components/ai/chat/components/branch-picker.tsx +70 -0
- package/src/src/react/components/ai/chat/components/code-block.tsx +82 -0
- package/src/src/react/components/ai/chat/components/drop-zone.tsx +49 -0
- package/src/src/react/components/ai/chat/components/empty-state.tsx +20 -8
- package/src/src/react/components/ai/chat/components/inference-badge.tsx +1 -1
- package/src/src/react/components/ai/chat/components/inline-citation.tsx +150 -0
- package/src/src/react/components/ai/chat/components/message-actions.tsx +73 -51
- package/src/src/react/components/ai/chat/components/message-edit-form.tsx +95 -0
- package/src/src/react/components/ai/chat/components/message-feedback.tsx +72 -0
- package/src/src/react/components/ai/chat/components/quick-actions.tsx +38 -0
- package/src/src/react/components/ai/chat/components/reasoning.tsx +40 -35
- package/src/src/react/components/ai/chat/components/sidebar.tsx +204 -0
- package/src/src/react/components/ai/chat/components/skill-badge.tsx +51 -0
- package/src/src/react/components/ai/chat/components/sources.tsx +99 -0
- package/src/src/react/components/ai/chat/components/step-indicator.tsx +33 -0
- package/src/src/react/components/ai/chat/components/tab-switcher.tsx +69 -0
- package/src/src/react/components/ai/chat/components/tool-ui.tsx +31 -29
- package/src/src/react/components/ai/chat/components/upgrade-cta.tsx +3 -4
- package/src/src/react/components/ai/chat/components/uploads-panel.tsx +129 -0
- package/src/src/react/components/ai/chat/composition/api.tsx +12 -62
- package/src/src/react/components/ai/chat/composition/chat-composer.tsx +205 -0
- package/src/src/react/components/ai/chat/composition/chat-empty.tsx +77 -0
- package/src/src/react/components/ai/chat/composition/chat-if.tsx +25 -0
- package/src/src/react/components/ai/chat/composition/chat-message-list.tsx +356 -0
- package/src/src/react/components/ai/chat/composition/chat-root.tsx +181 -0
- package/src/src/react/components/ai/chat/composition/error-banner.tsx +38 -0
- package/src/src/react/components/ai/chat/composition/message.tsx +337 -0
- package/src/src/react/components/ai/chat/composition/model-avatar.tsx +103 -0
- package/src/src/react/components/ai/chat/contexts/chat-context.tsx +78 -0
- package/src/src/react/components/ai/chat/contexts/composer-context.tsx +59 -0
- package/src/src/react/components/ai/chat/contexts/index.ts +36 -0
- package/src/src/react/components/ai/chat/contexts/message-context.tsx +49 -0
- package/src/src/react/components/ai/chat/contexts/thread-list-context.tsx +40 -0
- package/src/src/react/components/ai/chat/hooks/use-threads.ts +208 -0
- package/src/src/react/components/ai/chat/index.tsx +389 -230
- package/src/src/react/components/ai/chat/utils/export.ts +77 -0
- package/src/src/react/components/ai/chat/utils/message-parts.ts +63 -1
- package/src/src/react/components/ai/chat-with-sidebar.tsx +371 -0
- package/src/src/react/components/ai/chat.tsx +122 -7
- package/src/src/react/components/ai/error-boundary.tsx +6 -6
- package/src/src/react/components/ai/icons/index.ts +100 -0
- package/src/src/react/components/ai/markdown.tsx +12 -15
- package/src/src/react/components/ai/model-selector.tsx +223 -15
- package/src/src/react/components/ai/theme.ts +205 -39
- package/src/src/react/primitives/input-box.tsx +27 -4
- package/src/src/rendering/cache/index.ts +12 -5
- package/src/src/rendering/component-handling.ts +9 -9
- package/src/src/rendering/orchestrator/pipeline.ts +12 -2
- package/src/src/rendering/page-renderer.ts +1 -0
- 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/esbuild-plugin.ts +11 -25
- package/src/src/routing/api/module-loader/loader.ts +421 -17
- 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 +5188 -0
- package/src/src/server/handlers/dev/styles-candidate-scanner.ts +3 -191
- package/src/src/server/handlers/request/module/module-server-handler.ts +1 -0
- 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/transforms/plugins/rehype-node-positions.ts +1 -0
- 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/logger/logger.ts +2 -2
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/server.ts"],"names":[],"mappings":"AA8BA,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,UAAU,CAA2B;gBAEjC,MAAM,GAAE,eAAoB;IAWxC,KAAK,IAAI,IAAI;IAeP,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B,OAAO,CAAC,SAAS;IAkDjB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,mBAAmB;IA+B3B,OAAO,CAAC,mBAAmB;IAqF3B,OAAO,CAAC,iBAAiB;IAiCzB,OAAO,CAAC,gBAAgB;IA0CxB,OAAO,CAAC,eAAe;CAgExB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,YAAY,CAIrE;AAED,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC"}
|
package/esm/cli/mcp/server.js
CHANGED
|
@@ -6,13 +6,11 @@
|
|
|
6
6
|
* and HTTP transport (for remote access).
|
|
7
7
|
*/
|
|
8
8
|
import * as dntShim from "../../_dnt.shims.js";
|
|
9
|
-
import { readTextFile } from "../../src/platform/index.js";
|
|
9
|
+
import { cwd, readTextFile } from "../../src/platform/index.js";
|
|
10
10
|
import { createHttpServer } from "../../src/platform/compat/http/index.js";
|
|
11
|
-
import { cwd } from "../../src/platform/index.js";
|
|
12
11
|
import { withSpan } from "../../src/observability/tracing/otlp-setup.js";
|
|
13
12
|
import { createIssuesManager } from "../../src/issues/index.js";
|
|
14
|
-
import { getErrorCollector } from "../../src/observability/index.js";
|
|
15
|
-
import { getLogBuffer } from "../../src/observability/index.js";
|
|
13
|
+
import { getErrorCollector, getLogBuffer } from "../../src/observability/index.js";
|
|
16
14
|
import { allTools, getTool, setServerStartTime } from "./tools.js";
|
|
17
15
|
import { startStdioJsonRpc } from "./stdio.js";
|
|
18
16
|
import { errorResponse, JSONRPCRequestSchema, parseError, PromptsGetParamsSchema, ResourcesReadParamsSchema, successResponse, ToolsCallParamsSchema, } from "./jsonrpc.js";
|
|
@@ -407,5 +405,4 @@ export function createMCPServer(config) {
|
|
|
407
405
|
return server;
|
|
408
406
|
}
|
|
409
407
|
export * from "../../src/observability/index.js";
|
|
410
|
-
export * from "../../src/observability/index.js";
|
|
411
408
|
export * from "./tools.js";
|
|
@@ -52,18 +52,18 @@ type ListUsecasesInput = z.infer<typeof listUsecasesInput>;
|
|
|
52
52
|
export declare const vfListUsecases: MCPTool<ListUsecasesInput, UsecaseInfo[]>;
|
|
53
53
|
declare const createProjectInput: z.ZodObject<{
|
|
54
54
|
name: z.ZodString;
|
|
55
|
-
template: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ai-agent", "
|
|
55
|
+
template: z.ZodDefault<z.ZodOptional<z.ZodEnum<["ai-agent", "docs-agent", "multi-agent-system", "agentic-workflow", "coding-agent", "saas-starter", "minimal"]>>>;
|
|
56
56
|
integrations: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
57
57
|
directory: z.ZodOptional<z.ZodString>;
|
|
58
58
|
}, "strip", z.ZodTypeAny, {
|
|
59
59
|
name: string;
|
|
60
|
-
template: "minimal" | "ai-agent" | "
|
|
60
|
+
template: "minimal" | "ai-agent" | "docs-agent" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter";
|
|
61
61
|
integrations?: string[] | undefined;
|
|
62
62
|
directory?: string | undefined;
|
|
63
63
|
}, {
|
|
64
64
|
name: string;
|
|
65
65
|
integrations?: string[] | undefined;
|
|
66
|
-
template?: "minimal" | "ai-agent" | "
|
|
66
|
+
template?: "minimal" | "ai-agent" | "docs-agent" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter" | undefined;
|
|
67
67
|
directory?: string | undefined;
|
|
68
68
|
}>;
|
|
69
69
|
type CreateProjectInput = z.infer<typeof createProjectInput>;
|
|
@@ -34,7 +34,7 @@ const EXAMPLES = [
|
|
|
34
34
|
{
|
|
35
35
|
name: "data-analyst",
|
|
36
36
|
description: "RAG-powered data analyst with Sheets and Snowflake",
|
|
37
|
-
template: "
|
|
37
|
+
template: "docs-agent",
|
|
38
38
|
integrations: ["sheets", "snowflake", "notion"],
|
|
39
39
|
features: ["Document search", "Chart generation", "Reports"],
|
|
40
40
|
difficulty: "advanced",
|
|
@@ -64,7 +64,7 @@ const TEMPLATES = [
|
|
|
64
64
|
recommended: true,
|
|
65
65
|
},
|
|
66
66
|
{
|
|
67
|
-
name: "
|
|
67
|
+
name: "docs-agent",
|
|
68
68
|
description: "Chat with your docs using retrieval-augmented generation",
|
|
69
69
|
features: ["Document search", "Source citations", "File-based knowledge"],
|
|
70
70
|
},
|
|
@@ -339,7 +339,7 @@ const createProjectInput = z.object({
|
|
|
339
339
|
template: z
|
|
340
340
|
.enum([
|
|
341
341
|
"ai-agent",
|
|
342
|
-
"
|
|
342
|
+
"docs-agent",
|
|
343
343
|
"multi-agent-system",
|
|
344
344
|
"agentic-workflow",
|
|
345
345
|
"coding-agent",
|
|
@@ -57,8 +57,8 @@ declare const previewRouteInput: z.ZodObject<{
|
|
|
57
57
|
format: z.ZodDefault<z.ZodOptional<z.ZodEnum<["html", "json", "status"]>>>;
|
|
58
58
|
}, "strip", z.ZodTypeAny, {
|
|
59
59
|
port: number;
|
|
60
|
-
route: string;
|
|
61
60
|
format: "status" | "json" | "html";
|
|
61
|
+
route: string;
|
|
62
62
|
}, {
|
|
63
63
|
route: string;
|
|
64
64
|
port?: number | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/dev-tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"dev-tools.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/dev-tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAO3C,QAAA,MAAM,cAAc;;;;;;EAKlB,CAAC;AAEH,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAErD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,eAAe,CAUhE,CAAC;AAMF,QAAA,MAAM,oBAAoB;;;;;;;;;EAGxB,CAAC;AAEH,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,kBAAkB,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,oBAAoB,EAAE,kBAAkB,CAqC/E,CAAC;AAMF,QAAA,MAAM,eAAe;;;;;;;;;EAGnB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvD,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAqBnE,CAAC;AAMF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAQrB,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,CAmDzE,CAAC;AAMF,QAAA,MAAM,iBAAiB;;;;;;;;;;;;EAYrB,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE3D,UAAU,kBAAkB;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,OAAO,CAAC,iBAAiB,EAAE,kBAAkB,CAuCzE,CAAC;AAMF,QAAA,MAAM,sBAAsB;;;;;;EAE1B,CAAC;AAEH,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAErE,UAAU,cAAc;IACtB,MAAM,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;KACH,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,OAAO,CAAC,sBAAsB,EAAE,cAAc,CA2E/E,CAAC"}
|
|
@@ -6,8 +6,7 @@ import { z } from "zod";
|
|
|
6
6
|
import { getEnvironmentConfig } from "../../../src/config/index.js";
|
|
7
7
|
import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
|
|
8
8
|
import { ReloadNotifier } from "../../../src/server/index.js";
|
|
9
|
-
import { getErrorCollector } from "../../../src/observability/index.js";
|
|
10
|
-
import { getLogBuffer } from "../../../src/observability/index.js";
|
|
9
|
+
import { getErrorCollector, getLogBuffer } from "../../../src/observability/index.js";
|
|
11
10
|
import { formatError } from "./helpers.js";
|
|
12
11
|
// ============================================================================
|
|
13
12
|
// Tool: vf_hot_reload
|
|
@@ -10,12 +10,12 @@ declare const scaffoldInput: z.ZodObject<{
|
|
|
10
10
|
methods: z.ZodOptional<z.ZodArray<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH"]>, "many">>;
|
|
11
11
|
projectPath: z.ZodOptional<z.ZodString>;
|
|
12
12
|
}, "strip", z.ZodTypeAny, {
|
|
13
|
-
type: "prompt" | "api" | "agent" | "
|
|
13
|
+
type: "prompt" | "api" | "agent" | "layout" | "component" | "tool" | "page";
|
|
14
14
|
name: string;
|
|
15
15
|
methods?: ("DELETE" | "GET" | "PATCH" | "POST" | "PUT")[] | undefined;
|
|
16
16
|
projectPath?: string | undefined;
|
|
17
17
|
}, {
|
|
18
|
-
type: "prompt" | "api" | "agent" | "
|
|
18
|
+
type: "prompt" | "api" | "agent" | "layout" | "component" | "tool" | "page";
|
|
19
19
|
name: string;
|
|
20
20
|
methods?: ("DELETE" | "GET" | "PATCH" | "POST" | "PUT")[] | undefined;
|
|
21
21
|
projectPath?: string | undefined;
|
package/esm/cli/mcp/tools.d.ts
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* MCP Tools for Veryfront Dev Server
|
|
3
3
|
**************************/
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
import { type DevError } from "../../src/observability/index.js";
|
|
6
|
-
import { type LogEntry } from "../../src/observability/index.js";
|
|
5
|
+
import { type DevError, type LogEntry } from "../../src/observability/index.js";
|
|
7
6
|
import { type EnvironmentConfig } from "../../src/config/index.js";
|
|
8
7
|
import type { MCPTool } from "../../src/mcp/index.js";
|
|
9
8
|
export type { MCPTool };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/tools.ts"],"names":[],"mappings":"AAAA;;4BAE4B;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/cli/mcp/tools.ts"],"names":[],"mappings":"AAAA;;4BAE4B;AAE5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,KAAK,QAAQ,EAIb,KAAK,QAAQ,EAEd,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAMtD,YAAY,EAAE,OAAO,EAAE,CAAC;AAUxB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;EAMlB,CAAC;AAEH,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAErD,eAAO,MAAM,WAAW,EAAE,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,CAc3D,CAAC;AAEF,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAEH,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEjD,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,YAAY,EAAE,QAAQ,EAAE,CAcvD,CAAC;AAEF,QAAA,MAAM,eAAe;;;;;;EAInB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAEvD,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,eAAO,MAAM,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAsBnE,CAAC;AAEF,QAAA,MAAM,cAAc,gDAAe,CAAC;AAEpC,KAAK,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAErD,UAAU,YAAY;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAsBvC;AAED,eAAO,MAAM,WAAW,2BAAsB,CAAC;AAE/C,QAAA,MAAM,gBAAgB;;;;;;;;;EAKpB,CAAC;AAEH,KAAK,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEzD,UAAU,iBAAiB;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,gBAAgB,EAAE,iBAAiB,CActE,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,OAAO,EAS7B,CAAC;AAEF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEzD;AAED,wBAAgB,SAAS,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAExE"}
|
package/esm/cli/mcp/tools.js
CHANGED
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
* MCP Tools for Veryfront Dev Server
|
|
3
3
|
**************************/
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
import { getErrorCollector } from "../../src/observability/index.js";
|
|
6
|
-
import { getLogBuffer } from "../../src/observability/index.js";
|
|
5
|
+
import { getErrorCollector, getLogBuffer, } from "../../src/observability/index.js";
|
|
7
6
|
import { createFileSystem } from "../../src/platform/index.js";
|
|
8
7
|
import { getEnvironmentConfig } from "../../src/config/index.js";
|
|
9
8
|
import { advancedTools } from "./advanced-tools.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reserve-slug.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/reserve-slug.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"reserve-slug.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/reserve-slug.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AASzF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAeD,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,aAAa,CAAC,CAuBxB;AAmCD,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,OAAO,CAAC,CAWlB"}
|
|
@@ -9,13 +9,11 @@ import * as dntShim from "../../_dnt.shims.js";
|
|
|
9
9
|
import { getEnvironmentConfig } from "../../src/config/index.js";
|
|
10
10
|
import { capitalizeSeparatedWords } from "../../src/utils/case-utils.js";
|
|
11
11
|
import { randomSuffix } from "./slug.js";
|
|
12
|
+
import { getApiUrl } from "./constants.js";
|
|
12
13
|
function slugToName(slug) {
|
|
13
14
|
return capitalizeSeparatedWords(slug, "-", " ");
|
|
14
15
|
}
|
|
15
16
|
const MAX_SLUG_ATTEMPTS = 10;
|
|
16
|
-
function getApiUrl(env = getEnvironmentConfig()) {
|
|
17
|
-
return env.apiUrl ?? "https://api.veryfront.com";
|
|
18
|
-
}
|
|
19
17
|
export async function reserveProjectSlug(slug, token, env = getEnvironmentConfig()) {
|
|
20
18
|
const name = slugToName(slug);
|
|
21
19
|
let currentSlug = slug;
|
package/esm/cli/sync/ignore.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare function loadIgnorePatterns(projectPath: string): Promise<string[
|
|
|
14
14
|
/**
|
|
15
15
|
* Create an ignore checker with loaded patterns
|
|
16
16
|
*/
|
|
17
|
-
export declare function createIgnoreChecker(patterns: string[]): IgnoreChecker;
|
|
17
|
+
export declare function createIgnoreChecker(patterns: readonly string[]): IgnoreChecker;
|
|
18
18
|
/**
|
|
19
19
|
* Create default ignore checker (without loading .vfignore)
|
|
20
20
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../../src/cli/sync/ignore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyDH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC,6CAA6C;IAC7C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB/E;
|
|
1
|
+
{"version":3,"file":"ignore.d.ts","sourceRoot":"","sources":["../../../src/cli/sync/ignore.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyDH,MAAM,WAAW,aAAa;IAC5B,wCAAwC;IACxC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAEzC,6CAA6C;IAC7C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CACjD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoB/E;AA2BD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,aAAa,CAe9E;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,aAAa,CAE1D"}
|
package/esm/cli/sync/ignore.js
CHANGED
|
@@ -74,22 +74,32 @@ export async function loadIgnorePatterns(projectPath) {
|
|
|
74
74
|
}
|
|
75
75
|
return patterns;
|
|
76
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Escape special regex characters
|
|
79
|
+
*/
|
|
80
|
+
function escapeRegex(str) {
|
|
81
|
+
return str.replace(/[.+^${}()|[\]\\]/g, "\\$&");
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Convert a single ignore pattern to a RegExp
|
|
85
|
+
*/
|
|
86
|
+
function patternToRegex(pattern) {
|
|
87
|
+
if (pattern.endsWith("/")) {
|
|
88
|
+
const dirName = pattern.slice(0, -1);
|
|
89
|
+
return new RegExp(`(^|/)${escapeRegex(dirName)}(/|$)`);
|
|
90
|
+
}
|
|
91
|
+
const regex = escapeRegex(pattern)
|
|
92
|
+
.replace(/\\\*/g, ".*") // * matches anything
|
|
93
|
+
.replace(/\\\?/g, "."); // ? matches single char
|
|
94
|
+
if (pattern.startsWith("*"))
|
|
95
|
+
return new RegExp(`(^|/)${regex}$`);
|
|
96
|
+
return new RegExp(`(^|/)${regex}(/|$)`);
|
|
97
|
+
}
|
|
77
98
|
/**
|
|
78
99
|
* Create an ignore checker with loaded patterns
|
|
79
100
|
*/
|
|
80
101
|
export function createIgnoreChecker(patterns) {
|
|
81
|
-
const regexPatterns = patterns.map(
|
|
82
|
-
if (pattern.endsWith("/")) {
|
|
83
|
-
const dirName = pattern.slice(0, -1);
|
|
84
|
-
return new RegExp(`(^|/)${escapeRegex(dirName)}(/|$)`);
|
|
85
|
-
}
|
|
86
|
-
const regex = escapeRegex(pattern)
|
|
87
|
-
.replace(/\\\*/g, ".*") // * matches anything
|
|
88
|
-
.replace(/\\\?/g, "."); // ? matches single char
|
|
89
|
-
if (pattern.startsWith("*"))
|
|
90
|
-
return new RegExp(`(^|/)${regex}$`);
|
|
91
|
-
return new RegExp(`(^|/)${regex}(/|$)`);
|
|
92
|
-
});
|
|
102
|
+
const regexPatterns = patterns.map(patternToRegex);
|
|
93
103
|
function isIgnored(relativePath) {
|
|
94
104
|
const normalizedPath = relativePath.replace(/\\/g, "/");
|
|
95
105
|
return regexPatterns.some((regex) => regex.test(normalizedPath));
|
|
@@ -102,12 +112,6 @@ export function createIgnoreChecker(patterns) {
|
|
|
102
112
|
}
|
|
103
113
|
return { isIgnored, isSupportedExtension };
|
|
104
114
|
}
|
|
105
|
-
/**
|
|
106
|
-
* Escape special regex characters
|
|
107
|
-
*/
|
|
108
|
-
function escapeRegex(str) {
|
|
109
|
-
return str.replace(/[.+^${}()|[\]\\]/g, "\\$&");
|
|
110
|
-
}
|
|
111
115
|
/**
|
|
112
116
|
* Create default ignore checker (without loading .vfignore)
|
|
113
117
|
*/
|
|
@@ -17,7 +17,7 @@ const OPENAI_KEY_CONFIG = {
|
|
|
17
17
|
};
|
|
18
18
|
export const templateConfigs = {
|
|
19
19
|
"ai-agent": { envVars: [OPENAI_KEY_CONFIG] },
|
|
20
|
-
"
|
|
20
|
+
"docs-agent": { envVars: [OPENAI_KEY_CONFIG] },
|
|
21
21
|
"multi-agent-system": { envVars: [OPENAI_KEY_CONFIG] },
|
|
22
22
|
"agentic-workflow": { envVars: [OPENAI_KEY_CONFIG] },
|
|
23
23
|
"coding-agent": { envVars: [OPENAI_KEY_CONFIG] },
|
|
@@ -25,7 +25,7 @@ export const templateConfigs = {
|
|
|
25
25
|
};
|
|
26
26
|
const DIRECTORY_BASED_TEMPLATES = [
|
|
27
27
|
"ai-agent",
|
|
28
|
-
"
|
|
28
|
+
"docs-agent",
|
|
29
29
|
"multi-agent-system",
|
|
30
30
|
"agentic-workflow",
|
|
31
31
|
"coding-agent",
|
|
@@ -26,28 +26,30 @@ declare namespace _default {
|
|
|
26
26
|
"tools/search.ts": string;
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
"
|
|
29
|
+
"ai-agent": {
|
|
30
30
|
files: {
|
|
31
31
|
"README.md": string;
|
|
32
32
|
"app/api/chat/route.ts": string;
|
|
33
33
|
"app/layout.tsx": string;
|
|
34
34
|
"app/page.tsx": string;
|
|
35
35
|
"tsconfig.json": string;
|
|
36
|
-
"agents/
|
|
37
|
-
"
|
|
38
|
-
"content/architecture.md": string;
|
|
39
|
-
"tools/search-docs.ts": string;
|
|
36
|
+
"agents/assistant.ts": string;
|
|
37
|
+
"tools/calculator.ts": string;
|
|
40
38
|
};
|
|
41
39
|
};
|
|
42
|
-
"
|
|
40
|
+
"docs-agent": {
|
|
43
41
|
files: {
|
|
44
42
|
"README.md": string;
|
|
43
|
+
"app/api/uploads/route.ts": string;
|
|
44
|
+
"app/api/uploads/[id]/route.ts": string;
|
|
45
45
|
"app/api/chat/route.ts": string;
|
|
46
46
|
"app/layout.tsx": string;
|
|
47
47
|
"app/page.tsx": string;
|
|
48
48
|
"tsconfig.json": string;
|
|
49
|
-
"
|
|
50
|
-
"
|
|
49
|
+
"store.ts": string;
|
|
50
|
+
"agents/rag.ts": string;
|
|
51
|
+
"content/getting-started.md": string;
|
|
52
|
+
"content/architecture.md": string;
|
|
51
53
|
};
|
|
52
54
|
};
|
|
53
55
|
minimal: {
|
|
@@ -26,19 +26,6 @@ export default {
|
|
|
26
26
|
"tools/search.ts": "import { tool } from \"veryfront/tool\";\nimport { z } from \"zod\";\n\nexport default tool({\n id: \"search\",\n description: \"Search your knowledge base\",\n inputSchema: z.object({\n query: z.string().describe(\"Search query\"),\n }),\n execute: async ({ query }) => {\n // Replace with your domain-specific search logic\n return {\n results: [],\n query,\n message: \"Connect your data source for real results.\",\n };\n },\n});\n"
|
|
27
27
|
}
|
|
28
28
|
},
|
|
29
|
-
"chat-with-your-docs": {
|
|
30
|
-
"files": {
|
|
31
|
-
"README.md": "# Chat with Your Docs\n\nA chatbot that answers questions from your own documents.\n\n## What's included\n\n- Q&A agent with source citation\n- Keyword-based document search over markdown files\n- Sample content in `/content` directory\n\n## Structure\n\n```\nagents/qa.ts Q&A agent with citation instructions\ntools/search-docs.ts Searches markdown files by relevance\ncontent/\n getting-started.md Sample document\n architecture.md Sample document\napp/\n api/chat/route.ts Chat API endpoint\n page.tsx Chat interface\n```\n\nAdd your own `.md`, `.mdx`, or `.txt` files to `content/` to expand the knowledge base.\n\nThis is a starter template to give you a good starting point — not a production-ready setup.\n",
|
|
32
|
-
"app/api/chat/route.ts": "import { createChatHandler } from \"veryfront/agent\";\n\nexport const POST = createChatHandler(\"qa\");\n",
|
|
33
|
-
"app/layout.tsx": "import { Head } from \"veryfront/head\";\n\nexport default function RootLayout({\n children,\n}: {\n children: React.ReactNode;\n}): React.ReactNode {\n return (\n <>\n <Head>\n <title>Chat with Your Docs</title>\n </Head>\n <div className=\"flex flex-col h-screen bg-white dark:bg-neutral-950\">\n <header className=\"flex-shrink-0 border-b border-neutral-200 dark:border-neutral-800\">\n <div className=\"max-w-3xl mx-auto flex items-center gap-3 px-4 py-3\">\n <div className=\"w-8 h-8 rounded-lg bg-emerald-500/10 flex items-center justify-center\">\n <svg className=\"w-4 h-4 text-emerald-500\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}>\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9zm3.75 11.625a2.625 2.625 0 11-5.25 0 2.625 2.625 0 015.25 0z\" />\n </svg>\n </div>\n <div>\n <h1 className=\"font-medium text-neutral-900 dark:text-white text-sm\">Docs Q&A</h1>\n <p className=\"text-xs text-neutral-500 dark:text-neutral-400\">Ask questions about your documents</p>\n </div>\n </div>\n </header>\n {children}\n </div>\n </>\n );\n}\n",
|
|
34
|
-
"app/page.tsx": "'use client'\n\nimport { Chat, useChat } from 'veryfront/chat'\n\nexport default function DocsChat(): JSX.Element {\n const chat = useChat({ api: '/api/chat' })\n\n return <Chat {...chat} className=\"flex-1 min-h-0\" placeholder=\"Ask a question about your docs...\" />\n}\n",
|
|
35
|
-
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"strict\": true,\n \"jsx\": \"react-jsx\",\n \"skipLibCheck\": true,\n \"esModuleInterop\": true,\n \"paths\": {\n \"@/*\": [\"./*\"]\n }\n },\n \"include\": [\"**/*.ts\", \"**/*.tsx\"],\n \"exclude\": [\"node_modules\"]\n}\n",
|
|
36
|
-
"agents/qa.ts": "import { agent } from \"veryfront/agent\";\n\nexport default agent({\n id: \"qa\",\n model: \"openai/gpt-4o\",\n system: `You answer questions using the provided documents. Always cite your sources by referencing the document title. If the documents don't contain the answer, say so honestly.`,\n tools: true,\n maxSteps: 5,\n});\n",
|
|
37
|
-
"content/getting-started.md": "# Getting Started\n\nWelcome to Acme Platform. This guide covers initial setup and core concepts.\n\n## Installation\n\nInstall the CLI globally:\n\n```bash\nnpm install -g @acme/cli\n```\n\n## Creating a Project\n\nRun the init command to scaffold a new project:\n\n```bash\nacme init my-project\ncd my-project\n```\n\n## Project Structure\n\n- `src/` — Application source code\n- `config/` — Configuration files\n- `tests/` — Test suite\n- `docs/` — Documentation\n\n## Configuration\n\nCreate an `acme.config.ts` file in your project root:\n\n```ts\nexport default {\n name: \"my-project\",\n region: \"us-east-1\",\n features: [\"auth\", \"storage\"],\n};\n```\n\n## Next Steps\n\n- Read the [Architecture Guide](./architecture) to understand the system design\n- Check [API Reference](./api-reference) for available endpoints\n- Join our Discord community for support\n",
|
|
38
|
-
"content/architecture.md": "# Architecture\n\nAcme Platform uses a modular, event-driven architecture.\n\n## Core Components\n\n### API Gateway\nRoutes incoming requests to the appropriate microservice. Handles authentication, rate limiting, and request validation.\n\n### Event Bus\nAsynchronous message broker connecting all services. Supports pub/sub and point-to-point messaging patterns.\n\n### Data Layer\nMulti-tenant data storage with automatic sharding. Supports PostgreSQL for relational data and Redis for caching.\n\n## Request Flow\n\n1. Client sends request to API Gateway\n2. Gateway validates authentication token\n3. Request is routed to the target service\n4. Service processes request and publishes events\n5. Response is returned through the gateway\n\n## Scaling\n\nEach component scales independently. The API Gateway uses horizontal scaling with load balancing. Services auto-scale based on queue depth and CPU utilization.\n\n## Security\n\n- All inter-service communication uses mTLS\n- API tokens are rotated every 24 hours\n- Data at rest is encrypted with AES-256\n- Audit logs are retained for 90 days\n",
|
|
39
|
-
"tools/search-docs.ts": "import { tool } from \"veryfront/tool\";\nimport { z } from \"zod\";\nimport { readTextFile, readDir, join, extname } from \"veryfront/fs\";\n\nconst CONTENT_DIR = \"content\";\nconst ALLOWED_EXTENSIONS = new Set([\".md\", \".mdx\", \".txt\"]);\n\nasync function listContentFiles(dir: string): Promise<string[]> {\n const files: string[] = [];\n\n for await (const entry of readDir(dir)) {\n const fullPath = join(dir, entry.name);\n\n if (entry.isDirectory) {\n files.push(...(await listContentFiles(fullPath)));\n } else if (entry.isFile && ALLOWED_EXTENSIONS.has(extname(entry.name))) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nexport default tool({\n id: \"search-docs\",\n description: \"Search documents in the knowledge base for relevant content\",\n inputSchema: z.object({\n query: z.string().describe(\"Search query\"),\n }),\n execute: async ({ query }) => {\n const files = await listContentFiles(CONTENT_DIR);\n const results: Array<{ title: string; content: string; relevance: number }> = [];\n const queryTerms = query.toLowerCase().split(/\\s+/);\n\n for (const file of files) {\n const content = await readTextFile(file);\n if (!content) continue;\n\n const lower = content.toLowerCase();\n const relevance = queryTerms.filter((term) => lower.includes(term)).length / queryTerms.length;\n\n if (relevance > 0) {\n const title = file.replace(/^content\\//, \"\").replace(/\\.(md|mdx|txt)$/, \"\");\n results.push({ title, content: content.slice(0, 2000), relevance });\n }\n }\n\n results.sort((a, b) => b.relevance - a.relevance);\n return { documents: results.slice(0, 3) };\n },\n});\n"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
29
|
"ai-agent": {
|
|
43
30
|
"files": {
|
|
44
31
|
"README.md": "# AI Agent\n\nA simple conversational AI with tool support.\n\n## What's included\n\n- Single assistant agent with streaming chat UI\n- Example calculator tool\n- `useChat` hook for real-time responses\n\n## Structure\n\n```\nagents/assistant.ts Agent definition\ntools/calculator.ts Example tool\napp/\n api/chat/route.ts Chat API endpoint\n page.tsx Chat interface\n```\n\nThis is a starter template to give you a good starting point — not a production-ready setup.\n",
|
|
@@ -50,6 +37,21 @@ export default {
|
|
|
50
37
|
"tools/calculator.ts": "import { tool } from \"veryfront/tool\";\nimport { z } from \"zod\";\n\nexport default tool({\n id: \"calculator\",\n description: \"Perform basic arithmetic operations\",\n inputSchema: z.object({\n operation: z.enum([\"add\", \"subtract\", \"multiply\", \"divide\"]),\n a: z.number(),\n b: z.number(),\n }),\n execute: async ({ operation, a, b }) => {\n if (operation === \"divide\" && b === 0) {\n throw new Error(\"Cannot divide by zero\");\n }\n\n if (operation === \"add\") return { result: a + b };\n if (operation === \"subtract\") return { result: a - b };\n if (operation === \"multiply\") return { result: a * b };\n return { result: a / b };\n },\n});\n"
|
|
51
38
|
}
|
|
52
39
|
},
|
|
40
|
+
"docs-agent": {
|
|
41
|
+
"files": {
|
|
42
|
+
"README.md": "# Docs Agent\n\nA chatbot that answers questions from your own documents using Retrieval-Augmented Generation (RAG).\n\n## What's included\n\n- Q&A agent with source citation\n- Embedding-based semantic search (OpenAI text-embedding-3-small)\n- Document upload supporting PDF, DOCX, XLSX, PPTX, CSV, HTML, RTF, EPUB, TXT, and Markdown\n- JSON-based vector store — no external database required\n- Sample content in `/content` directory auto-indexed on first search\n\n## Getting started\n\n1. Set your OpenAI API key:\n\n ```bash\n export OPENAI_API_KEY=sk-...\n ```\n\n2. Start the dev server:\n\n ```bash\n npx veryfront dev\n ```\n\n3. Open the app and upload a document or ask a question — the sample docs in `content/` are indexed automatically.\n\n## Architecture\n\nRAG grounds LLM responses in your documents through three pipelines — **Ingestion**, **Query**, and **RAG** — orchestrated around a shared vector store.\n\n```mermaid\nflowchart LR\n ChatUI_L[\"Chat UI\"]\n\n subgraph IngestionFlow[\"Ingestion Pipeline\"]\n D[\"Documents\"] --> EXT[\"Extraction\"] --> DC[\"Chunking\"] --> DE[\"Document\\nEmbedding\"] --> ING[\"Storage\"]\n end\n\n subgraph QueryFlow[\"Query Pipeline\"]\n Q[\"Query\"] --> QE[\"Query\\nEmbedding\"] --> SS[\"Similarity\\nSearch\"]\n end\n\n subgraph RAGFlow[\"RAG Pipeline\"]\n BF[\"beforeStream\\nHook\"] --> RET[\"Retrieval\"] --> AUG[\"Augmentation\"] --> AG[\"Agent\"] --> GEN[\"Generation\"]\n end\n\n EMB((\"Embedding\\nModel\"))\n GEN_LLM((\"Generative\\nModel\"))\n VS[(\"Vector\\nStore\")]\n ChatUI_R[\"Chat UI\"]\n\n ChatUI_L --> D\n ChatUI_L --> Q\n\n QE -.- EMB\n DE -.- EMB\n\n SS --> VS\n ING --> VS\n\n Q --> BF\n VS --> RET\n AG -.- GEN_LLM\n GEN -.- GEN_LLM\n GEN --> ChatUI_R\n```\n\n### Pipelines\n\n**Ingestion** — Documents are parsed into plain text via the built-in kreuzberg extraction engine (supporting PDF, DOCX, XLSX, PPTX, HTML, RTF, EPUB, and 76+ formats), split into overlapping chunks (~1000 chars, 200 char overlap), and stored with their embeddings in `data/index.json`. Embeddings are generated lazily on first search to keep uploads fast.\n\n**Query** — The user's query is embedded into the same vector space as the documents, then compared against all stored chunks using cosine similarity to find the top-*k* most relevant results.\n\n**RAG** — The `beforeStream` hook in the chat route intercepts each message before it reaches the agent. It searches the document store for relevant chunks, assembles them into context, and prepends them as a system message. The agent then generates a cited response streamed back to the user.\n\n## Structure\n\n```\nstore.ts Upload store config (embedding model, storage path)\nagents/rag.ts Q&A agent with citation instructions\ncontent/\n getting-started.md Sample document\n architecture.md Sample document\napp/\n api/chat/route.ts Chat API endpoint\n api/uploads/route.ts Upload (POST) and list (GET) uploads\n api/uploads/[id]/route.ts Delete upload\n page.tsx Chat UI with document upload panel\n layout.tsx Root layout with header\n```\n\n## Framework usage\n\n| What | Framework | Template code |\n|------|-----------|---------------|\n| Chat UI + streaming | `Chat`, `useChat` | `page.tsx` |\n| Upload management | `useUploads` hook | `page.tsx` |\n| Source display | `showSources` prop on `Chat` | `page.tsx` |\n| Upload API routes | `createUploadHandler` | 1-line per route file |\n| Chat API route | `createChatHandler` | 1 line in `route.ts` |\n| Agent definition | `agent()` | Config object in `agents/rag.ts` |\n| RAG retrieval | `beforeStream` hook | Context injection in `api/chat/route.ts` |\n| Vector store | `uploadStore()` | Config in `store.ts` |\n\n## Adding documents\n\n- Drop files into `content/` — they're indexed automatically on first search\n- Or use the upload panel in the UI for PDF, DOCX, XLSX, PPTX, CSV, HTML, RTF, EPUB, TXT, and MD files\n\n## Production notes\n\nThis is a starter template — not a production-ready setup. For production, consider:\n\n- **Vector store** — Replace the JSON store with pgvector, Pinecone, or Qdrant for datasets beyond ~10k chunks\n- **Reranking** — Add a cross-encoder reranker (e.g. Cohere Rerank) after retrieval to improve precision\n- **Hybrid search** — Combine dense vectors with BM25 keyword matching for better recall\n",
|
|
43
|
+
"app/api/uploads/route.ts": "import { createUploadHandler } from \"veryfront/embedding\";\nimport { store } from \"../../../store.ts\";\n\nexport const { POST, GET } = createUploadHandler(store);\n",
|
|
44
|
+
"app/api/uploads/[id]/route.ts": "import { createUploadHandler } from \"veryfront/embedding\";\nimport { store } from \"../../../../store.ts\";\n\nexport const { DELETE } = createUploadHandler(store);\n",
|
|
45
|
+
"app/api/chat/route.ts": "import { createChatHandler } from \"veryfront/agent\";\nimport { store } from \"../../../store.ts\";\n\nexport const POST = createChatHandler(\"rag\", {\n beforeStream: async ({ lastUserText }) => {\n const query = lastUserText.trim();\n if (!query) return;\n\n try {\n await store.indexContentDir();\n const results = await store.search(query, { topK: 5 });\n if (results.length === 0) return;\n\n const contextBlock = results\n .map(\n (result) =>\n `[${result.title}] (score: ${\n result.score.toFixed(2)\n })\\n${result.text}`,\n )\n .join(\"\\n\\n---\\n\\n\");\n\n return {\n prepend: [\n {\n role: \"system\",\n parts: [\n {\n type: \"text\",\n text:\n `Here are relevant documents retrieved for the user's question:\\n\\n${contextBlock}\\n\\n` +\n \"Use these documents to answer. Cite the document title when referencing information.\",\n },\n ],\n },\n ],\n };\n } catch (e) {\n console.error(\"[RAG] Retrieval failed:\", e);\n return;\n }\n },\n});\n",
|
|
46
|
+
"app/layout.tsx": "import { Head } from \"veryfront/head\";\n\nexport default function RootLayout({ children }: { children: React.ReactNode }): React.ReactNode {\n return (\n <>\n <Head><title>Docs Agent</title></Head>\n <div className=\"flex flex-col h-screen\">\n {children}\n </div>\n </>\n );\n}\n",
|
|
47
|
+
"app/page.tsx": "'use client'\n\nimport { useState, useEffect, useCallback, useMemo } from 'react'\nimport { ChatWithSidebar, useChat, type QuickAction } from 'veryfront/chat'\n\nconst UPLOAD_API = '/api/uploads'\nconst ACCEPT = '.pdf,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.csv,.txt,.md,.mdx,.html,.rtf,.epub,.json,.xml'\n\nconst QUICK_ACTIONS: QuickAction[] = [\n { id: 'ask-question', label: 'Ask Question', prompt: 'I have a question about this document: ' },\n { id: 'extract-insights', label: 'Extract Insights', prompt: 'Extract the key insights from the uploaded documents.' },\n { id: 'find-sources', label: 'Find Sources', prompt: 'Find relevant sources and references in the documents for: ' },\n]\n\ninterface Doc { id: string; title: string; source: string }\n\nfunction useUploads(api: string) {\n const [docs, setDocs] = useState<Doc[]>([])\n const [uploading, setUploading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const refresh = useCallback(async () => {\n try {\n const res = await fetch(api)\n if (res.ok) {\n const data = await res.json()\n setDocs(Array.isArray(data) ? data : data.uploads ?? [])\n }\n } catch { /* ignore */ }\n }, [api])\n\n useEffect(() => { refresh() }, [refresh])\n\n const upload = useCallback(async (file: File) => {\n setUploading(true)\n setError(null)\n try {\n const form = new FormData()\n form.append('file', file)\n const res = await fetch(api, { method: 'POST', body: form })\n if (!res.ok) throw new Error(await res.text())\n await refresh()\n } catch (e) {\n setError(e instanceof Error ? e.message : 'Upload failed')\n } finally {\n setUploading(false)\n }\n }, [api, refresh])\n\n const remove = useCallback(async (id: string) => {\n await fetch(`${api}/${id}`, { method: 'DELETE' })\n await refresh()\n }, [api, refresh])\n\n const uploads = useMemo(\n () => docs.filter((d) => d.source.startsWith('upload:')),\n [docs],\n )\n\n return { uploads, uploading, error, upload, remove }\n}\n\nexport default function DocsChat() {\n const chat = useChat({ api: '/api/chat' })\n const docs = useUploads(UPLOAD_API)\n\n const attachmentItems = useMemo(() => {\n const items = docs.uploads.map((d) => ({\n id: d.id,\n name: d.title,\n status: 'ready' as const,\n }))\n if (docs.uploading) {\n items.push({ id: '__uploading', name: 'Uploading...', status: 'uploading' as const })\n }\n return items\n }, [docs.uploads, docs.uploading])\n\n const uploadFiles = useMemo(\n () => docs.uploads.map((d) => ({ id: d.id, name: d.title })),\n [docs.uploads],\n )\n\n const handleAttach = useCallback((files: FileList) => {\n for (const file of Array.from(files)) {\n docs.upload(file)\n }\n }, [docs.upload])\n\n const handleQuickAction = useCallback((action: QuickAction) => {\n if (action.prompt) chat.setInput(action.prompt)\n }, [chat.setInput])\n\n return (\n <ChatWithSidebar\n chat={chat}\n sidebar={{ storageKey: 'rag-threads' }}\n features={{ steps: true, tabs: true, sources: true, export: true }}\n models={{\n options: [\n { value: 'anthropic/claude-sonnet-4-20250514', label: 'Claude Sonnet 4', provider: 'Anthropic' },\n { value: 'openai/gpt-4o', label: 'GPT-4o', provider: 'OpenAI' },\n { value: 'openai/gpt-4o-mini', label: 'GPT-4o Mini', provider: 'OpenAI', badge: 'Fast' },\n ],\n }}\n attachments={{\n uploads: uploadFiles,\n onRemoveUpload: docs.remove,\n onAttach: handleAttach,\n accept: ACCEPT,\n items: attachmentItems,\n onRemoveItem: docs.remove,\n }}\n quickActions={{\n actions: QUICK_ACTIONS,\n onAction: handleQuickAction,\n }}\n message={{\n renderTool: () => null,\n }}\n className=\"flex-1 min-h-0\"\n placeholder=\"Ask anything about your documents...\"\n emptyState={{ title: 'Docs Agent', description: 'Upload files and ask questions' }}\n />\n )\n}\n",
|
|
48
|
+
"tsconfig.json": "{\n \"compilerOptions\": {\n \"target\": \"ES2022\",\n \"module\": \"ESNext\",\n \"moduleResolution\": \"bundler\",\n \"strict\": true,\n \"jsx\": \"react-jsx\",\n \"skipLibCheck\": true,\n \"esModuleInterop\": true,\n \"paths\": {\n \"@/*\": [\"./*\"]\n }\n },\n \"include\": [\"**/*.ts\", \"**/*.tsx\"],\n \"exclude\": [\"node_modules\"]\n}\n",
|
|
49
|
+
"store.ts": "import { uploadStore } from \"veryfront/embedding\";\n\nexport const store = uploadStore({\n model: \"openai/text-embedding-3-small\",\n storagePath: \"data/index.json\",\n contentDir: \"content\",\n});\n",
|
|
50
|
+
"agents/rag.ts": "import { agent } from \"veryfront/agent\";\n\nexport default agent({\n id: \"rag\",\n model: \"local/qwen3-1.7b\",\n system:\n `You answer questions using the provided documents. ` +\n `Always cite your sources by referencing the document title. ` +\n `If the search results don't contain a clear answer, say so honestly.`,\n});\n",
|
|
51
|
+
"content/getting-started.md": "# Getting Started\n\nWelcome to Acme Platform. This guide covers initial setup and core concepts.\n\n## Installation\n\nInstall the CLI globally:\n\n```bash\nnpm install -g @acme/cli\n```\n\n## Creating a Project\n\nRun the init command to scaffold a new project:\n\n```bash\nacme init my-project\ncd my-project\n```\n\n## Project Structure\n\n- `src/` — Application source code\n- `config/` — Configuration files\n- `tests/` — Test suite\n- `docs/` — Documentation\n\n## Configuration\n\nCreate an `acme.config.ts` file in your project root:\n\n```ts\nexport default {\n name: \"my-project\",\n region: \"us-east-1\",\n features: [\"auth\", \"storage\"],\n};\n```\n\n## Next Steps\n\n- Read the [Architecture Guide](./architecture) to understand the system design\n- Check [API Reference](./api-reference) for available endpoints\n- Join our Discord community for support\n",
|
|
52
|
+
"content/architecture.md": "# Architecture\n\nAcme Platform uses a modular, event-driven architecture.\n\n## Core Components\n\n### API Gateway\nRoutes incoming requests to the appropriate microservice. Handles authentication, rate limiting, and request validation.\n\n### Event Bus\nAsynchronous message broker connecting all services. Supports pub/sub and point-to-point messaging patterns.\n\n### Data Layer\nMulti-tenant data storage with automatic sharding. Supports PostgreSQL for relational data and Redis for caching.\n\n## Request Flow\n\n1. Client sends request to API Gateway\n2. Gateway validates authentication token\n3. Request is routed to the target service\n4. Service processes request and publishes events\n5. Response is returned through the gateway\n\n## Scaling\n\nEach component scales independently. The API Gateway uses horizontal scaling with load balancing. Services auto-scale based on queue depth and CPU utilization.\n\n## Security\n\n- All inter-service communication uses mTLS\n- API tokens are rotated every 24 hours\n- Data at rest is encrypted with AES-256\n- Audit logs are retained for 90 days\n"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
53
55
|
"minimal": {
|
|
54
56
|
"files": {
|
|
55
57
|
"README.md": "# Minimal\n\nA barebones starter with just pages and routing — no agents, no tools.\n\n## What's included\n\n- Home page with welcome message\n- About page using MDX\n- Tailwind CSS styling with dark mode\n\n## Structure\n\n```\napp/\n layout.tsx Root layout\n page.tsx Home page\n about/page.mdx Markdown content page\n```\n\nThis is a starter template to give you a good starting point — not a production-ready setup.\n",
|
|
@@ -7,7 +7,7 @@ export interface TemplateFile {
|
|
|
7
7
|
export interface TemplateConfig {
|
|
8
8
|
envVars?: EnvVarConfig[];
|
|
9
9
|
}
|
|
10
|
-
export type TemplateName = "ai-agent" | "
|
|
10
|
+
export type TemplateName = "ai-agent" | "docs-agent" | "multi-agent-system" | "agentic-workflow" | "coding-agent" | "saas-starter" | "minimal" | "pages-router" | "app-router";
|
|
11
11
|
export type FeatureName = "ai" | "auth" | "workflows" | "mdx" | "redis" | "blob";
|
|
12
12
|
export interface FeatureConfig {
|
|
13
13
|
name: FeatureName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EAChB,MAAM,kCAAkC,CAAC;AAE1C,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,WAAW,EACX,UAAU,GACX,MAAM,kCAAkC,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,YAAY,GACZ,oBAAoB,GACpB,kBAAkB,GAClB,cAAc,GACd,cAAc,GACd,SAAS,GACT,cAAc,GACd,YAAY,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,MAAM,GAAG,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEvE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
package/esm/cli/ui/colors.d.ts
CHANGED
|
@@ -34,7 +34,6 @@ export declare const brandBold: (text: string) => string;
|
|
|
34
34
|
export declare const successBold: (text: string) => string;
|
|
35
35
|
export declare const errorBold: (text: string) => string;
|
|
36
36
|
export { RESET as reset };
|
|
37
|
-
export declare function animatedMatrix(frame: number): string;
|
|
38
37
|
/**
|
|
39
38
|
* Apply shimmer effect to text - creates a wave of brightness moving across
|
|
40
39
|
* @param text The text to shimmer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAqC7D,wBAAgB,aAAa,IAAI,UAAU,CAG1C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAuCD,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAEhE;AA4DD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzD;AAUD,eAAO,MAAM,KAAK,SARoC,MAAM,KAAK,MAQ3B,CAAC;AACvC,eAAO,MAAM,OAAO,SALoC,MAAM,KAAK,MAKzB,CAAC;AAE3C,eAAO,MAAM,OAAO,SAXkC,MAAM,KAAK,MAW1B,CAAC;AACxC,eAAO,MAAM,KAAK,SAZoC,MAAM,KAAK,MAY5B,CAAC;AACtC,eAAO,MAAM,OAAO,SAbkC,MAAM,KAAK,MAa1B,CAAC;AACxC,eAAO,MAAM,KAAK,SAdoC,MAAM,KAAK,MAc1B,CAAC;AACxC,eAAO,MAAM,IAAI,SAfqC,MAAM,KAAK,MAe5B,CAAC;AACtC,eAAO,MAAM,KAAK,SAhBoC,MAAM,KAAK,MAgBrC,CAAC;AAC7B,eAAO,MAAM,MAAM,SAjBmC,MAAM,KAAK,MAiBpC,CAAC;AAC9B,eAAO,MAAM,GAAG,SAlBsC,MAAM,KAAK,MAkBzC,CAAC;AAEzB,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,WAA+B,CAAC;AACjE,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,WAA+B,CAAC;AAChE,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,WAA+B,CAAC;AACnE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAA+B,CAAC;AAEtE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAAsB,CAAC;AAC7D,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,WAAwB,CAAC;AACjE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC;AAqC7D,wBAAgB,aAAa,IAAI,UAAU,CAG1C;AAED,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAuCD,wBAAgB,eAAe,IAAI,IAAI,CAKtC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI,CAEhE;AA4DD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAGzD;AAUD,eAAO,MAAM,KAAK,SARoC,MAAM,KAAK,MAQ3B,CAAC;AACvC,eAAO,MAAM,OAAO,SALoC,MAAM,KAAK,MAKzB,CAAC;AAE3C,eAAO,MAAM,OAAO,SAXkC,MAAM,KAAK,MAW1B,CAAC;AACxC,eAAO,MAAM,KAAK,SAZoC,MAAM,KAAK,MAY5B,CAAC;AACtC,eAAO,MAAM,OAAO,SAbkC,MAAM,KAAK,MAa1B,CAAC;AACxC,eAAO,MAAM,KAAK,SAdoC,MAAM,KAAK,MAc1B,CAAC;AACxC,eAAO,MAAM,IAAI,SAfqC,MAAM,KAAK,MAe5B,CAAC;AACtC,eAAO,MAAM,KAAK,SAhBoC,MAAM,KAAK,MAgBrC,CAAC;AAC7B,eAAO,MAAM,MAAM,SAjBmC,MAAM,KAAK,MAiBpC,CAAC;AAC9B,eAAO,MAAM,GAAG,SAlBsC,MAAM,KAAK,MAkBzC,CAAC;AAEzB,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,WAA+B,CAAC;AACjE,eAAO,MAAM,GAAG,GAAI,MAAM,MAAM,WAA+B,CAAC;AAChE,eAAO,MAAM,MAAM,GAAI,MAAM,MAAM,WAA+B,CAAC;AACnE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAA+B,CAAC;AAEtE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAAsB,CAAC;AAC7D,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,WAAwB,CAAC;AACjE,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,WAAsB,CAAC;AAE7D,OAAO,EAAE,KAAK,IAAI,KAAK,EAAE,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,MAAM,CAuB1E"}
|
package/esm/cli/ui/colors.js
CHANGED
|
@@ -179,16 +179,6 @@ export const brandBold = (text) => bold(brand(text));
|
|
|
179
179
|
export const successBold = (text) => bold(success(text));
|
|
180
180
|
export const errorBold = (text) => bold(error(text));
|
|
181
181
|
export { RESET as reset };
|
|
182
|
-
const MATRIX_STATES = [
|
|
183
|
-
["●", "○", "○"],
|
|
184
|
-
["○", "●", "○"],
|
|
185
|
-
["○", "○", "●"],
|
|
186
|
-
["○", "●", "○"],
|
|
187
|
-
];
|
|
188
|
-
export function animatedMatrix(frame) {
|
|
189
|
-
const state = MATRIX_STATES[frame % MATRIX_STATES.length] ?? ["●", "○", "○"];
|
|
190
|
-
return state.map((dot) => (dot === "●" ? brand(dot) : muted(dot))).join("");
|
|
191
|
-
}
|
|
192
182
|
/**
|
|
193
183
|
* Apply shimmer effect to text - creates a wave of brightness moving across
|
|
194
184
|
* @param text The text to shimmer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dot-matrix.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/dot-matrix.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dot-matrix.d.ts","sourceRoot":"","sources":["../../../src/cli/ui/dot-matrix.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,UAAU,EAAE,MAAM,EAAE,EAQhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAiB9C,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoGD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAE3F;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,SAAI,GAAG,MAAM,EAAE,EAAE,CAWnF;AAED,wBAAgB,qBAAqB,CAAC,UAAU,SAAI,GAAG,MAAM,EAAE,EAAE,EAAE,CAElE;AAED,wBAAgB,YAAY,CAAC,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAEnE;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAEhG;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAER;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,UAAU,CAAuD;IACzE,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAe;gBAExB,OAAO,GAAE,gBAAqB;IAM1C,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,MAAM,IAAI,MAAM;IAIhB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;IAI3C,SAAS,IAAI,MAAM;IAInB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IAIrB,YAAY,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,SAAK,GAAG,IAAI;IAerE,oBAAoB,CAClB,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,UAAU,SAAK,GACd,IAAI;IAeP,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IA2B5F,kBAAkB,CAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,EAChC,UAAU,SAAK,GACd,OAAO,CAAC,IAAI,CAAC;IA2BhB,WAAW,IAAI,IAAI;IAInB,IAAI,IAAI,IAAI;IAMZ,KAAK,IAAI,IAAI;IAIb,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI;CAGtC;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAEjF;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
package/esm/cli/ui/dot-matrix.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Used for the Veryfront logo in CLI experiences.
|
|
6
6
|
******************/
|
|
7
7
|
import * as dntShim from "../../_dnt.shims.js";
|
|
8
|
+
import { RESET } from "./ansi.js";
|
|
8
9
|
export const AGENT_FACE = [
|
|
9
10
|
[0, 0, 0, 0, 0, 0, 0],
|
|
10
11
|
[0, 1, 1, 1, 0, 0, 0],
|
|
@@ -46,7 +47,6 @@ const COMPACT_OPTIONS = {
|
|
|
46
47
|
offChar: "·",
|
|
47
48
|
spacing: " ",
|
|
48
49
|
};
|
|
49
|
-
const RESET = "\x1b[0m";
|
|
50
50
|
const SPIN_COLORS = {
|
|
51
51
|
bright: "\x1b[38;2;255;165;120m",
|
|
52
52
|
orange: "\x1b[38;2;252;143;93m",
|
|
@@ -241,9 +241,7 @@ export class AnimatedDotMatrix {
|
|
|
241
241
|
});
|
|
242
242
|
}
|
|
243
243
|
stopSpinner() {
|
|
244
|
-
this.
|
|
245
|
-
this.clearInterval();
|
|
246
|
-
this.pattern = AGENT_FACE;
|
|
244
|
+
this.stop();
|
|
247
245
|
}
|
|
248
246
|
stop() {
|
|
249
247
|
this._spinning = false;
|
|
@@ -252,7 +250,6 @@ export class AnimatedDotMatrix {
|
|
|
252
250
|
}
|
|
253
251
|
reset() {
|
|
254
252
|
this.stop();
|
|
255
|
-
this.pattern = AGENT_FACE;
|
|
256
253
|
}
|
|
257
254
|
setPattern(pattern) {
|
|
258
255
|
this.pattern = pattern;
|
package/esm/cli/ui/tui.js
CHANGED
|
@@ -28,6 +28,7 @@ function getSize() {
|
|
|
28
28
|
function render() {
|
|
29
29
|
getSize();
|
|
30
30
|
const lines = [""];
|
|
31
|
+
const spinner = getSpinnerFrame(spinnerFrame);
|
|
31
32
|
const infoKeys = Object.keys(state.info);
|
|
32
33
|
if (infoKeys.length > 0) {
|
|
33
34
|
const maxKeyLen = Math.max(...infoKeys.map((k) => k.length));
|
|
@@ -38,7 +39,6 @@ function render() {
|
|
|
38
39
|
lines.push("");
|
|
39
40
|
}
|
|
40
41
|
if (state.steps.length > 0) {
|
|
41
|
-
const spinner = getSpinnerFrame(spinnerFrame);
|
|
42
42
|
const stepLine = state.steps
|
|
43
43
|
.map((s, i) => {
|
|
44
44
|
const icon = s.done ? success("✓") : i === state.currentStep ? brand(spinner) : dim("○");
|
|
@@ -48,11 +48,10 @@ function render() {
|
|
|
48
48
|
.join(" ");
|
|
49
49
|
lines.push(` ${stepLine}`, "");
|
|
50
50
|
}
|
|
51
|
-
const spinnerChar = getSpinnerFrame(spinnerFrame);
|
|
52
51
|
let statusIcon = dim("○");
|
|
53
52
|
switch (state.statusType) {
|
|
54
53
|
case "loading":
|
|
55
|
-
statusIcon = brand(
|
|
54
|
+
statusIcon = brand(spinner);
|
|
56
55
|
break;
|
|
57
56
|
case "success":
|
|
58
57
|
statusIcon = success("●");
|
package/esm/cli/utils/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import denoConfig from "../../deno.js";
|
|
2
|
-
import { exit, getEnv, isStdoutTTY, onSignal, promptSync, readStdinByteSync, writeStdout, } from "../../src/platform/index.js";
|
|
3
|
-
import { setRawMode } from "../../src/platform/index.js";
|
|
2
|
+
import { exit, getEnv, isStdoutTTY, onSignal, promptSync, readStdinByteSync, setRawMode, writeStdout, } from "../../src/platform/index.js";
|
|
4
3
|
import { DEFAULT_DEV_PORT } from "../shared/constants.js";
|
|
5
4
|
import { bold, brand, dim, error as errorColor, muted, shouldUseColor, success as successColor, warning as warningColor, } from "../ui/colors.js";
|
|
6
5
|
function debugEnabled() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,GAAG,SAAS,CAWhE;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/package-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,IAAI,cAAc,GAAG,SAAS,CAWhE;AA0CD;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,cAAc,CAAC,CAyBzB;AAUD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CASxE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAaxD;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,MAAM,CAAC,EAAE,OAAO,CAAC;CACb,GACL,OAAO,CAAC,OAAO,CAAC,CAwBlB"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { join } from "../../src/platform/compat/path/index.js";
|
|
7
7
|
import { cliLogger as logger } from "./index.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { getEnv, getOsType, runCommand } from "../../src/platform/index.js";
|
|
9
|
+
import { getFs } from "./fs.js";
|
|
10
10
|
/**
|
|
11
11
|
* Detect package manager from npm_config_user_agent environment variable
|
|
12
12
|
* This is set when running via `pnpm create`, `npm create`, etc.
|
|
@@ -54,7 +54,7 @@ const LOCKFILES = [
|
|
|
54
54
|
{ file: "package-lock.json", pm: "npm" },
|
|
55
55
|
];
|
|
56
56
|
async function detectFromDir(dir) {
|
|
57
|
-
const fs =
|
|
57
|
+
const fs = getFs();
|
|
58
58
|
for (const lock of LOCKFILES) {
|
|
59
59
|
if (await fs.exists(join(dir, lock.file)))
|
|
60
60
|
return lock;
|
|
@@ -137,7 +137,6 @@ export function getDlxCommand(pm) {
|
|
|
137
137
|
case "bun":
|
|
138
138
|
return "bunx";
|
|
139
139
|
case "npm":
|
|
140
|
-
default:
|
|
141
140
|
return "npx";
|
|
142
141
|
}
|
|
143
142
|
}
|