先 Parse
SQL 不會直接送進 database driver,而是先進入結構化 parser。
SQL 不會直接送進 database driver,而是先進入結構化 parser。
來源或目標語意無法證明時直接拒絕,不偷偷降級。
不同資料庫的差異留在明確的執行邊界裡處理。
LLM 可以提出 SQL,但不是只要資料庫本身能 parse,就代表這段 SQL 應該被執行。hs-sql-agent 在模型與連線之間建立 compiler 與 policy boundary。
整條 pipeline 採 fail-closed:無法安全表示或證明的 statement 直接拒絕,不會為了『能跑』而改寫成語意不同的 SQL。
Query 依序經過 parsing、binding、validation、capability check、provider-specific compilation 與 immutable command execution,讓安全政策面對的是結構化 statement,而不是只靠 raw SQL text。
SQL 支援面可以持續擴充,但不需要放棄安全契約。新的語法必須同時進入 parser、typed model、validation、capability proof、renderer 與測試,才算真正被支援。