@velarscript/cli 0.20.1 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +10 -0
  2. package/dist/application-entry.d.ts +43 -0
  3. package/dist/application-entry.d.ts.map +1 -1
  4. package/dist/application-entry.js +60 -0
  5. package/dist/application-entry.js.map +1 -1
  6. package/dist/browser-test-runner.js +40 -9
  7. package/dist/browser-test-runner.js.map +1 -1
  8. package/dist/bundled-extension-registry.d.ts +2 -0
  9. package/dist/bundled-extension-registry.d.ts.map +1 -1
  10. package/dist/bundled-extension-registry.js.map +1 -1
  11. package/dist/cli.js +139 -6
  12. package/dist/cli.js.map +1 -1
  13. package/dist/config.d.ts +20 -0
  14. package/dist/config.d.ts.map +1 -1
  15. package/dist/config.js +61 -3
  16. package/dist/config.js.map +1 -1
  17. package/dist/dev-server.d.ts.map +1 -1
  18. package/dist/dev-server.js +7 -0
  19. package/dist/dev-server.js.map +1 -1
  20. package/dist/language-server.d.ts.map +1 -1
  21. package/dist/language-server.js +72 -22
  22. package/dist/language-server.js.map +1 -1
  23. package/dist/library-artifact.js +10 -2
  24. package/dist/library-artifact.js.map +1 -1
  25. package/dist/logic-graph-output.d.ts +30 -0
  26. package/dist/logic-graph-output.d.ts.map +1 -0
  27. package/dist/logic-graph-output.js +129 -0
  28. package/dist/logic-graph-output.js.map +1 -0
  29. package/dist/mechanical-fixer.d.ts +8 -9
  30. package/dist/mechanical-fixer.d.ts.map +1 -1
  31. package/dist/mechanical-fixer.js +74 -10
  32. package/dist/mechanical-fixer.js.map +1 -1
  33. package/dist/ownership-graph.d.ts +27 -0
  34. package/dist/ownership-graph.d.ts.map +1 -1
  35. package/dist/ownership-graph.js +176 -6
  36. package/dist/ownership-graph.js.map +1 -1
  37. package/dist/project-check.d.ts +34 -0
  38. package/dist/project-check.d.ts.map +1 -1
  39. package/dist/project-check.js +57 -20
  40. package/dist/project-check.js.map +1 -1
  41. package/dist/project.d.ts.map +1 -1
  42. package/dist/project.js +6 -1
  43. package/dist/project.js.map +1 -1
  44. package/dist/version.d.ts +1 -1
  45. package/dist/version.js +1 -1
  46. package/package.json +8 -8
  47. package/skill/ai-skill-desktop.md +281 -6
  48. package/skill/ai-skill-server.md +1 -1
  49. package/skill/ai-skill.md +19 -6
@@ -4,15 +4,72 @@ import { projectImportKey } from "./project.js";
4
4
  import { byCodeUnit } from "./stable-order.js";
5
5
  const DEFAULT_MAXIMUM_NODES = 10_000;
6
6
  const DEFAULT_MAXIMUM_EDGES = 20_000;
7
+ const moduleContentRevisions = new WeakMap();
8
+ function spansEqual(left, right) {
9
+ return left === right || (left !== undefined && right !== undefined
10
+ && left.start === right.start && left.end === right.end);
11
+ }
12
+ function nodesEqual(left, right) {
13
+ return left.id === right.id
14
+ && left.kind === right.kind
15
+ && left.name === right.name
16
+ && left.documentation === right.documentation
17
+ && left.path === right.path
18
+ && spansEqual(left.span, right.span)
19
+ && spansEqual(left.selectionSpan, right.selectionSpan)
20
+ && left.type === right.type
21
+ && left.exported === right.exported
22
+ && left.mutable === right.mutable;
23
+ }
24
+ function edgesEqual(left, right) {
25
+ return left.id === right.id
26
+ && left.kind === right.kind
27
+ && left.from === right.from
28
+ && left.to === right.to
29
+ && left.path === right.path
30
+ && spansEqual(left.span, right.span);
31
+ }
32
+ /** Produces a transport patch from two complete graphs without interpreting source text. */
33
+ export function ownershipGraphDelta(previous, current) {
34
+ const previousNodes = new Map(previous.nodes.map((node) => [node.id, node]));
35
+ const currentNodeIds = new Set(current.nodes.map((node) => node.id));
36
+ const previousEdges = new Map(previous.edges.map((edge) => [edge.id, edge]));
37
+ const currentEdgeIds = new Set(current.edges.map((edge) => edge.id));
38
+ return {
39
+ baseRevision: previous.revision,
40
+ revision: current.revision,
41
+ nodes: current.nodes.filter((node) => {
42
+ const prior = previousNodes.get(node.id);
43
+ return prior === undefined || !nodesEqual(prior, node);
44
+ }),
45
+ edges: current.edges.filter((edge) => {
46
+ const prior = previousEdges.get(edge.id);
47
+ return prior === undefined || !edgesEqual(prior, edge);
48
+ }),
49
+ removedNodeIds: previous.nodes.filter((node) => !currentNodeIds.has(node.id)).map((node) => node.id),
50
+ removedEdgeIds: previous.edges.filter((edge) => !currentEdgeIds.has(edge.id)).map((edge) => edge.id),
51
+ };
52
+ }
7
53
  function shortHash(value) {
8
54
  return createHash("sha256").update(value).digest("hex").slice(0, 24);
9
55
  }
56
+ function moduleContentRevision(module) {
57
+ const cached = moduleContentRevisions.get(module.result);
58
+ if (cached !== undefined)
59
+ return cached;
60
+ const revision = createHash("sha256").update(module.result.source.text).digest("hex");
61
+ moduleContentRevisions.set(module.result, revision);
62
+ return revision;
63
+ }
10
64
  export function ownershipGraphRevision(project) {
11
65
  const hash = createHash("sha256");
12
66
  for (const module of [...project.modules].sort((left, right) => byCodeUnit(left.inputPath, right.inputPath))) {
13
67
  hash.update(relative(project.projectRoot, module.inputPath));
14
68
  hash.update("\0");
15
- hash.update(module.result.source.text);
69
+ // Incremental project compilation preserves the result object for every
70
+ // unaffected module. Cache its content digest so one edit does not make
71
+ // revision calculation scan every source byte in the project again.
72
+ hash.update(moduleContentRevision(module));
16
73
  hash.update("\0");
17
74
  }
18
75
  for (const extension of project.compilerExtensions)
@@ -157,7 +214,7 @@ function importedCapabilityBySymbol(module) {
157
214
  function edgeIdentity(kind, from, to, path, span) {
158
215
  return `edge:${shortHash(`${kind}\0${from}\0${to}\0${path ?? ""}\0${span?.start ?? ""}:${span?.end ?? ""}`)}`;
159
216
  }
160
- export async function buildOwnershipGraph(project, options = {}) {
217
+ async function buildOwnershipGraphScoped(project, options, scope) {
161
218
  const startedAt = performance.now();
162
219
  const maximumNodes = Math.max(1, Math.min(20_000, Math.floor(options.maximumNodes ?? DEFAULT_MAXIMUM_NODES)));
163
220
  const maximumEdges = Math.max(1, Math.min(40_000, Math.floor(options.maximumEdges ?? DEFAULT_MAXIMUM_EDGES)));
@@ -171,6 +228,10 @@ export async function buildOwnershipGraph(project, options = {}) {
171
228
  let skippedNodes = false;
172
229
  let skippedEdges = false;
173
230
  const moduleIds = new Map(project.modules.map((module) => [module.inputPath, moduleIdentity(project, module.inputPath)]));
231
+ const moduleNodeIds = new Set(moduleIds.values());
232
+ const includedModules = scope
233
+ ? project.modules.filter((module) => scope.modulePaths.has(module.inputPath))
234
+ : project.modules;
174
235
  const symbolIds = new Map();
175
236
  const symbolByStableId = new Map();
176
237
  const capabilityIds = new Map();
@@ -205,7 +266,11 @@ export async function buildOwnershipGraph(project, options = {}) {
205
266
  // Asked before the identity is hashed: `uniqueNodes` only grows, so an
206
267
  // edge whose ends are not retained now was never retained, cannot already
207
268
  // be recorded, and would be filtered out of the answer regardless.
208
- if (nodesFinal() && (!uniqueNodes.has(from) || !uniqueNodes.has(to))) {
269
+ const retainedExternalModule = scope?.retainExternalModuleEdges === true
270
+ && kind === "imports"
271
+ && uniqueNodes.has(from)
272
+ && moduleNodeIds.has(to);
273
+ if (nodesFinal() && (!uniqueNodes.has(from) || !uniqueNodes.has(to)) && !retainedExternalModule) {
209
274
  skippedEdges = true;
210
275
  return;
211
276
  }
@@ -223,7 +288,7 @@ export async function buildOwnershipGraph(project, options = {}) {
223
288
  ...(span === undefined ? {} : { span }),
224
289
  });
225
290
  };
226
- for (const module of project.modules) {
291
+ for (const module of includedModules) {
227
292
  await checkpoint();
228
293
  addNode({
229
294
  id: moduleIds.get(module.inputPath),
@@ -252,6 +317,7 @@ export async function buildOwnershipGraph(project, options = {}) {
252
317
  id,
253
318
  kind: symbolKind(symbol),
254
319
  name: symbol.name,
320
+ ...(symbol.documentation ? { documentation: symbol.documentation } : {}),
255
321
  path: symbol.path,
256
322
  span: symbol.span,
257
323
  selectionSpan: symbol.selectionSpan,
@@ -261,7 +327,7 @@ export async function buildOwnershipGraph(project, options = {}) {
261
327
  });
262
328
  }
263
329
  }
264
- for (const module of project.modules) {
330
+ for (const module of includedModules) {
265
331
  await checkpoint();
266
332
  if (exhausted())
267
333
  break;
@@ -350,7 +416,9 @@ export async function buildOwnershipGraph(project, options = {}) {
350
416
  }
351
417
  }
352
418
  const nodes = [...uniqueNodes.values()];
353
- const eligibleEdges = [...uniqueEdges.values()].filter((edge) => uniqueNodes.has(edge.from) && uniqueNodes.has(edge.to));
419
+ const eligibleEdges = [...uniqueEdges.values()].filter((edge) => uniqueNodes.has(edge.from)
420
+ && (uniqueNodes.has(edge.to)
421
+ || (scope?.retainExternalModuleEdges === true && edge.kind === "imports" && moduleNodeIds.has(edge.to))));
354
422
  const edges = eligibleEdges.slice(0, maximumEdges);
355
423
  const limitReached = skippedNodes || skippedEdges || edges.length < uniqueEdges.size;
356
424
  const modulesIncluded = nodes.filter((node) => node.kind === "module").length;
@@ -367,6 +435,108 @@ export async function buildOwnershipGraph(project, options = {}) {
367
435
  },
368
436
  limitReached,
369
437
  durationMs: performance.now() - startedAt,
438
+ activity: {
439
+ strategy: scope ? "affected-modules" : "full",
440
+ modulesVisited: includedModules.length,
441
+ },
442
+ };
443
+ }
444
+ export async function buildOwnershipGraph(project, options = {}) {
445
+ return buildOwnershipGraphScoped(project, options, null);
446
+ }
447
+ /**
448
+ * Reuses graph fragments whose compiler module result was reused by the
449
+ * incremental project session. A bounded/truncated base cannot be patched
450
+ * safely, so that uncommon case deliberately falls back to a full build.
451
+ */
452
+ export async function updateOwnershipGraph(previousGraph, previousProject, project, options = {}) {
453
+ const startedAt = performance.now();
454
+ if (previousProject.projectRoot !== project.projectRoot || previousGraph.limitReached) {
455
+ return buildOwnershipGraph(project, options);
456
+ }
457
+ const previousModules = new Map(previousProject.modules.map((module) => [module.inputPath, module]));
458
+ const currentModules = new Map(project.modules.map((module) => [module.inputPath, module]));
459
+ const changedCurrentPaths = new Set();
460
+ const removedPaths = new Set();
461
+ for (const module of project.modules) {
462
+ const previous = previousModules.get(module.inputPath);
463
+ if (!previous || previous.result !== module.result || previous.relativePath !== module.relativePath) {
464
+ changedCurrentPaths.add(module.inputPath);
465
+ }
466
+ }
467
+ for (const module of previousProject.modules) {
468
+ if (!currentModules.has(module.inputPath))
469
+ removedPaths.add(module.inputPath);
470
+ }
471
+ if (changedCurrentPaths.size === 0 && removedPaths.size === 0) {
472
+ // A compiler-extension configuration change can alter the graph revision
473
+ // even if a host reused every module result object. It is rare and cannot
474
+ // be represented as a module fragment, so retain the hot no-op only when
475
+ // the complete revision also agrees.
476
+ return previousGraph.revision === ownershipGraphRevision(project)
477
+ ? previousGraph
478
+ : buildOwnershipGraph(project, options);
479
+ }
480
+ if (changedCurrentPaths.size > 256
481
+ || (project.modules.length > 8 && changedCurrentPaths.size > project.modules.length * 0.6)) {
482
+ return buildOwnershipGraph(project, options);
483
+ }
484
+ const partial = await buildOwnershipGraphScoped(project, options, {
485
+ modulePaths: changedCurrentPaths,
486
+ retainExternalModuleEdges: true,
487
+ });
488
+ if (partial.limitReached)
489
+ return buildOwnershipGraph(project, options);
490
+ if (options.cancelled?.())
491
+ throw new Error("Ownership graph request cancelled");
492
+ const affectedPaths = new Set([...changedCurrentPaths, ...removedPaths]);
493
+ const replacedNodeIds = new Set(previousGraph.nodes
494
+ .filter((node) => node.path !== undefined && affectedPaths.has(node.path))
495
+ .map((node) => node.id));
496
+ const nodeById = new Map(previousGraph.nodes
497
+ .filter((node) => !replacedNodeIds.has(node.id))
498
+ .map((node) => [node.id, node]));
499
+ for (const node of partial.nodes)
500
+ nodeById.set(node.id, node);
501
+ const partialEdgeIds = new Set(partial.edges.map((edge) => edge.id));
502
+ const removedModuleNodeIds = new Set(previousGraph.nodes
503
+ .filter((node) => node.kind === "module" && node.path !== undefined && removedPaths.has(node.path))
504
+ .map((node) => node.id));
505
+ const edgeById = new Map(previousGraph.edges
506
+ .filter((edge) => !replacedNodeIds.has(edge.from)
507
+ && !removedModuleNodeIds.has(edge.to)
508
+ && !partialEdgeIds.has(edge.id))
509
+ .map((edge) => [edge.id, edge]));
510
+ for (const edge of partial.edges)
511
+ edgeById.set(edge.id, edge);
512
+ let edges = [...edgeById.values()].filter((edge) => nodeById.has(edge.from) && nodeById.has(edge.to));
513
+ const incidentNodeIds = new Set(edges.flatMap((edge) => [edge.from, edge.to]));
514
+ let nodes = [...nodeById.values()].filter((node) => node.kind !== "capability" || incidentNodeIds.has(node.id));
515
+ const maximumNodes = Math.max(1, Math.min(20_000, Math.floor(options.maximumNodes ?? DEFAULT_MAXIMUM_NODES)));
516
+ const maximumEdges = Math.max(1, Math.min(40_000, Math.floor(options.maximumEdges ?? DEFAULT_MAXIMUM_EDGES)));
517
+ if (nodes.length > maximumNodes || edges.length > maximumEdges)
518
+ return buildOwnershipGraph(project, options);
519
+ const retainedNodeIds = new Set(nodes.map((node) => node.id));
520
+ edges = edges.filter((edge) => retainedNodeIds.has(edge.from) && retainedNodeIds.has(edge.to));
521
+ nodes = nodes.slice(0, maximumNodes);
522
+ const modulesIncluded = nodes.filter((node) => node.kind === "module").length;
523
+ return {
524
+ revision: partial.revision,
525
+ nodes,
526
+ edges,
527
+ coverage: {
528
+ modulesTotal: project.modules.length,
529
+ modulesIncluded,
530
+ complete: modulesIncluded === project.modules.length,
531
+ callRelations: "direct-local-callees",
532
+ memberCallRelations: false,
533
+ },
534
+ limitReached: false,
535
+ durationMs: performance.now() - startedAt,
536
+ activity: {
537
+ strategy: "affected-modules",
538
+ modulesVisited: changedCurrentPaths.size,
539
+ },
370
540
  };
371
541
  }
372
542
  //# sourceMappingURL=ownership-graph.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ownership-graph.js","sourceRoot":"","sources":["../src/ownership-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ownership-graph.js","sourceRoot":"","sources":["../src/ownership-graph.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { VelarProjectConfig } from "./config.ts";
2
2
  import { type ProjectResult } from "./project.ts";
3
+ import { type ApplicationEntryMigration } from "./application-entry.ts";
3
4
  /**
4
5
  * One compiled root of a `velar check` run: the project entry first, then every
5
6
  * `*.test.vel` module, then every remaining `.vel` source in the project that
@@ -41,6 +42,39 @@ export declare function checkResolvedProject(config: VelarProjectConfig, input:
41
42
  * reason a build stopped.
42
43
  */
43
44
  export declare function formatCheckOutput(checked: CheckedProject): string;
45
+ /**
46
+ * A refusal the CLI's project layer owns rather than the compiler: a rule about
47
+ * how the *project* is arranged, which no single module's compile can see.
48
+ *
49
+ * `message` is what both commands print, verbatim. `fix` is the provably
50
+ * equivalent rewrite that answers it, where the shape admits one; a finding with
51
+ * no fix is a finding `velar fix` reports and leaves alone.
52
+ */
53
+ export interface ProjectLayerFinding {
54
+ readonly message: string;
55
+ readonly fix: ApplicationEntryMigration | null;
56
+ }
57
+ /**
58
+ * Every project-layer rule, evaluated once, for whichever command asked.
59
+ *
60
+ * This function is the reason `velar fix` cannot answer "0 diagnostics remain"
61
+ * over a tree `velar check` refuses. The fixer reads the compiler's diagnostic
62
+ * channel, and these rules were never on it: an entry missing its `@main` region
63
+ * failed `check` with exit 1 while `fix` reported a clean tree and exited 0 —
64
+ * the F4 falsehood again, from the one channel the F4 wave did not share. Roots
65
+ * were the first half of that sharing (`additionalProjectRoots`); this is the
66
+ * other half, and neither command owns a copy of a rule.
67
+ *
68
+ * Both preconditions are part of the rule set rather than of either caller:
69
+ *
70
+ * - A single-file input names its own scope, exactly as it does for the tree
71
+ * walk. Asking a project-arrangement question about one file answers it
72
+ * about a project the author did not name.
73
+ * - A tree the compiler already refused is not asked. "Does the entry declare
74
+ * `@main`" has no reliable answer over a module that did not parse, and
75
+ * `check` is already refusing for a better reason.
76
+ */
77
+ export declare function projectLayerFindings(config: VelarProjectConfig, input: string | null, project: ProjectResult): readonly ProjectLayerFinding[];
44
78
  /**
45
79
  * Every source a whole-project run treats as a root beyond the entry's own
46
80
  * graph — `*.test.vel` modules and the files nothing imports alike.
@@ -1 +1 @@
1
- {"version":3,"file":"project-check.d.ts","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAKzF;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,cAAc,CAAC,CAoGzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAMjE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIhH;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBxF"}
1
+ {"version":3,"file":"project-check.d.ts","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAyC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAGzF,OAAO,EAA+C,KAAK,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAErH;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,GAAE;IAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GAClD,OAAO,CAAC,cAAc,CAAC,CAyFzB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAMjE;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAChD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,EAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,OAAO,EAAE,aAAa,GACrB,SAAS,mBAAmB,EAAE,CA2BhC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAIhH;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAmBxF"}
@@ -4,7 +4,7 @@ import { formatAdvisory, formatDiagnostic } from "@velarscript/compiler";
4
4
  import { compileProject, compileProjectEntries } from "./project.js";
5
5
  import { MAX_VELAR_PROJECT_MODULES } from "./source-limits.js";
6
6
  import { nodeApplicationConfig } from "./node-application.js";
7
- import { applicationEntry } from "./application-entry.js";
7
+ import { applicationEntry, applicationEntryMigration } from "./application-entry.js";
8
8
  /**
9
9
  * D66 ruling 7A: `velar repro` has to bundle the failure `velar check` reports,
10
10
  * so both commands read the project through this one function. A repro that
@@ -43,25 +43,9 @@ export async function checkResolvedProject(config, input, options = {}) {
43
43
  errors: entryErrors,
44
44
  advisories: project.modules.flatMap((module) => module.result.advisories.map((item) => formatAdvisory(module.result.source, item))),
45
45
  }];
46
- // Web、Desktop、Node Server 共用同一入口契约:外部宿主只执行清单选中的
47
- // 模块,真正的启动动作必须写在该模块的 @main 区域中。单文件检查仍允许
48
- // 检查普通库模块;完整应用项目则在这里统一拦截缺少入口区域的情况。
49
- if (!input?.endsWith(".vel") && entryErrors.length === 0) {
50
- if (config.kind === "application" && (config.framework || nodeApplicationConfig(config))) {
51
- try {
52
- applicationEntry(project);
53
- }
54
- catch (error) {
55
- entryErrors.push(error instanceof Error ? error.message : "Application entry validation failed");
56
- }
57
- }
58
- else if (config.kind === "library") {
59
- const entry = project.modules.find((module) => module.inputPath === project.entryPath);
60
- if (entry?.result.hasMain) {
61
- entryErrors.push(`${project.entryPath}: A library entry cannot declare '@main'; move startup into an application project`);
62
- }
63
- }
64
- }
46
+ // The project layer's own refusals, on the entry root's channel, from the one
47
+ // function `velar fix` reads them from too.
48
+ entryErrors.push(...projectLayerFindings(config, input, project).map((finding) => finding.message));
65
49
  // One extra root, compiled on its own. It is deliberately *not* folded into
66
50
  // the `compileProjectEntries` call above: every entry handed to that call has
67
51
  // its `@main` body emitted, so adding roots there would change what a build
@@ -134,6 +118,59 @@ export function formatCheckOutput(checked) {
134
118
  ? `${notices}${advisories}${checked.errors.join("\n\n")}\n`
135
119
  : `${notices}${advisories}`;
136
120
  }
121
+ /**
122
+ * Every project-layer rule, evaluated once, for whichever command asked.
123
+ *
124
+ * This function is the reason `velar fix` cannot answer "0 diagnostics remain"
125
+ * over a tree `velar check` refuses. The fixer reads the compiler's diagnostic
126
+ * channel, and these rules were never on it: an entry missing its `@main` region
127
+ * failed `check` with exit 1 while `fix` reported a clean tree and exited 0 —
128
+ * the F4 falsehood again, from the one channel the F4 wave did not share. Roots
129
+ * were the first half of that sharing (`additionalProjectRoots`); this is the
130
+ * other half, and neither command owns a copy of a rule.
131
+ *
132
+ * Both preconditions are part of the rule set rather than of either caller:
133
+ *
134
+ * - A single-file input names its own scope, exactly as it does for the tree
135
+ * walk. Asking a project-arrangement question about one file answers it
136
+ * about a project the author did not name.
137
+ * - A tree the compiler already refused is not asked. "Does the entry declare
138
+ * `@main`" has no reliable answer over a module that did not parse, and
139
+ * `check` is already refusing for a better reason.
140
+ */
141
+ export function projectLayerFindings(config, input, project) {
142
+ if (input?.endsWith(".vel"))
143
+ return [];
144
+ if (project.failures.length > 0 || project.modules.some((module) => module.result.diagnostics.length > 0))
145
+ return [];
146
+ // Web、Desktop、Node 和 Server 共用同一入口契约:外部宿主只执行清单选中的
147
+ // 模块,真正的启动动作必须写在该模块的 @main 区域中。单文件检查仍允许
148
+ // 检查普通库模块;完整应用项目则在这里统一拦截缺少入口区域的情况。
149
+ if (config.kind === "application" && (config.framework || nodeApplicationConfig(config))) {
150
+ try {
151
+ applicationEntry(project);
152
+ }
153
+ catch (error) {
154
+ return [{
155
+ message: error instanceof Error ? error.message : "Application entry validation failed",
156
+ fix: applicationEntryMigration(project),
157
+ }];
158
+ }
159
+ }
160
+ else if (config.kind === "library") {
161
+ const entry = project.modules.find((module) => module.inputPath === project.entryPath);
162
+ if (entry?.result.hasMain) {
163
+ // Deleting the region would delete the startup the author wrote, and
164
+ // moving it needs an application project that does not exist yet. There is
165
+ // no rewrite here that is the author's own, so there is no fix.
166
+ return [{
167
+ message: `${project.entryPath}: A library entry cannot declare '@main'; move startup into an application project`,
168
+ fix: null,
169
+ }];
170
+ }
171
+ }
172
+ return [];
173
+ }
137
174
  /**
138
175
  * Every source a whole-project run treats as a root beyond the entry's own
139
176
  * graph — `*.test.vel` modules and the files nothing imports alike.
@@ -1 +1 @@
1
- {"version":3,"file":"project-check.js","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-check.js","sourceRoot":"","sources":["../src/project-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../src/project.ts"],"names":[],"mappings":"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"}
package/dist/project.js CHANGED
@@ -1117,9 +1117,14 @@ export function moduleInterfaceIdentity(interface_, extensions = []) {
1117
1117
  name,
1118
1118
  info.identity,
1119
1119
  names(info.members),
1120
+ // D102 ruling 1: a wire value is a string or a safe integer, and the two
1121
+ // kinds are different values. The hash carries the JSON spelling so a
1122
+ // member moving from `"2"` to `2` invalidates every dependent built
1123
+ // against the old one — the digest is what decides that, and a bare
1124
+ // `String(value)` would make the change invisible to it.
1120
1125
  node("wire-values", [...info.wireValues]
1121
1126
  .sort(([left], [right]) => byCodeUnit(left, right))
1122
- .map(([member, value]) => node("wire-value", [member, value]))),
1127
+ .map(([member, value]) => node("wire-value", [member, JSON.stringify(value)]))),
1123
1128
  ])));
1124
1129
  const classes = node("classes", [...interface_.classes]
1125
1130
  .sort(([left], [right]) => byCodeUnit(left, right))