veryfront 0.1.1104 ā 0.1.1105
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/build/command-help.js +2 -2
- package/esm/cli/commands/build/command.d.ts.map +1 -1
- package/esm/cli/commands/build/command.js +3 -1
- package/esm/cli/commands/build/config-display.js +1 -1
- package/esm/cli/commands/build/handler.d.ts +3 -3
- package/esm/cli/commands/build/handler.d.ts.map +1 -1
- package/esm/cli/commands/build/handler.js +5 -2
- package/esm/cli/commands/push/command-help.js +1 -1
- package/esm/cli/commands/push/command.d.ts +2 -1
- package/esm/cli/commands/push/command.d.ts.map +1 -1
- package/esm/cli/commands/push/command.js +18 -5
- package/esm/cli/mcp/tools/build-tool.d.ts +1 -1
- package/esm/cli/mcp/tools/build-tool.d.ts.map +1 -1
- package/esm/cli/mcp/tools/build-tool.js +2 -2
- package/esm/deno.js +1 -1
- package/esm/src/build/production-build/build/build-initializer.d.ts.map +1 -1
- package/esm/src/build/production-build/build/build-initializer.js +4 -1
- package/esm/src/build/production-build/build/build-orchestrator.d.ts +8 -0
- package/esm/src/build/production-build/build/build-orchestrator.d.ts.map +1 -1
- package/esm/src/build/production-build/build/build-orchestrator.js +27 -1
- package/esm/src/config/schemas/config.schema.d.ts +12 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +6 -0
- package/esm/src/internal-agents/run-stream.d.ts.map +1 -1
- package/esm/src/internal-agents/run-stream.js +2 -3
- package/esm/src/registry/project-scoped-registry-manager.d.ts +7 -0
- package/esm/src/registry/project-scoped-registry-manager.d.ts.map +1 -1
- package/esm/src/registry/project-scoped-registry-manager.js +24 -0
- package/esm/src/skill/registry.d.ts +2 -0
- package/esm/src/skill/registry.d.ts.map +1 -1
- package/esm/src/skill/registry.js +4 -0
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +5 -5
|
@@ -19,11 +19,11 @@ export const buildHelp = {
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
flag: "--ssg",
|
|
22
|
-
description: "Enable static generation",
|
|
22
|
+
description: "Enable static generation (default; also configurable via build.ssg)",
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
flag: "--no-ssg",
|
|
26
|
-
description: "Disable static generation
|
|
26
|
+
description: "Disable static generation (the build fails if it would emit no pages)",
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
flag: "--include <paths>",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/command.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,gBAAgB;AAChB,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,GAAE,MAAM,OAAO,CAAC,IAAI,CAG9B,GACA,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/command.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI/C,gBAAgB;AAChB,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,GAAE,MAAM,OAAO,CAAC,IAAI,CAG9B,GACA,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFjE"}
|
|
@@ -61,7 +61,9 @@ export function buildCommand(options) {
|
|
|
61
61
|
enableSplitting: options.splitting ?? true,
|
|
62
62
|
enableCompression: options.compress ?? true,
|
|
63
63
|
enablePrefetch: options.prefetch ?? true,
|
|
64
|
-
|
|
64
|
+
// Tri-state: buildProduction resolves an omitted flag against
|
|
65
|
+
// build.ssg in veryfront.config.ts, then defaults to enabled.
|
|
66
|
+
ssg: options.ssg,
|
|
65
67
|
include: options.include,
|
|
66
68
|
exclude: options.exclude,
|
|
67
69
|
dryRun,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bold, cyan, dim, green, red, yellow } from "../../ui/index.js";
|
|
2
2
|
import { cliLogger } from "../../utils/index.js";
|
|
3
3
|
export function displayBuildConfig(options) {
|
|
4
|
-
const { projectDir, outputDir, splitting = true, compress = true, prefetch = true, ssg =
|
|
4
|
+
const { projectDir, outputDir, splitting = true, compress = true, prefetch = true, ssg = true, include, exclude, dryRun = false, } = options;
|
|
5
5
|
cliLogger.info(bold(cyan("\nš Veryfront Production Build\n")));
|
|
6
6
|
cliLogger.info("Starting production build");
|
|
7
7
|
cliLogger.info(yellow("\nBuild Configuration:"));
|
|
@@ -11,7 +11,7 @@ export declare const getBuildArgsSchema: () => import("../../../src/internal-age
|
|
|
11
11
|
compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
12
12
|
noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
13
13
|
prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
14
|
-
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
14
|
+
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean | undefined>;
|
|
15
15
|
noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
16
16
|
include: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
17
17
|
exclude: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
@@ -25,7 +25,7 @@ export declare const BuildArgsSchema: import("../../../src/internal-agents/schem
|
|
|
25
25
|
compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
26
26
|
noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
27
27
|
prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
28
|
-
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
28
|
+
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean | undefined>;
|
|
29
29
|
noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
30
30
|
include: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
31
31
|
exclude: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
@@ -46,7 +46,7 @@ export declare const parseBuildArgs: (args: ParsedArgs) => import("../../shared/
|
|
|
46
46
|
compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
47
47
|
noCompress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
48
48
|
prefetch: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
49
|
-
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
49
|
+
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean | undefined>;
|
|
50
50
|
noSsg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
51
51
|
include: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
52
52
|
exclude: import("../../../src/internal-agents/schema.js").Schema<string[] | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAQ3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;GAe9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;GAAiC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;GAazB,CAAC;AAEH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/build/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAQ3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;GAe9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;GAAiC,CAAC;AAE9D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;GAazB,CAAC;AAEH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BxE"}
|
|
@@ -18,7 +18,7 @@ export const getBuildArgsSchema = defineSchema((v) => v.object({
|
|
|
18
18
|
compress: v.boolean().default(true),
|
|
19
19
|
noCompress: v.boolean().default(false),
|
|
20
20
|
prefetch: v.boolean().default(true),
|
|
21
|
-
ssg: v.boolean().
|
|
21
|
+
ssg: v.boolean().optional(),
|
|
22
22
|
noSsg: v.boolean().default(false),
|
|
23
23
|
include: v.array(v.string()).optional(),
|
|
24
24
|
exclude: v.array(v.string()).optional(),
|
|
@@ -60,7 +60,10 @@ export async function handleBuildCommand(args) {
|
|
|
60
60
|
splitting: opts.split && !opts.noSplit,
|
|
61
61
|
compress: opts.compress && !opts.noCompress,
|
|
62
62
|
prefetch: opts.prefetch,
|
|
63
|
-
|
|
63
|
+
// Tri-state: explicit --no-ssg wins, an explicit --ssg / --ssg=false is
|
|
64
|
+
// passed through, and an omitted flag stays undefined so the build can
|
|
65
|
+
// fall back to build.ssg from veryfront.config.ts (and its default).
|
|
66
|
+
ssg: opts.noSsg ? false : opts.ssg,
|
|
64
67
|
include: opts.include,
|
|
65
68
|
exclude: opts.exclude,
|
|
66
69
|
dryRun: opts.dryRun,
|
|
@@ -43,7 +43,7 @@ export const pushHelp = {
|
|
|
43
43
|
"Without --branch, creates a timestamped branch that you can review in Studio",
|
|
44
44
|
"Use --branch main to update the existing Veryfront main branch",
|
|
45
45
|
"Uploads supported text source files using their relative paths",
|
|
46
|
-
".vfignore
|
|
46
|
+
".vfignore excludes matching local files and preserves matching remote files",
|
|
47
47
|
"--dry-run never creates a project or branch, changes remote files, or writes a Push receipt",
|
|
48
48
|
"If an upload fails, Push does not delete remote files",
|
|
49
49
|
],
|
|
@@ -86,6 +86,7 @@ interface BranchListItem {
|
|
|
86
86
|
}
|
|
87
87
|
interface RemoteFile {
|
|
88
88
|
path: string;
|
|
89
|
+
content?: string;
|
|
89
90
|
}
|
|
90
91
|
export declare function scanLocalFiles(projectDir: string, ignoreChecker: IgnoreChecker): Promise<UploadOp[]>;
|
|
91
92
|
export declare function capturePushSourceSnapshot(projectDir: string, ignoreChecker: IgnoreChecker): Promise<PushSourceSnapshot>;
|
|
@@ -105,7 +106,7 @@ export declare function deleteFiles(client: ApiClient, projectSlug: string, bran
|
|
|
105
106
|
deleted: number;
|
|
106
107
|
failed: number;
|
|
107
108
|
}>;
|
|
108
|
-
export declare function recordPushReceipt(client: ApiClient, config: ResolvedConfig, projectDir: string, branch: string, snapshot: PushSourceSnapshot, ignoreChecker: IgnoreChecker): Promise<void>;
|
|
109
|
+
export declare function recordPushReceipt(client: ApiClient, config: ResolvedConfig, projectDir: string, branch: string, snapshot: PushSourceSnapshot, ignoreChecker: IgnoreChecker, pushedSourceDigest?: string): Promise<void>;
|
|
109
110
|
export declare function pushCommand(options?: PushOptions): Promise<void>;
|
|
110
111
|
export {};
|
|
111
112
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/push/command.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAK3E,OAAO,EACL,KAAK,SAAS,EAId,KAAK,cAAc,EAEpB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAAuB,KAAK,aAAa,EAAsB,MAAM,sBAAsB,CAAC;AACnG,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGjE,OAAO,EAKL,KAAK,SAAS,EAIf,MAAM,uCAAuC,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;;GAS7B,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;;;;;;;GAOxB,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AASD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/push/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -258,7 +258,7 @@ function buildSummaryParts(ops, toDelete) {
|
|
|
258
258
|
function buildConfirmParts(ops, toDelete) {
|
|
259
259
|
return buildOpParts(ops, toDelete, (count) => `upload ${count}`, (count) => `delete ${count}`);
|
|
260
260
|
}
|
|
261
|
-
export async function recordPushReceipt(client, config, projectDir, branch, snapshot, ignoreChecker) {
|
|
261
|
+
export async function recordPushReceipt(client, config, projectDir, branch, snapshot, ignoreChecker, pushedSourceDigest = snapshot.sourceDigest) {
|
|
262
262
|
const project = await getProjectTarget(client, config.projectSlug);
|
|
263
263
|
let currentSnapshot;
|
|
264
264
|
try {
|
|
@@ -276,7 +276,7 @@ export async function recordPushReceipt(client, config, projectDir, branch, snap
|
|
|
276
276
|
projectSlug: project.slug,
|
|
277
277
|
branch,
|
|
278
278
|
commitSha: snapshot.gitSource.commitSha,
|
|
279
|
-
sourceDigest:
|
|
279
|
+
sourceDigest: pushedSourceDigest,
|
|
280
280
|
clean: snapshot.gitSource.clean,
|
|
281
281
|
});
|
|
282
282
|
}
|
|
@@ -372,13 +372,26 @@ export function pushCommand(options = {}) {
|
|
|
372
372
|
remoteFiles: mainFiles,
|
|
373
373
|
source: { type: "main" },
|
|
374
374
|
};
|
|
375
|
-
const toDelete = target.remoteFiles
|
|
375
|
+
const toDelete = target.remoteFiles
|
|
376
|
+
.map((file) => file.path)
|
|
377
|
+
.filter((path) => !ignoreChecker.isIgnored(path) && !localPaths.has(path));
|
|
378
|
+
const preservedRemoteFiles = target.remoteFiles
|
|
379
|
+
.filter((file) => ignoreChecker.isIgnored(file.path))
|
|
380
|
+
.map((file) => {
|
|
381
|
+
if (typeof file.content !== "string") {
|
|
382
|
+
throw new Error(`Veryfront returned invalid content for ignored file "${file.path}".`);
|
|
383
|
+
}
|
|
384
|
+
return { path: file.path, content: file.content };
|
|
385
|
+
});
|
|
386
|
+
const pushedSourceDigest = preservedRemoteFiles.length === 0
|
|
387
|
+
? sourceSnapshot.sourceDigest
|
|
388
|
+
: await computeSourceDigest([...ops, ...preservedRemoteFiles]);
|
|
376
389
|
if (ops.length === 0 && toDelete.length === 0) {
|
|
377
390
|
try {
|
|
378
391
|
if (!dryRun) {
|
|
379
392
|
await clearPushReceipt(projectDir);
|
|
380
393
|
spinner.update("Verifying push target...");
|
|
381
|
-
await recordPushReceipt(client, config, projectDir, branchName, sourceSnapshot, ignoreChecker);
|
|
394
|
+
await recordPushReceipt(client, config, projectDir, branchName, sourceSnapshot, ignoreChecker, pushedSourceDigest);
|
|
382
395
|
}
|
|
383
396
|
}
|
|
384
397
|
finally {
|
|
@@ -458,7 +471,7 @@ export function pushCommand(options = {}) {
|
|
|
458
471
|
}
|
|
459
472
|
spinner.update("Verifying push target...");
|
|
460
473
|
try {
|
|
461
|
-
await recordPushReceipt(client, config, projectDir, branchName, sourceSnapshot, ignoreChecker);
|
|
474
|
+
await recordPushReceipt(client, config, projectDir, branchName, sourceSnapshot, ignoreChecker, pushedSourceDigest);
|
|
462
475
|
}
|
|
463
476
|
finally {
|
|
464
477
|
spinner.stop();
|
|
@@ -7,7 +7,7 @@ declare const getBuildInput: () => import("../../../src/internal-agents/schema.j
|
|
|
7
7
|
outputDir: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
|
|
8
8
|
splitting: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
9
9
|
compress: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
10
|
-
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
10
|
+
ssg: import("../../../src/internal-agents/schema.js").Schema<boolean | undefined>;
|
|
11
11
|
dryRun: import("../../../src/internal-agents/schema.js").Schema<boolean>;
|
|
12
12
|
}>>;
|
|
13
13
|
type BuildInput = InferSchema<ReturnType<typeof getBuildInput>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-tool.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/build-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAK3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,QAAA,MAAM,aAAa;;;;;;
|
|
1
|
+
{"version":3,"file":"build-tool.d.ts","sourceRoot":"","sources":["../../../../src/cli/mcp/tools/build-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAK3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,QAAA,MAAM,aAAa;;;;;;GA6BlB,CAAC;AAGF,KAAK,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC;AAEhE,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,WAAW,CAyDpD,CAAC"}
|
|
@@ -27,8 +27,8 @@ const getBuildInput = defineSchema((v) => v.object({
|
|
|
27
27
|
ssg: v
|
|
28
28
|
.boolean()
|
|
29
29
|
.optional()
|
|
30
|
-
.
|
|
31
|
-
|
|
30
|
+
.describe("Enable static site generation. Defaults to build.ssg from veryfront.config.ts, " +
|
|
31
|
+
"then true; disabling it produces no pages."),
|
|
32
32
|
dryRun: v
|
|
33
33
|
.boolean()
|
|
34
34
|
.optional()
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-initializer.d.ts","sourceRoot":"","sources":["../../../../../src/src/build/production-build/build/build-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBzF;AAaD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"build-initializer.d.ts","sourceRoot":"","sources":["../../../../../src/src/build/production-build/build/build-initializer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;CACnB;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAgBzF;AAaD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAezE"}
|
|
@@ -35,7 +35,10 @@ export function normalizeBuildOptions(options) {
|
|
|
35
35
|
enableSplitting: options.enableSplitting ?? true,
|
|
36
36
|
enableCompression: options.enableCompression ?? true,
|
|
37
37
|
enablePrefetch: options.enablePrefetch ?? true,
|
|
38
|
-
|
|
38
|
+
// Deliberately left undefined when the caller did not choose: the
|
|
39
|
+
// orchestrator resolves it against build.ssg from veryfront.config.ts
|
|
40
|
+
// (loaded in initializeBuildContext), then defaults to enabled.
|
|
41
|
+
ssg: options.ssg,
|
|
39
42
|
include: options.include,
|
|
40
43
|
exclude: options.exclude,
|
|
41
44
|
dryRun: options.dryRun ?? false,
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import type { BuildOptions, BuildStats } from "../../../server/build-types.js";
|
|
2
2
|
import { cleanupCaches, cleanupRenderer, logBuildCompletion } from "./build-cleanup.js";
|
|
3
|
+
import { type CollectedRoutes } from "./route-collector.js";
|
|
3
4
|
export declare function buildProduction(options: BuildOptions): Promise<BuildStats>;
|
|
5
|
+
/**
|
|
6
|
+
* A build that emits zero pages and zero chunks is not a deployable artifact,
|
|
7
|
+
* so reporting it as a success lets broken releases through (an empty dist/
|
|
8
|
+
* deployed behind a "Build completed successfully" message serves only 404s).
|
|
9
|
+
* Fail the build instead, with a message that points at the actual cause.
|
|
10
|
+
*/
|
|
11
|
+
export declare function assertBuildProducedOutput(stats: BuildStats, routes: CollectedRoutes, ssg: boolean, dryRun: boolean): void;
|
|
4
12
|
export { cleanupCaches, cleanupRenderer, logBuildCompletion };
|
|
5
13
|
//# sourceMappingURL=build-orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/src/build/production-build/build/build-orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG/E,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"build-orchestrator.d.ts","sourceRoot":"","sources":["../../../../../src/src/build/production-build/build/build-orchestrator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG/E,OAAO,EACL,aAAa,EACb,eAAe,EACf,kBAAkB,EAEnB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAoB,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9E,wBAAgB,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAiJ1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,OAAO,GACd,IAAI,CAcN;AAED,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -35,7 +35,12 @@ export function buildProduction(options) {
|
|
|
35
35
|
const enableSplitting = normalizedOptions.enableSplitting ?? true;
|
|
36
36
|
const enablePrefetch = normalizedOptions.enablePrefetch ?? true;
|
|
37
37
|
const enableCompression = normalizedOptions.enableCompression ?? true;
|
|
38
|
-
|
|
38
|
+
// Explicit caller option > build.ssg in veryfront.config.ts > enabled.
|
|
39
|
+
// Resolved here (after initializeBuildContext loads the config) so
|
|
40
|
+
// every entry point ā CLI, MCP tool, direct API ā honors the config.
|
|
41
|
+
// Default to SSG because a non-SSG build collects no routes and
|
|
42
|
+
// therefore emits no pages, which is never a servable artifact.
|
|
43
|
+
const ssg = normalizedOptions.ssg ?? context.config.build?.ssg ?? true;
|
|
39
44
|
await withSpan("build.setupDirectories", () => setupBuildDirectories(context.adapter, outputDir, dryRun), {});
|
|
40
45
|
const releaseAssetManifest = await withSpan("build.localReleaseAssets", () => generateLocalReleaseAssetManifest({
|
|
41
46
|
adapter: context.adapter,
|
|
@@ -78,6 +83,7 @@ export function buildProduction(options) {
|
|
|
78
83
|
releaseAssetManifest,
|
|
79
84
|
}), {});
|
|
80
85
|
context.stats.duration = Date.now() - startTime;
|
|
86
|
+
assertBuildProducedOutput(context.stats, routes, ssg, dryRun);
|
|
81
87
|
logBuildCompletion(context.stats);
|
|
82
88
|
return context.stats;
|
|
83
89
|
}
|
|
@@ -86,4 +92,24 @@ export function buildProduction(options) {
|
|
|
86
92
|
}
|
|
87
93
|
}, { "build.projectDir": options.projectDir });
|
|
88
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* A build that emits zero pages and zero chunks is not a deployable artifact,
|
|
97
|
+
* so reporting it as a success lets broken releases through (an empty dist/
|
|
98
|
+
* deployed behind a "Build completed successfully" message serves only 404s).
|
|
99
|
+
* Fail the build instead, with a message that points at the actual cause.
|
|
100
|
+
*/
|
|
101
|
+
export function assertBuildProducedOutput(stats, routes, ssg, dryRun) {
|
|
102
|
+
if (dryRun || stats.pages > 0 || stats.chunks > 0)
|
|
103
|
+
return;
|
|
104
|
+
const routeCount = routes.pages.length + routes.app.length;
|
|
105
|
+
const message = !ssg
|
|
106
|
+
? "Build produced no pages because static site generation is disabled. " +
|
|
107
|
+
"Remove --no-ssg (or set `build: { ssg: true }` in veryfront.config.ts) and rebuild."
|
|
108
|
+
: routeCount === 0
|
|
109
|
+
? "Build produced no pages: no routes were found. " +
|
|
110
|
+
"Add a page (e.g. pages/index.tsx or app/page.tsx), or loosen the --include/--exclude filters."
|
|
111
|
+
: `Build produced no pages even though ${routeCount} route(s) were collected. ` +
|
|
112
|
+
"Check the build log for per-route errors.";
|
|
113
|
+
throw toError(createError({ type: "build", message }));
|
|
114
|
+
}
|
|
89
115
|
export { cleanupCaches, cleanupRenderer, logBuildCompletion };
|
|
@@ -30,6 +30,12 @@ export declare const getVeryfrontConfigSchema: () => import("../../internal-agen
|
|
|
30
30
|
build: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
31
31
|
outDir: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
32
32
|
trailingSlash: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate static HTML for all routes during `veryfront build`.
|
|
35
|
+
* Defaults to true; disabling it produces no pages, so only turn it
|
|
36
|
+
* off for builds that intentionally skip static generation.
|
|
37
|
+
*/
|
|
38
|
+
ssg: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
33
39
|
esbuild: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
34
40
|
wasmURL: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
35
41
|
worker: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
@@ -454,6 +460,12 @@ export declare const veryfrontConfigSchema: import("../../internal-agents/schema
|
|
|
454
460
|
build: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
455
461
|
outDir: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
456
462
|
trailingSlash: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
463
|
+
/**
|
|
464
|
+
* Generate static HTML for all routes during `veryfront build`.
|
|
465
|
+
* Defaults to true; disabling it produces no pages, so only turn it
|
|
466
|
+
* off for builds that intentionally skip static generation.
|
|
467
|
+
*/
|
|
468
|
+
ssg: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
457
469
|
esbuild: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
|
|
458
470
|
wasmURL: import("../../internal-agents/schema.js").Schema<string | undefined>;
|
|
459
471
|
worker: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAGhF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAkCzF,eAAO,MAAM,wBAAwB;;;;;QAQ3B,2GAA2G;;;;;;;;;;;;;;;IAuB/G,wFAAwF;;IAExF,0FAA0F
|
|
1
|
+
{"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,12 @@ export const getVeryfrontConfigSchema = defineSchema((v) => v
|
|
|
59
59
|
.object({
|
|
60
60
|
outDir: v.string().optional(),
|
|
61
61
|
trailingSlash: v.boolean().optional(),
|
|
62
|
+
/**
|
|
63
|
+
* Generate static HTML for all routes during `veryfront build`.
|
|
64
|
+
* Defaults to true; disabling it produces no pages, so only turn it
|
|
65
|
+
* off for builds that intentionally skip static generation.
|
|
66
|
+
*/
|
|
67
|
+
ssg: v.boolean().optional(),
|
|
62
68
|
esbuild: v
|
|
63
69
|
.object({
|
|
64
70
|
wasmURL: v.string().url().optional(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAGL,KAAK,IAAI,EAGV,MAAM,kBAAkB,CAAC;AAgB1B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,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,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,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;;cAmFrD;
|
|
1
|
+
{"version":3,"file":"run-stream.d.ts","sourceRoot":"","sources":["../../../src/src/internal-agents/run-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EACV,KAAK,YAAY,IAAI,OAAO,EAC5B,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAC;AAc3B,OAAO,KAAK,EACV,+BAA+B,EAC/B,8BAA8B,EAC/B,MAAM,qBAAqB,CAAC;AAS7B,OAAO,EAGL,KAAK,IAAI,EAGV,MAAM,kBAAkB,CAAC;AAgB1B,OAAO,EAA0B,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAE3F,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,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,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;;cAmFrD;AAiXD,wBAAsB,gCAAgC,CACpD,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,+BAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,CAqdnB"}
|
|
@@ -289,12 +289,11 @@ function applyRuntimeToolAllowlist(mergedTools, toolAllowlist, agent) {
|
|
|
289
289
|
// rather than silently skipping enforcement.
|
|
290
290
|
return {};
|
|
291
291
|
}
|
|
292
|
-
const
|
|
293
|
-
const availableSkillIds = visibleSkills.size > 0 ? [...visibleSkills.keys()] : undefined;
|
|
292
|
+
const hasVisibleSkills = skillRegistry.hasVisibleSkills({ agentId: agent.id });
|
|
294
293
|
const allowedToolNames = resolveHostedRuntimeAllowedToolNames({
|
|
295
294
|
allowedToolNames: toolAllowlist,
|
|
296
295
|
localToolNames: Object.keys(mergedTools),
|
|
297
|
-
...(
|
|
296
|
+
...(hasVisibleSkills ? { availableSkillIds: ["*"] } : {}),
|
|
298
297
|
});
|
|
299
298
|
if (!allowedToolNames) {
|
|
300
299
|
return mergedTools;
|
|
@@ -95,6 +95,13 @@ export declare class ProjectScopedRegistryManager<T> {
|
|
|
95
95
|
* Check if item exists for the current project.
|
|
96
96
|
*/
|
|
97
97
|
has(id: string): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Test effective items without materializing the merged registry.
|
|
100
|
+
*
|
|
101
|
+
* Project items shadow shared items with the same id, matching `getAll()`.
|
|
102
|
+
* Iteration stops after the first match.
|
|
103
|
+
*/
|
|
104
|
+
some(predicate: (item: T, id: string) => boolean): boolean;
|
|
98
105
|
/**
|
|
99
106
|
* Get all IDs for the current project (includes shared items).
|
|
100
107
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-scoped-registry-manager.d.ts","sourceRoot":"","sources":["../../../src/src/registry/project-scoped-registry-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA4BH,UAAU,mCAAmC,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,oBAAoB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;CACnE;AAsCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyCpF;AAED;;;;GAIG;AACH,qBAAa,4BAA4B,CAAC,CAAC;IAMvC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,mBAAmB,CAA8D;gBAG/E,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,mCAAmC,CAAC,CAAC,CAAM;IAG9D,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,aAAa;IAqBrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA0E3B,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAM1B,+EAA+E;IAC/E,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAoBnC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAYzC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKjC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAUxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAe3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAoBhB;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAeF"}
|
|
1
|
+
{"version":3,"file":"project-scoped-registry-manager.d.ts","sourceRoot":"","sources":["../../../src/src/registry/project-scoped-registry-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AA4BH,UAAU,mCAAmC,CAAC,CAAC;IAC7C,6EAA6E;IAC7E,oBAAoB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;CACnE;AAsCD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyCpF;AAED;;;;GAIG;AACH,qBAAa,4BAA4B,CAAC,CAAC;IAMvC,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,iBAAiB,CAAqC;IAC9D,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,mBAAmB,CAA8D;gBAG/E,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,mCAAmC,CAAC,CAAC,CAAM;IAG9D,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,aAAa;IAqBrB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAIzB,qEAAqE;IACrE,OAAO,CAAC,mBAAmB;IA0E3B,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAM1B,+EAA+E;IAC/E,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAoBnC;;;OAGG;IACH,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAYzC;;;OAGG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAK9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAKjC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAMxB;;;;;OAKG;IACH,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO;IAiB1D;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAOrB;;OAEG;IACH,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAUxB;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAe3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAWb;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAyBrC;;OAEG;IACH,QAAQ,IAAI,IAAI;IAoBhB;;OAEG;IACH,QAAQ,IAAI;QACV,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,mBAAmB,EAAE,MAAM,CAAC;KAC7B;CAeF"}
|
|
@@ -298,6 +298,30 @@ export class ProjectScopedRegistryManager {
|
|
|
298
298
|
return (this.getActiveScopeRegistry(scopeId)?.has(id) ?? false) ||
|
|
299
299
|
this.sharedRegistry.has(id);
|
|
300
300
|
}
|
|
301
|
+
/**
|
|
302
|
+
* Test effective items without materializing the merged registry.
|
|
303
|
+
*
|
|
304
|
+
* Project items shadow shared items with the same id, matching `getAll()`.
|
|
305
|
+
* Iteration stops after the first match.
|
|
306
|
+
*/
|
|
307
|
+
some(predicate) {
|
|
308
|
+
const scopeId = this.getCurrentScopeId();
|
|
309
|
+
const projectRegistry = this.getActiveScopeRegistry(scopeId);
|
|
310
|
+
for (const [id, sharedItem] of this.sharedRegistry) {
|
|
311
|
+
const item = projectRegistry?.has(id) ? projectRegistry.get(id) : sharedItem;
|
|
312
|
+
if (predicate(item, id))
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
if (!projectRegistry)
|
|
316
|
+
return false;
|
|
317
|
+
for (const [id, item] of projectRegistry) {
|
|
318
|
+
if (this.sharedRegistry.has(id))
|
|
319
|
+
continue;
|
|
320
|
+
if (predicate(item, id))
|
|
321
|
+
return true;
|
|
322
|
+
}
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
301
325
|
/**
|
|
302
326
|
* Get all IDs for the current project (includes shared items).
|
|
303
327
|
*/
|
|
@@ -42,6 +42,8 @@ declare class SkillRegistryClass extends ScopedRegistryFacade<Skill> {
|
|
|
42
42
|
resolveVisibleSkill(requested: string, scope?: AgentCapabilityScope): Skill | undefined;
|
|
43
43
|
/** Ids of every skill visible to the caller (for manifests and error messages). */
|
|
44
44
|
getVisibleSkillIds(scope?: AgentCapabilityScope): string[];
|
|
45
|
+
/** Whether at least one skill is visible without materializing a catalog. */
|
|
46
|
+
hasVisibleSkills(scope?: AgentCapabilityScope): boolean;
|
|
45
47
|
}
|
|
46
48
|
export declare const skillRegistry: SkillRegistryClass;
|
|
47
49
|
export declare function registerSkill(id: string, skill: Skill): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/src/skill/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAK7E,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAEpF;AAED,cAAM,kBAAmB,SAAQ,oBAAoB,CAAC,KAAK,CAAC;IAC1D;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,YAAY,EAAE,IAAI,GAAG,MAAM,EAAE,EAC7B,KAAK,CAAC,EAAE,oBAAoB,GAC3B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAqBrB;;;OAGG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,KAAK,GAAG,SAAS;IAgBvF,mFAAmF;IACnF,kBAAkB,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/src/skill/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAK7E,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAEpF;AAED,cAAM,kBAAmB,SAAQ,oBAAoB,CAAC,KAAK,CAAC;IAC1D;;;;;;;;;;;;OAYG;IACH,eAAe,CACb,YAAY,EAAE,IAAI,GAAG,MAAM,EAAE,EAC7B,KAAK,CAAC,EAAE,oBAAoB,GAC3B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;IAqBrB;;;OAGG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,oBAAoB,GAAG,KAAK,GAAG,SAAS;IAgBvF,mFAAmF;IACnF,kBAAkB,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,MAAM,EAAE;IAU1D,6EAA6E;IAC7E,gBAAgB,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,OAAO;CAGxD;AAED,eAAO,MAAM,aAAa,oBAAuC,CAAC;AAElE,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAE5D;AAED,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEtD;AAED,wBAAgB,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAEjD"}
|
|
@@ -78,6 +78,10 @@ class SkillRegistryClass extends ScopedRegistryFacade {
|
|
|
78
78
|
}
|
|
79
79
|
return ids;
|
|
80
80
|
}
|
|
81
|
+
/** Whether at least one skill is visible without materializing a catalog. */
|
|
82
|
+
hasVisibleSkills(scope) {
|
|
83
|
+
return this.manager.some((skill) => isSkillVisibleTo(skill, scope));
|
|
84
|
+
}
|
|
81
85
|
}
|
|
82
86
|
export const skillRegistry = new SkillRegistryClass(skillManager);
|
|
83
87
|
export function registerSkill(id, skill) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veryfront",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1105",
|
|
4
4
|
"description": "The simplest way to build AI-powered apps",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -328,10 +328,10 @@
|
|
|
328
328
|
"@types/react": "19.2.14",
|
|
329
329
|
"@types/react-dom": "19.2.3",
|
|
330
330
|
"ws": "8.21.0",
|
|
331
|
-
"@veryfront/ext-bundler-esbuild": "0.1.
|
|
332
|
-
"@veryfront/ext-content-mdx": "0.1.
|
|
333
|
-
"@veryfront/ext-css-tailwind": "0.1.
|
|
334
|
-
"@veryfront/ext-parser-babel": "0.1.
|
|
331
|
+
"@veryfront/ext-bundler-esbuild": "0.1.1105",
|
|
332
|
+
"@veryfront/ext-content-mdx": "0.1.1105",
|
|
333
|
+
"@veryfront/ext-css-tailwind": "0.1.1105",
|
|
334
|
+
"@veryfront/ext-parser-babel": "0.1.1105"
|
|
335
335
|
},
|
|
336
336
|
"devDependencies": {
|
|
337
337
|
"@types/node": "20.9.0"
|