@principal-ai/principal-view-core 0.10.1 → 0.10.2
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.
|
@@ -81,6 +81,10 @@ export declare class NarrativeValidator {
|
|
|
81
81
|
* Check that template uses valid fields (not legacy format)
|
|
82
82
|
*/
|
|
83
83
|
private checkTemplateStructure;
|
|
84
|
+
/**
|
|
85
|
+
* Check that event names don't use attribute filter syntax
|
|
86
|
+
*/
|
|
87
|
+
private checkEventNameSyntax;
|
|
84
88
|
/**
|
|
85
89
|
* Check template syntax (balanced braces, valid expressions)
|
|
86
90
|
*/
|
|
@@ -109,6 +113,24 @@ export declare class NarrativeValidator {
|
|
|
109
113
|
* Check if an event name matches any available event (supports globs)
|
|
110
114
|
*/
|
|
111
115
|
private matchesEventPattern;
|
|
116
|
+
/**
|
|
117
|
+
* Extract base event name from event pattern
|
|
118
|
+
*
|
|
119
|
+
* Examples:
|
|
120
|
+
* - "installation.started" -> "installation.started"
|
|
121
|
+
* - "installation.progress[stage=skills_discovered]" -> "installation.progress"
|
|
122
|
+
* - "error.*[severity=high]" -> "error.*"
|
|
123
|
+
*/
|
|
124
|
+
private extractBaseEventName;
|
|
125
|
+
/**
|
|
126
|
+
* Extract attribute value from event pattern for suggestion
|
|
127
|
+
*
|
|
128
|
+
* Examples:
|
|
129
|
+
* - "installation.progress[stage=skills_discovered]" -> "skills_discovered"
|
|
130
|
+
* - "error.*[severity=high]" -> "high"
|
|
131
|
+
* - "installation.started" -> ""
|
|
132
|
+
*/
|
|
133
|
+
private extractAttributeValue;
|
|
112
134
|
}
|
|
113
135
|
/**
|
|
114
136
|
* Create a validator instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/narrative/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQtD,MAAM,WAAW,0BAA0B;IACzC,6CAA6C;IAC7C,SAAS,EAAE,iBAAiB,CAAC;IAE7B,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IAEtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,2BAA2B;IAC3B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IAEjC,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/narrative/validator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQtD,MAAM,WAAW,0BAA0B;IACzC,6CAA6C;IAC7C,SAAS,EAAE,iBAAiB,CAAC;IAE7B,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IAEtB,iCAAiC;IACjC,MAAM,CAAC,EAAE,cAAc,CAAC;IAExB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IAEjB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IAEf,qBAAqB;IACrB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAE3B,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IAEb,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAEhB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IAEf,4BAA4B;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,2BAA2B;IAC3B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IAEjC,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,wBAAwB;IACxB,YAAY,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAMD,qBAAa,kBAAkB;IAC7B;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,yBAAyB,CAAC;IAqBrC;;OAEG;IACH,OAAO,CAAC,WAAW;IA4InB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAuE5B;;OAEG;IACH,OAAO,CAAC,cAAc;IA6ItB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqD/B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqD9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA+D5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4E3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyF9B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAOhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA4B9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA4BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;CAO9B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D"}
|
|
@@ -22,6 +22,7 @@ export class NarrativeValidator {
|
|
|
22
22
|
violations.push(...this.checkAttributeReferences(context));
|
|
23
23
|
}
|
|
24
24
|
violations.push(...this.checkScenarios(context));
|
|
25
|
+
violations.push(...this.checkEventNameSyntax(context));
|
|
25
26
|
violations.push(...this.checkTemplateSyntax(context));
|
|
26
27
|
violations.push(...this.checkFormattingOptions(context));
|
|
27
28
|
return this.aggregateResults(violations);
|
|
@@ -499,6 +500,67 @@ export class NarrativeValidator {
|
|
|
499
500
|
}
|
|
500
501
|
return violations;
|
|
501
502
|
}
|
|
503
|
+
/**
|
|
504
|
+
* Check that event names don't use attribute filter syntax
|
|
505
|
+
*/
|
|
506
|
+
checkEventNameSyntax(context) {
|
|
507
|
+
const violations = [];
|
|
508
|
+
const { narrative, narrativePath } = context;
|
|
509
|
+
narrative.scenarios.forEach((scenario, scenarioIdx) => {
|
|
510
|
+
// Check condition.requires
|
|
511
|
+
if (scenario.condition?.requires) {
|
|
512
|
+
scenario.condition.requires.forEach((eventPattern, idx) => {
|
|
513
|
+
if (eventPattern.includes('[') && eventPattern.includes(']')) {
|
|
514
|
+
violations.push({
|
|
515
|
+
ruleId: 'narrative-event-name-syntax',
|
|
516
|
+
severity: 'error',
|
|
517
|
+
file: narrativePath,
|
|
518
|
+
path: `scenarios[${scenarioIdx}].condition.requires[${idx}]`,
|
|
519
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventPattern}"`,
|
|
520
|
+
impact: 'Attribute filter syntax is not supported - event will not match',
|
|
521
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventPattern)}.${this.extractAttributeValue(eventPattern)}")`,
|
|
522
|
+
fixable: false,
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
// Check condition.excludes
|
|
528
|
+
if (scenario.condition?.excludes) {
|
|
529
|
+
scenario.condition.excludes.forEach((eventPattern, idx) => {
|
|
530
|
+
if (eventPattern.includes('[') && eventPattern.includes(']')) {
|
|
531
|
+
violations.push({
|
|
532
|
+
ruleId: 'narrative-event-name-syntax',
|
|
533
|
+
severity: 'error',
|
|
534
|
+
file: narrativePath,
|
|
535
|
+
path: `scenarios[${scenarioIdx}].condition.excludes[${idx}]`,
|
|
536
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventPattern}"`,
|
|
537
|
+
impact: 'Attribute filter syntax is not supported - event will not match',
|
|
538
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventPattern)}.${this.extractAttributeValue(eventPattern)}")`,
|
|
539
|
+
fixable: false,
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
// Check template.events
|
|
545
|
+
if (scenario.template?.events) {
|
|
546
|
+
Object.keys(scenario.template.events).forEach((eventName) => {
|
|
547
|
+
if (eventName.includes('[') && eventName.includes(']')) {
|
|
548
|
+
violations.push({
|
|
549
|
+
ruleId: 'narrative-event-name-syntax',
|
|
550
|
+
severity: 'error',
|
|
551
|
+
file: narrativePath,
|
|
552
|
+
path: `scenarios[${scenarioIdx}].template.events["${eventName}"]`,
|
|
553
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventName}"`,
|
|
554
|
+
impact: 'Attribute filter syntax is not supported - template will never render',
|
|
555
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventName)}.${this.extractAttributeValue(eventName)}")`,
|
|
556
|
+
fixable: false,
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
});
|
|
562
|
+
return violations;
|
|
563
|
+
}
|
|
502
564
|
/**
|
|
503
565
|
* Check template syntax (balanced braces, valid expressions)
|
|
504
566
|
*/
|
|
@@ -711,6 +773,36 @@ export class NarrativeValidator {
|
|
|
711
773
|
const regex = new RegExp(`^${pattern}$`);
|
|
712
774
|
return availableEvents.some((e) => regex.test(e));
|
|
713
775
|
}
|
|
776
|
+
/**
|
|
777
|
+
* Extract base event name from event pattern
|
|
778
|
+
*
|
|
779
|
+
* Examples:
|
|
780
|
+
* - "installation.started" -> "installation.started"
|
|
781
|
+
* - "installation.progress[stage=skills_discovered]" -> "installation.progress"
|
|
782
|
+
* - "error.*[severity=high]" -> "error.*"
|
|
783
|
+
*/
|
|
784
|
+
extractBaseEventName(eventPattern) {
|
|
785
|
+
const bracketIndex = eventPattern.indexOf('[');
|
|
786
|
+
if (bracketIndex === -1) {
|
|
787
|
+
return eventPattern;
|
|
788
|
+
}
|
|
789
|
+
return eventPattern.substring(0, bracketIndex);
|
|
790
|
+
}
|
|
791
|
+
/**
|
|
792
|
+
* Extract attribute value from event pattern for suggestion
|
|
793
|
+
*
|
|
794
|
+
* Examples:
|
|
795
|
+
* - "installation.progress[stage=skills_discovered]" -> "skills_discovered"
|
|
796
|
+
* - "error.*[severity=high]" -> "high"
|
|
797
|
+
* - "installation.started" -> ""
|
|
798
|
+
*/
|
|
799
|
+
extractAttributeValue(eventPattern) {
|
|
800
|
+
const match = eventPattern.match(/\[.*?=(.*?)\]/);
|
|
801
|
+
if (!match) {
|
|
802
|
+
return '';
|
|
803
|
+
}
|
|
804
|
+
return match[1];
|
|
805
|
+
}
|
|
714
806
|
}
|
|
715
807
|
/**
|
|
716
808
|
* Create a validator instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/narrative/validator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/narrative/validator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -99,6 +99,7 @@ export class NarrativeValidator {
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
violations.push(...this.checkScenarios(context));
|
|
102
|
+
violations.push(...this.checkEventNameSyntax(context));
|
|
102
103
|
violations.push(...this.checkTemplateSyntax(context));
|
|
103
104
|
violations.push(...this.checkFormattingOptions(context));
|
|
104
105
|
|
|
@@ -613,6 +614,72 @@ export class NarrativeValidator {
|
|
|
613
614
|
return violations;
|
|
614
615
|
}
|
|
615
616
|
|
|
617
|
+
/**
|
|
618
|
+
* Check that event names don't use attribute filter syntax
|
|
619
|
+
*/
|
|
620
|
+
private checkEventNameSyntax(context: NarrativeValidationContext): NarrativeViolation[] {
|
|
621
|
+
const violations: NarrativeViolation[] = [];
|
|
622
|
+
const { narrative, narrativePath } = context;
|
|
623
|
+
|
|
624
|
+
narrative.scenarios.forEach((scenario, scenarioIdx) => {
|
|
625
|
+
// Check condition.requires
|
|
626
|
+
if (scenario.condition?.requires) {
|
|
627
|
+
scenario.condition.requires.forEach((eventPattern, idx) => {
|
|
628
|
+
if (eventPattern.includes('[') && eventPattern.includes(']')) {
|
|
629
|
+
violations.push({
|
|
630
|
+
ruleId: 'narrative-event-name-syntax',
|
|
631
|
+
severity: 'error',
|
|
632
|
+
file: narrativePath,
|
|
633
|
+
path: `scenarios[${scenarioIdx}].condition.requires[${idx}]`,
|
|
634
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventPattern}"`,
|
|
635
|
+
impact: 'Attribute filter syntax is not supported - event will not match',
|
|
636
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventPattern)}.${this.extractAttributeValue(eventPattern)}")`,
|
|
637
|
+
fixable: false,
|
|
638
|
+
});
|
|
639
|
+
}
|
|
640
|
+
});
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// Check condition.excludes
|
|
644
|
+
if (scenario.condition?.excludes) {
|
|
645
|
+
scenario.condition.excludes.forEach((eventPattern, idx) => {
|
|
646
|
+
if (eventPattern.includes('[') && eventPattern.includes(']')) {
|
|
647
|
+
violations.push({
|
|
648
|
+
ruleId: 'narrative-event-name-syntax',
|
|
649
|
+
severity: 'error',
|
|
650
|
+
file: narrativePath,
|
|
651
|
+
path: `scenarios[${scenarioIdx}].condition.excludes[${idx}]`,
|
|
652
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventPattern}"`,
|
|
653
|
+
impact: 'Attribute filter syntax is not supported - event will not match',
|
|
654
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventPattern)}.${this.extractAttributeValue(eventPattern)}")`,
|
|
655
|
+
fixable: false,
|
|
656
|
+
});
|
|
657
|
+
}
|
|
658
|
+
});
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
// Check template.events
|
|
662
|
+
if (scenario.template?.events) {
|
|
663
|
+
Object.keys(scenario.template.events).forEach((eventName) => {
|
|
664
|
+
if (eventName.includes('[') && eventName.includes(']')) {
|
|
665
|
+
violations.push({
|
|
666
|
+
ruleId: 'narrative-event-name-syntax',
|
|
667
|
+
severity: 'error',
|
|
668
|
+
file: narrativePath,
|
|
669
|
+
path: `scenarios[${scenarioIdx}].template.events["${eventName}"]`,
|
|
670
|
+
message: `Event name uses unsupported [attribute=value] syntax: "${eventName}"`,
|
|
671
|
+
impact: 'Attribute filter syntax is not supported - template will never render',
|
|
672
|
+
suggestion: `Use a distinct event name instead (e.g., "${this.extractBaseEventName(eventName)}.${this.extractAttributeValue(eventName)}")`,
|
|
673
|
+
fixable: false,
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
});
|
|
677
|
+
}
|
|
678
|
+
});
|
|
679
|
+
|
|
680
|
+
return violations;
|
|
681
|
+
}
|
|
682
|
+
|
|
616
683
|
/**
|
|
617
684
|
* Check template syntax (balanced braces, valid expressions)
|
|
618
685
|
*/
|
|
@@ -880,6 +947,38 @@ export class NarrativeValidator {
|
|
|
880
947
|
|
|
881
948
|
return availableEvents.some((e) => regex.test(e));
|
|
882
949
|
}
|
|
950
|
+
|
|
951
|
+
/**
|
|
952
|
+
* Extract base event name from event pattern
|
|
953
|
+
*
|
|
954
|
+
* Examples:
|
|
955
|
+
* - "installation.started" -> "installation.started"
|
|
956
|
+
* - "installation.progress[stage=skills_discovered]" -> "installation.progress"
|
|
957
|
+
* - "error.*[severity=high]" -> "error.*"
|
|
958
|
+
*/
|
|
959
|
+
private extractBaseEventName(eventPattern: string): string {
|
|
960
|
+
const bracketIndex = eventPattern.indexOf('[');
|
|
961
|
+
if (bracketIndex === -1) {
|
|
962
|
+
return eventPattern;
|
|
963
|
+
}
|
|
964
|
+
return eventPattern.substring(0, bracketIndex);
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
/**
|
|
968
|
+
* Extract attribute value from event pattern for suggestion
|
|
969
|
+
*
|
|
970
|
+
* Examples:
|
|
971
|
+
* - "installation.progress[stage=skills_discovered]" -> "skills_discovered"
|
|
972
|
+
* - "error.*[severity=high]" -> "high"
|
|
973
|
+
* - "installation.started" -> ""
|
|
974
|
+
*/
|
|
975
|
+
private extractAttributeValue(eventPattern: string): string {
|
|
976
|
+
const match = eventPattern.match(/\[.*?=(.*?)\]/);
|
|
977
|
+
if (!match) {
|
|
978
|
+
return '';
|
|
979
|
+
}
|
|
980
|
+
return match[1];
|
|
981
|
+
}
|
|
883
982
|
}
|
|
884
983
|
|
|
885
984
|
/**
|