veryfront 0.1.498 → 0.1.500
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/auth/provider-store.d.ts +1 -1
- package/esm/cli/auth/provider-store.js +1 -1
- package/esm/cli/commands/doctor/ai-checks.js +1 -1
- package/esm/cli/skills/core-skills.js +1 -1
- package/esm/deno.d.ts +4 -0
- package/esm/deno.js +9 -5
- package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.d.ts +5 -5
- package/esm/extensions/ext-llm-anthropic/src/anthropic-provider.d.ts.map +1 -0
- package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.js +2 -2
- package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/index.d.ts +3 -3
- package/esm/extensions/ext-llm-anthropic/src/index.d.ts.map +1 -0
- package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/index.js +8 -8
- package/esm/extensions/{ext-google → ext-llm-google}/src/google-provider.d.ts +6 -6
- package/esm/extensions/ext-llm-google/src/google-provider.d.ts.map +1 -0
- package/esm/extensions/{ext-google → ext-llm-google}/src/google-provider.js +2 -2
- package/esm/extensions/{ext-google → ext-llm-google}/src/index.d.ts +3 -3
- package/esm/extensions/ext-llm-google/src/index.d.ts.map +1 -0
- package/esm/extensions/ext-llm-google/src/index.js +26 -0
- package/esm/extensions/{ext-openai → ext-llm-openai}/src/index.d.ts +3 -3
- package/esm/extensions/ext-llm-openai/src/index.d.ts.map +1 -0
- package/esm/extensions/ext-llm-openai/src/index.js +28 -0
- package/esm/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.d.ts +7 -7
- package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -0
- package/esm/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.js +2 -2
- package/esm/src/agent/agent-service-server.d.ts +9 -1
- package/esm/src/agent/agent-service-server.d.ts.map +1 -1
- package/esm/src/agent/agent-service-server.js +14 -1
- package/esm/src/agent/hosted-agent-service-runtime.d.ts +10 -1
- package/esm/src/agent/hosted-agent-service-runtime.d.ts.map +1 -1
- package/esm/src/agent/hosted-agent-service-runtime.js +18 -1
- package/esm/src/agent/hosted-stream-terminal-error.js +1 -1
- package/esm/src/agent/index.d.ts +3 -2
- package/esm/src/agent/index.d.ts.map +1 -1
- package/esm/src/agent/index.js +3 -2
- package/esm/src/agent/runtime-agent-definition-files.d.ts.map +1 -1
- package/esm/src/agent/runtime-agent-definition-files.js +8 -3
- package/esm/src/agent/veryfront-cloud-agent-service.d.ts +41 -0
- package/esm/src/agent/veryfront-cloud-agent-service.d.ts.map +1 -0
- package/esm/src/agent/veryfront-cloud-agent-service.js +501 -0
- package/esm/src/chat/provider-errors.js +3 -3
- package/esm/src/config/schemas/config.schema.d.ts +24 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +48 -0
- package/esm/src/discovery/index.d.ts +1 -0
- package/esm/src/discovery/index.d.ts.map +1 -1
- package/esm/src/discovery/index.js +1 -0
- package/esm/src/discovery/project-discovery-config.d.ts +30 -0
- package/esm/src/discovery/project-discovery-config.d.ts.map +1 -0
- package/esm/src/discovery/project-discovery-config.js +33 -0
- package/esm/src/embedding/resolve.js +5 -5
- package/esm/src/embedding/veryfront-cloud/provider.js +3 -3
- package/esm/src/extensions/builtin-extensions.d.ts +2 -2
- package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
- package/esm/src/extensions/builtin-extensions.js +26 -27
- package/esm/src/extensions/interfaces/index.d.ts +9 -5
- package/esm/src/extensions/interfaces/index.d.ts.map +1 -1
- package/esm/src/extensions/interfaces/index.js +7 -3
- package/esm/src/extensions/{interfaces → llm}/embedding-provider.d.ts +1 -1
- package/esm/src/extensions/llm/embedding-provider.d.ts.map +1 -0
- package/esm/src/extensions/{interfaces → llm}/embedding-provider.js +1 -1
- package/esm/src/extensions/llm/index.d.ts +16 -0
- package/esm/src/extensions/llm/index.d.ts.map +1 -0
- package/esm/src/extensions/llm/index.js +13 -0
- package/esm/src/extensions/llm/llm-provider-registry.d.ts +11 -0
- package/esm/src/extensions/llm/llm-provider-registry.d.ts.map +1 -0
- package/esm/src/extensions/{registries/ai-provider-registry.js → llm/llm-provider-registry.js} +6 -6
- package/esm/src/extensions/{interfaces/ai-provider.d.ts → llm/llm-provider.d.ts} +16 -16
- package/esm/src/extensions/llm/llm-provider.d.ts.map +1 -0
- package/esm/src/extensions/{interfaces/ai-provider.js → llm/llm-provider.js} +4 -4
- package/esm/src/extensions/loader.d.ts +1 -1
- package/esm/src/extensions/loader.js +1 -1
- package/esm/src/extensions/orchestrate.d.ts +1 -1
- package/esm/src/extensions/orchestrate.d.ts.map +1 -1
- package/esm/src/extensions/recommendations.js +4 -4
- package/esm/src/provider/local/env.d.ts +1 -1
- package/esm/src/provider/local/env.js +1 -1
- package/esm/src/provider/model-registry.d.ts.map +1 -1
- package/esm/src/provider/model-registry.js +9 -9
- package/esm/src/provider/shared/index.d.ts +1 -1
- package/esm/src/provider/shared/index.js +1 -1
- package/esm/src/provider/veryfront-cloud/openai.js +4 -4
- package/esm/src/provider/veryfront-cloud/provider.js +2 -2
- package/esm/src/server/bootstrap.d.ts.map +1 -1
- package/esm/src/server/bootstrap.js +4 -5
- package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
- package/esm/src/server/handlers/request/api/project-discovery.js +6 -22
- package/esm/src/server/index.d.ts +1 -1
- package/esm/src/server/index.d.ts.map +1 -1
- package/esm/src/server/index.js +1 -1
- package/esm/src/server/service-server.d.ts +18 -0
- package/esm/src/server/service-server.d.ts.map +1 -1
- package/esm/src/server/service-server.js +318 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/workflow/schemas/workflow.schema.d.ts +1 -1
- package/package.json +6 -1
- package/src/cli/auth/provider-store.ts +1 -1
- package/src/cli/commands/doctor/ai-checks.ts +1 -1
- package/src/cli/skills/core-skills.ts +1 -1
- package/src/deno.js +9 -5
- package/src/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.ts +5 -5
- package/src/extensions/ext-llm-anthropic/src/index.ts +34 -0
- package/src/extensions/{ext-google → ext-llm-google}/src/google-provider.ts +6 -6
- package/src/extensions/ext-llm-google/src/index.ts +31 -0
- package/src/extensions/ext-llm-openai/src/index.ts +33 -0
- package/src/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.ts +7 -7
- package/src/src/agent/agent-service-server.ts +26 -0
- package/src/src/agent/hosted-agent-service-runtime.ts +42 -0
- package/src/src/agent/hosted-stream-terminal-error.ts +1 -1
- package/src/src/agent/index.ts +16 -0
- package/src/src/agent/runtime-agent-definition-files.ts +8 -3
- package/src/src/agent/veryfront-cloud-agent-service.ts +798 -0
- package/src/src/chat/provider-errors.ts +3 -3
- package/src/src/config/schemas/config.schema.ts +48 -0
- package/src/src/discovery/index.ts +4 -0
- package/src/src/discovery/project-discovery-config.ts +89 -0
- package/src/src/embedding/resolve.ts +6 -6
- package/src/src/embedding/veryfront-cloud/provider.ts +4 -4
- package/src/src/extensions/builtin-extensions.ts +32 -33
- package/src/src/extensions/interfaces/index.ts +11 -7
- package/src/src/extensions/{interfaces → llm}/embedding-provider.ts +1 -1
- package/src/src/extensions/llm/index.ts +17 -0
- package/src/src/extensions/{registries/ai-provider-registry.ts → llm/llm-provider-registry.ts} +12 -12
- package/src/src/extensions/{interfaces/ai-provider.ts → llm/llm-provider.ts} +15 -15
- package/src/src/extensions/loader.ts +1 -1
- package/src/src/extensions/orchestrate.ts +1 -1
- package/src/src/extensions/recommendations.ts +4 -4
- package/src/src/provider/local/env.ts +1 -1
- package/src/src/provider/model-registry.ts +11 -10
- package/src/src/provider/shared/index.ts +1 -1
- package/src/src/provider/veryfront-cloud/openai.ts +4 -4
- package/src/src/provider/veryfront-cloud/provider.ts +2 -2
- package/src/src/server/bootstrap.ts +7 -5
- package/src/src/server/handlers/request/api/project-discovery.ts +6 -27
- package/src/src/server/index.ts +4 -0
- package/src/src/server/service-server.ts +428 -0
- package/src/src/utils/version-constant.ts +1 -1
- package/esm/extensions/ext-anthropic/src/anthropic-provider.d.ts.map +0 -1
- package/esm/extensions/ext-anthropic/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-google/src/google-provider.d.ts.map +0 -1
- package/esm/extensions/ext-google/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-google/src/index.js +0 -26
- package/esm/extensions/ext-openai/src/index.d.ts.map +0 -1
- package/esm/extensions/ext-openai/src/index.js +0 -28
- package/esm/extensions/ext-openai/src/openai-provider.d.ts.map +0 -1
- package/esm/src/extensions/interfaces/ai-provider.d.ts.map +0 -1
- package/esm/src/extensions/interfaces/embedding-provider.d.ts.map +0 -1
- package/esm/src/extensions/registries/ai-provider-registry.d.ts +0 -11
- package/esm/src/extensions/registries/ai-provider-registry.d.ts.map +0 -1
- package/src/extensions/ext-anthropic/src/index.ts +0 -34
- package/src/extensions/ext-google/src/index.ts +0 -31
- package/src/extensions/ext-openai/src/index.ts +0 -33
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { createError, fromError, toError } from "../errors/veryfront-error.js";
|
|
16
16
|
import { getAnthropicEnvConfig, getGoogleGenAIEnvConfig, getOpenAIEnvConfig, } from "../config/env.js";
|
|
17
|
-
import {
|
|
17
|
+
import { ensureBuiltinLLMProviders } from "../extensions/builtin-extensions.js";
|
|
18
18
|
import { tryResolve } from "../extensions/contracts.js";
|
|
19
|
-
import {
|
|
19
|
+
import { LLMProviderRegistryName } from "../extensions/interfaces/index.js";
|
|
20
20
|
import { ProjectScopedRegistryManager } from "../registry/project-scoped-registry-manager.js";
|
|
21
21
|
import { serverLogger } from "../utils/index.js";
|
|
22
22
|
import { DEFAULT_LOCAL_MODEL } from "./local/model-catalog.js";
|
|
@@ -66,7 +66,7 @@ function autoInitializeFromEnv() {
|
|
|
66
66
|
message: "OPENAI_API_KEY not set. Set the environment variable or register a custom provider with registerModelProvider().",
|
|
67
67
|
}));
|
|
68
68
|
}
|
|
69
|
-
const registry =
|
|
69
|
+
const registry = ensureBuiltinLLMProviders();
|
|
70
70
|
const provider = registry.get("openai");
|
|
71
71
|
if (provider) {
|
|
72
72
|
return provider.createModel(id, {
|
|
@@ -76,7 +76,7 @@ function autoInitializeFromEnv() {
|
|
|
76
76
|
}
|
|
77
77
|
throw toError(createError({
|
|
78
78
|
type: "config",
|
|
79
|
-
message: "OpenAI provider not installed. Add @veryfront/ext-openai to use openai/* models.",
|
|
79
|
+
message: "OpenAI provider not installed. Add @veryfront/ext-llm-openai to use openai/* models.",
|
|
80
80
|
}));
|
|
81
81
|
});
|
|
82
82
|
}
|
|
@@ -89,7 +89,7 @@ function autoInitializeFromEnv() {
|
|
|
89
89
|
message: "ANTHROPIC_API_KEY not set. Set the environment variable or register a custom provider with registerModelProvider().",
|
|
90
90
|
}));
|
|
91
91
|
}
|
|
92
|
-
const registry =
|
|
92
|
+
const registry = ensureBuiltinLLMProviders();
|
|
93
93
|
const provider = registry.get("anthropic");
|
|
94
94
|
if (provider) {
|
|
95
95
|
return provider.createModel(id, {
|
|
@@ -99,7 +99,7 @@ function autoInitializeFromEnv() {
|
|
|
99
99
|
}
|
|
100
100
|
throw toError(createError({
|
|
101
101
|
type: "config",
|
|
102
|
-
message: "Anthropic provider not installed. Add @veryfront/ext-anthropic to use anthropic/* models.",
|
|
102
|
+
message: "Anthropic provider not installed. Add @veryfront/ext-llm-anthropic to use anthropic/* models.",
|
|
103
103
|
}));
|
|
104
104
|
});
|
|
105
105
|
}
|
|
@@ -112,7 +112,7 @@ function autoInitializeFromEnv() {
|
|
|
112
112
|
message: "GOOGLE_API_KEY (or GOOGLE_GENERATIVE_AI_API_KEY) not set. Set the environment variable or register a custom provider with registerModelProvider().",
|
|
113
113
|
}));
|
|
114
114
|
}
|
|
115
|
-
const registry =
|
|
115
|
+
const registry = ensureBuiltinLLMProviders();
|
|
116
116
|
const provider = registry.get("google");
|
|
117
117
|
if (provider) {
|
|
118
118
|
return provider.createModel(id, {
|
|
@@ -121,7 +121,7 @@ function autoInitializeFromEnv() {
|
|
|
121
121
|
}
|
|
122
122
|
throw toError(createError({
|
|
123
123
|
type: "config",
|
|
124
|
-
message: "Google provider not installed. Add @veryfront/ext-google to use google/* models.",
|
|
124
|
+
message: "Google provider not installed. Add @veryfront/ext-llm-google to use google/* models.",
|
|
125
125
|
}));
|
|
126
126
|
});
|
|
127
127
|
}
|
|
@@ -187,7 +187,7 @@ function isMissingProviderConfiguration(errorData) {
|
|
|
187
187
|
*/
|
|
188
188
|
export function findAvailableCloudModel() {
|
|
189
189
|
autoInitializeFromEnv();
|
|
190
|
-
const registry = tryResolve(
|
|
190
|
+
const registry = tryResolve(LLMProviderRegistryName);
|
|
191
191
|
for (const { provider, model, hasKey } of CLOUD_UPGRADE_CANDIDATES) {
|
|
192
192
|
if (!hasKey())
|
|
193
193
|
continue;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This barrel is the stable public surface: implementations currently live
|
|
5
5
|
* in `runtime-loader.ts` and `runtime-loader/` subdirectory. Future PRs
|
|
6
|
-
* (post ext-anthropic / ext-google extraction) may move the implementations
|
|
6
|
+
* (post ext-llm-anthropic / ext-llm-google extraction) may move the implementations
|
|
7
7
|
* into this directory; extensions keep importing from here unchanged.
|
|
8
8
|
*
|
|
9
9
|
* @module provider/shared
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This barrel is the stable public surface: implementations currently live
|
|
5
5
|
* in `runtime-loader.ts` and `runtime-loader/` subdirectory. Future PRs
|
|
6
|
-
* (post ext-anthropic / ext-google extraction) may move the implementations
|
|
6
|
+
* (post ext-llm-anthropic / ext-llm-google extraction) may move the implementations
|
|
7
7
|
* into this directory; extensions keep importing from here unchanged.
|
|
8
8
|
*
|
|
9
9
|
* @module provider/shared
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OpenAIProvider } from "../../../extensions/ext-openai/src/index.js";
|
|
2
|
-
const
|
|
1
|
+
import { OpenAIProvider } from "../../../extensions/ext-llm-openai/src/index.js";
|
|
2
|
+
const openLLMProvider = new OpenAIProvider();
|
|
3
3
|
export function createVeryfrontCloudOpenAIModel(modelId, config) {
|
|
4
|
-
return
|
|
4
|
+
return openLLMProvider.createModel(modelId, {
|
|
5
5
|
credential: config.apiToken,
|
|
6
6
|
baseURL: config.baseURL,
|
|
7
7
|
name: "veryfront-cloud",
|
|
@@ -9,7 +9,7 @@ export function createVeryfrontCloudOpenAIModel(modelId, config) {
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
export function createVeryfrontCloudOpenAIEmbeddingModel(modelId, config) {
|
|
12
|
-
return
|
|
12
|
+
return openLLMProvider.createEmbedding(modelId, {
|
|
13
13
|
credential: config.apiToken,
|
|
14
14
|
baseURL: config.baseURL,
|
|
15
15
|
name: "veryfront-cloud",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createError, toError } from "../../errors/veryfront-error.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ensureBuiltinLLMProviders } from "../../extensions/builtin-extensions.js";
|
|
3
3
|
import { createVeryfrontCloudFetch, getVeryfrontCloudGatewayBaseUrl, parseVeryfrontCloudModelId, requireVeryfrontCloudBootstrap, } from "./shared.js";
|
|
4
4
|
import { createVeryfrontCloudOpenAIModel } from "./openai.js";
|
|
5
5
|
export function createVeryfrontCloudModel(modelId) {
|
|
@@ -7,7 +7,7 @@ export function createVeryfrontCloudModel(modelId) {
|
|
|
7
7
|
const { apiBaseUrl, apiToken, projectSlug } = requireVeryfrontCloudBootstrap();
|
|
8
8
|
const baseURL = getVeryfrontCloudGatewayBaseUrl(apiBaseUrl, provider);
|
|
9
9
|
const fetch = createVeryfrontCloudFetch(apiToken, projectSlug);
|
|
10
|
-
const registry =
|
|
10
|
+
const registry = ensureBuiltinLLMProviders();
|
|
11
11
|
switch (provider) {
|
|
12
12
|
case "anthropic": {
|
|
13
13
|
const anthropic = registry.get("anthropic");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/src/server/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/src/server/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,KAAK,eAAe,EAAqC,MAAM,wBAAwB,CAAC;AA8CjG,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,OAAO,EAAE,cAAc,CAAC;IAExB,2BAA2B;IAC3B,MAAM,EAAE,eAAe,CAAC;IAExB,wCAAwC;IACxC,cAAc,EAAE,OAAO,CAAC;IAExB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;OAIG;IACH,eAAe,EAAE,eAAe,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtC;AAgHD;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,EAC3C,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAClC,OAAO,CAAC,eAAe,CAAC,CAO1B;AAkDD,wBAAsB,SAAS,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAmK1B;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAa1B;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,eAAe,CAAC,CAyB1B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { clearConfigCache, getConfig } from "../config/index.js";
|
|
2
2
|
import { orchestrateExtensions, tryResolve } from "../extensions/index.js";
|
|
3
|
-
import {
|
|
4
|
-
import { createAIProviderRegistry } from "../extensions/registries/ai-provider-registry.js";
|
|
3
|
+
import { createLLMProviderRegistry, LLMProviderRegistryName, } from "../extensions/llm/index.js";
|
|
5
4
|
import { createBuiltinExtensions } from "../extensions/builtin-extensions.js";
|
|
6
5
|
import { MISSING_EXTENSION_ERROR } from "../extensions/errors.js";
|
|
7
6
|
import { getRecommendation } from "../extensions/recommendations.js";
|
|
@@ -193,7 +192,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
193
192
|
projectDir,
|
|
194
193
|
config,
|
|
195
194
|
logger: bootstrapLog,
|
|
196
|
-
primeContracts: { [
|
|
195
|
+
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
197
196
|
builtinExtensions: createBuiltinExtensions(),
|
|
198
197
|
});
|
|
199
198
|
wireTracingShim();
|
|
@@ -227,7 +226,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
227
226
|
projectDir,
|
|
228
227
|
config,
|
|
229
228
|
logger: bootstrapLog,
|
|
230
|
-
primeContracts: { [
|
|
229
|
+
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
231
230
|
builtinExtensions: createBuiltinExtensions(),
|
|
232
231
|
});
|
|
233
232
|
wireTracingShim();
|
|
@@ -290,7 +289,7 @@ export async function bootstrap(projectDir, adapter) {
|
|
|
290
289
|
projectDir,
|
|
291
290
|
config,
|
|
292
291
|
logger: bootstrapLog,
|
|
293
|
-
primeContracts: { [
|
|
292
|
+
primeContracts: { [LLMProviderRegistryName]: createLLMProviderRegistry() },
|
|
294
293
|
builtinExtensions: createBuiltinExtensions(),
|
|
295
294
|
}), fsDispose);
|
|
296
295
|
wireTracingShim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/api/project-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"project-discovery.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/api/project-discovery.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AA8CrD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuE/E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { serverLogger } from "../../../../utils/index.js";
|
|
2
|
-
import { clearTrackedAgents } from "../../../../discovery/index.js";
|
|
2
|
+
import { clearTrackedAgents, createProjectDiscoveryConfig } from "../../../../discovery/index.js";
|
|
3
3
|
import { tryGetCacheKeyContext } from "../../../../cache/cache-key-builder.js";
|
|
4
4
|
const logger = serverLogger.component("api-wrapper");
|
|
5
5
|
/**
|
|
@@ -12,26 +12,6 @@ const logger = serverLogger.component("api-wrapper");
|
|
|
12
12
|
* allows retry on failure (the key is deleted if discovery rejects).
|
|
13
13
|
*/
|
|
14
14
|
const discoveredProjects = new Map();
|
|
15
|
-
function isDiscoveryEnabled(discovery) {
|
|
16
|
-
return discovery?.enabled ?? true;
|
|
17
|
-
}
|
|
18
|
-
function buildDiscoveryConfig(ctx) {
|
|
19
|
-
const discoveryConfig = ctx.config?.ai;
|
|
20
|
-
const toolDiscovery = discoveryConfig?.tools?.discovery;
|
|
21
|
-
const agentDiscovery = discoveryConfig?.agents?.discovery;
|
|
22
|
-
const skillDiscovery = discoveryConfig?.skills?.discovery;
|
|
23
|
-
return {
|
|
24
|
-
baseDir: ctx.projectDir,
|
|
25
|
-
toolDirs: isDiscoveryEnabled(toolDiscovery) ? (toolDiscovery?.paths ?? ["tools"]) : [],
|
|
26
|
-
agentDirs: isDiscoveryEnabled(agentDiscovery) ? (agentDiscovery?.paths ?? ["agents"]) : [],
|
|
27
|
-
skillDirs: isDiscoveryEnabled(skillDiscovery) ? (skillDiscovery?.paths ?? ["skills"]) : [],
|
|
28
|
-
resourceDirs: ["resources"],
|
|
29
|
-
promptDirs: ["prompts"],
|
|
30
|
-
workflowDirs: ["workflows"],
|
|
31
|
-
fsAdapter: ctx.adapter.fs,
|
|
32
|
-
verbose: false,
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
15
|
/** Build a discovery cache key that incorporates the release/version. */
|
|
36
16
|
function discoveryKey(ctx) {
|
|
37
17
|
const cacheContext = tryGetCacheKeyContext();
|
|
@@ -79,7 +59,11 @@ export async function ensureProjectDiscovery(ctx) {
|
|
|
79
59
|
clearTranspileCache();
|
|
80
60
|
agentRegistry.clear();
|
|
81
61
|
toolRegistry.clear();
|
|
82
|
-
const discoveryOptions =
|
|
62
|
+
const discoveryOptions = createProjectDiscoveryConfig({
|
|
63
|
+
projectDir: ctx.projectDir,
|
|
64
|
+
config: ctx.config,
|
|
65
|
+
fsAdapter: ctx.adapter.fs,
|
|
66
|
+
});
|
|
83
67
|
const result = await discoverAll(discoveryOptions);
|
|
84
68
|
const shouldWarnOnEmptyAiDiscovery = discoveryOptions.toolDirs.length > 0 ||
|
|
85
69
|
discoveryOptions.agentDirs.length > 0;
|
|
@@ -28,7 +28,7 @@ import "../../_dnt.polyfills.js";
|
|
|
28
28
|
import { DevServer, type DevServerOptions, type FileWatcherMetrics, type RouteDirectory, startDevServer } from "./dev-server.js";
|
|
29
29
|
import { type DiscoveryOptions, type ServerHandle, startProductionServer, type StartProductionServerOptions } from "./production-server.js";
|
|
30
30
|
export { DevServer, startDevServer, startProductionServer };
|
|
31
|
-
export { createVeryfrontServer, type CreateVeryfrontServerOptions, type NodeVeryfrontServiceServer, startNodeVeryfrontServer, type StartNodeVeryfrontServerOptions, type VeryfrontServiceServerFetch, type VeryfrontServiceServerLogger, type VeryfrontServiceServerModule, type VeryfrontServiceServerModuleResponse, type VeryfrontServiceServerRuntime, } from "./service-server.js";
|
|
31
|
+
export { createVeryfrontServer, type CreateVeryfrontServerOptions, type NodeVeryfrontServiceServer, startNodeVeryfrontServer, type StartNodeVeryfrontServerOptions, startVeryfrontServer, type StartVeryfrontServerOptions, type VeryfrontServiceServer, type VeryfrontServiceServerFetch, type VeryfrontServiceServerLogger, type VeryfrontServiceServerModule, type VeryfrontServiceServerModuleResponse, type VeryfrontServiceServerRuntime, type VeryfrontServiceServerRuntimeKind, } from "./service-server.js";
|
|
32
32
|
export type { DevServerOptions, DiscoveryOptions, FileWatcherMetrics, RouteDirectory, ServerHandle, StartProductionServerOptions, };
|
|
33
33
|
import { ReloadNotifier } from "./reload-notifier.js";
|
|
34
34
|
export { ReloadNotifier };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,yBAAyB,CAAC;AAKjC,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,qBAAqB,EACrB,KAAK,4BAA4B,EAClC,MAAM,wBAAwB,CAAC;AAiBhC,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,qBAAqB,EAAE,CAAC;AAC5D,OAAO,EACL,qBAAqB,EACrB,KAAK,4BAA4B,EACjC,KAAK,0BAA0B,EAC/B,wBAAwB,EACxB,KAAK,+BAA+B,EACpC,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,KAAK,oCAAoC,EACzC,KAAK,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/server/index.ts"],"names":[],"mappings":"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"}
|
package/esm/src/server/index.js
CHANGED
|
@@ -38,7 +38,7 @@ import { HMR_CLOSE_MESSAGE_TOO_LARGE, HMR_CLOSE_RATE_LIMIT, HMR_MAX_MESSAGE_SIZE
|
|
|
38
38
|
/** Default server port when no port is specified */
|
|
39
39
|
const DEFAULT_SERVER_PORT = 3_000;
|
|
40
40
|
export { DevServer, startDevServer, startProductionServer };
|
|
41
|
-
export { createVeryfrontServer, startNodeVeryfrontServer, } from "./service-server.js";
|
|
41
|
+
export { createVeryfrontServer, startNodeVeryfrontServer, startVeryfrontServer, } from "./service-server.js";
|
|
42
42
|
import { ReloadNotifier } from "./reload-notifier.js";
|
|
43
43
|
export { ReloadNotifier };
|
|
44
44
|
/**
|
|
@@ -31,13 +31,31 @@ export type StartNodeVeryfrontServerOptions = {
|
|
|
31
31
|
signals?: readonly NodeJS.Signals[];
|
|
32
32
|
hardShutdownTimeoutMs?: number;
|
|
33
33
|
};
|
|
34
|
+
export type StartVeryfrontServerOptions = {
|
|
35
|
+
runtime: VeryfrontServiceServerRuntime;
|
|
36
|
+
port: number;
|
|
37
|
+
bindAddress?: string;
|
|
38
|
+
logger?: VeryfrontServiceServerLogger;
|
|
39
|
+
signals?: readonly NodeJS.Signals[];
|
|
40
|
+
hardShutdownTimeoutMs?: number;
|
|
41
|
+
};
|
|
42
|
+
export type VeryfrontServiceServerRuntimeKind = "node" | "deno" | "bun";
|
|
43
|
+
export type VeryfrontServiceServer = {
|
|
44
|
+
ready: Promise<void>;
|
|
45
|
+
stop: () => Promise<void>;
|
|
46
|
+
port: number;
|
|
47
|
+
url: string;
|
|
48
|
+
runtime: VeryfrontServiceServerRuntimeKind;
|
|
49
|
+
};
|
|
34
50
|
export type NodeVeryfrontServiceServer = {
|
|
35
51
|
server: import("node:http").Server;
|
|
36
52
|
ready: Promise<void>;
|
|
37
53
|
stop: () => Promise<void>;
|
|
38
54
|
port: number;
|
|
39
55
|
url: string;
|
|
56
|
+
runtime: "node";
|
|
40
57
|
};
|
|
41
58
|
export declare function createVeryfrontServer(options: CreateVeryfrontServerOptions): VeryfrontServiceServerRuntime;
|
|
59
|
+
export declare function startVeryfrontServer(options: StartVeryfrontServerOptions): Promise<VeryfrontServiceServer | NodeVeryfrontServiceServer>;
|
|
42
60
|
export declare function startNodeVeryfrontServer(options: StartNodeVeryfrontServerOptions): Promise<NodeVeryfrontServiceServer>;
|
|
43
61
|
//# sourceMappingURL=service-server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-server.d.ts","sourceRoot":"","sources":["../../../src/src/server/service-server.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7F,MAAM,MAAM,oCAAoC,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;AAE/E,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,CACN,OAAO,EAAE,OAAO,KACb,oCAAoC,GAAG,OAAO,CAAC,oCAAoC,CAAC,CAAC;IAC1F,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACtE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACrE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7E,MAAM,CAAC,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,2BAA2B,CAAC;IACnC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,6BAA6B,CAAC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,4BAA4B,CAAC;IACtC,OAAO,CAAC,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE,CAAC;IACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,MAAM,EAAE,OAAO,WAAW,EAAE,MAAM,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"service-server.d.ts","sourceRoot":"","sources":["../../../src/src/server/service-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,6 +54,323 @@ function closeNodeServer(server) {
|
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
+
function isObject(value) {
|
|
58
|
+
return typeof value === "object" && value !== null;
|
|
59
|
+
}
|
|
60
|
+
function isDenoHttpServer(value) {
|
|
61
|
+
if (!isObject(value)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
const finished = value.finished;
|
|
65
|
+
const shutdown = value.shutdown;
|
|
66
|
+
const addr = value.addr;
|
|
67
|
+
const port = isObject(addr) ? addr.port : undefined;
|
|
68
|
+
return (addr === undefined || isObject(addr)) &&
|
|
69
|
+
(port === undefined || typeof port === "number") &&
|
|
70
|
+
(finished === undefined || finished instanceof Promise) &&
|
|
71
|
+
(shutdown === undefined || typeof shutdown === "function");
|
|
72
|
+
}
|
|
73
|
+
function isBunHttpServer(value) {
|
|
74
|
+
if (!isObject(value)) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
const port = value.port;
|
|
78
|
+
const url = value.url;
|
|
79
|
+
const stop = value.stop;
|
|
80
|
+
return (port === undefined || typeof port === "number") &&
|
|
81
|
+
(url === undefined || url instanceof URL) &&
|
|
82
|
+
(stop === undefined || typeof stop === "function");
|
|
83
|
+
}
|
|
84
|
+
function getDenoServeRuntime() {
|
|
85
|
+
const denoGlobal = Reflect.get(dntShim.dntGlobalThis, "Deno");
|
|
86
|
+
if (!isObject(denoGlobal)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
const serve = denoGlobal.serve;
|
|
90
|
+
const addSignalListener = denoGlobal.addSignalListener;
|
|
91
|
+
const removeSignalListener = denoGlobal.removeSignalListener;
|
|
92
|
+
const exit = denoGlobal.exit;
|
|
93
|
+
if (typeof serve !== "function") {
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
const runtime = {
|
|
97
|
+
serve: (options, handler) => {
|
|
98
|
+
const server = Reflect.apply(serve, denoGlobal, [options, handler]);
|
|
99
|
+
if (!isDenoHttpServer(server)) {
|
|
100
|
+
return {};
|
|
101
|
+
}
|
|
102
|
+
return server;
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
if (typeof addSignalListener === "function") {
|
|
106
|
+
runtime.addSignalListener = (signal, handler) => {
|
|
107
|
+
Reflect.apply(addSignalListener, denoGlobal, [signal, handler]);
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
if (typeof removeSignalListener === "function") {
|
|
111
|
+
runtime.removeSignalListener = (signal, handler) => {
|
|
112
|
+
Reflect.apply(removeSignalListener, denoGlobal, [signal, handler]);
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
if (typeof exit === "function") {
|
|
116
|
+
runtime.exit = (code) => Reflect.apply(exit, denoGlobal, [code]);
|
|
117
|
+
}
|
|
118
|
+
return runtime;
|
|
119
|
+
}
|
|
120
|
+
function getBunServeRuntime() {
|
|
121
|
+
const bunGlobal = Reflect.get(dntShim.dntGlobalThis, "Bun");
|
|
122
|
+
if (!isObject(bunGlobal)) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const serve = bunGlobal.serve;
|
|
126
|
+
if (typeof serve !== "function") {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
129
|
+
return {
|
|
130
|
+
serve: (options) => {
|
|
131
|
+
const server = Reflect.apply(serve, bunGlobal, [options]);
|
|
132
|
+
if (!isBunHttpServer(server)) {
|
|
133
|
+
return {};
|
|
134
|
+
}
|
|
135
|
+
return server;
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function getProcessSignalRuntime() {
|
|
140
|
+
const processGlobal = Reflect.get(dntShim.dntGlobalThis, "process");
|
|
141
|
+
if (!isObject(processGlobal)) {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const on = processGlobal.on;
|
|
145
|
+
const off = processGlobal.off;
|
|
146
|
+
const removeListener = processGlobal.removeListener;
|
|
147
|
+
const exit = processGlobal.exit;
|
|
148
|
+
if (typeof on !== "function") {
|
|
149
|
+
return null;
|
|
150
|
+
}
|
|
151
|
+
const runtime = {
|
|
152
|
+
add: (signal, handler) => {
|
|
153
|
+
Reflect.apply(on, processGlobal, [signal, handler]);
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
if (typeof off === "function") {
|
|
157
|
+
runtime.remove = (signal, handler) => {
|
|
158
|
+
Reflect.apply(off, processGlobal, [signal, handler]);
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
else if (typeof removeListener === "function") {
|
|
162
|
+
runtime.remove = (signal, handler) => {
|
|
163
|
+
Reflect.apply(removeListener, processGlobal, [signal, handler]);
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (typeof exit === "function") {
|
|
167
|
+
runtime.exit = (code) => Reflect.apply(exit, processGlobal, [code]);
|
|
168
|
+
}
|
|
169
|
+
return runtime;
|
|
170
|
+
}
|
|
171
|
+
function createDenoSignalRuntime(deno) {
|
|
172
|
+
if (!deno.addSignalListener) {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
add: deno.addSignalListener,
|
|
177
|
+
remove: deno.removeSignalListener,
|
|
178
|
+
exit: deno.exit,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
function resolveRuntimeKind() {
|
|
182
|
+
if (getBunServeRuntime()) {
|
|
183
|
+
return "bun";
|
|
184
|
+
}
|
|
185
|
+
if (getDenoServeRuntime()) {
|
|
186
|
+
return "deno";
|
|
187
|
+
}
|
|
188
|
+
return "node";
|
|
189
|
+
}
|
|
190
|
+
async function stopRuntime(runtime, stopServer) {
|
|
191
|
+
runtime.setShuttingDown();
|
|
192
|
+
await stopServer();
|
|
193
|
+
await runtime.stop();
|
|
194
|
+
}
|
|
195
|
+
function installSignalHandlers(options) {
|
|
196
|
+
if (!options.signalRuntime) {
|
|
197
|
+
return () => undefined;
|
|
198
|
+
}
|
|
199
|
+
const hardShutdownTimeoutMs = options.hardShutdownTimeoutMs ?? 20_000;
|
|
200
|
+
const installedHandlers = [];
|
|
201
|
+
let signalShutdownStarted = false;
|
|
202
|
+
for (const signal of options.signals ?? ["SIGTERM"]) {
|
|
203
|
+
const handler = () => {
|
|
204
|
+
if (signalShutdownStarted) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
signalShutdownStarted = true;
|
|
208
|
+
options.logger.info?.("Veryfront service server received shutdown signal", {
|
|
209
|
+
signal,
|
|
210
|
+
runtime: options.runtime,
|
|
211
|
+
});
|
|
212
|
+
const hardTimeout = dntShim.setTimeout(() => {
|
|
213
|
+
options.logger.error?.("Veryfront service server graceful shutdown timed out", {
|
|
214
|
+
signal,
|
|
215
|
+
runtime: options.runtime,
|
|
216
|
+
});
|
|
217
|
+
options.signalRuntime?.exit?.(1);
|
|
218
|
+
}, hardShutdownTimeoutMs);
|
|
219
|
+
void options.stop()
|
|
220
|
+
.then(() => {
|
|
221
|
+
clearTimeout(hardTimeout);
|
|
222
|
+
options.signalRuntime?.exit?.(0);
|
|
223
|
+
})
|
|
224
|
+
.catch((error) => {
|
|
225
|
+
clearTimeout(hardTimeout);
|
|
226
|
+
options.logger.error?.("Veryfront service server shutdown failed", {
|
|
227
|
+
signal,
|
|
228
|
+
runtime: options.runtime,
|
|
229
|
+
error: error instanceof Error ? error.message : String(error),
|
|
230
|
+
});
|
|
231
|
+
options.signalRuntime?.exit?.(1);
|
|
232
|
+
});
|
|
233
|
+
};
|
|
234
|
+
try {
|
|
235
|
+
options.signalRuntime.add(signal, handler);
|
|
236
|
+
installedHandlers.push({ signal, handler });
|
|
237
|
+
}
|
|
238
|
+
catch (error) {
|
|
239
|
+
options.logger.warn?.("Veryfront service server could not install shutdown signal handler", {
|
|
240
|
+
signal,
|
|
241
|
+
runtime: options.runtime,
|
|
242
|
+
error: error instanceof Error ? error.message : String(error),
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return () => {
|
|
247
|
+
for (const { signal, handler } of installedHandlers) {
|
|
248
|
+
try {
|
|
249
|
+
options.signalRuntime?.remove?.(signal, handler);
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
options.logger.warn?.("Veryfront service server could not remove shutdown signal handler", {
|
|
253
|
+
signal,
|
|
254
|
+
runtime: options.runtime,
|
|
255
|
+
error: error instanceof Error ? error.message : String(error),
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
async function startDenoVeryfrontServer(options, deno) {
|
|
262
|
+
const logger = options.logger ?? serverLogger.component("service-server");
|
|
263
|
+
const bindAddress = options.bindAddress ?? "0.0.0.0";
|
|
264
|
+
const abortController = new AbortController();
|
|
265
|
+
const server = deno.serve({
|
|
266
|
+
port: options.port,
|
|
267
|
+
hostname: bindAddress,
|
|
268
|
+
signal: abortController.signal,
|
|
269
|
+
onListen: () => undefined,
|
|
270
|
+
}, options.runtime.fetch);
|
|
271
|
+
let shutdownStarted = false;
|
|
272
|
+
let removeSignalHandlers = () => undefined;
|
|
273
|
+
const stop = async () => {
|
|
274
|
+
if (shutdownStarted) {
|
|
275
|
+
return;
|
|
276
|
+
}
|
|
277
|
+
shutdownStarted = true;
|
|
278
|
+
try {
|
|
279
|
+
await stopRuntime(options.runtime, async () => {
|
|
280
|
+
if (server.shutdown) {
|
|
281
|
+
await server.shutdown();
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
abortController.abort();
|
|
285
|
+
await server.finished?.catch(() => undefined);
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
finally {
|
|
289
|
+
removeSignalHandlers();
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
removeSignalHandlers = installSignalHandlers({
|
|
293
|
+
signalRuntime: createDenoSignalRuntime(deno),
|
|
294
|
+
signals: options.signals,
|
|
295
|
+
logger,
|
|
296
|
+
stop,
|
|
297
|
+
hardShutdownTimeoutMs: options.hardShutdownTimeoutMs,
|
|
298
|
+
runtime: "deno",
|
|
299
|
+
});
|
|
300
|
+
logger.info?.("Veryfront service server listening", {
|
|
301
|
+
port: server.addr?.port ?? options.port,
|
|
302
|
+
bindAddress,
|
|
303
|
+
runtime: "deno",
|
|
304
|
+
});
|
|
305
|
+
return {
|
|
306
|
+
ready: Promise.resolve(),
|
|
307
|
+
stop,
|
|
308
|
+
port: server.addr?.port ?? options.port,
|
|
309
|
+
url: `http://${bindAddress}:${server.addr?.port ?? options.port}`,
|
|
310
|
+
runtime: "deno",
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
async function startBunVeryfrontServer(options, bun) {
|
|
314
|
+
const logger = options.logger ?? serverLogger.component("service-server");
|
|
315
|
+
const bindAddress = options.bindAddress ?? "0.0.0.0";
|
|
316
|
+
const server = bun.serve({
|
|
317
|
+
port: options.port,
|
|
318
|
+
hostname: bindAddress,
|
|
319
|
+
fetch: options.runtime.fetch,
|
|
320
|
+
});
|
|
321
|
+
let shutdownStarted = false;
|
|
322
|
+
let removeSignalHandlers = () => undefined;
|
|
323
|
+
const stop = async () => {
|
|
324
|
+
if (shutdownStarted) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
shutdownStarted = true;
|
|
328
|
+
try {
|
|
329
|
+
await stopRuntime(options.runtime, async () => {
|
|
330
|
+
await server.stop?.();
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
finally {
|
|
334
|
+
removeSignalHandlers();
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
removeSignalHandlers = installSignalHandlers({
|
|
338
|
+
signalRuntime: getProcessSignalRuntime(),
|
|
339
|
+
signals: options.signals,
|
|
340
|
+
logger,
|
|
341
|
+
stop,
|
|
342
|
+
hardShutdownTimeoutMs: options.hardShutdownTimeoutMs,
|
|
343
|
+
runtime: "bun",
|
|
344
|
+
});
|
|
345
|
+
logger.info?.("Veryfront service server listening", {
|
|
346
|
+
port: server.port ?? options.port,
|
|
347
|
+
bindAddress,
|
|
348
|
+
runtime: "bun",
|
|
349
|
+
});
|
|
350
|
+
return {
|
|
351
|
+
ready: Promise.resolve(),
|
|
352
|
+
stop,
|
|
353
|
+
port: server.port ?? options.port,
|
|
354
|
+
url: server.url?.toString() ?? `http://${bindAddress}:${options.port}`,
|
|
355
|
+
runtime: "bun",
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
export async function startVeryfrontServer(options) {
|
|
359
|
+
const runtimeKind = resolveRuntimeKind();
|
|
360
|
+
if (runtimeKind === "bun") {
|
|
361
|
+
const bun = getBunServeRuntime();
|
|
362
|
+
if (bun) {
|
|
363
|
+
return await startBunVeryfrontServer(options, bun);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
if (runtimeKind === "deno") {
|
|
367
|
+
const deno = getDenoServeRuntime();
|
|
368
|
+
if (deno) {
|
|
369
|
+
return await startDenoVeryfrontServer(options, deno);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
return await startNodeVeryfrontServer(options);
|
|
373
|
+
}
|
|
57
374
|
export async function startNodeVeryfrontServer(options) {
|
|
58
375
|
const { createServer } = await import("node:http");
|
|
59
376
|
const logger = options.logger ?? serverLogger.component("service-server");
|
|
@@ -112,5 +429,6 @@ export async function startNodeVeryfrontServer(options) {
|
|
|
112
429
|
stop,
|
|
113
430
|
port: options.port,
|
|
114
431
|
url: `http://${bindAddress}:${options.port}`,
|
|
432
|
+
runtime: "node",
|
|
115
433
|
};
|
|
116
434
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.1.
|
|
1
|
+
export declare const VERSION = "0.1.500";
|
|
2
2
|
//# sourceMappingURL=version-constant.d.ts.map
|
|
@@ -32,10 +32,10 @@ export declare const WorkflowNodeTypeSchema: z.ZodEnum<{
|
|
|
32
32
|
map: "map";
|
|
33
33
|
branch: "branch";
|
|
34
34
|
step: "step";
|
|
35
|
-
loop: "loop";
|
|
36
35
|
parallel: "parallel";
|
|
37
36
|
wait: "wait";
|
|
38
37
|
subWorkflow: "subWorkflow";
|
|
38
|
+
loop: "loop";
|
|
39
39
|
}>;
|
|
40
40
|
/**
|
|
41
41
|
* Backoff strategy schema
|