veryfront 0.1.215 → 0.1.217
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/README.md +1 -1
- package/esm/cli/commands/extension/command-help.d.ts +3 -0
- package/esm/cli/commands/extension/command-help.d.ts.map +1 -0
- package/esm/cli/commands/extension/command-help.js +16 -0
- package/esm/cli/commands/extension/handler.d.ts +3 -0
- package/esm/cli/commands/extension/handler.d.ts.map +1 -0
- package/esm/cli/commands/extension/handler.js +36 -0
- package/esm/cli/commands/extension/init-command.d.ts +19 -0
- package/esm/cli/commands/extension/init-command.d.ts.map +1 -0
- package/esm/cli/commands/extension/init-command.js +122 -0
- package/esm/cli/commands/extension/validate-command.d.ts +13 -0
- package/esm/cli/commands/extension/validate-command.d.ts.map +1 -0
- package/esm/cli/commands/extension/validate-command.js +62 -0
- package/esm/cli/commands/generate/integration-generator-helpers.d.ts +35 -0
- package/esm/cli/commands/generate/integration-generator-helpers.d.ts.map +1 -0
- package/esm/cli/commands/generate/integration-generator-helpers.js +123 -0
- package/esm/cli/commands/generate/integration-generator.d.ts +1 -2
- package/esm/cli/commands/generate/integration-generator.d.ts.map +1 -1
- package/esm/cli/commands/generate/integration-generator.js +1 -123
- package/esm/cli/commands/knowledge/command-helpers.d.ts +48 -0
- package/esm/cli/commands/knowledge/command-helpers.d.ts.map +1 -0
- package/esm/cli/commands/knowledge/command-helpers.js +216 -0
- package/esm/cli/commands/knowledge/command.d.ts +12 -17
- package/esm/cli/commands/knowledge/command.d.ts.map +1 -1
- package/esm/cli/commands/knowledge/command.js +26 -214
- package/esm/cli/help/command-definitions.d.ts.map +1 -1
- package/esm/cli/help/command-definitions.js +2 -0
- package/esm/cli/mcp/remote-file-tool-helpers.d.ts +5 -0
- package/esm/cli/mcp/remote-file-tool-helpers.d.ts.map +1 -0
- package/esm/cli/mcp/remote-file-tool-helpers.js +22 -0
- package/esm/cli/mcp/remote-file-tools.d.ts.map +1 -1
- package/esm/cli/mcp/remote-file-tools.js +1 -22
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +2 -0
- package/esm/cli/templates/integration-loader-helpers.d.ts +8 -0
- package/esm/cli/templates/integration-loader-helpers.d.ts.map +1 -0
- package/esm/cli/templates/integration-loader-helpers.js +29 -0
- package/esm/cli/templates/integration-loader.d.ts.map +1 -1
- package/esm/cli/templates/integration-loader.js +5 -21
- package/esm/cli/templates/manifest.d.ts +1 -0
- package/esm/cli/templates/manifest.js +2 -1
- package/esm/deno.d.ts +3 -0
- package/esm/deno.js +5 -2
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +48 -90
- package/esm/src/chat/ag-ui-helpers.d.ts +17 -0
- package/esm/src/chat/ag-ui-helpers.d.ts.map +1 -0
- package/esm/src/chat/ag-ui-helpers.js +111 -0
- package/esm/src/chat/ag-ui.d.ts.map +1 -1
- package/esm/src/chat/ag-ui.js +1 -111
- package/esm/src/config/schemas/config.schema.d.ts +1 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +11 -0
- package/esm/src/config/schemas/index.d.ts +11 -1
- package/esm/src/config/schemas/index.d.ts.map +1 -1
- package/esm/src/errors/error-registry-helpers.d.ts +6 -0
- package/esm/src/errors/error-registry-helpers.d.ts.map +1 -0
- package/esm/src/errors/error-registry-helpers.js +9 -0
- package/esm/src/errors/error-registry.d.ts.map +1 -1
- package/esm/src/errors/error-registry.js +4 -3
- package/esm/src/extensions/capabilities.d.ts +20 -0
- package/esm/src/extensions/capabilities.d.ts.map +1 -0
- package/esm/src/extensions/capabilities.js +77 -0
- package/esm/src/extensions/contracts.d.ts +10 -0
- package/esm/src/extensions/contracts.d.ts.map +1 -0
- package/esm/src/extensions/contracts.js +28 -0
- package/esm/src/extensions/discovery.d.ts +48 -0
- package/esm/src/extensions/discovery.d.ts.map +1 -0
- package/esm/src/extensions/discovery.js +179 -0
- package/esm/src/extensions/errors.d.ts +10 -0
- package/esm/src/extensions/errors.d.ts.map +1 -0
- package/esm/src/extensions/errors.js +34 -0
- package/esm/src/extensions/factory-loader.d.ts +29 -0
- package/esm/src/extensions/factory-loader.d.ts.map +1 -0
- package/esm/src/extensions/factory-loader.js +63 -0
- package/esm/src/extensions/index.d.ts +37 -0
- package/esm/src/extensions/index.d.ts.map +1 -0
- package/esm/src/extensions/index.js +41 -0
- package/esm/src/extensions/interfaces/ai-model-provider.d.ts +94 -0
- package/esm/src/extensions/interfaces/ai-model-provider.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/ai-model-provider.js +8 -0
- package/esm/src/extensions/interfaces/auth-provider.d.ts +49 -0
- package/esm/src/extensions/interfaces/auth-provider.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/auth-provider.js +8 -0
- package/esm/src/extensions/interfaces/bundler.d.ts +118 -0
- package/esm/src/extensions/interfaces/bundler.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/bundler.js +8 -0
- package/esm/src/extensions/interfaces/cache-store.d.ts +27 -0
- package/esm/src/extensions/interfaces/cache-store.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/cache-store.js +8 -0
- package/esm/src/extensions/interfaces/code-parser.d.ts +76 -0
- package/esm/src/extensions/interfaces/code-parser.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/code-parser.js +8 -0
- package/esm/src/extensions/interfaces/content-transformer.d.ts +40 -0
- package/esm/src/extensions/interfaces/content-transformer.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/content-transformer.js +8 -0
- package/esm/src/extensions/interfaces/css-processor.d.ts +38 -0
- package/esm/src/extensions/interfaces/css-processor.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/css-processor.js +8 -0
- package/esm/src/extensions/interfaces/database-client.d.ts +31 -0
- package/esm/src/extensions/interfaces/database-client.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/database-client.js +8 -0
- package/esm/src/extensions/interfaces/embedding-provider.d.ts +37 -0
- package/esm/src/extensions/interfaces/embedding-provider.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/embedding-provider.js +8 -0
- package/esm/src/extensions/interfaces/index.d.ts +21 -0
- package/esm/src/extensions/interfaces/index.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/index.js +9 -0
- package/esm/src/extensions/interfaces/node-compat.d.ts +25 -0
- package/esm/src/extensions/interfaces/node-compat.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/node-compat.js +8 -0
- package/esm/src/extensions/interfaces/schema-validator.d.ts +46 -0
- package/esm/src/extensions/interfaces/schema-validator.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/schema-validator.js +8 -0
- package/esm/src/extensions/interfaces/tracing-exporter.d.ts +44 -0
- package/esm/src/extensions/interfaces/tracing-exporter.d.ts.map +1 -0
- package/esm/src/extensions/interfaces/tracing-exporter.js +8 -0
- package/esm/src/extensions/loader.d.ts +33 -0
- package/esm/src/extensions/loader.d.ts.map +1 -0
- package/esm/src/extensions/loader.js +209 -0
- package/esm/src/extensions/orchestrate.d.ts +54 -0
- package/esm/src/extensions/orchestrate.d.ts.map +1 -0
- package/esm/src/extensions/orchestrate.js +116 -0
- package/esm/src/extensions/recommendations.d.ts +7 -0
- package/esm/src/extensions/recommendations.d.ts.map +1 -0
- package/esm/src/extensions/recommendations.js +22 -0
- package/esm/src/extensions/types.d.ts +47 -0
- package/esm/src/extensions/types.d.ts.map +1 -0
- package/esm/src/extensions/types.js +6 -0
- package/esm/src/extensions/validation.d.ts +44 -0
- package/esm/src/extensions/validation.d.ts.map +1 -0
- package/esm/src/extensions/validation.js +115 -0
- package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
- package/esm/src/html/styles-builder/plugin-loader.js +23 -0
- package/esm/src/html/styles-builder/tailwind-plugin-allowlist.d.ts +29 -0
- package/esm/src/html/styles-builder/tailwind-plugin-allowlist.d.ts.map +1 -0
- package/esm/src/html/styles-builder/tailwind-plugin-allowlist.js +48 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.d.ts +15 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.d.ts.map +1 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader-helpers.js +22 -0
- package/esm/src/modules/react-loader/ssr-module-loader/loader.d.ts +0 -2
- 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 +4 -24
- package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.d.ts +19 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.d.ts.map +1 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter-helpers.js +26 -0
- package/esm/src/platform/adapters/fs/veryfront/adapter.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/adapter.js +4 -20
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts +1 -0
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/read-operations-helpers.js +3 -0
- package/esm/src/platform/adapters/fs/veryfront/read-operations.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/read-operations.js +4 -7
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.d.ts +28 -0
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.d.ts.map +1 -0
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager-helpers.js +41 -0
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts +1 -4
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.d.ts.map +1 -1
- package/esm/src/platform/adapters/fs/veryfront/websocket-manager.js +7 -40
- package/esm/src/platform/compat/process/command.d.ts +31 -0
- package/esm/src/platform/compat/process/command.d.ts.map +1 -0
- package/esm/src/platform/compat/process/command.js +193 -0
- package/esm/src/platform/compat/process/env.d.ts +31 -0
- package/esm/src/platform/compat/process/env.d.ts.map +1 -0
- package/esm/src/platform/compat/process/env.js +175 -0
- package/esm/src/platform/compat/process/lifecycle.d.ts +98 -0
- package/esm/src/platform/compat/process/lifecycle.d.ts.map +1 -0
- package/esm/src/platform/compat/process/lifecycle.js +305 -0
- package/esm/src/platform/compat/process/runtime-process.d.ts +10 -0
- package/esm/src/platform/compat/process/runtime-process.d.ts.map +1 -0
- package/esm/src/platform/compat/process/runtime-process.js +24 -0
- package/esm/src/platform/compat/process.d.ts +4 -165
- package/esm/src/platform/compat/process.d.ts.map +1 -1
- package/esm/src/platform/compat/process.js +4 -682
- package/esm/src/platform/index.d.ts +1 -1
- package/esm/src/platform/index.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader/provider-endpoints.d.ts +8 -0
- package/esm/src/provider/runtime-loader/provider-endpoints.d.ts.map +1 -0
- package/esm/src/provider/runtime-loader/provider-endpoints.js +27 -0
- package/esm/src/provider/runtime-loader/provider-request-init.d.ts +32 -0
- package/esm/src/provider/runtime-loader/provider-request-init.d.ts.map +1 -0
- package/esm/src/provider/runtime-loader/provider-request-init.js +67 -0
- package/esm/src/provider/runtime-loader/tool-input-status.d.ts +17 -0
- package/esm/src/provider/runtime-loader/tool-input-status.d.ts.map +1 -0
- package/esm/src/provider/runtime-loader/tool-input-status.js +155 -0
- package/esm/src/provider/runtime-loader.d.ts +2 -3
- package/esm/src/provider/runtime-loader.d.ts.map +1 -1
- package/esm/src/provider/runtime-loader.js +92 -291
- package/esm/src/proxy/handler.d.ts.map +1 -1
- package/esm/src/proxy/handler.js +14 -0
- package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts +8 -0
- package/esm/src/rendering/orchestrator/pipeline-helpers.d.ts.map +1 -0
- package/esm/src/rendering/orchestrator/pipeline-helpers.js +20 -0
- package/esm/src/rendering/orchestrator/pipeline.d.ts +0 -3
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +4 -22
- package/esm/src/routing/api/module-loader/loader-helpers.d.ts +10 -0
- package/esm/src/routing/api/module-loader/loader-helpers.d.ts.map +1 -0
- package/esm/src/routing/api/module-loader/loader-helpers.js +62 -0
- package/esm/src/routing/api/module-loader/loader.d.ts +1 -1
- package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
- package/esm/src/routing/api/module-loader/loader.js +2 -60
- package/esm/src/server/bootstrap.d.ts +22 -2
- package/esm/src/server/bootstrap.d.ts.map +1 -1
- package/esm/src/server/bootstrap.js +67 -5
- package/esm/src/server/dev-ui/manifest.d.ts +2 -0
- package/esm/src/server/dev-ui/manifest.js +3 -1
- package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
- package/esm/src/server/handlers/request/api/project-discovery.js +14 -8
- package/esm/src/server/production-server.js +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.d.ts.map +1 -1
- package/esm/src/server/services/rsc/endpoints/rsc-bundles.generated.js +2 -2
- package/esm/src/server/utils/domain-parser.d.ts.map +1 -1
- package/esm/src/server/utils/domain-parser.js +4 -0
- 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/tool/index.d.ts +1 -1
- package/esm/src/tool/index.d.ts.map +1 -1
- package/esm/src/tool/types.d.ts +20 -0
- package/esm/src/tool/types.d.ts.map +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +7 -1
- package/src/cli/commands/extension/command-help.ts +18 -0
- package/src/cli/commands/extension/handler.ts +41 -0
- package/src/cli/commands/extension/init-command.ts +140 -0
- package/src/cli/commands/extension/validate-command.ts +78 -0
- package/src/cli/commands/generate/integration-generator-helpers.ts +185 -0
- package/src/cli/commands/generate/integration-generator.ts +12 -168
- package/src/cli/commands/knowledge/command-helpers.ts +295 -0
- package/src/cli/commands/knowledge/command.ts +34 -261
- package/src/cli/help/command-definitions.ts +2 -0
- package/src/cli/mcp/remote-file-tool-helpers.ts +27 -0
- package/src/cli/mcp/remote-file-tools.ts +6 -28
- package/src/cli/router.ts +2 -0
- package/src/cli/templates/integration-loader-helpers.ts +49 -0
- package/src/cli/templates/integration-loader.ts +10 -28
- package/src/cli/templates/manifest.js +2 -1
- package/src/deno.js +5 -2
- package/src/src/agent/runtime/index.ts +77 -94
- package/src/src/chat/ag-ui-helpers.ts +139 -0
- package/src/src/chat/ag-ui.ts +11 -139
- package/src/src/config/schemas/config.schema.ts +11 -0
- package/src/src/config/schemas/index.ts +15 -1
- package/src/src/errors/error-registry-helpers.ts +23 -0
- package/src/src/errors/error-registry.ts +8 -3
- package/src/src/extensions/capabilities.ts +97 -0
- package/src/src/extensions/contracts.ts +36 -0
- package/src/src/extensions/discovery.ts +221 -0
- package/src/src/extensions/errors.ts +39 -0
- package/src/src/extensions/factory-loader.ts +76 -0
- package/src/src/extensions/index.ts +79 -0
- package/src/src/extensions/interfaces/ai-model-provider.ts +100 -0
- package/src/src/extensions/interfaces/auth-provider.ts +52 -0
- package/src/src/extensions/interfaces/bundler.ts +116 -0
- package/src/src/extensions/interfaces/cache-store.ts +27 -0
- package/src/src/extensions/interfaces/code-parser.ts +84 -0
- package/src/src/extensions/interfaces/content-transformer.ts +38 -0
- package/src/src/extensions/interfaces/css-processor.ts +40 -0
- package/src/src/extensions/interfaces/database-client.ts +35 -0
- package/src/src/extensions/interfaces/embedding-provider.ts +39 -0
- package/src/src/extensions/interfaces/index.ts +81 -0
- package/src/src/extensions/interfaces/node-compat.ts +25 -0
- package/src/src/extensions/interfaces/schema-validator.ts +51 -0
- package/src/src/extensions/interfaces/tracing-exporter.ts +42 -0
- package/src/src/extensions/loader.ts +245 -0
- package/src/src/extensions/orchestrate.ts +184 -0
- package/src/src/extensions/recommendations.ts +24 -0
- package/src/src/extensions/types.ts +57 -0
- package/src/src/extensions/validation.ts +147 -0
- package/src/src/html/styles-builder/plugin-loader.ts +32 -0
- package/src/src/html/styles-builder/tailwind-plugin-allowlist.ts +51 -0
- package/src/src/modules/react-loader/ssr-module-loader/loader-helpers.ts +37 -0
- package/src/src/modules/react-loader/ssr-module-loader/loader.ts +8 -39
- package/src/src/platform/adapters/fs/veryfront/adapter-helpers.ts +43 -0
- package/src/src/platform/adapters/fs/veryfront/adapter.ts +8 -22
- package/src/src/platform/adapters/fs/veryfront/read-operations-helpers.ts +4 -0
- package/src/src/platform/adapters/fs/veryfront/read-operations.ts +4 -7
- package/src/src/platform/adapters/fs/veryfront/websocket-manager-helpers.ts +73 -0
- package/src/src/platform/adapters/fs/veryfront/websocket-manager.ts +29 -44
- package/src/src/platform/compat/process/command.ts +297 -0
- package/src/src/platform/compat/process/env.ts +227 -0
- package/src/src/platform/compat/process/lifecycle.ts +330 -0
- package/src/src/platform/compat/process/runtime-process.ts +27 -0
- package/src/src/platform/compat/process.ts +37 -870
- package/src/src/platform/index.ts +1 -0
- package/src/src/provider/runtime-loader/provider-endpoints.ts +50 -0
- package/src/src/provider/runtime-loader/provider-request-init.ts +101 -0
- package/src/src/provider/runtime-loader/tool-input-status.ts +210 -0
- package/src/src/provider/runtime-loader.ts +113 -368
- package/src/src/proxy/handler.ts +16 -0
- package/src/src/rendering/orchestrator/pipeline-helpers.ts +35 -0
- package/src/src/rendering/orchestrator/pipeline.ts +8 -35
- package/src/src/routing/api/module-loader/loader-helpers.ts +68 -0
- package/src/src/routing/api/module-loader/loader.ts +8 -65
- package/src/src/server/bootstrap.ts +88 -7
- package/src/src/server/dev-ui/manifest.js +3 -1
- package/src/src/server/handlers/request/api/project-discovery.ts +19 -8
- package/src/src/server/production-server.ts +1 -1
- package/src/src/server/services/rsc/endpoints/rsc-bundles.generated.ts +2 -2
- package/src/src/server/utils/domain-parser.ts +4 -0
- package/src/src/studio/bridge/bridge-bundle.generated.ts +1 -1
- package/src/src/tool/index.ts +1 -0
- package/src/src/tool/types.ts +21 -0
- package/src/src/utils/version-constant.ts +1 -1
|
@@ -16,6 +16,12 @@ import { withSpan } from "../../src/observability/tracing/otlp-setup.js";
|
|
|
16
16
|
import { randomSuffix } from "../shared/slug.js";
|
|
17
17
|
|
|
18
18
|
import { DEFAULT_LOCAL_API_URL } from "../shared/constants.js";
|
|
19
|
+
import {
|
|
20
|
+
buildProjectApiPath,
|
|
21
|
+
buildProjectFilePath,
|
|
22
|
+
getBranchParam,
|
|
23
|
+
slugToName,
|
|
24
|
+
} from "./remote-file-tool-helpers.js";
|
|
19
25
|
|
|
20
26
|
function getApiBaseUrl(): string {
|
|
21
27
|
return getEnvironmentConfig().apiBaseUrl || DEFAULT_LOCAL_API_URL;
|
|
@@ -73,27 +79,6 @@ async function apiRequest<T>(
|
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
81
|
|
|
76
|
-
function encodeFilePath(path: string): string {
|
|
77
|
-
return path.split("/").map(encodeURIComponent).join("/");
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function getBranchPath(branch?: string): string {
|
|
81
|
-
return branch ? `/branches/${branch}` : "";
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
function getBranchParam(branch?: string): string {
|
|
85
|
-
return branch ? `?branch_id=${branch}` : "";
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function buildProjectApiPath(project: string, resource: string, branch?: string): string {
|
|
89
|
-
const normalizedResource = resource.startsWith("/") ? resource.slice(1) : resource;
|
|
90
|
-
return `/${project}${getBranchPath(branch)}/${normalizedResource}`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function buildProjectFilePath(project: string, filePath: string, branch?: string): string {
|
|
94
|
-
return buildProjectApiPath(project, `files/${encodeFilePath(filePath)}`, branch);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
82
|
interface RemoteFile {
|
|
98
83
|
id?: string;
|
|
99
84
|
path: string;
|
|
@@ -145,13 +130,6 @@ interface Project {
|
|
|
145
130
|
|
|
146
131
|
const MAX_SLUG_ATTEMPTS = 10;
|
|
147
132
|
|
|
148
|
-
function slugToName(slug: string): string {
|
|
149
|
-
return slug
|
|
150
|
-
.split("-")
|
|
151
|
-
.map((w) => w.charAt(0).toUpperCase() + w.slice(1))
|
|
152
|
-
.join(" ");
|
|
153
|
-
}
|
|
154
|
-
|
|
155
133
|
/**
|
|
156
134
|
* Create a project with slug conflict retry.
|
|
157
135
|
* On 409, appends a random suffix and retries (matches reserveProjectSlug behavior).
|
package/src/cli/router.ts
CHANGED
|
@@ -15,6 +15,7 @@ import { handleDemoCommand } from "./commands/demo/handler.js";
|
|
|
15
15
|
import { handleDeployCommand } from "./commands/deploy/handler.js";
|
|
16
16
|
import { handleDevCommand } from "./commands/dev/handler.js";
|
|
17
17
|
import { handleDoctorCommand } from "./commands/doctor/handler.js";
|
|
18
|
+
import { handleExtensionCommand } from "./commands/extension/handler.js";
|
|
18
19
|
import { handleGenerateCommand } from "./commands/generate/handler.js";
|
|
19
20
|
import { handleInitCommand } from "./commands/init/handler.js";
|
|
20
21
|
import { handleInstallCommand, handleUninstallCommand } from "./commands/install/handler.js";
|
|
@@ -120,6 +121,7 @@ const commands: Record<string, (args: ParsedArgs) => Promise<void>> = {
|
|
|
120
121
|
"install": handleInstallCommand,
|
|
121
122
|
"uninstall": handleUninstallCommand,
|
|
122
123
|
"demo": handleDemoCommand,
|
|
124
|
+
"extension": handleExtensionCommand,
|
|
123
125
|
"mcp": handleMCPCommand,
|
|
124
126
|
"issues": handleIssuesCommand,
|
|
125
127
|
"start": handleStartCommand,
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { join } from "../../src/fs/index.js";
|
|
2
|
+
import type { IntegrationName, TemplateFile } from "./types.js";
|
|
3
|
+
|
|
4
|
+
export function resolveIntegrationModuleDir(
|
|
5
|
+
moduleUrl: string,
|
|
6
|
+
platform = typeof process !== "undefined" ? process.platform : undefined,
|
|
7
|
+
): string {
|
|
8
|
+
const normalizedModuleUrl = new URL(".", moduleUrl);
|
|
9
|
+
|
|
10
|
+
if (normalizedModuleUrl.protocol !== "file:") return normalizedModuleUrl.href;
|
|
11
|
+
|
|
12
|
+
let moduleDir = normalizedModuleUrl.pathname;
|
|
13
|
+
if (platform === "win32" && moduleDir.startsWith("/")) {
|
|
14
|
+
moduleDir = moduleDir.slice(1);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return moduleDir;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function buildIntegrationDirectory(
|
|
21
|
+
moduleDir: string,
|
|
22
|
+
integrationName: string,
|
|
23
|
+
): string {
|
|
24
|
+
return join(moduleDir, "integrations", integrationName);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function buildUnknownIntegrationErrors(
|
|
28
|
+
integrations: IntegrationName[],
|
|
29
|
+
availableIntegrations: readonly IntegrationName[],
|
|
30
|
+
): string[] {
|
|
31
|
+
const availableList = availableIntegrations.join(", ");
|
|
32
|
+
return integrations
|
|
33
|
+
.filter((integration) => !availableIntegrations.includes(integration))
|
|
34
|
+
.map((integration) => `Unknown integration: ${integration}. Available: ${availableList}`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function mergeIntegrationFiles(
|
|
38
|
+
integrations: Array<{ files: TemplateFile[] }>,
|
|
39
|
+
): TemplateFile[] {
|
|
40
|
+
const fileMap = new Map<string, TemplateFile>();
|
|
41
|
+
|
|
42
|
+
for (const integration of integrations) {
|
|
43
|
+
for (const file of integration.files) {
|
|
44
|
+
fileMap.set(file.path, file);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return [...fileMap.values()].sort((a, b) => a.path.localeCompare(b.path));
|
|
49
|
+
}
|
|
@@ -10,6 +10,12 @@
|
|
|
10
10
|
|
|
11
11
|
import { createFileSystem, join } from "../../src/fs/index.js";
|
|
12
12
|
import { loadTemplateFromDirectory } from "./loader.js";
|
|
13
|
+
import {
|
|
14
|
+
buildIntegrationDirectory,
|
|
15
|
+
buildUnknownIntegrationErrors,
|
|
16
|
+
mergeIntegrationFiles,
|
|
17
|
+
resolveIntegrationModuleDir,
|
|
18
|
+
} from "./integration-loader-helpers.js";
|
|
13
19
|
import type {
|
|
14
20
|
IntegrationConfig,
|
|
15
21
|
IntegrationName,
|
|
@@ -140,23 +146,14 @@ export const USE_CASE_CONFIGS: Record<UseCaseName, UseCaseConfig> = {
|
|
|
140
146
|
};
|
|
141
147
|
|
|
142
148
|
function getModuleDir(): string {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if (moduleUrl.protocol !== "file:") return moduleUrl.href;
|
|
146
|
-
|
|
147
|
-
let moduleDir = moduleUrl.pathname;
|
|
148
|
-
if (typeof process !== "undefined" && process.platform === "win32" && moduleDir.startsWith("/")) {
|
|
149
|
-
moduleDir = moduleDir.slice(1);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
return moduleDir;
|
|
149
|
+
return resolveIntegrationModuleDir(import.meta.url);
|
|
153
150
|
}
|
|
154
151
|
|
|
155
152
|
/**
|
|
156
153
|
* Get the directory path for an integration
|
|
157
154
|
*/
|
|
158
155
|
export function getIntegrationDirectory(integrationName: string): string {
|
|
159
|
-
return
|
|
156
|
+
return buildIntegrationDirectory(getModuleDir(), integrationName);
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
/**
|
|
@@ -200,15 +197,7 @@ export function validateIntegrations(integrations: IntegrationName[]): {
|
|
|
200
197
|
valid: boolean;
|
|
201
198
|
errors: string[];
|
|
202
199
|
} {
|
|
203
|
-
const errors
|
|
204
|
-
|
|
205
|
-
for (const integration of integrations) {
|
|
206
|
-
if (AVAILABLE_INTEGRATIONS.includes(integration)) continue;
|
|
207
|
-
|
|
208
|
-
errors.push(
|
|
209
|
-
`Unknown integration: ${integration}. Available: ${AVAILABLE_INTEGRATIONS.join(", ")}`,
|
|
210
|
-
);
|
|
211
|
-
}
|
|
200
|
+
const errors = buildUnknownIntegrationErrors(integrations, AVAILABLE_INTEGRATIONS);
|
|
212
201
|
|
|
213
202
|
return { valid: errors.length === 0, errors };
|
|
214
203
|
}
|
|
@@ -225,8 +214,6 @@ export async function loadIntegrations(
|
|
|
225
214
|
}> {
|
|
226
215
|
const integrations: ResolvedIntegration[] = [];
|
|
227
216
|
const errors: string[] = [];
|
|
228
|
-
const fileMap = new Map<string, TemplateFile>();
|
|
229
|
-
|
|
230
217
|
for (const name of integrationNames) {
|
|
231
218
|
const integration = await loadIntegration(name);
|
|
232
219
|
if (!integration) {
|
|
@@ -235,16 +222,11 @@ export async function loadIntegrations(
|
|
|
235
222
|
}
|
|
236
223
|
|
|
237
224
|
integrations.push(integration);
|
|
238
|
-
|
|
239
|
-
for (const file of integration.files) {
|
|
240
|
-
// Later integrations override earlier ones
|
|
241
|
-
fileMap.set(file.path, file);
|
|
242
|
-
}
|
|
243
225
|
}
|
|
244
226
|
|
|
245
227
|
return {
|
|
246
228
|
integrations,
|
|
247
|
-
files:
|
|
229
|
+
files: mergeIntegrationFiles(integrations),
|
|
248
230
|
errors,
|
|
249
231
|
};
|
|
250
232
|
}
|