Class ExistenceConstraintAuthoringTools

java.lang.Object
ch.so.agi.mcp.tools.ExistenceConstraintAuthoringTools

@Component public final class ExistenceConstraintAuthoringTools extends Object
  • Constructor Details

  • Method Details

    • authorIliExistenceConstraint

      @McpTool(name="authorIliExistenceConstraint", description="Erzeugt einen typisierten EXISTENCE CONSTRAINT mit explizitem restrictedPath und vollst\u00e4ndigen REQUIRED-IN-Zielen aus viewableFqn und attributePath. Die Einf\u00fcgung ist source-preserving; Before/After je genau einmal kompiliert; AST->constraint-level-IR sowie NUMERIC-, TEXT-, Struktur-, Referenz- und Geometrie-Fixtures werden mit ilivalidator gepr\u00fcft. Nur ein vollst\u00e4ndig best\u00e4tigter Proof wird freigegeben. Das Tool schreibt keine Datei.", generateOutputSchema=true, annotations=) public IliAuthoringResult authorIliExistenceConstraint(@McpToolParam(description="Vollst\u00e4ndiger INTERLIS-Modelltext vor der Erg\u00e4nzung",required=true) String modelText, @McpToolParam(description="Vollqualifizierter Constraint-Kontext",required=true) String contextFqn, @McpToolParam(description="Typisierte EXISTENCE-Spezifikation Prosa: Erwartungen vorab festhalten, vor Schreiben mit testIliConstraint pr\u00fcfen. Test-modelHashes.model muss Authoring-modelHashes.after entsprechen; aktuelle Datei gegen before pr\u00fcfen. Normal includeSuccessfulTestXtf=false. INVALID_SPEC gezielt einmal korrigieren; offene Fragen kl\u00e4ren, Proof-Grenzen berichten. Serverstatus allein ist keine Schreibfreigabe. Technischer Constraint-Name: [A-Za-z][A-Za-z0-9_]*, z.B. Regel42. Eine fachliche Regelnummer ist kein technischer Name; keine automatische Umbenennung. ENUM.value ist ein String, z.B. Drainage oder #Drainage, auch Gruppe.Drainage. Genau ein optionales fuehrendes # wird normalisiert; TEXT/MTEXT bleiben unveraendert. FUNCTION: name ist bei functionOrigin=STANDARD die semanticId aus listConstraintFunctions, z.B. COLLECTION_SUM statt Math.sum und NUMERIC_ADD statt Math.add. Bei MODEL/VALIDATOR_EXTENSION ist name der qualifizierte Funktionsname. Argumente stehen ausschliesslich geordnet in children, niemals in FUNCTION.objects. OBJECT_COUNT als Ausdruck liefert eine Zahl: {\"kind\":\"COMPARE\",\"operator\":\"==\",\"children\":[{\"kind\":\"OBJECT_COUNT\",\"objects\":{\"kind\":\"ALL\"}},{\"kind\":\"NUMERIC\",\"value\":1}]}. Nur die separate SET-Condition OBJECT_COUNT hat objects, operator und threshold; sie hat kein value. Ergebnis evidence trennt ausgef\u00fchrte Pr\u00fcfungen von fachlicher Akzeptanz; neue Befunde \u00e4ndern keine Freigaben.",required=true) IliConstraintSpec.Existence spec, @McpToolParam(description="Modellzweck",required=false) @Nullable ModelPurpose modelPurpose, @McpToolParam(description="Regelprofil CORE, SO-GIS oder SO-DATA",required=false) @Nullable ModelingRuleProfile ruleProfile, @McpToolParam(description="Standard true. false l\u00e4sst nur XTF-Texte bestandener, ausge\u00fcbter F\u00e4lle mit g\u00fcltiger Fixture und null Warnungen weg; alle Diagnosen bleiben erhalten.",required=false) @Nullable Boolean includeSuccessfulTestXtf)
    • authorIliExistenceConstraint

      public IliAuthoringResult authorIliExistenceConstraint(String modelText, String contextFqn, IliConstraintSpec.Existence spec, @Nullable ModelPurpose modelPurpose, @Nullable ModelingRuleProfile ruleProfile)