@principal-ai/principal-view-core 0.24.81 → 0.24.82

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.
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryLoader.d.ts","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa3E;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEhD;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+BvD;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiChE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBnD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,MAAM;IAKzE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAgIjB"}
1
+ {"version":3,"file":"LibraryLoader.d.ts","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,KAAK,EAAoB,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAa3E;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,iBAAiB;IAEhD;;;;;;;OAOG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+BvD;;;;;OAKG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiChE;;;;;OAKG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBnD;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,MAAe,GAAG,MAAM;IAKzE;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAUjB;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ;CAkIjB"}
@@ -229,8 +229,10 @@ class LibraryLoader {
229
229
  if (typeof scopeDef !== 'object' || scopeDef === null) {
230
230
  return `Scope '${scopeName}' must be an object in ${filePath}`;
231
231
  }
232
- if (typeof scopeDef.color !== 'string') {
233
- return `Scope '${scopeName}' is missing required 'color' property in ${filePath}`;
232
+ // External scopes don't require color (defined elsewhere)
233
+ const isExternal = scopeDef.external === true;
234
+ if (!isExternal && typeof scopeDef.color !== 'string') {
235
+ return `Scope '${scopeName}' is missing required 'color' property in ${filePath}. Use 'external: true' for scopes defined in other libraries.`;
234
236
  }
235
237
  }
236
238
  }
@@ -277,9 +279,9 @@ class LibraryLoader {
277
279
  if (typeof scope !== 'string') {
278
280
  return `Resource '${serviceId}' attribute 'owned-scopes' array must contain only strings in ${filePath}`;
279
281
  }
280
- // Validate that scope references exist in top-level scopes
281
- if (library.scopes && !library.scopes[scope]) {
282
- return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section.`;
282
+ // Validate that scope references exist in top-level scopes (strict)
283
+ if (!library.scopes || !library.scopes[scope]) {
284
+ return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section (use 'external: true' for scopes from other libraries).`;
283
285
  }
284
286
  }
285
287
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LibraryLoader.js","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LibraryLoader.js","sourceRoot":"","sources":["../src/LibraryLoader.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export interface NormalizedScope {
16
16
  name: string;
17
17
  color: string;
18
18
  description?: string;
19
+ /** Whether this scope is defined externally (in another library) */
20
+ external?: boolean;
19
21
  }
20
22
  /**
21
23
  * Get all scope names from owned-scopes array
@@ -37,6 +39,7 @@ export declare function normalizeScopes(scopeNames: OwnedScopes | undefined, lib
37
39
  /**
38
40
  * Build a scope color map from library scopes
39
41
  * Returns a simple name -> color mapping for fast lookups
42
+ * External scopes (without color) use the default color
40
43
  */
41
44
  export declare function buildScopeColorMap(library: {
42
45
  scopes?: Record<string, ScopeDefinition>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CAE7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GACzD,eAAe,EAAE,CAWnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,EAAE,CAGV"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,uDAAuD;AACvD,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,SAAS,CAE7B;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,EAC1D,SAAS,EAAE,MAAM,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,SAAS,GACzD,eAAe,EAAE,CAYnB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;CAAE,GAAG,SAAS,GAChE,MAAM,EAAE,CAGV"}
@@ -45,6 +45,7 @@ function normalizeScopes(scopeNames, libraryScopes) {
45
45
  name,
46
46
  color: definition?.color ?? exports.DEFAULT_SCOPE_COLOR,
47
47
  description: definition?.description,
48
+ external: definition?.external,
48
49
  };
49
50
  });
50
51
  }
@@ -52,12 +53,13 @@ exports.normalizeScopes = normalizeScopes;
52
53
  /**
53
54
  * Build a scope color map from library scopes
54
55
  * Returns a simple name -> color mapping for fast lookups
56
+ * External scopes (without color) use the default color
55
57
  */
56
58
  function buildScopeColorMap(library) {
57
59
  const colorMap = {};
58
60
  if (library?.scopes) {
59
61
  for (const [name, def] of Object.entries(library.scopes)) {
60
- colorMap[name] = def.color;
62
+ colorMap[name] = def.color ?? exports.DEFAULT_SCOPE_COLOR;
61
63
  }
62
64
  }
63
65
  return colorMap;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,SAAS,CAAC,CAAC,WAAW;AAEzD,+CAA+C;AAClC,QAAA,gBAAgB,GAAG,SAAS,CAAC,CAAC,WAAW;AAWtD;;GAEG;AACH,SAAgB,aAAa,CAAC,MAA+B;IAC3D,OAAO,MAAM,IAAI,EAAE,CAAC;AACtB,CAAC;AAFD,sCAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AALD,gDAKC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,2BAAmB,CAAC;AAClE,CAAC;AALD,sCAKC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,UAAmC,EACnC,aAA0D;IAE1D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,2BAAmB;YAC/C,WAAW,EAAE,UAAU,EAAE,WAAW;SACrC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAdD,0CAcC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,OAAiE;IAEjE,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,IAAI,OAAO,EAAE,MAAM,EAAE;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;SAC5B;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAZD,gDAYC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAiE;IAEjE,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AALD,4CAKC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/scopes/utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAIH,uDAAuD;AAC1C,QAAA,mBAAmB,GAAG,SAAS,CAAC,CAAC,WAAW;AAEzD,+CAA+C;AAClC,QAAA,gBAAgB,GAAG,SAAS,CAAC,CAAC,WAAW;AAatD;;GAEG;AACH,SAAgB,aAAa,CAAC,MAA+B;IAC3D,OAAO,MAAM,IAAI,EAAE,CAAC;AACtB,CAAC;AAFD,sCAEC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAChC,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC;AALD,gDAKC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAC3B,aAA0D,EAC1D,SAAiB;IAEjB,OAAO,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,2BAAmB,CAAC;AAClE,CAAC;AALD,sCAKC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,UAAmC,EACnC,aAA0D;IAE1D,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,UAAU,EAAE,KAAK,IAAI,2BAAmB;YAC/C,WAAW,EAAE,UAAU,EAAE,WAAW;YACpC,QAAQ,EAAE,UAAU,EAAE,QAAQ;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,0CAeC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAChC,OAAiE;IAEjE,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,IAAI,OAAO,EAAE,MAAM,EAAE;QACnB,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACxD,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,2BAAmB,CAAC;SACnD;KACF;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAZD,gDAYC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,OAAiE;IAEjE,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AALD,4CAKC"}
@@ -19,10 +19,15 @@ import type { PVNodeShape, PVEdgeStyle, PVAnimationType, PVNodeState, PVEventSch
19
19
  * Used for consistent visual representation across canvases.
20
20
  */
21
21
  export interface ScopeDefinition {
22
- /** Color for nodes belonging to this scope (hex format) */
23
- color: string;
22
+ /** Color for nodes belonging to this scope (hex format). Required unless external. */
23
+ color?: string;
24
24
  /** Human-readable description of what this scope covers */
25
25
  description?: string;
26
+ /**
27
+ * Mark this scope as external - defined in another library/package.
28
+ * External scopes don't require color (they inherit from the defining library).
29
+ */
30
+ external?: boolean;
26
31
  }
27
32
  /**
28
33
  * Owned scopes: array of scope names that reference top-level scopes
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/types/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/types/library.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/principal-view-core",
3
- "version": "0.24.81",
3
+ "version": "0.24.82",
4
4
  "description": "Core logic and types for graph-based principal view framework",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -237,8 +237,10 @@ export class LibraryLoader {
237
237
  if (typeof scopeDef !== 'object' || scopeDef === null) {
238
238
  return `Scope '${scopeName}' must be an object in ${filePath}`;
239
239
  }
240
- if (typeof scopeDef.color !== 'string') {
241
- return `Scope '${scopeName}' is missing required 'color' property in ${filePath}`;
240
+ // External scopes don't require color (defined elsewhere)
241
+ const isExternal = scopeDef.external === true;
242
+ if (!isExternal && typeof scopeDef.color !== 'string') {
243
+ return `Scope '${scopeName}' is missing required 'color' property in ${filePath}. Use 'external: true' for scopes defined in other libraries.`;
242
244
  }
243
245
  }
244
246
  }
@@ -291,9 +293,9 @@ export class LibraryLoader {
291
293
  if (typeof scope !== 'string') {
292
294
  return `Resource '${serviceId}' attribute 'owned-scopes' array must contain only strings in ${filePath}`;
293
295
  }
294
- // Validate that scope references exist in top-level scopes
295
- if (library.scopes && !library.scopes[scope]) {
296
- return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section.`;
296
+ // Validate that scope references exist in top-level scopes (strict)
297
+ if (!library.scopes || !library.scopes[scope]) {
298
+ return `Resource '${serviceId}' references undefined scope '${scope}' in ${filePath}. Define it in the top-level 'scopes' section (use 'external: true' for scopes from other libraries).`;
297
299
  }
298
300
  }
299
301
  } else if (typeof attrValue !== 'string') {
@@ -16,6 +16,11 @@ describe('LibraryDiscovery', () => {
16
16
  const libraryYaml = `
17
17
  version: '1.0'
18
18
  name: test-library
19
+ scopes:
20
+ scope-a:
21
+ color: "#ff0000"
22
+ scope-b:
23
+ color: "#00ff00"
19
24
  nodeComponents:
20
25
  box: { shape: rectangle }
21
26
  edgeComponents:
@@ -24,10 +29,8 @@ resources:
24
29
  my-service:
25
30
  service.name: my-service
26
31
  owned-scopes:
27
- scope-a:
28
- color: "#ff0000"
29
- scope-b:
30
- color: "#00ff00"
32
+ - scope-a
33
+ - scope-b
31
34
  `;
32
35
  mockFsAdapter = createMockFsAdapter({
33
36
  '/.principal-views': { isDir: true, contents: ['library.yaml'] },
@@ -52,6 +55,9 @@ resources:
52
55
  const libraryYaml = `
53
56
  version: '1.0'
54
57
  name: test-library
58
+ scopes:
59
+ scope-a:
60
+ color: "#ff0000"
55
61
  nodeComponents:
56
62
  box: { shape: rectangle }
57
63
  edgeComponents:
@@ -60,8 +66,7 @@ resources:
60
66
  my-service:
61
67
  service.name: my-service
62
68
  owned-scopes:
63
- scope-a:
64
- color: "#ff0000"
69
+ - scope-a
65
70
  `;
66
71
  mockFsAdapter = createMockFsAdapter({
67
72
  '/.principal-views': { isDir: true, contents: ['library.yaml', 'architecture.scopes.canvas'] },
@@ -110,10 +115,15 @@ resources:
110
115
  expect(result.errors).toHaveLength(0);
111
116
  });
112
117
 
113
- test('supports legacy array format for owned-scopes', async () => {
118
+ test('validates scope references exist in top-level scopes', async () => {
114
119
  const libraryYaml = `
115
120
  version: '1.0'
116
121
  name: test-library
122
+ scopes:
123
+ scope-a:
124
+ color: "#ff0000"
125
+ scope-b:
126
+ color: "#00ff00"
117
127
  nodeComponents:
118
128
  box: { shape: rectangle }
119
129
  edgeComponents:
@@ -147,6 +157,9 @@ resources:
147
157
  const libraryYaml = `
148
158
  version: '1.0'
149
159
  name: test-library
160
+ scopes:
161
+ scope-a:
162
+ color: "#ff0000"
150
163
  nodeComponents:
151
164
  box: { shape: rectangle }
152
165
  edgeComponents:
@@ -155,8 +168,7 @@ resources:
155
168
  my-service:
156
169
  service.name: my-service
157
170
  owned-scopes:
158
- scope-a:
159
- color: "#ff0000"
171
+ - scope-a
160
172
  `;
161
173
  mockFsAdapter = createMockFsAdapter({
162
174
  '/.principal-views': { isDir: true, contents: ['library.yaml', 'architecture'] },
@@ -182,6 +194,9 @@ resources:
182
194
  const libraryYaml = `
183
195
  version: '1.0'
184
196
  name: test-library
197
+ scopes:
198
+ scope-a:
199
+ color: "#ff0000"
185
200
  nodeComponents:
186
201
  box: { shape: rectangle }
187
202
  edgeComponents:
@@ -190,8 +205,7 @@ resources:
190
205
  my-service:
191
206
  service.name: my-service
192
207
  owned-scopes:
193
- scope-a:
194
- color: "#ff0000"
208
+ - scope-a
195
209
  `;
196
210
  mockFsAdapter = createMockFsAdapter({
197
211
  '/.principal-views': { isDir: true, contents: ['library.yaml'] },
@@ -20,6 +20,8 @@ export interface NormalizedScope {
20
20
  name: string;
21
21
  color: string;
22
22
  description?: string;
23
+ /** Whether this scope is defined externally (in another library) */
24
+ external?: boolean;
23
25
  }
24
26
 
25
27
  /**
@@ -65,6 +67,7 @@ export function normalizeScopes(
65
67
  name,
66
68
  color: definition?.color ?? DEFAULT_SCOPE_COLOR,
67
69
  description: definition?.description,
70
+ external: definition?.external,
68
71
  };
69
72
  });
70
73
  }
@@ -72,6 +75,7 @@ export function normalizeScopes(
72
75
  /**
73
76
  * Build a scope color map from library scopes
74
77
  * Returns a simple name -> color mapping for fast lookups
78
+ * External scopes (without color) use the default color
75
79
  */
76
80
  export function buildScopeColorMap(
77
81
  library: { scopes?: Record<string, ScopeDefinition> } | undefined
@@ -80,7 +84,7 @@ export function buildScopeColorMap(
80
84
 
81
85
  if (library?.scopes) {
82
86
  for (const [name, def] of Object.entries(library.scopes)) {
83
- colorMap[name] = def.color;
87
+ colorMap[name] = def.color ?? DEFAULT_SCOPE_COLOR;
84
88
  }
85
89
  }
86
90
 
@@ -32,11 +32,17 @@ import type {
32
32
  * Used for consistent visual representation across canvases.
33
33
  */
34
34
  export interface ScopeDefinition {
35
- /** Color for nodes belonging to this scope (hex format) */
36
- color: string;
35
+ /** Color for nodes belonging to this scope (hex format). Required unless external. */
36
+ color?: string;
37
37
 
38
38
  /** Human-readable description of what this scope covers */
39
39
  description?: string;
40
+
41
+ /**
42
+ * Mark this scope as external - defined in another library/package.
43
+ * External scopes don't require color (they inherit from the defining library).
44
+ */
45
+ external?: boolean;
40
46
  }
41
47
 
42
48
  /**