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.
Files changed (152) hide show
  1. package/esm/cli/auth/provider-store.d.ts +1 -1
  2. package/esm/cli/auth/provider-store.js +1 -1
  3. package/esm/cli/commands/doctor/ai-checks.js +1 -1
  4. package/esm/cli/skills/core-skills.js +1 -1
  5. package/esm/deno.d.ts +4 -0
  6. package/esm/deno.js +9 -5
  7. package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.d.ts +5 -5
  8. package/esm/extensions/ext-llm-anthropic/src/anthropic-provider.d.ts.map +1 -0
  9. package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.js +2 -2
  10. package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/index.d.ts +3 -3
  11. package/esm/extensions/ext-llm-anthropic/src/index.d.ts.map +1 -0
  12. package/esm/extensions/{ext-anthropic → ext-llm-anthropic}/src/index.js +8 -8
  13. package/esm/extensions/{ext-google → ext-llm-google}/src/google-provider.d.ts +6 -6
  14. package/esm/extensions/ext-llm-google/src/google-provider.d.ts.map +1 -0
  15. package/esm/extensions/{ext-google → ext-llm-google}/src/google-provider.js +2 -2
  16. package/esm/extensions/{ext-google → ext-llm-google}/src/index.d.ts +3 -3
  17. package/esm/extensions/ext-llm-google/src/index.d.ts.map +1 -0
  18. package/esm/extensions/ext-llm-google/src/index.js +26 -0
  19. package/esm/extensions/{ext-openai → ext-llm-openai}/src/index.d.ts +3 -3
  20. package/esm/extensions/ext-llm-openai/src/index.d.ts.map +1 -0
  21. package/esm/extensions/ext-llm-openai/src/index.js +28 -0
  22. package/esm/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.d.ts +7 -7
  23. package/esm/extensions/ext-llm-openai/src/openai-provider.d.ts.map +1 -0
  24. package/esm/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.js +2 -2
  25. package/esm/src/agent/agent-service-server.d.ts +9 -1
  26. package/esm/src/agent/agent-service-server.d.ts.map +1 -1
  27. package/esm/src/agent/agent-service-server.js +14 -1
  28. package/esm/src/agent/hosted-agent-service-runtime.d.ts +10 -1
  29. package/esm/src/agent/hosted-agent-service-runtime.d.ts.map +1 -1
  30. package/esm/src/agent/hosted-agent-service-runtime.js +18 -1
  31. package/esm/src/agent/hosted-stream-terminal-error.js +1 -1
  32. package/esm/src/agent/index.d.ts +3 -2
  33. package/esm/src/agent/index.d.ts.map +1 -1
  34. package/esm/src/agent/index.js +3 -2
  35. package/esm/src/agent/runtime-agent-definition-files.d.ts.map +1 -1
  36. package/esm/src/agent/runtime-agent-definition-files.js +8 -3
  37. package/esm/src/agent/veryfront-cloud-agent-service.d.ts +41 -0
  38. package/esm/src/agent/veryfront-cloud-agent-service.d.ts.map +1 -0
  39. package/esm/src/agent/veryfront-cloud-agent-service.js +501 -0
  40. package/esm/src/chat/provider-errors.js +3 -3
  41. package/esm/src/config/schemas/config.schema.d.ts +24 -0
  42. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  43. package/esm/src/config/schemas/config.schema.js +48 -0
  44. package/esm/src/discovery/index.d.ts +1 -0
  45. package/esm/src/discovery/index.d.ts.map +1 -1
  46. package/esm/src/discovery/index.js +1 -0
  47. package/esm/src/discovery/project-discovery-config.d.ts +30 -0
  48. package/esm/src/discovery/project-discovery-config.d.ts.map +1 -0
  49. package/esm/src/discovery/project-discovery-config.js +33 -0
  50. package/esm/src/embedding/resolve.js +5 -5
  51. package/esm/src/embedding/veryfront-cloud/provider.js +3 -3
  52. package/esm/src/extensions/builtin-extensions.d.ts +2 -2
  53. package/esm/src/extensions/builtin-extensions.d.ts.map +1 -1
  54. package/esm/src/extensions/builtin-extensions.js +26 -27
  55. package/esm/src/extensions/interfaces/index.d.ts +9 -5
  56. package/esm/src/extensions/interfaces/index.d.ts.map +1 -1
  57. package/esm/src/extensions/interfaces/index.js +7 -3
  58. package/esm/src/extensions/{interfaces → llm}/embedding-provider.d.ts +1 -1
  59. package/esm/src/extensions/llm/embedding-provider.d.ts.map +1 -0
  60. package/esm/src/extensions/{interfaces → llm}/embedding-provider.js +1 -1
  61. package/esm/src/extensions/llm/index.d.ts +16 -0
  62. package/esm/src/extensions/llm/index.d.ts.map +1 -0
  63. package/esm/src/extensions/llm/index.js +13 -0
  64. package/esm/src/extensions/llm/llm-provider-registry.d.ts +11 -0
  65. package/esm/src/extensions/llm/llm-provider-registry.d.ts.map +1 -0
  66. package/esm/src/extensions/{registries/ai-provider-registry.js → llm/llm-provider-registry.js} +6 -6
  67. package/esm/src/extensions/{interfaces/ai-provider.d.ts → llm/llm-provider.d.ts} +16 -16
  68. package/esm/src/extensions/llm/llm-provider.d.ts.map +1 -0
  69. package/esm/src/extensions/{interfaces/ai-provider.js → llm/llm-provider.js} +4 -4
  70. package/esm/src/extensions/loader.d.ts +1 -1
  71. package/esm/src/extensions/loader.js +1 -1
  72. package/esm/src/extensions/orchestrate.d.ts +1 -1
  73. package/esm/src/extensions/orchestrate.d.ts.map +1 -1
  74. package/esm/src/extensions/recommendations.js +4 -4
  75. package/esm/src/provider/local/env.d.ts +1 -1
  76. package/esm/src/provider/local/env.js +1 -1
  77. package/esm/src/provider/model-registry.d.ts.map +1 -1
  78. package/esm/src/provider/model-registry.js +9 -9
  79. package/esm/src/provider/shared/index.d.ts +1 -1
  80. package/esm/src/provider/shared/index.js +1 -1
  81. package/esm/src/provider/veryfront-cloud/openai.js +4 -4
  82. package/esm/src/provider/veryfront-cloud/provider.js +2 -2
  83. package/esm/src/server/bootstrap.d.ts.map +1 -1
  84. package/esm/src/server/bootstrap.js +4 -5
  85. package/esm/src/server/handlers/request/api/project-discovery.d.ts.map +1 -1
  86. package/esm/src/server/handlers/request/api/project-discovery.js +6 -22
  87. package/esm/src/server/index.d.ts +1 -1
  88. package/esm/src/server/index.d.ts.map +1 -1
  89. package/esm/src/server/index.js +1 -1
  90. package/esm/src/server/service-server.d.ts +18 -0
  91. package/esm/src/server/service-server.d.ts.map +1 -1
  92. package/esm/src/server/service-server.js +318 -0
  93. package/esm/src/utils/version-constant.d.ts +1 -1
  94. package/esm/src/utils/version-constant.js +1 -1
  95. package/esm/src/workflow/schemas/workflow.schema.d.ts +1 -1
  96. package/package.json +6 -1
  97. package/src/cli/auth/provider-store.ts +1 -1
  98. package/src/cli/commands/doctor/ai-checks.ts +1 -1
  99. package/src/cli/skills/core-skills.ts +1 -1
  100. package/src/deno.js +9 -5
  101. package/src/extensions/{ext-anthropic → ext-llm-anthropic}/src/anthropic-provider.ts +5 -5
  102. package/src/extensions/ext-llm-anthropic/src/index.ts +34 -0
  103. package/src/extensions/{ext-google → ext-llm-google}/src/google-provider.ts +6 -6
  104. package/src/extensions/ext-llm-google/src/index.ts +31 -0
  105. package/src/extensions/ext-llm-openai/src/index.ts +33 -0
  106. package/src/extensions/{ext-openai → ext-llm-openai}/src/openai-provider.ts +7 -7
  107. package/src/src/agent/agent-service-server.ts +26 -0
  108. package/src/src/agent/hosted-agent-service-runtime.ts +42 -0
  109. package/src/src/agent/hosted-stream-terminal-error.ts +1 -1
  110. package/src/src/agent/index.ts +16 -0
  111. package/src/src/agent/runtime-agent-definition-files.ts +8 -3
  112. package/src/src/agent/veryfront-cloud-agent-service.ts +798 -0
  113. package/src/src/chat/provider-errors.ts +3 -3
  114. package/src/src/config/schemas/config.schema.ts +48 -0
  115. package/src/src/discovery/index.ts +4 -0
  116. package/src/src/discovery/project-discovery-config.ts +89 -0
  117. package/src/src/embedding/resolve.ts +6 -6
  118. package/src/src/embedding/veryfront-cloud/provider.ts +4 -4
  119. package/src/src/extensions/builtin-extensions.ts +32 -33
  120. package/src/src/extensions/interfaces/index.ts +11 -7
  121. package/src/src/extensions/{interfaces → llm}/embedding-provider.ts +1 -1
  122. package/src/src/extensions/llm/index.ts +17 -0
  123. package/src/src/extensions/{registries/ai-provider-registry.ts → llm/llm-provider-registry.ts} +12 -12
  124. package/src/src/extensions/{interfaces/ai-provider.ts → llm/llm-provider.ts} +15 -15
  125. package/src/src/extensions/loader.ts +1 -1
  126. package/src/src/extensions/orchestrate.ts +1 -1
  127. package/src/src/extensions/recommendations.ts +4 -4
  128. package/src/src/provider/local/env.ts +1 -1
  129. package/src/src/provider/model-registry.ts +11 -10
  130. package/src/src/provider/shared/index.ts +1 -1
  131. package/src/src/provider/veryfront-cloud/openai.ts +4 -4
  132. package/src/src/provider/veryfront-cloud/provider.ts +2 -2
  133. package/src/src/server/bootstrap.ts +7 -5
  134. package/src/src/server/handlers/request/api/project-discovery.ts +6 -27
  135. package/src/src/server/index.ts +4 -0
  136. package/src/src/server/service-server.ts +428 -0
  137. package/src/src/utils/version-constant.ts +1 -1
  138. package/esm/extensions/ext-anthropic/src/anthropic-provider.d.ts.map +0 -1
  139. package/esm/extensions/ext-anthropic/src/index.d.ts.map +0 -1
  140. package/esm/extensions/ext-google/src/google-provider.d.ts.map +0 -1
  141. package/esm/extensions/ext-google/src/index.d.ts.map +0 -1
  142. package/esm/extensions/ext-google/src/index.js +0 -26
  143. package/esm/extensions/ext-openai/src/index.d.ts.map +0 -1
  144. package/esm/extensions/ext-openai/src/index.js +0 -28
  145. package/esm/extensions/ext-openai/src/openai-provider.d.ts.map +0 -1
  146. package/esm/src/extensions/interfaces/ai-provider.d.ts.map +0 -1
  147. package/esm/src/extensions/interfaces/embedding-provider.d.ts.map +0 -1
  148. package/esm/src/extensions/registries/ai-provider-registry.d.ts +0 -11
  149. package/esm/src/extensions/registries/ai-provider-registry.d.ts.map +0 -1
  150. package/src/extensions/ext-anthropic/src/index.ts +0 -34
  151. package/src/extensions/ext-google/src/index.ts +0 -31
  152. 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 { ensureBuiltinAIProviders } from "../extensions/builtin-extensions.js";
17
+ import { ensureBuiltinLLMProviders } from "../extensions/builtin-extensions.js";
18
18
  import { tryResolve } from "../extensions/contracts.js";
19
- import { AIProviderRegistryName } from "../extensions/interfaces/index.js";
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 = ensureBuiltinAIProviders();
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 = ensureBuiltinAIProviders();
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 = ensureBuiltinAIProviders();
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(AIProviderRegistryName);
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 openAIProvider = new OpenAIProvider();
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 openAIProvider.createModel(modelId, {
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 openAIProvider.createEmbedding(modelId, {
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 { ensureBuiltinAIProviders } from "../../extensions/builtin-extensions.js";
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 = ensureBuiltinAIProviders();
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;AA4CjG,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
+ {"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 { AIProviderRegistryName } from "../extensions/interfaces/index.js";
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: { [AIProviderRegistryName]: createAIProviderRegistry() },
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: { [AIProviderRegistryName]: createAIProviderRegistry() },
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: { [AIProviderRegistryName]: createAIProviderRegistry() },
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;AAuErD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE/E"}
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 = buildDiscoveryConfig(ctx);
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":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/server/index.ts"],"names":[],"mappings":"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"}
@@ -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;CACb,CAAC;AAkBF,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,6BAA6B,CAgC/B;AAeD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,0BAA0B,CAAC,CAkErC"}
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.498";
1
+ export declare const VERSION = "0.1.500";
2
2
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,3 +1,3 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
- export const VERSION = "0.1.498";
3
+ export const VERSION = "0.1.500";
@@ -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