veryfront 0.1.48 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/cli/app/components/inline-input.d.ts +1 -4
- package/esm/cli/app/components/inline-input.d.ts.map +1 -1
- package/esm/cli/app/components/inline-input.js +1 -1
- package/esm/cli/app/components/list-select.d.ts +0 -8
- package/esm/cli/app/components/list-select.d.ts.map +1 -1
- package/esm/cli/app/components/list-select.js +0 -13
- package/esm/cli/app/operations/project-creation.d.ts +2 -14
- package/esm/cli/app/operations/project-creation.d.ts.map +1 -1
- package/esm/cli/app/operations/project-creation.js +3 -68
- package/esm/cli/app/shell.js +1 -1
- package/esm/cli/app/utils.d.ts +1 -2
- package/esm/cli/app/utils.d.ts.map +1 -1
- package/esm/cli/app/utils.js +1 -17
- package/esm/cli/app/views/dashboard.d.ts +0 -4
- package/esm/cli/app/views/dashboard.d.ts.map +1 -1
- package/esm/cli/app/views/dashboard.js +0 -15
- package/esm/cli/app/views/startup.d.ts +0 -4
- package/esm/cli/app/views/startup.d.ts.map +1 -1
- package/esm/cli/app/views/startup.js +0 -7
- package/esm/cli/auth/login.d.ts.map +1 -1
- package/esm/cli/auth/login.js +1 -2
- package/esm/cli/auth/token-store.js +1 -1
- package/esm/cli/auth/utils.d.ts +2 -1
- package/esm/cli/auth/utils.d.ts.map +1 -1
- package/esm/cli/commands/generate/integration-generator.js +1 -1
- package/esm/cli/commands/install/types.d.ts +2 -2
- package/esm/cli/help/formatters.d.ts +1 -1
- package/esm/cli/help/formatters.d.ts.map +1 -1
- package/esm/cli/help/formatters.js +8 -4
- package/esm/cli/help/main-help.d.ts.map +1 -1
- package/esm/cli/help/main-help.js +2 -2
- package/esm/cli/mcp/server.d.ts +0 -1
- package/esm/cli/mcp/server.d.ts.map +1 -1
- package/esm/cli/mcp/server.js +2 -5
- package/esm/cli/mcp/tools/dev-tools.d.ts +1 -1
- package/esm/cli/mcp/tools/dev-tools.d.ts.map +1 -1
- package/esm/cli/mcp/tools/dev-tools.js +1 -2
- package/esm/cli/mcp/tools/scaffold-tools.d.ts +2 -2
- package/esm/cli/mcp/tools.d.ts +1 -2
- package/esm/cli/mcp/tools.d.ts.map +1 -1
- package/esm/cli/mcp/tools.js +1 -2
- package/esm/cli/shared/reserve-slug.d.ts.map +1 -1
- package/esm/cli/shared/reserve-slug.js +1 -3
- package/esm/cli/sync/ignore.d.ts +1 -1
- package/esm/cli/sync/ignore.d.ts.map +1 -1
- package/esm/cli/sync/ignore.js +22 -18
- package/esm/cli/ui/colors.d.ts +0 -1
- package/esm/cli/ui/colors.d.ts.map +1 -1
- package/esm/cli/ui/colors.js +0 -10
- package/esm/cli/ui/dot-matrix.d.ts.map +1 -1
- package/esm/cli/ui/dot-matrix.js +2 -5
- package/esm/cli/ui/tui.js +2 -3
- package/esm/cli/utils/index.js +1 -2
- package/esm/cli/utils/package-manager.d.ts.map +1 -1
- package/esm/cli/utils/package-manager.js +3 -4
- package/esm/deno.d.ts +3 -0
- package/esm/deno.js +22 -19
- package/esm/src/agent/chat-handler.d.ts.map +1 -1
- package/esm/src/agent/chat-handler.js +8 -23
- package/esm/src/agent/factory.d.ts +0 -8
- package/esm/src/agent/factory.d.ts.map +1 -1
- package/esm/src/agent/factory.js +50 -1
- package/esm/src/agent/index.d.ts +16 -1
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +16 -1
- package/esm/src/agent/memory/memory.d.ts +2 -2
- package/esm/src/agent/memory/memory.d.ts.map +1 -1
- package/esm/src/agent/memory/memory.js +0 -1
- package/esm/src/agent/react/use-chat/types.d.ts +2 -0
- package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
- package/esm/src/agent/react/use-chat/use-chat.js +15 -9
- package/esm/src/agent/runtime/index.d.ts +18 -0
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +167 -36
- package/esm/src/agent/runtime/tool-helpers.d.ts +6 -1
- package/esm/src/agent/runtime/tool-helpers.d.ts.map +1 -1
- package/esm/src/agent/runtime/tool-helpers.js +10 -1
- package/esm/src/agent/schemas/agent.schema.d.ts +4 -4
- package/esm/src/agent/types.d.ts +10 -0
- package/esm/src/agent/types.d.ts.map +1 -1
- package/esm/src/ai/registry-manager.d.ts.map +1 -1
- package/esm/src/ai/registry-manager.js +2 -1
- package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts +0 -2
- package/esm/src/build/bundler/code-splitter/manifest-builder.d.ts.map +1 -1
- package/esm/src/build/bundler/code-splitter/manifest-builder.js +1 -1
- package/esm/src/build/compiler/mdx-compiler/validator.d.ts.map +1 -1
- package/esm/src/build/compiler/mdx-compiler/validator.js +2 -3
- package/esm/src/build/compiler/mdx-to-js.d.ts +0 -2
- package/esm/src/build/compiler/mdx-to-js.d.ts.map +1 -1
- package/esm/src/build/compiler/mdx-to-js.js +0 -81
- package/esm/src/build/index.d.ts +0 -6
- package/esm/src/build/index.d.ts.map +1 -1
- package/esm/src/build/index.js +0 -1
- package/esm/src/build/production-build/build/route-collector.d.ts.map +1 -1
- package/esm/src/build/production-build/build/route-collector.js +2 -3
- package/esm/src/build/production-build/templates.d.ts +5 -9
- package/esm/src/build/production-build/templates.d.ts.map +1 -1
- package/esm/src/build/production-build/templates.js +6 -18
- package/esm/src/build/vendor-cache.d.ts.map +1 -1
- package/esm/src/build/vendor-cache.js +0 -5
- package/esm/src/cache/tokenizing-gateway.d.ts +0 -2
- package/esm/src/cache/tokenizing-gateway.d.ts.map +1 -1
- package/esm/src/cache/tokenizing-gateway.js +1 -3
- package/esm/src/chat/index.d.ts +2 -2
- package/esm/src/chat/index.d.ts.map +1 -1
- package/esm/src/chat/index.js +1 -1
- package/esm/src/config/define-config.d.ts.map +1 -1
- package/esm/src/config/define-config.js +28 -25
- package/esm/src/config/loader.d.ts.map +1 -1
- package/esm/src/config/loader.js +10 -7
- package/esm/src/config/schemas/config.schema.d.ts +58 -12
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +12 -0
- package/esm/src/data/data-fetcher.d.ts +1 -2
- package/esm/src/data/data-fetcher.d.ts.map +1 -1
- package/esm/src/data/data-fetcher.js +14 -15
- package/esm/src/data/server-data-fetcher.d.ts +0 -3
- package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/server-data-fetcher.js +1 -8
- package/esm/src/data/static-data-fetcher.d.ts +1 -3
- package/esm/src/data/static-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/static-data-fetcher.js +1 -3
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +19 -1
- package/esm/src/discovery/discovery-utils.d.ts +0 -4
- package/esm/src/discovery/discovery-utils.d.ts.map +1 -1
- package/esm/src/discovery/discovery-utils.js +0 -6
- package/esm/src/discovery/file-discovery.d.ts +3 -1
- package/esm/src/discovery/file-discovery.d.ts.map +1 -1
- package/esm/src/discovery/file-discovery.js +3 -8
- package/esm/src/discovery/handlers/index.d.ts +1 -0
- package/esm/src/discovery/handlers/index.d.ts.map +1 -1
- package/esm/src/discovery/handlers/index.js +1 -0
- package/esm/src/discovery/handlers/skill-handler.d.ts +26 -0
- package/esm/src/discovery/handlers/skill-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/skill-handler.js +87 -0
- package/esm/src/discovery/handlers/task-handler.d.ts.map +1 -1
- package/esm/src/discovery/handlers/task-handler.js +1 -5
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +7 -4
- package/esm/src/discovery/types.d.ts +3 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/embedding/resolve.d.ts.map +1 -1
- package/esm/src/embedding/resolve.js +1 -3
- package/esm/src/embedding/upload-handler.d.ts.map +1 -1
- package/esm/src/embedding/upload-handler.js +4 -3
- package/esm/src/embedding/upload-store.js +4 -4
- package/esm/src/errors/error-registry.d.ts +2 -1
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/errors/http-error.d.ts +1 -2
- package/esm/src/errors/http-error.d.ts.map +1 -1
- package/esm/src/errors/http-error.js +2 -2
- package/esm/src/errors/middleware/cli-error-boundary.d.ts.map +1 -1
- package/esm/src/errors/middleware/cli-error-boundary.js +13 -2
- package/esm/src/errors/middleware/wrap-unknown.d.ts +0 -7
- package/esm/src/errors/middleware/wrap-unknown.d.ts.map +1 -1
- package/esm/src/errors/middleware/wrap-unknown.js +0 -9
- package/esm/src/errors/veryfront-error.d.ts +0 -3
- package/esm/src/errors/veryfront-error.d.ts.map +1 -1
- package/esm/src/errors/veryfront-error.js +0 -5
- package/esm/src/html/schemas/html.schema.d.ts +2 -2
- package/esm/src/html/styles-builder/css-hash-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/css-hash-cache.js +1 -2
- package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
- package/esm/src/html/styles-builder/plugin-loader.js +50 -21
- package/esm/src/html/styles-builder/tailwind-compiler-cache.d.ts.map +1 -1
- package/esm/src/html/styles-builder/tailwind-compiler-cache.js +12 -4
- package/esm/src/html/utils.d.ts +0 -7
- package/esm/src/html/utils.d.ts.map +1 -1
- package/esm/src/html/utils.js +0 -25
- package/esm/src/modules/component-registry/registry.d.ts +0 -3
- package/esm/src/modules/component-registry/registry.d.ts.map +1 -1
- package/esm/src/modules/component-registry/registry.js +0 -3
- package/esm/src/oauth/handlers/callback-handler.d.ts +2 -0
- package/esm/src/oauth/handlers/callback-handler.d.ts.map +1 -1
- package/esm/src/oauth/handlers/callback-handler.js +10 -4
- package/esm/src/oauth/providers/common.d.ts.map +1 -1
- package/esm/src/oauth/providers/common.js +0 -23
- package/esm/src/observability/auto-instrument/react-instrumentation.js +2 -1
- package/esm/src/observability/instruments/instruments-factory.d.ts +1 -1
- package/esm/src/observability/instruments/instruments-factory.d.ts.map +1 -1
- package/esm/src/observability/instruments/instruments-factory.js +5 -4
- package/esm/src/observability/metrics/config.js +5 -4
- package/esm/src/observability/metrics/manager.js +1 -1
- package/esm/src/observability/tracing/span-operations.d.ts.map +1 -1
- package/esm/src/observability/tracing/span-operations.js +14 -8
- package/esm/src/platform/compat/console/node.d.ts +0 -1
- package/esm/src/platform/compat/console/node.d.ts.map +1 -1
- package/esm/src/platform/compat/console/node.js +4 -11
- package/esm/src/platform/compat/fs.d.ts.map +1 -1
- package/esm/src/platform/compat/fs.js +4 -2
- package/esm/src/platform/compat/opaque-deps.d.ts +4 -2
- package/esm/src/platform/compat/opaque-deps.d.ts.map +1 -1
- package/esm/src/platform/compat/opaque-deps.js +1 -1
- package/esm/src/platform/compat/path/basic-operations.d.ts.map +1 -1
- package/esm/src/platform/compat/path/basic-operations.js +8 -7
- package/esm/src/platform/compat/path/resolution.d.ts.map +1 -1
- package/esm/src/platform/compat/path/resolution.js +15 -10
- package/esm/src/platform/compat/path/url-conversion.d.ts.map +1 -1
- package/esm/src/platform/compat/path/url-conversion.js +3 -2
- package/esm/src/platform/compat/process.d.ts +2 -14
- package/esm/src/platform/compat/process.d.ts.map +1 -1
- package/esm/src/platform/compat/process.js +92 -70
- package/esm/src/provider/index.d.ts +1 -1
- package/esm/src/provider/index.d.ts.map +1 -1
- package/esm/src/provider/index.js +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.d.ts.map +1 -1
- package/esm/src/provider/local/ai-sdk-adapter.js +18 -18
- package/esm/src/provider/local/env.d.ts.map +1 -1
- package/esm/src/provider/local/env.js +2 -1
- package/esm/src/provider/model-registry.d.ts +10 -0
- package/esm/src/provider/model-registry.d.ts.map +1 -1
- package/esm/src/provider/model-registry.js +43 -0
- package/esm/src/proxy/retry.d.ts +3 -3
- package/esm/src/proxy/retry.d.ts.map +1 -1
- package/esm/src/proxy/retry.js +0 -7
- package/esm/src/proxy/tracing.d.ts +1 -5
- package/esm/src/proxy/tracing.d.ts.map +1 -1
- package/esm/src/proxy/tracing.js +1 -7
- package/esm/src/react/components/ai/chat/components/code-block.js +1 -1
- package/esm/src/react/components/ai/chat/components/skill-badge.d.ts +12 -0
- package/esm/src/react/components/ai/chat/components/skill-badge.d.ts.map +1 -0
- package/esm/src/react/components/ai/chat/components/skill-badge.js +34 -0
- package/esm/src/react/components/ai/chat/components/step-indicator.js +4 -4
- package/esm/src/react/components/ai/chat/composition/chat-message-list.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/composition/chat-message-list.js +8 -2
- package/esm/src/react/components/ai/chat/composition/message.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/composition/message.js +8 -2
- package/esm/src/react/components/ai/chat/index.d.ts +4 -1
- package/esm/src/react/components/ai/chat/index.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/index.js +4 -3
- package/esm/src/react/components/ai/chat/utils/message-parts.d.ts +2 -0
- package/esm/src/react/components/ai/chat/utils/message-parts.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat/utils/message-parts.js +9 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts +1 -0
- package/esm/src/react/components/ai/chat-with-sidebar.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat-with-sidebar.js +1 -0
- package/esm/src/react/components/ai/chat.d.ts +1 -1
- package/esm/src/react/components/ai/chat.d.ts.map +1 -1
- package/esm/src/react/components/ai/chat.js +1 -1
- package/esm/src/rendering/cache/index.d.ts +1 -5
- package/esm/src/rendering/cache/index.d.ts.map +1 -1
- package/esm/src/rendering/cache/index.js +1 -5
- package/esm/src/rendering/orchestrator/pipeline.d.ts +11 -2
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.d.ts.map +1 -1
- package/esm/src/rendering/shared/context-aware-cache.js +0 -4
- package/esm/src/repositories/schemas/index.d.ts +1 -1
- package/esm/src/repositories/schemas/index.d.ts.map +1 -1
- package/esm/src/repositories/schemas/index.js +1 -1
- package/esm/src/repositories/schemas/repository.schema.d.ts +0 -11
- package/esm/src/repositories/schemas/repository.schema.d.ts.map +1 -1
- package/esm/src/repositories/schemas/repository.schema.js +0 -13
- package/esm/src/repositories/types.d.ts +1 -1
- package/esm/src/repositories/types.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.js +63 -7
- package/esm/src/routing/api/openapi/path-utils.d.ts +0 -19
- package/esm/src/routing/api/openapi/path-utils.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/path-utils.js +0 -34
- package/esm/src/routing/api/openapi/spec-generator.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/spec-generator.js +1 -19
- package/esm/src/routing/api/openapi/types.d.ts +1 -0
- package/esm/src/routing/api/openapi/types.d.ts.map +1 -1
- package/esm/src/routing/api/openapi/types.js +18 -0
- package/esm/src/sandbox/sandbox.d.ts +1 -0
- package/esm/src/sandbox/sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/sandbox.js +7 -8
- package/esm/src/security/http/cors/constants.d.ts +0 -2
- package/esm/src/security/http/cors/constants.d.ts.map +1 -1
- package/esm/src/security/http/cors/constants.js +0 -2
- package/esm/src/security/http/response/index.d.ts +3 -4
- package/esm/src/security/http/response/index.d.ts.map +1 -1
- package/esm/src/security/http/response/index.js +2 -3
- package/esm/src/server/context/enriched-context.d.ts +0 -8
- package/esm/src/server/context/enriched-context.d.ts.map +1 -1
- package/esm/src/server/context/enriched-context.js +1 -12
- package/esm/src/server/dev-server/server.d.ts.map +1 -1
- package/esm/src/server/dev-server/server.js +11 -4
- package/esm/src/server/dev-ui/manifest.d.ts +20 -20
- package/esm/src/server/dev-ui/manifest.js +20 -20
- package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
- package/esm/src/server/handlers/dev/framework-candidates.generated.js +426 -179
- package/esm/src/server/runtime-handler/index.d.ts.map +1 -1
- package/esm/src/server/runtime-handler/index.js +14 -24
- package/esm/src/server/shared/renderer/memory/pressure.d.ts +0 -7
- package/esm/src/server/shared/renderer/memory/pressure.d.ts.map +1 -1
- package/esm/src/server/shared/renderer/memory/pressure.js +1 -13
- package/esm/src/server/utils/domain-lookup.d.ts +0 -4
- package/esm/src/server/utils/domain-lookup.d.ts.map +1 -1
- package/esm/src/server/utils/domain-lookup.js +0 -3
- package/esm/src/skill/allowed-tools.d.ts +54 -0
- package/esm/src/skill/allowed-tools.d.ts.map +1 -0
- package/esm/src/skill/allowed-tools.js +87 -0
- package/esm/src/skill/executor.d.ts +28 -0
- package/esm/src/skill/executor.d.ts.map +1 -0
- package/esm/src/skill/executor.js +187 -0
- package/esm/src/skill/index.d.ts +19 -0
- package/esm/src/skill/index.d.ts.map +1 -0
- package/esm/src/skill/index.js +24 -0
- package/esm/src/skill/parser.d.ts +30 -0
- package/esm/src/skill/parser.d.ts.map +1 -0
- package/esm/src/skill/parser.js +162 -0
- package/esm/src/skill/path-safety.d.ts +22 -0
- package/esm/src/skill/path-safety.d.ts.map +1 -0
- package/esm/src/skill/path-safety.js +156 -0
- package/esm/src/skill/prompt-augmentation.d.ts +19 -0
- package/esm/src/skill/prompt-augmentation.d.ts.map +1 -0
- package/esm/src/skill/prompt-augmentation.js +36 -0
- package/esm/src/skill/registry.d.ts +25 -0
- package/esm/src/skill/registry.d.ts.map +1 -0
- package/esm/src/skill/registry.js +42 -0
- package/esm/src/skill/tools.d.ts +27 -0
- package/esm/src/skill/tools.d.ts.map +1 -0
- package/esm/src/skill/tools.js +149 -0
- package/esm/src/skill/types.d.ts +85 -0
- package/esm/src/skill/types.d.ts.map +1 -0
- package/esm/src/skill/types.js +27 -0
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.d.ts.map +1 -1
- package/esm/src/studio/bridge/bridge-bundle.generated.js +1 -1
- package/esm/src/studio/element-selector-injector.d.ts +0 -2
- package/esm/src/studio/element-selector-injector.d.ts.map +1 -1
- package/esm/src/task/runner.d.ts +6 -0
- package/esm/src/task/runner.d.ts.map +1 -1
- package/esm/src/task/runner.js +8 -8
- package/esm/src/tool/factory.js +31 -39
- package/esm/src/transforms/esm/http-cache-helpers.d.ts +0 -8
- package/esm/src/transforms/esm/http-cache-helpers.d.ts.map +1 -1
- package/esm/src/transforms/esm/http-cache-helpers.js +0 -20
- package/esm/src/transforms/esm/path-resolver.d.ts +0 -14
- package/esm/src/transforms/esm/path-resolver.d.ts.map +1 -1
- package/esm/src/transforms/esm/path-resolver.js +1 -92
- package/esm/src/transforms/esm/source-url-embed.d.ts +0 -14
- package/esm/src/transforms/esm/source-url-embed.d.ts.map +1 -1
- package/esm/src/transforms/esm/source-url-embed.js +0 -47
- package/esm/src/transforms/esm/transform-cache.d.ts.map +1 -1
- package/esm/src/transforms/esm/transform-cache.js +2 -6
- package/esm/src/transforms/mdx/index.d.ts +0 -1
- package/esm/src/transforms/mdx/index.d.ts.map +1 -1
- package/esm/src/transforms/mdx/index.js +0 -4
- package/esm/src/transforms/pipeline/context.d.ts +0 -1
- package/esm/src/transforms/pipeline/context.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/context.js +0 -1
- package/esm/src/transforms/pipeline/index.d.ts +1 -2
- package/esm/src/transforms/pipeline/index.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/index.js +0 -3
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.d.ts.map +1 -1
- package/esm/src/transforms/pipeline/stages/ssr-http-cache.js +0 -1
- package/esm/src/types/entities/getEntityInfo.js +1 -1
- package/esm/src/types/index.d.ts +2 -13
- package/esm/src/types/index.d.ts.map +1 -1
- package/esm/src/types/server.d.ts +2 -1
- package/esm/src/types/server.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.d.ts +1 -1
- package/esm/src/utils/cache-file-ops.d.ts.map +1 -1
- package/esm/src/utils/cache-file-ops.js +5 -6
- package/esm/src/utils/lru-wrapper.d.ts.map +1 -1
- package/esm/src/utils/lru-wrapper.js +2 -4
- package/esm/src/workflow/claude-code/event-publisher.d.ts +0 -4
- package/esm/src/workflow/claude-code/event-publisher.d.ts.map +1 -1
- package/esm/src/workflow/claude-code/event-publisher.js +2 -6
- package/esm/src/workflow/executor/workflow-executor.d.ts.map +1 -1
- package/esm/src/workflow/executor/workflow-executor.js +6 -1
- package/esm/src/workflow/react/use-workflow-list.d.ts.map +1 -1
- package/esm/src/workflow/react/use-workflow-list.js +2 -1
- package/esm/src/workflow/schemas/workflow.schema.d.ts +8 -8
- package/package.json +1 -2
- package/src/cli/app/components/inline-input.ts +0 -5
- package/src/cli/app/components/list-select.ts +0 -21
- package/src/cli/app/operations/project-creation.ts +4 -109
- package/src/cli/app/shell.ts +1 -1
- package/src/cli/app/utils.ts +0 -22
- package/src/cli/app/views/dashboard.ts +0 -17
- package/src/cli/app/views/startup.ts +0 -13
- package/src/cli/auth/login.ts +1 -2
- package/src/cli/auth/token-store.ts +1 -1
- package/src/cli/auth/utils.ts +2 -1
- package/src/cli/commands/generate/integration-generator.ts +1 -1
- package/src/cli/help/formatters.ts +11 -4
- package/src/cli/help/main-help.ts +2 -3
- package/src/cli/mcp/server.ts +2 -5
- package/src/cli/mcp/tools/dev-tools.ts +1 -2
- package/src/cli/mcp/tools.ts +8 -2
- package/src/cli/shared/reserve-slug.ts +1 -4
- package/src/cli/sync/ignore.ts +26 -21
- package/src/cli/ui/colors.ts +0 -12
- package/src/cli/ui/dot-matrix.ts +3 -6
- package/src/cli/ui/tui.ts +3 -3
- package/src/cli/utils/index.ts +1 -1
- package/src/cli/utils/package-manager.ts +3 -4
- package/src/deno.js +22 -19
- package/src/src/agent/chat-handler.ts +8 -23
- package/src/src/agent/factory.ts +58 -9
- package/src/src/agent/index.ts +16 -1
- package/src/src/agent/memory/memory.ts +0 -9
- package/src/src/agent/react/use-chat/types.ts +2 -0
- package/src/src/agent/react/use-chat/use-chat.ts +15 -9
- package/src/src/agent/runtime/index.ts +213 -35
- package/src/src/agent/runtime/tool-helpers.ts +9 -0
- package/src/src/agent/types.ts +10 -0
- package/src/src/ai/registry-manager.ts +2 -1
- package/src/src/build/bundler/code-splitter/manifest-builder.ts +1 -1
- package/src/src/build/compiler/mdx-compiler/validator.ts +3 -7
- package/src/src/build/compiler/mdx-to-js.ts +0 -101
- package/src/src/build/index.ts +0 -8
- package/src/src/build/production-build/build/route-collector.ts +2 -4
- package/src/src/build/production-build/templates.ts +9 -18
- package/src/src/build/vendor-cache.ts +0 -6
- package/src/src/cache/tokenizing-gateway.ts +1 -9
- package/src/src/chat/index.ts +3 -0
- package/src/src/config/define-config.ts +30 -29
- package/src/src/config/loader.ts +10 -9
- package/src/src/config/schemas/config.schema.ts +12 -0
- package/src/src/data/data-fetcher.ts +15 -21
- package/src/src/data/server-data-fetcher.ts +1 -8
- package/src/src/data/static-data-fetcher.ts +1 -6
- package/src/src/discovery/discovery-engine.ts +27 -0
- package/src/src/discovery/discovery-utils.ts +0 -7
- package/src/src/discovery/file-discovery.ts +3 -9
- package/src/src/discovery/handlers/index.ts +1 -0
- package/src/src/discovery/handlers/skill-handler.ts +123 -0
- package/src/src/discovery/handlers/task-handler.ts +1 -5
- package/src/src/discovery/transpiler.ts +7 -4
- package/src/src/discovery/types.ts +3 -0
- package/src/src/embedding/resolve.ts +1 -3
- package/src/src/embedding/upload-handler.ts +7 -3
- package/src/src/embedding/upload-store.ts +4 -4
- package/src/src/errors/error-registry.ts +2 -2
- package/src/src/errors/http-error.ts +7 -3
- package/src/src/errors/middleware/cli-error-boundary.ts +28 -2
- package/src/src/errors/middleware/wrap-unknown.ts +0 -10
- package/src/src/errors/veryfront-error.ts +0 -9
- package/src/src/html/styles-builder/css-hash-cache.ts +5 -2
- package/src/src/html/styles-builder/plugin-loader.ts +58 -21
- package/src/src/html/styles-builder/tailwind-compiler-cache.ts +11 -4
- package/src/src/html/utils.ts +0 -33
- package/src/src/modules/component-registry/registry.ts +0 -3
- package/src/src/modules/server/websocket-handler.ts +1 -1
- package/src/src/oauth/handlers/callback-handler.ts +17 -5
- package/src/src/oauth/providers/base.ts +3 -3
- package/src/src/oauth/providers/common.ts +0 -23
- package/src/src/observability/auto-instrument/react-instrumentation.ts +2 -2
- package/src/src/observability/instruments/instruments-factory.ts +6 -6
- package/src/src/observability/metrics/config.ts +5 -5
- package/src/src/observability/metrics/manager.ts +1 -1
- package/src/src/observability/tracing/span-operations.ts +14 -9
- package/src/src/platform/compat/console/node.ts +4 -14
- package/src/src/platform/compat/fs.ts +14 -3
- package/src/src/platform/compat/opaque-deps.ts +10 -5
- package/src/src/platform/compat/path/basic-operations.ts +9 -7
- package/src/src/platform/compat/path/resolution.ts +15 -8
- package/src/src/platform/compat/path/url-conversion.ts +10 -6
- package/src/src/platform/compat/process.ts +133 -76
- package/src/src/provider/index.ts +1 -0
- package/src/src/provider/local/ai-sdk-adapter.ts +40 -37
- package/src/src/provider/local/env.ts +4 -1
- package/src/src/provider/model-registry.ts +47 -0
- package/src/src/proxy/retry.ts +0 -9
- package/src/src/proxy/tracing.ts +1 -9
- package/src/src/react/components/ai/chat/components/code-block.tsx +1 -1
- package/src/src/react/components/ai/chat/components/skill-badge.tsx +51 -0
- package/src/src/react/components/ai/chat/components/step-indicator.tsx +4 -4
- package/src/src/react/components/ai/chat/composition/chat-message-list.tsx +9 -2
- package/src/src/react/components/ai/chat/composition/message.tsx +9 -2
- package/src/src/react/components/ai/chat/index.tsx +6 -1
- package/src/src/react/components/ai/chat/utils/message-parts.ts +11 -0
- package/src/src/react/components/ai/chat-with-sidebar.tsx +2 -0
- package/src/src/react/components/ai/chat.tsx +3 -0
- package/src/src/rendering/cache/index.ts +12 -5
- package/src/src/rendering/orchestrator/pipeline.ts +12 -2
- package/src/src/rendering/renderer.ts +1 -1
- package/src/src/rendering/shared/context-aware-cache.ts +0 -5
- package/src/src/repositories/schemas/index.ts +0 -2
- package/src/src/repositories/schemas/repository.schema.ts +0 -15
- package/src/src/repositories/types.ts +1 -6
- package/src/src/routing/api/module-loader/loader.ts +88 -3
- package/src/src/routing/api/openapi/path-utils.ts +0 -39
- package/src/src/routing/api/openapi/spec-generator.ts +1 -20
- package/src/src/routing/api/openapi/types.ts +20 -0
- package/src/src/sandbox/sandbox.ts +8 -8
- package/src/src/security/http/cors/constants.ts +0 -4
- package/src/src/security/http/response/index.ts +3 -9
- package/src/src/server/context/enriched-context.ts +1 -19
- package/src/src/server/dev-server/server.ts +11 -4
- package/src/src/server/dev-ui/manifest.js +20 -20
- package/src/src/server/handlers/dev/framework-candidates.generated.ts +426 -179
- package/src/src/server/runtime-handler/index.ts +17 -28
- package/src/src/server/shared/renderer/memory/pressure.ts +2 -15
- package/src/src/server/utils/domain-lookup.ts +0 -4
- package/src/src/skill/allowed-tools.ts +107 -0
- package/src/src/skill/executor.ts +215 -0
- package/src/src/skill/index.ts +60 -0
- package/src/src/skill/parser.ts +214 -0
- package/src/src/skill/path-safety.ts +203 -0
- package/src/src/skill/prompt-augmentation.ts +48 -0
- package/src/src/skill/registry.ts +51 -0
- package/src/src/skill/tools.ts +197 -0
- package/src/src/skill/types.ts +107 -0
- package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
- package/src/src/studio/element-selector-injector.ts +0 -2
- package/src/src/task/runner.ts +10 -8
- package/src/src/tool/factory.ts +54 -54
- package/src/src/transforms/esm/http-cache-helpers.ts +0 -20
- package/src/src/transforms/esm/path-resolver.ts +1 -140
- package/src/src/transforms/esm/source-url-embed.ts +0 -53
- package/src/src/transforms/esm/transform-cache.ts +3 -7
- package/src/src/transforms/mdx/index.ts +0 -5
- package/src/src/transforms/pipeline/context.ts +0 -2
- package/src/src/transforms/pipeline/index.ts +0 -4
- package/src/src/transforms/pipeline/stages/ssr-http-cache.ts +0 -1
- package/src/src/types/entities/getEntityInfo.ts +1 -1
- package/src/src/types/index.ts +1 -20
- package/src/src/types/server.ts +1 -1
- package/src/src/utils/cache-file-ops.ts +5 -5
- package/src/src/utils/lru-wrapper.ts +2 -8
- package/src/src/workflow/claude-code/event-publisher.ts +13 -4
- package/src/src/workflow/executor/workflow-executor.ts +7 -2
- package/src/src/workflow/react/use-workflow-list.ts +3 -2
- package/esm/src/transforms/mdx/parser.d.ts +0 -4
- package/esm/src/transforms/mdx/parser.d.ts.map +0 -1
- package/esm/src/transforms/mdx/parser.js +0 -49
- package/src/src/transforms/mdx/parser.ts +0 -65
|
@@ -18,11 +18,6 @@ export declare function getEnvString(key: string, fallback: string): string;
|
|
|
18
18
|
export declare function getEnvNumber(key: string): number | undefined;
|
|
19
19
|
export declare function getEnvNumber(key: string, fallback: number): number;
|
|
20
20
|
export declare function getEnvBoolean(key: string, fallback?: boolean, options?: EnvBooleanOptions): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Get an environment variable or throw if not set
|
|
23
|
-
* @throws Error if the environment variable is not set
|
|
24
|
-
*/
|
|
25
|
-
export declare function requireEnv(key: string): string;
|
|
26
21
|
export declare function setEnv(key: string, value: string): void;
|
|
27
22
|
export declare function deleteEnv(key: string): void;
|
|
28
23
|
type EnvOverlayStorage = {
|
|
@@ -36,7 +31,6 @@ type EnvOverlayStorage = {
|
|
|
36
31
|
*/
|
|
37
32
|
export declare function getEnvOverlayStorage(): EnvOverlayStorage | null;
|
|
38
33
|
export declare function pid(): number;
|
|
39
|
-
export declare function ppid(): number;
|
|
40
34
|
export declare function memoryUsage(): {
|
|
41
35
|
rss: number;
|
|
42
36
|
heapTotal: number;
|
|
@@ -59,14 +53,6 @@ export declare function getTerminalSize(): {
|
|
|
59
53
|
columns: number;
|
|
60
54
|
rows: number;
|
|
61
55
|
};
|
|
62
|
-
/**
|
|
63
|
-
* Get network interfaces
|
|
64
|
-
*/
|
|
65
|
-
export declare function getNetworkInterfaces(): Promise<Array<{
|
|
66
|
-
name: string;
|
|
67
|
-
address: string;
|
|
68
|
-
family: "IPv4" | "IPv6";
|
|
69
|
-
}>>;
|
|
70
56
|
/**
|
|
71
57
|
* Get runtime version string
|
|
72
58
|
*/
|
|
@@ -150,6 +136,8 @@ export interface CommandOptions {
|
|
|
150
136
|
inherit?: boolean;
|
|
151
137
|
/** Use shell to run the command (needed for .cmd files on Windows) */
|
|
152
138
|
shell?: boolean;
|
|
139
|
+
/** Kill the command if it exceeds this duration (milliseconds) */
|
|
140
|
+
timeoutMs?: number;
|
|
153
141
|
}
|
|
154
142
|
/**
|
|
155
143
|
* Run a command and return the result.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/compat/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,wBAAwB,CAAC;AAclD,6EAA6E;AAC7E,wBAAgB,OAAO,IAAI,MAAM,EAAE,CAIlC;AAED,yFAAyF;AACzF,wBAAgB,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAIzC;AAED,wBAAgB,GAAG,IAAI,MAAM,CAI5B;AAED,wBAAgB,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAU7C;AAED,wBAAgB,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAI5C;AAqCD,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAatD;AAKD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAUD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAOpE,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAC9D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;AAUpE,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,QAAQ,UAAQ,EAChB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAmBT;AAED
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../../src/src/platform/compat/process.ts"],"names":[],"mappings":"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"}
|
|
@@ -137,16 +137,6 @@ export function getEnvBoolean(key, fallback = false, options = {}) {
|
|
|
137
137
|
}
|
|
138
138
|
return fallback;
|
|
139
139
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Get an environment variable or throw if not set
|
|
142
|
-
* @throws Error if the environment variable is not set
|
|
143
|
-
*/
|
|
144
|
-
export function requireEnv(key) {
|
|
145
|
-
const value = getEnv(key);
|
|
146
|
-
if (value === undefined)
|
|
147
|
-
throw new Error(`Required environment variable "${key}" is not set`);
|
|
148
|
-
return value;
|
|
149
|
-
}
|
|
150
140
|
export function setEnv(key, value) {
|
|
151
141
|
if (IS_DENO) {
|
|
152
142
|
dntShim.Deno.env.set(key, value);
|
|
@@ -189,13 +179,6 @@ export function pid() {
|
|
|
189
179
|
return nodeProcess.pid;
|
|
190
180
|
return 0;
|
|
191
181
|
}
|
|
192
|
-
export function ppid() {
|
|
193
|
-
if (IS_DENO && "ppid" in dntShim.Deno)
|
|
194
|
-
return dntShim.Deno.ppid || 0;
|
|
195
|
-
if (hasNodeProcess)
|
|
196
|
-
return nodeProcess.ppid || 0;
|
|
197
|
-
return 0;
|
|
198
|
-
}
|
|
199
182
|
export function memoryUsage() {
|
|
200
183
|
if (IS_DENO) {
|
|
201
184
|
const { rss, heapTotal, heapUsed, external } = dntShim.Deno.memoryUsage();
|
|
@@ -249,38 +232,6 @@ export function getTerminalSize() {
|
|
|
249
232
|
return { columns, rows };
|
|
250
233
|
return defaultSize;
|
|
251
234
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Get network interfaces
|
|
254
|
-
*/
|
|
255
|
-
export async function getNetworkInterfaces() {
|
|
256
|
-
if (IS_DENO) {
|
|
257
|
-
return dntShim.Deno.networkInterfaces().map((iface) => ({
|
|
258
|
-
name: iface.name,
|
|
259
|
-
address: iface.address,
|
|
260
|
-
family: iface.family,
|
|
261
|
-
}));
|
|
262
|
-
}
|
|
263
|
-
// Bun and Node.js both support node:os
|
|
264
|
-
if (!hasNodeProcess && !IS_BUN) {
|
|
265
|
-
throw new Error("networkInterfaces() is not supported in this runtime");
|
|
266
|
-
}
|
|
267
|
-
// Use dynamicImport to avoid static analysis by bundlers
|
|
268
|
-
const os = await dynamicImport("node:os");
|
|
269
|
-
const interfaces = os.networkInterfaces();
|
|
270
|
-
const result = [];
|
|
271
|
-
for (const [name, addrs] of Object.entries(interfaces)) {
|
|
272
|
-
if (!addrs)
|
|
273
|
-
continue;
|
|
274
|
-
for (const addr of addrs) {
|
|
275
|
-
result.push({
|
|
276
|
-
name,
|
|
277
|
-
address: addr.address,
|
|
278
|
-
family: addr.family,
|
|
279
|
-
});
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
return result;
|
|
283
|
-
}
|
|
284
235
|
/**
|
|
285
236
|
* Get runtime version string
|
|
286
237
|
*/
|
|
@@ -472,15 +423,60 @@ export function readStdinByteSync() {
|
|
|
472
423
|
}
|
|
473
424
|
if (IS_BUN) {
|
|
474
425
|
// Bun: read one byte from the file descriptor directly
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
const chunk =
|
|
478
|
-
if (chunk && chunk.length > 0)
|
|
479
|
-
|
|
426
|
+
const BunGlobal = dntShim.dntGlobalThis
|
|
427
|
+
.Bun;
|
|
428
|
+
const chunk = BunGlobal?.stdin?.read?.(1);
|
|
429
|
+
if (chunk && chunk.length > 0) {
|
|
430
|
+
const first = chunk.at(0);
|
|
431
|
+
return first ?? null;
|
|
432
|
+
}
|
|
480
433
|
return null;
|
|
481
434
|
}
|
|
482
435
|
return null;
|
|
483
436
|
}
|
|
437
|
+
const COMMAND_TIMEOUT_EXIT_CODE = 124;
|
|
438
|
+
const FORCE_KILL_GRACE_MS = 250;
|
|
439
|
+
function createTimeoutResult(timeoutMs, stdout, stderr) {
|
|
440
|
+
return {
|
|
441
|
+
success: false,
|
|
442
|
+
code: COMMAND_TIMEOUT_EXIT_CODE,
|
|
443
|
+
stdout,
|
|
444
|
+
stderr: `${stderr ?? ""}\nCommand timed out after ${timeoutMs}ms`.trim(),
|
|
445
|
+
};
|
|
446
|
+
}
|
|
447
|
+
function createProcessTimeout(timeoutMs, terminate, forceTerminate) {
|
|
448
|
+
let timedOut = false;
|
|
449
|
+
let timeoutId;
|
|
450
|
+
let forceKillId;
|
|
451
|
+
if (timeoutMs && timeoutMs > 0) {
|
|
452
|
+
timeoutId = dntShim.setTimeout(() => {
|
|
453
|
+
timedOut = true;
|
|
454
|
+
try {
|
|
455
|
+
terminate();
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
// Best-effort terminate.
|
|
459
|
+
}
|
|
460
|
+
forceKillId = dntShim.setTimeout(() => {
|
|
461
|
+
try {
|
|
462
|
+
forceTerminate();
|
|
463
|
+
}
|
|
464
|
+
catch {
|
|
465
|
+
// Best-effort force terminate.
|
|
466
|
+
}
|
|
467
|
+
}, FORCE_KILL_GRACE_MS);
|
|
468
|
+
}, timeoutMs);
|
|
469
|
+
}
|
|
470
|
+
return {
|
|
471
|
+
hasTimedOut: () => timedOut,
|
|
472
|
+
clear: () => {
|
|
473
|
+
if (timeoutId)
|
|
474
|
+
clearTimeout(timeoutId);
|
|
475
|
+
if (forceKillId)
|
|
476
|
+
clearTimeout(forceKillId);
|
|
477
|
+
},
|
|
478
|
+
};
|
|
479
|
+
}
|
|
484
480
|
async function readStreamToString(stream) {
|
|
485
481
|
const reader = stream.getReader();
|
|
486
482
|
const chunks = [];
|
|
@@ -511,7 +507,8 @@ async function readStreamToString(stream) {
|
|
|
511
507
|
* @param options.shell - Use shell to run command (needed for .cmd on Windows)
|
|
512
508
|
*/
|
|
513
509
|
export async function runCommand(cmd, options = {}) {
|
|
514
|
-
const { args = [], cwd: cmdCwd, env: cmdEnv, capture = false, inherit = false, shell = false } = options;
|
|
510
|
+
const { args = [], cwd: cmdCwd, env: cmdEnv, capture = false, inherit = false, shell = false, timeoutMs, } = options;
|
|
511
|
+
const effectiveTimeoutMs = timeoutMs && timeoutMs > 0 ? Math.floor(timeoutMs) : undefined;
|
|
515
512
|
// Determine stdio mode: inherit > capture > null
|
|
516
513
|
const stdioMode = inherit ? "inherit" : capture ? "piped" : "null";
|
|
517
514
|
if (IS_DENO) {
|
|
@@ -523,14 +520,26 @@ export async function runCommand(cmd, options = {}) {
|
|
|
523
520
|
stdout: stdioMode,
|
|
524
521
|
stderr: stdioMode,
|
|
525
522
|
});
|
|
526
|
-
const
|
|
527
|
-
const
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
523
|
+
const child = command.spawn();
|
|
524
|
+
const timeout = createProcessTimeout(effectiveTimeoutMs, () => child.kill("SIGTERM"), () => child.kill("SIGKILL"));
|
|
525
|
+
try {
|
|
526
|
+
const [status, stdout, stderr] = await Promise.all([
|
|
527
|
+
child.status,
|
|
528
|
+
capture && child.stdout ? readStreamToString(child.stdout) : Promise.resolve(undefined),
|
|
529
|
+
capture && child.stderr ? readStreamToString(child.stderr) : Promise.resolve(undefined),
|
|
530
|
+
]);
|
|
531
|
+
if (timeout.hasTimedOut())
|
|
532
|
+
return createTimeoutResult(effectiveTimeoutMs, stdout, stderr);
|
|
533
|
+
return {
|
|
534
|
+
success: status.success,
|
|
535
|
+
code: status.code,
|
|
536
|
+
stdout,
|
|
537
|
+
stderr,
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
finally {
|
|
541
|
+
timeout.clear();
|
|
542
|
+
}
|
|
534
543
|
}
|
|
535
544
|
if (IS_BUN) {
|
|
536
545
|
const bunGlobal = dntShim.dntGlobalThis;
|
|
@@ -550,14 +559,20 @@ export async function runCommand(cmd, options = {}) {
|
|
|
550
559
|
stdout: bunStdio,
|
|
551
560
|
stderr: bunStdio,
|
|
552
561
|
});
|
|
553
|
-
const
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
562
|
+
const timeout = createProcessTimeout(effectiveTimeoutMs, () => proc.kill?.("SIGTERM"), () => proc.kill?.("SIGKILL"));
|
|
563
|
+
try {
|
|
564
|
+
const [code, stdout, stderr] = await Promise.all([
|
|
565
|
+
proc.exited,
|
|
566
|
+
capture && proc.stdout ? readStreamToString(proc.stdout) : Promise.resolve(undefined),
|
|
567
|
+
capture && proc.stderr ? readStreamToString(proc.stderr) : Promise.resolve(undefined),
|
|
568
|
+
]);
|
|
569
|
+
if (timeout.hasTimedOut())
|
|
570
|
+
return createTimeoutResult(effectiveTimeoutMs, stdout, stderr);
|
|
571
|
+
return { success: code === 0, code, stdout, stderr };
|
|
572
|
+
}
|
|
573
|
+
finally {
|
|
574
|
+
timeout.clear();
|
|
559
575
|
}
|
|
560
|
-
return { success: code === 0, code, stdout, stderr };
|
|
561
576
|
}
|
|
562
577
|
if (!hasNodeProcess)
|
|
563
578
|
return { success: false, code: 1 };
|
|
@@ -577,6 +592,7 @@ export async function runCommand(cmd, options = {}) {
|
|
|
577
592
|
let stdout = "";
|
|
578
593
|
let stderr = "";
|
|
579
594
|
const decoder = new TextDecoder();
|
|
595
|
+
const timeout = createProcessTimeout(effectiveTimeoutMs, () => child.kill("SIGTERM"), () => child.kill("SIGKILL"));
|
|
580
596
|
if (capture) {
|
|
581
597
|
child.stdout?.on("data", (data) => {
|
|
582
598
|
stdout += decoder.decode(data);
|
|
@@ -586,6 +602,11 @@ export async function runCommand(cmd, options = {}) {
|
|
|
586
602
|
});
|
|
587
603
|
}
|
|
588
604
|
child.on("close", (code) => {
|
|
605
|
+
timeout.clear();
|
|
606
|
+
if (timeout.hasTimedOut()) {
|
|
607
|
+
resolve(createTimeoutResult(effectiveTimeoutMs, capture ? stdout : undefined, capture ? stderr : undefined));
|
|
608
|
+
return;
|
|
609
|
+
}
|
|
589
610
|
resolve({
|
|
590
611
|
success: code === 0,
|
|
591
612
|
code: code ?? 1,
|
|
@@ -594,6 +615,7 @@ export async function runCommand(cmd, options = {}) {
|
|
|
594
615
|
});
|
|
595
616
|
});
|
|
596
617
|
child.on("error", () => {
|
|
618
|
+
timeout.clear();
|
|
597
619
|
resolve({ success: false, code: 1 });
|
|
598
620
|
});
|
|
599
621
|
});
|
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
import "../../_dnt.polyfills.js";
|
|
19
|
-
export { clearModelProviders, ensureModelReady, getRegisteredModelProviders, hasModelProvider, registerModelProvider, resolveModel, } from "./model-registry.js";
|
|
19
|
+
export { clearModelProviders, ensureModelReady, findAvailableCloudModel, getRegisteredModelProviders, hasModelProvider, registerModelProvider, resolveModel, } from "./model-registry.js";
|
|
20
20
|
export type { ModelProviderFactory } from "./model-registry.js";
|
|
21
21
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/provider/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/provider/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -16,4 +16,4 @@
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
import "../../_dnt.polyfills.js";
|
|
19
|
-
export { clearModelProviders, ensureModelReady, getRegisteredModelProviders, hasModelProvider, registerModelProvider, resolveModel, } from "./model-registry.js";
|
|
19
|
+
export { clearModelProviders, ensureModelReady, findAvailableCloudModel, getRegisteredModelProviders, hasModelProvider, registerModelProvider, resolveModel, } from "./model-registry.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-sdk-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/ai-sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ai-sdk-adapter.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/ai-sdk-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AA4ExC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAoHhE"}
|
|
@@ -19,15 +19,17 @@ const logger = serverLogger.component("local-llm");
|
|
|
19
19
|
* The AI SDK prompt is an array of message objects with role and content arrays.
|
|
20
20
|
* We extract text content for the local model.
|
|
21
21
|
*/
|
|
22
|
-
// deno-lint-ignore no-explicit-any
|
|
23
22
|
function convertPrompt(prompt) {
|
|
24
23
|
const messages = [];
|
|
25
24
|
for (const msg of prompt) {
|
|
26
|
-
const role = msg.role;
|
|
27
25
|
// Skip tool messages — local models don't support tool calling
|
|
28
|
-
if (role === "tool")
|
|
26
|
+
if (msg.role === "tool")
|
|
29
27
|
continue;
|
|
30
|
-
const mappedRole = role === "system"
|
|
28
|
+
const mappedRole = msg.role === "system"
|
|
29
|
+
? "system"
|
|
30
|
+
: msg.role === "user"
|
|
31
|
+
? "user"
|
|
32
|
+
: "assistant";
|
|
31
33
|
// Extract text content from content array
|
|
32
34
|
let text = "";
|
|
33
35
|
if (typeof msg.content === "string") {
|
|
@@ -46,6 +48,16 @@ function convertPrompt(prompt) {
|
|
|
46
48
|
}
|
|
47
49
|
return messages;
|
|
48
50
|
}
|
|
51
|
+
/** Map AI SDK generation options to local engine GenerateOptions. */
|
|
52
|
+
function toGenerateOptions(options) {
|
|
53
|
+
return {
|
|
54
|
+
maxNewTokens: options.maxOutputTokens ?? 512,
|
|
55
|
+
temperature: options.temperature ?? 0.7,
|
|
56
|
+
topP: options.topP,
|
|
57
|
+
topK: options.topK,
|
|
58
|
+
stopSequences: options.stopSequences,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
49
61
|
/**
|
|
50
62
|
* Create a local AI SDK LanguageModel for the given model ID.
|
|
51
63
|
*
|
|
@@ -65,13 +77,7 @@ export function createLocalModel(modelId) {
|
|
|
65
77
|
supportedUrls: {},
|
|
66
78
|
async doGenerate(options) {
|
|
67
79
|
const messages = convertPrompt(options.prompt);
|
|
68
|
-
const genOptions =
|
|
69
|
-
maxNewTokens: options.maxOutputTokens ?? 512,
|
|
70
|
-
temperature: options.temperature ?? 0.7,
|
|
71
|
-
topP: options.topP,
|
|
72
|
-
topK: options.topK,
|
|
73
|
-
stopSequences: options.stopSequences,
|
|
74
|
-
};
|
|
80
|
+
const genOptions = toGenerateOptions(options);
|
|
75
81
|
logger.debug(`[local] doGenerate: ${messages.length} messages → ${resolvedId}`);
|
|
76
82
|
const text = await generate(resolvedId, messages, genOptions);
|
|
77
83
|
return {
|
|
@@ -98,13 +104,7 @@ export function createLocalModel(modelId) {
|
|
|
98
104
|
}));
|
|
99
105
|
}
|
|
100
106
|
const messages = convertPrompt(options.prompt);
|
|
101
|
-
const genOptions =
|
|
102
|
-
maxNewTokens: options.maxOutputTokens ?? 512,
|
|
103
|
-
temperature: options.temperature ?? 0.7,
|
|
104
|
-
topP: options.topP,
|
|
105
|
-
topK: options.topK,
|
|
106
|
-
stopSequences: options.stopSequences,
|
|
107
|
-
};
|
|
107
|
+
const genOptions = toGenerateOptions(options);
|
|
108
108
|
logger.debug(`[local] doStream: ${messages.length} messages → ${resolvedId}`);
|
|
109
109
|
const textId = `text-${Date.now()}`;
|
|
110
110
|
const stream = new ReadableStream({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,wBAAgB,iBAAiB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../../../src/src/provider/local/env.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,wBAAgB,iBAAiB,IAAI,OAAO,CAa3C"}
|
|
@@ -16,7 +16,8 @@ export function isLocalAIDisabled() {
|
|
|
16
16
|
const denoVal = dntShim.dntGlobalThis.Deno?.env?.get?.("VERYFRONT_DISABLE_LOCAL_AI");
|
|
17
17
|
if (denoVal === "1")
|
|
18
18
|
return true;
|
|
19
|
-
if (typeof process !== "undefined" &&
|
|
19
|
+
if (typeof process !== "undefined" &&
|
|
20
|
+
process.env?.VERYFRONT_DISABLE_LOCAL_AI === "1") {
|
|
20
21
|
return true;
|
|
21
22
|
}
|
|
22
23
|
return false;
|
|
@@ -24,6 +24,16 @@ export type ModelProviderFactory = (modelId: string) => LanguageModel;
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
export declare function registerModelProvider(name: string, factory: ModelProviderFactory): void;
|
|
27
|
+
/**
|
|
28
|
+
* Find the first cloud provider with a valid API key.
|
|
29
|
+
*
|
|
30
|
+
* Returns a "provider/model" string that can be passed to `resolveModel`,
|
|
31
|
+
* or `null` if no cloud provider is available.
|
|
32
|
+
*
|
|
33
|
+
* This is intentionally a **query** — it does NOT resolve the model.
|
|
34
|
+
* The caller (agent runtime) decides whether to use it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function findAvailableCloudModel(): string | null;
|
|
27
37
|
/**
|
|
28
38
|
* Resolve a "provider/model" string to an AI SDK LanguageModel instance.
|
|
29
39
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAmBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;
|
|
1
|
+
{"version":3,"file":"model-registry.d.ts","sourceRoot":"","sources":["../../../src/src/provider/model-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAmBxC,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,aAAa,CAAC;AAOtE;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,IAAI,CAEN;AAgHD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAQvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA+D/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGtD;AAED;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,EAAE,CAGtD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,GACnB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAG1C"}
|
|
@@ -104,6 +104,49 @@ function autoInitializeFromEnv() {
|
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Default cloud models to try when auto-upgrading from a local model.
|
|
109
|
+
* Ordered by preference: Anthropic → OpenAI → Google.
|
|
110
|
+
*
|
|
111
|
+
* NOTE: model IDs are hardcoded — update when default models change.
|
|
112
|
+
*/
|
|
113
|
+
const CLOUD_UPGRADE_CANDIDATES = [
|
|
114
|
+
{
|
|
115
|
+
provider: "anthropic",
|
|
116
|
+
model: "claude-sonnet-4-20250514",
|
|
117
|
+
hasKey: () => !!getAnthropicEnvConfig().apiKey,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
provider: "openai",
|
|
121
|
+
model: "gpt-4o-mini",
|
|
122
|
+
hasKey: () => !!getOpenAIEnvConfig().apiKey,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
provider: "google",
|
|
126
|
+
model: "gemini-2.0-flash",
|
|
127
|
+
hasKey: () => !!getGoogleGenAIEnvConfig().apiKey,
|
|
128
|
+
},
|
|
129
|
+
];
|
|
130
|
+
/**
|
|
131
|
+
* Find the first cloud provider with a valid API key.
|
|
132
|
+
*
|
|
133
|
+
* Returns a "provider/model" string that can be passed to `resolveModel`,
|
|
134
|
+
* or `null` if no cloud provider is available.
|
|
135
|
+
*
|
|
136
|
+
* This is intentionally a **query** — it does NOT resolve the model.
|
|
137
|
+
* The caller (agent runtime) decides whether to use it.
|
|
138
|
+
*/
|
|
139
|
+
export function findAvailableCloudModel() {
|
|
140
|
+
autoInitializeFromEnv();
|
|
141
|
+
for (const { provider, model, hasKey } of CLOUD_UPGRADE_CANDIDATES) {
|
|
142
|
+
if (!hasKey())
|
|
143
|
+
continue;
|
|
144
|
+
if (!manager.has(provider))
|
|
145
|
+
continue;
|
|
146
|
+
return `${provider}/${model}`;
|
|
147
|
+
}
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
107
150
|
/**
|
|
108
151
|
* Resolve a "provider/model" string to an AI SDK LanguageModel instance.
|
|
109
152
|
*
|
package/esm/src/proxy/retry.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Retry utilities for the proxy server.
|
|
3
3
|
*/
|
|
4
|
-
export declare function isRetryableConnectionError(error: unknown): boolean;
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
5
|
+
* Check if a fetch error is a transient connection error worth retrying.
|
|
6
|
+
* These occur when renderer pods are being recycled or temporarily unavailable.
|
|
7
7
|
*/
|
|
8
|
-
export declare function
|
|
8
|
+
export declare function isRetryableConnectionError(error: unknown): boolean;
|
|
9
9
|
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAUlE"}
|
package/esm/src/proxy/retry.js
CHANGED
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* Check if a fetch error is a transient connection error worth retrying.
|
|
6
6
|
* These occur when renderer pods are being recycled or temporarily unavailable.
|
|
7
7
|
*/
|
|
8
|
-
import * as dntShim from "../../_dnt.shims.js";
|
|
9
8
|
export function isRetryableConnectionError(error) {
|
|
10
9
|
if (!(error instanceof Error))
|
|
11
10
|
return false;
|
|
@@ -17,9 +16,3 @@ export function isRetryableConnectionError(error) {
|
|
|
17
16
|
msg.includes("os error 111") // ECONNREFUSED
|
|
18
17
|
);
|
|
19
18
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Sleep for the specified number of milliseconds.
|
|
22
|
-
*/
|
|
23
|
-
export function sleep(ms) {
|
|
24
|
-
return new Promise((resolve) => dntShim.setTimeout(resolve, ms));
|
|
25
|
-
}
|
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as dntShim from "../../_dnt.shims.js";
|
|
6
6
|
import type { Context, Span } from "@opentelemetry/api";
|
|
7
|
-
export declare function
|
|
7
|
+
export declare function initializeOTLPWithApis(): Promise<void>;
|
|
8
8
|
export declare function shutdownOTLP(): Promise<void>;
|
|
9
|
-
export declare function isOTLPEnabled(): boolean;
|
|
10
9
|
export declare function extractContext(headers: dntShim.Headers): Context | undefined;
|
|
11
10
|
export declare function injectContext(headers: dntShim.Headers): void;
|
|
12
11
|
export declare function startServerSpan(method: string, path: string, parentContext?: Context): {
|
|
@@ -23,8 +22,6 @@ export declare function getTraceContext(): {
|
|
|
23
22
|
* Span names for proxy tracing.
|
|
24
23
|
*/
|
|
25
24
|
export declare const ProxySpanNames: {
|
|
26
|
-
readonly PROXY_REQUEST: "proxy.request";
|
|
27
|
-
readonly PROXY_PROCESS: "proxy.process";
|
|
28
25
|
readonly PROXY_TOKEN_FETCH: "proxy.token_fetch";
|
|
29
26
|
readonly PROXY_DOMAIN_LOOKUP: "proxy.domain_lookup";
|
|
30
27
|
readonly OAUTH_TOKEN_REQUEST: "oauth.token_request";
|
|
@@ -35,5 +32,4 @@ export declare const ProxySpanNames: {
|
|
|
35
32
|
* If tracing is disabled, executes the function directly.
|
|
36
33
|
*/
|
|
37
34
|
export declare function withSpan<T>(name: string, fn: () => Promise<T>, attributes?: Record<string, string | number | boolean>): Promise<T>;
|
|
38
|
-
export { initializeOTLP as initializeOTLPWithApis };
|
|
39
35
|
//# sourceMappingURL=tracing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAU,MAAM,oBAAoB,CAAC;AAgEhE,wBAAsB,
|
|
1
|
+
{"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../../../src/src/proxy/tracing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAG/C,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAU,MAAM,oBAAoB,CAAC;AAgEhE,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAyD5D;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CASlD;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,GAAG,SAAS,CAgB5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CAgB5D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,aAAa,CAAC,EAAE,OAAO,GACtB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAMzC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,CAiBvF;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAGrF;AAWD,wBAAgB,eAAe,IAAI;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAIvE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,GACrD,OAAO,CAAC,CAAC,CAAC,CA0BZ"}
|
package/esm/src/proxy/tracing.js
CHANGED
|
@@ -49,7 +49,7 @@ async function loadApis() {
|
|
|
49
49
|
traceApi = await import("@opentelemetry/api");
|
|
50
50
|
propagationApi = await import("@opentelemetry/core");
|
|
51
51
|
}
|
|
52
|
-
export async function
|
|
52
|
+
export async function initializeOTLPWithApis() {
|
|
53
53
|
if (initialized)
|
|
54
54
|
return;
|
|
55
55
|
const config = getConfig();
|
|
@@ -106,9 +106,6 @@ export async function shutdownOTLP() {
|
|
|
106
106
|
console.warn("[otel] Shutdown error", { error });
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
|
-
export function isOTLPEnabled() {
|
|
110
|
-
return initialized && tracerProvider !== null;
|
|
111
|
-
}
|
|
112
109
|
function getPropagator() {
|
|
113
110
|
if (!propagationApi)
|
|
114
111
|
return null;
|
|
@@ -181,8 +178,6 @@ export function getTraceContext() {
|
|
|
181
178
|
* Span names for proxy tracing.
|
|
182
179
|
*/
|
|
183
180
|
export const ProxySpanNames = {
|
|
184
|
-
PROXY_REQUEST: "proxy.request",
|
|
185
|
-
PROXY_PROCESS: "proxy.process",
|
|
186
181
|
PROXY_TOKEN_FETCH: "proxy.token_fetch",
|
|
187
182
|
PROXY_DOMAIN_LOOKUP: "proxy.domain_lookup",
|
|
188
183
|
OAUTH_TOKEN_REQUEST: "oauth.token_request",
|
|
@@ -216,4 +211,3 @@ export async function withSpan(name, fn, attributes) {
|
|
|
216
211
|
span.end();
|
|
217
212
|
}
|
|
218
213
|
}
|
|
219
|
-
export { initializeOTLP as initializeOTLPWithApis };
|
|
@@ -32,7 +32,7 @@ export const RichCodeBlock = React.forwardRef(function RichCodeBlock({ language,
|
|
|
32
32
|
: (React.createElement(React.Fragment, null,
|
|
33
33
|
React.createElement(CopyIcon, { className: "size-3.5" }),
|
|
34
34
|
React.createElement("span", null, "Copy"))))),
|
|
35
|
-
React.createElement("pre", { className: "p-4 text-[var(--foreground)] overflow-auto text-sm" },
|
|
35
|
+
React.createElement("pre", { className: "p-4 text-[var(--foreground)] bg-[var(--accent)] overflow-auto text-sm [&_.hljs]:bg-transparent [&_.hljs]:p-0" },
|
|
36
36
|
React.createElement("code", { className: language ? `language-${language}` : undefined }, code))));
|
|
37
37
|
});
|
|
38
38
|
RichCodeBlock.displayName = "RichCodeBlock";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Badge — compact indicator for skill tool calls (load-skill, load-skill-reference, execute-skill-script).
|
|
3
|
+
* @module ai/react/components/chat/components/skill-badge
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import type { DynamicToolUIPart, ToolUIPart } from "../../../../../agent/react/index.js";
|
|
7
|
+
export interface SkillBadgeProps {
|
|
8
|
+
tool: ToolUIPart | DynamicToolUIPart;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function SkillBadge({ tool, className }: SkillBadgeProps): React.JSX.Element;
|
|
12
|
+
//# sourceMappingURL=skill-badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-badge.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/ai/chat/components/skill-badge.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAEzF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAmClF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Badge — compact indicator for skill tool calls (load-skill, load-skill-reference, execute-skill-script).
|
|
3
|
+
* @module ai/react/components/chat/components/skill-badge
|
|
4
|
+
*/
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { cn } from "../../theme.js";
|
|
7
|
+
import { CheckCircleIcon, SparklesIcon, XCircleIcon } from "../../icons/index.js";
|
|
8
|
+
export function SkillBadge({ tool, className }) {
|
|
9
|
+
const input = tool.input;
|
|
10
|
+
const skillId = input?.skillId;
|
|
11
|
+
const isComplete = tool.state === "output-available";
|
|
12
|
+
const isError = tool.state === "output-error";
|
|
13
|
+
let label;
|
|
14
|
+
if (tool.toolName === "load-skill") {
|
|
15
|
+
label = isComplete
|
|
16
|
+
? `Skill: ${skillId ?? "unknown"}`
|
|
17
|
+
: `Loading skill${skillId ? `: ${skillId}` : ""}...`;
|
|
18
|
+
}
|
|
19
|
+
else if (tool.toolName === "load-skill-reference") {
|
|
20
|
+
const ref = input?.reference;
|
|
21
|
+
label = isComplete ? `Reference: ${ref ?? "unknown"}` : `Reading${ref ? `: ${ref}` : ""}...`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const script = input?.script;
|
|
25
|
+
label = isComplete
|
|
26
|
+
? `Script: ${script ?? "complete"}`
|
|
27
|
+
: `Running${script ? `: ${script}` : ""}...`;
|
|
28
|
+
}
|
|
29
|
+
return (React.createElement("span", { className: cn("inline-flex items-center gap-1.5 rounded-full px-2.5 py-1 text-xs font-medium", "bg-[var(--accent)] text-[var(--muted-foreground)] border border-[var(--border)]", className) },
|
|
30
|
+
React.createElement(SparklesIcon, { className: cn("size-3", !isComplete && !isError && "animate-pulse") }),
|
|
31
|
+
React.createElement("span", null, label),
|
|
32
|
+
isComplete && React.createElement(CheckCircleIcon, { className: "size-3 text-[var(--success)]" }),
|
|
33
|
+
isError && React.createElement(XCircleIcon, { className: "size-3 text-[var(--destructive)]" })));
|
|
34
|
+
}
|