@aster-cloud/aster-lang-ts 1.1.0 → 1.2.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.
- package/CHANGELOG.md +40 -0
- package/dist/scripts/generate-diagnostic-overlays.d.ts +29 -0
- package/dist/scripts/generate-diagnostic-overlays.d.ts.map +1 -0
- package/dist/scripts/generate-diagnostic-overlays.js +90 -0
- package/dist/scripts/generate-diagnostic-overlays.js.map +1 -0
- package/dist/scripts/golden.js +29 -4
- package/dist/scripts/golden.js.map +1 -1
- package/dist/scripts/verify-lexicon-sync.js +26 -0
- package/dist/scripts/verify-lexicon-sync.js.map +1 -1
- package/dist/src/ast/ast.d.ts +1 -0
- package/dist/src/ast/ast.d.ts.map +1 -1
- package/dist/src/ast/ast.js +6 -0
- package/dist/src/ast/ast.js.map +1 -1
- package/dist/src/ast/type-nodes.d.ts +25 -0
- package/dist/src/ast/type-nodes.d.ts.map +1 -0
- package/dist/src/ast/type-nodes.js +56 -0
- package/dist/src/ast/type-nodes.js.map +1 -0
- package/dist/src/browser.d.ts.map +1 -1
- package/dist/src/browser.js +3 -2
- package/dist/src/browser.js.map +1 -1
- package/dist/src/cnl-printer.d.ts.map +1 -1
- package/dist/src/cnl-printer.js +10 -9
- package/dist/src/cnl-printer.js.map +1 -1
- package/dist/src/config/lexicons/diagnostic-messages.d.ts +7 -5
- package/dist/src/config/lexicons/diagnostic-messages.d.ts.map +1 -1
- package/dist/src/config/lexicons/diagnostic-messages.js +17 -125
- package/dist/src/config/lexicons/diagnostic-messages.js.map +1 -1
- package/dist/src/config/lexicons/diagnostic-overlays.generated.d.ts +9 -0
- package/dist/src/config/lexicons/diagnostic-overlays.generated.d.ts.map +1 -0
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js +615 -0
- package/dist/src/config/lexicons/diagnostic-overlays.generated.js.map +1 -0
- package/dist/src/core/core_ir.d.ts +2 -0
- package/dist/src/core/core_ir.d.ts.map +1 -1
- package/dist/src/core/core_ir.js +6 -0
- package/dist/src/core/core_ir.js.map +1 -1
- package/dist/src/frontend/resolve-declarations.d.ts.map +1 -1
- package/dist/src/frontend/resolve-declarations.js +24 -40
- package/dist/src/frontend/resolve-declarations.js.map +1 -1
- package/dist/src/lower_to_core.js +4 -0
- package/dist/src/lower_to_core.js.map +1 -1
- package/dist/src/lsp/completion.d.ts +23 -0
- package/dist/src/lsp/completion.d.ts.map +1 -1
- package/dist/src/lsp/completion.js +95 -5
- package/dist/src/lsp/completion.js.map +1 -1
- package/dist/src/lsp/diagnostics.d.ts.map +1 -1
- package/dist/src/lsp/diagnostics.js +8 -1
- package/dist/src/lsp/diagnostics.js.map +1 -1
- package/dist/src/lsp/navigation/definition.d.ts +2 -1
- package/dist/src/lsp/navigation/definition.d.ts.map +1 -1
- package/dist/src/lsp/navigation/definition.js +35 -1
- package/dist/src/lsp/navigation/definition.js.map +1 -1
- package/dist/src/lsp/parse-document.d.ts +1 -1
- package/dist/src/lsp/parse-document.d.ts.map +1 -1
- package/dist/src/lsp/parse-document.js +16 -1
- package/dist/src/lsp/parse-document.js.map +1 -1
- package/dist/src/parser/context.d.ts +3 -3
- package/dist/src/parser/context.d.ts.map +1 -1
- package/dist/src/parser/context.js +1 -1
- package/dist/src/parser/context.js.map +1 -1
- package/dist/src/parser/decl-parser.d.ts.map +1 -1
- package/dist/src/parser/decl-parser.js +7 -6
- package/dist/src/parser/decl-parser.js.map +1 -1
- package/dist/src/parser/type-parser.d.ts.map +1 -1
- package/dist/src/parser/type-parser.js +42 -0
- package/dist/src/parser/type-parser.js.map +1 -1
- package/dist/src/parser.d.ts.map +1 -1
- package/dist/src/parser.js +5 -2
- package/dist/src/parser.js.map +1 -1
- package/dist/src/typecheck/diagnostics.d.ts +10 -0
- package/dist/src/typecheck/diagnostics.d.ts.map +1 -1
- package/dist/src/typecheck/diagnostics.js +27 -0
- package/dist/src/typecheck/diagnostics.js.map +1 -1
- package/dist/src/types.d.ts +14 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/src/version.d.ts +2 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +2 -1
- package/dist/src/version.js.map +1 -1
- package/dist/test/integration/scripts/typecheck-cli-repl.test.d.ts +2 -0
- package/dist/test/integration/scripts/typecheck-cli-repl.test.d.ts.map +1 -0
- package/dist/test/integration/scripts/typecheck-cli-repl.test.js +133 -0
- package/dist/test/integration/scripts/typecheck-cli-repl.test.js.map +1 -0
- package/dist/test/unit/diagnostics/diagnostic-overlays.test.d.ts +2 -0
- package/dist/test/unit/diagnostics/diagnostic-overlays.test.d.ts.map +1 -0
- package/dist/test/unit/diagnostics/diagnostic-overlays.test.js +156 -0
- package/dist/test/unit/diagnostics/diagnostic-overlays.test.js.map +1 -0
- package/dist/test/unit/diagnostics/resolution-codes.test.d.ts +1 -1
- package/dist/test/unit/diagnostics/resolution-codes.test.js +38 -25
- package/dist/test/unit/diagnostics/resolution-codes.test.js.map +1 -1
- package/dist/test/unit/formatter-corpus-roundtrip.test.js +0 -4
- package/dist/test/unit/formatter-corpus-roundtrip.test.js.map +1 -1
- package/dist/test/unit/formatter-roundtrip.test.js +84 -0
- package/dist/test/unit/formatter-roundtrip.test.js.map +1 -1
- package/dist/test/unit/frontend/resolve-declarations.test.js +59 -0
- package/dist/test/unit/frontend/resolve-declarations.test.js.map +1 -1
- package/dist/test/unit/lsp/parse-document.test.js +42 -0
- package/dist/test/unit/lsp/parse-document.test.js.map +1 -1
- package/dist/test/unit/lsp/resolution-completion.test.js +53 -0
- package/dist/test/unit/lsp/resolution-completion.test.js.map +1 -1
- package/dist/test/unit/lsp/resolution-definition.test.d.ts +2 -0
- package/dist/test/unit/lsp/resolution-definition.test.d.ts.map +1 -0
- package/dist/test/unit/lsp/resolution-definition.test.js +75 -0
- package/dist/test/unit/lsp/resolution-definition.test.js.map +1 -0
- package/dist/test/unit/parser/func-type.test.d.ts +2 -0
- package/dist/test/unit/parser/func-type.test.d.ts.map +1 -0
- package/dist/test/unit/parser/func-type.test.js +161 -0
- package/dist/test/unit/parser/func-type.test.js.map +1 -0
- package/dist/test/unit/parser/parser.test.js +11 -0
- package/dist/test/unit/parser/parser.test.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,615 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 本文件由 scripts/generate-diagnostic-overlays.ts 生成,请勿手工修改。
|
|
3
|
+
* 数据来源:aster-lang-core exportLexicons 导出的 lexicons.json 中各语言包的
|
|
4
|
+
* diagnosticMessages / diagnosticHelp overlay(译文唯一来源为 aster-lang-locales 与 aster-lang-hi)。
|
|
5
|
+
*/
|
|
6
|
+
/** 语言 id → 诊断译文 overlay(与语言包 overlays/diagnostic-*.json 原样一致)。 */
|
|
7
|
+
export const DIAGNOSTIC_OVERLAYS = {
|
|
8
|
+
'de-DE': {
|
|
9
|
+
"diagnosticMessages": {
|
|
10
|
+
"version": 1,
|
|
11
|
+
"messages": {
|
|
12
|
+
"E001": "Typkonflikt: erwartet {expected}, erhalten {actual}",
|
|
13
|
+
"E002": "Typkonflikt bei Zuweisung an '{name}': {expected} vs {actual}",
|
|
14
|
+
"E003": "Rückgabetyp passt nicht: erwartet {expected}, erhalten {actual}",
|
|
15
|
+
"E004": "Typvariable '{name}' wird in '{func}' verwendet, ist aber nicht in dessen Typparametern deklariert.",
|
|
16
|
+
"E005": "Typparameter '{name}' von '{func}' ist deklariert, wird aber nicht verwendet.",
|
|
17
|
+
"E006": "Typvariablenähnlicher Name '{name}' wird in '{func}' verwendet, ist aber nicht deklariert; deklarieren Sie ihn mit 'of {name}'.",
|
|
18
|
+
"E007": "Typvariable '{name}' wurde widersprüchlich abgeleitet: {previous} vs {actual}",
|
|
19
|
+
"E008": "Typkonflikt zwischen If-Zweigen: then {thenType} vs else {elseType}",
|
|
20
|
+
"E009": "Rückgabetypen der Match-Fälle unterscheiden sich: {expected} vs {actual}",
|
|
21
|
+
"E010": "Ganzzahlmuster auf einem Nicht-Int-Prüfwert ({scrutineeType}) verwendet",
|
|
22
|
+
"E011": "Unbekanntes Feld '{field}' für {type}",
|
|
23
|
+
"E012": "Feld '{field}' erwartet {expected}, erhalten {actual}",
|
|
24
|
+
"E013": "Bei der Konstruktion von {type} fehlt das Pflichtfeld '{field}'",
|
|
25
|
+
"E014": "not(...) erwartet 1 Argument",
|
|
26
|
+
"E015": "await erwartet Maybe<T> oder Result<T,E>, erhalten {type}",
|
|
27
|
+
"E016": "Doppelter Enum-Fall '{case}' im Match auf {type}.",
|
|
28
|
+
"E017": "Unvollständiger Match auf Maybe-Typ; der Fall {missing} fehlt.",
|
|
29
|
+
"E018": "Unvollständiger Match auf {type}; es fehlen: {missing}",
|
|
30
|
+
"E019": "Mehrdeutiger Interop-Aufruf '{target}': gemischte Zahlenarten (Int={hasInt}, Long={hasLong}, Double={hasDouble}). Die Überladungsauflösung kann implizit erweitern oder boxen.",
|
|
31
|
+
"E020": "Elementtyp im Listenliteral passt nicht: erwartet {expected}, erhalten {actual}",
|
|
32
|
+
"E021": "Hier ist ein optionaler Wert erforderlich: erwartet Maybe oder Option, erhalten {actual}",
|
|
33
|
+
"E022": "Der Kompensationsblock von Schritt '{step}' muss Result<Unit, {expectedErr}> zurückgeben, erhalten {actual}",
|
|
34
|
+
"E023": "Schritt '{step}' hat Seiteneffekte, definiert aber keinen Kompensationsblock.",
|
|
35
|
+
"E024": "Die maximale Anzahl an Workflow-Wiederholungen muss größer als null sein (tatsächlich: {maxAttempts}).",
|
|
36
|
+
"E025": "Das Workflow-Timeout muss größer als null Millisekunden sein (tatsächlich: {milliseconds}).",
|
|
37
|
+
"E026": "Workflow '{func}' muss den Effekt @io deklarieren, bevor ein 'workflow'-Block verwendet wird.",
|
|
38
|
+
"E027": "Schritt '{step}' von Workflow '{func}' nutzt die Fähigkeit {capability}, die im Funktionskopf nicht deklariert ist.",
|
|
39
|
+
"E028": "Der Kompensationsblock von Schritt '{step}' in Funktion '{func}' führt die neue Fähigkeit {capability} ein, die im Hauptteil des Schritts nicht vorkommt.",
|
|
40
|
+
"E029": "Workflow-Schritt '{step}' hängt vom undefinierten Schritt '{dependency}' ab.",
|
|
41
|
+
"E030": "Der Workflow enthält eine zyklische Schrittabhängigkeit: {cycle}",
|
|
42
|
+
"E031": "Decimal und Double können in '{operator}' nicht kombiniert werden. Double ist eine binäre Gleitkommazahl und würde Rundungsfehler in ein exaktes Decimal einbringen. Verwenden Sie auf beiden Seiten Decimal-Literale (z. B. 1.08m) oder Int/Long (exakte Erweiterung).",
|
|
43
|
+
"E032": "Funktion '{func}' erwartet {expected} Argument(e), erhalten {actual}.",
|
|
44
|
+
"E070": "PII-Daten dürfen keinem Ziel mit niedrigerer Stufe zugewiesen werden: {source} -> {target}",
|
|
45
|
+
"E072": "PII-Daten der Stufe {level} werden ohne Bereinigung an {sinkKind} ausgegeben",
|
|
46
|
+
"E073": "PII-Argumenttyp passt nicht: erwartet {expected}, erhalten {actual}",
|
|
47
|
+
"E100": "Doppelter Import-Alias '{alias}'.",
|
|
48
|
+
"E101": "Undefinierte Variable: {name}",
|
|
49
|
+
"E102": "Mehrere @entry-Regeln im Modul: {rules}",
|
|
50
|
+
"E103": "Konflikt beim Importsymbol: {symbol}",
|
|
51
|
+
"E104": "Symbol '{name}' ist in diesem Gültigkeitsbereich bereits definiert.",
|
|
52
|
+
"E200": "Funktion '{func}' führt möglicherweise I/O aus, aber der Effekt @io fehlt.",
|
|
53
|
+
"E201": "Funktion '{func}' führt möglicherweise CPU-intensive Arbeit aus, aber der Effekt @cpu (oder @io) fehlt.",
|
|
54
|
+
"E202": "Funktion '{func}' deklariert @io, es wurde aber nur CPU-artige Arbeit gefunden; @io umfasst @cpu und ist möglicherweise unnötig.",
|
|
55
|
+
"E203": "Funktion '{func}' deklariert @io, es wurde aber kein offensichtliches I/O gefunden.",
|
|
56
|
+
"E204": "Funktion '{func}' deklariert @cpu, es wurde aber keine offensichtliche CPU-intensive Arbeit gefunden.",
|
|
57
|
+
"E205": "Funktion '{func}' fehlt die Effektdeklaration @io; die Ableitung erfordert IO.",
|
|
58
|
+
"E206": "Funktion '{func}' fehlt die Effektdeklaration @cpu; die Ableitung erfordert CPU (oder @io).",
|
|
59
|
+
"E207": "Funktion '{func}' deklariert @io, aber es wurden keine IO-Seiteneffekte abgeleitet.",
|
|
60
|
+
"E208": "Funktion '{func}' deklariert @cpu, aber es wurden keine CPU-Seiteneffekte abgeleitet.",
|
|
61
|
+
"E209": "Funktion '{func}' deklariert sowohl @cpu als auch @io; @cpu ist überflüssig, da @io erforderlich ist.",
|
|
62
|
+
"E210": "Effektvariable {var} ist nicht deklariert",
|
|
63
|
+
"E211": "Effektvariable {vars} konnte nicht in konkrete Effekte aufgelöst werden",
|
|
64
|
+
"E212": "Der Effekt der eingebauten Funktion '{builtin}', aufgerufen von '{func}', ist unbekannt; sie wird NICHT als rein angenommen",
|
|
65
|
+
"E300": "Funktion '{func}' benötigt die Fähigkeit {cap}, aber das Manifest für Modul '{module}' verweigert sie.",
|
|
66
|
+
"E301": "Funktion '{func}' nutzt die Fähigkeit {cap}, aber der Kopf deklariert [{declared}].",
|
|
67
|
+
"E302": "Funktion '{func}' deklariert die Fähigkeit {cap}, nutzt sie aber nicht.",
|
|
68
|
+
"E303": "Funktion '{func}' nutzt IO-Fähigkeiten [{capabilities}], aber der Effekt @io fehlt (z. B. {calls}).",
|
|
69
|
+
"E304": "Funktion '{func}' ruft CPU-Fähigkeiten auf (z. B. {calls}), deklariert aber weder den Effekt @cpu noch @io.",
|
|
70
|
+
"E400": "PII-Daten werden unverschlüsselt über HTTP übertragen",
|
|
71
|
+
"E401": "PII-Annotation fehlt für einen Wert, der in '{sink}' fließt",
|
|
72
|
+
"E402": "PII-Sensitivität passt nicht: erforderlich {required}, erhalten {actual}",
|
|
73
|
+
"E403": "Funktion '{func}' verarbeitet PII-Daten ohne Einwilligungsprüfung (DSGVO Art. 6)",
|
|
74
|
+
"E404": "Die PII-Sicherheitsanalyse für dieses Modul ist fehlgeschlagen – der Editor kann nicht prüfen, ob sensible Daten korrekt behandelt werden. Diese Richtlinie sollte erst bereitgestellt werden, wenn die Analyse erfolgreich ist. Interner Grund: {reason}",
|
|
75
|
+
"E500": "Gestartete asynchrone Aufgabe '{task}' wird nicht erwartet",
|
|
76
|
+
"E501": "Es wird auf die asynchrone Aufgabe '{task}' gewartet, die nie gestartet wurde",
|
|
77
|
+
"E502": "Asynchrone Aufgabe '{task}' wurde mehrfach gestartet ({count} Vorkommen)",
|
|
78
|
+
"E503": "Auf die asynchrone Aufgabe '{task}' wird mehrfach gewartet ({count} Vorkommen)",
|
|
79
|
+
"E504": "Das Warten auf die asynchrone Aufgabe '{task}' erfolgt vor jedem passenden Start",
|
|
80
|
+
"W071": "Implizite Erhöhung der PII-Stufe erkannt: {source} -> {target}",
|
|
81
|
+
"W074": "PII-Daten fließen möglicherweise ohne Annotation an {sinkKind}",
|
|
82
|
+
"W105": "Die Wiederholungskonfiguration des Workflows ist möglicherweise unangemessen: {reason}",
|
|
83
|
+
"W106": "Die Timeout-Konfiguration des Workflows ist möglicherweise unangemessen: {reason}",
|
|
84
|
+
"W700": "Regel '{rule}' gibt Verdict zurück, hat aber keine @id-Annotation",
|
|
85
|
+
"E701": "Doppelte Regel-@id '{id}' bei den Regeln: {rules}",
|
|
86
|
+
"E702": "Annotation @{annotation} an Regel '{rule}' erwartet genau ein String-Literal als Argument",
|
|
87
|
+
"E703": "{func} erwartet {expected} Argument(e), erhalten {actual}",
|
|
88
|
+
"W704": "Kontrolle '{control}' an Regel '{rule}' ist nicht registriert (Kontrollregister {version})",
|
|
89
|
+
"E705": "Modul '{module}' deklariert das unbekannte Profil '{profile}' (Kontrollregister {version})",
|
|
90
|
+
"E706": "Regel '{rule}' verletzt das Profil '{profile}': {requirement}",
|
|
91
|
+
"E707": "Die Governance-Prüfung für Modul '{module}' (Profil '{profile}') konnte nicht ausgeführt werden; Speichern ist blockiert, bis sie erfolgreich ist",
|
|
92
|
+
"E720": "Regel '{rule}' kann nicht nach Cedar exportiert werden: {reason}",
|
|
93
|
+
"E721": "Regel '{rule}' verwendet {construct}, wofür es keine Cedar-Übersetzung gibt",
|
|
94
|
+
"E722": "Kontextschlüssel '{key}' in Regel '{rule}' wird sowohl als {first} als auch als {second} verwendet",
|
|
95
|
+
"E723": "Der Cedar-Export von Regel '{rule}' weicht bei Probe {probe} von Aster ab: Aster {aster}, Cedar {cedar}",
|
|
96
|
+
"E724": "Das für Regel '{rule}' erzeugte Cedar hat die Schemavalidierung nicht bestanden: {detail}",
|
|
97
|
+
"E800": "Typ '{written}' kann an Position {role} nicht aufgelöst werden",
|
|
98
|
+
"E801": "Feld '{written}' kann an Position {role} nicht aufgelöst werden",
|
|
99
|
+
"E802": "Name '{written}' kann an Position {role} nicht aufgelöst werden",
|
|
100
|
+
"E803": "Muster '{written}' kann an Position {role} nicht aufgelöst werden",
|
|
101
|
+
"E804": "Name '{written}' an Position {role} ist mehrdeutig zwischen: {candidates}",
|
|
102
|
+
"E805": "Feld '{written}' an Position {role} ist mehrdeutig zwischen: {candidates}",
|
|
103
|
+
"E806": "Muster '{written}' an Position {role} ist mehrdeutig zwischen: {candidates}",
|
|
104
|
+
"E807": "Doppelte Deklaration von '{written}' an Position {role}",
|
|
105
|
+
"W800": "Deklaration '{written}' an Position {role} verdeckt einen Vokabulareintrag",
|
|
106
|
+
"W801": "'{written}' an Position {role} wurde ohne bekannten Empfängertyp aufgelöst"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"diagnosticHelp": {
|
|
110
|
+
"version": 1,
|
|
111
|
+
"help": {
|
|
112
|
+
"E001": "Prüfen Sie, ob die Typannotation zum abgeleiteten Typ des Ausdrucks passt.",
|
|
113
|
+
"E002": "Stellen Sie sicher, dass der Typ der vorherigen Bindung der Variablen zur aktuellen Zuweisung passt.",
|
|
114
|
+
"E003": "Prüfen Sie, ob die Return-Anweisung zum deklarierten Rückgabetyp passt.",
|
|
115
|
+
"E004": "Deklarieren Sie verwendete Typvariablen in der 'of'-Klausel der Funktionssignatur.",
|
|
116
|
+
"E005": "Entfernen Sie ungenutzte Typparameter, um Verwirrung zu vermeiden.",
|
|
117
|
+
"E006": "Deklarieren Sie Namen, die wie Typvariablen aussehen, in der 'of'-Klausel.",
|
|
118
|
+
"E007": "Stellen Sie sicher, dass alle Verwendungsstellen einer Typvariablen denselben konkreten Typ ergeben.",
|
|
119
|
+
"E008": "Stellen Sie sicher, dass beide Zweige eines If-Ausdrucks denselben Typ zurückgeben.",
|
|
120
|
+
"E009": "Prüfen Sie, ob alle Match-Zweige denselben Typ zurückgeben.",
|
|
121
|
+
"E010": "Verwenden Sie Ganzzahlmuster nur in Match-Ausdrücken vom Typ Int.",
|
|
122
|
+
"E011": "Prüfen Sie, ob der Feldname für den Datentyp korrekt ist.",
|
|
123
|
+
"E012": "Prüfen Sie, ob der Initialisierungsausdruck des Felds zum deklarierten Typ passt.",
|
|
124
|
+
"E013": "Geben Sie alle im Datentyp deklarierten Pflichtfelder an.",
|
|
125
|
+
"E014": "Rufen Sie not() mit genau 1 Argument auf.",
|
|
126
|
+
"E015": "Verwenden Sie await nur mit Maybe- oder Result-Typen.",
|
|
127
|
+
"E016": "Entfernen Sie doppelte Enum-Zweige, damit der Match übersichtlich bleibt.",
|
|
128
|
+
"E017": "Ergänzen Sie für Maybe-Matches sowohl den null- als auch den Nicht-null-Zweig.",
|
|
129
|
+
"E018": "Ergänzen Sie alle nicht abgedeckten Enum-Zweige oder fügen Sie einen Platzhalter hinzu.",
|
|
130
|
+
"E019": "Vereinheitlichen Sie die numerischen Argumenttypen in Interop-Aufrufen, um implizites Boxing und Erweitern zu vermeiden.",
|
|
131
|
+
"E020": "Stellen Sie sicher, dass alle Elemente eines Listenliterals denselben Typ haben.",
|
|
132
|
+
"E021": "Übergeben Sie einen Maybe-/Option-Typ oder verpacken Sie den Wert explizit.",
|
|
133
|
+
"E022": "Stellen Sie sicher, dass der Kompensationsblock Result<Unit, E> zurückgibt, wobei E der Fehlertyp des Schritts ist.",
|
|
134
|
+
"E023": "Geben Sie Schritten mit IO-Seiteneffekten einen Kompensationsblock, damit ein Rollback möglich ist.",
|
|
135
|
+
"E024": "Setzen Sie retry.maxAttempts auf eine positive ganze Zahl.",
|
|
136
|
+
"E025": "Setzen Sie das Timeout auf einen positiven Wert, damit die Kompensationslogik ausgelöst werden kann.",
|
|
137
|
+
"E026": "Fügen Sie dem Funktionskopf die Effektdeklaration @io hinzu.",
|
|
138
|
+
"E027": "Deklarieren Sie {capability} im Funktionskopf oder passen Sie den Code des Schritts an.",
|
|
139
|
+
"E028": "Kompensationsblöcke dürfen nur Fähigkeiten aus dem Hauptteil des Schritts wiederverwenden.",
|
|
140
|
+
"E029": "Verweisen Sie nur auf deklarierte Schrittnamen im aktuellen Workflow.",
|
|
141
|
+
"E030": "Entfernen Sie zyklische Abhängigkeiten oder strukturieren Sie sie um, damit eine topologische Ausführung möglich ist.",
|
|
142
|
+
"E031": "Machen Sie beide Operanden zu Decimal (Suffix m) oder verwenden Sie Int/Long, die exakt zu Decimal erweitert werden.",
|
|
143
|
+
"E032": "Passen Sie den Aufruf so an, dass genau die deklarierte Anzahl an Argumenten übergeben wird.",
|
|
144
|
+
"E070": "Verwenden Sie eine Bereinigungsfunktion oder deklarieren Sie am Ziel eine passende @pii-Stufe.",
|
|
145
|
+
"E072": "Rufen Sie vor der Ausgabe redact() oder tokenize() auf, um die Sensitivität zu verringern.",
|
|
146
|
+
"E073": "Prüfen Sie die Funktionssignatur, damit PII-Stufen und -Kategorien übereinstimmen.",
|
|
147
|
+
"E100": "Verwenden Sie für verschiedene Importe eindeutige Aliase, um Verdeckungen zu vermeiden.",
|
|
148
|
+
"E101": "Deklarieren und initialisieren Sie die Variable vor der Verwendung.",
|
|
149
|
+
"E102": "Behalten Sie in einem Modul höchstens eine mit @entry annotierte Regel.",
|
|
150
|
+
"E103": "Passen Sie den Import-Alias oder den Namen der lokalen Top-Level-Deklaration an, um den Konflikt beim Importsymbol zu vermeiden.",
|
|
151
|
+
"E104": "Wählen Sie einen anderen Namen oder prüfen Sie auf unbeabsichtigte doppelte Deklarationen.",
|
|
152
|
+
"E200": "Deklarieren Sie den Effekt @io für Funktionen, die I/O ausführen.",
|
|
153
|
+
"E201": "Deklarieren Sie den Effekt @cpu oder @io für CPU-intensive Funktionen.",
|
|
154
|
+
"E202": "Wenn die Funktion nur CPU-Arbeit leistet, entfernen Sie die überflüssige @io-Deklaration.",
|
|
155
|
+
"E203": "Prüfen Sie, ob @io nötig ist; entfernen Sie es, wenn kein I/O-Verhalten vorliegt.",
|
|
156
|
+
"E204": "Entfernen Sie die überflüssige @cpu-Deklaration oder ergänzen Sie die entsprechende CPU-Arbeit.",
|
|
157
|
+
"E205": "Fügen Sie den Effekt @io gemäß den Ableitungsergebnissen hinzu.",
|
|
158
|
+
"E206": "Fügen Sie den Effekt @cpu oder @io gemäß den Ableitungsergebnissen hinzu.",
|
|
159
|
+
"E207": "Prüfen Sie, ob die @io-Deklaration beibehalten werden soll.",
|
|
160
|
+
"E208": "Entfernen Sie die @cpu-Deklaration, wenn keine CPU-Seiteneffekte vorliegen.",
|
|
161
|
+
"E209": "Behalten Sie nur @io; entfernen Sie das überflüssige @cpu.",
|
|
162
|
+
"E210": "Fügen Sie den Effekttypparameter der Effektparameterliste der Funktionssignatur hinzu.",
|
|
163
|
+
"E211": "Geben Sie explizite Effekte an (pure/cpu/io/workflow) oder entfernen Sie ungenutzte Effektvariablen.",
|
|
164
|
+
"E212": "Deklarieren Sie ihn über ASTER_EFFECT_CONFIG-Präfixe, geben Sie eine importierte Effektsignatur an oder verwenden Sie einen bekannten Stdlib-Namensraum.",
|
|
165
|
+
"E300": "Aktualisieren Sie das Fähigkeitsmanifest oder passen Sie die Funktion an.",
|
|
166
|
+
"E301": "Deklarieren Sie die tatsächlich genutzten Fähigkeiten im Funktionskopf.",
|
|
167
|
+
"E302": "Entfernen Sie ungenutzte Fähigkeitsdeklarationen der Übersichtlichkeit halber.",
|
|
168
|
+
"E303": "Deklarieren Sie den Effekt @io im Funktionskopf oder entfernen Sie die betreffenden Aufrufe, damit die Funktion rein bleibt.",
|
|
169
|
+
"E304": "Fügen Sie den Effekt @cpu oder @io hinzu, um die CPU-Fähigkeiten abzudecken.",
|
|
170
|
+
"E400": "Verwenden Sie einen verschlüsselten Kanal (HTTPS) oder bereinigen Sie PII-Daten vor der Übertragung.",
|
|
171
|
+
"E401": "Fügen Sie sensiblen Daten eine @pii-Annotation hinzu, damit sie nachverfolgt werden können.",
|
|
172
|
+
"E402": "Passen Sie die Sensitivitätsstufe der Daten an oder aktualisieren Sie die Prozessanforderungen.",
|
|
173
|
+
"E403": "Rufen Sie vor der Verarbeitung von PII-Daten checkConsent() auf oder fügen Sie die Annotation @consent_required hinzu.",
|
|
174
|
+
"E404": "Speichern Sie die Datei und laden Sie sie neu. Bleibt der Fehler bestehen, wenden Sie sich an Ihren Administrator oder melden Sie das Problem mit angehängtem Quellcode.",
|
|
175
|
+
"E500": "Rufen Sie wait für gestartete asynchrone Aufgaben auf, um ihren Abschluss sicherzustellen.",
|
|
176
|
+
"E501": "Stellen Sie sicher, dass der Aufgabenname in wait einer gestarteten Aufgabe entspricht.",
|
|
177
|
+
"E502": "Starten Sie dieselbe Aufgabe nicht mehrfach; verwenden Sie sie wieder oder benennen Sie sie um.",
|
|
178
|
+
"E503": "Stellen Sie sicher, dass auf jede Aufgabe nur einmal gewartet wird, oder verwenden Sie einen separaten Synchronisationsmechanismus.",
|
|
179
|
+
"E504": "Führen Sie start vor wait aus und stellen Sie sicher, dass beide auf kompatiblen Kontrollpfaden liegen.",
|
|
180
|
+
"W071": "Fügen Sie für Stufenänderungen explizite Typannotationen hinzu, um die Prüfung zu erleichtern.",
|
|
181
|
+
"W074": "Fügen Sie eine @pii-Annotation hinzu, um den Fluss sensibler Daten zu verfolgen.",
|
|
182
|
+
"W105": "Prüfen Sie die Kombination aus Gesamtwartezeit, maxAttempts und Backoff-Strategie.",
|
|
183
|
+
"W106": "Prüfen Sie, ob der Timeout-Wert zu groß oder zu klein ist.",
|
|
184
|
+
"W700": "Fügen Sie @id(\"RULE-001\") hinzu, damit jede Entscheidung auf eine stabile Regelidentität zurückgeführt werden kann.",
|
|
185
|
+
"E701": "Regel-IDs müssen innerhalb eines Moduls eindeutig sein. Geben Sie jeder Regel eine eigene @id.",
|
|
186
|
+
"E702": "Schreiben Sie @id(\"RULE-001\"), @reason(\"...\") oder @control(\"EU_AI_ACT:ART14\").",
|
|
187
|
+
"E703": "Verdict.allow() nimmt keine Argumente; Verdict.deny(reason) und Verdict.escalate(reason) nehmen einen Text; Verdict.require_approval(role, reason) nimmt zwei Text.",
|
|
188
|
+
"W704": "Verwenden Sie einen registrierten Schlüssel wie EU_AI_ACT:ART14 oder ergänzen Sie ihn in controls/registry.json von aster-lang-locales (Format FRAMEWORK:ARTICLE, höchstens 64 Zeichen).",
|
|
189
|
+
"E705": "Verwenden Sie ein in controls/registry.json von aster-lang-locales definiertes Profil, etwa governed oder eu-ai-act-high-risk.",
|
|
190
|
+
"E706": "Erfüllen Sie die Profilanforderung oder entfernen Sie die Profile-Deklaration.",
|
|
191
|
+
"E707": "Versuchen Sie es später erneut; dies ist ein Dienstfehler, kein Richtlinienverstoß.",
|
|
192
|
+
"E720": "Exportierbare Regeln benötigen @id, einen Parameter mit den Guard-Anfragefeldern (principal_id, principal_type, principal_roles, action, resource_type, resource_id, context, agent_model) und ein Verdict-Ergebnis.",
|
|
193
|
+
"E721": "Verwenden Sie Vergleiche, and/or/not, List.contains auf principal_roles und Ganzzahlarithmetik mit Literalen oder belassen Sie diese Regel nur in Aster.",
|
|
194
|
+
"E722": "Verwenden Sie jeden Kontextschlüssel mit nur einem Typ (Zahl, Text oder Boolean).",
|
|
195
|
+
"E723": "Dies ist ein Fehler des Exporters; der Export wurde zurückgehalten. Bitte melden Sie ihn.",
|
|
196
|
+
"E724": "Dies ist ein Fehler des Exporters; der Export wurde zurückgehalten. Bitte melden Sie ihn.",
|
|
197
|
+
"E800": "Prüfen Sie die Schreibweise, importieren Sie den Typ oder verwenden Sie einen Namen aus dem aktiven Vokabular.",
|
|
198
|
+
"E801": "Prüfen Sie den Feldnamen anhand der Datentypdeklaration oder des aktiven Vokabulars.",
|
|
199
|
+
"E802": "Deklarieren oder importieren Sie den Namen, verwenden Sie einen Namen aus dem aktiven Vokabular oder schreiben Sie ein qualifiziertes Enum-Mitglied (z. B. Stufe.Hoch).",
|
|
200
|
+
"E803": "Prüfen Sie, ob das Muster einen vorhandenen Konstruktor oder Enum-Fall des geprüften Typs benennt.",
|
|
201
|
+
"E804": "Schreiben Sie einen qualifizierten Namen (z. B. Stufe.Hoch) oder fügen Sie eine Typannotation hinzu.",
|
|
202
|
+
"E805": "Fügen Sie dem Empfänger (Parameter oder Let) eine Typannotation hinzu, damit das Feld anhand seines deklarierten Typs aufgelöst wird, oder benennen Sie eines der kollidierenden Felder um.",
|
|
203
|
+
"E806": "Schreiben Sie einen qualifizierten Namen (z. B. Stufe.Hoch) oder fügen Sie eine Typannotation hinzu.",
|
|
204
|
+
"E807": "Benennen Sie eine der Deklarationen um oder entfernen Sie das Duplikat.",
|
|
205
|
+
"W800": "Benennen Sie die Deklaration um, falls die Verdeckung unbeabsichtigt ist; die Deklaration hat Vorrang vor dem Vokabulareintrag.",
|
|
206
|
+
"W801": "Fügen Sie dem Empfänger eine Typannotation hinzu, damit der Name anhand seines Typs geprüft werden kann."
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
'hi-IN': {
|
|
211
|
+
"diagnosticMessages": {
|
|
212
|
+
"version": 1,
|
|
213
|
+
"messages": {
|
|
214
|
+
"E001": "टाइप बेमेल: अपेक्षित {expected}, मिला {actual}",
|
|
215
|
+
"E002": "'{name}' को मान देते समय टाइप बेमेल: {expected} बनाम {actual}",
|
|
216
|
+
"E003": "रिटर्न टाइप बेमेल: अपेक्षित {expected}, मिला {actual}",
|
|
217
|
+
"E004": "टाइप चर '{name}' का उपयोग '{func}' में हुआ है, पर यह उसके टाइप पैरामीटरों में घोषित नहीं है।",
|
|
218
|
+
"E005": "'{func}' का टाइप पैरामीटर '{name}' घोषित है, पर उपयोग नहीं हुआ।",
|
|
219
|
+
"E006": "टाइप चर जैसा नाम '{name}' '{func}' में उपयोग हुआ है पर घोषित नहीं है; इसे 'of {name}' से घोषित करें।",
|
|
220
|
+
"E007": "टाइप चर '{name}' का अनुमान असंगत है: {previous} बनाम {actual}",
|
|
221
|
+
"E008": "यदि शाखाओं के टाइप बेमेल: तो {thenType} बनाम अन्यथा {elseType}",
|
|
222
|
+
"E009": "मिलान की शाखाओं के रिटर्न टाइप अलग हैं: {expected} बनाम {actual}",
|
|
223
|
+
"E010": "पूर्णांक पैटर्न ऐसे मिलान मान पर उपयोग हुआ जो Int नहीं है ({scrutineeType})",
|
|
224
|
+
"E011": "{type} के लिए अज्ञात फ़ील्ड '{field}'",
|
|
225
|
+
"E012": "फ़ील्ड '{field}' को {expected} अपेक्षित है, मिला {actual}",
|
|
226
|
+
"E013": "{type} के निर्माण में आवश्यक फ़ील्ड '{field}' नहीं है",
|
|
227
|
+
"E014": "not(...) को 1 तर्क चाहिए",
|
|
228
|
+
"E015": "await को Maybe<T> या Result<T,E> चाहिए, मिला {type}",
|
|
229
|
+
"E016": "{type} पर मिलान में एनम केस '{case}' दोहराया गया है।",
|
|
230
|
+
"E017": "Maybe टाइप पर मिलान अधूरा है; {missing} केस नहीं है।",
|
|
231
|
+
"E018": "{type} पर मिलान अधूरा है; अनुपस्थित: {missing}",
|
|
232
|
+
"E019": "इंटरऑप कॉल '{target}' अस्पष्ट है: संख्यात्मक टाइप मिश्रित हैं (Int={hasInt}, Long={hasLong}, Double={hasDouble})। ओवरलोड चयन अप्रत्यक्ष रूप से चौड़ा या box कर सकता है।",
|
|
233
|
+
"E020": "सूची लिटरल के तत्व का टाइप बेमेल: अपेक्षित {expected}, मिला {actual}",
|
|
234
|
+
"E021": "यहाँ वैकल्पिक मान आवश्यक है: Maybe या Option अपेक्षित, मिला {actual}",
|
|
235
|
+
"E022": "चरण '{step}' के क्षतिपूर्ति ब्लॉक को Result<Unit, {expectedErr}> लौटाना चाहिए, मिला {actual}",
|
|
236
|
+
"E023": "चरण '{step}' साइड इफ़ेक्ट करता है पर क्षतिपूर्ति ब्लॉक परिभाषित नहीं करता।",
|
|
237
|
+
"E024": "कार्यप्रवाह के अधिकतम पुनःप्रयास शून्य से अधिक होने चाहिए (वास्तविक: {maxAttempts})।",
|
|
238
|
+
"E025": "कार्यप्रवाह समय समाप्ति शून्य मिलीसेकंड से अधिक होना चाहिए (वास्तविक: {milliseconds})।",
|
|
239
|
+
"E026": "कार्यप्रवाह '{func}' को 'कार्यप्रवाह' ब्लॉक उपयोग करने से पहले @io प्रभाव घोषित करना होगा।",
|
|
240
|
+
"E027": "कार्यप्रवाह '{func}' का चरण '{step}' क्षमता {capability} का उपयोग करता है जो फ़ंक्शन हेडर में घोषित नहीं है।",
|
|
241
|
+
"E028": "फ़ंक्शन '{func}' में चरण '{step}' का क्षतिपूर्ति ब्लॉक नई क्षमता {capability} लाता है जो चरण के मुख्य भाग में नहीं है।",
|
|
242
|
+
"E029": "कार्यप्रवाह चरण '{step}' अपरिभाषित चरण '{dependency}' पर निर्भर है।",
|
|
243
|
+
"E030": "कार्यप्रवाह में चरणों की चक्रीय निर्भरता है: {cycle}",
|
|
244
|
+
"E031": "'{operator}' में Decimal और Double को मिलाया नहीं जा सकता। Double बाइनरी फ़्लोटिंग-पॉइंट है और सटीक Decimal में पूर्णांकन त्रुटि लाएगा। दोनों ओर Decimal लिटरल (जैसे 1.08m) या Int/Long (सटीक प्रोन्नति) उपयोग करें।",
|
|
245
|
+
"E032": "फ़ंक्शन '{func}' को {expected} तर्क चाहिए, मिले {actual}।",
|
|
246
|
+
"E070": "PII डेटा को निचले स्तर के लक्ष्य को नहीं सौंपा जा सकता: {source} -> {target}",
|
|
247
|
+
"E072": "स्तर {level} का PII डेटा बिना शोधन के {sinkKind} को आउटपुट हुआ",
|
|
248
|
+
"E073": "PII तर्क टाइप बेमेल: अपेक्षित {expected}, मिला {actual}",
|
|
249
|
+
"E100": "आयात उपनाम '{alias}' दोहराया गया है।",
|
|
250
|
+
"E101": "अपरिभाषित चर: {name}",
|
|
251
|
+
"E102": "मॉड्यूल में कई @entry नियम हैं: {rules}",
|
|
252
|
+
"E103": "आयात प्रतीक टकराव: {symbol}",
|
|
253
|
+
"E104": "प्रतीक '{name}' इस दायरे में पहले से परिभाषित है।",
|
|
254
|
+
"E200": "फ़ंक्शन '{func}' I/O कर सकता है, पर @io प्रभाव नहीं है।",
|
|
255
|
+
"E201": "फ़ंक्शन '{func}' CPU-गहन कार्य कर सकता है, पर @cpu (या @io) प्रभाव नहीं है।",
|
|
256
|
+
"E202": "फ़ंक्शन '{func}' @io घोषित करता है पर केवल CPU जैसा कार्य मिला; @io में @cpu शामिल है और यह अनावश्यक हो सकता है।",
|
|
257
|
+
"E203": "फ़ंक्शन '{func}' @io घोषित करता है पर कोई स्पष्ट I/O नहीं मिला।",
|
|
258
|
+
"E204": "फ़ंक्शन '{func}' @cpu घोषित करता है पर कोई स्पष्ट CPU-गहन कार्य नहीं मिला।",
|
|
259
|
+
"E205": "फ़ंक्शन '{func}' में @io प्रभाव घोषणा नहीं है, अनुमान के अनुसार IO आवश्यक है।",
|
|
260
|
+
"E206": "फ़ंक्शन '{func}' में @cpu प्रभाव घोषणा नहीं है, अनुमान के अनुसार CPU (या @io) आवश्यक है।",
|
|
261
|
+
"E207": "फ़ंक्शन '{func}' @io घोषित करता है पर कोई IO साइड इफ़ेक्ट अनुमानित नहीं हुआ।",
|
|
262
|
+
"E208": "फ़ंक्शन '{func}' @cpu घोषित करता है पर कोई CPU साइड इफ़ेक्ट अनुमानित नहीं हुआ।",
|
|
263
|
+
"E209": "फ़ंक्शन '{func}' @cpu और @io दोनों घोषित करता है; @io आवश्यक होने से @cpu अनावश्यक है।",
|
|
264
|
+
"E210": "प्रभाव चर {var} घोषित नहीं है",
|
|
265
|
+
"E211": "प्रभाव चर {vars} को ठोस प्रभावों में हल नहीं किया जा सका",
|
|
266
|
+
"E212": "'{func}' द्वारा बुलाए गए अंतर्निर्मित '{builtin}' का प्रभाव अज्ञात है; इसे शुद्ध नहीं माना जाता",
|
|
267
|
+
"E300": "फ़ंक्शन '{func}' को {cap} क्षमता चाहिए पर मॉड्यूल '{module}' का मैनिफ़ेस्ट इसे अस्वीकार करता है।",
|
|
268
|
+
"E301": "फ़ंक्शन '{func}' {cap} क्षमता उपयोग करता है पर हेडर [{declared}] घोषित करता है।",
|
|
269
|
+
"E302": "फ़ंक्शन '{func}' {cap} क्षमता घोषित करता है पर उसका उपयोग नहीं करता।",
|
|
270
|
+
"E303": "फ़ंक्शन '{func}' IO क्षमताएँ [{capabilities}] उपयोग करता है पर @io प्रभाव नहीं है (उदा. {calls})।",
|
|
271
|
+
"E304": "फ़ंक्शन '{func}' CPU क्षमता कॉल करता है (उदा. {calls}) पर न @cpu न @io प्रभाव घोषित करता है।",
|
|
272
|
+
"E400": "PII डेटा बिना एन्क्रिप्शन के HTTP पर भेजा गया",
|
|
273
|
+
"E401": "'{sink}' में जाने वाले मान पर PII एनोटेशन नहीं है",
|
|
274
|
+
"E402": "PII संवेदनशीलता बेमेल: आवश्यक {required}, मिला {actual}",
|
|
275
|
+
"E403": "फ़ंक्शन '{func}' सहमति जाँच के बिना PII डेटा संसाधित करता है (GDPR अनु. 6)",
|
|
276
|
+
"E404": "इस मॉड्यूल का PII सुरक्षा विश्लेषण विफल रहा — संपादक यह सत्यापित नहीं कर सकता कि संवेदनशील डेटा सही ढंग से संभाला गया है। विश्लेषण सफल होने तक इस नीति को परिनियोजित न करें। आंतरिक कारण: {reason}",
|
|
277
|
+
"E500": "शुरू किए गए async कार्य '{task}' की प्रतीक्षा नहीं की गई",
|
|
278
|
+
"E501": "async कार्य '{task}' की प्रतीक्षा हो रही है जो कभी शुरू नहीं हुआ",
|
|
279
|
+
"E502": "async कार्य '{task}' कई बार शुरू हुआ ({count} बार)",
|
|
280
|
+
"E503": "async कार्य '{task}' की कई बार प्रतीक्षा हुई ({count} बार)",
|
|
281
|
+
"E504": "async कार्य '{task}' की प्रतीक्षा किसी मेल खाते आरंभ से पहले होती है",
|
|
282
|
+
"W071": "PII स्तर में अप्रत्यक्ष वृद्धि मिली: {source} -> {target}",
|
|
283
|
+
"W074": "PII डेटा बिना एनोटेशन के {sinkKind} तक जा सकता है",
|
|
284
|
+
"W105": "कार्यप्रवाह पुनः प्रयास कॉन्फ़िगरेशन अनुचित हो सकता है: {reason}",
|
|
285
|
+
"W106": "कार्यप्रवाह समय समाप्ति कॉन्फ़िगरेशन अनुचित हो सकता है: {reason}",
|
|
286
|
+
"W700": "नियम '{rule}' Verdict लौटाता है पर उसमें @id एनोटेशन नहीं है",
|
|
287
|
+
"E701": "नियमों पर दोहराया गया नियम @id '{id}': {rules}",
|
|
288
|
+
"E702": "नियम '{rule}' पर एनोटेशन @{annotation} को ठीक एक स्ट्रिंग लिटरल तर्क चाहिए",
|
|
289
|
+
"E703": "{func} को {expected} तर्क चाहिए, मिले {actual}",
|
|
290
|
+
"W704": "नियम '{rule}' पर नियंत्रण '{control}' पंजीकृत नहीं है (नियंत्रण रजिस्ट्री {version})",
|
|
291
|
+
"E705": "मॉड्यूल '{module}' अज्ञात प्रोफ़ाइल '{profile}' घोषित करता है (नियंत्रण रजिस्ट्री {version})",
|
|
292
|
+
"E706": "नियम '{rule}' प्रोफ़ाइल '{profile}' का उल्लंघन करता है: {requirement}",
|
|
293
|
+
"E707": "मॉड्यूल '{module}' (प्रोफ़ाइल '{profile}') की गवर्नेंस जाँच नहीं चल सकी; सफल होने तक सहेजना अवरुद्ध है",
|
|
294
|
+
"E720": "नियम '{rule}' को Cedar में निर्यात नहीं किया जा सकता: {reason}",
|
|
295
|
+
"E721": "नियम '{rule}' {construct} का उपयोग करता है, जिसका कोई Cedar अनुवाद नहीं है",
|
|
296
|
+
"E722": "नियम '{rule}' में संदर्भ कुंजी '{key}' का उपयोग {first} और {second} दोनों रूपों में हुआ है",
|
|
297
|
+
"E723": "नियम '{rule}' का Cedar निर्यात प्रोब {probe} पर Aster से असहमत है: Aster {aster}, Cedar {cedar}",
|
|
298
|
+
"E724": "नियम '{rule}' के लिए बना Cedar स्कीमा सत्यापन में विफल रहा: {detail}",
|
|
299
|
+
"E800": "{role} स्थान पर टाइप '{written}' हल नहीं हो सका",
|
|
300
|
+
"E801": "{role} स्थान पर फ़ील्ड '{written}' हल नहीं हो सका",
|
|
301
|
+
"E802": "{role} स्थान पर नाम '{written}' हल नहीं हो सका",
|
|
302
|
+
"E803": "{role} स्थान पर पैटर्न '{written}' हल नहीं हो सका",
|
|
303
|
+
"E804": "{role} स्थान पर नाम '{written}' अस्पष्ट है, विकल्प: {candidates}",
|
|
304
|
+
"E805": "{role} स्थान पर फ़ील्ड '{written}' अस्पष्ट है, विकल्प: {candidates}",
|
|
305
|
+
"E806": "{role} स्थान पर पैटर्न '{written}' अस्पष्ट है, विकल्प: {candidates}",
|
|
306
|
+
"E807": "{role} स्थान पर '{written}' की दोहरी घोषणा",
|
|
307
|
+
"W800": "{role} स्थान पर घोषणा '{written}' एक शब्दावली प्रविष्टि को ढक देती है",
|
|
308
|
+
"W801": "{role} स्थान पर '{written}' ज्ञात रिसीवर टाइप के बिना हल हुआ"
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"diagnosticHelp": {
|
|
312
|
+
"version": 1,
|
|
313
|
+
"help": {
|
|
314
|
+
"E001": "जाँचें कि टाइप एनोटेशन अभिव्यक्ति के अनुमानित टाइप से मेल खाता है।",
|
|
315
|
+
"E002": "सुनिश्चित करें कि चर की पिछली बाइंडिंग का टाइप वर्तमान असाइनमेंट से मेल खाता है।",
|
|
316
|
+
"E003": "जाँचें कि रिटर्न कथन घोषित रिटर्न टाइप से मेल खाता है।",
|
|
317
|
+
"E004": "उपयोग किए गए टाइप चरों को फ़ंक्शन हस्ताक्षर के 'of' खंड में घोषित करें।",
|
|
318
|
+
"E005": "भ्रम से बचने के लिए अप्रयुक्त टाइप पैरामीटर हटाएँ।",
|
|
319
|
+
"E006": "जो नाम टाइप चर जैसे दिखते हैं, उन्हें 'of' खंड में घोषित करें।",
|
|
320
|
+
"E007": "सुनिश्चित करें कि टाइप चर के सभी उपयोग स्थान एक ही ठोस टाइप देते हैं।",
|
|
321
|
+
"E008": "सुनिश्चित करें कि यदि अभिव्यक्ति की दोनों शाखाएँ एक ही टाइप लौटाती हैं।",
|
|
322
|
+
"E009": "जाँचें कि सभी मिलान शाखाएँ एक ही टाइप लौटाती हैं।",
|
|
323
|
+
"E010": "पूर्णांक पैटर्न केवल Int टाइप की मिलान अभिव्यक्तियों में उपयोग करें।",
|
|
324
|
+
"E011": "जाँचें कि डेटा टाइप के लिए फ़ील्ड नाम सही है।",
|
|
325
|
+
"E012": "सत्यापित करें कि फ़ील्ड की प्रारंभिक अभिव्यक्ति घोषित टाइप से मेल खाती है।",
|
|
326
|
+
"E013": "डेटा टाइप में घोषित सभी आवश्यक फ़ील्ड दें।",
|
|
327
|
+
"E014": "not() कॉल में ठीक 1 तर्क दें।",
|
|
328
|
+
"E015": "await केवल Maybe या Result टाइपों पर उपयोग करें।",
|
|
329
|
+
"E016": "मिलान को संक्षिप्त रखने के लिए दोहराई गई एनम शाखाएँ हटाएँ।",
|
|
330
|
+
"E017": "Maybe मिलान के लिए null और गैर-null दोनों शाखाएँ जोड़ें।",
|
|
331
|
+
"E018": "सभी अनकवर एनम शाखाएँ जोड़ें, या वाइल्डकार्ड जोड़ें।",
|
|
332
|
+
"E019": "अप्रत्यक्ष boxing और चौड़ीकरण से बचने के लिए इंटरऑप कॉल में संख्यात्मक तर्क टाइप एक जैसे रखें।",
|
|
333
|
+
"E020": "सुनिश्चित करें कि सूची लिटरल के सभी तत्वों का टाइप एक ही है।",
|
|
334
|
+
"E021": "Maybe/Option टाइप दें या मान को स्पष्ट रूप से लपेटें।",
|
|
335
|
+
"E022": "सुनिश्चित करें कि क्षतिपूर्ति ब्लॉक Result<Unit, E> लौटाए, जहाँ E चरण का त्रुटि टाइप है।",
|
|
336
|
+
"E023": "IO साइड इफ़ेक्ट वाले चरणों के लिए क्षतिपूर्ति ब्लॉक दें ताकि रोलबैक हो सके।",
|
|
337
|
+
"E024": "retry.maxAttempts को धनात्मक पूर्णांक पर सेट करें।",
|
|
338
|
+
"E025": "समय समाप्ति को धनात्मक मान पर सेट करें ताकि क्षतिपूर्ति तर्क चालू हो सके।",
|
|
339
|
+
"E026": "फ़ंक्शन हेडर में @io प्रभाव घोषणा जोड़ें।",
|
|
340
|
+
"E027": "फ़ंक्शन हेडर में {capability} घोषित करें या चरण का कोड बदलें।",
|
|
341
|
+
"E028": "क्षतिपूर्ति ब्लॉक केवल चरण के मुख्य भाग की क्षमताएँ दोबारा उपयोग कर सकते हैं।",
|
|
342
|
+
"E029": "वर्तमान कार्यप्रवाह में केवल घोषित चरण नामों का संदर्भ दें।",
|
|
343
|
+
"E030": "टोपोलॉजिकल निष्पादन के लिए चक्रीय निर्भरताएँ हटाएँ या पुनर्गठित करें।",
|
|
344
|
+
"E031": "दोनों ऑपरेंड Decimal (प्रत्यय m) बनाएँ, या Int/Long उपयोग करें जो सटीक रूप से Decimal में प्रोन्नत होते हैं।",
|
|
345
|
+
"E032": "कॉल में ठीक उतने तर्क दें जितने घोषित हैं।",
|
|
346
|
+
"E070": "शोधन फ़ंक्शन उपयोग करें या लक्ष्य पर मेल खाता @pii स्तर घोषित करें।",
|
|
347
|
+
"E072": "संवेदनशीलता घटाने के लिए आउटपुट से पहले redact() या tokenize() कॉल करें।",
|
|
348
|
+
"E073": "फ़ंक्शन हस्ताक्षर जाँचें ताकि PII स्तर और श्रेणियाँ मेल खाएँ।",
|
|
349
|
+
"E100": "छाया से बचने के लिए अलग-अलग आयातों के लिए अद्वितीय उपनाम उपयोग करें।",
|
|
350
|
+
"E101": "उपयोग से पहले चर घोषित और प्रारंभ करें।",
|
|
351
|
+
"E102": "एक मॉड्यूल में @entry से एनोटेट अधिकतम एक नियम रखें।",
|
|
352
|
+
"E103": "आयात प्रतीक टकराव से बचने के लिए आयात उपनाम या स्थानीय शीर्ष-स्तरीय घोषणा का नाम बदलें।",
|
|
353
|
+
"E104": "दूसरा नाम चुनें या अनचाही दोहरी घोषणाओं की जाँच करें।",
|
|
354
|
+
"E200": "I/O करने वाले फ़ंक्शनों के लिए @io प्रभाव घोषित करें।",
|
|
355
|
+
"E201": "CPU-गहन फ़ंक्शनों के लिए @cpu या @io प्रभाव घोषित करें।",
|
|
356
|
+
"E202": "यदि फ़ंक्शन केवल CPU कार्य करता है, तो अनावश्यक @io घोषणा हटाने पर विचार करें।",
|
|
357
|
+
"E203": "पुष्टि करें कि @io आवश्यक है; I/O व्यवहार न हो तो हटाएँ।",
|
|
358
|
+
"E204": "अनावश्यक @cpu घोषणा हटाएँ या संबंधित CPU कार्य जोड़ें।",
|
|
359
|
+
"E205": "अनुमान परिणामों के आधार पर @io प्रभाव जोड़ें।",
|
|
360
|
+
"E206": "अनुमान परिणामों के आधार पर @cpu या @io प्रभाव जोड़ें।",
|
|
361
|
+
"E207": "पुष्टि करें कि @io घोषणा रखनी है या नहीं।",
|
|
362
|
+
"E208": "यदि CPU साइड इफ़ेक्ट नहीं हैं तो @cpu घोषणा हटाएँ।",
|
|
363
|
+
"E209": "केवल @io रखें; अनावश्यक @cpu हटाएँ।",
|
|
364
|
+
"E210": "फ़ंक्शन हस्ताक्षर की प्रभाव पैरामीटर सूची में प्रभाव टाइप पैरामीटर जोड़ें।",
|
|
365
|
+
"E211": "स्पष्ट प्रभाव (pure/cpu/io/workflow) दें या अप्रयुक्त प्रभाव चर हटाएँ।",
|
|
366
|
+
"E212": "इसे ASTER_EFFECT_CONFIG उपसर्गों से घोषित करें, आयातित प्रभाव हस्ताक्षर दें, या ज्ञात stdlib नामस्थान उपयोग करें।",
|
|
367
|
+
"E300": "क्षमता मैनिफ़ेस्ट अपडेट करें या फ़ंक्शन को अनुपालन हेतु बदलें।",
|
|
368
|
+
"E301": "वास्तव में उपयोग की गई क्षमताएँ फ़ंक्शन हेडर में घोषित करें।",
|
|
369
|
+
"E302": "स्पष्टता के लिए अप्रयुक्त क्षमता घोषणाएँ हटाएँ।",
|
|
370
|
+
"E303": "फ़ंक्शन हेडर में @io प्रभाव घोषित करें, या शुद्ध रहने के लिए संबंधित कॉल हटाएँ।",
|
|
371
|
+
"E304": "CPU क्षमताओं को कवर करने के लिए @cpu या @io प्रभाव जोड़ें।",
|
|
372
|
+
"E400": "एन्क्रिप्टेड चैनल (HTTPS) उपयोग करें या PII डेटा भेजने से पहले शोधित करें।",
|
|
373
|
+
"E401": "ट्रैकिंग के लिए संवेदनशील डेटा पर @pii एनोटेशन जोड़ें।",
|
|
374
|
+
"E402": "डेटा का संवेदनशीलता स्तर समायोजित करें या प्रक्रिया आवश्यकताएँ अपडेट करें।",
|
|
375
|
+
"E403": "PII डेटा संसाधित करने से पहले checkConsent() कॉल करें या @consent_required एनोटेशन जोड़ें।",
|
|
376
|
+
"E404": "फ़ाइल सहेजकर फिर से लोड करें। त्रुटि बनी रहे तो अपने व्यवस्थापक से संपर्क करें या स्रोत कोड संलग्न करके यह समस्या रिपोर्ट करें।",
|
|
377
|
+
"E500": "पूर्णता सुनिश्चित करने के लिए शुरू किए गए async कार्यों का इंतजार करें।",
|
|
378
|
+
"E501": "सुनिश्चित करें कि इंतजार में कार्य का नाम किसी शुरू किए गए कार्य से मेल खाता है।",
|
|
379
|
+
"E502": "एक ही कार्य को कई बार शुरू न करें; उसे दोबारा उपयोग करें या नाम बदलें।",
|
|
380
|
+
"E503": "सुनिश्चित करें कि हर कार्य की प्रतीक्षा केवल एक बार हो, या अलग समकालिकता तंत्र उपयोग करें।",
|
|
381
|
+
"E504": "इंतजार से पहले आरंभ चलाएँ, और सुनिश्चित करें कि दोनों संगत नियंत्रण पथों पर हों।",
|
|
382
|
+
"W071": "ऑडिट में सहायता के लिए स्तर परिवर्तनों पर स्पष्ट टाइप एनोटेशन जोड़ें।",
|
|
383
|
+
"W074": "संवेदनशील डेटा प्रवाह ट्रैक करने के लिए @pii एनोटेशन जोड़ें।",
|
|
384
|
+
"W105": "कुल प्रतीक्षा समय, maxAttempts और backoff रणनीति का संयोजन जाँचें।",
|
|
385
|
+
"W106": "जाँचें कि समय समाप्ति मान बहुत बड़ा या बहुत छोटा तो नहीं है।",
|
|
386
|
+
"W700": "@id(\"RULE-001\") जोड़ें ताकि हर निर्णय एक स्थिर नियम पहचान तक ट्रेस हो सके।",
|
|
387
|
+
"E701": "मॉड्यूल में नियम id अद्वितीय होने चाहिए। हर नियम को अपना @id दें।",
|
|
388
|
+
"E702": "@id(\"RULE-001\"), @reason(\"...\") या @control(\"EU_AI_ACT:ART14\") लिखें।",
|
|
389
|
+
"E703": "Verdict.allow() कोई तर्क नहीं लेता; Verdict.deny(reason) और Verdict.escalate(reason) एक Text लेते हैं; Verdict.require_approval(role, reason) दो Text लेता है।",
|
|
390
|
+
"W704": "EU_AI_ACT:ART14 जैसी पंजीकृत कुंजी उपयोग करें, या इसे aster-lang-locales की controls/registry.json में जोड़ें (प्रारूप FRAMEWORK:ARTICLE, अधिकतम 64 वर्ण)।",
|
|
391
|
+
"E705": "aster-lang-locales की controls/registry.json में परिभाषित प्रोफ़ाइल उपयोग करें, जैसे governed या eu-ai-act-high-risk।",
|
|
392
|
+
"E706": "प्रोफ़ाइल की आवश्यकता पूरी करें या Profile घोषणा हटाएँ।",
|
|
393
|
+
"E707": "बाद में पुनः प्रयास करें; यह सेवा दोष है, नीति उल्लंघन नहीं।",
|
|
394
|
+
"E720": "निर्यात योग्य नियमों को @id, गार्ड अनुरोध फ़ील्ड (principal_id, principal_type, principal_roles, action, resource_type, resource_id, context, agent_model) वाला एक पैरामीटर और Verdict परिणाम चाहिए।",
|
|
395
|
+
"E721": "तुलना, and/or/not, principal_roles पर List.contains और लिटरल के साथ पूर्णांक अंकगणित उपयोग करें, या इस नियम को केवल Aster में रखें।",
|
|
396
|
+
"E722": "हर संदर्भ कुंजी को एक ही टाइप (संख्या, पाठ या बूलियन) के साथ उपयोग करें।",
|
|
397
|
+
"E723": "यह निर्यातक का दोष है; निर्यात रोक दिया गया। कृपया इसकी रिपोर्ट करें।",
|
|
398
|
+
"E724": "यह निर्यातक का दोष है; निर्यात रोक दिया गया। कृपया इसकी रिपोर्ट करें।",
|
|
399
|
+
"E800": "वर्तनी जाँचें, टाइप आयात करें, या सक्रिय शब्दावली का नाम उपयोग करें।",
|
|
400
|
+
"E801": "फ़ील्ड नाम को डेटा टाइप घोषणा या सक्रिय शब्दावली से मिलाएँ।",
|
|
401
|
+
"E802": "नाम घोषित या आयात करें, सक्रिय शब्दावली का नाम उपयोग करें, या योग्य एनम सदस्य लिखें (जैसे Stufe.Hoch)।",
|
|
402
|
+
"E803": "जाँचें कि पैटर्न मिलान किए गए टाइप के किसी मौजूदा कंस्ट्रक्टर या एनम केस का नाम है।",
|
|
403
|
+
"E804": "योग्य नाम लिखें (जैसे Stufe.Hoch) या टाइप एनोटेशन जोड़ें।",
|
|
404
|
+
"E805": "रिसीवर (पैरामीटर या Let) पर टाइप एनोटेशन जोड़ें ताकि फ़ील्ड उसके घोषित टाइप से हल हो, या टकराने वाले फ़ील्डों में से एक का नाम बदलें।",
|
|
405
|
+
"E806": "योग्य नाम लिखें (जैसे Stufe.Hoch) या टाइप एनोटेशन जोड़ें।",
|
|
406
|
+
"E807": "घोषणाओं में से एक का नाम बदलें या दोहराव हटाएँ।",
|
|
407
|
+
"W800": "यदि ढकना अनचाहा है तो घोषणा का नाम बदलें; घोषणा को शब्दावली प्रविष्टि पर वरीयता मिलती है।",
|
|
408
|
+
"W801": "रिसीवर पर टाइप एनोटेशन जोड़ें ताकि नाम को उसके टाइप से जाँचा जा सके।"
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
},
|
|
412
|
+
'zh-CN': {
|
|
413
|
+
"diagnosticMessages": {
|
|
414
|
+
"version": 1,
|
|
415
|
+
"messages": {
|
|
416
|
+
"E001": "类型不匹配:期望 {expected},实际 {actual}",
|
|
417
|
+
"E002": "给 '{name}' 赋值时类型不匹配:{expected} vs {actual}",
|
|
418
|
+
"E003": "返回类型不匹配:期望 {expected},实际 {actual}",
|
|
419
|
+
"E004": "类型变量 '{name}' 在 '{func}' 中被使用,但未在其类型参数中声明。",
|
|
420
|
+
"E005": "'{func}' 的类型参数 '{name}' 已声明但未使用。",
|
|
421
|
+
"E006": "疑似类型变量 '{name}' 在 '{func}' 中被使用但未声明;请用 'of {name}' 声明。",
|
|
422
|
+
"E007": "类型变量 '{name}' 的推断结果不一致:{previous} vs {actual}",
|
|
423
|
+
"E008": "If分支返回类型不一致: then分支 {thenType} vs else分支 {elseType}",
|
|
424
|
+
"E009": "match 各分支的返回类型不同:{expected} vs {actual}",
|
|
425
|
+
"E010": "整数模式用于非 Int 的匹配对象({scrutineeType})",
|
|
426
|
+
"E011": "{type} 没有字段 '{field}'",
|
|
427
|
+
"E012": "字段 '{field}' 期望 {expected},实际 {actual}",
|
|
428
|
+
"E013": "构造 {type} 缺少必需字段 '{field}'",
|
|
429
|
+
"E014": "not(...) 需要 1 个参数",
|
|
430
|
+
"E015": "await 需要 Maybe<T> 或 Result<T,E>,实际为 {type}",
|
|
431
|
+
"E016": "对 {type} 的 match 中枚举分支 '{case}' 重复。",
|
|
432
|
+
"E017": "对 Maybe 类型的 match 不完整;缺少 {missing} 分支。",
|
|
433
|
+
"E018": "对 {type} 的 match 不完整;缺少:{missing}",
|
|
434
|
+
"E019": "互操作调用 '{target}' 存在歧义:混用了数值类型(Int={hasInt},Long={hasLong},Double={hasDouble}),重载解析可能隐式拓宽或装箱。",
|
|
435
|
+
"E020": "列表字面量元素类型不匹配:期望 {expected},实际 {actual}",
|
|
436
|
+
"E021": "此处需要可选值:期望 Maybe 或 Option,实际为 {actual}",
|
|
437
|
+
"E022": "步骤 '{step}' 的补偿块必须返回 Result<Unit, {expectedErr}>,实际为 {actual}",
|
|
438
|
+
"E023": "步骤 '{step}' 有副作用,但没有定义补偿块。",
|
|
439
|
+
"E024": "Workflow 的最大重试次数必须大于零(实际:{maxAttempts})。",
|
|
440
|
+
"E025": "Workflow 超时必须大于零毫秒(实际:{milliseconds})。",
|
|
441
|
+
"E026": "Workflow '{func}' 使用 'workflow' 块前必须声明 @io 效果。",
|
|
442
|
+
"E027": "Workflow '{func}' 的步骤 '{step}' 使用了函数头未声明的能力 {capability}。",
|
|
443
|
+
"E028": "函数 '{func}' 中步骤 '{step}' 的补偿块引入了步骤主体中没有的新能力 {capability}。",
|
|
444
|
+
"E029": "Workflow 步骤 '{step}' 依赖未定义的步骤 '{dependency}'。",
|
|
445
|
+
"E030": "Workflow 存在循环的步骤依赖:{cycle}",
|
|
446
|
+
"E031": "'{operator}' 中不能混用 Decimal 与 Double。Double 是二进制浮点数,会给精确的 Decimal 引入舍入误差。请两侧都使用 Decimal 字面量(如 1.08m),或使用可精确提升的 Int/Long。",
|
|
447
|
+
"E032": "函数 '{func}' 需要 {expected} 个参数,实际传入 {actual} 个。",
|
|
448
|
+
"E070": "禁止将 PII 数据赋给较低等级目标: {source} -> {target}",
|
|
449
|
+
"E072": "PII 等级 {level} 数据未脱敏即输出到 {sinkKind}",
|
|
450
|
+
"E073": "PII 参数类型不匹配: 期望 {expected}, 实际 {actual}",
|
|
451
|
+
"E100": "导入别名 '{alias}' 重复。",
|
|
452
|
+
"E101": "未定义的变量:{name}",
|
|
453
|
+
"E102": "模块中存在多个 @entry Rule: {rules}",
|
|
454
|
+
"E103": "导入符号冲突: {symbol}",
|
|
455
|
+
"E104": "符号 '{name}' 在当前作用域中已定义。",
|
|
456
|
+
"E200": "函数 '{func}' 可能执行 I/O,但缺少 @io 效果。",
|
|
457
|
+
"E201": "函数 '{func}' 可能执行 CPU 密集型工作,但缺少 @cpu(或 @io)效果。",
|
|
458
|
+
"E202": "函数 '{func}' 声明了 @io,但只发现类 CPU 工作;@io 已涵盖 @cpu,可能没有必要。",
|
|
459
|
+
"E203": "函数 '{func}' 声明了 @io,但未发现明显的 I/O。",
|
|
460
|
+
"E204": "函数 '{func}' 声明了 @cpu,但未发现明显的 CPU 密集型工作。",
|
|
461
|
+
"E205": "函数 '{func}' 缺少 @io 效果声明,推断要求 IO。",
|
|
462
|
+
"E206": "函数 '{func}' 缺少 @cpu 效果声明,推断要求 CPU(或 @io)。",
|
|
463
|
+
"E207": "函数 '{func}' 声明了 @io,但推断未发现 IO 副作用。",
|
|
464
|
+
"E208": "函数 '{func}' 声明了 @cpu,但推断未发现 CPU 副作用。",
|
|
465
|
+
"E209": "函数 '{func}' 同时声明 @cpu 和 @io;由于需要 @io,@cpu 可移除。",
|
|
466
|
+
"E210": "效应变量 {var} 未声明",
|
|
467
|
+
"E211": "效应变量 {vars} 无法推断出具体效果",
|
|
468
|
+
"E212": "'{func}' 调用的内置函数 '{builtin}' 效果未知;不会假定其为纯函数",
|
|
469
|
+
"E300": "函数 '{func}' 需要 {cap} 能力,但模块 '{module}' 的能力清单禁止该能力。",
|
|
470
|
+
"E301": "函数 '{func}' 使用了 {cap} 能力,但函数头声明的是 [{declared}]。",
|
|
471
|
+
"E302": "函数 '{func}' 声明了 {cap} 能力,但并未使用。",
|
|
472
|
+
"E303": "函数 '{func}' 使用了 IO 能力 [{capabilities}],但缺少 @io 效果(例如 {calls})。",
|
|
473
|
+
"E304": "函数 '{func}' 调用了 CPU 能力(例如 {calls}),但既未声明 @cpu 也未声明 @io 效果。",
|
|
474
|
+
"E400": "PII 数据经未加密的 HTTP 传输",
|
|
475
|
+
"E401": "流入 '{sink}' 的值缺少 PII 注解",
|
|
476
|
+
"E402": "PII 敏感级别不匹配:要求 {required},实际 {actual}",
|
|
477
|
+
"E403": "函数 '{func}' 未经同意检查即处理 PII 数据(GDPR 第 6 条)",
|
|
478
|
+
"E404": "本模块的 PII 安全分析失败——编辑器无法确认敏感数据是否被正确处理。分析成功前不应部署此策略。内部原因:{reason}",
|
|
479
|
+
"E500": "已启动的异步任务 '{task}' 未被等待",
|
|
480
|
+
"E501": "等待的异步任务 '{task}' 从未启动",
|
|
481
|
+
"E502": "异步任务 '{task}' 被多次启动({count} 次)",
|
|
482
|
+
"E503": "异步任务 '{task}' 被多次等待({count} 次)",
|
|
483
|
+
"E504": "对异步任务 '{task}' 的等待出现在任何对应的启动之前",
|
|
484
|
+
"W071": "检测到隐式 PII 等级提升: {source} -> {target}",
|
|
485
|
+
"W074": "可能有 PII 数据流向 {sinkKind} 但缺少注解",
|
|
486
|
+
"W105": "Workflow retry 配置可能不合理: {reason}",
|
|
487
|
+
"W106": "Workflow timeout 配置可能不合理: {reason}",
|
|
488
|
+
"W700": "规则 '{rule}' 返回 Verdict,但没有 @id 注解",
|
|
489
|
+
"E701": "规则 @id '{id}' 重复,涉及规则:{rules}",
|
|
490
|
+
"E702": "规则 '{rule}' 上的注解 @{annotation} 只接受一个字符串字面量参数",
|
|
491
|
+
"E703": "{func} 需要 {expected} 个参数,实际传入 {actual} 个",
|
|
492
|
+
"W704": "规则 '{rule}' 上的控制点 '{control}' 未登记(控制注册表 {version})",
|
|
493
|
+
"E705": "模块 '{module}' 声明了未知的档案 '{profile}'(控制注册表 {version})",
|
|
494
|
+
"E706": "规则 '{rule}' 违反档案 '{profile}':{requirement}",
|
|
495
|
+
"E707": "无法对模块 '{module}' 执行治理检查(档案 '{profile}');检查成功前禁止保存",
|
|
496
|
+
"E720": "规则 '{rule}' 无法导出为 Cedar:{reason}",
|
|
497
|
+
"E721": "规则 '{rule}' 使用了 {construct},它没有对应的 Cedar 翻译",
|
|
498
|
+
"E722": "规则 '{rule}' 中的上下文键 '{key}' 同时被当作 {first} 和 {second} 使用",
|
|
499
|
+
"E723": "规则 '{rule}' 的 Cedar 导出在探针 {probe} 上与 Aster 结果不一致:Aster {aster},Cedar {cedar}",
|
|
500
|
+
"E724": "为规则 '{rule}' 生成的 Cedar 未通过 schema 校验:{detail}",
|
|
501
|
+
"E800": "无法在 {role} 位置解析类型 '{written}'",
|
|
502
|
+
"E801": "无法在 {role} 位置解析字段 '{written}'",
|
|
503
|
+
"E802": "无法在 {role} 位置解析名称 '{written}'",
|
|
504
|
+
"E803": "无法在 {role} 位置解析模式 '{written}'",
|
|
505
|
+
"E804": "{role} 位置的名称 '{written}' 存在歧义,候选: {candidates}",
|
|
506
|
+
"E805": "{role} 位置的字段 '{written}' 存在歧义,候选: {candidates}",
|
|
507
|
+
"E806": "{role} 位置的模式 '{written}' 存在歧义,候选: {candidates}",
|
|
508
|
+
"E807": "在 {role} 位置重复声明 '{written}'",
|
|
509
|
+
"W800": "{role} 位置的声明 '{written}' 遮蔽了词汇表条目",
|
|
510
|
+
"W801": "在 {role} 位置解析 '{written}' 时接收者类型未知"
|
|
511
|
+
}
|
|
512
|
+
},
|
|
513
|
+
"diagnosticHelp": {
|
|
514
|
+
"version": 1,
|
|
515
|
+
"help": {
|
|
516
|
+
"E001": "检查类型标注与表达式的推断结果是否一致。",
|
|
517
|
+
"E002": "确认变量先前绑定的类型与当前赋值结果一致。",
|
|
518
|
+
"E003": "检查函数返回语句与声明的返回类型是否一致。",
|
|
519
|
+
"E004": "在函数签名的 of 子句中显式声明使用到的类型变量。",
|
|
520
|
+
"E005": "移除未使用的类型参数,避免造成误导。",
|
|
521
|
+
"E006": "对于看起来像类型变量的名称,务必在 of 子句中声明。",
|
|
522
|
+
"E007": "确认类型推断的多个使用点产出相同的具体类型。",
|
|
523
|
+
"E008": "确保 if 两个分支返回类型保持一致。",
|
|
524
|
+
"E009": "检查 match 每个分支的返回类型是否统一。",
|
|
525
|
+
"E010": "仅在 Int 类型的匹配表达式中使用整数模式。",
|
|
526
|
+
"E011": "检查构造体或数据类型的字段名称是否正确。",
|
|
527
|
+
"E012": "校验字段初始化表达式的类型是否匹配声明。",
|
|
528
|
+
"E013": "为数据构造提供声明中的所有必需字段。",
|
|
529
|
+
"E014": "调整 not 调用的参数数量为 1。",
|
|
530
|
+
"E015": "仅对 Maybe 或 Result 类型调用 await。",
|
|
531
|
+
"E016": "移除重复的枚举分支,保持匹配语句简洁。",
|
|
532
|
+
"E017": "为 Maybe 匹配补齐 null 与非 null 分支。",
|
|
533
|
+
"E018": "补充所有未覆盖的枚举分支,或添加通配符。",
|
|
534
|
+
"E019": "统一互操作调用的参数数值类型,避免隐式装箱与拓宽。",
|
|
535
|
+
"E020": "确保列表字面量中的所有元素类型一致。",
|
|
536
|
+
"E021": "传入 Maybe/Option 类型或显式包装值。",
|
|
537
|
+
"E022": "确保补偿块返回 Result<Unit, E>,其中 E 为 step 错误类型。",
|
|
538
|
+
"E023": "为包含 IO 副作用的 step 提供 compensate 块以便回滚。",
|
|
539
|
+
"E024": "设置 retry.maxAttempts 为正整数。",
|
|
540
|
+
"E025": "将 timeout 设置为正值,确保补偿逻辑可被触发。",
|
|
541
|
+
"E026": "在函数头部添加 @io 效果声明,否则编译器拒绝 workflow 语句。",
|
|
542
|
+
"E027": "在函数头部声明 {capability},或调整该步骤的代码。",
|
|
543
|
+
"E028": "Compensate 只能重复主体已使用的能力。",
|
|
544
|
+
"E029": "仅引用当前 workflow 中已声明的步骤名称,或修正依赖拼写。",
|
|
545
|
+
"E030": "移除或重构循环依赖,确保步骤可拓扑排序执行。",
|
|
546
|
+
"E031": "让两个操作数都是 Decimal(后缀 m),或使用可精确提升为 Decimal 的 Int/Long。",
|
|
547
|
+
"E032": "调整调用,传入与声明数量相同的参数。",
|
|
548
|
+
"E070": "使用脱敏函数或为目标变量声明匹配的 @pii 等级。",
|
|
549
|
+
"E072": "在输出前调用 redact() 或 tokenize() 以降低敏感度。",
|
|
550
|
+
"E073": "检查函数签名,确保 PII 等级与类别一致。",
|
|
551
|
+
"E100": "为不同的导入使用唯一别名,避免覆盖。",
|
|
552
|
+
"E101": "在使用变量前先声明并初始化。",
|
|
553
|
+
"E102": "每个模块最多保留一个 @entry Rule。",
|
|
554
|
+
"E103": "调整 import alias 或本地顶层声明名称,避免导入符号冲突。",
|
|
555
|
+
"E104": "选择不同的名称或检查是否存在意外的重复声明。",
|
|
556
|
+
"E200": "为具有 IO 行为的函数声明 @io 效果。",
|
|
557
|
+
"E201": "为 CPU 密集型函数声明 @cpu 或 @io 效果。",
|
|
558
|
+
"E202": "若函数仅执行 CPU 工作,可移除多余的 @io 声明。",
|
|
559
|
+
"E203": "确认是否需要 @io;若无 IO 行为可移除。",
|
|
560
|
+
"E204": "移除多余的 @cpu 声明或增加相应的 CPU 工作。",
|
|
561
|
+
"E205": "根据推断结果为函数添加 @io 效果。",
|
|
562
|
+
"E206": "根据推断结果补齐 @cpu 或 @io 效果。",
|
|
563
|
+
"E207": "确认是否需要保留 @io 声明。",
|
|
564
|
+
"E208": "若无 CPU 副作用,可删除 @cpu 声明。",
|
|
565
|
+
"E209": "保留 @io 即可满足需求,移除多余的 @cpu。",
|
|
566
|
+
"E210": "在函数签名的效果参数列表中添加效应类型参数。",
|
|
567
|
+
"E211": "参考调用或声明补充明确的效果(pure/cpu/io/workflow),或移除未使用的效应变量。",
|
|
568
|
+
"E212": "通过 ASTER_EFFECT_CONFIG 前缀声明其效果、提供导入的效果签名,或使用已知的标准库命名空间。",
|
|
569
|
+
"E300": "更新能力清单或修改函数实现以符合限制。",
|
|
570
|
+
"E301": "在函数头部声明实际使用到的能力。",
|
|
571
|
+
"E302": "移除未使用的能力声明以保持清晰。",
|
|
572
|
+
"E303": "在函数头部声明 @io 效果,或移除相关调用保持纯度。",
|
|
573
|
+
"E304": "为函数添加 @cpu 或 @io 效果以覆盖 CPU 能力。",
|
|
574
|
+
"E400": "使用加密通道(HTTPS)或脱敏处理后再传输 PII 数据。",
|
|
575
|
+
"E401": "为敏感数据添加 @pii 标注以便跟踪。",
|
|
576
|
+
"E402": "调整数据的敏感级别或更新流程要求。",
|
|
577
|
+
"E403": "在处理 PII 数据前调用 checkConsent() 或添加 @consent_required 注解。",
|
|
578
|
+
"E404": "尝试保存并重新加载文件。若错误仍然存在,请联系管理员,或附上源代码报告此问题。",
|
|
579
|
+
"E500": "对启动的异步任务调用 wait,确保执行完毕。",
|
|
580
|
+
"E501": "确认 wait 的任务名称在 Start 中正确出现。",
|
|
581
|
+
"E502": "避免重复启动同名任务,可复用已有任务或改用新名称。",
|
|
582
|
+
"E503": "确保每个任务仅等待一次,或使用单独的同步机制。",
|
|
583
|
+
"E504": "在 wait for 之前先执行 start,并确保两者位于兼容的控制路径。",
|
|
584
|
+
"W071": "为等级变化添加显式类型注解以便审计。",
|
|
585
|
+
"W074": "为数据增加 @pii 注解以追踪敏感数据流。",
|
|
586
|
+
"W105": "检查 retry 总等待时间、maxAttempts 与 backoff 策略的组合是否合理。",
|
|
587
|
+
"W106": "检查 timeout 值是否过大或过小。",
|
|
588
|
+
"W700": "添加 @id(\"RULE-001\"),让每个决策都能追溯到稳定的规则标识。",
|
|
589
|
+
"E701": "规则 id 在模块内必须唯一。为每条规则设置各自的 @id。",
|
|
590
|
+
"E702": "写成 @id(\"RULE-001\")、@reason(\"...\") 或 @control(\"EU_AI_ACT:ART14\")。",
|
|
591
|
+
"E703": "Verdict.allow() 不接受参数;Verdict.deny(reason) 与 Verdict.escalate(reason) 接受一个 Text;Verdict.require_approval(role, reason) 接受两个 Text。",
|
|
592
|
+
"W704": "使用已登记的键(如 EU_AI_ACT:ART14),或将其加入 aster-lang-locales 的 controls/registry.json(格式 FRAMEWORK:ARTICLE,最多 64 个字符)。",
|
|
593
|
+
"E705": "使用 aster-lang-locales controls/registry.json 中定义的档案,例如 governed 或 eu-ai-act-high-risk。",
|
|
594
|
+
"E706": "满足档案要求,或删除 Profile 声明。",
|
|
595
|
+
"E707": "请稍后重试;这是服务故障,不是策略违规。",
|
|
596
|
+
"E720": "可导出的规则需要 @id、一个带守卫请求字段(principal_id、principal_type、principal_roles、action、resource_type、resource_id、context、agent_model)的参数,以及 Verdict 结果。",
|
|
597
|
+
"E721": "使用比较、and/or/not、对 principal_roles 的 List.contains 以及与字面量的整数运算,或让该规则只在 Aster 中使用。",
|
|
598
|
+
"E722": "每个上下文键只使用一种类型(数字、文本或布尔)。",
|
|
599
|
+
"E723": "这是导出器缺陷,导出已被拦截。请报告此问题。",
|
|
600
|
+
"E724": "这是导出器缺陷,导出已被拦截。请报告此问题。",
|
|
601
|
+
"E800": "检查拼写、导入该类型,或使用当前词汇表中的名称。",
|
|
602
|
+
"E801": "对照数据类型声明或当前词汇表检查字段名。",
|
|
603
|
+
"E802": "先声明或导入该名称、使用当前词汇表中的名称,或写限定的枚举成员(如 Stufe.Hoch)。",
|
|
604
|
+
"E803": "确认该模式是被匹配类型已有的构造器或枚举成员。",
|
|
605
|
+
"E804": "请写限定名(如 Stufe.Hoch)或添加类型注解。",
|
|
606
|
+
"E805": "为接收者(参数或 Let)添加类型注解,使字段按其声明类型解析;或重命名冲突的字段。",
|
|
607
|
+
"E806": "请写限定名(如 Stufe.Hoch)或添加类型注解。",
|
|
608
|
+
"E807": "重命名其中一个声明,或删除重复项。",
|
|
609
|
+
"W800": "若非有意遮蔽请重命名声明;声明优先于词汇表条目。",
|
|
610
|
+
"W801": "为接收者添加类型注解,以便按其类型校验该名称。"
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
};
|
|
615
|
+
//# sourceMappingURL=diagnostic-overlays.generated.js.map
|