@principal-ai/principal-view-core 0.26.23 → 0.26.24
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":"coverage.d.ts","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAWrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAGpC,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAG1C,UAAU,EAAE,mBAAmB,CAAC;IAGhC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;
|
|
1
|
+
{"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAWrE;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,EAAE,MAAM,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAGpC,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IAGzB,eAAe,EAAE,sBAAsB,EAAE,CAAC;IAG1C,UAAU,EAAE,mBAAmB,CAAC;IAGhC,gBAAgB,EAAE,eAAe,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAsQD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC5C,OAAO,CAAC,eAAe,CAAC,CAoF1B"}
|
|
@@ -21,10 +21,16 @@ function getEventName(node) {
|
|
|
21
21
|
return (0, builder_1.getNodeEventName)(node) ?? null;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Extract instrumentation file paths from a canvas node
|
|
24
|
+
* Extract instrumentation file paths from a canvas node
|
|
25
|
+
* Supports both new format (node.otel.files) and legacy format (pv.otel.files)
|
|
25
26
|
*/
|
|
26
27
|
function getInstrumentationFiles(node) {
|
|
27
|
-
//
|
|
28
|
+
// Check new format first (otel-event nodes)
|
|
29
|
+
const otelNode = node;
|
|
30
|
+
if (otelNode.otel?.files) {
|
|
31
|
+
return otelNode.otel.files;
|
|
32
|
+
}
|
|
33
|
+
// Fallback to legacy format (pv.otel.files)
|
|
28
34
|
return node.pv?.otel?.files || [];
|
|
29
35
|
}
|
|
30
36
|
/**
|
|
@@ -41,10 +47,25 @@ async function fileContainsEvent(filePath, eventName, fileReader) {
|
|
|
41
47
|
}
|
|
42
48
|
/**
|
|
43
49
|
* Get the status of a node (returns undefined if not specified)
|
|
50
|
+
* Supports both new format (node.otel.status) and legacy format (pv.status)
|
|
44
51
|
*/
|
|
45
52
|
function getNodeStatus(node) {
|
|
53
|
+
// Check new format first (otel-event nodes)
|
|
54
|
+
const otelNode = node;
|
|
55
|
+
if (otelNode.otel?.status) {
|
|
56
|
+
return otelNode.otel.status;
|
|
57
|
+
}
|
|
58
|
+
// Fallback to legacy format (pv.status)
|
|
46
59
|
return node.pv?.status;
|
|
47
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the scope from a node
|
|
63
|
+
* Only supports new format (node.otel.scope). Legacy format (pv.otel.scope) is rejected.
|
|
64
|
+
*/
|
|
65
|
+
function getNodeScope(node) {
|
|
66
|
+
const otelNode = node;
|
|
67
|
+
return otelNode.otel?.scope;
|
|
68
|
+
}
|
|
48
69
|
/**
|
|
49
70
|
* Build a map of file -> expected events from canvas nodes
|
|
50
71
|
* Only includes nodes with status='implemented'
|
|
@@ -146,14 +167,24 @@ function validateNodes(otelCanvases) {
|
|
|
146
167
|
error: `Node with status="${status}" must have pv.otel.files specified`,
|
|
147
168
|
});
|
|
148
169
|
}
|
|
149
|
-
//
|
|
150
|
-
const
|
|
151
|
-
if (
|
|
170
|
+
// Error if using deprecated pv.otel.scope
|
|
171
|
+
const legacyScope = node.pv?.otel?.scope;
|
|
172
|
+
if (legacyScope) {
|
|
173
|
+
errors.push({
|
|
174
|
+
nodeId: node.id,
|
|
175
|
+
canvasPath: canvas.path,
|
|
176
|
+
status,
|
|
177
|
+
error: `Node uses deprecated "pv.otel.scope" field. Use new format: convert to type: "otel-event" with top-level "otel.scope" field instead. Run: npx @principal-ai/principal-view-cli migrate-nodes`,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// Require scope for ALL event nodes (using new format)
|
|
181
|
+
const scope = getNodeScope(node);
|
|
182
|
+
if (!scope) {
|
|
152
183
|
errors.push({
|
|
153
184
|
nodeId: node.id,
|
|
154
185
|
canvasPath: canvas.path,
|
|
155
186
|
status,
|
|
156
|
-
error: `
|
|
187
|
+
error: `Event node must have otel.scope specified. Scope defines which instrumentation library emits this event (e.g., "terminal-activity", "auth"). Define scopes in library.yaml and document them in architecture.scopes.canvas.`,
|
|
157
188
|
});
|
|
158
189
|
}
|
|
159
190
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAGH,kEAA+D;AAG/D,mDAAyD;AACzD,6EAI4C;AA8E5C;;;GAGG;AACH,SAAS,YAAY,CAAC,IAAwB;IAC5C,OAAO,IAAA,0BAAgB,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACxC,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -104,10 +104,16 @@ function getEventName(node: ExtendedCanvasNode): string | null {
|
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
|
-
* Extract instrumentation file paths from a canvas node
|
|
107
|
+
* Extract instrumentation file paths from a canvas node
|
|
108
|
+
* Supports both new format (node.otel.files) and legacy format (pv.otel.files)
|
|
108
109
|
*/
|
|
109
110
|
function getInstrumentationFiles(node: ExtendedCanvasNode): string[] {
|
|
110
|
-
//
|
|
111
|
+
// Check new format first (otel-event nodes)
|
|
112
|
+
const otelNode = node as { otel?: { files?: string[] } };
|
|
113
|
+
if (otelNode.otel?.files) {
|
|
114
|
+
return otelNode.otel.files;
|
|
115
|
+
}
|
|
116
|
+
// Fallback to legacy format (pv.otel.files)
|
|
111
117
|
return node.pv?.otel?.files || [];
|
|
112
118
|
}
|
|
113
119
|
|
|
@@ -129,11 +135,27 @@ async function fileContainsEvent(
|
|
|
129
135
|
|
|
130
136
|
/**
|
|
131
137
|
* Get the status of a node (returns undefined if not specified)
|
|
138
|
+
* Supports both new format (node.otel.status) and legacy format (pv.status)
|
|
132
139
|
*/
|
|
133
140
|
function getNodeStatus(node: ExtendedCanvasNode): 'draft' | 'approved' | 'implemented' | undefined {
|
|
141
|
+
// Check new format first (otel-event nodes)
|
|
142
|
+
const otelNode = node as { otel?: { status?: 'draft' | 'approved' | 'implemented' } };
|
|
143
|
+
if (otelNode.otel?.status) {
|
|
144
|
+
return otelNode.otel.status;
|
|
145
|
+
}
|
|
146
|
+
// Fallback to legacy format (pv.status)
|
|
134
147
|
return node.pv?.status;
|
|
135
148
|
}
|
|
136
149
|
|
|
150
|
+
/**
|
|
151
|
+
* Get the scope from a node
|
|
152
|
+
* Only supports new format (node.otel.scope). Legacy format (pv.otel.scope) is rejected.
|
|
153
|
+
*/
|
|
154
|
+
function getNodeScope(node: ExtendedCanvasNode): string | undefined {
|
|
155
|
+
const otelNode = node as { otel?: { scope?: string } };
|
|
156
|
+
return otelNode.otel?.scope;
|
|
157
|
+
}
|
|
158
|
+
|
|
137
159
|
/**
|
|
138
160
|
* Build a map of file -> expected events from canvas nodes
|
|
139
161
|
* Only includes nodes with status='implemented'
|
|
@@ -249,14 +271,25 @@ function validateNodes(
|
|
|
249
271
|
});
|
|
250
272
|
}
|
|
251
273
|
|
|
252
|
-
//
|
|
253
|
-
const
|
|
254
|
-
if (
|
|
274
|
+
// Error if using deprecated pv.otel.scope
|
|
275
|
+
const legacyScope = node.pv?.otel?.scope;
|
|
276
|
+
if (legacyScope) {
|
|
277
|
+
errors.push({
|
|
278
|
+
nodeId: node.id,
|
|
279
|
+
canvasPath: canvas.path,
|
|
280
|
+
status,
|
|
281
|
+
error: `Node uses deprecated "pv.otel.scope" field. Use new format: convert to type: "otel-event" with top-level "otel.scope" field instead. Run: npx @principal-ai/principal-view-cli migrate-nodes`,
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// Require scope for ALL event nodes (using new format)
|
|
286
|
+
const scope = getNodeScope(node);
|
|
287
|
+
if (!scope) {
|
|
255
288
|
errors.push({
|
|
256
289
|
nodeId: node.id,
|
|
257
290
|
canvasPath: canvas.path,
|
|
258
291
|
status,
|
|
259
|
-
error: `
|
|
292
|
+
error: `Event node must have otel.scope specified. Scope defines which instrumentation library emits this event (e.g., "terminal-activity", "auth"). Define scopes in library.yaml and document them in architecture.scopes.canvas.`,
|
|
260
293
|
});
|
|
261
294
|
}
|
|
262
295
|
}
|