@massa-ai/core 1.57.0 → 1.59.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/data/symbol/symbol-repo-workspace.d.ts +17 -0
- package/dist/data/symbol/symbol-repo-workspace.d.ts.map +1 -1
- package/dist/data/symbol/symbol-repo-workspace.js +29 -0
- package/dist/data/symbol/symbol-repo-workspace.js.map +1 -1
- package/dist/data/vector/postgres-vector-store.d.ts +20 -0
- package/dist/data/vector/postgres-vector-store.d.ts.map +1 -1
- package/dist/data/vector/postgres-vector-store.js +26 -2
- package/dist/data/vector/postgres-vector-store.js.map +1 -1
- package/dist/generated/prisma/edge.js +5 -4
- package/dist/generated/prisma/index-browser.js +1 -0
- package/dist/generated/prisma/index.d.ts +71 -1
- package/dist/generated/prisma/index.js +5 -4
- package/dist/generated/prisma/package.json +1 -1
- package/dist/generated/prisma/schema.prisma +3 -0
- package/dist/kernel/inference-probe.d.ts +18 -0
- package/dist/kernel/inference-probe.d.ts.map +1 -0
- package/dist/kernel/inference-probe.js +34 -0
- package/dist/kernel/inference-probe.js.map +1 -0
- package/dist/services/embeddings/config.d.ts +11 -0
- package/dist/services/embeddings/config.d.ts.map +1 -1
- package/dist/services/embeddings/config.js +64 -11
- package/dist/services/embeddings/config.js.map +1 -1
- package/dist/services/embeddings/index.d.ts +10 -2
- package/dist/services/embeddings/index.d.ts.map +1 -1
- package/dist/services/embeddings/index.js.map +1 -1
- package/dist/services/embeddings/provider.d.ts +15 -0
- package/dist/services/embeddings/provider.d.ts.map +1 -1
- package/dist/services/embeddings/provider.js +12 -6
- package/dist/services/embeddings/provider.js.map +1 -1
- package/dist/services/etl/pipeline.d.ts.map +1 -1
- package/dist/services/etl/pipeline.js +37 -0
- package/dist/services/etl/pipeline.js.map +1 -1
- package/dist/services/health/local-health-checker.d.ts +32 -1
- package/dist/services/health/local-health-checker.d.ts.map +1 -1
- package/dist/services/health/local-health-checker.js +88 -16
- package/dist/services/health/local-health-checker.js.map +1 -1
- package/dist/services/memory/llm-client.d.ts +61 -0
- package/dist/services/memory/llm-client.d.ts.map +1 -1
- package/dist/services/memory/llm-client.js +147 -15
- package/dist/services/memory/llm-client.js.map +1 -1
- package/dist/services/search/embedding-freshness.d.ts +94 -0
- package/dist/services/search/embedding-freshness.d.ts.map +1 -0
- package/dist/services/search/embedding-freshness.js +114 -0
- package/dist/services/search/embedding-freshness.js.map +1 -0
- package/dist/services/search/ignore-patterns.d.ts +7 -0
- package/dist/services/search/ignore-patterns.d.ts.map +1 -1
- package/dist/services/search/ignore-patterns.js +9 -0
- package/dist/services/search/ignore-patterns.js.map +1 -1
- package/dist/services/search/project-indexer.d.ts +15 -1
- package/dist/services/search/project-indexer.d.ts.map +1 -1
- package/dist/services/search/project-indexer.js +40 -6
- package/dist/services/search/project-indexer.js.map +1 -1
- package/dist/services/search/search-controller.d.ts.map +1 -1
- package/dist/services/search/search-controller.js +31 -1
- package/dist/services/search/search-controller.js.map +1 -1
- package/package.json +2 -2
- package/prisma/migrations/20260919120000_add_embedding_fingerprint/migration.sql +11 -0
- package/prisma/schema.prisma +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/services/etl/pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../../src/services/etl/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,+BAA+B,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AACvF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sDAAsD,CAAC;AAE9F,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;;;;GAKG;AACH,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,WAAW,CAAS;IACpB,cAAc,CAAS;IAChC,YAAY,WAAmB,EAAE,cAAsB;QACrD,KAAK,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;CACF;AA2BD,yFAAyF;AACzF,MAAM,UAAU,2BAA2B,CACzC,KAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;SACzG,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA2F,CAAC;IACnH,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,EAAE;QAC/B,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,uBAAuB,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS;YAAE,SAAS;QACvH,IAAI,QAAiB,CAAC;QACtB,IAAI,CAAC;YAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,SAAS;QAAC,CAAC;QACxE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,SAAS;YACtD,MAAM,MAAM,GAAG,OAA0F,CAAC;YAC1G,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ;gBAAE,SAAS;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YACrG,MAAM,gBAAgB,GAAG,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;gBAC3D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC;gBAC7C,CAAC,CAAC,WAAW,CAAC;YAChB,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAS;YACnC,MAAM,UAAU,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;gBACnD,CAAC,CAAC,MAAM,CAAC,OAAO;gBAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,IAAI,uEAAuE,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;iBACxH,IAAI,0DAA0D,CAAC,IAAI,CAAC,UAAU,CAAC;gBAAE,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACpJ,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7F,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AAED,SAAS,SAAS,CAAI,SAAqB,EAAE,MAAmB;IAC9D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,IAAI,WAAoB,CAAC;QACzB,MAAM,OAAO,GAAG,GAAG,EAAE,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,IAAI,CACZ,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,EAC3E,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,CACxC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,WAAW;IACd,MAAM,CAAC,QAAQ,GAAuB,IAAI,CAAC;IAC3C,MAAM,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAE1C,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;IAC/B,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IACzB,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;IAC7B,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;IACvB,gBAAgB,GAAG,IAAI,0BAA0B,EAAE,CAAC;IAErE,gBAAuB,CAAC;IAExB,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAoB;QAC5B,0EAA0E;QAC1E,MAAM,4BAA4B,EAAE,CAAC;QACrC,uEAAuE;QACvE,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,SAAS,GAAG,MAAM,+BAA+B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,cAAc,GAClB,SAAS,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,OAAoB,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACzC,OAAO,GAAG,OAAO,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBACxD,SAAS;gBACT,KAAK,EAAE,KAAK,CAAC,KAAK;aACnB,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;QAED,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YACT,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;gBACjD,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAoB,EAAE,eAAe,GAAG,CAAC;QACjE,2EAA2E;QAC3E,0EAA0E;QAC1E,uDAAuD;QACvD,MAAM,SAAS,GAAG,MAAM,+BAA+B,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnF,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,GAAG,KAAK,EAAE,cAAc,EAAE,aAAa,GAAG,KAAK,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QACnH,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,YAAY,GAA6B;YAC7C,QAAQ,EAAE,CAAC;YACX,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;SACR,CAAC;QAEF,wEAAwE;QACxE,wEAAwE;QACxE,4DAA4D;QAC5D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;YACzC,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC;gBACtC,aAAa,CAAC,eAAe,CAAC,SAAS,CAAC;aACzC,CAAC,CAAC;QACL,CAAC;QAED,sEAAsE;QACtE,kEAAkE;QAClE,sEAAsE;QACtE,mCAAmC;QACnC,MAAM,oBAAoB,GAAG,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhG,0CAA0C;QAC1C,MAAM,GAAG,GAAoB;YAC3B,SAAS;YACT,WAAW;YACX,KAAK;YACL,uEAAuE;YACvE,oEAAoE;YACpE,+DAA+D;YAC/D,mEAAmE;YACnE,8CAA8C;YAC9C,YAAY,EAAE,eAAe;gBAC3B,CAAC,CAAC,CAAC,MAAM,oBAAoB,EAAE,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,EAAE,UAAU,IAAI,SAAS;gBACzF,CAAC,CAAC,SAAS;YACb,eAAe;YACf,IAAI,EAAE,CAAC,KAAe,EAAE,EAAE;gBACxB,kEAAkE;gBAClE,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,OAAiE,CAAC;oBAClF,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC1D,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE;wBACpC,KAAK;wBACL,SAAS;wBACT,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,UAAU,EAAE,CAAC,CAAC,UAAU;qBACzB,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBACvC,MAAM,CAAC,GAAG,KAAK,CAAC,OAA8C,CAAC;oBAC/D,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;wBAChC,KAAK;wBACL,SAAS;wBACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,OAAO;wBACf,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf,CAAC,CAAC;gBACL,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;oBAC3C,MAAM,CAAC,GAAG,KAAK,CAAC,OAA+B,CAAC;oBAChD,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE;wBAChC,KAAK;wBACL,SAAS;wBACT,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;QAEF,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAExE,IAAI,oBAAsD,CAAC;QAC3D,IAAI,cAAyC,CAAC;QAC9C,IAAI,qBAAwC,CAAC;QAC7C,MAAM,oBAAoB,GAAG,IAAI,eAAe,EAAE,CAAC;QACnD,MAAM,wBAAwB,GAAG,IAAI,eAAe,EAAE,CAAC;QACvD,IAAI,kBAAkB,GAAG,KAAK,CAAC;QAE/B,sEAAsE;QACtE,uEAAuE;QACvE,mEAAmE;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,oEAAoE;QACpE,wCAAwC;QACxC,IAAI,mBAA8C,CAAC;QACnD,IAAI,mBAAsC,CAAC;QAC3C,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,MAAM,yBAAyB,GAAG,IAAI,eAAe,EAAE,CAAC;QACxD,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;YAC5C,mBAAmB,GAAG,CAAC,KAAK,IAAI,EAAE;gBAChC,OAAO,CAAC,uBAAuB,EAAE,CAAC;oBAChC,IAAI,CAAC;wBAAC,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,yBAAyB,CAAC,MAAM,EAAE,CAAC,CAAC;oBAAC,CAAC;oBACrF,MAAM,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACjB,IAAI,uBAAuB,IAAI,CAAC,eAAe;wBAAE,OAAO;oBACxD,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;wBACtE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;4BACpC,mBAAmB,GAAG,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;4BAC1D,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;4BAChD,OAAO;wBACT,CAAC;oBACH,CAAC;oBAAC,OAAO,cAAc,EAAE,CAAC;wBACxB,mBAAmB,GAAG,cAAuB,CAAC;wBAC9C,oBAAoB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;wBAChD,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;QAED,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9B,oEAAoE;YACpE,qEAAqE;YACrE,4DAA4D;YAC5D,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC;YACvG,GAAG,CAAC,8BAA8B,GAAG,2BAA2B,CAAC,kBAAkB,CAAC,CAAC;YACrF,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAE5D,MAAM,WAAW,GAAG,MAAM,mBAAmB,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YAClF,IAAI,CAAC;gBACH,oBAAoB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;oBACvD,SAAS;oBACT,0BAA0B,EAAE,WAAW,EAAE,YAAY,IAAI,IAAI;oBAC7D,WAAW,EAAE,UAAU,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACjH,iBAAiB,EAAE,2BAA2B,CAAC,kBAAkB,CAAC;oBAClE,kBAAkB,EAAE,kBAAkB,CAAC,MAAM;iBAC9C,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,UAAU,EAAE,CAAC;gBACpB,IAAK,UAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,gCAAgC,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;oBACtG,oEAAoE;oBACpE,qEAAqE;oBACrE,mEAAmE;oBACnE,sEAAsE;oBACtE,sDAAsD;oBACtD,uBAAuB,GAAG,IAAI,CAAC;oBAC/B,yBAAyB,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,mBAAmB;wBAAE,MAAM,mBAAmB,CAAC;oBACnD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,MAAM,UAAU,CAAC;YACnB,CAAC;YACD,GAAG,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;YAChD,GAAG,CAAC,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC9C,cAAc,GAAG,CAAC,KAAK,IAAI,EAAE;gBAC3B,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBAAC,MAAM,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,wBAAwB,CAAC,MAAM,EAAE,CAAC,CAAC;oBAAC,CAAC;oBACpF,MAAM,CAAC;wBAAC,OAAO;oBAAC,CAAC;oBACjB,IAAI,kBAAkB,IAAI,CAAC,oBAAoB;wBAAE,OAAO;oBACxD,IAAI,CAAC;wBAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;oBAAC,CAAC;oBACpE,OAAO,cAAc,EAAE,CAAC;wBACtB,qBAAqB,GAAG,cAAuB,CAAC;wBAChD,oBAAoB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBAClD,OAAO;oBACT,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,EAAE,CAAC;YACL,wEAAwE;YACxE,sEAAsE;YACtE,0CAA0C;YAC1C,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;YACrD,MAAM,aAAa,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACtD,GAAG,IAAI;gBACP,YAAY,EAAE,YAAY,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,IAAI,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;aACzG,CAAC,CAAC,CAAC;YACJ,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;oBACjC,IAAI,IAAI,CAAC,YAAY;wBAAE,SAAS;oBAChC,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC,kBAAkB,CAC3D,oBAAoB,EACpB,WAAW,CAAC,YAAY,EACxB,IAAI,CAAC,YAAY,CAClB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY;wBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;oBACnF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;wBAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC5D,CAAC;YACH,CAAC;YACD,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAEpE,QAAQ,CAAC,OAAO,CAAC,kBAAkB,EAAE;gBACnC,KAAK;gBACL,SAAS;gBACT,WAAW;gBACX,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;aAC5D,CAAC,CAAC;YAEH,yEAAyE;YACzE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,cAAc,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;YACrC,IAAI,MAAM,GAA2C,EAAE,CAAC;YACxD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClG,MAAM;gBACR,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,WAAW,IAAI,YAAY,IAAI,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,UAAU,YAAY,uBAAuB,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,MAAM,UAAU,CAAC;oBAC5K,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC,uBAAuB,CAC/D,oBAAoB,EACpB,UAAU,CAAC,QAAQ,EACnB;wBACE,yBAAyB,EAAE,WAAW,CAAC,YAAY;wBACnD,WAAW,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;4BAC5C,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC;4BAC9E,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,gCAAgC,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;wBAC7E,gBAAgB,EAAE,UAAU,CAAC,eAAe;qBAC7C,CACF,CAAC;oBACF,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO;wBAAE,MAAM,UAAU,CAAC;oBAC/C,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,KAAK,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAC9F,CAAC;YACH,CAAC;YACD,IAAI,qBAAqB;gBAAE,MAAM,qBAAqB,CAAC;YACvD,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YACnD,YAAY,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAEzD,yEAAyE;YACzE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC7F,IAAI,qBAAqB;gBAAE,MAAM,qBAAqB,CAAC;YACvD,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YACnD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAE3D,yEAAyE;YACzE,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC9F,IAAI,qBAAqB;gBAAE,MAAM,qBAAqB,CAAC;YACvD,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YACnD,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;YAExD,wEAAwE;YACxE,+DAA+D;YAC/D,sEAAsE;YACtE,2BAA2B;YAC3B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,yCAAyC,EAAE;oBACrD,SAAS;oBACT,KAAK;oBACL,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,UAAU,EAAE,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACvD,CAAC,CAAC;YACL,CAAC;YAED,MAAM,kBAAkB,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;YAC/I,IAAI,2BAA2B,CAAC,kBAAkB,CAAC,KAAK,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;gBAC/F,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,qBAAqB;gBAAE,MAAM,qBAAqB,CAAC;YACvD,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YACnD,kBAAkB,GAAG,IAAI,CAAC;YAC1B,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,cAAc,CAAC;YACrB,uBAAuB,GAAG,IAAI,CAAC;YAC/B,yBAAyB,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAClF,MAAM,kBAAkB,GAAG,MAAM,mBAAmB,EAAE,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACzF,IAAI,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,YAAY,KAAK,cAAc,CAAC,YAAY,EAAE,CAAC;gBAC3F,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAEtD,MAAM,MAAM,GAAc;gBACxB,eAAe,EAAE,UAAU,CAAC,MAAM;gBAClC,YAAY,EAAE,UAAU,CAAC,WAAW;gBACpC,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;gBAC9D,aAAa,EAAE,UAAU,CAAC,YAAY;gBACtC,cAAc,EAAE,UAAU,CAAC,aAAa;gBACxC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,UAAU;gBACV,YAAY;gBACZ,0BAA0B,EAAE,cAAc,CAAC,YAAY;gBACvD,iBAAiB,EAAE;oBACjB,gBAAgB,EAAE,kBAAkB,CAAC,WAAW,CAAC,MAAM;oBACvD,cAAc,EAAE,kBAAkB,CAAC,WAAW,CAAC,SAAS;oBACxD,gBAAgB,EAAE,kBAAkB,CAAC,WAAW,CAAC,YAAY;oBAC7D,UAAU,EAAE,kBAAkB,CAAC,WAAW,CAAC,UAAU;oBACrD,SAAS,EAAE,kBAAkB,CAAC,SAAS;iBACxC;aACF,CAAC;YAEF,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,wEAAwE;YACxE,2BAA2B;YAC3B,MAAM,cAAc,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEpD,qEAAqE;YACrE,oEAAoE;YACpE,iEAAiE;YACjE,sEAAsE;YACtE,sEAAsE;YACtE,4DAA4D;YAC5D,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,IAAI,YAAY,CAAC,MAAM,cAAc,EAAE,CAAC,CAAC;gBACjE,MAAM,eAAe,CAAC,mBAAmB,CACvC,SAAS,EACT,WAAW,EACX,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAC5C,CAAC;YACJ,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,mDAAmD,EAAE;oBAC/D,SAAS;oBACT,KAAK;oBACL,KAAK,EAAG,WAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBACpD,CAAC,CAAC;YACL,CAAC;YAED,oEAAoE;YACpE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,8DAA8D;YAC9D,mEAAmE;YACnE,uEAAuE;YACvE,uEAAuE;YACvE,kDAAkD;YAClD,mEAAmE;YACnE,yDAAyD;YACzD,qEAAqE;YACrE,mEAAmE;YACnE,uEAAuE;YACvE,kDAAkD;YAClD,qEAAqE;YACrE,gEAAgE;YAChE,sEAAsE;YACtE,gEAAgE;YAChE,0CAA0C;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,eAAe,GAAG,2BAA2B,EAAE,CAAC;gBACtD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;oBAC7B,IAAI,CAAC;wBACH,MAAM,yBAAyB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;oBAC9D,CAAC;oBAAC,OAAO,UAAU,EAAE,CAAC;wBACpB,MAAM,CAAC,IAAI,CAAC,iDAAiD,EAAE;4BAC7D,SAAS;4BACT,KAAK;4BACL,KAAK,EAAG,UAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;yBACnD,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,yEAAyE;YACzE,wEAAwE;YACxE,mEAAmE;YACnE,yEAAyE;YACzE,qDAAqD;YACrD,eAAe,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;YAChF,MAAM,eAAe,CAAC,iBAAiB,CAAC,KAAK,EAAE;gBAC7C,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,EAAE;gBACvC,QAAQ,EAAE,UAAU;gBACpB,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;gBAC7D,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;aAC5C,CAAC,CAAC;YAEH,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE;gBACrC,KAAK;gBACL,SAAS;gBACT,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,cAAc,EAAE,MAAM,CAAC,cAAc;gBACrC,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,UAAU;gBACV,0BAA0B,EAAE,MAAM,CAAC,0BAA0B;aAC9D,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC1D,kBAAkB,GAAG,IAAI,CAAC;YAC1B,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,cAAc,CAAC;YACrB,uBAAuB,GAAG,IAAI,CAAC;YAC/B,yBAAyB,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YAEnD,oEAAoE;YACpE,iEAAiE;YACjE,mEAAmE;YACnE,mEAAmE;YACnE,uEAAuE;YACvE,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,oBAAoB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBACvD,CAAC;gBAAC,OAAO,aAAa,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,aAAsB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1G,CAAC;YACH,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,MAAM,KAAK,GAAI,GAAa,CAAC,OAAO,CAAC;YAErC,IAAI,oBAAoB,EAAE,CAAC;gBACzB,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;gBACjE,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,8CAA8C,EAAE,UAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1G,CAAC;YACH,CAAC;YACD,kBAAkB,GAAG,IAAI,CAAC;YAC1B,wBAAwB,CAAC,KAAK,EAAE,CAAC;YACjC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,cAAc,CAAC;YACrB,uBAAuB,GAAG,IAAI,CAAC;YAC/B,yBAAyB,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,mBAAmB;gBAAE,MAAM,mBAAmB,CAAC;YAEnD,sEAAsE;YACtE,iEAAiE;YACjE,oEAAoE;YACpE,0DAA0D;YAC1D,IAAI,eAAe,IAAI,oBAAoB,EAAE,CAAC;gBAC5C,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;oBAClE,IAAI,OAAO,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;wBACpC,MAAM,CAAC,IAAI,CAAC,gDAAgD,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;oBACtF,CAAC;gBACH,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE,UAAmB,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpG,CAAC;YACH,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAE7E,yEAAyE;YACzE,2EAA2E;YAC3E,wEAAwE;YACxE,eAAe,CAAC,SAAS,CACvB,KAAK,EACL,EAAE,YAAY,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EACtE,KAAK,CACN,CAAC;YAEF,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACxF,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;;AAGH,sEAAsE;AACtE,6DAA6D;AAC7D,6EAA6E;AAC7E,mEAAmE;AACnE,kFAAkF;AAClF,oEAAoE"}
|
|
@@ -11,6 +11,7 @@ export interface LocalHealthReport {
|
|
|
11
11
|
timestamp: string;
|
|
12
12
|
services: {
|
|
13
13
|
ollama: ServiceStatus;
|
|
14
|
+
inference: ServiceStatus;
|
|
14
15
|
dataDirectory: ServiceStatus;
|
|
15
16
|
vectorStore: ServiceStatus;
|
|
16
17
|
keywordSearch: ServiceStatus;
|
|
@@ -35,10 +36,40 @@ export interface OllamaModelInfo {
|
|
|
35
36
|
modified_at: string;
|
|
36
37
|
}
|
|
37
38
|
export declare class LocalHealthChecker {
|
|
38
|
-
private readonly ollamaBaseUrl;
|
|
39
39
|
private readonly dataDir;
|
|
40
|
+
/**
|
|
41
|
+
* `config.json`'s `embedding` block, mirroring `embeddings/config.ts`'s own
|
|
42
|
+
* `fileEmbedding` read — `config.get()`/`config.getAll()` (the `@massa-ai/shared`
|
|
43
|
+
* default export) is a *different* runtime-defaults object (`ServerConfig`)
|
|
44
|
+
* with no `embedding` key at all, so reading the provider from there would
|
|
45
|
+
* always silently resolve `undefined` rather than throw. Read defensively:
|
|
46
|
+
* an unconfigured install has no file, and this must fall back to `ollama`
|
|
47
|
+
* rather than crash the health check.
|
|
48
|
+
*/
|
|
49
|
+
private fileEmbedding;
|
|
50
|
+
/** Which local-inference provider is configured: `EMBEDDING_PROVIDER` env >
|
|
51
|
+
* `config.json`'s `embedding.provider` > `ollama` (mirrors
|
|
52
|
+
* `embeddings/config.ts`'s `selectedProvider` precedence). */
|
|
53
|
+
private resolveProviderId;
|
|
54
|
+
private resolveProviderBaseUrl;
|
|
55
|
+
private resolveConfiguredEmbeddingModel;
|
|
40
56
|
checkAll(): Promise<LocalHealthReport>;
|
|
57
|
+
/**
|
|
58
|
+
* Provider-aware reachability + model-listing check, kept under the
|
|
59
|
+
* `ollama` name for compatibility (LIP-10: `services.ollama` and
|
|
60
|
+
* `GET /api/v1/system/ollama` are public surfaces, never renamed in
|
|
61
|
+
* place). Discriminates by response body shape via `probeProvider`
|
|
62
|
+
* (kernel/inference-probe.ts) rather than trusting `response.ok` — LM
|
|
63
|
+
* Studio answers HTTP 200 with `{"error": "..."}` for an Ollama-shaped
|
|
64
|
+
* endpoint, so a status-code check alone reports "Ollama healthy" against
|
|
65
|
+
* a server that is not Ollama.
|
|
66
|
+
*/
|
|
41
67
|
checkOllama(): Promise<ServiceStatus>;
|
|
68
|
+
/**
|
|
69
|
+
* Neutral alias for `checkOllama` (LIP-10) — identical provider-aware
|
|
70
|
+
* probe, added beside the Ollama-branded name rather than replacing it.
|
|
71
|
+
*/
|
|
72
|
+
checkInference(): Promise<ServiceStatus>;
|
|
42
73
|
checkDataDirectory(): Promise<ServiceStatus>;
|
|
43
74
|
checkPostgres(): Promise<ServiceStatus>;
|
|
44
75
|
isOllamaReady(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-health-checker.d.ts","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"local-health-checker.d.ts","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,oCAAoC,CAAC;AAE5C,MAAM,WAAW,aAAa;IAAG,SAAS,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAAE;AAC3H,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,WAAW,CAAC;IAAC,IAAI,EAAE,YAAY,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IACpF,QAAQ,EAAE;QAAE,MAAM,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,aAAa,CAAC;QAAC,aAAa,EAAE,aAAa,CAAC;QAAC,WAAW,EAAE,aAAa,CAAC;QAAC,aAAa,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,cAAc,EAAE,aAAa,CAAC;KAAE,CAAC;IAC5M,WAAW,EAAE;QAAE,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAA;KAAE,CAAC;IACrD,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;KAAE,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3G;AACD,MAAM,WAAW,eAAe;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;CAAE;AAErG,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAE3D;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAQrB;;mEAE+D;IAC/D,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,+BAA+B;IAQjC,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAU5C;;;;;;;;;OASG;IACG,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IA+B3C;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,CAAC;IAIxC,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC;IAS5C,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAYvC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IACjC,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC1C,OAAO,CAAC,uBAAuB;CAOhC;AAED,wBAAgB,gBAAgB,IAAI,kBAAkB,CAA+D"}
|
|
@@ -1,39 +1,111 @@
|
|
|
1
1
|
/** PostgreSQL/pgvector health checks used by local system status endpoints. */
|
|
2
2
|
import { config } from "@massa-ai/shared";
|
|
3
|
-
import { requirePostgresDatabaseUrl } from "@massa-ai/shared/config";
|
|
3
|
+
import { requirePostgresDatabaseUrl, loadConfigSafe } from "@massa-ai/shared/config";
|
|
4
|
+
import { INFERENCE_PROVIDERS, } from "@massa-ai/shared/inference-providers";
|
|
5
|
+
import { probeProvider } from "../../kernel/inference-probe.js";
|
|
4
6
|
import { getPgPool } from "../../kernel/db-connection.js";
|
|
5
7
|
import fs from "fs/promises";
|
|
6
8
|
import { existsSync } from "fs";
|
|
7
9
|
import path from "path";
|
|
8
10
|
import { getSearchDiagnostics, } from "../../kernel/search-diagnostics.js";
|
|
9
11
|
export class LocalHealthChecker {
|
|
10
|
-
ollamaBaseUrl = process.env.OLLAMA_BASE_URL || "http://localhost:11434";
|
|
11
12
|
dataDir = config.get("dataDir");
|
|
13
|
+
/**
|
|
14
|
+
* `config.json`'s `embedding` block, mirroring `embeddings/config.ts`'s own
|
|
15
|
+
* `fileEmbedding` read — `config.get()`/`config.getAll()` (the `@massa-ai/shared`
|
|
16
|
+
* default export) is a *different* runtime-defaults object (`ServerConfig`)
|
|
17
|
+
* with no `embedding` key at all, so reading the provider from there would
|
|
18
|
+
* always silently resolve `undefined` rather than throw. Read defensively:
|
|
19
|
+
* an unconfigured install has no file, and this must fall back to `ollama`
|
|
20
|
+
* rather than crash the health check.
|
|
21
|
+
*/
|
|
22
|
+
fileEmbedding() {
|
|
23
|
+
try {
|
|
24
|
+
return loadConfigSafe().embedding;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/** Which local-inference provider is configured: `EMBEDDING_PROVIDER` env >
|
|
31
|
+
* `config.json`'s `embedding.provider` > `ollama` (mirrors
|
|
32
|
+
* `embeddings/config.ts`'s `selectedProvider` precedence). */
|
|
33
|
+
resolveProviderId() {
|
|
34
|
+
const provider = process.env.EMBEDDING_PROVIDER || this.fileEmbedding()?.provider;
|
|
35
|
+
return provider === "lmstudio" ? "lmstudio" : "ollama";
|
|
36
|
+
}
|
|
37
|
+
resolveProviderBaseUrl(id) {
|
|
38
|
+
const spec = INFERENCE_PROVIDERS[id];
|
|
39
|
+
const envUrl = process.env[spec.envNames.baseUrl];
|
|
40
|
+
if (envUrl)
|
|
41
|
+
return envUrl;
|
|
42
|
+
const embedding = this.fileEmbedding();
|
|
43
|
+
if (embedding?.provider === id && embedding?.baseURL)
|
|
44
|
+
return embedding.baseURL;
|
|
45
|
+
return spec.defaultEmbeddingBaseUrl;
|
|
46
|
+
}
|
|
47
|
+
resolveConfiguredEmbeddingModel(envName) {
|
|
48
|
+
const envModel = process.env[envName];
|
|
49
|
+
if (envModel)
|
|
50
|
+
return envModel;
|
|
51
|
+
const fileModel = this.fileEmbedding()?.model;
|
|
52
|
+
if (fileModel)
|
|
53
|
+
return fileModel;
|
|
54
|
+
return "nomic-embed-text:latest";
|
|
55
|
+
}
|
|
12
56
|
async checkAll() {
|
|
13
57
|
const [ollama, dataDirectory, database] = await Promise.all([this.checkOllama(), this.checkDataDirectory(), this.checkPostgres()]);
|
|
14
|
-
const services = { ollama, dataDirectory, vectorStore: database, keywordSearch: database, cache: database, embeddingCache: database };
|
|
58
|
+
const services = { ollama, inference: ollama, dataDirectory, vectorStore: database, keywordSearch: database, cache: database, embeddingCache: database };
|
|
15
59
|
const unique = [ollama, dataDirectory, database];
|
|
16
60
|
const healthy = unique.filter((status) => status.available).length;
|
|
17
61
|
const failed = unique.length - healthy;
|
|
18
62
|
const status = failed === 0 ? "healthy" : healthy > failed ? "degraded" : "unhealthy";
|
|
19
63
|
return { status, mode: "postgresql", timestamp: new Date().toISOString(), services, diagnostics: { search: getSearchDiagnostics() }, summary: { total: unique.length, healthy, degraded: 0, failed }, recommendations: this.generateRecommendations(services) };
|
|
20
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Provider-aware reachability + model-listing check, kept under the
|
|
67
|
+
* `ollama` name for compatibility (LIP-10: `services.ollama` and
|
|
68
|
+
* `GET /api/v1/system/ollama` are public surfaces, never renamed in
|
|
69
|
+
* place). Discriminates by response body shape via `probeProvider`
|
|
70
|
+
* (kernel/inference-probe.ts) rather than trusting `response.ok` — LM
|
|
71
|
+
* Studio answers HTTP 200 with `{"error": "..."}` for an Ollama-shaped
|
|
72
|
+
* endpoint, so a status-code check alone reports "Ollama healthy" against
|
|
73
|
+
* a server that is not Ollama.
|
|
74
|
+
*/
|
|
21
75
|
async checkOllama() {
|
|
22
76
|
const start = Date.now();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
catch (error) {
|
|
35
|
-
return { available: false, latency: Date.now() - start, error: `Ollama unreachable: ${error.message}` };
|
|
77
|
+
const providerId = this.resolveProviderId();
|
|
78
|
+
const spec = INFERENCE_PROVIDERS[providerId];
|
|
79
|
+
const baseUrl = this.resolveProviderBaseUrl(providerId);
|
|
80
|
+
const result = await probeProvider(spec, baseUrl);
|
|
81
|
+
const latency = Date.now() - start;
|
|
82
|
+
if (!result.reachable) {
|
|
83
|
+
return {
|
|
84
|
+
available: false,
|
|
85
|
+
latency,
|
|
86
|
+
error: `${spec.id} ${result.reason} at ${baseUrl}`,
|
|
87
|
+
};
|
|
36
88
|
}
|
|
89
|
+
const embeddingModel = this.resolveConfiguredEmbeddingModel(spec.envNames.model);
|
|
90
|
+
return {
|
|
91
|
+
available: true,
|
|
92
|
+
latency,
|
|
93
|
+
details: {
|
|
94
|
+
provider: spec.id,
|
|
95
|
+
url: baseUrl,
|
|
96
|
+
modelsAvailable: result.models.length,
|
|
97
|
+
models: result.models,
|
|
98
|
+
embeddingModel,
|
|
99
|
+
hasEmbeddingModel: result.models.some((name) => name === embeddingModel || name.startsWith(embeddingModel.split(":")[0])),
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Neutral alias for `checkOllama` (LIP-10) — identical provider-aware
|
|
105
|
+
* probe, added beside the Ollama-branded name rather than replacing it.
|
|
106
|
+
*/
|
|
107
|
+
async checkInference() {
|
|
108
|
+
return this.checkOllama();
|
|
37
109
|
}
|
|
38
110
|
async checkDataDirectory() {
|
|
39
111
|
const start = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-health-checker.js","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"local-health-checker.js","sourceRoot":"","sources":["../../../src/services/health/local-health-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* bootstrap; Phase 5: auto-improve; Phase 7: compression) MUST treat a
|
|
15
15
|
* `{ ok: false }` result as "fall through to the non-LLM path".
|
|
16
16
|
*/
|
|
17
|
+
import { type InferenceProviderSpec } from "@massa-ai/shared/inference-providers";
|
|
17
18
|
import { z } from "zod";
|
|
18
19
|
/**
|
|
19
20
|
* Which model role a call targets. `"instruct"` (default) selects the
|
|
@@ -55,6 +56,56 @@ export declare function _setJsonSchemaSupportedForTesting(flag: boolean | null):
|
|
|
55
56
|
/** Whether the LLM is enabled at the current config. Cheap, side-effect-free. */
|
|
56
57
|
export declare function isLlmEnabled(): boolean;
|
|
57
58
|
export declare function _setLlmEnabledForTesting(flag: boolean | null): void;
|
|
59
|
+
export declare function _setLlmBaseUrlForTesting(url: string | null): void;
|
|
60
|
+
/**
|
|
61
|
+
* Pure resolution of the effective LLM config for one call from the raw
|
|
62
|
+
* `config.llm` block (possibly partial/undefined — defensive against a
|
|
63
|
+
* partial or missing config) and the requested role. Every fallback reads
|
|
64
|
+
* the resolved provider's own seam entry (`inference-providers.ts`), never a
|
|
65
|
+
* bare Ollama-shaped literal: code role falls back to `defaultModels.coding`
|
|
66
|
+
* — never to the instruct model, which after this feature is a
|
|
67
|
+
* vision-language model (COVERAGE #5) — and `disableThink` follows the
|
|
68
|
+
* resolved provider's `injectsDisableThink` (LIP-07) instead of a hardcoded
|
|
69
|
+
* `true`.
|
|
70
|
+
*
|
|
71
|
+
* Exported so this fallback behavior can be unit-tested with a synthetic
|
|
72
|
+
* config shape — this file's test suite deliberately does not
|
|
73
|
+
* `mock.module("@massa-ai/shared")` (see llm-client.test.ts's docblock).
|
|
74
|
+
* @internal
|
|
75
|
+
*/
|
|
76
|
+
export declare function _resolveLlmConfig(cfg: Partial<{
|
|
77
|
+
baseUrl: string;
|
|
78
|
+
apiKey: string;
|
|
79
|
+
model: string;
|
|
80
|
+
codeModel: string;
|
|
81
|
+
temperature: number;
|
|
82
|
+
codeTemperature: number;
|
|
83
|
+
contextWindow: number;
|
|
84
|
+
codeContextWindow: number;
|
|
85
|
+
maxOutputTokens: number;
|
|
86
|
+
timeoutMs: number;
|
|
87
|
+
disableThink: boolean;
|
|
88
|
+
}> | undefined, role: LlmModelRole, baseUrlOverride: string | null): {
|
|
89
|
+
baseUrl: string;
|
|
90
|
+
apiKey: string;
|
|
91
|
+
model: string;
|
|
92
|
+
temperature: number;
|
|
93
|
+
contextWindow: number;
|
|
94
|
+
maxOutputTokens: number;
|
|
95
|
+
timeoutMs: number;
|
|
96
|
+
disableThink: boolean;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Resolve which local-inference provider `llm.baseUrl` targets (design.md
|
|
100
|
+
* §4, LIP-07): the two Ollama-only behaviours below must not fire against
|
|
101
|
+
* LM Studio. Primary signal is a host:port match against each provider's
|
|
102
|
+
* `defaultLlmBaseUrl`; a baseUrl that matches none of them (custom host, or
|
|
103
|
+
* a provider's default port overridden) falls back to `embedding.provider`
|
|
104
|
+
* when it names a local-inference id, then to `ollama` — today's only
|
|
105
|
+
* behaviour, so an unresolvable baseUrl regresses to nothing.
|
|
106
|
+
* @internal
|
|
107
|
+
*/
|
|
108
|
+
export declare function resolveInferenceSpec(baseUrl: string): InferenceProviderSpec;
|
|
58
109
|
/**
|
|
59
110
|
* Best-effort `think:false` injection. Ollama's OpenAI-compat layer honors a
|
|
60
111
|
* top-level `think` field for qwen3. Wrapped fetch keeps the SDK contract
|
|
@@ -66,6 +117,16 @@ export declare function _setLlmEnabledForTesting(flag: boolean | null): void;
|
|
|
66
117
|
* @internal
|
|
67
118
|
*/
|
|
68
119
|
export declare function _wrapFetchDisableThink(baseFetch: typeof globalThis.fetch): typeof globalThis.fetch;
|
|
120
|
+
/**
|
|
121
|
+
* Best-effort `options.num_ctx` injection (PDM-08/PDM-09). Ollama's
|
|
122
|
+
* OpenAI-compat chat layer honors a top-level `options` object; LM Studio
|
|
123
|
+
* has no per-request context-length field (spec A-07, `appliesContextPerRequest:
|
|
124
|
+
* false`) and must never receive this — gated at the call site in
|
|
125
|
+
* `buildProvider`. Merges into any existing `options` object rather than
|
|
126
|
+
* overwriting it, mirroring `_wrapFetchDisableThink`'s shape.
|
|
127
|
+
* @internal
|
|
128
|
+
*/
|
|
129
|
+
export declare function _wrapFetchContextWindow(baseFetch: typeof globalThis.fetch, contextWindow: number): typeof globalThis.fetch;
|
|
69
130
|
/**
|
|
70
131
|
* Normalize the reasoning channel exposed by the AI SDK (v5+) into a single
|
|
71
132
|
* string. Handles: array of `{type:"reasoning", text}` parts, a raw string,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../../src/services/memory/llm-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { generateText, generateObject } from "ai";
|
|
18
18
|
import { createOpenAI } from "@ai-sdk/openai";
|
|
19
|
-
import { config, logger
|
|
19
|
+
import { config, logger } from "@massa-ai/shared";
|
|
20
|
+
import { loadConfigSafe } from "@massa-ai/shared/config";
|
|
21
|
+
import { INFERENCE_PROVIDERS, INFERENCE_ROLE_DEFAULTS, LOCAL_INFERENCE_IDS, inferenceProviderList, } from "@massa-ai/shared/inference-providers";
|
|
20
22
|
// ── json_schema constrained decoding (W7-07) ─────────────────────────────
|
|
21
23
|
/**
|
|
22
24
|
* Cached Ollama json_schema support flag. `null` = not yet checked.
|
|
@@ -36,6 +38,17 @@ export async function _checkJsonSchemaSupport() {
|
|
|
36
38
|
return _jsonSchemaSupported;
|
|
37
39
|
try {
|
|
38
40
|
const llm = getLlmConfig();
|
|
41
|
+
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
42
|
+
if (!spec.supportsOllamaVersionProbe) {
|
|
43
|
+
// LM Studio (and any other non-Ollama local provider) implements the
|
|
44
|
+
// OpenAI-native response_format:{type:"json_schema"} path directly —
|
|
45
|
+
// no version handshake exists to probe, and none is needed (LIP-07).
|
|
46
|
+
_jsonSchemaSupported = true;
|
|
47
|
+
logger.info("json_schema: native support assumed (non-Ollama provider)", {
|
|
48
|
+
provider: spec.id,
|
|
49
|
+
});
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
39
52
|
// Ollama's version endpoint is at /api/version (no /v1 prefix).
|
|
40
53
|
const versionUrl = llm.baseUrl.replace(/\/v1\/?$/, "") + "/api/version";
|
|
41
54
|
const res = await fetch(versionUrl, { signal: AbortSignal.timeout(5000) });
|
|
@@ -115,25 +128,105 @@ export function _setLlmEnabledForTesting(flag) {
|
|
|
115
128
|
* Config: `MASSA_AI_LLM_DISABLE_THINK` (default `"1"`). When disabled, behavior
|
|
116
129
|
* regresses to today's (content-only) path exactly.
|
|
117
130
|
*/
|
|
118
|
-
/**
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
131
|
+
/**
|
|
132
|
+
* Test seam: force the resolved `llm.baseUrl` without touching config or
|
|
133
|
+
* mocking `@massa-ai/shared` (this file's own test suite deliberately avoids
|
|
134
|
+
* that mock — see llm-client.test.ts's docblock — since bun's mock.module is
|
|
135
|
+
* process-wide and would collide with sibling test files). Pass `null` to
|
|
136
|
+
* clear.
|
|
137
|
+
* @internal
|
|
138
|
+
*/
|
|
139
|
+
let testBaseUrlOverride = null;
|
|
140
|
+
export function _setLlmBaseUrlForTesting(url) {
|
|
141
|
+
testBaseUrlOverride = url;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Pure resolution of the effective LLM config for one call from the raw
|
|
145
|
+
* `config.llm` block (possibly partial/undefined — defensive against a
|
|
146
|
+
* partial or missing config) and the requested role. Every fallback reads
|
|
147
|
+
* the resolved provider's own seam entry (`inference-providers.ts`), never a
|
|
148
|
+
* bare Ollama-shaped literal: code role falls back to `defaultModels.coding`
|
|
149
|
+
* — never to the instruct model, which after this feature is a
|
|
150
|
+
* vision-language model (COVERAGE #5) — and `disableThink` follows the
|
|
151
|
+
* resolved provider's `injectsDisableThink` (LIP-07) instead of a hardcoded
|
|
152
|
+
* `true`.
|
|
153
|
+
*
|
|
154
|
+
* Exported so this fallback behavior can be unit-tested with a synthetic
|
|
155
|
+
* config shape — this file's test suite deliberately does not
|
|
156
|
+
* `mock.module("@massa-ai/shared")` (see llm-client.test.ts's docblock).
|
|
157
|
+
* @internal
|
|
158
|
+
*/
|
|
159
|
+
export function _resolveLlmConfig(cfg, role, baseUrlOverride) {
|
|
160
|
+
const baseUrl = baseUrlOverride ?? cfg?.baseUrl ?? INFERENCE_PROVIDERS.ollama.defaultLlmBaseUrl;
|
|
161
|
+
const spec = resolveInferenceSpec(baseUrl);
|
|
124
162
|
const model = role === "code"
|
|
125
|
-
? cfg?.codeModel ??
|
|
126
|
-
: cfg?.model ??
|
|
163
|
+
? cfg?.codeModel ?? spec.defaultModels.coding
|
|
164
|
+
: cfg?.model ?? spec.defaultModels.instruct;
|
|
165
|
+
const temperature = role === "code"
|
|
166
|
+
? cfg?.codeTemperature ?? INFERENCE_ROLE_DEFAULTS.coding.temperature
|
|
167
|
+
: cfg?.temperature ?? INFERENCE_ROLE_DEFAULTS.instruct.temperature;
|
|
168
|
+
// Context window per role (PDM-08/PDM-09); sent as `options.num_ctx` only
|
|
169
|
+
// where `spec.appliesContextPerRequest` (buildProvider) — LM Studio applies
|
|
170
|
+
// it at load time (spec A-07) and must never receive this field.
|
|
171
|
+
const contextWindow = role === "code"
|
|
172
|
+
? cfg?.codeContextWindow ?? INFERENCE_ROLE_DEFAULTS.coding.contextWindow
|
|
173
|
+
: cfg?.contextWindow ?? INFERENCE_ROLE_DEFAULTS.instruct.contextWindow;
|
|
127
174
|
return {
|
|
128
|
-
baseUrl
|
|
129
|
-
apiKey: cfg?.apiKey ??
|
|
175
|
+
baseUrl,
|
|
176
|
+
apiKey: cfg?.apiKey ?? spec.id,
|
|
130
177
|
model,
|
|
131
|
-
temperature
|
|
178
|
+
temperature,
|
|
179
|
+
contextWindow,
|
|
132
180
|
maxOutputTokens: cfg?.maxOutputTokens ?? 8000,
|
|
133
181
|
timeoutMs: cfg?.timeoutMs ?? 90000,
|
|
134
|
-
disableThink: cfg?.disableThink ??
|
|
182
|
+
disableThink: cfg?.disableThink ?? spec.injectsDisableThink,
|
|
135
183
|
};
|
|
136
184
|
}
|
|
185
|
+
/** Read the llm config block with safe defaults (defensive against partial/missing config). */
|
|
186
|
+
function getLlmConfig(opts) {
|
|
187
|
+
return _resolveLlmConfig(config.get("llm"), opts?.modelRole ?? "instruct", testBaseUrlOverride);
|
|
188
|
+
}
|
|
189
|
+
/** host:port for a URL, or `null` when it doesn't parse. */
|
|
190
|
+
function hostPort(url) {
|
|
191
|
+
try {
|
|
192
|
+
const u = new URL(url);
|
|
193
|
+
return `${u.hostname}:${u.port || (u.protocol === "https:" ? "443" : "80")}`;
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
return null;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Resolve which local-inference provider `llm.baseUrl` targets (design.md
|
|
201
|
+
* §4, LIP-07): the two Ollama-only behaviours below must not fire against
|
|
202
|
+
* LM Studio. Primary signal is a host:port match against each provider's
|
|
203
|
+
* `defaultLlmBaseUrl`; a baseUrl that matches none of them (custom host, or
|
|
204
|
+
* a provider's default port overridden) falls back to `embedding.provider`
|
|
205
|
+
* when it names a local-inference id, then to `ollama` — today's only
|
|
206
|
+
* behaviour, so an unresolvable baseUrl regresses to nothing.
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
export function resolveInferenceSpec(baseUrl) {
|
|
210
|
+
const target = hostPort(baseUrl);
|
|
211
|
+
if (target) {
|
|
212
|
+
const match = inferenceProviderList().find((spec) => hostPort(spec.defaultLlmBaseUrl) === target);
|
|
213
|
+
if (match)
|
|
214
|
+
return match;
|
|
215
|
+
}
|
|
216
|
+
let embeddingProvider = process.env.EMBEDDING_PROVIDER;
|
|
217
|
+
if (!embeddingProvider) {
|
|
218
|
+
try {
|
|
219
|
+
embeddingProvider = loadConfigSafe().embedding?.provider;
|
|
220
|
+
}
|
|
221
|
+
catch {
|
|
222
|
+
embeddingProvider = undefined;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
if (embeddingProvider && LOCAL_INFERENCE_IDS.includes(embeddingProvider)) {
|
|
226
|
+
return INFERENCE_PROVIDERS[embeddingProvider];
|
|
227
|
+
}
|
|
228
|
+
return INFERENCE_PROVIDERS.ollama;
|
|
229
|
+
}
|
|
137
230
|
/**
|
|
138
231
|
* Best-effort `think:false` injection. Ollama's OpenAI-compat layer honors a
|
|
139
232
|
* top-level `think` field for qwen3. Wrapped fetch keeps the SDK contract
|
|
@@ -162,15 +255,54 @@ export function _wrapFetchDisableThink(baseFetch) {
|
|
|
162
255
|
};
|
|
163
256
|
return wrapped;
|
|
164
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* Best-effort `options.num_ctx` injection (PDM-08/PDM-09). Ollama's
|
|
260
|
+
* OpenAI-compat chat layer honors a top-level `options` object; LM Studio
|
|
261
|
+
* has no per-request context-length field (spec A-07, `appliesContextPerRequest:
|
|
262
|
+
* false`) and must never receive this — gated at the call site in
|
|
263
|
+
* `buildProvider`. Merges into any existing `options` object rather than
|
|
264
|
+
* overwriting it, mirroring `_wrapFetchDisableThink`'s shape.
|
|
265
|
+
* @internal
|
|
266
|
+
*/
|
|
267
|
+
export function _wrapFetchContextWindow(baseFetch, contextWindow) {
|
|
268
|
+
const wrapped = async (input, init) => {
|
|
269
|
+
try {
|
|
270
|
+
if (init?.body && typeof init.body === "string") {
|
|
271
|
+
const parsed = JSON.parse(init.body);
|
|
272
|
+
if (parsed && typeof parsed === "object") {
|
|
273
|
+
parsed.options = { ...parsed.options, num_ctx: contextWindow };
|
|
274
|
+
init = { ...init, body: JSON.stringify(parsed) };
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
catch {
|
|
279
|
+
// Not JSON or unparseable — leave the request untouched.
|
|
280
|
+
}
|
|
281
|
+
return baseFetch(input, init);
|
|
282
|
+
};
|
|
283
|
+
return wrapped;
|
|
284
|
+
}
|
|
165
285
|
function buildProvider(llm) {
|
|
166
286
|
// Ollama exposes an OpenAI-compatible API at /v1; createOpenAI over baseURL
|
|
167
287
|
// is sufficient (no special compatibility flag in @ai-sdk/openai v3).
|
|
288
|
+
const spec = resolveInferenceSpec(llm.baseUrl);
|
|
289
|
+
let fetchImpl;
|
|
290
|
+
if (spec.appliesContextPerRequest) {
|
|
291
|
+
fetchImpl = _wrapFetchContextWindow(fetchImpl ?? globalThis.fetch, llm.contextWindow);
|
|
292
|
+
}
|
|
293
|
+
if (llm.disableThink && spec.injectsDisableThink) {
|
|
294
|
+
fetchImpl = _wrapFetchDisableThink(fetchImpl ?? globalThis.fetch);
|
|
295
|
+
}
|
|
168
296
|
const openai = createOpenAI({
|
|
169
297
|
baseURL: llm.baseUrl,
|
|
170
298
|
apiKey: llm.apiKey,
|
|
171
|
-
...(
|
|
299
|
+
...(fetchImpl ? { fetch: fetchImpl } : {}),
|
|
172
300
|
});
|
|
173
|
-
|
|
301
|
+
// The default callable resolves to the Responses API, which LM Studio serves
|
|
302
|
+
// while dropping `text.format` — gating json_schema on correctly still yields
|
|
303
|
+
// prose there. `.chat()` is the endpoint that honours it. See
|
|
304
|
+
// `requiresChatCompletionsApi`.
|
|
305
|
+
return spec.requiresChatCompletionsApi ? openai.chat(llm.model) : openai(llm.model);
|
|
174
306
|
}
|
|
175
307
|
/**
|
|
176
308
|
* Normalize the reasoning channel exposed by the AI SDK (v5+) into a single
|