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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.500",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -185,6 +185,10 @@
|
|
|
185
185
|
"import": "./esm/src/extensions/interfaces/index.js",
|
|
186
186
|
"types": "./esm/src/extensions/interfaces/index.d.ts"
|
|
187
187
|
},
|
|
188
|
+
"./extensions/llm": {
|
|
189
|
+
"import": "./esm/src/extensions/llm/index.js",
|
|
190
|
+
"types": "./esm/src/extensions/llm/index.d.ts"
|
|
191
|
+
},
|
|
188
192
|
"./testing": {
|
|
189
193
|
"import": "./esm/src/testing/index.js",
|
|
190
194
|
"types": "./esm/src/testing/index.d.ts"
|
|
@@ -259,6 +263,7 @@
|
|
|
259
263
|
"@types/hast": "3.0.3",
|
|
260
264
|
"@types/mdast": "4.0.3",
|
|
261
265
|
"@types/unist": "3.0.2",
|
|
266
|
+
"bash-tool": "^1.3.16",
|
|
262
267
|
"class-variance-authority": "0.7.1",
|
|
263
268
|
"es-module-lexer": "2.0.0",
|
|
264
269
|
"esbuild": "0.27.4",
|
package/src/deno.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.500",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"nodeModulesDir": "auto",
|
|
6
6
|
"workspace": [
|
|
7
7
|
"./cli",
|
|
8
|
-
"./extensions/ext-anthropic",
|
|
8
|
+
"./extensions/ext-llm-anthropic",
|
|
9
|
+
"./extensions/ext-llm-google",
|
|
10
|
+
"./extensions/ext-llm-openai",
|
|
9
11
|
"./extensions/ext-babel",
|
|
10
|
-
"./extensions/ext-google",
|
|
11
12
|
"./extensions/ext-jwt",
|
|
12
13
|
"./extensions/ext-mdx",
|
|
13
14
|
"./extensions/ext-node-compat",
|
|
14
|
-
"./extensions/ext-openai",
|
|
15
15
|
"./extensions/ext-opentelemetry",
|
|
16
16
|
"./extensions/ext-esbuild",
|
|
17
17
|
"./extensions/ext-redis",
|
|
@@ -70,6 +70,7 @@ export default {
|
|
|
70
70
|
"./embedding": "./src/embedding/index.ts",
|
|
71
71
|
"./extensions": "./src/extensions/index.ts",
|
|
72
72
|
"./extensions/interfaces": "./src/extensions/interfaces/index.ts",
|
|
73
|
+
"./extensions/llm": "./src/extensions/llm/index.ts",
|
|
73
74
|
"./testing": "./src/testing/index.ts",
|
|
74
75
|
"./testing/assert": "./src/testing/assert.ts",
|
|
75
76
|
"./testing/bdd": "./src/testing/bdd.ts",
|
|
@@ -274,7 +275,9 @@ export default {
|
|
|
274
275
|
"veryfront/chat/conversation": "./src/chat/conversation.ts",
|
|
275
276
|
"veryfront/chat/message-prep": "./src/chat/message-prep.ts",
|
|
276
277
|
"veryfront/chat/final-step-fallback": "./src/chat/final-step-fallback.ts",
|
|
277
|
-
"veryfront/chat/provider-errors": "./src/chat/provider-errors.ts"
|
|
278
|
+
"veryfront/chat/provider-errors": "./src/chat/provider-errors.ts",
|
|
279
|
+
"bash-tool": "npm:bash-tool@1.3.16",
|
|
280
|
+
"just-bash": "npm:just-bash@2.14.5"
|
|
278
281
|
},
|
|
279
282
|
"compilerOptions": {
|
|
280
283
|
"jsx": "react-jsx",
|
|
@@ -372,6 +375,7 @@ export default {
|
|
|
372
375
|
"start-split": "deno task generate && deno run --allow-all cli/main.ts serve --split",
|
|
373
376
|
"start-split:binary": "deno task generate && deno run --allow-all cli/main.ts serve --split --binary",
|
|
374
377
|
"sbom": "deno run --allow-read --allow-write scripts/build/generate-sbom.ts",
|
|
378
|
+
"submit-deps": "deno run --allow-read --allow-env --allow-net=api.github.com scripts/security/submit-dependency-snapshot.ts",
|
|
375
379
|
"audit": "deno run --allow-read --allow-run --allow-write scripts/security/audit-npm.ts"
|
|
376
380
|
},
|
|
377
381
|
"lint": {
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Anthropic provider — implements the {@link
|
|
2
|
+
* Anthropic provider — implements the {@link LLMProvider} contract for
|
|
3
3
|
* Anthropic's Messages API (direct + via Veryfront Cloud / Bedrock-compatible
|
|
4
4
|
* proxies).
|
|
5
5
|
*
|
|
6
6
|
* Ported from `src/provider/runtime-loader.ts` as part of PR 12.
|
|
7
7
|
*
|
|
8
|
-
* @module extensions/ext-anthropic/anthropic-provider
|
|
8
|
+
* @module extensions/ext-llm-anthropic/anthropic-provider
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type { LLMProvider, LLMProviderConfig } from "../../../src/extensions/llm/index.js";
|
|
12
12
|
import type { ModelRuntime } from "../../../src/provider/types.js";
|
|
13
13
|
import {
|
|
14
14
|
buildProviderError,
|
|
@@ -1207,10 +1207,10 @@ export function createAnthropicModelRuntime(
|
|
|
1207
1207
|
};
|
|
1208
1208
|
}
|
|
1209
1209
|
|
|
1210
|
-
export class AnthropicProvider implements
|
|
1210
|
+
export class AnthropicProvider implements LLMProvider {
|
|
1211
1211
|
readonly id = "anthropic";
|
|
1212
1212
|
|
|
1213
|
-
createModel(modelId: string, config:
|
|
1213
|
+
createModel(modelId: string, config: LLMProviderConfig): ModelRuntime {
|
|
1214
1214
|
return createAnthropicModelRuntime(
|
|
1215
1215
|
{
|
|
1216
1216
|
apiKey: config.credential,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @veryfront/ext-llm-anthropic — registers the Anthropic provider into the
|
|
3
|
+
* core `LLMProviderRegistry`.
|
|
4
|
+
*
|
|
5
|
+
* @module extensions/ext-llm-anthropic
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ExtensionFactory } from "../../../src/extensions/index.js";
|
|
9
|
+
import type { LLMProviderRegistry } from "../../../src/extensions/llm/index.js";
|
|
10
|
+
import { LLMProviderRegistryName } from "../../../src/extensions/llm/index.js";
|
|
11
|
+
import { AnthropicProvider } from "./anthropic-provider.js";
|
|
12
|
+
|
|
13
|
+
const extAnthropic: ExtensionFactory = () => {
|
|
14
|
+
const provider = new AnthropicProvider();
|
|
15
|
+
let registryRef: LLMProviderRegistry | undefined;
|
|
16
|
+
return {
|
|
17
|
+
name: "ext-llm-anthropic",
|
|
18
|
+
version: "0.1.0",
|
|
19
|
+
capabilities: [{ type: "contract", name: "LLMProvider:anthropic" }],
|
|
20
|
+
setup(ctx) {
|
|
21
|
+
const registry = ctx.require<LLMProviderRegistry>(LLMProviderRegistryName);
|
|
22
|
+
registry.register(provider);
|
|
23
|
+
registryRef = registry;
|
|
24
|
+
ctx.logger.info("[ext-llm-anthropic] Anthropic provider registered");
|
|
25
|
+
},
|
|
26
|
+
teardown() {
|
|
27
|
+
registryRef?.unregister(provider.id);
|
|
28
|
+
registryRef = undefined;
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export default extAnthropic;
|
|
34
|
+
export { AnthropicProvider };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Google provider — implements the {@link
|
|
2
|
+
* Google provider — implements the {@link LLMProvider} contract for Google's
|
|
3
3
|
* Generative Language API (direct + via Veryfront Cloud).
|
|
4
4
|
*
|
|
5
5
|
* Ported from `src/provider/runtime-loader.ts` as part of PR 13.
|
|
6
6
|
*
|
|
7
|
-
* @module extensions/ext-google/google-provider
|
|
7
|
+
* @module extensions/ext-llm-google/google-provider
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type {
|
|
10
|
+
import type { LLMProvider, LLMProviderConfig } from "../../../src/extensions/llm/index.js";
|
|
11
11
|
import type { EmbeddingRuntime, ModelRuntime } from "../../../src/provider/types.js";
|
|
12
12
|
import {
|
|
13
13
|
buildProviderError,
|
|
@@ -858,10 +858,10 @@ export function createGoogleEmbeddingRuntime(
|
|
|
858
858
|
};
|
|
859
859
|
}
|
|
860
860
|
|
|
861
|
-
export class GoogleProvider implements
|
|
861
|
+
export class GoogleProvider implements LLMProvider {
|
|
862
862
|
readonly id = "google";
|
|
863
863
|
|
|
864
|
-
createModel(modelId: string, config:
|
|
864
|
+
createModel(modelId: string, config: LLMProviderConfig): ModelRuntime {
|
|
865
865
|
return createGoogleModelRuntime(
|
|
866
866
|
{
|
|
867
867
|
apiKey: config.credential,
|
|
@@ -873,7 +873,7 @@ export class GoogleProvider implements AIProvider {
|
|
|
873
873
|
);
|
|
874
874
|
}
|
|
875
875
|
|
|
876
|
-
createEmbedding(modelId: string, config:
|
|
876
|
+
createEmbedding(modelId: string, config: LLMProviderConfig): EmbeddingRuntime {
|
|
877
877
|
return createGoogleEmbeddingRuntime(
|
|
878
878
|
{
|
|
879
879
|
apiKey: config.credential,
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @veryfront/ext-llm-google — registers the Google provider into the
|
|
3
|
+
* core `LLMProviderRegistry`.
|
|
4
|
+
*
|
|
5
|
+
* @module extensions/ext-llm-google
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ExtensionFactory } from "../../../src/extensions/index.js";
|
|
9
|
+
import type { LLMProviderRegistry } from "../../../src/extensions/llm/index.js";
|
|
10
|
+
import { LLMProviderRegistryName } from "../../../src/extensions/llm/index.js";
|
|
11
|
+
import { GoogleProvider } from "./google-provider.js";
|
|
12
|
+
|
|
13
|
+
const extGoogle: ExtensionFactory = () => {
|
|
14
|
+
const provider = new GoogleProvider();
|
|
15
|
+
return {
|
|
16
|
+
name: "ext-llm-google",
|
|
17
|
+
version: "0.1.0",
|
|
18
|
+
capabilities: [{ type: "contract", name: "LLMProvider:google" }],
|
|
19
|
+
setup(ctx) {
|
|
20
|
+
const registry = ctx.require<LLMProviderRegistry>(LLMProviderRegistryName);
|
|
21
|
+
registry.register(provider);
|
|
22
|
+
ctx.logger.info("[ext-llm-google] Google provider registered");
|
|
23
|
+
},
|
|
24
|
+
teardown() {
|
|
25
|
+
// No resources to release.
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export default extGoogle;
|
|
31
|
+
export { GoogleProvider };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @veryfront/ext-llm-openai — registers the OpenAI provider into the
|
|
3
|
+
* core `LLMProviderRegistry`.
|
|
4
|
+
*
|
|
5
|
+
* @module extensions/ext-llm-openai
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { ExtensionFactory } from "../../../src/extensions/index.js";
|
|
9
|
+
import type { LLMProviderRegistry } from "../../../src/extensions/llm/index.js";
|
|
10
|
+
import { LLMProviderRegistryName } from "../../../src/extensions/llm/index.js";
|
|
11
|
+
import { OpenAIProvider } from "./openai-provider.js";
|
|
12
|
+
|
|
13
|
+
const extOpenAI: ExtensionFactory = () => {
|
|
14
|
+
const provider = new OpenAIProvider();
|
|
15
|
+
let registry: LLMProviderRegistry | undefined;
|
|
16
|
+
return {
|
|
17
|
+
name: "ext-llm-openai",
|
|
18
|
+
version: "0.1.0",
|
|
19
|
+
capabilities: [{ type: "contract", name: "LLMProvider:openai" }],
|
|
20
|
+
setup(ctx) {
|
|
21
|
+
registry = ctx.require<LLMProviderRegistry>(LLMProviderRegistryName);
|
|
22
|
+
registry.register(provider);
|
|
23
|
+
ctx.logger.info("[ext-llm-openai] OpenAI provider registered");
|
|
24
|
+
},
|
|
25
|
+
teardown() {
|
|
26
|
+
registry?.unregister(provider.id);
|
|
27
|
+
registry = undefined;
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export default extOpenAI;
|
|
33
|
+
export { OpenAIProvider };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OpenAI provider — implements the {@link
|
|
2
|
+
* OpenAI provider — implements the {@link LLMProvider} contract for OpenAI,
|
|
3
3
|
* OpenAI-compatible endpoints (Azure OpenAI, Moonshot AI), and OpenAI's
|
|
4
4
|
* Responses API.
|
|
5
5
|
*
|
|
6
6
|
* Ported from `src/provider/runtime-loader.ts` as part of PR 11.
|
|
7
7
|
*
|
|
8
|
-
* @module extensions/ext-openai/openai-provider
|
|
8
|
+
* @module extensions/ext-llm-openai/openai-provider
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type { LLMProvider, LLMProviderConfig } from "../../../src/extensions/llm/index.js";
|
|
12
12
|
import type { EmbeddingRuntime, ModelRuntime } from "../../../src/provider/types.js";
|
|
13
13
|
import {
|
|
14
14
|
buildProviderError,
|
|
@@ -1467,10 +1467,10 @@ export function createOpenAIEmbeddingRuntime(
|
|
|
1467
1467
|
};
|
|
1468
1468
|
}
|
|
1469
1469
|
|
|
1470
|
-
export class OpenAIProvider implements
|
|
1470
|
+
export class OpenAIProvider implements LLMProvider {
|
|
1471
1471
|
readonly id = "openai";
|
|
1472
1472
|
|
|
1473
|
-
createModel(modelId: string, config:
|
|
1473
|
+
createModel(modelId: string, config: LLMProviderConfig): ModelRuntime {
|
|
1474
1474
|
return createOpenAIModelRuntime(
|
|
1475
1475
|
{
|
|
1476
1476
|
apiKey: config.credential,
|
|
@@ -1482,7 +1482,7 @@ export class OpenAIProvider implements AIProvider {
|
|
|
1482
1482
|
);
|
|
1483
1483
|
}
|
|
1484
1484
|
|
|
1485
|
-
createEmbedding(modelId: string, config:
|
|
1485
|
+
createEmbedding(modelId: string, config: LLMProviderConfig): EmbeddingRuntime {
|
|
1486
1486
|
return createOpenAIEmbeddingRuntime(
|
|
1487
1487
|
{
|
|
1488
1488
|
apiKey: config.credential,
|
|
@@ -1494,7 +1494,7 @@ export class OpenAIProvider implements AIProvider {
|
|
|
1494
1494
|
);
|
|
1495
1495
|
}
|
|
1496
1496
|
|
|
1497
|
-
createResponses(modelId: string, config:
|
|
1497
|
+
createResponses(modelId: string, config: LLMProviderConfig): ModelRuntime {
|
|
1498
1498
|
return createOpenAIResponsesRuntime(
|
|
1499
1499
|
{
|
|
1500
1500
|
apiKey: config.credential,
|
|
@@ -2,6 +2,8 @@ import {
|
|
|
2
2
|
createVeryfrontServer,
|
|
3
3
|
type NodeVeryfrontServiceServer,
|
|
4
4
|
startNodeVeryfrontServer,
|
|
5
|
+
startVeryfrontServer,
|
|
6
|
+
type VeryfrontServiceServer,
|
|
5
7
|
type VeryfrontServiceServerLogger,
|
|
6
8
|
type VeryfrontServiceServerRuntime,
|
|
7
9
|
} from "../server/service-server.js";
|
|
@@ -26,7 +28,15 @@ export type StartNodeAgentServiceServerOptions = CreateAgentServiceServerRuntime
|
|
|
26
28
|
hardShutdownTimeoutMs?: number;
|
|
27
29
|
};
|
|
28
30
|
|
|
31
|
+
export type StartAgentServiceServerOptions = CreateAgentServiceServerRuntimeOptions & {
|
|
32
|
+
port: number;
|
|
33
|
+
bindAddress?: string;
|
|
34
|
+
signals?: readonly NodeJS.Signals[];
|
|
35
|
+
hardShutdownTimeoutMs?: number;
|
|
36
|
+
};
|
|
37
|
+
|
|
29
38
|
export type NodeAgentServiceServer = NodeVeryfrontServiceServer;
|
|
39
|
+
export type AgentServiceServer = VeryfrontServiceServer | NodeVeryfrontServiceServer;
|
|
30
40
|
|
|
31
41
|
function getAgentServiceServerName(
|
|
32
42
|
options: CreateAgentServiceServerRuntimeOptions,
|
|
@@ -70,3 +80,19 @@ export async function startNodeAgentServiceServer(
|
|
|
70
80
|
await server.ready;
|
|
71
81
|
return server;
|
|
72
82
|
}
|
|
83
|
+
|
|
84
|
+
export async function startAgentServiceServer(
|
|
85
|
+
options: StartAgentServiceServerOptions,
|
|
86
|
+
): Promise<AgentServiceServer> {
|
|
87
|
+
const runtime = createAgentServiceServerRuntime(options);
|
|
88
|
+
const server = await startVeryfrontServer({
|
|
89
|
+
runtime,
|
|
90
|
+
port: options.port,
|
|
91
|
+
bindAddress: options.bindAddress,
|
|
92
|
+
logger: options.logger,
|
|
93
|
+
signals: options.signals,
|
|
94
|
+
hardShutdownTimeoutMs: options.hardShutdownTimeoutMs,
|
|
95
|
+
});
|
|
96
|
+
await server.ready;
|
|
97
|
+
return server;
|
|
98
|
+
}
|
|
@@ -27,7 +27,9 @@ import type { ParsedHostedChatRequest } from "./hosted-chat-request-parser.js";
|
|
|
27
27
|
import type { AgUiResumeValue } from "./ag-ui-tool-shared.js";
|
|
28
28
|
import type { RuntimeAgentMarkdownDefinition } from "./runtime-agent-definition.js";
|
|
29
29
|
import {
|
|
30
|
+
type AgentServiceServer,
|
|
30
31
|
type NodeAgentServiceServer,
|
|
32
|
+
startAgentServiceServer,
|
|
31
33
|
startNodeAgentServiceServer,
|
|
32
34
|
} from "./agent-service-server.js";
|
|
33
35
|
import type { VeryfrontServiceServerLogger } from "../server/service-server.js";
|
|
@@ -115,6 +117,15 @@ export type StartNodeAgentServiceOptions<
|
|
|
115
117
|
TConfig extends AgentServiceRuntimeConfig = AgentServiceRuntimeConfig,
|
|
116
118
|
> = StartNodeHostedAgentServiceOptions<TExecution, TConfig>;
|
|
117
119
|
|
|
120
|
+
export type StartAgentServiceRuntimeOptions<
|
|
121
|
+
TExecution extends object,
|
|
122
|
+
TConfig extends AgentServiceRuntimeConfig = AgentServiceRuntimeConfig,
|
|
123
|
+
> = CreateAgentServiceRuntimeOptions<TExecution, TConfig> & {
|
|
124
|
+
bindAddress?: string;
|
|
125
|
+
hardShutdownTimeoutMs?: number;
|
|
126
|
+
signals?: readonly NodeJS.Signals[];
|
|
127
|
+
};
|
|
128
|
+
|
|
118
129
|
export type StartNodeHostedAgentServiceResult<
|
|
119
130
|
TExecution extends object,
|
|
120
131
|
TConfig extends HostedAgentServiceRuntimeConfig = HostedAgentServiceRuntimeConfig,
|
|
@@ -127,6 +138,13 @@ export type StartNodeAgentServiceResult<
|
|
|
127
138
|
TConfig extends AgentServiceRuntimeConfig = AgentServiceRuntimeConfig,
|
|
128
139
|
> = StartNodeHostedAgentServiceResult<TExecution, TConfig>;
|
|
129
140
|
|
|
141
|
+
export type StartAgentServiceRuntimeResult<
|
|
142
|
+
TExecution extends object,
|
|
143
|
+
TConfig extends AgentServiceRuntimeConfig = AgentServiceRuntimeConfig,
|
|
144
|
+
> = AgentServiceRuntimeBundle<TExecution, TConfig> & {
|
|
145
|
+
server: AgentServiceServer;
|
|
146
|
+
};
|
|
147
|
+
|
|
130
148
|
function defaultTrace<TResult>(
|
|
131
149
|
_operationName: string,
|
|
132
150
|
operation: () => Promise<TResult>,
|
|
@@ -236,3 +254,27 @@ export async function startNodeAgentService<
|
|
|
236
254
|
): Promise<StartNodeAgentServiceResult<TExecution, TConfig>> {
|
|
237
255
|
return startNodeHostedAgentService(options);
|
|
238
256
|
}
|
|
257
|
+
|
|
258
|
+
export async function startAgentServiceRuntime<
|
|
259
|
+
TExecution extends object,
|
|
260
|
+
TConfig extends AgentServiceRuntimeConfig = AgentServiceRuntimeConfig,
|
|
261
|
+
>(
|
|
262
|
+
options: StartAgentServiceRuntimeOptions<TExecution, TConfig>,
|
|
263
|
+
): Promise<StartAgentServiceRuntimeResult<TExecution, TConfig>> {
|
|
264
|
+
const bundle = createAgentServiceRuntime(options);
|
|
265
|
+
const server = await startAgentServiceServer({
|
|
266
|
+
runtime: bundle.runtime,
|
|
267
|
+
serviceName: options.serviceName,
|
|
268
|
+
lifecycle: bundle.lifecycle,
|
|
269
|
+
port: bundle.config.PORT,
|
|
270
|
+
bindAddress: options.bindAddress,
|
|
271
|
+
signals: options.signals,
|
|
272
|
+
logger: options.logger,
|
|
273
|
+
hardShutdownTimeoutMs: options.hardShutdownTimeoutMs,
|
|
274
|
+
});
|
|
275
|
+
|
|
276
|
+
return {
|
|
277
|
+
...bundle,
|
|
278
|
+
server,
|
|
279
|
+
};
|
|
280
|
+
}
|
|
@@ -5,7 +5,7 @@ import { parseProviderError } from "../chat/provider-errors.js";
|
|
|
5
5
|
const EMPTY_RESPONSE_TERMINAL_ERROR_CODE = "EMPTY_RESPONSE";
|
|
6
6
|
const EMPTY_RESPONSE_TERMINAL_ERROR_MESSAGE = "Assistant completed without producing a response";
|
|
7
7
|
const EXTERNAL_SERVICE_ERROR_CODE = "EXTERNAL_SERVICE_ERROR";
|
|
8
|
-
const EXTERNAL_SERVICE_ERROR_MESSAGE = "
|
|
8
|
+
const EXTERNAL_SERVICE_ERROR_MESSAGE = "LLM provider service error";
|
|
9
9
|
const STREAM_ERROR_TERMINAL_ERROR_CODE = "STREAM_ERROR";
|
|
10
10
|
|
|
11
11
|
export type HostedStreamTerminalError = {
|
package/src/src/agent/index.ts
CHANGED
|
@@ -252,10 +252,13 @@ export {
|
|
|
252
252
|
type NormalizedAgentServiceContract,
|
|
253
253
|
} from "./agent-service.js";
|
|
254
254
|
export {
|
|
255
|
+
type AgentServiceServer,
|
|
255
256
|
type AgentServiceServerLifecycle,
|
|
256
257
|
createAgentServiceServerRuntime,
|
|
257
258
|
type CreateAgentServiceServerRuntimeOptions,
|
|
258
259
|
type NodeAgentServiceServer,
|
|
260
|
+
startAgentServiceServer,
|
|
261
|
+
type StartAgentServiceServerOptions,
|
|
259
262
|
startNodeAgentServiceServer,
|
|
260
263
|
type StartNodeAgentServiceServerOptions,
|
|
261
264
|
} from "./agent-service-server.js";
|
|
@@ -316,6 +319,9 @@ export {
|
|
|
316
319
|
type HostedAgentServiceRuntimeConfig,
|
|
317
320
|
type HostedAgentServiceRuntimeLogger,
|
|
318
321
|
type HostedAgentServiceRuntimeTrace,
|
|
322
|
+
startAgentServiceRuntime,
|
|
323
|
+
type StartAgentServiceRuntimeOptions,
|
|
324
|
+
type StartAgentServiceRuntimeResult,
|
|
319
325
|
startNodeAgentService,
|
|
320
326
|
type StartNodeAgentServiceOptions,
|
|
321
327
|
type StartNodeAgentServiceResult,
|
|
@@ -323,6 +329,16 @@ export {
|
|
|
323
329
|
type StartNodeHostedAgentServiceOptions,
|
|
324
330
|
type StartNodeHostedAgentServiceResult,
|
|
325
331
|
} from "./hosted-agent-service-runtime.js";
|
|
332
|
+
export {
|
|
333
|
+
createNodeVeryfrontCloudAgentServiceRuntime,
|
|
334
|
+
type NodeVeryfrontCloudAgentServiceOptions,
|
|
335
|
+
type NodeVeryfrontCloudAgentServicePreparedExecution,
|
|
336
|
+
type NodeVeryfrontCloudAgentServiceProcessTarget,
|
|
337
|
+
runNodeVeryfrontCloudAgentServiceMain,
|
|
338
|
+
startAgentService,
|
|
339
|
+
startNodeVeryfrontCloudAgentService,
|
|
340
|
+
type VeryfrontCloudAgentServiceOptions,
|
|
341
|
+
} from "./veryfront-cloud-agent-service.js";
|
|
326
342
|
export {
|
|
327
343
|
type AgentServiceConfig,
|
|
328
344
|
type AgentServiceConfigInput,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
-
import { resolve } from "node:path";
|
|
2
|
+
import { basename, resolve } from "node:path";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import {
|
|
5
5
|
parseRuntimeAgentMarkdownDefinition,
|
|
@@ -45,15 +45,20 @@ export function resolveRuntimeAgentDefinitionsDir(
|
|
|
45
45
|
): string {
|
|
46
46
|
const parsedInput = resolveRuntimeAgentDefinitionsDirInputSchema.parse(input);
|
|
47
47
|
const fileName = getRuntimeAgentDefinitionFileName(parsedInput);
|
|
48
|
-
const firstCandidate = resolve(parsedInput.baseDir, "
|
|
48
|
+
const firstCandidate = resolve(parsedInput.baseDir, "agents");
|
|
49
|
+
const sourceLayoutCandidate = resolve(parsedInput.baseDir, "../agents");
|
|
49
50
|
const candidates = [
|
|
50
51
|
firstCandidate,
|
|
52
|
+
sourceLayoutCandidate,
|
|
51
53
|
resolve(parsedInput.baseDir, "../../agents"),
|
|
52
54
|
resolve(parsedInput.baseDir, "../../../agents"),
|
|
53
55
|
];
|
|
56
|
+
const fallbackCandidate = basename(parsedInput.baseDir) === "src"
|
|
57
|
+
? sourceLayoutCandidate
|
|
58
|
+
: firstCandidate;
|
|
54
59
|
|
|
55
60
|
return candidates.find((candidate) => hasRuntimeAgentDefinitionFile(candidate, fileName)) ??
|
|
56
|
-
|
|
61
|
+
fallbackCandidate;
|
|
57
62
|
}
|
|
58
63
|
|
|
59
64
|
export function resolveRuntimeAgentMarkdownDefinitionFilePath(
|