veryfront 0.1.999 → 0.1.1001
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/commands/pull/command.d.ts.map +1 -1
- package/esm/cli/commands/pull/command.js +5 -3
- package/esm/cli/commands/up/command.d.ts.map +1 -1
- package/esm/cli/commands/up/command.js +4 -3
- package/esm/cli/shared/config.d.ts.map +1 -1
- package/esm/cli/shared/config.js +22 -10
- package/esm/cli/shared/constants.d.ts +1 -0
- package/esm/cli/shared/constants.d.ts.map +1 -1
- package/esm/cli/shared/constants.js +16 -1
- package/esm/deno.js +1 -1
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +6 -1
- package/esm/src/internal-agents/run-stream.d.ts +1 -0
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +5 -1
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts +1 -0
- package/esm/src/server/handlers/request/agent-stream.handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/agent-stream.handler.js +4 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.d.ts.map +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pull/command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/pull/command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAM3E,OAAO,EACL,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAOhC;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;GAY7B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;GAAgC,CAAC;AAE5D,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAEzE;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;GAUxB,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,CAKlE;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AA2CD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAWjF;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC,CAoBxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,CAmBjG;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EAC1C,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,MAAM,CAAC,CAQjB;AA8ID;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGpE"}
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
import { defineSchema, lazySchema } from "../../../src/schemas/index.js";
|
|
10
10
|
import { dirname, join, normalize, resolve } from "../../../src/platform/compat/path/index.js";
|
|
11
11
|
import { cliLogger } from "../../utils/index.js";
|
|
12
|
+
import { resolveCliApiUrl } from "../../shared/constants.js";
|
|
12
13
|
import { cwd } from "../../../src/platform/index.js";
|
|
13
14
|
import { createFileSystem } from "../../../src/platform/index.js";
|
|
14
15
|
import { createApiClient, readConfigFile, resolveConfigWithAuth, } from "../../shared/config.js";
|
|
15
16
|
import { confirmPrompt, logInfo, logSuccess, logWarning } from "../../utils/index.js";
|
|
16
17
|
import { createNoopSpinner, createSpinner } from "../../ui/index.js";
|
|
17
|
-
import { getApiTokenEnv } from "../../../src/config/index.js";
|
|
18
|
+
import { getApiTokenEnv, getEnvironmentConfig } from "../../../src/config/index.js";
|
|
18
19
|
import { withSpan } from "../../../src/observability/tracing/otlp-setup.js";
|
|
19
20
|
import { CommonArgs, createArgParser } from "../../shared/args.js";
|
|
20
21
|
/**
|
|
@@ -268,12 +269,13 @@ export function pullCommand(options = {}) {
|
|
|
268
269
|
spinner.stop();
|
|
269
270
|
if (!projects?.length)
|
|
270
271
|
throw error;
|
|
271
|
-
const
|
|
272
|
+
const env = getEnvironmentConfig();
|
|
273
|
+
const token = getApiTokenEnv(env) ?? configFile?.apiToken;
|
|
272
274
|
if (!token) {
|
|
273
275
|
throw new Error("VERYFRONT_API_TOKEN environment variable or apiToken in veryfront.json is required when using --projects");
|
|
274
276
|
}
|
|
275
277
|
config = {
|
|
276
|
-
apiUrl: configFile?.apiUrl
|
|
278
|
+
apiUrl: resolveCliApiUrl(env, configFile?.apiUrl),
|
|
277
279
|
apiToken: token,
|
|
278
280
|
projectSlug: "",
|
|
279
281
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/up/command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAO3E,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/up/command.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAO3E,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,8BAA8B,CAAC;AAS5F,eAAO,MAAM,eAAe;;;GAK3B,CAAC;AAEF,eAAO,MAAM,YAAY;;;GAA8B,CAAC;AAExD,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC;AAExE,eAAO,MAAM,WAAW;;;GAGtB,CAAC;AAyEH,wBAAsB,SAAS,CAC7B,OAAO,GAAE,OAAO,CAAC,SAAS,CAAM,EAChC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,IAAI,CAAC,CA+Gf"}
|
|
@@ -10,6 +10,7 @@ import { createSpinner, shouldUseColor } from "../../ui/index.js";
|
|
|
10
10
|
import { isTTY, promptUser } from "../../utils/index.js";
|
|
11
11
|
import { CommonArgs, createArgParser } from "../../shared/args.js";
|
|
12
12
|
import { readConfigFile } from "../../shared/config.js";
|
|
13
|
+
import { resolveCliApiUrl } from "../../shared/constants.js";
|
|
13
14
|
import { pushCommand } from "../push/index.js";
|
|
14
15
|
import { deployCommand } from "../deploy/index.js";
|
|
15
16
|
export const getUpArgsSchema = defineSchema((v) => v.object({
|
|
@@ -77,7 +78,7 @@ export async function upCommand(options = {}, env = getEnvironmentConfig()) {
|
|
|
77
78
|
const useColor = shouldUseColor();
|
|
78
79
|
const c = (fn, s) => (useColor ? fn(s) : s);
|
|
79
80
|
const projectDir = cwd();
|
|
80
|
-
const userInfo = await ensureAuthenticated();
|
|
81
|
+
const userInfo = await ensureAuthenticated(env);
|
|
81
82
|
if (!userInfo)
|
|
82
83
|
return;
|
|
83
84
|
const spinner = createSpinner("Analyzing project...");
|
|
@@ -114,8 +115,8 @@ export async function upCommand(options = {}, env = getEnvironmentConfig()) {
|
|
|
114
115
|
else {
|
|
115
116
|
const projectSpinner = createSpinner(`Creating project "${slug}"...`);
|
|
116
117
|
try {
|
|
117
|
-
const apiUrl = env
|
|
118
|
-
const resolvedToken = env.apiToken ?? (await readToken());
|
|
118
|
+
const apiUrl = resolveCliApiUrl(env);
|
|
119
|
+
const resolvedToken = env.apiToken ?? (await readToken(env));
|
|
119
120
|
if (!resolvedToken) {
|
|
120
121
|
projectSpinner.stop();
|
|
121
122
|
cliLogger.error("Not authenticated");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AA6BzF,eAAO,MAAM,wBAAwB;;IAGjC,mDAAmD;;;;GAKtD,CAAC;AACF,eAAO,MAAM,qBAAqB;;IAN9B,mDAAmD;;;;GAMkB,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AAEvF,eAAO,MAAM,uBAAuB;;;;GAMnC,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;GAAsC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;AAErF,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/config.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AA6BzF,eAAO,MAAM,wBAAwB;;IAGjC,mDAAmD;;;;GAKtD,CAAC;AACF,eAAO,MAAM,qBAAqB;;IAN9B,mDAAmD;;;;GAMkB,CAAC;AAC1E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AAEvF,eAAO,MAAM,uBAAuB;;;;GAMnC,CAAC;AACF,eAAO,MAAM,oBAAoB;;;;GAAsC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;AAErF,wBAAsB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CA2CxF;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAatF;AA4ED,eAAO,MAAM,aAAa,gBAJH,MAAM,QAAQ,iBAAiB,KAAG,OAAO,CAAC,cAAc,CAIvB,CAAC;AAEzD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,gBAZX,MAAM,QAAQ,iBAAiB,KAAG,OAAO,CAAC,cAAc,CAYhB,CAAC;AAUhE,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClE,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAClD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACjD,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CACrC;AAED,eAAO,MAAM,iBAAiB;;;;GAM7B,CAAC;AACF,eAAO,MAAM,cAAc;;;;GAAgC,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAEzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,CA+GjE"}
|
package/esm/cli/shared/config.js
CHANGED
|
@@ -12,7 +12,7 @@ import { getEnvironmentConfig } from "../../src/config/index.js";
|
|
|
12
12
|
import { cliLogger, VERSION } from "../utils/index.js";
|
|
13
13
|
import { readToken } from "../auth/token-store.js";
|
|
14
14
|
import { ensureAuthenticated } from "../auth/login.js";
|
|
15
|
-
import {
|
|
15
|
+
import { resolveCliApiUrl } from "./constants.js";
|
|
16
16
|
import { isRetryableConnectionError } from "../../src/proxy/retry.js";
|
|
17
17
|
// Delays for exponential backoff with jitter: attempt 1 = ~300ms, 2 = ~1s, 3 = ~3s
|
|
18
18
|
const API_RETRY_DELAYS_MS = [300, 1000, 3000];
|
|
@@ -49,6 +49,7 @@ export const getResolvedConfigSchema = defineSchema((v) => v.object({
|
|
|
49
49
|
export const ResolvedConfigSchema = lazySchema(getResolvedConfigSchema);
|
|
50
50
|
export async function readConfigFile(projectDir) {
|
|
51
51
|
const fs = createFileSystem();
|
|
52
|
+
let moduleProjectSlug;
|
|
52
53
|
for (const ext of [".ts", ".js"]) {
|
|
53
54
|
const configPath = join(projectDir, `veryfront.config${ext}`);
|
|
54
55
|
try {
|
|
@@ -56,25 +57,36 @@ export async function readConfigFile(projectDir) {
|
|
|
56
57
|
continue;
|
|
57
58
|
const module = await import(`file://${configPath}`);
|
|
58
59
|
const config = module.default ?? module;
|
|
59
|
-
if (config?.projectSlug)
|
|
60
|
-
|
|
60
|
+
if (config?.projectSlug) {
|
|
61
|
+
moduleProjectSlug = config.projectSlug;
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
61
64
|
}
|
|
62
65
|
catch (error) {
|
|
63
66
|
cliLogger.debug(`Failed to import config file ${configPath}:`, error);
|
|
64
67
|
}
|
|
65
68
|
}
|
|
69
|
+
// veryfront.json is always merged in: veryfront.config.ts owns the
|
|
70
|
+
// projectSlug when both define one, but apiUrl/apiToken only live in
|
|
71
|
+
// veryfront.json and must not be dropped because a TS config exists.
|
|
66
72
|
const configJsonPath = join(projectDir, "veryfront.json");
|
|
73
|
+
let jsonConfig = null;
|
|
67
74
|
try {
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
if (await fs.exists(configJsonPath)) {
|
|
76
|
+
const content = await fs.readTextFile(configJsonPath);
|
|
77
|
+
const parsed = VeryfrontConfigSchema.safeParse(JSON.parse(content));
|
|
78
|
+
jsonConfig = parsed.success ? parsed.data : null;
|
|
79
|
+
}
|
|
73
80
|
}
|
|
74
81
|
catch (error) {
|
|
75
82
|
cliLogger.debug(`Failed to read veryfront.json:`, error);
|
|
76
|
-
return null;
|
|
77
83
|
}
|
|
84
|
+
if (!moduleProjectSlug && !jsonConfig)
|
|
85
|
+
return null;
|
|
86
|
+
return {
|
|
87
|
+
...jsonConfig,
|
|
88
|
+
...(moduleProjectSlug ? { projectSlug: moduleProjectSlug } : {}),
|
|
89
|
+
};
|
|
78
90
|
}
|
|
79
91
|
export async function writeProjectSlug(projectDir, slug) {
|
|
80
92
|
const fs = createFileSystem();
|
|
@@ -121,7 +133,7 @@ function resolveTenantProjectReference() {
|
|
|
121
133
|
async function resolveConfigBase(projectDir, env, interactive) {
|
|
122
134
|
const dir = projectDir ?? cwd();
|
|
123
135
|
const configFile = await readConfigFile(dir);
|
|
124
|
-
const apiUrl = env
|
|
136
|
+
const apiUrl = resolveCliApiUrl(env, configFile?.apiUrl);
|
|
125
137
|
let apiToken = env.apiToken ?? configFile?.apiToken ?? (await readToken(env));
|
|
126
138
|
if (!apiToken && interactive) {
|
|
127
139
|
const userInfo = await ensureAuthenticated(env);
|
|
@@ -12,6 +12,7 @@ export declare const DEFAULT_CALLBACK_PORT = 9876;
|
|
|
12
12
|
export declare const MAX_PORT_ATTEMPTS = 100;
|
|
13
13
|
export declare const DEFAULT_API_URL = "https://api.veryfront.com";
|
|
14
14
|
export declare const DEFAULT_LOCAL_API_URL = "https://api.veryfront.com";
|
|
15
|
+
export declare function resolveCliApiUrl(env?: EnvironmentConfig, configApiUrl?: string): string;
|
|
15
16
|
export declare function getApiUrl(env?: EnvironmentConfig): string;
|
|
16
17
|
export declare const DEFAULT_LOGIN_TIMEOUT_MS = 120000;
|
|
17
18
|
export declare const SHUTDOWN_TIMEOUT_MS = 3000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AAEzF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,QAAyC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAC3D,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,iBAAiB,EAAwB,MAAM,2BAA2B,CAAC;AAEzF,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,QAAyC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAC1C,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,eAAO,MAAM,eAAe,8BAA8B,CAAC;AAC3D,eAAO,MAAM,qBAAqB,8BAA8B,CAAC;AAOjE,wBAAgB,gBAAgB,CAC9B,GAAG,GAAE,iBAA0C,EAC/C,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CASR;AAED,wBAAgB,SAAS,CAAC,GAAG,GAAE,iBAA0C,GAAG,MAAM,CAEjF;AAED,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAChD,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AACzC,eAAO,MAAM,kBAAkB,OAAQ,CAAC;AAExC,eAAO,MAAM,eAAe,cAAc,CAAC;AAC3C,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,sBAAsB,MAAQ,CAAC"}
|
|
@@ -12,8 +12,23 @@ export const DEFAULT_CALLBACK_PORT = 9876;
|
|
|
12
12
|
export const MAX_PORT_ATTEMPTS = 100;
|
|
13
13
|
export const DEFAULT_API_URL = "https://api.veryfront.com";
|
|
14
14
|
export const DEFAULT_LOCAL_API_URL = "https://api.veryfront.com";
|
|
15
|
+
function getExplicitApiBaseUrl(env) {
|
|
16
|
+
if (!env.apiBaseUrl || env.apiBaseUrl === DEFAULT_API_URL)
|
|
17
|
+
return undefined;
|
|
18
|
+
return env.apiBaseUrl;
|
|
19
|
+
}
|
|
20
|
+
export function resolveCliApiUrl(env = getEnvironmentConfig(), configApiUrl) {
|
|
21
|
+
// VERYFRONT_API_URL wins. A non-default VERYFRONT_API_BASE_URL is an
|
|
22
|
+
// operator override, so it wins over a checked-in veryfront.json apiUrl.
|
|
23
|
+
// The default production apiBaseUrl stays below project config.
|
|
24
|
+
return env.apiUrl ??
|
|
25
|
+
getExplicitApiBaseUrl(env) ??
|
|
26
|
+
configApiUrl ??
|
|
27
|
+
env.apiBaseUrl ??
|
|
28
|
+
DEFAULT_API_URL;
|
|
29
|
+
}
|
|
15
30
|
export function getApiUrl(env = getEnvironmentConfig()) {
|
|
16
|
-
return env
|
|
31
|
+
return resolveCliApiUrl(env);
|
|
17
32
|
}
|
|
18
33
|
export const DEFAULT_LOGIN_TIMEOUT_MS = 120_000;
|
|
19
34
|
export const SHUTDOWN_TIMEOUT_MS = 3_000;
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA6IvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/transpiler.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA6IvD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,OAAO,CAAC,CAuGlB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -191,7 +191,12 @@ export async function importModule(file, context) {
|
|
|
191
191
|
contents: source,
|
|
192
192
|
loader,
|
|
193
193
|
resolveDir: fileDir,
|
|
194
|
-
|
|
194
|
+
// Must be a basename: esbuild joins resolveDir + sourcefile to form the
|
|
195
|
+
// entry module path when sourcefile is relative. Passing the full
|
|
196
|
+
// relative filePath (e.g. "tools/foo.ts") on VFS runs (baseDir === "")
|
|
197
|
+
// doubles the prefix to "tools/tools/foo.ts", which anchors ../ imports
|
|
198
|
+
// one directory too deep.
|
|
199
|
+
sourcefile: pathHelper.basename(filePath),
|
|
195
200
|
},
|
|
196
201
|
});
|
|
197
202
|
if (result.errors.length > 0) {
|
|
@@ -5,6 +5,7 @@ import { type AgentRunSessionManager } from "./session-manager.js";
|
|
|
5
5
|
import type { RuntimeRunAgentInput } from "./schema.js";
|
|
6
6
|
export interface RuntimeAgentStreamExecutionDeps {
|
|
7
7
|
sessionManager: AgentRunSessionManager;
|
|
8
|
+
localTools?: Record<string, Tool | boolean>;
|
|
8
9
|
projectAgentSandbox?: {
|
|
9
10
|
apiUrl?: string;
|
|
10
11
|
authToken?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAmB,KAAK,IAAI,EAAgB,MAAM,kBAAkB,CAAC;AAU5E,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAsCxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,mBAAmB,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,cAAc,CAAC,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IACnE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AAoCD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,oBAAoB,EAC3B,cAAc,EAAE,sBAAsB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EAAE,EACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;;cAsFrD;AA2KD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAQ3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAAmB,KAAK,IAAI,EAAgB,MAAM,kBAAkB,CAAC;AAU5E,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC3F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAsCxD,MAAM,WAAW,+BAA+B;IAC9C,cAAc,EAAE,sBAAsB,CAAC;IACvC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5C,mBAAmB,CAAC,EAAE;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,cAAc,CAAC,EAAE,+BAA+B,CAAC,gBAAgB,CAAC,CAAC;IACnE,8BAA8B,CAAC,EAAE,CAC/B,KAAK,EAAE,+BAA+B,KACnC,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,aAAa,CAAC,EAAE,CACd,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAClC;QACH,MAAM,EAAE,CACN,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,CAAC,EAAE;YACV,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,IAAI,CAAC;SAC9C,EACD,aAAa,CAAC,EAAE,MAAM,EACtB,uBAAuB,CAAC,EAAE,MAAM,EAChC,WAAW,CAAC,EAAE,WAAW,KACtB,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;KAC1C,CAAC;CACH;AAoCD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,oBAAoB,EAC3B,cAAc,EAAE,sBAAsB,EACtC,2BAA2B,CAAC,EAAE,MAAM,EAAE,EACtC,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC;;cAsFrD;AA2KD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,CAkUnB"}
|
|
@@ -263,7 +263,11 @@ export async function createRuntimeAgentStreamResponse(input, agent, deps) {
|
|
|
263
263
|
const forwardedIntegrationToolDefs = getForwardedIntegrationToolDefinitions(input.forwardedProps);
|
|
264
264
|
const availableForwardedToolNames = forwardedIntegrationToolDefs?.map((tool) => tool.name);
|
|
265
265
|
const sandboxTools = await buildProjectAgentSandboxTools({ agent, deps });
|
|
266
|
-
const
|
|
266
|
+
const availableLocalTools = {
|
|
267
|
+
...(deps.localTools ?? {}),
|
|
268
|
+
...(sandboxTools.tools ?? {}),
|
|
269
|
+
};
|
|
270
|
+
const mergedTools = buildMergedTools(agent, input, deps.sessionManager, availableForwardedToolNames, Object.keys(availableLocalTools).length > 0 ? availableLocalTools : undefined);
|
|
267
271
|
const runtimeAgent = {
|
|
268
272
|
...agent,
|
|
269
273
|
config: {
|
|
@@ -5,6 +5,7 @@ import { BaseHandler } from "../response/base.js";
|
|
|
5
5
|
import type { HandlerContext, HandlerMetadata, HandlerResult } from "../types.js";
|
|
6
6
|
export interface AgentStreamHandlerDeps extends RuntimeAgentDiscoveryDeps, RuntimeAgentStreamExecutionDeps {
|
|
7
7
|
resolveRuntimeOwnerInvokeUrl?: typeof resolveRuntimeOwnerInvokeUrl;
|
|
8
|
+
getLocalTools?: (agentId: string) => RuntimeAgentStreamExecutionDeps["localTools"];
|
|
8
9
|
}
|
|
9
10
|
export declare class AgentStreamHandler extends BaseHandler {
|
|
10
11
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-stream.handler.d.ts","sourceRoot":"","sources":["../../../../../src/src/server/handlers/request/agent-stream.handler.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EACL,4BAA4B,EAE7B,MAAM,2CAA2C,CAAC;AAyBnD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAanG,MAAM,WAAW,sBACf,SAAQ,yBAAyB,EAAE,+BAA+B;IAClE,4BAA4B,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACnE,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,+BAA+B,CAAC,YAAY,CAAC,CAAC;CACpF;AAofD,qBAAa,kBAAmB,SAAQ,WAAW;IASrC,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,QAAQ,EAAE,eAAe,CAMvB;gBAE2B,IAAI,GAAE,sBAAoC;IAIvE,OAAO,CAAC,sBAAsB;IAwBxB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;CA4LxE"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { createRemoteMCPToolSource, toolRegistry, } from "../../../tool/index.js";
|
|
2
2
|
import { defaultChannelInvokeDeps } from "../../../channels/invoke.js";
|
|
3
|
+
import { getDiscoveredHostTools } from "../../../agent/hosted/veryfront-cloud-agent-service.js";
|
|
3
4
|
import { createRuntimeAgentStreamResponse, } from "../../../internal-agents/run-stream.js";
|
|
4
5
|
import { createRuntimeAgentFromMarkdownDefinition } from "../../../agent/runtime/agent-markdown-adapter.js";
|
|
5
6
|
import { buildStudioMcpHeaders } from "../../../agent/project/live-studio-mcp-tools.js";
|
|
@@ -21,6 +22,7 @@ const defaultDeps = {
|
|
|
21
22
|
...defaultChannelInvokeDeps,
|
|
22
23
|
sessionManager: agentRunSessionManager,
|
|
23
24
|
resolveRuntimeOwnerInvokeUrl,
|
|
25
|
+
getLocalTools: (agentId) => getDiscoveredHostTools({ agentId }),
|
|
24
26
|
};
|
|
25
27
|
const logger = serverLogger.component("agent-stream-handler");
|
|
26
28
|
const RUN_STREAM_PATH_REGEX = /^\/api\/control-plane\/runs\/([^/]+)\/stream$/;
|
|
@@ -450,6 +452,7 @@ export class AgentStreamHandler extends BaseHandler {
|
|
|
450
452
|
? createRuntimeAgentFromMarkdownDefinition(payload.agentConfig)
|
|
451
453
|
: agent;
|
|
452
454
|
const runtimeInput = sanitizeRuntimeRunAgentInput(toRuntimeRunAgentInput(payload));
|
|
455
|
+
const localTools = this.deps.getLocalTools?.(runtimeBaseAgent.id);
|
|
453
456
|
const apiAuthToken = payload.credentials?.authToken || ctx.proxyToken ||
|
|
454
457
|
getHostEnv("VERYFRONT_API_TOKEN") || "";
|
|
455
458
|
const platformRuntimeAgent = await withVeryfrontPlatformRemoteTools({
|
|
@@ -486,6 +489,7 @@ export class AgentStreamHandler extends BaseHandler {
|
|
|
486
489
|
}
|
|
487
490
|
const runAgentStream = () => createRuntimeAgentStreamResponse(runtimeInput, runtimeAgent, {
|
|
488
491
|
...this.deps,
|
|
492
|
+
localTools,
|
|
489
493
|
projectAgentSandbox: {
|
|
490
494
|
apiUrl: getHostEnv("VERYFRONT_API_URL") ?? "https://api.veryfront.com",
|
|
491
495
|
authToken: apiAuthToken || undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-constant.d.ts","sourceRoot":"","sources":["../../../src/src/utils/version-constant.ts"],"names":[],"mappings":"AAEA,4BAA4B;AAC5B,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version-constant.d.ts","sourceRoot":"","sources":["../../../src/src/utils/version-constant.ts"],"names":[],"mappings":"AAEA,4BAA4B;AAC5B,eAAO,MAAM,OAAO,aAAa,CAAC"}
|