Files
OmniRoute/open-sse/services/compression/rules/it/structural.json
Praveen K Palaniswamy 65e81158ab fix(ollama): route models by advertised capability (#11088)
Landed with the design call resolved per the owner's pick — **option 1**: the synced store is now endpoint-agnostic (persistDiscoveredModels and managedModelImport no longer drop non-chat models at write time), and chat selectability moved to read time (auto-pool expansion in autoStrategy applies filterChatSelectableModels; the models-route projection already had its chatOnly filter). Your discovery test now passes end-to-end (3/3): /api/show capabilities persist per connection and image/embedding requests route through the advertising host.

Reconciliation notes: conflicted areas merged onto the current tip (adobe discovery import, requestedModel preflight signature, resolvedProvider fast-path coexists with the synced-route override — explicit resolution wins); carried base-red drains (#10055 memoization, #11071 test variants) dropped as already-landed; the managed-model-import exclusion test was propagated to the new contract (image/video models persist; the read filter still hides them from chat pickers — pinned by a new assertion). Full battery: 205/206 focused (the one red is a confirmed periodic-timer timing flake on the loaded devbox — 20/20 isolated), autoCombo vitest 30/30, combo suites 46/46, gates + typecheck clean.

Thank you @yourspraveen — the capability probe + routing design was right; it just needed the store contract opened up. Fixes #11087.
2026-08-23 11:45:01 -03:00

103 lines
3.1 KiB
JSON

{
"language": "it",
"category": "structural",
"rules": [
{
"name": "it_purpose",
"pattern": "\\b(?:al fine di|allo scopo di|con l'obiettivo di|in modo da poter|in modo da|così da|in maniera tale da)\\b\\s*",
"replacement": "per ",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_causal",
"pattern": "\\b(?:a causa del fatto che|per il fatto che|dal momento che|visto che|dato che|in quanto)\\b\\s*",
"replacement": "perché ",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_connectors",
"pattern": "\\b(?:inoltre|in aggiunta|per di più|d'altra parte|d'altro canto|oltre a ciò)\\b[,]?\\s*",
"replacement": "anche ",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_emphasis",
"pattern": "\\b(?:molto|davvero|veramente|estremamente|parecchio|piuttosto|abbastanza|super)\\s+(?=[a-zàèéìòùA-Z])",
"replacement": "",
"context": "all",
"category": "structural",
"minIntensity": "full"
},
{
"name": "it_redundant_phrasing",
"pattern": "\\bnel caso in cui\\b",
"replacement": "se",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_time_redundancy",
"pattern": "\\b(?:nel momento in cui|nell'istante in cui|nel periodo in cui)\\b",
"replacement": "quando",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_place_redundancy",
"pattern": "\\b(?:all'interno di|nell'ambito di|nel contesto di)\\b",
"replacement": "in",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_recommendation",
"pattern": "\\b(?:ti (?:consiglierei|consiglio|suggerirei|suggerisco) di|sarebbe (?:meglio|opportuno|consigliabile)|converrebbe)\\b\\s*",
"replacement": "usa ",
"context": "assistant",
"category": "structural",
"minIntensity": "full"
},
{
"name": "it_possibility",
"pattern": "\\b(?:è possibile che|potrebbe essere che|può darsi che)\\b\\s*",
"replacement": "forse ",
"context": "all",
"category": "structural",
"minIntensity": "full"
},
{
"name": "it_necessity",
"pattern": "\\b(?:è necessario che|occorre che|bisogna che|è indispensabile che)\\b\\s*",
"replacement": "serve che ",
"context": "all",
"category": "structural",
"minIntensity": "lite"
},
{
"name": "it_conclusion",
"pattern": "\\b(?:in conclusione|per concludere|riassumendo|in sintesi|tirando le somme)\\b[,:]?\\s*",
"replacement": "",
"context": "assistant",
"category": "structural",
"minIntensity": "full"
},
{
"name": "it_double_negation",
"pattern": "\\bnon è (?:possibile|fattibile) (?:non |)\\b",
"replacement": "non si può ",
"context": "all",
"category": "structural",
"minIntensity": "full"
}
]
}