@vessel-dsp/core 0.6.23 → 0.6.25

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/README.md CHANGED
@@ -30,14 +30,16 @@ schematics; unknown roles warn by default and become errors when callers pass
30
30
  lowering-specific diagnostics with `validateDocument(document, { rules: [...] })`
31
31
  without embedding runtime policy in core.
32
32
 
33
- For canonical `.vdsp` intake, use `validateSourceRuntimeBoundary(document)` or
34
- `createSourceRuntimeBoundaryRule()` to report legacy runtime/admission/proxy
35
- selectors in component properties or top-level raw attributes, such as
36
- `RuntimeMatchKey`, `RuntimeDescriptor`, `DescriptorType`, stored compiler
37
- certificate/admission metadata, and nested
38
- `BehaviorRole.firmwareRef.behaviorOwner`. The parser remains tolerant so legacy
39
- documents can still be inspected and migrated without rewriting source files
40
- during import.
33
+ For canonical `.vdsp` intake, `validateVdspCircuitDocumentSchema(source)`
34
+ returns warnings for legacy runtime/admission/proxy selectors in component
35
+ properties or top-level raw attributes, such as `RuntimeMatchKey`,
36
+ `RuntimeDescriptor`, `DescriptorType`, stored compiler certificate/admission
37
+ metadata, and legacy markers like `SourceOnly`, `InterfaceOnly`,
38
+ `SourceBoundaryNote`, `FirmwareStatus`, `FirmwareExternalStop`, and
39
+ `BehaviorRole`. Direct `CircuitDocument` callers can use
40
+ `validateSourceRuntimeBoundary(document)` or `createSourceRuntimeBoundaryRule()`
41
+ for the same check. The parser remains tolerant so legacy documents can still be
42
+ inspected and migrated without rewriting source files during import.
41
43
 
42
44
  ## Advisory trace warnings
43
45
 
@@ -81,13 +83,14 @@ instead of a second ideal source.
81
83
 
82
84
  ## InterfaceOnly usage
83
85
 
84
- `InterfaceOnly: true` marks a component with no real electrical branch — an
85
- unpopulated/DNP position or a panel/UI reference stub with no wired terminals.
86
+ Legacy `InterfaceOnly: true` marks a component with no real electrical branch —
87
+ an unpopulated/DNP position or a panel/UI reference stub with no wired terminals.
86
88
  `validateDocument` warns with `interface-only-active-device` when it is used on
87
89
  a wired active-device kind (diode, LED, transistor, op-amp, tube, IC, and
88
90
  similar `model`-identity kinds) with two or more declared terminals; use a
89
91
  generic `model`/`Type` value plus an honest source-gap disclosure instead of an
90
- `InterfaceOnly` waiver. Legacy `Support: "view-only"` is no longer treated as an
91
- interface-only marker; it is reported as
92
+ `InterfaceOnly` waiver. Canonical `.vdsp` intake also reports `InterfaceOnly` as
93
+ legacy source-boundary metadata. Legacy `Support: "view-only"` is no longer
94
+ treated as an interface-only marker; it is reported as
92
95
  `schema-invalid-legacy-support-view-only`, since playable/support status is
93
96
  derived downstream by the host runtime/compiler.
@@ -1,4 +1,5 @@
1
1
  import type { CircuitDocument, DocumentSource } from "../model/types";
2
+ import { type ValidationIssue } from "../model/validation";
2
3
  import { type InterchangeTopologyParseResult } from "./interchange/parser";
3
4
  export type CircuitFormat = "schx" | "spice" | "ltspice-asc";
4
5
  export type CircuitDocumentFileFormat = CircuitFormat | "vdsp" | "yaml" | "circuit-json";
@@ -41,13 +42,18 @@ export type VdspSchemaValidationIssue = Readonly<{
41
42
  message: string;
42
43
  path?: string;
43
44
  }>;
45
+ export type ValidateVdspCircuitDocumentSchemaOptions = Readonly<{
46
+ sourceRuntimeBoundaryWarnings?: boolean;
47
+ }>;
44
48
  export type VdspSchemaValidationResult = Readonly<{
45
49
  valid: true;
46
50
  document: CircuitDocument;
47
51
  errors: readonly [];
52
+ warnings: readonly ValidationIssue[];
48
53
  }> | Readonly<{
49
54
  valid: false;
50
55
  errors: readonly VdspSchemaValidationIssue[];
56
+ warnings: readonly [];
51
57
  }>;
52
58
  export declare const vdspFileExtension = ".vdsp";
53
59
  export declare function detectCircuitFormat(filename: string): CircuitFormat | null;
@@ -57,7 +63,7 @@ export declare function detectCircuitDocumentFileFormat(filename: string): Circu
57
63
  export declare function vdspFilenameFromName(name: string): string;
58
64
  export declare function parseVdspCircuitDocument(source: string): CircuitDocument;
59
65
  export declare function parseVdspCircuitDocumentWithTopology(source: string): InterchangeTopologyParseResult;
60
- export declare function validateVdspCircuitDocumentSchema(source: string): VdspSchemaValidationResult;
66
+ export declare function validateVdspCircuitDocumentSchema(source: string, options?: ValidateVdspCircuitDocumentSchemaOptions): VdspSchemaValidationResult;
61
67
  export declare function parseCircuitDocumentFile(source: string, options: ParseCircuitDocumentFileOptions): CircuitDocument;
62
68
  export declare function serializeCircuitDocumentFile(document: CircuitDocument, options: SerializeCircuitDocumentFileOptions): string;
63
69
  export declare function convertCircuitDocumentFile(source: string, options: ConvertCircuitDocumentFileOptions): string;
@@ -1 +1 @@
1
- {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/formats/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/formats/document.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { validateSourceRuntimeBoundary, } from "../model/validation.js";
1
2
  import { parseLtspiceAsc } from "./ltspice/parser.js";
2
3
  import { serializeLtspiceAsc } from "./ltspice/serializer.js";
3
4
  import { parseSchx } from "./schx/parser.js";
@@ -88,12 +89,14 @@ export function parseVdspCircuitDocument(source) {
88
89
  export function parseVdspCircuitDocumentWithTopology(source) {
89
90
  return parseInterchangeYamlWithTopology(source);
90
91
  }
91
- export function validateVdspCircuitDocumentSchema(source) {
92
+ export function validateVdspCircuitDocumentSchema(source, options = {}) {
92
93
  try {
94
+ const document = parseVdspCircuitDocument(source);
93
95
  return {
94
96
  valid: true,
95
- document: parseVdspCircuitDocument(source),
97
+ document,
96
98
  errors: [],
99
+ warnings: validateVdspSchemaWarnings(document, options),
97
100
  };
98
101
  }
99
102
  catch (error) {
@@ -110,9 +113,16 @@ export function validateVdspCircuitDocumentSchema(source) {
110
113
  ...(path === undefined ? {} : { path }),
111
114
  },
112
115
  ],
116
+ warnings: [],
113
117
  };
114
118
  }
115
119
  }
120
+ function validateVdspSchemaWarnings(document, options) {
121
+ if (options.sourceRuntimeBoundaryWarnings === false) {
122
+ return [];
123
+ }
124
+ return validateSourceRuntimeBoundary(document, { severity: "warning" });
125
+ }
116
126
  export function parseCircuitDocumentFile(source, options) {
117
127
  const format = detectCircuitDocumentFileFormat(options.filename);
118
128
  if (format === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/formats/document.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/formats/document.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/formats/interchange/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,MAAM,EAIX,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAwBX,eAAe,EA4Df,MAAM,mBAAmB,CAAC;AAoC3B,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACrD,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kBAAkB,EAAE,UAAU,GAAG,WAAW,CAAC;CAC7C,CAAC,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA4DpE;AAED,gFAAgF;AAChF,wBAAgB,gCAAgC,CAC/C,MAAM,EAAE,MAAM,GACZ,8BAA8B,CAkBhC"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/formats/interchange/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,MAAM,EAIX,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAwBX,eAAe,EA4Df,MAAM,mBAAmB,CAAC;AAoC3B,MAAM,MAAM,8BAA8B,GAAG,QAAQ,CAAC;IACrD,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,kBAAkB,EAAE,UAAU,GAAG,WAAW,CAAC;CAC7C,CAAC,CAAC;AAEH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAiEpE;AAED,gFAAgF;AAChF,wBAAgB,gCAAgC,CAC/C,MAAM,EAAE,MAAM,GACZ,8BAA8B,CAkBhC"}
@@ -1,5 +1,6 @@
1
1
  import { pinKey, resolveConnectivity, } from "../../model/connectivity.js";
2
2
  import { isParsedQuantity } from "../../model/properties.js";
3
+ import { classifySourceTypeName } from "./source-type-names.js";
3
4
  const INTERCHANGE_SCHEMA_V2 = "circuit-interchange/v2";
4
5
  const INTERCHANGE_SCHEMA_V3 = "circuit-interchange/v3";
5
6
  const V3_ONLY_TOP_LEVEL_FIELDS = [
@@ -33,6 +34,11 @@ export function parseInterchangeYaml(source) {
33
34
  const controlGroups = parseControlGroups(root.controlGroups);
34
35
  const controlContexts = parseControlContexts(root.controlContexts);
35
36
  const deviceInterface = parseDeviceInterface(root.deviceInterface);
37
+ // Collected while parsing components, then merged with the document's own
38
+ // `diagnostics` block. Built before the literal below so the result does not
39
+ // depend on object-key evaluation order.
40
+ const componentWarnings = [];
41
+ const components = parseComponents(root.components, componentWarnings);
36
42
  const mechanical = isV3 ? parseMechanical(root.mechanical) : undefined;
37
43
  const build = isV3 ? parseBuild(root.build) : undefined;
38
44
  const bom = isV3 ? parseBom(root.bom) : undefined;
@@ -66,10 +72,10 @@ export function parseInterchangeYaml(source) {
66
72
  ...(panel === undefined ? {} : { panel }),
67
73
  ...(controlInterfaces === undefined ? {} : { controlInterfaces }),
68
74
  ...(controlOutputs === undefined ? {} : { controlOutputs }),
69
- components: parseComponents(root.components),
75
+ components,
70
76
  wires: parseWires(root.wires),
71
77
  directives: parseStringArray(root.directives, "directives"),
72
- warnings: parseWarnings(root.diagnostics),
78
+ warnings: [...parseWarnings(root.diagnostics), ...componentWarnings],
73
79
  rawAttributes: parseStringRecord(root.rawAttributes, "rawAttributes"),
74
80
  };
75
81
  }
@@ -1983,12 +1989,15 @@ function parsePanelControlKind(value, path) {
1983
1989
  throw new Error(`${path}: expected knob, slider, switch, selector, footswitch, led, display, or jack`);
1984
1990
  }
1985
1991
  }
1986
- function parseComponents(value) {
1992
+ function parseComponents(value, warnings) {
1987
1993
  return optionalArray(value, "components").map((item, index) => {
1988
1994
  const path = `components[${index}]`;
1989
1995
  const component = expectObject(item, path);
1996
+ const id = expectString(component.id, `${path}.id`);
1997
+ const sourceTypeName = parseNullableString(component.sourceTypeName, `${path}.sourceTypeName`);
1998
+ collectSourceTypeNameWarnings(id, sourceTypeName, warnings);
1990
1999
  return {
1991
- id: expectString(component.id, `${path}.id`),
2000
+ id,
1992
2001
  kind: parseComponentKind(component.kind, `${path}.kind`),
1993
2002
  name: expectString(component.name, `${path}.name`),
1994
2003
  origin: parsePoint(component.origin, `${path}.origin`),
@@ -1996,10 +2005,47 @@ function parseComponents(value) {
1996
2005
  flipped: expectBoolean(component.flipped, `${path}.flipped`),
1997
2006
  terminals: parseTerminals(component.terminals, `${path}.terminals`),
1998
2007
  properties: parseProperties(component.properties, `${path}.properties`),
1999
- sourceTypeName: parseNullableString(component.sourceTypeName, `${path}.sourceTypeName`),
2008
+ sourceTypeName,
2000
2009
  };
2001
2010
  });
2002
2011
  }
2012
+ /**
2013
+ * Report a `sourceTypeName` outside the supported vocabulary.
2014
+ *
2015
+ * The value is never rewritten. Every consumer matches this field exactly, so an
2016
+ * unrecognised spelling is a component that silently fails to resolve, and until now
2017
+ * nothing said so -- the field is typed `string | null` and parsed straight through.
2018
+ * Warning rather than throwing keeps existing documents readable while making the
2019
+ * drift visible; the survey behind the vocabulary found 107 distinct values in one
2020
+ * corpus for roughly 40 concepts.
2021
+ */
2022
+ function collectSourceTypeNameWarnings(componentId, sourceTypeName, warnings) {
2023
+ const verdict = classifySourceTypeName(sourceTypeName);
2024
+ if (verdict === null || verdict.status === "supported") {
2025
+ return;
2026
+ }
2027
+ if (verdict.status === "alias") {
2028
+ warnings.push({
2029
+ code: "source-type-name-alias",
2030
+ message: `sourceTypeName "${sourceTypeName}" is a non-canonical spelling; use "${verdict.canonical}".`,
2031
+ componentId,
2032
+ });
2033
+ return;
2034
+ }
2035
+ if (verdict.status === "modelling-intent") {
2036
+ warnings.push({
2037
+ code: "source-type-name-not-a-device-class",
2038
+ message: `sourceTypeName "${sourceTypeName}" records what a consumer does with this component, not what it is, so it cannot identify a device. State the device class; let the boundary that owns a region declare what it encloses.`,
2039
+ componentId,
2040
+ });
2041
+ return;
2042
+ }
2043
+ warnings.push({
2044
+ code: "source-type-name-unsupported",
2045
+ message: `sourceTypeName "${sourceTypeName}" is not a supported source type.`,
2046
+ componentId,
2047
+ });
2048
+ }
2003
2049
  function parseTerminals(value, path) {
2004
2050
  return optionalArray(value, path).map((item, index) => {
2005
2051
  const terminalPath = `${path}[${index}]`;