@duckcodeailabs/dql-agent 1.6.33 → 1.7.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/dist/agent-run-engine.d.ts +39 -8
- package/dist/agent-run-engine.d.ts.map +1 -1
- package/dist/agent-run-engine.js +169 -10
- package/dist/agent-run-engine.js.map +1 -1
- package/dist/agent-run-gates.d.ts.map +1 -1
- package/dist/agent-run-gates.js +21 -3
- package/dist/agent-run-gates.js.map +1 -1
- package/dist/agent-run-planner.d.ts.map +1 -1
- package/dist/agent-run-planner.js +14 -3
- package/dist/agent-run-planner.js.map +1 -1
- package/dist/agentic/answer-contract.d.ts +37 -0
- package/dist/agentic/answer-contract.d.ts.map +1 -0
- package/dist/agentic/answer-contract.js +47 -0
- package/dist/agentic/answer-contract.js.map +1 -0
- package/dist/agentic/tool-loop.d.ts +48 -0
- package/dist/agentic/tool-loop.d.ts.map +1 -0
- package/dist/agentic/tool-loop.js +181 -0
- package/dist/agentic/tool-loop.js.map +1 -0
- package/dist/agentic/toolset.d.ts +40 -0
- package/dist/agentic/toolset.d.ts.map +1 -0
- package/dist/agentic/toolset.js +265 -0
- package/dist/agentic/toolset.js.map +1 -0
- package/dist/answer-loop.d.ts +82 -6
- package/dist/answer-loop.d.ts.map +1 -1
- package/dist/answer-loop.js +799 -112
- package/dist/answer-loop.js.map +1 -1
- package/dist/app-builder.d.ts.map +1 -1
- package/dist/app-builder.js +18 -10
- package/dist/app-builder.js.map +1 -1
- package/dist/cascade/budgets.d.ts +20 -2
- package/dist/cascade/budgets.d.ts.map +1 -1
- package/dist/cascade/budgets.js +83 -45
- package/dist/cascade/budgets.js.map +1 -1
- package/dist/cascade/route-policy.d.ts +1 -1
- package/dist/cascade/route-policy.d.ts.map +1 -1
- package/dist/cascade/route-policy.js +6 -0
- package/dist/cascade/route-policy.js.map +1 -1
- package/dist/domain-context.d.ts +30 -0
- package/dist/domain-context.d.ts.map +1 -0
- package/dist/domain-context.js +68 -0
- package/dist/domain-context.js.map +1 -0
- package/dist/embeddings/provider.d.ts +67 -4
- package/dist/embeddings/provider.d.ts.map +1 -1
- package/dist/embeddings/provider.js +167 -6
- package/dist/embeddings/provider.js.map +1 -1
- package/dist/hints/correction-eval.d.ts +30 -0
- package/dist/hints/correction-eval.d.ts.map +1 -0
- package/dist/hints/correction-eval.js +63 -0
- package/dist/hints/correction-eval.js.map +1 -0
- package/dist/hints/git-store.d.ts +39 -3
- package/dist/hints/git-store.d.ts.map +1 -1
- package/dist/hints/git-store.js +172 -2
- package/dist/hints/git-store.js.map +1 -1
- package/dist/hints/staleness.d.ts +30 -0
- package/dist/hints/staleness.d.ts.map +1 -0
- package/dist/hints/staleness.js +38 -0
- package/dist/hints/staleness.js.map +1 -0
- package/dist/hints/store.d.ts.map +1 -1
- package/dist/hints/store.js +3 -32
- package/dist/hints/store.js.map +1 -1
- package/dist/hints/types.d.ts +41 -0
- package/dist/hints/types.d.ts.map +1 -1
- package/dist/hints/types.js +1 -0
- package/dist/hints/types.js.map +1 -1
- package/dist/index.d.ts +46 -10
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +180 -9
- package/dist/index.js.map +1 -1
- package/dist/intent-controller.d.ts.map +1 -1
- package/dist/intent-controller.js +15 -3
- package/dist/intent-controller.js.map +1 -1
- package/dist/kg/build.d.ts.map +1 -1
- package/dist/kg/build.js +196 -4
- package/dist/kg/build.js.map +1 -1
- package/dist/kg/sqlite-fts.d.ts +13 -0
- package/dist/kg/sqlite-fts.d.ts.map +1 -1
- package/dist/kg/sqlite-fts.js +82 -49
- package/dist/kg/sqlite-fts.js.map +1 -1
- package/dist/kg/types.d.ts +9 -2
- package/dist/kg/types.d.ts.map +1 -1
- package/dist/memory/fts-query.d.ts +37 -4
- package/dist/memory/fts-query.d.ts.map +1 -1
- package/dist/memory/fts-query.js +53 -12
- package/dist/memory/fts-query.js.map +1 -1
- package/dist/metadata/analysis-planner.d.ts.map +1 -1
- package/dist/metadata/analysis-planner.js +179 -28
- package/dist/metadata/analysis-planner.js.map +1 -1
- package/dist/metadata/analytical-policy.d.ts +51 -0
- package/dist/metadata/analytical-policy.d.ts.map +1 -0
- package/dist/metadata/analytical-policy.js +309 -0
- package/dist/metadata/analytical-policy.js.map +1 -0
- package/dist/metadata/block-adapt.d.ts +37 -0
- package/dist/metadata/block-adapt.d.ts.map +1 -0
- package/dist/metadata/block-adapt.js +89 -0
- package/dist/metadata/block-adapt.js.map +1 -0
- package/dist/metadata/block-fit.js +37 -4
- package/dist/metadata/block-fit.js.map +1 -1
- package/dist/metadata/catalog.d.ts +85 -1
- package/dist/metadata/catalog.d.ts.map +1 -1
- package/dist/metadata/catalog.js +674 -92
- package/dist/metadata/catalog.js.map +1 -1
- package/dist/metadata/dbt-first-safety.d.ts +19 -0
- package/dist/metadata/dbt-first-safety.d.ts.map +1 -0
- package/dist/metadata/dbt-first-safety.js +17 -0
- package/dist/metadata/dbt-first-safety.js.map +1 -0
- package/dist/metadata/example-match.d.ts +30 -0
- package/dist/metadata/example-match.d.ts.map +1 -0
- package/dist/metadata/example-match.js +69 -0
- package/dist/metadata/example-match.js.map +1 -0
- package/dist/metadata/grain-ledger.d.ts +51 -0
- package/dist/metadata/grain-ledger.d.ts.map +1 -0
- package/dist/metadata/grain-ledger.js +174 -0
- package/dist/metadata/grain-ledger.js.map +1 -0
- package/dist/metadata/metric-match.d.ts +21 -1
- package/dist/metadata/metric-match.d.ts.map +1 -1
- package/dist/metadata/metric-match.js +157 -21
- package/dist/metadata/metric-match.js.map +1 -1
- package/dist/metadata/sql-context-validation.d.ts.map +1 -1
- package/dist/metadata/sql-context-validation.js +42 -2
- package/dist/metadata/sql-context-validation.js.map +1 -1
- package/dist/metadata/sql-grounding.d.ts +4 -2
- package/dist/metadata/sql-grounding.d.ts.map +1 -1
- package/dist/metadata/sql-grounding.js +29 -4
- package/dist/metadata/sql-grounding.js.map +1 -1
- package/dist/metadata/sql-retrieval.d.ts +5 -2
- package/dist/metadata/sql-retrieval.d.ts.map +1 -1
- package/dist/metadata/sql-retrieval.js +28 -6
- package/dist/metadata/sql-retrieval.js.map +1 -1
- package/dist/propose/build-from-prompt.d.ts +34 -0
- package/dist/propose/build-from-prompt.d.ts.map +1 -1
- package/dist/propose/build-from-prompt.js +205 -19
- package/dist/propose/build-from-prompt.js.map +1 -1
- package/dist/propose/failure-analysis.d.ts +48 -0
- package/dist/propose/failure-analysis.d.ts.map +1 -0
- package/dist/propose/failure-analysis.js +71 -0
- package/dist/propose/failure-analysis.js.map +1 -0
- package/dist/propose/join-mining.d.ts +18 -0
- package/dist/propose/join-mining.d.ts.map +1 -0
- package/dist/propose/join-mining.js +74 -0
- package/dist/propose/join-mining.js.map +1 -0
- package/dist/providers/claude.d.ts.map +1 -1
- package/dist/providers/claude.js +36 -1
- package/dist/providers/claude.js.map +1 -1
- package/dist/providers/index.d.ts +2 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +34 -1
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/reasoning-effort.d.ts +27 -0
- package/dist/providers/reasoning-effort.d.ts.map +1 -1
- package/dist/providers/reasoning-effort.js +32 -0
- package/dist/providers/reasoning-effort.js.map +1 -1
- package/dist/providers/types.d.ts +2 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/research-loop.d.ts.map +1 -1
- package/dist/research-loop.js +9 -2
- package/dist/research-loop.js.map +1 -1
- package/dist/semantic-bridge/compose.d.ts.map +1 -1
- package/dist/semantic-bridge/compose.js +316 -25
- package/dist/semantic-bridge/compose.js.map +1 -1
- package/dist/skills/bootstrap.d.ts +57 -0
- package/dist/skills/bootstrap.d.ts.map +1 -0
- package/dist/skills/bootstrap.js +260 -0
- package/dist/skills/bootstrap.js.map +1 -0
- package/dist/skills/defaults.d.ts +2 -2
- package/dist/skills/defaults.js +2 -2
- package/dist/skills/domain-skills.d.ts +24 -0
- package/dist/skills/domain-skills.d.ts.map +1 -0
- package/dist/skills/domain-skills.js +76 -0
- package/dist/skills/domain-skills.js.map +1 -0
- package/dist/skills/loader.d.ts +56 -8
- package/dist/skills/loader.d.ts.map +1 -1
- package/dist/skills/loader.js +257 -41
- package/dist/skills/loader.js.map +1 -1
- package/dist/synthesize.d.ts.map +1 -1
- package/dist/synthesize.js +152 -16
- package/dist/synthesize.js.map +1 -1
- package/dist/tools/registry.d.ts +1 -1
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +54 -12
- package/dist/tools/registry.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-grounding.js","sourceRoot":"","sources":["../../src/metadata/sql-grounding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sql-grounding.js","sourceRoot":"","sources":["../../src/metadata/sql-grounding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAkDhE,SAAS,gBAAgB,CAAC,KAAmB,EAAE,SAAuB;IACpE,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AACzF,CAAC;AAED,SAAS,aAAa,CAAC,MAAqB,EAAE,SAAuB;IACnE,MAAM,OAAO,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACpE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAChG,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,UAAU;QAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,SAAmC,EACnC,cAA6C,EAC7C,UAAuC,EAAE;IAEzC,MAAM,KAAK,GAAoB,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAC9E,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAC;IAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAChF,CAAC;IAEF,wEAAwE;IACxE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,MAAM,YAAY,GAAG,IAAI,GAAG,EAAwB,CAAC;IACrD,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,KAAK;YAAE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,OAAuB,CAAC;IAC5B,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC;QACb,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QACD,0EAA0E;QAC1E,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;YACnC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAElC,MAAM,MAAM,GAAoB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,iBAAiB,EAAE,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,IAAI;QACxD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,gBAAgB,CAAC,KAAK,EAAE,SAAS,CAAC;QAC3C,IAAI,EAAE,OAAgB;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,cAAc,EACZ,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACvC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAChE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;KACvD,CAAC,CAAC,CAAC;IAEJ,+EAA+E;IAC/E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAChC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,IAAI;YAC1D,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,MAAuB,EAAE,SAAuB;IACrE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IACvF,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,IAAI,GAAG,CAAC,GAAoB,EAAE,EAAE;QACpC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC;aAC9E,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aAC3B,IAAI,EAAE;aACN,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO;QACzB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,qEAAqE;IACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAClF,IAAI,CAAC;wBACH,YAAY,EAAE,KAAK,CAAC,iBAAiB;wBACrC,UAAU,EAAE,GAAG,CAAC,IAAI;wBACpB,aAAa,EAAE,QAAQ,CAAC,iBAAiB;wBACzC,WAAW,EAAE,GAAG,CAAC,IAAI;wBACrB,MAAM,EAAE,gBAAgB,KAAK,CAAC,IAAI,eAAe,QAAQ,CAAC,IAAI,gBAAgB,GAAG,CAAC,IAAI,EAAE;qBACzF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACxB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBACzC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBAC/E,IAAI,CAAC;wBACH,YAAY,EAAE,IAAI,CAAC,iBAAiB;wBACpC,UAAU,EAAE,GAAG,CAAC,IAAI;wBACpB,aAAa,EAAE,KAAK,CAAC,iBAAiB;wBACtC,WAAW,EAAE,GAAG,CAAC,IAAI;wBACrB,MAAM,EAAE,qBAAqB,GAAG,CAAC,IAAI,EAAE;qBACxC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAWD;;;;;;;;;GASG;AACH,MAAM,UAAU,kCAAkC,CAAC,SAAiC;IAClF,MAAM,MAAM,GAAoB,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ;QAChE,iBAAiB,EAAE,GAAG,CAAC,QAAQ;QAC/B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7F,IAAI,EAAE,OAAgB;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACzC,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,SAA0B,EAC1B,UAA4C,EAAE;IAE9C,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACxE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC;IAC7C,MAAM,QAAQ,GAAwC,EAAE,CAAC;IAEzD,kFAAkF;IAClF,MAAM,OAAO,GAAG,yEAAyE,CAAC;IAC1F,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAe,EAAE,QAAgB,EAAE,EAAE;QACjF,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;QACtD,0DAA0D;QAC1D,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;YAAE,OAAO,KAAK,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC,CAAC,6CAA6C;QACvE,MAAM,MAAM,GAAG,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;QAC3F,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,WAAW,EAAE;YAAE,OAAO,KAAK,CAAC,CAAC,mBAAmB;QACxF,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAChD,OAAO,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB,EAAE,SAA0B;IAC/D,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG;YAAE,OAAO,GAAG,CAAC;IACtB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAkBD;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,GAAW,EACX,SAA0B;IAE1B,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC5C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,qDAAqD,QAAQ,CAAC,KAAK,IAAI,qBAAqB,EAAE;YACrG,QAAQ;YACR,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzE,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,uEAAuE,MAAM,CAAC,WAAW,EAAE,GAAG;YACrG,QAAQ;YACR,mBAAmB;SACpB,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,sEAAsE,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/H,CAAC;IAED,uEAAuE;IACvE,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE,CAAC;QAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS,CAAC,6CAA6C;QAClF,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,yBAAyB,QAAQ,sDAAsD,SAAS,CAAC,MAAM;qBAC3G,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC;qBAC/B,IAAI,CAAC,IAAI,CAAC,GAAG;gBAChB,QAAQ;gBACR,mBAAmB;gBACnB,SAAS,EAAE,EAAE,QAAQ,EAAE;aACxB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAChD,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACtC,IAAI,MAAM,CAAC,MAAM,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,MAAM,CAAC,WAAW,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAAE,SAAS;QACnF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACtD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS,CAAC,qDAAqD;YACzG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBACrF,OAAO;oBACL,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,0BAA0B,MAAM,CAAC,MAAM,6BAA6B,KAAK,CAAC,iBAAiB,GAAG;oBACrG,QAAQ;oBACR,mBAAmB;oBACnB,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;iBACxE,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QACD,2EAA2E;QAC3E,2EAA2E;QAC3E,iDAAiD;QACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;aACjF,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC/C,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACnH,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,QAAQ,GAAG,CAAC;aACpD,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,sCAAsC,MAAM,CAAC,MAAM,iDAAiD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gDAAgD;gBAC5K,QAAQ;gBACR,mBAAmB;gBACnB,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;aACrC,CAAC;QACJ,CAAC;QACD,MAAM,gBAAgB,GAAG,mBAAmB;aACzC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,KAAK,EAA0B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC1C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;YAC7G,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,0BAA0B,MAAM,CAAC,MAAM,kDAAkD;gBAChG,QAAQ;gBACR,mBAAmB;gBACnB,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;aACrC,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;AACrD,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,gCAAgC,CAAC,EAAE,CAAC;QACrE,KAAK,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACxE,IAAI,IAAI;gBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAA0B,EAC1B,SAAsC,MAAM;IAE5C,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,uBAAuB,CAAC;IAClE,MAAM,UAAU,GACd,MAAM,KAAK,OAAO;QAChB,CAAC,CAAC,+HAA+H;QACjI,CAAC,CAAC,8IAA8I,CAAC;IAErJ,MAAM,KAAK,GAAa,CAAC,yCAAyC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACpF,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO;aACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,iBAAiB,GAAG,GAAG,GAAG,SAAS,EAAE,CAAC,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,wBAAwB,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,UAAU,MAAM,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACvH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
|
|
@@ -18,13 +18,16 @@ export interface SelectRelevantModelsOptions {
|
|
|
18
18
|
/** Vector-similarity weight in [0,1]; 0 (default) = pure lexical, offline-stable. */
|
|
19
19
|
alpha?: number;
|
|
20
20
|
provider?: EmbeddingProvider;
|
|
21
|
+
/** dbt unique ids that a focused Model Area owns or explicitly references. */
|
|
22
|
+
preferredModelIds?: string[];
|
|
21
23
|
}
|
|
22
24
|
export declare const DEFAULT_SQL_RETRIEVAL_EMBEDDING_ALPHA = 0.18;
|
|
23
25
|
/**
|
|
24
26
|
* Rank models by relevance to `request` and return the top-K model names
|
|
25
27
|
* (logical `name`, suitable for `buildSchemaGrounding`'s `relevantModels`).
|
|
26
|
-
* When no model has any lexical overlap,
|
|
27
|
-
*
|
|
28
|
+
* When no model has any lexical or embedding overlap, falls back to the most
|
|
29
|
+
* frequently run models (dbt run_results), then alphabetical — so the grounding
|
|
30
|
+
* is never empty and never arbitrary insertion order.
|
|
28
31
|
*/
|
|
29
32
|
export declare function selectRelevantModels(artifacts: DbtArtifacts | undefined, request: string, options?: SelectRelevantModelsOptions): Promise<string[]>;
|
|
30
33
|
//# sourceMappingURL=sql-retrieval.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-retrieval.d.ts","sourceRoot":"","sources":["../../src/metadata/sql-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"sql-retrieval.d.ts","sourceRoot":"","sources":["../../src/metadata/sql-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA8D,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/H,OAAO,KAAK,EAAE,YAAY,EAAgB,MAAM,6BAA6B,CAAC;AAE9E,MAAM,WAAW,2BAA2B;IAC1C,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,qCAAqC,OAAO,CAAC;AA4C1D;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CAuCnB"}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* hashed-token vector. A small non-zero blend lets a pluggable provider refine
|
|
11
11
|
* paraphrase matches while lexical recall remains the gate.
|
|
12
12
|
*/
|
|
13
|
-
import {
|
|
13
|
+
import { envEmbeddingProvider, hybridRank } from '../embeddings/provider.js';
|
|
14
14
|
export const DEFAULT_SQL_RETRIEVAL_EMBEDDING_ALPHA = 0.18;
|
|
15
15
|
const TOKEN_RE = /[\p{L}\p{N}_]+/gu;
|
|
16
16
|
function tokenize(text) {
|
|
@@ -56,8 +56,9 @@ function lexicalScore(queryTokens, model, artifacts) {
|
|
|
56
56
|
/**
|
|
57
57
|
* Rank models by relevance to `request` and return the top-K model names
|
|
58
58
|
* (logical `name`, suitable for `buildSchemaGrounding`'s `relevantModels`).
|
|
59
|
-
* When no model has any lexical overlap,
|
|
60
|
-
*
|
|
59
|
+
* When no model has any lexical or embedding overlap, falls back to the most
|
|
60
|
+
* frequently run models (dbt run_results), then alphabetical — so the grounding
|
|
61
|
+
* is never empty and never arbitrary insertion order.
|
|
61
62
|
*/
|
|
62
63
|
export async function selectRelevantModels(artifacts, request, options = {}) {
|
|
63
64
|
if (!artifacts || artifacts.models.length === 0)
|
|
@@ -72,10 +73,31 @@ export async function selectRelevantModels(artifacts, request, options = {}) {
|
|
|
72
73
|
const hasLexicalSignal = items.some((item) => item.ftsScore > 0);
|
|
73
74
|
const ranked = await hybridRank(request, items, {
|
|
74
75
|
alpha: hasLexicalSignal ? options.alpha ?? DEFAULT_SQL_RETRIEVAL_EMBEDDING_ALPHA : 0,
|
|
75
|
-
provider: options.provider ??
|
|
76
|
+
provider: options.provider ?? envEmbeddingProvider(),
|
|
76
77
|
});
|
|
77
78
|
const withSignal = ranked.filter((r) => r.ftsScore > 0 || (hasLexicalSignal && r.score > 0));
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
let chosen;
|
|
80
|
+
if (withSignal.length > 0) {
|
|
81
|
+
chosen = withSignal.slice(0, topK);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
// No lexical or embedding signal at all. Rather than returning models in
|
|
85
|
+
// arbitrary insertion order, prefer the ones that actually matter: most
|
|
86
|
+
// frequently run (dbt run_results) first, then alphabetical for stability.
|
|
87
|
+
chosen = [...ranked]
|
|
88
|
+
.sort((a, b) => {
|
|
89
|
+
const runsA = artifacts.runCounts.get(a.item.uniqueId) ?? 0;
|
|
90
|
+
const runsB = artifacts.runCounts.get(b.item.uniqueId) ?? 0;
|
|
91
|
+
if (runsB !== runsA)
|
|
92
|
+
return runsB - runsA;
|
|
93
|
+
return a.item.name.localeCompare(b.item.name);
|
|
94
|
+
})
|
|
95
|
+
.slice(0, topK);
|
|
96
|
+
}
|
|
97
|
+
const preferred = new Set((options.preferredModelIds ?? []).map((id) => id.trim()).filter(Boolean));
|
|
98
|
+
const preferredNames = artifacts.models
|
|
99
|
+
.filter((model) => preferred.has(model.uniqueId))
|
|
100
|
+
.map((model) => model.name);
|
|
101
|
+
return [...new Set([...preferredNames, ...chosen.map((r) => r.item.name)])].slice(0, topK);
|
|
80
102
|
}
|
|
81
103
|
//# sourceMappingURL=sql-retrieval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sql-retrieval.js","sourceRoot":"","sources":["../../src/metadata/sql-retrieval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"sql-retrieval.js","sourceRoot":"","sources":["../../src/metadata/sql-retrieval.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
import { type ExecutionProbe, type BlockReflection } from './reflect-block.js';
|
|
28
28
|
import type { KGNode } from '../kg/types.js';
|
|
29
29
|
import type { Skill } from '../skills/loader.js';
|
|
30
|
+
import type { LocalContextPack } from '../metadata/catalog.js';
|
|
31
|
+
import { type DomainContextEnvelope } from '../domain-context.js';
|
|
30
32
|
import type { AgentProvider } from '../providers/types.js';
|
|
31
33
|
import { blockSlug } from './write-draft.js';
|
|
32
34
|
export interface BuildFromPromptContext {
|
|
@@ -76,6 +78,16 @@ export interface BuildFromPromptOptions {
|
|
|
76
78
|
dbtManifestPath?: string;
|
|
77
79
|
/** Domain for a built block draft. Defaults to `misc`. */
|
|
78
80
|
domain?: string;
|
|
81
|
+
/** Focused Model Area used to rank skills inside the selected domain. */
|
|
82
|
+
modelAreaId?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Immutable, server-built evidence envelope shared with Ask and other AI
|
|
85
|
+
* surfaces. When supplied it is the only metadata/skill scope this direct
|
|
86
|
+
* build may consume; mutable on-disk retrieval must not widen it.
|
|
87
|
+
*/
|
|
88
|
+
contextPack?: LocalContextPack;
|
|
89
|
+
/** Server-resolved domain authorization for this build request. */
|
|
90
|
+
domainContext?: DomainContextEnvelope;
|
|
79
91
|
/** Active user, for personal-skill selection. */
|
|
80
92
|
userId?: string;
|
|
81
93
|
/**
|
|
@@ -102,7 +114,27 @@ export interface BuildFromPromptOptions {
|
|
|
102
114
|
/** The Skills that shaped this build (stamped on both targets). */
|
|
103
115
|
export interface AppliedSkill {
|
|
104
116
|
id: string;
|
|
117
|
+
qualifiedId?: string;
|
|
105
118
|
description?: string;
|
|
119
|
+
/** Immutable context-pack or source-file provenance for UI/audit display. */
|
|
120
|
+
provenance?: string;
|
|
121
|
+
}
|
|
122
|
+
/** Direct Build returns an editable proposal, never an answer certification. */
|
|
123
|
+
export interface BuildTrustDiagnostics {
|
|
124
|
+
sourceTrust: 'governed_semantic_source' | 'exploratory_dbt_grounded';
|
|
125
|
+
reviewRequired: true;
|
|
126
|
+
contextPackId?: string;
|
|
127
|
+
snapshotId?: string;
|
|
128
|
+
activeDomain?: string;
|
|
129
|
+
selectedSkillIds: string[];
|
|
130
|
+
selectedSkillProvenance: Array<{
|
|
131
|
+
id: string;
|
|
132
|
+
qualifiedId?: string;
|
|
133
|
+
provenance?: string;
|
|
134
|
+
}>;
|
|
135
|
+
allowedRelations: string[];
|
|
136
|
+
joinPolicy: 'semantic_definition' | 'dbt_hints_are_not_governed_proof';
|
|
137
|
+
warnings: string[];
|
|
106
138
|
}
|
|
107
139
|
export interface BuildCellResult {
|
|
108
140
|
target: 'cell';
|
|
@@ -110,6 +142,7 @@ export interface BuildCellResult {
|
|
|
110
142
|
explanation?: string;
|
|
111
143
|
/** Skills that shaped the answer, for UI transparency. */
|
|
112
144
|
appliedSkills?: AppliedSkill[];
|
|
145
|
+
diagnostics?: BuildTrustDiagnostics;
|
|
113
146
|
}
|
|
114
147
|
export interface BuildBlockResult {
|
|
115
148
|
target: 'block';
|
|
@@ -137,6 +170,7 @@ export interface BuildBlockResult {
|
|
|
137
170
|
* auto-fixed (output contract, governance gaps), and what remains for the human.
|
|
138
171
|
*/
|
|
139
172
|
reflection?: BlockReflection;
|
|
173
|
+
diagnostics?: BuildTrustDiagnostics;
|
|
140
174
|
}
|
|
141
175
|
export type BuildFromPromptResult = BuildCellResult | BuildBlockResult;
|
|
142
176
|
export interface CertifierVerdict {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-from-prompt.d.ts","sourceRoot":"","sources":["../../src/propose/build-from-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"build-from-prompt.d.ts","sourceRoot":"","sources":["../../src/propose/build-from-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ import { existsSync, readdirSync } from 'node:fs';
|
|
|
28
28
|
import { join } from 'node:path';
|
|
29
29
|
import { createRequire } from 'node:module';
|
|
30
30
|
import { Certifier } from '@duckcodeailabs/dql-governance';
|
|
31
|
+
import { buildManifest } from '@duckcodeailabs/dql-core';
|
|
31
32
|
import { reflectAndReviseBlock, } from './reflect-block.js';
|
|
32
33
|
import { deriveSemanticDraftName } from '../metadata/drafts.js';
|
|
33
34
|
import { resolveLocalOwner } from '../metadata/identity.js';
|
|
@@ -35,7 +36,8 @@ import { matchSemanticMetric, resolveGovernedMetricSql, parseMetricDefinition, }
|
|
|
35
36
|
import { deriveBlockFilters } from './generate-sql.js';
|
|
36
37
|
import { buildSchemaGrounding, renderGroundingForPrompt, resolveRelationsInSql, validateSqlAgainstGrounding, } from '../metadata/sql-grounding.js';
|
|
37
38
|
import { selectRelevantModels } from '../metadata/sql-retrieval.js';
|
|
38
|
-
import { buildSkillsPrompt, loadSkills, selectRelevantSkills } from '../skills/loader.js';
|
|
39
|
+
import { buildSkillsPrompt, expandQuestionWithSkillVocabulary, loadSkills, selectRelevantSkills } from '../skills/loader.js';
|
|
40
|
+
import { domainContextSearchDomains } from '../domain-context.js';
|
|
39
41
|
import { pickProvider } from '../providers/index.js';
|
|
40
42
|
import { loadDbtArtifacts } from './dbt-artifacts.js';
|
|
41
43
|
import { blockSlug, upsertProposedDraft } from './write-draft.js';
|
|
@@ -45,12 +47,12 @@ const CELL_SYSTEM_PROMPT = 'You are a SQL generator for an analytics notebook. G
|
|
|
45
47
|
'Use ONLY the relations and columns provided. Reference each table by its ' +
|
|
46
48
|
'fully-qualified relation (database.schema.table) EXACTLY as shown — never a ' +
|
|
47
49
|
'bare model name, never a table or column not in the grounding. Use the ' +
|
|
48
|
-
'listed join keys
|
|
50
|
+
'listed join keys only as schema-grounded hypotheses; dbt DAG lineage and shared column names are NOT governed relationship proof. Any joined SQL is review-required exploratory SQL unless it is compiled by the semantic layer. ' +
|
|
49
51
|
'Respond with ONLY a JSON object — no prose, no markdown fences.';
|
|
50
52
|
const BLOCK_SYSTEM_PROMPT = 'You design a reusable, governed analytics block from a natural-language request. ' +
|
|
51
53
|
'Use ONLY the relations and columns provided; do not invent tables or columns. ' +
|
|
52
54
|
"Reference each table by its {{ ref('<model>') }} form EXACTLY as shown (DQL " +
|
|
53
|
-
'resolves it at execution). Use
|
|
55
|
+
'resolves it at execution). Use listed join keys only as schema-grounded hypotheses; dbt DAG lineage and shared column names are NOT governed relationship proof. Any joined SQL remains a review-required exploratory draft unless it is compiled by the semantic layer. ' +
|
|
54
56
|
'Respond with ONLY a JSON object — no prose, no markdown fences.';
|
|
55
57
|
/** Best-effort load of dbt artifacts for schema grounding. Never throws. */
|
|
56
58
|
function tryLoadArtifacts(projectRoot, manifestPath) {
|
|
@@ -133,7 +135,10 @@ export function loadSemanticMetrics(projectRoot) {
|
|
|
133
135
|
const db = new Database(dbPath, { readonly: true, fileMustExist: true });
|
|
134
136
|
try {
|
|
135
137
|
const rows = db
|
|
136
|
-
|
|
138
|
+
// The old LIMIT 400 silently excluded governed metrics in enterprise
|
|
139
|
+
// catalogs. Matching must consider every indexed metric; the caller's
|
|
140
|
+
// deterministic scorer decides relevance rather than row order.
|
|
141
|
+
.prepare("SELECT node_id, name, domain, description, llm_context, tags_json FROM kg_nodes WHERE kind = 'metric'")
|
|
137
142
|
.all();
|
|
138
143
|
return rows.map((r) => ({
|
|
139
144
|
nodeId: r.node_id,
|
|
@@ -165,8 +170,8 @@ function safeJsonArray(raw) {
|
|
|
165
170
|
}
|
|
166
171
|
}
|
|
167
172
|
/** Match the request to a governed metric and resolve its executable definition. */
|
|
168
|
-
async function matchGovernedMetric(projectRoot, prompt) {
|
|
169
|
-
const metrics = loadSemanticMetrics(projectRoot);
|
|
173
|
+
async function matchGovernedMetric(projectRoot, prompt, allowedMetricNames) {
|
|
174
|
+
const metrics = loadSemanticMetrics(projectRoot).filter((metric) => !allowedMetricNames || allowedMetricNames.has(metric.name.toLowerCase()));
|
|
170
175
|
if (metrics.length === 0)
|
|
171
176
|
return undefined;
|
|
172
177
|
const match = await matchSemanticMetric(prompt, metrics).catch(() => null);
|
|
@@ -181,6 +186,103 @@ async function matchGovernedMetric(projectRoot, prompt) {
|
|
|
181
186
|
// Display the metric the USER recognizes; use the resolved measure's executable def.
|
|
182
187
|
return { name: match.metric.name, expr: def.expr, table: def.table, sql: resolved.sql };
|
|
183
188
|
}
|
|
189
|
+
function resolveBuildScope(options) {
|
|
190
|
+
const context = options.domainContext;
|
|
191
|
+
const explicitDomain = options.domain?.trim() || undefined;
|
|
192
|
+
const explicitArea = options.modelAreaId?.trim() || undefined;
|
|
193
|
+
if (context?.activeDomain && explicitDomain && context.activeDomain !== explicitDomain) {
|
|
194
|
+
throw new Error(`Build domain "${explicitDomain}" does not match the server-resolved domain "${context.activeDomain}".`);
|
|
195
|
+
}
|
|
196
|
+
if (context?.modelAreaId && explicitArea && context.modelAreaId !== explicitArea) {
|
|
197
|
+
throw new Error(`Build Model Area "${explicitArea}" does not match the server-resolved Model Area "${context.modelAreaId}".`);
|
|
198
|
+
}
|
|
199
|
+
const domain = context?.activeDomain ?? explicitDomain;
|
|
200
|
+
return {
|
|
201
|
+
domain: domain ?? undefined,
|
|
202
|
+
modelAreaId: context?.modelAreaId ?? explicitArea,
|
|
203
|
+
eligibleDomains: context ? domainContextSearchDomains(context) : domain ? [domain] : [],
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
function normalizeRelation(value) {
|
|
207
|
+
return value.replace(/["`]/g, '').replace(/\s*\.\s*/g, '.').trim().toLowerCase();
|
|
208
|
+
}
|
|
209
|
+
/** Restrict artifact grounding to the immutable pack; never backfill from disk. */
|
|
210
|
+
function restrictArtifactsToContextPack(artifacts, contextPack) {
|
|
211
|
+
if (!artifacts || !contextPack)
|
|
212
|
+
return artifacts;
|
|
213
|
+
const allowed = new Set(contextPack.allowedSqlContext.relations.map((item) => normalizeRelation(item.relation)));
|
|
214
|
+
const allows = (name, relation, alias) => allowed.has(normalizeRelation(relation)) || allowed.has(normalizeRelation(name)) || Boolean(alias && allowed.has(normalizeRelation(alias)));
|
|
215
|
+
const models = artifacts.models.filter((model) => allows(model.name, model.qualifiedRelation, model.alias));
|
|
216
|
+
const sources = artifacts.sources.filter((source) => allows(source.name, source.qualifiedRelation));
|
|
217
|
+
const ids = new Set([...models, ...sources].map((item) => item.uniqueId));
|
|
218
|
+
return {
|
|
219
|
+
...artifacts,
|
|
220
|
+
models,
|
|
221
|
+
sources,
|
|
222
|
+
catalogColumns: new Map([...artifacts.catalogColumns].filter(([id]) => ids.has(id))),
|
|
223
|
+
runCounts: new Map([...artifacts.runCounts].filter(([id]) => ids.has(id))),
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
function skillFromContextPack(skill) {
|
|
227
|
+
return {
|
|
228
|
+
id: skill.id,
|
|
229
|
+
localId: skill.id,
|
|
230
|
+
qualifiedId: skill.qualifiedId,
|
|
231
|
+
scope: 'project',
|
|
232
|
+
domain: skill.domain,
|
|
233
|
+
domains: skill.domains,
|
|
234
|
+
modelAreaRefs: skill.modelAreaRefs,
|
|
235
|
+
kind: skill.kind,
|
|
236
|
+
status: skill.status ?? 'active',
|
|
237
|
+
owner: skill.owner,
|
|
238
|
+
triggers: skill.triggers,
|
|
239
|
+
exclusions: skill.exclusions,
|
|
240
|
+
description: skill.description,
|
|
241
|
+
preferredMetrics: skill.preferredMetrics,
|
|
242
|
+
preferredBlocks: skill.preferredBlocks,
|
|
243
|
+
preferredDimensions: skill.preferredDimensions,
|
|
244
|
+
requiredFilters: skill.requiredFilters,
|
|
245
|
+
clarifyWhen: skill.clarifyWhen,
|
|
246
|
+
sourceRefs: skill.sourceRefs,
|
|
247
|
+
vocabulary: skill.vocabulary,
|
|
248
|
+
body: skill.guidance,
|
|
249
|
+
sourcePath: skill.sourcePath ?? skill.provenance,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
function contextPackPrompt(contextPack) {
|
|
253
|
+
if (!contextPack)
|
|
254
|
+
return '';
|
|
255
|
+
const evidence = contextPack.evidenceRoles.slice(0, 8)
|
|
256
|
+
.map((item) => `- ${item.name} (${item.role}): ${item.reason}`)
|
|
257
|
+
.join('\n');
|
|
258
|
+
return [
|
|
259
|
+
'## Immutable request context',
|
|
260
|
+
`Context pack: ${contextPack.id}`,
|
|
261
|
+
`Route evidence: ${contextPack.routeDecision.route} / ${contextPack.routeDecision.intent}`,
|
|
262
|
+
evidence ? `Selected evidence:\n${evidence}` : '',
|
|
263
|
+
'This is a bounded snapshot. Do not assume unrelated dbt models, joins, or skills beyond the supplied grounding.',
|
|
264
|
+
].filter(Boolean).join('\n');
|
|
265
|
+
}
|
|
266
|
+
function buildTrustDiagnostics(input) {
|
|
267
|
+
const allowedRelations = input.options.contextPack
|
|
268
|
+
? input.options.contextPack.allowedSqlContext.relations.map((item) => item.relation)
|
|
269
|
+
: input.grounding.tables.map((table) => table.qualifiedRelation);
|
|
270
|
+
const exploratory = !input.matchedMetric;
|
|
271
|
+
return {
|
|
272
|
+
sourceTrust: exploratory ? 'exploratory_dbt_grounded' : 'governed_semantic_source',
|
|
273
|
+
reviewRequired: true,
|
|
274
|
+
contextPackId: input.options.contextPack?.id,
|
|
275
|
+
snapshotId: input.options.domainContext?.snapshotId ?? input.options.contextPack?.freshness.fingerprint ?? undefined,
|
|
276
|
+
activeDomain: input.scope.domain,
|
|
277
|
+
selectedSkillIds: input.skills.map((skill) => skill.id),
|
|
278
|
+
selectedSkillProvenance: input.skills.map(({ id, qualifiedId, provenance }) => ({ id, qualifiedId, provenance })),
|
|
279
|
+
allowedRelations,
|
|
280
|
+
joinPolicy: exploratory ? 'dbt_hints_are_not_governed_proof' : 'semantic_definition',
|
|
281
|
+
warnings: exploratory && input.grounding.joinKeys.length > 0
|
|
282
|
+
? ['dbt DAG lineage and shared-column join keys are exploratory schema hints, not governed relationship proof. Review before reuse or certification.']
|
|
283
|
+
: [],
|
|
284
|
+
};
|
|
285
|
+
}
|
|
184
286
|
/** Output column names that name a non-negative measure (safe for a `>= 0` guard). */
|
|
185
287
|
const NON_NEGATIVE_MEASURE_RE = /(revenue|sales|income|count|total|amount|sum|qty|quantity|value|price|profit|cost|spend|orders?|tax)\b/i;
|
|
186
288
|
/**
|
|
@@ -294,7 +396,7 @@ async function groundAndRepairSql(input) {
|
|
|
294
396
|
};
|
|
295
397
|
}
|
|
296
398
|
// ─── target: cell ───────────────────────────────────────────────────────────
|
|
297
|
-
async function buildCell(options, grounding, provider, skillsPrompt, appliedSkills, matchedMetric) {
|
|
399
|
+
async function buildCell(options, grounding, provider, skillsPrompt, appliedSkills, diagnostics, matchedMetric) {
|
|
298
400
|
if (!provider) {
|
|
299
401
|
// No provider — prefer the governed metric definition over a blank starter.
|
|
300
402
|
return {
|
|
@@ -304,6 +406,7 @@ async function buildCell(options, grounding, provider, skillsPrompt, appliedSkil
|
|
|
304
406
|
? `Used the governed metric \`${matchedMetric.name}\` (${matchedMetric.expr}). Set a provider to tailor it further.`
|
|
305
407
|
: 'No AI provider is configured. Returned a starter query — edit it, or set a provider to generate SQL from your prompt.',
|
|
306
408
|
appliedSkills,
|
|
409
|
+
diagnostics,
|
|
307
410
|
};
|
|
308
411
|
}
|
|
309
412
|
const userPrompt = [
|
|
@@ -345,6 +448,7 @@ async function buildCell(options, grounding, provider, skillsPrompt, appliedSkil
|
|
|
345
448
|
? (parsed ? asString(parsed.explanation) : undefined)
|
|
346
449
|
: grounded.message,
|
|
347
450
|
appliedSkills,
|
|
451
|
+
diagnostics,
|
|
348
452
|
};
|
|
349
453
|
}
|
|
350
454
|
}
|
|
@@ -358,6 +462,7 @@ async function buildCell(options, grounding, provider, skillsPrompt, appliedSkil
|
|
|
358
462
|
? `Answered from the governed metric \`${matchedMetric.name}\` (${matchedMetric.expr}).`
|
|
359
463
|
: 'Could not generate SQL from the prompt; returned a starter query to refine.',
|
|
360
464
|
appliedSkills,
|
|
465
|
+
diagnostics,
|
|
361
466
|
};
|
|
362
467
|
}
|
|
363
468
|
async function generateBlockContent(options, grounding, provider, skillsPrompt, matchedMetric) {
|
|
@@ -455,7 +560,7 @@ function verdictFrom(result) {
|
|
|
455
560
|
ready: result.errors.length === 0,
|
|
456
561
|
};
|
|
457
562
|
}
|
|
458
|
-
async function buildBlock(options, grounding, provider, skillsPrompt, appliedSkills, matchedMetric) {
|
|
563
|
+
async function buildBlock(options, grounding, provider, skillsPrompt, appliedSkills, diagnostics, matchedMetric) {
|
|
459
564
|
const { projectRoot } = options;
|
|
460
565
|
const owner = resolveLocalOwner(projectRoot, { explicit: options.owner });
|
|
461
566
|
const domain = (options.domain ?? 'misc').trim() || 'misc';
|
|
@@ -594,6 +699,7 @@ async function buildBlock(options, grounding, provider, skillsPrompt, appliedSki
|
|
|
594
699
|
certifierVerdict: verdict,
|
|
595
700
|
reflection,
|
|
596
701
|
appliedSkills,
|
|
702
|
+
diagnostics,
|
|
597
703
|
edited: false,
|
|
598
704
|
route: matchedMetric
|
|
599
705
|
? { tier: 'semantic_metric', label: `Based on governed metric ${matchedMetric.name}`, ref: matchedMetric.name }
|
|
@@ -655,7 +761,7 @@ const EDIT_BLOCK_SYSTEM_PROMPT = 'You modify an EXISTING governed analytics bloc
|
|
|
655
761
|
* result BACK to the SAME path. Never forks a new draft. Returns `previousSql`
|
|
656
762
|
* for a diff and preserves the block's status (certified stays certified).
|
|
657
763
|
*/
|
|
658
|
-
async function editBlock(options, grounding, provider, skillsPrompt, appliedSkills) {
|
|
764
|
+
async function editBlock(options, grounding, provider, skillsPrompt, appliedSkills, diagnostics) {
|
|
659
765
|
if (!options.blockPath) {
|
|
660
766
|
throw new Error("Edit mode requires { blockPath } to the block being modified.");
|
|
661
767
|
}
|
|
@@ -761,6 +867,7 @@ async function editBlock(options, grounding, provider, skillsPrompt, appliedSkil
|
|
|
761
867
|
examples: [],
|
|
762
868
|
certifierVerdict: verdictFrom(evaluation),
|
|
763
869
|
appliedSkills,
|
|
870
|
+
diagnostics,
|
|
764
871
|
previousSql,
|
|
765
872
|
edited: true,
|
|
766
873
|
route: {
|
|
@@ -782,33 +889,112 @@ export async function buildFromPrompt(options) {
|
|
|
782
889
|
if (!options.prompt || !options.prompt.trim()) {
|
|
783
890
|
throw new Error('buildFromPrompt requires a non-empty prompt.');
|
|
784
891
|
}
|
|
785
|
-
const
|
|
892
|
+
const scope = resolveBuildScope(options);
|
|
893
|
+
const scopedOptions = {
|
|
894
|
+
...options,
|
|
895
|
+
domain: scope.domain,
|
|
896
|
+
modelAreaId: scope.modelAreaId,
|
|
897
|
+
};
|
|
898
|
+
const artifacts = restrictArtifactsToContextPack(tryLoadArtifacts(options.projectRoot, options.dbtManifestPath), options.contextPack);
|
|
786
899
|
const provider = await resolveProvider(options);
|
|
900
|
+
const focusedArea = loadFocusedModelArea(scopedOptions);
|
|
787
901
|
// Retrieval (spec 15.3): pick the RELEVANT tables for this request, not all of
|
|
788
902
|
// them. Deterministic + offline by default.
|
|
789
|
-
const relevantModels = await selectRelevantModels(artifacts, options.prompt, {
|
|
903
|
+
const relevantModels = await selectRelevantModels(artifacts, options.prompt, {
|
|
904
|
+
topK: 12,
|
|
905
|
+
preferredModelIds: focusedArea?.entities.map((entity) => entity.dbtUniqueId),
|
|
906
|
+
});
|
|
790
907
|
// Shared grounding (spec 15.2): qualified relations + {{ ref() }} forms +
|
|
791
908
|
// columns/types + join keys. Used by BOTH targets.
|
|
792
909
|
const grounding = buildSchemaGrounding(artifacts, relevantModels, { limit: 12 });
|
|
793
910
|
// Skills (spec 16): select the SELECTED skills (not all), inject as context,
|
|
794
911
|
// and record which applied. Project (pinned) skills always kept.
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
const
|
|
798
|
-
|
|
912
|
+
// A context pack already contains the server-selected, snapshot-bound skills.
|
|
913
|
+
// Never re-read mutable files or broaden that selection on the direct Build path.
|
|
914
|
+
const selectedSkills = options.contextPack
|
|
915
|
+
? options.contextPack.skills.map(skillFromContextPack)
|
|
916
|
+
: selectRelevantSkills(options.skills ?? loadSkills(options.projectRoot).skills, options.prompt, {
|
|
917
|
+
userId: options.userId ?? null,
|
|
918
|
+
domains: scope.eligibleDomains,
|
|
919
|
+
modelAreaIds: scope.modelAreaId ? [scope.modelAreaId] : [],
|
|
920
|
+
});
|
|
921
|
+
const packSkillsById = new Map(options.contextPack?.skills.map((skill) => [skill.qualifiedId ?? skill.id, skill]));
|
|
922
|
+
const appliedSkills = selectedSkills.map((skill) => {
|
|
923
|
+
const packed = packSkillsById.get(skill.qualifiedId ?? skill.id);
|
|
924
|
+
return {
|
|
925
|
+
id: skill.id,
|
|
926
|
+
qualifiedId: skill.qualifiedId,
|
|
927
|
+
description: skill.description,
|
|
928
|
+
provenance: packed?.provenance ?? skill.sourcePath,
|
|
929
|
+
};
|
|
930
|
+
});
|
|
931
|
+
const skillsPrompt = [
|
|
932
|
+
contextPackPrompt(options.contextPack),
|
|
933
|
+
buildFocusedModelAreaPrompt(focusedArea),
|
|
934
|
+
buildSkillsPrompt(selectedSkills, options.userId ?? null),
|
|
935
|
+
].filter(Boolean).join('\n');
|
|
799
936
|
// Semantic-metric routing (spec 17, part C) for the Build path: if a governed
|
|
800
937
|
// metric already answers this request, build ON its certified definition instead
|
|
801
938
|
// of letting the model invent a formula. Skipped for edit mode (a different intent).
|
|
939
|
+
const allowedMetricNames = options.contextPack
|
|
940
|
+
? new Set(options.contextPack.objects
|
|
941
|
+
.filter((object) => object.objectType === 'semantic_metric')
|
|
942
|
+
.map((object) => object.name.toLowerCase()))
|
|
943
|
+
: undefined;
|
|
802
944
|
const matchedMetric = options.mode === 'edit'
|
|
803
945
|
? undefined
|
|
804
|
-
: await matchGovernedMetric(options.projectRoot, options.prompt);
|
|
946
|
+
: await matchGovernedMetric(options.projectRoot, expandQuestionWithSkillVocabulary(options.prompt, selectedSkills, options.userId ?? null), allowedMetricNames);
|
|
947
|
+
const diagnostics = buildTrustDiagnostics({ options, scope, skills: appliedSkills, grounding, matchedMetric });
|
|
805
948
|
if (options.target === 'cell') {
|
|
806
|
-
return buildCell(
|
|
949
|
+
return buildCell(scopedOptions, grounding, provider, skillsPrompt, appliedSkills, diagnostics, matchedMetric);
|
|
807
950
|
}
|
|
808
951
|
// target: 'block' — edit an existing block in place, or create a new draft.
|
|
809
952
|
return options.mode === 'edit'
|
|
810
|
-
? editBlock(
|
|
811
|
-
: buildBlock(
|
|
953
|
+
? editBlock(scopedOptions, grounding, provider, skillsPrompt, appliedSkills, diagnostics)
|
|
954
|
+
: buildBlock(scopedOptions, grounding, provider, skillsPrompt, appliedSkills, diagnostics, matchedMetric);
|
|
955
|
+
}
|
|
956
|
+
/**
|
|
957
|
+
* Model Areas are optional retrieval hints. The manifest remains the source of
|
|
958
|
+
* truth: a missing/stale area simply falls back to normal grounded retrieval.
|
|
959
|
+
*/
|
|
960
|
+
function loadFocusedModelArea(options) {
|
|
961
|
+
if (!options.modelAreaId?.trim())
|
|
962
|
+
return undefined;
|
|
963
|
+
try {
|
|
964
|
+
const manifest = buildManifest({ projectRoot: options.projectRoot, dbtManifestPath: options.dbtManifestPath });
|
|
965
|
+
const modeling = manifest.modeling;
|
|
966
|
+
if (!modeling)
|
|
967
|
+
return undefined;
|
|
968
|
+
const requested = options.modelAreaId.trim();
|
|
969
|
+
const area = modeling.areas[requested] ?? Object.values(modeling.areas).find((candidate) => candidate.localId === requested);
|
|
970
|
+
if (!area || (options.domain && area.domain !== options.domain))
|
|
971
|
+
return undefined;
|
|
972
|
+
const entityIds = new Set([...area.entityIds, ...area.referencedEntityIds]);
|
|
973
|
+
return {
|
|
974
|
+
area,
|
|
975
|
+
entities: [...entityIds].flatMap((id) => modeling.entities[id] ? [modeling.entities[id]] : []),
|
|
976
|
+
};
|
|
977
|
+
}
|
|
978
|
+
catch {
|
|
979
|
+
return undefined;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
function buildFocusedModelAreaPrompt(context) {
|
|
983
|
+
if (!context)
|
|
984
|
+
return '';
|
|
985
|
+
const entities = context.entities.map((entity) => {
|
|
986
|
+
const business = [entity.businessName, entity.businessContext].filter(Boolean).join(': ');
|
|
987
|
+
return `- ${entity.localId} (${entity.dbtUniqueId})${business ? ` — ${business}` : ''}`;
|
|
988
|
+
});
|
|
989
|
+
return [
|
|
990
|
+
'## Focused Model Area',
|
|
991
|
+
'',
|
|
992
|
+
`Use the selected area "${context.area.name}" as a retrieval priority inside domain "${context.area.domain}". It does not authorize joins or override certification policy.`,
|
|
993
|
+
context.area.description ? `Business scope: ${context.area.description}` : '',
|
|
994
|
+
context.area.intentExamples.length ? `Example questions: ${context.area.intentExamples.join('; ')}` : '',
|
|
995
|
+
entities.length ? `Entities in this area:\n${entities.join('\n')}` : '',
|
|
996
|
+
'',
|
|
997
|
+
].filter(Boolean).join('\n');
|
|
812
998
|
}
|
|
813
999
|
// Re-export so callers can reuse the slugifier when needed.
|
|
814
1000
|
export { blockSlug };
|