veryfront 0.1.1113 → 0.1.1115
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/deploy/command.d.ts +3 -0
- package/esm/cli/commands/deploy/command.d.ts.map +1 -1
- package/esm/cli/commands/deploy/command.js +4 -4
- package/esm/cli/commands/up/command.d.ts +3 -0
- package/esm/cli/commands/up/command.d.ts.map +1 -1
- package/esm/cli/commands/up/command.js +4 -2
- package/esm/cli/skills/loader.d.ts +4 -4
- package/esm/cli/skills/loader.d.ts.map +1 -1
- package/esm/cli/skills/loader.js +6 -6
- package/esm/deno.js +1 -1
- package/esm/src/agent/project/agent-runtime.d.ts +1 -1
- package/esm/src/agent/project/agent-runtime.d.ts.map +1 -1
- package/esm/src/agent/project/agent-runtime.js +2 -1
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +4 -8
- package/esm/src/data/server-data-fetcher.d.ts.map +1 -1
- package/esm/src/data/server-data-fetcher.js +5 -1
- package/esm/src/discovery/import-rewriter.d.ts +0 -6
- package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
- package/esm/src/discovery/import-rewriter.js +79 -47
- package/esm/src/html/hydration-script-builder/templates/router.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/templates/router.js +87 -24
- package/esm/src/rendering/orchestrator/pipeline.d.ts.map +1 -1
- package/esm/src/rendering/orchestrator/pipeline.js +26 -8
- package/esm/src/rendering/script-page-handling.js +1 -1
- package/esm/src/routing/api/module-loader/external-import-rewriter.js +1 -1
- package/esm/src/sandbox/lazy-sandbox.d.ts +5 -3
- package/esm/src/sandbox/lazy-sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/lazy-sandbox.js +116 -51
- package/esm/src/sandbox/proxy-routes.d.ts +3 -0
- package/esm/src/sandbox/proxy-routes.d.ts.map +1 -0
- package/esm/src/sandbox/proxy-routes.js +28 -0
- package/esm/src/sandbox/sandbox.d.ts.map +1 -1
- package/esm/src/sandbox/sandbox.js +43 -30
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.d.ts.map +1 -1
- package/esm/src/server/handlers/request/module/page-data-endpoint-handler.js +6 -3
- package/esm/src/transforms/npm-import-rewrites.d.ts +3 -3
- package/esm/src/transforms/npm-import-rewrites.d.ts.map +1 -1
- package/esm/src/transforms/npm-import-rewrites.js +29 -14
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +5 -5
|
@@ -12,6 +12,7 @@ import { type ApiClient } from "../../shared/config.js";
|
|
|
12
12
|
* Schema factory for deploy command arguments
|
|
13
13
|
*/
|
|
14
14
|
export declare const getDeployArgsSchema: () => import("../../../src/internal-agents/schema.js").Schema<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
15
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
15
16
|
branch: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
16
17
|
env: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
17
18
|
releaseName: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
@@ -21,6 +22,7 @@ export declare const getDeployArgsSchema: () => import("../../../src/internal-ag
|
|
|
21
22
|
quiet: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
22
23
|
}>>;
|
|
23
24
|
export declare const DeployArgsSchema: import("../../../src/internal-agents/schema.js").Schema<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
25
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
24
26
|
branch: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
25
27
|
env: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
26
28
|
releaseName: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
@@ -37,6 +39,7 @@ export type DeployOptions = InferSchema<ReturnType<typeof getDeployArgsSchema>>;
|
|
|
37
39
|
* Parse CLI arguments into validated DeployOptions
|
|
38
40
|
*/
|
|
39
41
|
export declare const parseDeployArgs: (args: import("../../shared/types.js").ParsedArgs) => import("../../shared/args.js").SafeParseResult<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
42
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
40
43
|
branch: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
41
44
|
env: import("../../../src/internal-agents/schema.js").Schema<string>;
|
|
42
45
|
releaseName: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EAAE,KAAK,SAAS,EAA0C,MAAM,wBAAwB,CAAC;AAehG;;GAEG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/deploy/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@ import { computeSourceDigest, getProjectTarget, normalizeControlPlane, readPushR
|
|
|
19
19
|
* Schema factory for deploy command arguments
|
|
20
20
|
*/
|
|
21
21
|
export const getDeployArgsSchema = defineSchema((v) => v.object({
|
|
22
|
+
projectDir: v.string().optional(),
|
|
22
23
|
branch: v.string().min(1).default("main"),
|
|
23
24
|
env: v.string().min(1).default("production"),
|
|
24
25
|
releaseName: v.string().min(1).optional(),
|
|
@@ -32,6 +33,7 @@ export const DeployArgsSchema = lazySchema(getDeployArgsSchema);
|
|
|
32
33
|
* Parse CLI arguments into validated DeployOptions
|
|
33
34
|
*/
|
|
34
35
|
export const parseDeployArgs = createArgParser(DeployArgsSchema, {
|
|
36
|
+
projectDir: CommonArgs.projectDir,
|
|
35
37
|
branch: CommonArgs.branch,
|
|
36
38
|
env: CommonArgs.env,
|
|
37
39
|
releaseName: CommonArgs.releaseName,
|
|
@@ -270,11 +272,10 @@ export async function resolvePushedSource(input) {
|
|
|
270
272
|
* Create a release and deploy to an environment
|
|
271
273
|
*/
|
|
272
274
|
export async function deployCommand(options) {
|
|
273
|
-
const { branch, env, releaseName, dryRun, force, quiet } = options;
|
|
275
|
+
const { projectDir = cwd(), branch, env, releaseName, dryRun, force, quiet } = options;
|
|
274
276
|
if (isJsonMode()) {
|
|
275
277
|
return deployCommandJson(options);
|
|
276
278
|
}
|
|
277
|
-
const projectDir = cwd();
|
|
278
279
|
let spinner = quiet ? createNoopSpinner() : createSpinner("Resolving configuration...");
|
|
279
280
|
const config = await resolveConfigWithAuth(projectDir);
|
|
280
281
|
const client = createApiClient(config);
|
|
@@ -377,7 +378,7 @@ export async function deployCommand(options) {
|
|
|
377
378
|
console.log(getPostDeployTips());
|
|
378
379
|
}
|
|
379
380
|
async function deployCommandJson(options) {
|
|
380
|
-
const { branch, env, releaseName, dryRun, force } = options;
|
|
381
|
+
const { projectDir = cwd(), branch, env, releaseName, dryRun, force } = options;
|
|
381
382
|
try {
|
|
382
383
|
// JSON mode requires --force or --yes to prevent accidental deploys
|
|
383
384
|
if (requiresExplicitDeployConfirmation(force)) {
|
|
@@ -391,7 +392,6 @@ async function deployCommandJson(options) {
|
|
|
391
392
|
return;
|
|
392
393
|
}
|
|
393
394
|
streamJsonLine({ type: "step", name: "resolve-config", status: "started" });
|
|
394
|
-
const projectDir = cwd();
|
|
395
395
|
const config = await resolveConfigWithAuth(projectDir);
|
|
396
396
|
const client = createApiClient(config);
|
|
397
397
|
streamJsonLine({ type: "step", name: "resolve-config", status: "completed" });
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { InferSchema } from "../../../src/extensions/schema/index.js";
|
|
2
2
|
import { type EnvironmentConfig } from "../../../src/config/index.js";
|
|
3
3
|
export declare const getUpArgsSchema: () => import("../../../src/internal-agents/schema.js").Schema<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
4
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
4
5
|
force: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
5
6
|
dryRun: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
6
7
|
}>>;
|
|
7
8
|
export declare const UpArgsSchema: import("../../../src/internal-agents/schema.js").Schema<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
9
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
8
10
|
force: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
9
11
|
dryRun: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
10
12
|
}>>;
|
|
11
13
|
export type UpOptions = InferSchema<ReturnType<typeof getUpArgsSchema>>;
|
|
12
14
|
export declare const parseUpArgs: (args: import("../../shared/types.js").ParsedArgs) => import("../../shared/args.js").SafeParseResult<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
|
|
15
|
+
projectDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
13
16
|
force: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
14
17
|
dryRun: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
15
18
|
}>>;
|
|
@@ -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;AAS5F,eAAO,MAAM,eAAe
|
|
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;;;;GAM3B,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;;;;GAItB,CAAC;AAyEH,wBAAsB,SAAS,CAC7B,OAAO,GAAE,OAAO,CAAC,SAAS,CAAM,EAChC,GAAG,GAAE,iBAA0C,GAC9C,OAAO,CAAC,IAAI,CAAC,CA8Gf"}
|
|
@@ -14,11 +14,13 @@ import { resolveCliApiUrl } from "../../shared/constants.js";
|
|
|
14
14
|
import { pushCommand } from "../push/index.js";
|
|
15
15
|
import { deployCommand } from "../deploy/index.js";
|
|
16
16
|
export const getUpArgsSchema = defineSchema((v) => v.object({
|
|
17
|
+
projectDir: v.string().optional(),
|
|
17
18
|
force: v.boolean().default(false),
|
|
18
19
|
dryRun: v.boolean().default(false),
|
|
19
20
|
}));
|
|
20
21
|
export const UpArgsSchema = lazySchema(getUpArgsSchema);
|
|
21
22
|
export const parseUpArgs = createArgParser(UpArgsSchema, {
|
|
23
|
+
projectDir: CommonArgs.projectDir,
|
|
22
24
|
force: CommonArgs.force,
|
|
23
25
|
dryRun: CommonArgs.dryRun,
|
|
24
26
|
});
|
|
@@ -74,10 +76,9 @@ async function saveConfig(projectDir, config) {
|
|
|
74
76
|
await fs.writeTextFile(join(projectDir, "veryfront.json"), `${JSON.stringify(config, null, 2)}\n`);
|
|
75
77
|
}
|
|
76
78
|
export async function upCommand(options = {}, env = getEnvironmentConfig()) {
|
|
77
|
-
const { force = false, dryRun = false } = options;
|
|
79
|
+
const { projectDir = cwd(), force = false, dryRun = false } = options;
|
|
78
80
|
const useColor = shouldUseColor();
|
|
79
81
|
const c = (fn, s) => (useColor ? fn(s) : s);
|
|
80
|
-
const projectDir = cwd();
|
|
81
82
|
const userInfo = await ensureAuthenticated(env);
|
|
82
83
|
if (!userInfo)
|
|
83
84
|
return;
|
|
@@ -154,6 +155,7 @@ export async function upCommand(options = {}, env = getEnvironmentConfig()) {
|
|
|
154
155
|
cliLogger.info("");
|
|
155
156
|
try {
|
|
156
157
|
await deployCommand({
|
|
158
|
+
projectDir,
|
|
157
159
|
branch: "main",
|
|
158
160
|
env: "preview",
|
|
159
161
|
force: true,
|
|
@@ -2,12 +2,12 @@ import type { LoadedSkill } from "./types.js";
|
|
|
2
2
|
export declare function loadSkill(directory: string): Promise<LoadedSkill | null>;
|
|
3
3
|
export declare function listCoreSkills(): Promise<LoadedSkill[]>;
|
|
4
4
|
/**
|
|
5
|
-
* Scan the
|
|
5
|
+
* Scan the provided project directory for local skill directories.
|
|
6
6
|
* A local skill is any skills/<id>/ directory containing a SKILL.md file.
|
|
7
7
|
*/
|
|
8
|
-
export declare function listLocalSkills(): Promise<LoadedSkill[]>;
|
|
8
|
+
export declare function listLocalSkills(baseDir?: string): Promise<LoadedSkill[]>;
|
|
9
9
|
/**
|
|
10
|
-
* List all skills: core (built-in) + local (
|
|
10
|
+
* List all skills: core (built-in) + local (under baseDir).
|
|
11
11
|
*/
|
|
12
|
-
export declare function listAllSkills(): Promise<LoadedSkill[]>;
|
|
12
|
+
export declare function listAllSkills(baseDir?: string): Promise<LoadedSkill[]>;
|
|
13
13
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/skills/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqB7D;AAED;;;GAGG;AACH,wBAAsB,eAAe,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/cli/skills/loader.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAO9C,wBAAsB,SAAS,CAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAW7B;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAqB7D;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAgBrF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAqBnF"}
|
package/esm/cli/skills/loader.js
CHANGED
|
@@ -41,13 +41,13 @@ export async function listCoreSkills() {
|
|
|
41
41
|
return skills;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Scan the
|
|
44
|
+
* Scan the provided project directory for local skill directories.
|
|
45
45
|
* A local skill is any skills/<id>/ directory containing a SKILL.md file.
|
|
46
46
|
*/
|
|
47
|
-
export async function listLocalSkills() {
|
|
47
|
+
export async function listLocalSkills(baseDir = cwd()) {
|
|
48
48
|
const fs = createFileSystem();
|
|
49
49
|
const skills = [];
|
|
50
|
-
const skillsDir = `${
|
|
50
|
+
const skillsDir = `${baseDir}/skills`;
|
|
51
51
|
try {
|
|
52
52
|
for await (const entry of fs.readDir(skillsDir)) {
|
|
53
53
|
if (!entry.isDirectory)
|
|
@@ -63,12 +63,12 @@ export async function listLocalSkills() {
|
|
|
63
63
|
return skills;
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
|
-
* List all skills: core (built-in) + local (
|
|
66
|
+
* List all skills: core (built-in) + local (under baseDir).
|
|
67
67
|
*/
|
|
68
|
-
export async function listAllSkills() {
|
|
68
|
+
export async function listAllSkills(baseDir = cwd()) {
|
|
69
69
|
const [core, local] = await Promise.all([
|
|
70
70
|
listCoreSkills(),
|
|
71
|
-
listLocalSkills(),
|
|
71
|
+
listLocalSkills(baseDir),
|
|
72
72
|
]);
|
|
73
73
|
// Deduplicate by name, local skills override core
|
|
74
74
|
const seen = new Set();
|
package/esm/deno.js
CHANGED
|
@@ -15,7 +15,7 @@ export type ProjectAgentRuntimeAgentIdCandidates = {
|
|
|
15
15
|
/** Input payload for discover project agent runtime. */
|
|
16
16
|
export type DiscoverProjectAgentRuntimeInput = {
|
|
17
17
|
projectDir: string;
|
|
18
|
-
adapter
|
|
18
|
+
adapter?: RuntimeAdapter;
|
|
19
19
|
config?: VeryfrontConfig | null;
|
|
20
20
|
fsAdapter?: FileSystemAdapter;
|
|
21
21
|
cacheKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/project/agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/project/agent-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAKzE,OAAO,KAAK,EACV,8BAA8B,EAE/B,MAAM,gCAAgC,CAAC;AAKxC,OAAO,KAAK,EAAE,KAAK,EAAe,MAAM,aAAa,CAAC;AACtD,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,qCAAqC,CAAC;AAO7C,kEAAkE;AAClE,MAAM,MAAM,8BAA8B,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;AAE1E,yEAAyE;AACzE,MAAM,MAAM,oCAAoC,GAAG;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,wDAAwD;AACxD,MAAM,MAAM,gCAAgC,GAAG;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAChC,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,uBAAuB,CAAC,EAAE,+BAA+B,CAAC;CAC3D,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,4BAA4B,GAAG,eAAe,GAAG;IAC3D,uBAAuB,EAAE,+BAA+B,CAAC;CAC1D,CAAC;AAEF,oFAAoF;AACpF,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,OAAO,EAAE,IAAI,CAAC,4BAA4B,EAAE,yBAAyB,CAAC,EACtE,EAAE,EAAE,MAAM,CAAC,GACV,CAAC,CAEH;AA8CD,8CAA8C;AAC9C,wBAAgB,kCAAkC,IAAI,IAAI,CAMzD;AAED,6CAA6C;AAC7C,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,4BAA4B,CAAC,CA+BvC;AAED,4DAA4D;AAC5D,wBAAgB,uCAAuC,CACrD,YAAY,EAAE,KAAK,EACnB,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAOT;AAED,kDAAkD;AAClD,wBAAsB,qCAAqC,CACzD,YAAY,EAAE,KAAK,GAClB,OAAO,CAAC,8BAA8B,CAAC,CA+BzC;AAED,wDAAwD;AACxD,wBAAgB,uCAAuC,CACrD,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG,IAAI,GAAG,SAAS,GAClE,oCAAoC,CAgBtC;AAED,iEAAiE;AACjE,wBAAgB,4CAA4C,CAC1D,KAAK,EAAE,oCAAoC,GAC1C,MAAM,CAKR;AAED,sDAAsD;AACtD,wBAAgB,uCAAuC,CAAC,KAAK,EAAE;IAC7D,UAAU,EAAE,oCAAoC,CAAC;IACjD,MAAM,EAAE,8BAA8B,CAAC;CACxC,GAAG,MAAM,GAAG,IAAI,CAiBhB"}
|
|
@@ -3,6 +3,7 @@ import { clearTrackedAgents } from "../../discovery/discovery-utils.js";
|
|
|
3
3
|
import { createProjectDiscoveryConfig } from "../../discovery/project-discovery-config.js";
|
|
4
4
|
import { clearTranspileCache } from "../../discovery/transpiler.js";
|
|
5
5
|
import { getConfig } from "../../config/index.js";
|
|
6
|
+
import { getLocalAdapter } from "../../platform/adapters/registry.js";
|
|
6
7
|
import { clearMCPRegistry } from "../../mcp/index.js";
|
|
7
8
|
import { workflowRegistry } from "../../workflow/registry.js";
|
|
8
9
|
import { agentRegistry } from "../composition/index.js";
|
|
@@ -60,7 +61,7 @@ export async function discoverProjectAgentRuntime(input) {
|
|
|
60
61
|
return await runWithEffectiveSourceIntegrationPolicy(input.sourceIntegrationPolicy, async () => {
|
|
61
62
|
clearProjectAgentRuntimeRegistries();
|
|
62
63
|
const config = input.config ??
|
|
63
|
-
await getConfig(input.projectDir, input.adapter, input.cacheKey ? { cacheKey: input.cacheKey } : undefined);
|
|
64
|
+
await getConfig(input.projectDir, input.adapter ?? await getLocalAdapter(), input.cacheKey ? { cacheKey: input.cacheKey } : undefined);
|
|
64
65
|
const discoveryOptions = createProjectDiscoveryConfig({
|
|
65
66
|
projectDir: input.projectDir,
|
|
66
67
|
config,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -761,7 +761,7 @@ export class AgentRuntime {
|
|
|
761
761
|
}
|
|
762
762
|
this.status = "tool_execution";
|
|
763
763
|
addSpanEvent(loopSpan, "tool_execution_start", { count: response.toolCalls.length });
|
|
764
|
-
|
|
764
|
+
const mustLoadSkillFirstForStep = !activeSkillPolicy &&
|
|
765
765
|
response.toolCalls.some((tc) => tc.toolName === LOAD_SKILL_TOOL_ID);
|
|
766
766
|
for (const tc of response.toolCalls) {
|
|
767
767
|
throwIfAborted(abortSignal);
|
|
@@ -830,7 +830,7 @@ export class AgentRuntime {
|
|
|
830
830
|
toolCalls.push(toolCall);
|
|
831
831
|
return;
|
|
832
832
|
}
|
|
833
|
-
const policyCheck = enforceSkillPolicy(tc.toolName, activeSkillPolicy,
|
|
833
|
+
const policyCheck = enforceSkillPolicy(tc.toolName, activeSkillPolicy, mustLoadSkillFirstForStep, {
|
|
834
834
|
hasSubmittedFormInput: hasSubmittedFormInputInLoop,
|
|
835
835
|
skillToolAvailability: activeSkillToolAvailability,
|
|
836
836
|
});
|
|
@@ -923,7 +923,6 @@ export class AgentRuntime {
|
|
|
923
923
|
activeSkillToolAvailability = extractSkillToolAvailability(result) ??
|
|
924
924
|
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
925
925
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
|
|
926
|
-
mustLoadSkillFirst = false;
|
|
927
926
|
}
|
|
928
927
|
activeSkillPolicy = removeFormInputAfterSubmission(tc.toolName, result, activeSkillId, activeSkillPolicy);
|
|
929
928
|
if (isSubmittedFormInputExecutionResult(tc.toolName, result)) {
|
|
@@ -1163,7 +1162,7 @@ export class AgentRuntime {
|
|
|
1163
1162
|
}
|
|
1164
1163
|
this.status = "tool_execution";
|
|
1165
1164
|
const streamedToolCalls = Array.from(state.toolCalls.values());
|
|
1166
|
-
|
|
1165
|
+
const mustLoadSkillFirstForStep = !activeSkillPolicy &&
|
|
1167
1166
|
streamedToolCalls.some((tc) => tc.name === LOAD_SKILL_TOOL_ID);
|
|
1168
1167
|
for (const tc of streamedToolCalls) {
|
|
1169
1168
|
throwIfAborted(abortSignal);
|
|
@@ -1220,7 +1219,6 @@ export class AgentRuntime {
|
|
|
1220
1219
|
activeSkillToolAvailability = extractSkillToolAvailability(matchingResult.output) ??
|
|
1221
1220
|
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
1222
1221
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(matchingResult.output);
|
|
1223
|
-
mustLoadSkillFirst = false;
|
|
1224
1222
|
}
|
|
1225
1223
|
activeSkillPolicy = removeFormInputAfterSubmission(tc.name, matchingResult.output, activeSkillId, activeSkillPolicy);
|
|
1226
1224
|
if (isSubmittedFormInputExecutionResult(tc.name, matchingResult.output)) {
|
|
@@ -1246,7 +1244,6 @@ export class AgentRuntime {
|
|
|
1246
1244
|
activeSkillToolAvailability = extractSkillToolAvailability(persistedResult.result) ??
|
|
1247
1245
|
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
1248
1246
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(persistedResult.result);
|
|
1249
|
-
mustLoadSkillFirst = false;
|
|
1250
1247
|
}
|
|
1251
1248
|
activeSkillPolicy = removeFormInputAfterSubmission(tc.name, persistedResult.result, activeSkillId, activeSkillPolicy);
|
|
1252
1249
|
if (isSubmittedFormInputExecutionResult(tc.name, persistedResult.result)) {
|
|
@@ -1288,7 +1285,7 @@ export class AgentRuntime {
|
|
|
1288
1285
|
await this.recordToolError(toolCall, `Invalid tool arguments: ${capturedInput.parseError}`, controller, encoder, currentMessages, toolCalls);
|
|
1289
1286
|
continue;
|
|
1290
1287
|
}
|
|
1291
|
-
const policyCheck = enforceSkillPolicy(tc.name, activeSkillPolicy,
|
|
1288
|
+
const policyCheck = enforceSkillPolicy(tc.name, activeSkillPolicy, mustLoadSkillFirstForStep, {
|
|
1292
1289
|
hasSubmittedFormInput: hasSubmittedFormInputInLoop,
|
|
1293
1290
|
skillToolAvailability: activeSkillToolAvailability,
|
|
1294
1291
|
});
|
|
@@ -1343,7 +1340,6 @@ export class AgentRuntime {
|
|
|
1343
1340
|
activeSkillToolAvailability = extractSkillToolAvailability(result) ??
|
|
1344
1341
|
INACTIVE_SKILL_TOOL_AVAILABILITY;
|
|
1345
1342
|
activeSkillDelegationOverrides = extractSkillDelegationOverrides(result);
|
|
1346
|
-
mustLoadSkillFirst = false;
|
|
1347
1343
|
}
|
|
1348
1344
|
activeSkillPolicy = removeFormInputAfterSubmission(tc.name, result, activeSkillId, activeSkillPolicy);
|
|
1349
1345
|
if (isSubmittedFormInputExecutionResult(tc.name, result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-data-fetcher.d.ts","sourceRoot":"","sources":["../../../src/src/data/server-data-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAcxE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,KAAK,CACH,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"server-data-fetcher.d.ts","sourceRoot":"","sources":["../../../src/src/data/server-data-fetcher.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAcxE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,KAAK,CACH,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,UAAU,CAAC;IA2FtB;;OAEG;YACW,aAAa;IAqE3B;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAGjB"}
|
|
@@ -15,7 +15,9 @@ export class ServerDataFetcher {
|
|
|
15
15
|
}
|
|
16
16
|
const pathname = context.url?.pathname ?? "unknown";
|
|
17
17
|
const projectId = context.request?.headers?.get("x-project-id") ?? "default";
|
|
18
|
-
const
|
|
18
|
+
const isPrefetch = context.request?.headers?.get("x-veryfront-prefetch") === "1";
|
|
19
|
+
const breakerNamespace = isPrefetch ? "data-prefetch" : "data-fetch";
|
|
20
|
+
const circuitBreaker = getCircuitBreaker(`${breakerNamespace}:${projectId}`, {
|
|
19
21
|
failureThreshold: 5,
|
|
20
22
|
resetTimeoutMs: 30_000,
|
|
21
23
|
successThreshold: 2,
|
|
@@ -55,6 +57,7 @@ export class ServerDataFetcher {
|
|
|
55
57
|
serverLogger.warn("DATA_FETCH_CIRCUIT_OPEN circuit breaker open, failing fast", {
|
|
56
58
|
pathname,
|
|
57
59
|
projectId,
|
|
60
|
+
breakerNamespace,
|
|
58
61
|
retryAfterMs: error.nextAttemptMs,
|
|
59
62
|
});
|
|
60
63
|
throw error;
|
|
@@ -79,6 +82,7 @@ export class ServerDataFetcher {
|
|
|
79
82
|
"data.pathname": pathname,
|
|
80
83
|
"data.timeout_ms": DATA_FETCH_TIMEOUT_MS,
|
|
81
84
|
"data.project_id": projectId,
|
|
85
|
+
"data.prefetch": isPrefetch,
|
|
82
86
|
"data.isolated": useIsolation,
|
|
83
87
|
});
|
|
84
88
|
}
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Import Rewriter
|
|
3
|
-
*
|
|
4
|
-
* Transforms import statements for different runtime environments
|
|
5
|
-
* (Deno, Node.js) and handles veryfront package resolution.
|
|
6
|
-
*/
|
|
7
1
|
import { createFileSystem } from "../platform/compat/fs.js";
|
|
8
2
|
export declare const DISCOVERY_GLOBAL_VERYFRONT_MODULES: readonly ["veryfront/agent", "veryfront/tool", "veryfront/platform", "veryfront/prompt", "veryfront/resource", "veryfront/embedding", "veryfront/knowledge", "veryfront/workflow", "veryfront/eval", "veryfront/metrics", "veryfront/schemas", "veryfront/integrations", "veryfront/chat/uploads"];
|
|
9
3
|
interface DenoRewriteOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"import-rewriter.d.ts","sourceRoot":"","sources":["../../../src/src/discovery/import-rewriter.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,eAAO,MAAM,kCAAkC,oSAerC,CAAC;AAEX,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAClD;AAwHD;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CA2BR;AAqFD;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,EACvC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,CAyRjB"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Transforms import statements for different runtime environments
|
|
5
5
|
* (Deno, Node.js) and handles veryfront package resolution.
|
|
6
6
|
*/
|
|
7
|
+
import * as dntShim from "../../_dnt.shims.js";
|
|
7
8
|
import { isDenoCompiled } from "../platform/compat/runtime.js";
|
|
8
9
|
import * as pathHelper from "../platform/compat/path/index.js";
|
|
9
10
|
import { LRUCache } from "../utils/lru-wrapper.js";
|
|
@@ -93,6 +94,12 @@ function isUnprefixedNpmSpecifier(specifier) {
|
|
|
93
94
|
// `import type` / `export type` lines reference types only; they get erased
|
|
94
95
|
// by TypeScript and must not trigger filesystem resolution.
|
|
95
96
|
const TYPE_ONLY_STATIC_RE = /(?:^|[\s;{}])(?:import|export)\s+type\b/;
|
|
97
|
+
function isNotFoundError(error) {
|
|
98
|
+
const DenoNotFound = dntShim.dntGlobalThis.Deno?.errors?.NotFound;
|
|
99
|
+
if (DenoNotFound && error instanceof DenoNotFound)
|
|
100
|
+
return true;
|
|
101
|
+
return error?.code === "ENOENT";
|
|
102
|
+
}
|
|
96
103
|
function rewriteBareNpmImportsForDeno(code) {
|
|
97
104
|
return code
|
|
98
105
|
// `import x from "spec"`, `export { x } from "spec"`, `export * from "spec"`.
|
|
@@ -229,6 +236,7 @@ export async function rewriteDiscoveryImports(code, projectDir, fs, fileDir) {
|
|
|
229
236
|
let transformed = code;
|
|
230
237
|
try {
|
|
231
238
|
const { pathToFileURL } = await import("node:url");
|
|
239
|
+
const projectRoot = pathHelper.resolve(projectDir);
|
|
232
240
|
// Handle relative imports
|
|
233
241
|
transformed = transformed.replace(/from\s+["'](\.\.\/[^"']+)["']/g, (_match, relativePath) => `from "${pathToFileURL(pathHelper.resolve(fileDir, relativePath)).href}"`);
|
|
234
242
|
// Resolve a bare specifier (optionally with subpath) to a file:// URL,
|
|
@@ -238,14 +246,14 @@ export async function rewriteDiscoveryImports(code, projectDir, fs, fileDir) {
|
|
|
238
246
|
// so a subsequent `npm install` of the missing dep is picked up
|
|
239
247
|
// without a process restart.
|
|
240
248
|
const resolvePackageToFileUrl = async (specifier) => {
|
|
241
|
-
const cacheKey = `${
|
|
249
|
+
const cacheKey = `${projectRoot}::${specifier}`;
|
|
242
250
|
const cached = resolvedSpecifierCache.get(cacheKey);
|
|
243
251
|
if (cached !== undefined)
|
|
244
252
|
return cached;
|
|
245
253
|
const { name: packageName, subpath } = splitPackageSubpath(specifier);
|
|
246
|
-
let searchDir =
|
|
254
|
+
let searchDir = projectRoot;
|
|
247
255
|
for (let i = 0; i < 10; i++) {
|
|
248
|
-
const packagePath = pathHelper.
|
|
256
|
+
const packagePath = pathHelper.resolve(searchDir, "node_modules", packageName);
|
|
249
257
|
const packageJsonPath = pathHelper.join(packagePath, "package.json");
|
|
250
258
|
try {
|
|
251
259
|
const pkgJson = JSON.parse(await fs.readTextFile(packageJsonPath));
|
|
@@ -357,40 +365,53 @@ export async function rewriteDiscoveryImports(code, projectDir, fs, fileDir) {
|
|
|
357
365
|
.replace(new RegExp(`from\\s*["']${escapedSpecifier}["']`, "g"), `from "${resolvedUrl}"`)
|
|
358
366
|
.replace(new RegExp(`import\\s*\\(\\s*["']${escapedSpecifier}["']\\s*\\)`, "g"), `import("${resolvedUrl}")`);
|
|
359
367
|
};
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
368
|
+
const findVeryfrontExportSource = async () => {
|
|
369
|
+
const nodePackagePath = pathHelper.resolve(projectRoot, "node_modules", "veryfront");
|
|
370
|
+
const vfPackageJsonPath = pathHelper.join(nodePackagePath, "package.json");
|
|
371
|
+
let hasNodePackagePath = false;
|
|
372
|
+
try {
|
|
373
|
+
await fs.stat(nodePackagePath);
|
|
374
|
+
hasNodePackagePath = true;
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
if (!isNotFoundError(error)) {
|
|
378
|
+
return { kind: "present", packagePath: nodePackagePath, exportsMap: undefined };
|
|
379
|
+
}
|
|
380
|
+
/* expected: veryfront directory absent, fallback to deno.json search */
|
|
381
|
+
}
|
|
382
|
+
if (hasNodePackagePath) {
|
|
383
|
+
try {
|
|
384
|
+
const packageJsonText = await fs.readTextFile(vfPackageJsonPath);
|
|
385
|
+
const pkgJson = JSON.parse(packageJsonText);
|
|
386
|
+
return { kind: "present", packagePath: nodePackagePath, exportsMap: pkgJson.exports };
|
|
387
|
+
}
|
|
388
|
+
catch (_) {
|
|
389
|
+
return { kind: "present", packagePath: nodePackagePath, exportsMap: undefined };
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
// Search for deno.json in parent directories.
|
|
393
|
+
let searchDir = projectRoot;
|
|
372
394
|
for (let i = 0; i < 5; i++) {
|
|
373
395
|
try {
|
|
374
396
|
const denoJsonPath = pathHelper.join(searchDir, "deno.json");
|
|
375
397
|
const denoJson = JSON.parse(await fs.readTextFile(denoJsonPath));
|
|
376
|
-
if (denoJson.name === "veryfront" && denoJson
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
398
|
+
if (denoJson.name === "veryfront" && "exports" in denoJson) {
|
|
399
|
+
return {
|
|
400
|
+
kind: "present",
|
|
401
|
+
packagePath: pathHelper.resolve(searchDir),
|
|
402
|
+
exportsMap: denoJson.exports,
|
|
403
|
+
};
|
|
380
404
|
}
|
|
381
405
|
}
|
|
382
406
|
catch (_) {
|
|
383
407
|
/* expected: deno.json not found at this level */
|
|
384
408
|
}
|
|
385
|
-
|
|
409
|
+
const parent = pathHelper.dirname(searchDir);
|
|
410
|
+
if (parent === searchDir)
|
|
411
|
+
break;
|
|
412
|
+
searchDir = parent;
|
|
386
413
|
}
|
|
387
|
-
|
|
388
|
-
const getExportPath = (entry) => {
|
|
389
|
-
if (!entry)
|
|
390
|
-
return null;
|
|
391
|
-
if (typeof entry === "string")
|
|
392
|
-
return entry;
|
|
393
|
-
return entry.import ?? null;
|
|
414
|
+
return { kind: "absent" };
|
|
394
415
|
};
|
|
395
416
|
const veryfrontSpecifiers = new Set();
|
|
396
417
|
for (const match of transformed.matchAll(/from\s+["'](veryfront(?:\/[^"']+)?)["']/g)) {
|
|
@@ -403,29 +424,40 @@ export async function rewriteDiscoveryImports(code, projectDir, fs, fileDir) {
|
|
|
403
424
|
if (specifier)
|
|
404
425
|
veryfrontSpecifiers.add(specifier);
|
|
405
426
|
}
|
|
427
|
+
const veryfrontExportSource = await findVeryfrontExportSource();
|
|
428
|
+
const resolveVeryfrontExportToFileUrl = (specifier) => {
|
|
429
|
+
if (veryfrontExportSource.kind === "absent")
|
|
430
|
+
return { kind: "rejected" };
|
|
431
|
+
const subpath = specifier === "veryfront" ? "." : "./" + specifier.replace("veryfront/", "");
|
|
432
|
+
const exportPath = resolveExportPath(veryfrontExportSource.exportsMap, subpath);
|
|
433
|
+
if (!exportPath)
|
|
434
|
+
return { kind: "rejected" };
|
|
435
|
+
const packagePath = veryfrontExportSource.packagePath;
|
|
436
|
+
const resolvedPath = pathHelper.resolve(packagePath, exportPath);
|
|
437
|
+
const packagePathPrefix = packagePath.endsWith(pathHelper.SEPARATOR)
|
|
438
|
+
? packagePath
|
|
439
|
+
: packagePath + pathHelper.SEPARATOR;
|
|
440
|
+
if (resolvedPath !== packagePath && !resolvedPath.startsWith(packagePathPrefix)) {
|
|
441
|
+
return { kind: "rejected" };
|
|
442
|
+
}
|
|
443
|
+
return { kind: "resolved", url: pathToFileURL(resolvedPath).href };
|
|
444
|
+
};
|
|
406
445
|
for (const specifier of veryfrontSpecifiers) {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
446
|
+
if (veryfrontExportSource.kind === "absent")
|
|
447
|
+
continue;
|
|
448
|
+
const result = resolveVeryfrontExportToFileUrl(specifier);
|
|
449
|
+
if (result.kind === "resolved") {
|
|
450
|
+
transformed = rewriteResolvedSpecifierImports(transformed, specifier, result.url);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
if (veryfrontExportSource.kind === "absent") {
|
|
454
|
+
for (const specifier of veryfrontSpecifiers) {
|
|
455
|
+
const resolvedUrl = resolveRuntimeSpecifierToFileUrl(specifier);
|
|
456
|
+
if (resolvedUrl) {
|
|
457
|
+
transformed = rewriteResolvedSpecifierImports(transformed, specifier, resolvedUrl);
|
|
458
|
+
}
|
|
410
459
|
}
|
|
411
460
|
}
|
|
412
|
-
// Rewrite veryfront subpath imports
|
|
413
|
-
transformed = transformed.replace(/from\s+["'](veryfront\/[^"']+)["']/g, (match, fullSpecifier) => {
|
|
414
|
-
const subpath = "./" + fullSpecifier.replace("veryfront/", "");
|
|
415
|
-
const exportPath = getExportPath(exportsMap[subpath]);
|
|
416
|
-
if (!exportPath)
|
|
417
|
-
return match;
|
|
418
|
-
const resolvedPath = pathHelper.join(vfPackagePath, exportPath);
|
|
419
|
-
return `from "${pathToFileURL(resolvedPath).href}"`;
|
|
420
|
-
});
|
|
421
|
-
// Rewrite bare veryfront import
|
|
422
|
-
transformed = transformed.replace(/from\s+["']veryfront["']/g, () => {
|
|
423
|
-
const exportPath = getExportPath(exportsMap["."]);
|
|
424
|
-
if (!exportPath)
|
|
425
|
-
return 'from "veryfront"';
|
|
426
|
-
const resolvedPath = pathHelper.join(vfPackagePath, exportPath);
|
|
427
|
-
return `from "${pathToFileURL(resolvedPath).href}"`;
|
|
428
|
-
});
|
|
429
461
|
}
|
|
430
462
|
catch (_) {
|
|
431
463
|
/* expected: Node.js URL module unavailable in non-Node runtime */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/router.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../../../src/src/html/hydration-script-builder/templates/router.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,cA4sC3B,CAAC"}
|