@neverinfamous/postgres-mcp 1.1.0 → 1.2.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/README.md +39 -31
- package/dist/__tests__/mocks/adapter.d.ts.map +1 -1
- package/dist/__tests__/mocks/adapter.js +0 -1
- package/dist/__tests__/mocks/adapter.js.map +1 -1
- package/dist/__tests__/mocks/pool.d.ts.map +1 -1
- package/dist/__tests__/mocks/pool.js +0 -1
- package/dist/__tests__/mocks/pool.js.map +1 -1
- package/dist/adapters/DatabaseAdapter.js +1 -1
- package/dist/adapters/DatabaseAdapter.js.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresql/PostgresAdapter.js +25 -5
- package/dist/adapters/postgresql/PostgresAdapter.js.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/backup.js +2 -3
- package/dist/adapters/postgresql/prompts/backup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/citext.js +3 -4
- package/dist/adapters/postgresql/prompts/citext.js.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/extensionSetup.js +2 -3
- package/dist/adapters/postgresql/prompts/extensionSetup.js.map +1 -1
- package/dist/adapters/postgresql/prompts/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/health.js +2 -3
- package/dist/adapters/postgresql/prompts/health.js.map +1 -1
- package/dist/adapters/postgresql/prompts/index.js +20 -27
- package/dist/adapters/postgresql/prompts/index.js.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/indexTuning.js +2 -3
- package/dist/adapters/postgresql/prompts/indexTuning.js.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/kcache.js +3 -4
- package/dist/adapters/postgresql/prompts/kcache.js.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/ltree.js +3 -4
- package/dist/adapters/postgresql/prompts/ltree.js.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/partman.js +2 -3
- package/dist/adapters/postgresql/prompts/partman.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcron.js +2 -3
- package/dist/adapters/postgresql/prompts/pgcron.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgcrypto.js +3 -4
- package/dist/adapters/postgresql/prompts/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/pgvector.js +3 -4
- package/dist/adapters/postgresql/prompts/pgvector.js.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/prompts/postgis.js +2 -3
- package/dist/adapters/postgresql/prompts/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/core.d.ts +1 -0
- package/dist/adapters/postgresql/schemas/core.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/core.js +4 -0
- package/dist/adapters/postgresql/schemas/core.js.map +1 -1
- package/dist/adapters/postgresql/schemas/extensions.js +2 -2
- package/dist/adapters/postgresql/schemas/partitioning.d.ts +11 -8
- package/dist/adapters/postgresql/schemas/partitioning.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/partitioning.js +13 -10
- package/dist/adapters/postgresql/schemas/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts +2 -1
- package/dist/adapters/postgresql/schemas/performance.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/performance.js +1 -2
- package/dist/adapters/postgresql/schemas/performance.js.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/postgis.js +0 -3
- package/dist/adapters/postgresql/schemas/postgis.js.map +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.d.ts +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js +1 -1
- package/dist/adapters/postgresql/schemas/schema-mgmt.js.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.d.ts.map +1 -1
- package/dist/adapters/postgresql/schemas/text-search.js +4 -1
- package/dist/adapters/postgresql/schemas/text-search.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/dump.js +50 -50
- package/dist/adapters/postgresql/tools/backup/dump.js.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/backup/planning.js +175 -172
- package/dist/adapters/postgresql/tools/backup/planning.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/convenience.js +25 -5
- package/dist/adapters/postgresql/tools/core/convenience.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/health.js +5 -2
- package/dist/adapters/postgresql/tools/core/health.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/query.js +3 -3
- package/dist/adapters/postgresql/tools/core/query.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.d.ts +1 -0
- package/dist/adapters/postgresql/tools/core/schemas.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/schemas.js +4 -0
- package/dist/adapters/postgresql/tools/core/schemas.js.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/core/tables.js +6 -2
- package/dist/adapters/postgresql/tools/core/tables.js.map +1 -1
- package/dist/adapters/postgresql/tools/kcache.js +45 -15
- package/dist/adapters/postgresql/tools/kcache.js.map +1 -1
- package/dist/adapters/postgresql/tools/ltree.js +5 -0
- package/dist/adapters/postgresql/tools/ltree.js.map +1 -1
- package/dist/adapters/postgresql/tools/monitoring.js +5 -6
- package/dist/adapters/postgresql/tools/monitoring.js.map +1 -1
- package/dist/adapters/postgresql/tools/partitioning.js +71 -0
- package/dist/adapters/postgresql/tools/partitioning.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js +1 -1
- package/dist/adapters/postgresql/tools/partman/management.js.map +1 -1
- package/dist/adapters/postgresql/tools/partman/operations.js +3 -3
- package/dist/adapters/postgresql/tools/partman/operations.js.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/performance/stats.js +4 -1
- package/dist/adapters/postgresql/tools/performance/stats.js.map +1 -1
- package/dist/adapters/postgresql/tools/pgcrypto.js +6 -6
- package/dist/adapters/postgresql/tools/pgcrypto.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/advanced.js +34 -5
- package/dist/adapters/postgresql/tools/postgis/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/postgis/basic.js +2 -2
- package/dist/adapters/postgresql/tools/postgis/basic.js.map +1 -1
- package/dist/adapters/postgresql/tools/schema.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/schema.js +18 -2
- package/dist/adapters/postgresql/tools/schema.js.map +1 -1
- package/dist/adapters/postgresql/tools/text.js +12 -8
- package/dist/adapters/postgresql/tools/text.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/advanced.js +52 -38
- package/dist/adapters/postgresql/tools/vector/advanced.js.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.d.ts +8 -0
- package/dist/adapters/postgresql/tools/vector/basic.d.ts.map +1 -1
- package/dist/adapters/postgresql/tools/vector/basic.js +94 -29
- package/dist/adapters/postgresql/tools/vector/basic.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +15 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli.js +7 -6
- package/dist/cli.js.map +1 -1
- package/dist/codemode/api.d.ts.map +1 -1
- package/dist/codemode/api.js +3 -2
- package/dist/codemode/api.js.map +1 -1
- package/dist/constants/ServerInstructions.d.ts +1 -1
- package/dist/constants/ServerInstructions.d.ts.map +1 -1
- package/dist/constants/ServerInstructions.js +33 -29
- package/dist/constants/ServerInstructions.js.map +1 -1
- package/dist/filtering/ToolConstants.d.ts +29 -13
- package/dist/filtering/ToolConstants.d.ts.map +1 -1
- package/dist/filtering/ToolConstants.js +44 -27
- package/dist/filtering/ToolConstants.js.map +1 -1
- package/dist/utils/logger.js +2 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress-utils.js +1 -1
- package/dist/utils/progress-utils.js.map +1 -1
- package/package.json +7 -7
package/dist/codemode/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/codemode/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/codemode/api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;GAOG;AACH,MAAM,cAAc,GAA2C;IAC7D,sEAAsE;IACtE,KAAK,EAAE;QACL,YAAY,EAAE,SAAS;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,UAAU;QACzB,cAAc,EAAE,WAAW;QAC3B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE,OAAO;QACnB,SAAS,EAAE,MAAM;QACjB,eAAe,EAAE,YAAY;QAC7B,WAAW,EAAE,QAAQ;QACrB,iBAAiB,EAAE,cAAc;QACjC,UAAU,EAAE,OAAO;QACnB,cAAc,EAAE,WAAW;QAC3B,SAAS,EAAE,MAAM;QACjB,iBAAiB,EAAE,cAAc;QACjC,iBAAiB,EAAE,cAAc;QACjC,UAAU,EAAE,OAAO;KACpB;IACD,qDAAqD;IACrD,IAAI,EAAE;QACJ,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,UAAU;QACxB,aAAa,EAAE,WAAW;QAC1B,aAAa,EAAE,WAAW;QAC1B,YAAY,EAAE,UAAU;QACxB,WAAW,EAAE,SAAS;QACtB,gBAAgB,EAAE,cAAc;QAChC,uCAAuC;QACvC,OAAO,EAAE,mBAAmB,EAAE,0CAA0C;QACxE,OAAO,EAAE,mBAAmB,EAAE,0CAA0C;QACxE,UAAU,EAAE,mBAAmB,EAAE,6CAA6C;QAC9E,KAAK,EAAE,YAAY,EAAE,iCAAiC;QACtD,IAAI,EAAE,YAAY,EAAE,gCAAgC;QACpD,KAAK,EAAE,aAAa,EAAE,kCAAkC;QACxD,MAAM,EAAE,aAAa,EAAE,mCAAmC;QAC1D,QAAQ,EAAE,WAAW,EAAE,mCAAmC;QAC1D,SAAS,EAAE,UAAU,EAAE,mCAAmC;QAC1D,YAAY,EAAE,aAAa,EAAE,yCAAyC;QACtE,OAAO,EAAE,cAAc,EAAE,qCAAqC;QAC9D,aAAa,EAAE,cAAc,EAAE,2CAA2C;QAC1E,WAAW,EAAE,gBAAgB,EAAE,2CAA2C;KAC3E;IACD,sEAAsE;IACtE,MAAM,EAAE;QACN,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,WAAW;QAC5B,iBAAiB,EAAE,aAAa;QAChC,aAAa,EAAE,SAAS;QACxB,mBAAmB,EAAE,eAAe;QACpC,iBAAiB,EAAE,aAAa;QAChC,qBAAqB,EAAE,iBAAiB;QACxC,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,WAAW;QAC5B,cAAc,EAAE,UAAU;QAC1B,UAAU,EAAE,MAAM;KACnB;IACD,UAAU;IACV,OAAO,EAAE;QACP,8EAA8E;QAC9E,aAAa,EAAE,kBAAkB;QACjC,qEAAqE;QACrE,SAAS,EAAE,gBAAgB;KAC5B;IACD,iDAAiD;IACjD,WAAW,EAAE;QACX,wEAAwE;QACxE,UAAU,EAAE,eAAe,EAAE,mCAAmC;QAChE,UAAU,EAAE,gBAAgB,EAAE,oCAAoC;QAClE,2BAA2B;QAC3B,QAAQ,EAAE,cAAc,EAAE,8BAA8B;QAExD,yBAAyB;QACzB,UAAU,EAAE,YAAY,EAAE,8BAA8B;QACxD,eAAe;QACf,MAAM,EAAE,aAAa,EAAE,2BAA2B;QAClD,cAAc;QACd,aAAa,EAAE,YAAY,EAAE,iCAAiC;QAC9D,KAAK,EAAE,YAAY,EAAE,yBAAyB;KAC/C;IACD,8DAA8D;IAC9D,UAAU,EAAE;QACV,MAAM,EAAE,YAAY,EAAE,0BAA0B;QAChD,WAAW,EAAE,iBAAiB,EAAE,oCAAoC;QACpE,QAAQ,EAAE,cAAc,EAAE,8BAA8B;QACxD,MAAM,EAAE,cAAc,EAAE,4BAA4B;QACpD,MAAM,EAAE,mBAAmB,EAAE,iCAAiC;QAC9D,UAAU,EAAE,mBAAmB,EAAE,qCAAqC;KACvE;IACD,gCAAgC;IAChC,YAAY,EAAE;QACZ,0EAA0E;QAC1E,KAAK,EAAE,kBAAkB;QACzB,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,qBAAqB;QAC/B,SAAS,EAAE,sBAAsB;QACjC,OAAO,EAAE,oBAAoB;QAC7B,UAAU,EAAE,uBAAuB;QACnC,OAAO,EAAE,oBAAoB;KAC9B;IACD,kFAAkF;IAClF,KAAK,EAAE;QACL,gBAAgB,EAAE,aAAa;QAC/B,gBAAgB,EAAE,aAAa;QAC/B,gBAAgB,EAAE,aAAa;QAC/B,eAAe,EAAE,YAAY;QAC7B,eAAe,EAAE,YAAY;QAC7B,iBAAiB,EAAE,cAAc;QACjC,eAAe,EAAE,YAAY;QAC7B,aAAa,EAAE,UAAU;QACzB,oBAAoB;QACpB,OAAO,EAAE,aAAa,EAAE,4BAA4B;QACpD,UAAU,EAAE,aAAa,EAAE,+BAA+B;QAC1D,SAAS,EAAE,cAAc,EAAE,+BAA+B;QAC1D,aAAa,EAAE,YAAY,EAAE,iCAAiC;QAC9D,WAAW,EAAE,YAAY,EAAE,+BAA+B;KAC3D;IACD,0EAA0E;IAC1E,IAAI,EAAE;QACJ,mBAAmB,EAAE,iBAAiB;QACtC,YAAY,EAAE,UAAU;QACxB,sBAAsB,EAAE,oBAAoB;QAC5C,cAAc,EAAE,YAAY;QAC5B,YAAY,EAAE,UAAU;QACxB,YAAY,EAAE,UAAU;QACxB,iBAAiB,EAAE,eAAe;QAClC,kBAAkB,EAAE,gBAAgB;KACrC;IACD,UAAU;IACV,OAAO,EAAE;QACP,sBAAsB,EAAE,iBAAiB;QACzC,mBAAmB,EAAE,cAAc;QACnC,qBAAqB,EAAE,gBAAgB;QACvC,iBAAiB,EAAE,YAAY;QAC/B,qBAAqB,EAAE,gBAAgB,EAAE,wBAAwB;QACjE,mBAAmB,EAAE,cAAc;QACnC,oBAAoB,EAAE,eAAe;QACrC,mBAAmB,EAAE,cAAc;QACnC,oBAAoB,EAAE,eAAe;QACrC,6BAA6B,EAAE,wBAAwB;QACvD,wBAAwB;QACxB,aAAa,EAAE,wBAAwB,EAAE,wDAAwD;KAClG;IACD,SAAS;IACT,MAAM,EAAE;QACN,qBAAqB,EAAE,iBAAiB;QACxC,gBAAgB,EAAE,YAAY;QAC9B,WAAW,EAAE,OAAO;QACpB,YAAY,EAAE,QAAQ;QACtB,WAAW,EAAE,OAAO;QACpB,mBAAmB,EAAE,eAAe;QACpC,sBAAsB,EAAE,kBAAkB;KAC3C;IACD,SAAS;IACT,MAAM,EAAE;QACN,qBAAqB,EAAE,iBAAiB;QACxC,mBAAmB,EAAE,eAAe;QACpC,iBAAiB,EAAE,aAAa;QAChC,uBAAuB,EAAE,mBAAmB;QAC5C,aAAa,EAAE,SAAS;QACxB,mBAAmB,EAAE,eAAe;KACrC;IACD,QAAQ;IACR,KAAK,EAAE;QACL,oBAAoB,EAAE,iBAAiB;QACvC,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,SAAS;QACvB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,aAAa;QAC/B,kBAAkB,EAAE,eAAe;QACnC,gBAAgB,EAAE,aAAa;KAChC;IACD,WAAW;IACX,QAAQ,EAAE;QACR,uBAAuB,EAAE,iBAAiB;QAC1C,YAAY,EAAE,MAAM;QACpB,YAAY,EAAE,MAAM;QACpB,eAAe,EAAE,SAAS;QAC1B,eAAe,EAAE,SAAS;QAC1B,qBAAqB,EAAE,eAAe;QACtC,sBAAsB,EAAE,gBAAgB;QACxC,eAAe,EAAE,SAAS;QAC1B,aAAa,EAAE,OAAO;KACvB;IACD,gCAAgC;IAChC,YAAY,EAAE;QACZ,MAAM,EAAE,iBAAiB,EAAE,+BAA+B;QAC1D,GAAG,EAAE,iBAAiB,EAAE,4BAA4B;QACpD,IAAI,EAAE,gBAAgB,EAAE,4BAA4B;QACpD,IAAI,EAAE,eAAe,EAAE,2BAA2B;QAClD,MAAM,EAAE,iBAAiB,EAAE,+BAA+B;QAC1D,MAAM,EAAE,iBAAiB,EAAE,+BAA+B;QAC1D,MAAM,EAAE,iBAAiB,EAAE,+BAA+B;KAC3D;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAA6B;IAC/C,IAAI,EAAE;QACJ,mDAAmD;QACnD,2DAA2D;QAC3D,6EAA6E;QAC7E,iEAAiE;KAClE;IACD,YAAY,EAAE;QACZ,yDAAyD;QACzD,iEAAiE;QACjE,kEAAkE;QAClE,iDAAiD;QACjD,6FAA6F;KAC9F;IACD,KAAK,EAAE;QACL,wEAAwE;QACxE,8FAA8F;QAC9F,iGAAiG;QACjG,gFAAgF;QAChF,mEAAmE;QACnE,yDAAyD;QACzD,+EAA+E;KAChF;IACD,IAAI,EAAE;QACJ,6EAA6E;QAC7E,uFAAuF;QACvF,mFAAmF;KACpF;IACD,WAAW,EAAE;QACX,yDAAyD;QACzD,gCAAgC;QAChC,gDAAgD;QAChD,6BAA6B;KAC9B;IACD,KAAK,EAAE;QACL,sCAAsC;QACtC,iEAAiE;QACjE,0EAA0E;QAC1E,2EAA2E;QAC3E,iEAAiE;QACjE,0DAA0D;QAC1D,wCAAwC;KACzC;IACD,UAAU,EAAE;QACV,8BAA8B;QAC9B,yCAAyC;QACzC,iCAAiC;QACjC,qDAAqD;QACrD,8CAA8C;QAC9C,wBAAwB;QACxB,+BAA+B;QAC/B,sCAAsC;QACtC,iEAAiE;KAClE;IACD,MAAM,EAAE;QACN,4DAA4D;QAC5D,sEAAsE;QACtE,oDAAoD,EAAE,sBAAsB;QAC5E,wFAAwF;QACxF,2EAA2E;QAC3E,kEAAkE;QAClE,gFAAgF;QAChF,iFAAiF;QACjF,8BAA8B;KAC/B;IACD,MAAM,EAAE;QACN,yFAAyF;QACzF,uBAAuB;QACvB,iDAAiD;KAClD;IACD,MAAM,EAAE;QACN,4FAA4F;QAC5F,qFAAqF;QACrF,qFAAqF;KACtF;IACD,OAAO,EAAE;QACP,6FAA6F;QAC7F,uEAAuE;QACvE,+FAA+F;KAChG;IACD,YAAY,EAAE;QACZ,8HAA8H;QAC9H,qIAAqI;QACrI,qDAAqD;KACtD;IACD,KAAK,EAAE;QACL,6DAA6D;QAC7D,6FAA6F;QAC7F,uGAAuG;KACxG;IACD,IAAI,EAAE;QACJ,2IAA2I;QAC3I,oBAAoB;QACpB,gCAAgC,EAAE,eAAe;QACjD,kCAAkC;KACnC;IACD,OAAO,EAAE;QACP,yFAAyF;QACzF,6BAA6B;QAC7B,sDAAsD;KACvD;IACD,MAAM,EAAE;QACN,0DAA0D;QAC1D,gCAAgC;QAChC,sCAAsC;QACtC,8BAA8B;KAC/B;IACD,MAAM,EAAE;QACN,8DAA8D;QAC9D,yBAAyB;QACzB,iDAAiD;KAClD;IACD,KAAK,EAAE;QACL,mGAAmG;QACnG,gFAAgF;QAChF,6DAA6D;QAC7D,4EAA4E;KAC7E;IACD,QAAQ,EAAE;QACR,gEAAgE;QAChE,4DAA4D;QAC5D,6BAA6B;QAC7B,qDAAqD;QACrD,+DAA+D;KAChE;CACF,CAAC;AACF;;;;;;;;;GASG;AACH,MAAM,oBAAoB,GAAsC;IAC9D,uCAAuC;IACvC,eAAe;IACf,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,OAAO;IACtB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,MAAM;IACjB,WAAW,EAAE,QAAQ;IACrB,cAAc;IACd,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;IACpC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IAC/B,WAAW,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAChC,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,mDAAmD;IACtF,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,CAAC;IAC5C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC;IAE9B,yCAAyC;IACzC,YAAY,EAAE,MAAM;IACpB,UAAU,EAAE,MAAM;IAClB,cAAc,EAAE,MAAM;IACtB,YAAY,EAAE,MAAM;IACpB,QAAQ,EAAE,MAAM;IAChB,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,QAAQ;IACvB,YAAY,EAAE,OAAO;IACrB,eAAe,EAAE,OAAO;IACxB,UAAU,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,qCAAqC;IAElE,wCAAwC;IACxC,gEAAgE;IAChE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC7C,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IACrD,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;IAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;IACvD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IAClC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IACxC,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC5C,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;IACxC,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;IAC/C,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC;IAC/C,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;IAC/C,GAAG,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACxB,wBAAwB;IACxB,KAAK,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;IAC1B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM;IAEpB,8CAA8C;IAC9C,iBAAiB,EAAE,eAAe;IAClC,mBAAmB,EAAE,eAAe;IACpC,oBAAoB,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IAC/C,kBAAkB,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IAC7C,qBAAqB,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IAChD,uEAAuE;IACvE,gBAAgB;IAChB,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IAClC,UAAU,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC;IACrC,4DAA4D;IAE5D,+CAA+C;IAC/C,cAAc,EAAE,OAAO;IACvB,sBAAsB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,CAAC;IAC1E,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;IAChD,eAAe,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC;IACrD,eAAe,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;IACxC,aAAa,EAAE,OAAO;IAEtB,wCAAwC;IACxC,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IAChC,WAAW,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;IAC/C,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACjC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;IACzC,WAAW,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IAC5C,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IAC7B,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC;IAC3D,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;IACjC,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IAC3C,UAAU,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,qCAAqC;IACzF,2CAA2C;IAC3C,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC;IACvD,gBAAgB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACrC,gBAAgB,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,CAAC;IACpD,iBAAiB,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;IACtC,gBAAgB,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IACjD,eAAe,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,CAAC;IAChE,aAAa,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC;IACtC,eAAe,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC;IAEhD,yCAAyC;IACzC,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,OAAO;IACnB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,YAAY;IAC5B,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,YAAY;IAE7B,uCAAuC;IACvC,YAAY;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,MAAM;IACnB,wDAAwD;IACxD,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;IACrC,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,cAAc,GAA2B;IAC7C,kBAAkB,EAAE,YAAY;IAChC,OAAO,EAAE,YAAY;IACrB,wDAAwD;IACxD,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,QAAQ;CACrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,eAAe,GACnB;IACE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,mDAAmD;IACvH,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ;CAClF,CAAC;AAEJ;;;GAGG;AACH,SAAS,eAAe,CAAC,UAAkB,EAAE,IAAe;IAC1D,yBAAyB;IACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAExC,sBAAsB;IACtB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAEpB,2CAA2C;QAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,GAA8B,CAAC;gBAC9C,wEAAwE;gBACxE,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,OAAO,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,kFAAkF;YAClF,OAAO,GAAG,CAAC;QACb,CAAC;QAED,yCAAyC;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;YAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;YAC5B,CAAC;YACD,0CAA0C;YAC1C,OAAO,GAAG,CAAC;QACb,CAAC;QAED,sCAAsC;QACtC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACrC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;YACjC,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjE,OAAO,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC;YACpC,CAAC;YACD,uCAAuC;YACvC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACzD,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,8FAA8F;IAC9F,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,MAAM,GAA4B,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,gCAAgC;YAChC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtC,IACE,OAAO,OAAO,KAAK,QAAQ;oBAC3B,OAAO,KAAK,IAAI;oBAChB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,CAAC;oBACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAEtD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,2DAA2D;IAC3D,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAA4B,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,6EAA6E;QAC7E,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACtC,IACE,OAAO,OAAO,KAAK,QAAQ;gBAC3B,OAAO,KAAK,IAAI;gBAChB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,+DAA+D;IAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,sBAAsB,GAC1B,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,OAAkC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACzD,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CACzB,CAAC;IAEJ,yEAAyE;IACzE,MAAM,SAAS,GAAG,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9D,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QACpB,CAAC;IACH,CAAC;IAED,0FAA0F;IAC1F,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC;QAChE,IACE,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,KAAK,IAAI;YAChB,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACvB,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,cAAc,CACrB,OAAwB,EACxB,SAAiB,EACjB,KAAuB;IAEvB,MAAM,GAAG,GAA6D,EAAE,CAAC;IAEzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,mCAAmC;QACnC,gEAAgE;QAChE,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAE9D,GAAG,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YAC7C,sDAAsD;YACtD,4EAA4E;YAC5E,MAAM,gBAAgB,GAAG,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACjE,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,KAAK,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACjE,IAAI,GAAG,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,GAAG,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAED,qGAAqG;IACrG,IAAI,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvC,kGAAkG;QAClG,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YAC5C,MAAM,gBAAgB,GAAG,eAAe,CAAC,SAAS,EAAE,IAAI,CAE3C,CAAC;YACd,OAAO,YAAY,CAAC,EAAE,GAAG,gBAAgB,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAClE,CAAC,CAAC;QAEF,sGAAsG;QACtG,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;YAC9C,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,EAAE,IAAI,CAE7C,CAAC;YACd,OAAO,YAAY,CAAC,EAAE,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,cAAc,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC;QAE3C,kEAAkE;QAClE,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,iBAAiB,CAAC,GAAG,KAAK,IAAI,EAAE;gBAClC,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC;QACJ,CAAC;QAED,uFAAuF;QACvF,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,GAAG,CAAC,oBAAoB,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACvD,6EAA6E;gBAC7E,IAAI,UAA8B,CAAC;gBACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC7B,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;qBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBACrD,MAAM,GAAG,GAAG,IAA+B,CAAC;oBAC5C,MAAM,MAAM,GACV,GAAG,CAAC,SAAS,CAAC;wBACd,GAAG,CAAC,WAAW,CAAC;wBAChB,GAAG,CAAC,YAAY,CAAC;wBACjB,GAAG,CAAC,aAAa,CAAC,CAAC;oBACrB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAC/B,UAAU,GAAG,MAAM,CAAC;oBACtB,CAAC;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,CAAC,MAAM,cAAc,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAG3D,CAAC;gBACF,MAAM,SAAS,GAAG,UAAU,IAAI,CAAC,CAAC,CAAC,oBAAoB;gBACvD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;oBAClC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;wBACjC,qCAAqC;wBACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAClC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;4BAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;4BAC3C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;4BACzC,MAAM,YAAY,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;4BACrD,OAAO,YAAY,IAAI,SAAS,CAAC;wBACnC,CAAC;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACH,OAAO;oBACL,kBAAkB,EAAE,WAAW;oBAC/B,KAAK,EAAE,WAAW,CAAC,MAAM;oBACzB,SAAS,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU;iBAC1C,CAAC;YACJ,CAAC,CAAC;YACF,iDAAiD;YACjD,GAAG,CAAC,gBAAgB,CAAC,GAAG,GAAG,CAAC,oBAAoB,CAAC,CAAC;QACpD,CAAC;QAED,sFAAsF;QACtF,GAAG,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,GAAG,IAAe,EAAoB,EAAE;YACnE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,SAAS,GAAG,EAAE,CAAC;YACnB,IAAI,UAAU,GAAG,QAAQ,CAAC;YAE1B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC9B,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;oBAClC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,IAAI,CAAC;gBACnB,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACrD,MAAM,GAAG,GAAG,IAA+B,CAAC;gBAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7C,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBACjC,gDAAgD;oBAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAClC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;wBAClC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,SAAS,GAAG,QAAQ,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,iEAAiE;gBACjE,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChC,IACE,OAAO,SAAS,KAAK,QAAQ;oBAC7B,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EACnC,CAAC;oBACD,UAAU,GAAG,SAAS,CAAC;gBACzB,CAAC;YACH,CAAC;YAED,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;gBACrB,OAAO;oBACL,KAAK,EAAE,qBAAqB;oBAC5B,KAAK,EACH,+GAA+G;iBAClH,CAAC;YACJ,CAAC;YAED,2BAA2B;YAC3B,MAAM,aAAa,GAAG,IAAI,UAAU,MAAM,SAAS,GAAG,CAAC;YACvD,MAAM,OAAO,CAAC,YAAY,CAAC,WAAW,aAAa,EAAE,CAAC,CAAC;YAEvD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,wBAAwB,aAAa,EAAE;gBAChD,IAAI,EAAE,0DAA0D;aACjE,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB,CAAC,QAAgB,EAAE,SAAiB;IAC/D,oBAAoB;IACpB,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAExC,iCAAiC;IACjC,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;IACvD,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAClC,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,KAAK;IACP,IAAI,CAA2D;IAC/D,YAAY,CAGnB;IACO,KAAK,CAA2D;IAChE,IAAI,CAA2D;IAC/D,WAAW,CAGlB;IACO,KAAK,CAA2D;IAChE,UAAU,CAA2D;IACrE,MAAM,CAA2D;IACjE,MAAM,CAA2D;IACjE,MAAM,CAA2D;IACjE,OAAO,CAA2D;IAClE,YAAY,CAGnB;IACO,KAAK,CAA2D;IAChE,IAAI,CAA2D;IAC/D,OAAO,CAA2D;IAClE,MAAM,CAA2D;IACjE,MAAM,CAA2D;IACjE,KAAK,CAA2D;IAChE,QAAQ,CAA2D;IAE3D,YAAY,CAAgC;IAE7D,YAAY,OAAwB;QAClC,0CAA0C;QAC1C,MAAM,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC9C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE9C,6BAA6B;QAC7B,IAAI,CAAC,IAAI,GAAG,cAAc,CACxB,OAAO,EACP,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,cAAc,CAChC,OAAO,EACP,cAAc,EACd,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,cAAc,CACzB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,cAAc,CACxB,OAAO,EACP,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,cAAc,CAC/B,OAAO,EACP,aAAa,EACb,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,CAC3C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,cAAc,CACzB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,cAAc,CAC9B,OAAO,EACP,YAAY,EACZ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAC1C,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,cAAc,CAC3B,OAAO,EACP,SAAS,EACT,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CACvC,CAAC;QACF,IAAI,CAAC,YAAY,GAAG,cAAc,CAChC,OAAO,EACP,cAAc,EACd,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAC5C,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,cAAc,CACzB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,cAAc,CACxB,OAAO,EACP,MAAM,EACN,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CACpC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,cAAc,CAC3B,OAAO,EACP,SAAS,EACT,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CACvC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,cAAc,CAC1B,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CACtC,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,cAAc,CACzB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,cAAc,CAC5B,OAAO,EACP,UAAU,EACV,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CACxC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,UAAU,CAAC,KAAuB;QACxC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;QAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,SAAiB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAwB,CAAC,CAAC;QAChD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAmC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACH,IAAI;QACF,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/C,6BAA6B;YAC7B,IAAI,KAAK,KAAK,UAAU;gBAAE,SAAS;YACnC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,qBAAqB;QACnB,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAE7C,MAAM,UAAU,GAAG;YACjB,MAAM;YACN,cAAc;YACd,OAAO;YACP,MAAM;YACN,aAAa;YACb,OAAO;YACP,YAAY;YACZ,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,cAAc;YACd,OAAO;YACP,MAAM;YACN,SAAS;YACT,QAAQ;YACR,QAAQ;YACR,OAAO;YACP,UAAU;SACF,CAAC;QAEX,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,6CAA6C;YAC7C,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE7C,qEAAqE;YACrE,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACjD,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAChD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAChC,CAAC;YAEF,sEAAsE;YACtE,gFAAgF;YAChF,gFAAgF;YAChF,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,KAAK,CAAC;gBACxC,sEAAsE;gBACtE,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACtC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,yDAAyD;YACzD,QAAQ,CAAC,SAAS,CAAC,GAAG;gBACpB,GAAG,QAAQ;gBACX,iFAAiF;gBACjF,iIAAiI;gBACjI,wGAAwG;gBACxG,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;oBACX,OAAO,EAAE,oBAAoB;oBAC7B,aAAa,EAAE,aAAa;oBAC5B,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC;iBACpC,CAAC;aACH,CAAC;QACJ,CAAC;QAED,oDAAoD;QACpD,QAAQ,CAAC,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAErC,iGAAiG;QACjG,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAEtB,CAAC;QACd,IAAI,SAAS,EAAE,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;QACvD,CAAC;QAED,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAEpB,CAAC;QACd,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,2EAA2E;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAElB,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,OAAO,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,iFAAiF;QACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAEtB,CAAC;QACd,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,SAAS,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,SAAS,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,SAAS,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,SAAS,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,SAAS,CAAC,eAAe,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAEpB,CAAC;QACd,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,QAAQ,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,QAAQ,CAAC,sBAAsB,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YACjE,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,CAE1B,CAAC;QACd,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,WAAW,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,CAAC,yBAAyB,CAAC,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,WAAW,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,WAAW,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,wBAAwB,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,WAAW,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,qGAAqG;QACrG,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAElB,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,cAAc;YACd,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,uBAAuB;YACvB,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YACvD,CAAC;YACD,mBAAmB;YACnB,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YACD,sBAAsB;YACtB,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,QAAQ,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7C,CAAC;YACD,cAAc;YACd,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACjD,CAAC;YACD,uBAAuB;YACvB,IAAI,OAAO,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YACvD,CAAC;YACD,wBAAwB;YACxB,IAAI,OAAO,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,CAAC,qBAAqB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,OAAO,CAAC,wBAAwB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,QAAQ,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;YACzE,CAAC;YACD,aAAa;YACb,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,iGAAiG;QACjG,MAAM,eAAe,GAAG,QAAQ,CAAC,cAAc,CAElC,CAAC;QACd,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,eAAe,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,eAAe,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvD,QAAQ,CAAC,mBAAmB,CAAC,GAAG,eAAe,CAAC,mBAAmB,CAAC,CAAC;YACvE,CAAC;YACD,IAAI,eAAe,CAAC,qBAAqB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzD,QAAQ,CAAC,qBAAqB,CAAC;oBAC7B,eAAe,CAAC,qBAAqB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,eAAe,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1D,QAAQ,CAAC,sBAAsB,CAAC;oBAC9B,eAAe,CAAC,sBAAsB,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,eAAe,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,QAAQ,CAAC,oBAAoB,CAAC,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,eAAe,CAAC,uBAAuB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3D,QAAQ,CAAC,uBAAuB,CAAC;oBAC/B,eAAe,CAAC,uBAAuB,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,eAAe,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,QAAQ,CAAC,oBAAoB,CAAC,GAAG,eAAe,CAAC,oBAAoB,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,6FAA6F;QAC7F,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAEhC,CAAC;QACd,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,sBAAsB;YACtB,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,cAAc,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnD,QAAQ,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAChE,CAAC;YACD,kBAAkB;YAClB,IAAI,cAAc,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC;YACD,+BAA+B;YAC/B,IAAI,cAAc,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzD,QAAQ,CAAC,sBAAsB,CAAC;oBAC9B,cAAc,CAAC,sBAAsB,CAAC,CAAC;YAC3C,CAAC;YACD,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,cAAc,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YAC1D,CAAC;YACD,iBAAiB;YACjB,IAAI,cAAc,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9D,CAAC;YACD,IAAI,cAAc,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,cAAc,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,CAAC,eAAe,CAAC,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,+EAA+E;QAC/E,6FAA6F;QAC7F,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAEpB,CAAC;QACd,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,yBAAyB;YACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC5C,CAAC;YACD,gBAAgB;YAChB,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;YAChD,CAAC;YACD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,aAAa;YACb,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,qBAAqB;YACrB,IAAI,QAAQ,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,QAAQ,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,kBAAkB,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,qGAAqG;QACrG,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAE9B,CAAC;QACd,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,4BAA4B;YAC5B,IAAI,aAAa,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,aAAa,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,QAAQ,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;YACvD,CAAC;YACD,wBAAwB;YACxB,IAAI,aAAa,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnD,QAAQ,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACjE,CAAC;YACD,qBAAqB;YACrB,IAAI,aAAa,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/C,CAAC;YACD,gBAAgB;YAChB,IAAI,aAAa,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,CAAC,CAAC;YAC3D,CAAC;YACD,2BAA2B;YAC3B,IAAI,aAAa,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,aAAa,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrD,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;YACrE,CAAC;YACD,iCAAiC;YACjC,IAAI,aAAa,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAAC,kBAAkB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,aAAa,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxD,QAAQ,CAAC,sBAAsB,CAAC;oBAC9B,aAAa,CAAC,sBAAsB,CAAC,CAAC;YAC1C,CAAC;YACD,mBAAmB;YACnB,IAAI,aAAa,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrD,QAAQ,CAAC,mBAAmB,CAAC,GAAG,aAAa,CAAC,mBAAmB,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,uFAAuF;QACvF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAEtB,CAAC;QACd,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,kBAAkB;YAClB,IAAI,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,WAAW,CAAC,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YACD,kBAAkB;YAClB,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,SAAS,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YACD,kBAAkB;YAClB,IAAI,SAAS,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;YAC/D,CAAC;YACD,qBAAqB;YACrB,IAAI,SAAS,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9C,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,SAAS,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC7D,CAAC;YACD,kBAAkB;YAClB,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC7C,QAAQ,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,0BAA0B;YAChF,CAAC;YACD,wBAAwB;YACxB,IAAI,SAAS,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;gBAC7D,QAAQ,CAAC,wBAAwB,CAAC,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,0BAA0B;YAChG,CAAC;QACH,CAAC;QAED,yFAAyF;QACzF,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAEpB,CAAC;QACd,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,kBAAkB;YAClB,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,QAAQ,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC1C,QAAQ,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;YACD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,sBAAsB;YACtB,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;YAClD,CAAC;YACD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,oFAAoF;QACpF,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAExB,CAAC;QACd,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,YAAY;YACZ,IAAI,UAAU,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,wBAAwB,CAAC,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;YACrE,CAAC;YACD,oBAAoB;YACpB,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YACD,kBAAkB;YAClB,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACzC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,UAAU,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,oBAAoB,CAAC,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACnE,CAAC;YACD,mBAAmB;YACnB,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,QAAQ,CAAC,eAAe,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YACD,IAAI,UAAU,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YACD,IAAI,UAAU,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YAC3D,CAAC;YACD,iCAAiC;YACjC,IAAI,UAAU,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC/C,QAAQ,CAAC,uBAAuB,CAAC,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,UAAU,CAAC,mBAAmB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAClD,QAAQ,CAAC,0BAA0B,CAAC,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,UAAU,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACrD,QAAQ,CAAC,6BAA6B,CAAC;oBACrC,UAAU,CAAC,sBAAsB,CAAC,CAAC;YACvC,CAAC;YACD,iBAAiB;YACjB,IAAI,UAAU,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;gBACjD,QAAQ,CAAC,yBAAyB,CAAC,GAAG,UAAU,CAAC,kBAAkB,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,qFAAqF;QACrF,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAElB,CAAC;QACd,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,YAAY;YACZ,IAAI,OAAO,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7C,QAAQ,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC/D,CAAC;YACD,aAAa;YACb,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAChD,QAAQ,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACrE,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,CAAC,KAAK,SAAS,EAAE,CAAC;gBACxC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACrD,CAAC;YACD,iBAAiB;YACjB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;gBACtC,QAAQ,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,OAAO,CAAC,eAAe,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3C,QAAQ,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC5C,QAAQ,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAwB;IAClD,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
* - Removed redundant alias documentation (already in tool schemas)
|
|
10
10
|
* - Semantic tagging for high-signal guidance
|
|
11
11
|
*/
|
|
12
|
-
export declare const SERVER_INSTRUCTIONS = "# postgres-mcp Code Mode\n\n## \u26A0\uFE0F Critical Gotchas\n\n1. **Transactions**: `pg.transactions.execute({statements: [{sql: \"...\"}]})` auto-commits on success, auto-rollbacks on error. To join existing transaction: `{transactionId: txId, statements: [...]}` (no auto-commit, caller controls)\n2. **pg_write_query**: \u26D4 Throws for SELECT\u2014use `pg_read_query` for SELECT statements\n3. **pg_upsert/pg_create_table**: `schema.table` format auto-parses (e.g., `'myschema.users'` \u2192 schema: 'myschema', table: 'users')\n4. **pg_create_table columns**: `notNull`, `defaultValue` (string literals auto-quoted; numbers/booleans auto-coerced; `now()` \u2192 `CURRENT_TIMESTAMP`), `check`, `references` (object or string `\"table(column)\"` syntax)\n5. **pg_create_table constraints**: `constraints` array only accepts `{type: 'unique'|'check'}`. Primary keys: use `column.primaryKey` or top-level `primaryKey: ['col1', 'col2']`\n6. **pg_create_index expression**: Columns can be expressions like `LOWER(name)` or `UPPER(email)`\u2014auto-detected. \u26A0\uFE0F Cast syntax (`::`) requires raw SQL via `pg_write_query`\n7. **pg_list_objects type**: Use `type` (singular string) or `types` (array). Auto-converts: `{type: 'table'}` \u2261 `{types: ['table']}`\n8. **pg_object_details**: Accepts: `name`, `objectName`, `object`, or `table`. Use `type`/`objectType` for type hint (supports: table, view, materialized_view, partitioned_table, function, sequence, index)\n9. **pg_exists optional WHERE**: `where`/`condition`/`filter` is optional. Without it, checks if table has any rows\n10. **pg_describe_table**: Returns columns, foreignKeys, primaryKey\u2014use `pg_get_indexes` separately for index details\n11. **pg_vector_insert updateExisting**: Uses direct UPDATE (avoids NOT NULL constraint issues vs INSERT mode)\n12. **pg_get_indexes without table**: Returns ALL database indexes (potentially large). Use `table` param for specific table\n13. **pg_upsert/pg_batch_insert RETURNING**: `returning` param must be array of column names: `[\"id\", \"name\"]`. \u26D4 `\"*\"` wildcard not supported\n14. **Small tables**: Optimizer correctly uses Seq Scan for <1000 rows\u2014this is expected behavior\n\n## \uD83D\uDD04 Response Structures\n\n| Tool | Returns | Notes |\n|------|---------|-------|\n| `pg_read_query` | `{rows, rowCount, fields?}` | `fields` contains column metadata (name, dataTypeID) |\n| `pg_write_query` | `{rowsAffected, affectedRows, rows?}` | `rows` only with RETURNING clause. \u26D4 Throws for SELECT |\n| `pg_upsert` | `{operation, rowsAffected, rowCount, rows?}` | `operation: 'insert'|'update'`. `rows` only with RETURNING clause |\n| `pg_batch_insert` | `{rowsAffected, affectedRows, insertedCount, rows?}` | Empty objects use DEFAULT VALUES. \u26A0\uFE0F BIGINT > 2^53 loses precision |\n| `pg_count` | `{count: N}` | Use `params` for placeholders: `where: 'id=$1', params: [5]`. DISTINCT: use `pg_read_query` |\n| `pg_exists` | `{exists: bool, mode, hint?}` | `params` for placeholders. `mode: 'filtered'|'any_rows'` |\n| `pg_get_indexes` | `{indexes, count, totalCount?}` | Default `limit: 100` without `table`. Use `schema`/`limit` to filter. Index objects have `name`, `type`, `columns` |\n| `pg_list_objects` | `{objects, count, totalCount, byType}` | Use `limit` to cap results, `type`/`types` to filter |\n| `pg_object_details` | `{name, schema, type, returnType?, ...}` | Functions: `returnType` alias. Views/Mat. views: `definition` |\n| `pg_analyze_db_health` | `{cacheHitRatio: {ratio, heap, index, status}}` | `ratio` = primary numeric %. `bloat` available |\n| `pg_describe_table` | `{columns, indexes, constraints, foreignKeys}` | Columns include `notNull` (alias for `!nullable`), `foreignKey`. `constraints` includes PK, UNIQUE, CHECK, NOT NULL. \u26A0\uFE0F `rowCount: -1` = no statistics (run ANALYZE) |\n| `pg_analyze_query_indexes` | `{plan, issues, recommendations}` | `verbosity`: 'summary' (default) or 'full'. Summary mode returns condensed plan |\n| `pg_list_tables` | `{tables, count}` | Use `schema` to filter, `limit` to cap results |\n| List operations | `{items, count}` | Access via `result.tables`, `result.views`, etc. |\n| `pg_jsonb_agg groupBy` | `{result: [{group_key, items}], count, grouped: true}` | Without groupBy: `{result: [...], count, grouped: false}` |\n| `pg_vector_aggregate` | `{average_vector, count}` or `{groups: [{group_key, average_vector, count}]}` | Without/with `groupBy` |\n\n## API Mapping\n\n`pg_group_action` \u2192 `pg.group.action()` (group prefixes dropped: `pg_jsonb_extract` \u2192 `pg.jsonb.extract()`)\n\n**Top-Level Core Aliases**: All starter tools available directly: `pg.readQuery()`, `pg.writeQuery()`, `pg.listTables()`, `pg.describeTable()`, `pg.createTable()`, `pg.dropTable()`, `pg.count()`, `pg.exists()`, `pg.upsert()`, `pg.batchInsert()`, `pg.truncate()`, `pg.createIndex()`, `pg.dropIndex()`, `pg.getIndexes()`, `pg.listObjects()`, `pg.objectDetails()`, `pg.listExtensions()`, `pg.analyzeDbHealth()`, `pg.analyzeQueryIndexes()`, `pg.analyzeWorkloadIndexes()`\n\n**Positional args work**: `readQuery(\"SELECT...\")`, `exists(\"users\", \"id=1\")`, `createIndex(\"users\", [\"email\"])`\n\n**Discovery**: `pg.help()` returns `{group: methods[]}` mapping (e.g., `{core: ['readQuery', ...], jsonb: [...]}`). `pg.core.help()`, `pg.jsonb.help()` for group-specific methods.\n\n## Format Auto-Resolution\n\n- **Schema.Table**: `'public.users'` auto-parses to `{schema: 'public', table: 'users'}`\n- **JSONB Paths**: Both `'a.b.c'` (string) and `['a','b','c']` (array) work. Use array for literal dots: `[\"key.with.dots\"]`\n- **Aliases**: Common parameter variations resolve automatically (e.g., `query`/`sql`, `table`/`tableName`)\n\n---\n\n## Vector Tools\n\n\u26A0\uFE0F **Large Vectors**: Direct MCP tool calls may truncate vectors >256 dimensions due to JSON-RPC message size limits. For vectors \u2265256 dimensions (e.g., OpenAI 1536-dim, local 384-dim), use Code Mode: `await pg.vector.search({table, column, vector, limit})`\n\n- `pg_vector_search`: Supports `schema.table` format (auto-parsed). Returns `{results: [...], count, metric}`. Use `select: [\"id\", \"name\"]` to include identifying columns. Without select, only returns distance. `filter` = `where`. \u26A0\uFE0F Vectors read from DB are strings\u2014parse before passing: `vec.replace(/^\\[|\\]$/g, '').split(',').map(Number)`\n- `pg_vector_insert`: Supports `schema.table` format (auto-parsed). Use `updateExisting` + `conflictColumn` + `conflictValue` for UPDATE mode. `additionalColumns` is applied in both INSERT and UPDATE modes\n- `pg_vector_batch_insert`: `vectors` expects `[{vector: [...], data?: {...}}]` objects, not raw arrays\n- `pg_vector_normalize`: Returns `{normalized: [...], magnitude: N}`. Note: `magnitude` is the **original** vector length (not 1)\n- `pg_vector_aggregate`: Supports `schema.table` format (auto-parsed). \u26D4 Validates column is vector type. Returns `{average_vector: {preview, dimensions, truncated}, count}` or `{groups: [{group_key, average_vector, count}]}` with groupBy. \u26A0\uFE0F `groupBy` only supports simple column names (not expressions)\n- `pg_vector_dimension_reduce`: Direct mode returns `{reduced: [...], originalDimensions, targetDimensions}`. Table mode returns `{rows: [{id, original_dimensions, reduced}], processedCount, summarized}`. Default `summarize: true` in table mode returns compact `{preview, dimensions, truncated}` format. Use `summarize: false` for full vectors\n- `pg_vector_distance`: Calculate distance between two vectors. `metric`: 'l2' (default), 'cosine', 'inner_product'. Returns `{distance, metric}`\n- `pg_vector_cluster`: `clusters` = `k`. Returns centroids with `{preview, dimensions, truncated}` format for large vectors (>10 dims)\u2014use `pg_vector_distance` to assign rows\n- `pg_vector_create_index`: Use `type` (or alias `method`) with values 'ivfflat' or 'hnsw'. IVFFlat: `lists` param. HNSW: `m`, `efConstruction` params\n- `pg_vector_performance`: Auto-generates testVector from first row if omitted. Returns `testVectorSource: 'auto-generated'|'user-provided'`\n- `pg_vector_validate`: Returns `{valid: bool, vectorDimensions}`. Empty vector `[]` returns `{valid: true, vectorDimensions: 0}`\n- \u26D4 `pg_vector_embed`: Demo only (hash-based). Use OpenAI/Cohere for production.\n- `pg_hybrid_search`: Supports `schema.table` format (auto-parsed). Combines vector similarity and full-text search with weighted scoring. Code mode alias: `pg.hybridSearch()` \u2192 `pg.vector.hybridSearch()`\n- \uD83D\uDCDD **Error Handling**: Vector tools return `{success: false, error: \"...\", suggestion: \"...\"}` for validation/semantic errors (dimension mismatch, non-vector column, table not found). Check `success` field before processing results.\n\n## JSONB Tools\n\n- `pg_jsonb_extract`: Returns null if path doesn't exist\n- `pg_jsonb_insert`: Index -1 inserts BEFORE last element; use `insertAfter: true` to append. \u26A0\uFE0F Use array format `[-1]` not string `\"[-1]\"` for negative indices\n- `pg_jsonb_set`: `createMissing=true` creates full nested paths; initializes NULL columns to `{}`. Empty path (`''` or `[]`) replaces entire column value\n- `pg_jsonb_strip_nulls`: \u26A0\uFE0F Requires `where`/`filter` clause\u2014write operations must be targeted. Use `preview: true` to see changes first\n- `pg_jsonb_agg`: Supports AS aliases in select: `[\"id\", \"metadata->>'name' AS name\"]`. \u26A0\uFE0F `->>` returns text\u2014use `->` to preserve JSON types\n- `pg_jsonb_object`: Use `data`, `object`, or `pairs` parameter: `{data: {name: \"John\", age: 30}}`. Returns `{object: {...}}`\n- `pg_jsonb_normalize`: `flatten` doesn't descend into arrays; `keys` returns text (use `pairs` for JSON types)\n- `pg_jsonb_stats`: Returns column-level statistics. `topKeysLimit` controls key count (default: 20). \u26A0\uFE0F `typeDistribution` null type = SQL NULL columns (entire column NULL, not JSON `null` literal). Use `sqlNullCount` for explicit count\n- \u26D4 **Object-only tools**: `diff`, `merge`, `keys`, `indexSuggest`, `securityScan`, `stats`\u2014topKeys require JSONB objects, throw descriptive errors for arrays\n- \u26D4 **Array-only tools**: `insert`\u2014requires JSONB arrays, throws errors for objects\n- \uD83D\uDCDD `normalize` modes: `pairs`/`keys`/`flatten` for objects; `array` for arrays\n\n**Top-Level Aliases**: `pg.jsonbExtract()`, `pg.jsonbSet()`, `pg.jsonbInsert()`, `pg.jsonbDelete()`, `pg.jsonbContains()`, `pg.jsonbPathQuery()`, `pg.jsonbAgg()`, `pg.jsonbObject()`, `pg.jsonbArray()`, `pg.jsonbKeys()`, `pg.jsonbStripNulls()`, `pg.jsonbTypeof()`, `pg.jsonbValidatePath()`, `pg.jsonbMerge()`, `pg.jsonbNormalize()`, `pg.jsonbDiff()`, `pg.jsonbIndexSuggest()`, `pg.jsonbSecurityScan()`, `pg.jsonbStats()`\n\n\n## Stats Tools\n\n- All stats tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `timeSeries`: Both `timeColumn` (must be timestamp/date) and `valueColumn` (must be numeric) are validated upfront with clear error messages. Aliases: `time`\u2192`timeColumn`, `value`\u2192`valueColumn`. `interval` accepts: `second`, `minute`, `hour`, `day`, `week`, `month`, `year` (keywords, PostgreSQL format, or plurals). Default `limit: 100` time buckets. Use `limit: 0` for no limit. Returns `truncated` and `totalCount` indicators when default limit is applied. **groupBy payloads**: Default `groupLimit: 20` groups. Returns `truncated` + `totalGroupCount` when groups are limited. Use `groupLimit: 0` for all groups\n- `correlation`: Use `column1`/`column2` or aliases `x`/`y` for column names\n- `distribution`: Returns `skewness`, `kurtosis` (excess). `buckets` must be > 0. **groupBy payloads**: Default `groupLimit: 20` groups (prevents large payloads with many histogram buckets per group). Returns `truncated` + `totalGroupCount` when groups are limited. Use `groupLimit: 0` for all groups\n- `sampling`: Defaults to `random` method with 20 rows (optimized for LLM context). `sampleSize` always takes precedence over `percentage`. \u26A0\uFE0F `percentage` param only works with `bernoulli`/`system` methods\u2014ignored for default `random` method. Default limit of 100 rows applied to `bernoulli`/`system` with `percentage` to prevent large payloads. Returns `truncated` and `totalSampled` when TABLESAMPLE returns more rows than limit\n- `percentiles`: Accepts 0-1 or 0-100 (auto-normalized). \u26A0\uFE0F Use consistent scale\u2014mixing (e.g., `[0.1, 50]`) produces unexpected keys and returns a `warning` field explaining the issue. Empty array \u2192 defaults [0.25, 0.5, 0.75]\n- `hypothesis`: Returns nested `results` object containing `pValue` (two-tailed), `testStatistic`, `interpretation`, `sampleMean`, `sampleStdDev`. Access via `hyp.results.pValue`. Use `populationStdDev` for z-test, otherwise defaults to t-test\n- `regression`: Use `xColumn`/`yColumn`, aliases `x`/`y`, or `column1`/`column2` (for consistency with correlation). Returns nested `regression` object containing `slope`, `intercept`, `rSquared`, `equation`, `avgX`, `avgY`, `sampleSize`. Access via `reg.regression.slope`\n- \u26A0\uFE0F WARNING: `sampling` with `system` method unreliable for small tables\u2014use `bernoulli` or `random`\n\n**Top-Level Aliases**: `pg.descriptive()`, `pg.percentiles()`, `pg.correlation()`, `pg.regression()`, `pg.timeSeries()`, `pg.distribution()`, `pg.hypothesis()`, `pg.sampling()`\n\n## Performance Tools\n\nCore (20 methods): `explain()`, `explainAnalyze()`, `explainBuffers()`, `indexStats()`, `tableStats()`, `statStatements()`, `statActivity()`, `locks()`, `bloatCheck()`, `cacheHitRatio()`, `seqScanTables()`, `indexRecommendations()`, `queryPlanCompare()`, `baseline()`, `connectionPoolOptimize()`, `partitionStrategySuggest()`, `unusedIndexes()`, `duplicateIndexes()`, `vacuumStats()`, `queryPlanStats()`\n\nWrappers (3): `blockingQueries()`\u2192`locks({showBlocked:true})`, `longRunningQueries({ seconds | minDuration }?)` filters by duration (returns `statActivity` format), `analyzeTable({ table })` runs ANALYZE (accepts `schema.table` format)\n\n- `explain({ sql, format?, params? })`: Supports `format: 'text'|'json'|'yaml'|'xml'`. Default: text. Use `params: [value]` for `$1, $2` placeholders\n- `explainAnalyze({ sql, format?, params? })`: Same format/params options as explain\n- `explainBuffers({ sql, params? })`: Always returns JSON format (includes buffer statistics)\n- `indexRecommendations({ sql?, params? })`: Pass `params: [value]` for parameterized queries (e.g., `sql: 'SELECT * FROM orders WHERE id = $1', params: [5]`)\n- `queryPlanCompare({ query1, query2, params1?, params2? })`: Compare two query plans. Use `params1`/`params2` for parameterized queries\n- `partitionStrategySuggest({ table })`: Accepts `schema.table` format (auto-parsed) or separate `table` + `schema` params\n- \u26A0\uFE0F **Data Type Awareness**: Query literals must match column types exactly\u2014`WHERE sensor_id = 1` (integer), not `'sensor_1'` (string)\n\nAliases: `cacheStats`\u2192`cacheHitRatio`, `queryStats`\u2192`statStatements`, `activity`\u2192`statActivity`, `vacuum`\u2192`vacuumStats`, `indexUsage`\u2192`indexStats`, `bloatEstimate`/`bloat`\u2192`bloatCheck`, `runningQueries`\u2192`longRunningQueries`\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: Tools return limited results by default to reduce context size:\n- `indexStats({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `tableStats({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `vacuumStats({ limit? })`: Default 50 rows. Same truncation indicators. Use `limit: 0` for all\n- `statStatements({ limit?, orderBy? })`: Default 20 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `unusedIndexes({ limit?, summary? })`: Default 20 rows. Use `summary: true` for aggregated stats by schema\n- `queryPlanStats({ limit?, truncateQuery? })`: Default 20 rows, queries truncated to 100 chars. Use `truncateQuery: 0` for full text\n\n\uD83D\uDCCD **Code Mode Note**: `pg_performance_baseline` \u2192 `pg.performance.baseline()` (not `performanceBaseline`). `indexRecommendations` accepts `query` alias for `sql`\n\n**Top-Level Aliases**: `pg.explain()`, `pg.explainAnalyze()`, `pg.cacheHitRatio()`, `pg.indexStats()`, `pg.tableStats()`, `pg.indexRecommendations()`, `pg.bloatCheck()`, `pg.vacuumStats()`, `pg.unusedIndexes()`, `pg.duplicateIndexes()`, `pg.seqScanTables()`\n\n## Monitoring Tools\n\nCore: `databaseSize()`, `tableSizes()`, `connectionStats()`, `showSettings()`, `capacityPlanning()`, `uptime()`, `serverVersion()`, `recoveryStatus()`, `replicationStatus()`, `resourceUsageAnalyze()`, `alertThresholdSet()`\n\n- `databaseSize()`: Returns `{bytes: number, size: string}`. Optional `database` param for specific db\n- `tableSizes({ limit?, schema? })`: Default limit 50. Returns `{tables: [...], count, truncated?, totalCount?}`. `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `connectionStats()`: Returns `{byDatabaseAndState, totalConnections: number, maxConnections: number}`\n- `showSettings({ setting?, limit? })`: Default limit 50 when no pattern. Returns `{settings: [...], count, truncated?, totalCount?}`. Accepts `pattern`, `setting`, or `name`. Exact names auto-match; `%` for LIKE patterns\n- `capacityPlanning({days: 90})`: `days` = `projectionDays`. Returns `{current, growth, projection, recommendations}` with numeric fields. \u26D4 Negative days rejected\n- `uptime()`: Returns `{start_time: string, uptime: {days, hours, minutes, seconds, milliseconds}}`\n- `serverVersion()`: Returns `{full_version: string, version: string, version_num: number}`\n- `recoveryStatus()`: Returns `{in_recovery: boolean, last_replay_timestamp: string|null}`\n- `replicationStatus()`: Returns `{role: 'primary'|'replica', replicas: [...]}` for primary, or `{role: 'replica', replay_lag, ...}` for replica\n- `resourceUsageAnalyze()`: Returns `{backgroundWriter, checkpoints, connectionDistribution, bufferUsage, activity, analysis}` with all counts as numbers\n- `alertThresholdSet({metric?: 'connection_usage'})`: Returns recommended thresholds. \u26D4 Invalid metric throws validation error. Valid metrics: connection_usage, cache_hit_ratio, replication_lag, dead_tuples, long_running_queries, lock_wait_time\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: Tools return limited results by default to reduce context size:\n- `tableSizes({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `showSettings({ limit? })`: Default 50 rows when no pattern specified. Use `limit: 0` for all or specify a pattern\n\nAliases: `tables`\u2192`tableSizes`, `connections`\u2192`connectionStats`, `settings`/`config`\u2192`showSettings`, `alerts`/`thresholds`\u2192`alertThresholdSet`\n\n**Top-Level Aliases**: `pg.databaseSize()`, `pg.tableSizes()`, `pg.connectionStats()`, `pg.serverVersion()`, `pg.uptime()`, `pg.showSettings()`, `pg.recoveryStatus()`, `pg.replicationStatus()`, `pg.capacityPlanning()`, `pg.resourceUsageAnalyze()`, `pg.alertThresholdSet()`\n\n## Admin Tools\n\nCore: `vacuum()`, `vacuumAnalyze()`, `analyze()`, `reindex()`, `cluster()`, `setConfig()`, `reloadConf()`, `resetStats()`, `cancelBackend()`, `terminateBackend()`\n\n- All admin tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `vacuum({ table?, full?, analyze?, verbose? })`: Without `table`, vacuums ALL tables. `verbose` output goes to PostgreSQL server logs\n- `reindex({ target, name?, concurrently? })`: Targets: 'table', 'index', 'schema', 'database'. `database` target defaults to current db when `name` omitted\n- `cluster()`: Without args, re-clusters all previously-clustered tables. With args, requires BOTH `table` AND `index`\n- `setConfig({ name, value, isLocal? })`: `isLocal: true` applies only to current transaction\n- `cancelBackend({ pid })`: Graceful query cancellation\u2014returns `{success: false}` for invalid PID (no error thrown)\n- `terminateBackend({ pid })`: Forceful connection termination\u2014use with caution\n\nAliases: `tableName`\u2192`table`, `indexName`\u2192`index`, `param`/`setting`\u2192`name`, `processId`\u2192`pid`\n\n**Top-Level Aliases**: `pg.vacuum()`, `pg.vacuumAnalyze()`, `pg.analyze()`, `pg.reindex()`, `pg.cluster()`, `pg.setConfig()`, `pg.reloadConf()`, `pg.resetStats()`, `pg.cancelBackend()`, `pg.terminateBackend()`\n\n## Backup Tools\n\nCore: `dumpTable()`, `dumpSchema()`, `copyExport()`, `copyImport()`, `createBackupPlan()`, `restoreCommand()`, `physical()`, `restoreValidate()`, `scheduleOptimize()`\n\nResponse Structures:\n- `dumpTable`: `{ddl, type, note, insertStatements?}` \u2014 `insertStatements` only with `includeData: true` (separate field from `ddl`)\n- `copyExport`: `{data, rowCount, truncated?, limit?}` \u2014 `data` contains CSV/text content. `truncated: true` + `limit` when rows returned equals applied limit (indicating more rows likely exist)\n- `copyImport`: `{command, stdinCommand, notes}` \u2014 Both file and stdin COPY commands\n- `createBackupPlan`: `{strategy: {fullBackup, walArchiving}, estimates}`\n- `restoreCommand`: `{command, warnings?, notes}` \u2014 Warnings when `database` omitted\n- `restoreValidate`: `{validationSteps: [{step, name, command?, commands?, note?}], recommendations}` \u2014 Note: `note` field only for pg_dump default type\n- `physical`: `{command, notes, requirements}`\n- `scheduleOptimize`: `{analysis, recommendation, commands}`\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: `copyExport` limits results to 500 rows by default to prevent large payloads. Use `limit: 0` for all rows, or specify a custom limit.\n\n- `pg_copy_export`: Use `query`/`sql` OR `table`. \u26A0\uFE0F If both provided, `query` takes precedence with warning. Supports `schema.table` format (auto-parsed, takes priority over `schema` param). Format: `csv` (default, comma-delimited), `text` (tab-delimited). Both formats support `header: true` (default). \u26D4 `binary` not supported via MCP\u2014use `pg_dump_schema` for binary exports. Default `limit: 500` (use `0` for all rows). Optional `delimiter` to customize\n- `pg_dump_table`: Returns `ddl` + `insertStatements` when `includeData: true`. Supports sequences (`type: 'sequence'`), views (`type: 'view'`), and partitioned tables (`type: 'partitioned_table'` with `PARTITION BY` clause). **PRIMARY KEYS, INDEXES, CONSTRAINTS NOT included**\u2014use `pg_get_indexes`/`pg_get_constraints`. Supports `schema.table` format\n- `pg_dump_schema`: Generates pg_dump command. Optional `schema`, `table`, `filename`\n- `pg_copy_import`: Generates COPY FROM command. Supports `schema.table` format (auto-parsed, takes priority over `schema` param). `columns` array, `filePath`, `format`, `header`, `delimiter`\n- `pg_restore_command`: Include `database` parameter for complete command. Optional `schemaOnly`, `dataOnly`\n- `pg_create_backup_plan`: Generates backup strategy with cron schedule. `frequency`: 'hourly'|'daily'|'weekly', `retention` count\n- `pg_backup_physical`: Generates pg_basebackup command. `format`: 'plain'|'tar', `checkpoint`: 'fast'|'spread', `compress`: 0-9\n- `pg_restore_validate`: Generates validation commands. `backupType`: 'pg_dump' (default)|'pg_basebackup'\n- `pg_backup_schedule_optimize`: Analyzes database activity patterns and recommends optimal backup schedule\n\n**Top-Level Aliases**: `pg.dumpTable()`, `pg.dumpSchema()`, `pg.copyExport()`, `pg.copyImport()`, `pg.createBackupPlan()`, `pg.restoreCommand()`, `pg.restoreValidate()`, `pg.physical()`, `pg.backupPhysical()`, `pg.scheduleOptimize()`, `pg.backupScheduleOptimize()`\n\n## Text Tools\n\nDefaults: `threshold`=0.3 (use 0.1-0.2 for partial), `maxDistance`=3 (use 5+ for longer strings)\n\n- All text tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `pg_text_search`: Supports both `column` (singular string) and `columns` (array). Either is valid\u2014`column` auto-converts to array\n- `pg_trigram_similarity` vs `pg_similarity_search`: Both use pg_trgm. First filters by threshold; second uses set_limit() with %\n- `pg_fuzzy_match`: Levenshtein returns distance (lower=better). Soundex/metaphone return phonetic codes (exact match only). \u26D4 Invalid `method` values throw error with valid options\n- `pg_text_normalize`: Removes accents only (unaccent). Does NOT lowercase/trim\n- \uD83D\uDCCD **Table vs Standalone**: `normalize`, `sentiment`, `toVector`, `toQuery`, `searchConfig` are standalone (text input only). For phonetic matching: use `pg_fuzzy_match` with `method: 'soundex'|'metaphone'` (direct MCP), or `pg.text.soundex()`/`pg.text.metaphone()` (Code Mode convenience wrappers that call fuzzyMatch internally)\n\n**Top-Level Aliases**: `pg.textSearch()`, `pg.textRank()`, `pg.textHeadline()`, `pg.textNormalize()`, `pg.textSentiment()`, `pg.textToVector()`, `pg.textToQuery()`, `pg.textSearchConfig()`, `pg.textTrigramSimilarity()`, `pg.textFuzzyMatch()`, `pg.textLikeSearch()`, `pg.textRegexpMatch()`, `pg.textCreateFtsIndex()`\n\n\n## Schema Tools\n\nCore: `listSchemas()`, `createSchema()`, `dropSchema()`, `listViews()`, `createView()`, `dropView()`, `listSequences()`, `createSequence()`, `dropSequence()`, `listFunctions()`, `listTriggers()`, `listConstraints()`\n\nResponse Structures:\n- `listSchemas()`: `{schemas: string[], count}`\n- `listViews({ includeMaterialized?, truncateDefinition?, limit? })`: `{views: [{schema, name, type, definition, definitionTruncated?}], count, hasMatViews, truncatedDefinitions?, truncated, note?}`. Default `limit: 50` (use `0` for all). Default `truncateDefinition: 500` chars (use `0` for full definitions). `truncated` always included (`true`/`false`)\n- `listSequences({ schema? })`: `{sequences: [{schema, name, owned_by}], count}`. Note: `owned_by` omits `public.` prefix for sequences in public schema (e.g., `users.id` not `public.users.id`)\n- `listFunctions({ schema?, limit?, exclude? })`: `{functions: [{schema, name, arguments, returns, language, volatility}], count, limit, note?}`\n- `listTriggers({ schema?, table? })`: `{triggers: [{schema, table_name, name, timing, events, function_name, enabled}], count}`\n- `listConstraints({ schema?, table?, type? })`: `{constraints: [{schema, table_name, name, type, definition}], count}`. Type codes: `p`=primary_key, `f`=foreign_key, `u`=unique, `c`=check\n- `dropSchema/dropView/dropSequence`: All return `{existed: true/false}` to indicate if object existed before drop\n- `createSchema/createSequence` (with `ifNotExists`) and `createView` (with `orReplace`): Return `{alreadyExisted: true/false}` to indicate if object existed before creation\n\n- `pg_create_view`: Supports `schema.name` format (auto-parsed). Use `orReplace: true` for CREATE OR REPLACE. `checkOption`: 'cascaded', 'local', 'none'. \u26D4 OR REPLACE can add new columns but cannot rename/remove existing ones\u2014PostgreSQL limitation\n- `pg_create_sequence`: Supports `schema.name` format. Parameters: `start`, `increment`, `minValue`, `maxValue`, `cache`, `cycle`, `ownedBy`, `ifNotExists`\n- `pg_list_functions`: Default limit=500. Use `schema: 'public'`, `limit: 2000`, or `exclude: ['postgis']` to filter. \u26A0\uFE0F `exclude` filters by **schema name** AND extension-owned functions. Note: Aggressive `exclude` may return 0 results if all functions belong to excluded extensions\n\n**Discovery**: `pg.schema.help()` returns `{methods: string[], examples: string[]}` object with available methods and usage examples\n\n\n## Partitioning Tools\n\n- `pg_create_partitioned_table`: `partitionBy` case-insensitive. Supports `schema.table` format for `name` (auto-parsed). `primaryKey` accepts array (e.g., `['id', 'event_date']`). \u26D4 `primaryKey`/`unique` must include partition key\u2014throws validation error otherwise\n- `pg_create_partition`: Use `parent`/`table`/`parentTable`. `forValues` is a raw SQL string: `\"FROM ('2024-01-01') TO ('2024-07-01')\"`, `\"IN ('US', 'CA')\"`, `\"WITH (MODULUS 4, REMAINDER 0)\"`. For DEFAULT partition, use `isDefault: true`. Supports `schema.table` format for `parent` (auto-parsed)\n- `pg_attach_partition`/`pg_detach_partition`: Support `schema.table` format for `parent` and `partition` (auto-parsed). For DEFAULT partition, use `isDefault: true` or `forValues: \"DEFAULT\"`\n- `pg_list_partitions`: Default `limit: 50` (use `0` for all). Returns `{partitions, count, truncated, totalCount?}`. Uses `bounds` field (consistent with `pg_partition_info`)\n- `pg_partition_info`: Returns `{tableInfo, partitions, totalSizeBytes}`. Uses `bounds` field\n- Both list/info tools support `schema.table` format (auto-parsed) and accept `table`, `parent`, `parentTable`, or `name` aliases\n- \uD83D\uDCCD Code Mode: `pg.partitioning.create()` = `createPartition`, NOT `createPartitionedTable`\n\n## pg_partman Tools\n\n- `pg_partman_create_parent`: Interval uses PostgreSQL syntax ('1 day', '1 month') NOT keywords ('daily'). `startPartition` accepts 'now' shorthand for current date. Required params: `parentTable`/`table`, `controlColumn`/`control`/`column`, `interval`\n- `pg_partman_run_maintenance`: Without `parentTable`, maintains ALL partition sets. Returns `partial: true` when some tables are skipped. `orphaned` object groups orphaned configs with `count`, `tables`, and cleanup `hint`. `errors` array for other failures\n- `pg_partman_show_config`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `orphaned` flag per config. Supports `schema.table` or plain table name (auto-prefixes `public.`)\n- `pg_partman_show_partitions`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `parentTable` required. Supports `schema.table` format (auto-parsed)\n- `pg_partman_check_default`/`partition_data`: `parentTable` required. Supports `schema.table` format (auto-parsed)\n- `pg_partman_set_retention`: \u26A0\uFE0F **CAUTION: Default is DROP** \u2014 `retentionKeepTable: false` (default) = DROP partitions, `true` = detach only (safer). Pass `retention: null` to disable retention\n- `pg_partman_undo_partition`: `targetTable` MUST exist before calling. Requires both `parentTable` and `targetTable`/`target`\n- `pg_partman_analyze_partition_health`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `summary.overallHealth`: 'healthy'|'warnings'|'issues_found'\n- \uD83D\uDCDD **Schema Resolution**: All partman tools auto-prefix `public.` when no schema specified in `parentTable`\n- \uD83D\uDCDD **Aliases**: `parentTable` accepts `table`, `parent`, `name`. `controlColumn` accepts `control`, `column`. `targetTable` accepts `target`\n\n## pg_stat_kcache Tools\n\nCore: `createExtension()`, `queryStats()`, `topCpu()`, `topIo()`, `databaseStats()`, `resourceAnalysis()`, `reset()`\n\n- `pg_kcache_query_stats`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `orderBy`: 'total_time' (default), 'cpu_time', 'reads', 'writes'. `queryPreviewLength`: chars for query preview (default: 100, max: 500, 0 for full). \u26D4 'calls' NOT valid for orderBy\u2014use `minCalls` param\n- `pg_kcache_resource_analysis`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `minCalls`, `queryPreviewLength` supported. Classifies queries as 'CPU-bound', 'I/O-bound', or 'Balanced'\n- `pg_kcache_top_cpu`: Top CPU-consuming queries. `limit` param (default: 10)\n- `pg_kcache_top_io`: `type`/`ioType` (alias): 'reads', 'writes', 'both' (default). `limit` param (default: 10)\n- `pg_kcache_database_stats`: Aggregated CPU/IO stats per database\n- `pg_kcache_reset`: Resets pg_stat_kcache AND pg_stat_statements statistics\n\n## citext Tools\n\nCore: `createExtension()`, `convertColumn()`, `listColumns()`, `analyzeCandidates()`, `compare()`, `schemaAdvisor()`\n\n- `pg_citext_create_extension`: Enable citext extension (idempotent). Returns `{success, message, usage}`\n- `pg_citext_convert_column`: Supports `schema.table` format (auto-parsed). \u26D4 Only allows text-based columns (text, varchar, character varying)\u2014non-text columns return `{success: false, error, allowedTypes, suggestion}`. When views depend on column, returns `{success: false, dependentViews, hint}`\u2014drop/recreate views manually. `col` alias for `column`. Returns `{previousType}` showing original type\n- `pg_citext_list_columns`: Default `limit: 100` (use `0` for all). Returns `{columns: [{table_schema, table_name, column_name, is_nullable, column_default}], count, totalCount, truncated}`. Optional `schema`, `limit` filters\n- `pg_citext_analyze_candidates`: Default `limit: 50` (use `0` for all). Default `excludeSystemSchemas: true` filters out extension schemas (cron, topology, partman, tiger) when no `schema`/`table` filter specified\u2014use `excludeSystemSchemas: false` to include all. Returns `truncated: true` + `totalCount` when results are limited. Scans tables for TEXT/VARCHAR columns matching common patterns (email, username, name, etc.). Optional `schema`, `table`, `limit`, `excludeSystemSchemas`, `patterns` filters. Returns `{candidates, count, totalCount, truncated, summary: {highConfidence, mediumConfidence}, recommendation, patternsUsed, excludedSchemas?}`\n- `pg_citext_compare`: Test case-insensitive comparison. Returns `{value1, value2, citextEqual, textEqual, lowerEqual, extensionInstalled}`\n- `pg_citext_schema_advisor`: Supports `schema.table` format (auto-parsed). Analyzes specific table. Returns `{table, recommendations: [{column, currentType, previousType?, recommendation, confidence, reason}], summary, nextSteps}`. `tableName` alias for `table`. Already-citext columns include `previousType: \"text or varchar (converted)\"`\n\n**Discovery**: `pg.citext.help()` returns `{methods, methodAliases, examples}` object\n\n## ltree Tools\n\nCore: `createExtension()`, `query()`, `match()`, `subpath()`, `lca()`, `listColumns()`, `convertColumn()`, `createIndex()`\n\n- `pg_ltree_create_extension`: Enable ltree extension (idempotent). Returns `{success, message}`\n- `pg_ltree_query`: Query hierarchical relationships. Supports `schema.table` format (auto-parsed). `mode`/`type`: 'ancestors', 'descendants' (default), 'exact'. Returns `{results, count, path, mode, isPattern}`. \u26A0\uFE0F Validates column is ltree type\u2014returns clear error for non-ltree columns\n- `pg_ltree_match`: Match paths using lquery pattern syntax (`*`, `*{1,2}`, `*.label.*`). Supports `schema.table` format. `pattern`/`lquery`/`query` aliases. Returns `{results, count, pattern}`\n- `pg_ltree_subpath`: Extract portion of ltree path. `offset`/`start`/`from` and `length`/`len` aliases. Negative `offset` counts from end. \u26A0\uFE0F Returns `{success: false, error, pathDepth}` for invalid offset (validated before PostgreSQL call)\n- `pg_ltree_lca`: Find longest common ancestor of multiple paths. Requires `paths` array (min 2). Returns `{longestCommonAncestor, hasCommonAncestor: bool, paths}`\n- `pg_ltree_list_columns`: List all ltree columns in database. Optional `schema` filter. Returns `{columns: [{table_schema, table_name, column_name, is_nullable, column_default}], count}`\n- `pg_ltree_convert_column`: Convert TEXT column to ltree. Supports `schema.table` format. `col` alias for `column`. Returns `{previousType}`. \u26A0\uFE0F When views depend on column, returns `{success: false, dependentViews, hint}`\u2014drop/recreate views manually\n- `pg_ltree_create_index`: Create GiST index on ltree column. Supports `schema.table` format. Auto-generates index name if `indexName` omitted. Returns `{indexName, indexType: 'gist', alreadyExists?}`\n\n**Discovery**: `pg.ltree.help()` returns `{methods, aliases, examples}` object. Top-level aliases available: `pg.ltreeQuery()`, `pg.ltreeMatch()`, etc.\n\n## PostGIS Tools\n\n**Geometry Creation:**\n- `pg_geocode`: Create point geometry from lat/lng. Returns `{geojson, wkt}`. \u26A0\uFE0F Validates bounds: lat \u00B190\u00B0, lng \u00B1180\u00B0\n- `pg_geometry_column`: Add geometry column to table. `ifNotExists` returns `{alreadyExists: true}`\n- `pg_spatial_index`: Create GiST spatial index. Auto-generates name if not provided. `ifNotExists` supported\n\n**Spatial Queries:**\n- `pg_distance`: Find geometries within distance from point. Returns `{results, count}` with `distance_meters`. \u26A0\uFE0F Validates point bounds\n- `pg_bounding_box`: Find geometries within lat/lng bounding box. Use `select` array for specific columns\n- `pg_intersection`: Find geometries intersecting a WKT/GeoJSON geometry. Auto-detects SRID from column\n- `pg_point_in_polygon`: Check if point is within table polygons. Returns `{containingPolygons, count}`. \u26A0\uFE0F Validates point bounds\n\n**Geometry Operations (Table-based):**\n- `pg_buffer`: Create buffer zone around table geometries. Default limit: 50 rows. Default simplify: 10m (set `simplify: 0` to disable). Returns `truncated: true` + `totalCount` when results are truncated. Use `limit: 0` for all rows\n- `pg_geo_transform`: Transform table geometries between SRIDs. Default limit: 50 rows. Returns `truncated: true` + `totalCount` when results are truncated. Use `limit: 0` for all rows. `fromSrid`/`sourceSrid` and `toSrid`/`targetSrid` aliases\n- `pg_geo_cluster`: Spatial clustering (DBSCAN/K-Means). K-Means: If `numClusters` exceeds row count, automatically clamps to available rows with `warning` field. DBSCAN: Returns contextual `hints` array explaining parameter effects (e.g., \"All points formed single cluster\u2014decrease eps\") and `parameterGuide` explaining eps/minPoints trade-offs\n\n**Geometry Operations (Standalone WKT/GeoJSON):**\n- `pg_geometry_buffer`: Create buffer around WKT/GeoJSON. Returns `{buffer_geojson, buffer_wkt, distance_meters}`. Optional `simplify` param (meters) reduces polygon complexity\u2014returns `simplified`, `simplifyTolerance` when applied. \u26A0\uFE0F Returns `warning` if simplify tolerance is too high and geometry collapses to null\n- `pg_geometry_transform`: Transform WKT/GeoJSON between SRIDs. Returns `{transformed_geojson, transformed_wkt, fromSrid, toSrid}`\n- `pg_geometry_intersection`: Compute intersection of two geometries. Returns `{intersects, intersection_geojson, intersection_area_sqm}`. Normalizes SRID (4326) automatically\u2014safe to mix GeoJSON and WKT\n\n**Administration:**\n- `pg_postgis_create_extension`: Enable PostGIS extension (idempotent)\n- `pg_geo_index_optimize`: Analyze spatial indexes. Without `table` param, analyzes all spatial indexes\n\n**Code Mode Aliases:** `pg.postgis.addColumn()` \u2192 `geometryColumn`, `pg.postgis.indexOptimize()` \u2192 `geoIndexOptimize`. Note: `pg.{group}.help()` returns `{methods, aliases, examples}`\n\n## Cron Tools (pg_cron)\n\nCore: `createExtension()`, `schedule()`, `scheduleInDatabase()`, `unschedule()`, `alterJob()`, `listJobs()`, `jobRunDetails()`, `cleanupHistory()`\n\n- `pg_cron_schedule`: Schedule a cron job. `schedule` supports standard cron (`0 5 * * *`) or interval (`1 second` to `59 seconds`). \u26A0\uFE0F Interval syntax only works for 1-59 seconds\u2014for 60+ seconds, use cron syntax (e.g., `* * * * *` for every minute). Use `name`/`jobName` for identification. `command`/`sql`/`query` aliases supported. Note: pg_cron allows duplicate job names; use unique names to avoid confusion when unscheduling\n- `pg_cron_schedule_in_database`: Schedule job in specific database. `database`/`db` aliases. Optional `username`, `active` params\n- `pg_cron_unschedule`: Remove job by `jobId` or `jobName`. If both provided, `jobName` takes precedence (with warning)\n- `pg_cron_alter_job`: Modify existing job. Can change `schedule`, `command`, `database`, `username`, `active`. \u26D4 Non-existent jobId throws error\n- `pg_cron_list_jobs`: List all jobs. Default `limit: 50` (use `0` for all). Optional `active` boolean filter. Returns `truncated` + `totalCount` when limited. Returns `hint` when jobs have no name\n- `pg_cron_job_run_details`: View execution history. Default `limit: 50`. Optional `jobId`, `status` ('running'|'succeeded'|'failed') filters. Returns `truncated` + `totalCount` when limited. Returns `summary` with counts\n- `pg_cron_cleanup_history`: Delete old run records. `olderThanDays`/`days` param (default: 7). Optional `jobId` to target specific job\n- `pg_cron_create_extension`: Enable pg_cron extension (idempotent). Requires superuser\n\n**Discovery**: `pg.cron.help()` returns `{methods, aliases, examples}` object\n\n## pgcrypto Tools\n\nCore: `createExtension()`, `hash()`, `hmac()`, `encrypt()`, `decrypt()`, `genRandomUuid()`, `genRandomBytes()`, `genSalt()`, `crypt()`\n\n- `pg_pgcrypto_create_extension`: Enable pgcrypto extension (idempotent). Returns `{success, message}`\n- `pg_pgcrypto_hash`: Hash data using digest algorithms. `algorithm`: 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'. `encoding`: 'hex' (default), 'base64'. Returns `{hash, algorithm, encoding, inputLength}`\n- `pg_pgcrypto_hmac`: HMAC authentication. Same algorithms as hash. Returns `{hmac, algorithm, encoding}`. `key` param for secret\n- `pg_pgcrypto_encrypt`: PGP symmetric encryption. `data` + `password`/`key` (aliases). Optional `options` for cipher config (e.g., 'cipher-algo=aes256'). Returns `{encrypted, encoding: 'base64'}`\n- `pg_pgcrypto_decrypt`: Decrypt PGP-encrypted data. `encryptedData`/`data` + `password`/`key` (aliases). Returns `{decrypted, verified}`. \u26D4 Throws on wrong key/corrupt data\n- `pg_pgcrypto_gen_random_uuid`: Generate UUID v4. Optional `count` (1-100, default 1). Returns `{uuid, uuids, count}` (`uuid` convenience property for single requests)\n- `pg_pgcrypto_gen_random_bytes`: Generate random bytes. `length` (1-1024). `encoding`: 'hex' (default), 'base64'. Returns `{randomBytes, length, encoding}`\n- `pg_pgcrypto_gen_salt`: Generate salt for crypt(). `type`: 'bf' (bcrypt, recommended), 'md5', 'xdes', 'des'. Optional `iterations` for bf (4-31) or xdes. Returns `{salt, type}`\n- `pg_pgcrypto_crypt`: Hash password with salt. Use stored hash as salt for verification. Returns `{hash, algorithm}`. Verification: `crypt(password, storedHash).hash === storedHash`\n\n**Password Workflow**: 1) `genSalt({type:'bf', iterations:10})` \u2192 2) `crypt({password, salt})` \u2192 store hash \u2192 3) Verify: `crypt({password, salt: storedHash})` and compare hashes\n\n**Top-Level Aliases**: `pg.pgcryptoHash()`, `pg.pgcryptoEncrypt()`, `pg.pgcryptoDecrypt()`, `pg.pgcryptoGenRandomUuid()`, etc.\n\n**Discovery**: `pg.pgcrypto.help()` returns `{methods, aliases, examples}` object\n\n## Code Mode Sandbox\n\nNo `setTimeout`, `setInterval`, `fetch`, or network access. Use `pg.core.readQuery()` for data access.\n\n\uD83D\uDCCA **Metrics Note**: `memoryUsedMb` measures heap delta (end - start). Negative values indicate memory freed during execution (e.g., GC ran).\n\n## Transactions\n\nCore: `begin()`, `commit()`, `rollback()`, `savepoint()`, `rollbackTo()`, `release()`, `execute()`\n\n**Transaction Lifecycle:**\n- `pg_transaction_begin`: Start new transaction. Returns `{transactionId, isolationLevel, message}`. Use `transactionId` for subsequent operations\n- `pg_transaction_commit`: Commit transaction, making all changes permanent. `transactionId`/`tx`/`txId` aliases\n- `pg_transaction_rollback`: Rollback transaction, discarding all changes. `transactionId`/`tx`/`txId` aliases\n\n**Savepoints:**\n- `pg_transaction_savepoint`: Create savepoint within transaction. `name`/`savepoint` + `transactionId`/`tx`/`txId`\n- `pg_transaction_rollback_to`: Rollback to savepoint, restoring database state to when the savepoint was created. \u26A0\uFE0F Undoes ALL work (data changes AND savepoints) created after the target savepoint\n- `pg_transaction_release`: Release savepoint, keeping all changes since it was created. `name`/`savepoint` aliases\n\n**Atomic Execution:**\n- `pg_transaction_execute`: Execute multiple statements atomically. Two modes:\n - **Auto-commit**: Without `transactionId`\u2014auto-commits on success, auto-rollbacks on any error\n - **Join existing**: With `transactionId`/`tx`/`txId`\u2014no auto-commit, caller controls via commit/rollback\n- `statements`: Array of `{sql: \"...\", params?: [...]}` objects. \u26A0\uFE0F Each object MUST have `sql` key\n- `isolationLevel`: Optional isolation level for new transactions ('READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE')\n\n**Response Structures:**\n- `begin`: `{transactionId, isolationLevel: 'READ COMMITTED', message}`\n- `commit/rollback`: `{success, transactionId, message}`\n- `savepoint/release/rollbackTo`: `{success, transactionId, savepoint, message}`\n- `execute`: `{success, statementsExecuted, results: [{sql, rowsAffected, rowCount, rows?}], transactionId?}`\n\n**Discovery**: `pg.transactions.help()` returns `{methods, methodAliases, examples}`";
|
|
12
|
+
export declare const SERVER_INSTRUCTIONS = "# postgres-mcp Code Mode\n\n## \u26A0\uFE0F Critical Gotchas\n\n1. **Transactions**: `pg.transactions.execute({statements: [{sql: \"...\"}]})` auto-commits on success, auto-rollbacks on error. To join existing transaction: `{transactionId: txId, statements: [...]}` (no auto-commit, caller controls)\n2. **pg_write_query**: \u26D4 Throws for SELECT\u2014use `pg_read_query` for SELECT statements\n3. **pg_upsert/pg_create_table**: `schema.table` format auto-parses (e.g., `'myschema.users'` \u2192 schema: 'myschema', table: 'users')\n4. **pg_create_table columns**: `notNull`, `defaultValue` (string literals auto-quoted; numbers/booleans auto-coerced; `now()` \u2192 `CURRENT_TIMESTAMP`), `check`, `references` (object or string `\"table(column)\"` syntax)\n5. **pg_create_table constraints**: `constraints` array only accepts `{type: 'unique'|'check'}`. Primary keys: use `column.primaryKey` or top-level `primaryKey: ['col1', 'col2']`\n6. **pg_create_index expression**: Columns can be expressions like `LOWER(name)` or `UPPER(email)`\u2014auto-detected. \u26A0\uFE0F Cast syntax (`::`) requires raw SQL via `pg_write_query`\n7. **pg_list_objects type**: Use `type` (singular string) or `types` (array). Auto-converts: `{type: 'table'}` \u2261 `{types: ['table']}`\n8. **pg_object_details**: Accepts: `name`, `objectName`, `object`, or `table`. Use `type`/`objectType` for type hint (supports: table, view, materialized_view, partitioned_table, function, sequence, index)\n9. **pg_exists optional WHERE**: `where`/`condition`/`filter` is optional. Without it, checks if table has any rows\n10. **pg_describe_table**: Returns columns, foreignKeys, primaryKey, indexes, constraints. For listing ALL database indexes (not table-specific), use `pg_get_indexes` without `table` param\n11. **pg_vector_insert updateExisting**: Uses direct UPDATE (avoids NOT NULL constraint issues vs INSERT mode)\n12. **pg_get_indexes without table**: Returns ALL database indexes (potentially large). Use `table` param for specific table\n13. **pg_upsert/pg_batch_insert RETURNING**: `returning` param must be array of column names: `[\"id\", \"name\"]`. \u26D4 `\"*\"` wildcard not supported\n14. **Small tables**: Optimizer correctly uses Seq Scan for <1000 rows\u2014this is expected behavior\n\n## \uD83D\uDD04 Response Structures\n\n| Tool | Returns | Notes |\n|------|---------|-------|\n| `pg_read_query` | `{rows, rowCount, fields?}` | `fields` contains column metadata (name, dataTypeID) |\n| `pg_write_query` | `{rowsAffected, affectedRows, rows?}` | `rows` only with RETURNING clause. DDL statements return `rowsAffected: 0`. \u26D4 Throws for SELECT |\n| `pg_upsert` | `{success, operation, rowsAffected, rowCount, rows?}` | `operation: 'insert'|'update'`. `rows` only with RETURNING clause |\n| `pg_batch_insert` | `{rowsAffected, affectedRows, insertedCount, rows?}` | Empty objects use DEFAULT VALUES. \u26A0\uFE0F BIGINT > 2^53 loses precision |\n| `pg_count` | `{count: N}` | Use `params` for placeholders: `where: 'id=$1', params: [5]`. DISTINCT: use `pg_read_query` |\n| `pg_exists` | `{exists: bool, mode, hint?}` | `params` for placeholders. `mode: 'filtered'|'any_rows'` |\n| `pg_get_indexes` | `{indexes, count, totalCount?}` | Default `limit: 100` without `table`. Use `schema`/`limit` to filter. Index objects have `name`, `type`, `columns` |\n| `pg_list_objects` | `{objects, count, totalCount, byType}` | Use `limit` to cap results, `type`/`types` to filter |\n| `pg_object_details` | `{name, schema, type, returnType?, ...}` | Functions: `returnType` alias. Views/Mat. views: `definition` |\n| `pg_analyze_db_health` | `{cacheHitRatio: {ratio, heap, index, status}}` | `ratio` = primary numeric %. `bloat` available |\n| `pg_describe_table` | `{name, schema, type, owner, rowCount, columns, primaryKey, indexes, constraints, foreignKeys}` | Columns include `notNull` (alias for `!nullable`), `foreignKey`. `constraints` includes PK, UNIQUE, CHECK, NOT NULL. \u26A0\uFE0F `rowCount: -1` = stale/missing statistics (run ANALYZE on the table). Small tables (<~50 rows) may show -1 until first ANALYZE |\n| `pg_analyze_query_indexes` | `{plan, issues, recommendations}` | `verbosity`: 'summary' (default) or 'full'. Summary mode returns condensed plan |\n| `pg_list_tables` | `{tables, count}` | Use `schema` to filter, `limit` to cap results, `exclude` to hide extension schemas (e.g., `['cron', 'topology', 'partman']`) |\n| List operations | `{items, count}` | Access via `result.tables`, `result.views`, etc. |\n| `pg_jsonb_agg groupBy` | `{result: [{group_key, items}], count, grouped: true}` | Without groupBy: `{result: [...], count, grouped: false}` |\n| `pg_vector_aggregate` | `{average_vector, count}` or `{groups: [{group_key, average_vector, count}]}` | Without/with `groupBy` |\n| `pg_index_stats` | `{indexes, count, truncated?, totalCount?}` | Default 50 rows. Use `limit: 0` for all |\n| `pg_table_stats` | `{tables, count, truncated?, totalCount?}` | Default 50 rows. Use `limit: 0` for all |\n| `pg_vacuum_stats` | `{tables, count, truncated?, totalCount?}` | Default 50 rows. Use `limit: 0` for all |\n| `pg_stat_statements` | `{statements, count, truncated?, totalCount?}` | Default 20 rows. `orderBy` supported |\n| `pg_query_plan_stats` | `{queryPlanStats, count, truncated?, totalCount?}` | Default 20 rows. `truncateQuery: 0` for full text |\n\n## API Mapping\n\n`pg_group_action` \u2192 `pg.group.action()` (group prefixes dropped: `pg_jsonb_extract` \u2192 `pg.jsonb.extract()`)\n\n**Top-Level Core Aliases**: All starter tools available directly: `pg.readQuery()`, `pg.writeQuery()`, `pg.listTables()`, `pg.describeTable()`, `pg.createTable()`, `pg.dropTable()`, `pg.count()`, `pg.exists()`, `pg.upsert()`, `pg.batchInsert()`, `pg.truncate()`, `pg.createIndex()`, `pg.dropIndex()`, `pg.getIndexes()`, `pg.listObjects()`, `pg.objectDetails()`, `pg.listExtensions()`, `pg.analyzeDbHealth()`, `pg.analyzeQueryIndexes()`, `pg.analyzeWorkloadIndexes()`\n\n**Positional args work**: `readQuery(\"SELECT...\")`, `exists(\"users\", \"id=1\")`, `createIndex(\"users\", [\"email\"])`\n\n**Discovery**: `pg.help()` returns `{group: methods[]}` mapping (e.g., `{core: ['readQuery', ...], jsonb: [...]}`). `pg.core.help()`, `pg.jsonb.help()` for group-specific methods.\n\n## Format Auto-Resolution\n\n- **Schema.Table**: `'public.users'` auto-parses to `{schema: 'public', table: 'users'}`\n- **JSONB Paths**: Both `'a.b.c'` (string) and `['a','b','c']` (array) work. Use array for literal dots: `[\"key.with.dots\"]`\n- **Aliases**: Common parameter variations resolve automatically (e.g., `query`/`sql`, `table`/`tableName`)\n\n---\n\n## Vector Tools\n\n\u26A0\uFE0F **Large Vectors**: Direct MCP tool calls may truncate vectors >256 dimensions due to JSON-RPC message size limits. For vectors \u2265256 dimensions (e.g., OpenAI 1536-dim, local 384-dim), use Code Mode: `await pg.vector.search({table, column, vector, limit})`\n\n- `pg_vector_search`: Supports `schema.table` format (auto-parsed). Returns `{results: [...], count, metric}`. Use `select: [\"id\", \"name\"]` to include identifying columns. Without select, only returns distance. `filter` = `where`. \u26A0\uFE0F Vectors read from DB are strings\u2014parse before passing: `vec.replace(/^\\[|\\]$/g, '').split(',').map(Number)`\n- `pg_vector_insert`: Supports `schema.table` format (auto-parsed). Use `updateExisting` + `conflictColumn` + `conflictValue` for UPDATE mode. `additionalColumns` is applied in both INSERT and UPDATE modes\n- `pg_vector_batch_insert`: `vectors` expects `[{vector: [...], data?: {...}}]` objects, not raw arrays\n- `pg_vector_normalize`: Returns `{normalized: [...], magnitude: N}`. Note: `magnitude` is the **original** vector length (not 1)\n- `pg_vector_aggregate`: Supports `schema.table` format (auto-parsed). \u26D4 Validates column is vector type. Returns `{average_vector: {preview, dimensions, truncated}, count}` or `{groups: [{group_key, average_vector, count}]}` with groupBy. \u26A0\uFE0F `groupBy` only supports simple column names (not expressions)\n- `pg_vector_dimension_reduce`: Direct mode returns `{reduced: [...], originalDimensions, targetDimensions}`. Table mode returns `{rows: [{id, original_dimensions, reduced}], processedCount, summarized}`. Default `summarize: true` in table mode returns compact `{preview, dimensions, truncated}` format. Use `summarize: false` for full vectors\n- `pg_vector_distance`: Calculate distance between two vectors. `metric`: 'l2' (default), 'cosine', 'inner_product'. Returns `{distance, metric}`\n- `pg_vector_cluster`: `clusters` = `k`. Returns centroids with `{preview, dimensions, truncated}` format for large vectors (>10 dims)\u2014use `pg_vector_distance` to assign rows\n- `pg_vector_create_index`: Use `type` (or alias `method`) with values 'ivfflat' or 'hnsw'. IVFFlat: `lists` param. HNSW: `m`, `efConstruction` params\n- `pg_vector_performance`: Auto-generates testVector from first row if omitted. Returns `testVectorSource: 'auto-generated from first row'|'user-provided'`\n- `pg_vector_validate`: Returns `{valid: bool, vectorDimensions}`. Empty vector `[]` returns `{valid: true, vectorDimensions: 0}`\n- \u26D4 `pg_vector_embed`: Demo only (hash-based). Use OpenAI/Cohere for production.\n- `pg_hybrid_search`: Supports `schema.table` format (auto-parsed). Combines vector similarity and full-text search with weighted scoring. `textColumn` auto-detects type: uses tsvector columns directly, wraps text columns with `to_tsvector()`. Code mode alias: `pg.hybridSearch()` \u2192 `pg.vector.hybridSearch()`\n- \uD83D\uDCDD **Error Handling**: Vector tools return `{success: false, error: \"...\", suggestion: \"...\"}` for validation/semantic errors (dimension mismatch, non-vector column, table not found). Check `success` field before processing results.\n\n## JSONB Tools\n\n- `pg_jsonb_extract`: Returns null if path doesn't exist\n- `pg_jsonb_insert`: Index -1 inserts BEFORE last element; use `insertAfter: true` to append. \u26A0\uFE0F Use array format `[-1]` not string `\"[-1]\"` for negative indices\n- `pg_jsonb_set`: `createMissing=true` creates full nested paths; initializes NULL columns to `{}`. Empty path (`''` or `[]`) replaces entire column value\n- `pg_jsonb_strip_nulls`: \u26A0\uFE0F Requires `where`/`filter` clause\u2014write operations must be targeted. Use `preview: true` to see changes first\n- `pg_jsonb_agg`: Supports AS aliases in select: `[\"id\", \"metadata->>'name' AS name\"]`. \u26A0\uFE0F `->>` returns text\u2014use `->` to preserve JSON types\n- `pg_jsonb_object`: Use `data`, `object`, or `pairs` parameter: `{data: {name: \"John\", age: 30}}`. Returns `{object: {...}}`\n- `pg_jsonb_normalize`: `flatten` doesn't descend into arrays; `keys` returns text (use `pairs` for JSON types)\n- `pg_jsonb_stats`: Returns column-level statistics. `topKeysLimit` controls key count (default: 20). \u26A0\uFE0F `typeDistribution` null type = SQL NULL columns (entire column NULL, not JSON `null` literal). Use `sqlNullCount` for explicit count\n- \u26D4 **Object-only tools**: `diff`, `merge`, `keys`, `indexSuggest`, `securityScan`, `stats`\u2014topKeys require JSONB objects, throw descriptive errors for arrays\n- \u26D4 **Array-only tools**: `insert`\u2014requires JSONB arrays, throws errors for objects\n- \uD83D\uDCDD `normalize` modes: `pairs`/`keys`/`flatten` for objects; `array` for arrays\n\n**Top-Level Aliases**: `pg.jsonbExtract()`, `pg.jsonbSet()`, `pg.jsonbInsert()`, `pg.jsonbDelete()`, `pg.jsonbContains()`, `pg.jsonbPathQuery()`, `pg.jsonbAgg()`, `pg.jsonbObject()`, `pg.jsonbArray()`, `pg.jsonbKeys()`, `pg.jsonbStripNulls()`, `pg.jsonbTypeof()`, `pg.jsonbValidatePath()`, `pg.jsonbMerge()`, `pg.jsonbNormalize()`, `pg.jsonbDiff()`, `pg.jsonbIndexSuggest()`, `pg.jsonbSecurityScan()`, `pg.jsonbStats()`\n\n## Stats Tools\n\n- All stats tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `timeSeries`: Both `timeColumn` (must be timestamp/date) and `valueColumn` (must be numeric) are validated upfront with clear error messages. Aliases: `time`\u2192`timeColumn`, `value`\u2192`valueColumn`. `interval` accepts: `second`, `minute`, `hour`, `day`, `week`, `month`, `year` (keywords, PostgreSQL format, or plurals). Default `limit: 100` time buckets. Use `limit: 0` for no limit. Returns `truncated` and `totalCount` indicators when default limit is applied. **groupBy payloads**: Default `groupLimit: 20` groups. Returns `truncated` + `totalGroupCount` when groups are limited. Use `groupLimit: 0` for all groups\n- `correlation`: Use `column1`/`column2` or aliases `x`/`y` for column names\n- `distribution`: Returns `skewness`, `kurtosis` (excess). `buckets` must be > 0. **groupBy payloads**: Default `groupLimit: 20` groups (prevents large payloads with many histogram buckets per group). Returns `truncated` + `totalGroupCount` when groups are limited. Use `groupLimit: 0` for all groups\n- `sampling`: Defaults to `random` method with 20 rows (optimized for LLM context). `sampleSize` always takes precedence over `percentage`. \u26A0\uFE0F `percentage` param only works with `bernoulli`/`system` methods\u2014ignored for default `random` method. Default limit of 100 rows applied to `bernoulli`/`system` with `percentage` to prevent large payloads. Returns `truncated` and `totalSampled` when TABLESAMPLE returns more rows than limit\n- `percentiles`: Accepts 0-1 or 0-100 (auto-normalized). \u26A0\uFE0F Use consistent scale\u2014mixing (e.g., `[0.1, 50]`) produces unexpected keys and returns a `warning` field explaining the issue. Empty array \u2192 defaults [0.25, 0.5, 0.75]\n- `hypothesis`: Returns nested `results` object containing `pValue` (two-tailed), `testStatistic`, `interpretation`, `sampleMean`, `sampleStdDev`. Access via `hyp.results.pValue`. Use `populationStdDev` for z-test, otherwise defaults to t-test\n- `regression`: Use `xColumn`/`yColumn`, aliases `x`/`y`, or `column1`/`column2` (for consistency with correlation). Returns nested `regression` object containing `slope`, `intercept`, `rSquared`, `equation`, `avgX`, `avgY`, `sampleSize`. Access via `reg.regression.slope`\n- \u26A0\uFE0F WARNING: `sampling` with `system` method unreliable for small tables\u2014use `bernoulli` or `random`\n\n**Top-Level Aliases**: `pg.descriptive()`, `pg.percentiles()`, `pg.correlation()`, `pg.regression()`, `pg.timeSeries()`, `pg.distribution()`, `pg.hypothesis()`, `pg.sampling()`\n\n## Performance Tools\n\nCore (20 methods): `explain()`, `explainAnalyze()`, `explainBuffers()`, `indexStats()`, `tableStats()`, `statStatements()`, `statActivity()`, `locks()`, `bloatCheck()`, `cacheHitRatio()`, `seqScanTables()`, `indexRecommendations()`, `queryPlanCompare()`, `baseline()`, `connectionPoolOptimize()`, `partitionStrategySuggest()`, `unusedIndexes()`, `duplicateIndexes()`, `vacuumStats()`, `queryPlanStats()`\n\nWrappers (3): `blockingQueries()`\u2192`locks({showBlocked:true})`, `longRunningQueries({ seconds | minDuration }?)` filters by duration (returns `{longRunningQueries, count, threshold}`), `analyzeTable({ table })` runs ANALYZE (accepts `schema.table` format)\n\n- `explain({ sql, format?, params? })`: Supports `format: 'text'|'json'|'yaml'|'xml'`. Default: text. Use `params: [value]` for `$1, $2` placeholders\n- `explainAnalyze({ sql, format?, params? })`: Same format/params options as explain\n- `explainBuffers({ sql, params? })`: Always returns JSON format (includes buffer statistics)\n- `indexRecommendations({ sql?, params? })`: Pass `params: [value]` for parameterized queries (e.g., `sql: 'SELECT * FROM orders WHERE id = $1', params: [5]`)\n- `queryPlanCompare({ query1, query2, params1?, params2? })`: Compare two query plans. Use `params1`/`params2` for parameterized queries\n- `partitionStrategySuggest({ table })`: Accepts `schema.table` format (auto-parsed) or separate `table` + `schema` params\n- \u26A0\uFE0F **Data Type Awareness**: Query literals must match column types exactly\u2014`WHERE sensor_id = 1` (integer), not `'sensor_1'` (string)\n\nAliases: `cacheStats`\u2192`cacheHitRatio`, `queryStats`\u2192`statStatements`, `activity`\u2192`statActivity`, `vacuum`\u2192`vacuumStats`, `indexUsage`\u2192`indexStats`, `bloatEstimate`/`bloat`\u2192`bloatCheck`, `runningQueries`\u2192`longRunningQueries`\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: Tools return limited results by default to reduce context size:\n- `indexStats({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `tableStats({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `vacuumStats({ limit? })`: Default 50 rows. Same truncation indicators. Use `limit: 0` for all\n- `statStatements({ limit?, orderBy? })`: Default 20 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `unusedIndexes({ limit?, summary? })`: Default 20 rows. Use `summary: true` for aggregated stats by schema\n- `queryPlanStats({ limit?, truncateQuery? })`: Default 20 rows, queries truncated to 100 chars. Use `truncateQuery: 0` for full text\n\n\uD83D\uDCCD **Code Mode Note**: `pg_performance_baseline` \u2192 `pg.performance.baseline()` (not `performanceBaseline`). `indexRecommendations` accepts `query` alias for `sql`\n\n**Top-Level Aliases**: `pg.explain()`, `pg.explainAnalyze()`, `pg.cacheHitRatio()`, `pg.indexStats()`, `pg.tableStats()`, `pg.indexRecommendations()`, `pg.bloatCheck()`, `pg.vacuumStats()`, `pg.unusedIndexes()`, `pg.duplicateIndexes()`, `pg.seqScanTables()`\n\n## Monitoring Tools\n\nCore: `databaseSize()`, `tableSizes()`, `connectionStats()`, `showSettings()`, `capacityPlanning()`, `uptime()`, `serverVersion()`, `recoveryStatus()`, `replicationStatus()`, `resourceUsageAnalyze()`, `alertThresholdSet()`\n\n- `databaseSize()`: Returns `{bytes: number, size: string}`. Optional `database` param for specific db\n- `tableSizes({ limit?, schema? })`: Default limit 50. Returns `{tables: [...], count, truncated?, totalCount?}`. `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `connectionStats()`: Returns `{byDatabaseAndState, totalConnections: number, maxConnections: number}`\n- `showSettings({ setting?, limit? })`: Default limit 50 when no pattern. Returns `{settings: [...], count, truncated?, totalCount?}`. Accepts `pattern`, `setting`, or `name`. Exact names auto-match; `%` for LIKE patterns\n- `capacityPlanning({days: 90})`: `days` = `projectionDays`. Returns `{current, growth, projection, recommendations}` with numeric fields. \u26D4 Negative days rejected\n- `uptime()`: Returns `{start_time: string, uptime: {days, hours, minutes, seconds, milliseconds}}`\n- `serverVersion()`: Returns `{full_version: string, version: string, version_num: number}`\n- `recoveryStatus()`: Returns `{in_recovery: boolean, last_replay_timestamp: string|null}`\n- `replicationStatus()`: Returns `{role: 'primary'|'replica', replicas: [...]}` for primary, or `{role: 'replica', replay_lag, ...}` for replica\n- `resourceUsageAnalyze()`: Returns `{backgroundWriter, checkpoints, connectionDistribution, bufferUsage, activity, analysis}` with all counts as numbers\n- `alertThresholdSet({metric?: 'connection_usage'})`: Returns recommended thresholds. \u26D4 Invalid metric throws validation error. Valid metrics: connection_usage, cache_hit_ratio, replication_lag, dead_tuples, long_running_queries, lock_wait_time\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: Tools return limited results by default to reduce context size:\n- `tableSizes({ limit? })`: Default 50 rows. Returns `truncated: true` + `totalCount` when limited. Use `limit: 0` for all\n- `showSettings({ limit? })`: Default 50 rows when no pattern specified. Use `limit: 0` for all or specify a pattern\n\nAliases: `tables`\u2192`tableSizes`, `connections`\u2192`connectionStats`, `settings`/`config`\u2192`showSettings`, `alerts`/`thresholds`\u2192`alertThresholdSet`\n\n**Top-Level Aliases**: `pg.databaseSize()`, `pg.tableSizes()`, `pg.connectionStats()`, `pg.serverVersion()`, `pg.uptime()`, `pg.showSettings()`, `pg.recoveryStatus()`, `pg.replicationStatus()`, `pg.capacityPlanning()`, `pg.resourceUsageAnalyze()`, `pg.alertThresholdSet()`\n\n## Admin Tools\n\nCore: `vacuum()`, `vacuumAnalyze()`, `analyze()`, `reindex()`, `cluster()`, `setConfig()`, `reloadConf()`, `resetStats()`, `cancelBackend()`, `terminateBackend()`\n\n- All admin tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `vacuum({ table?, full?, analyze?, verbose? })`: Without `table`, vacuums ALL tables. `verbose` output goes to PostgreSQL server logs\n- `reindex({ target, name?, concurrently? })`: Targets: 'table', 'index', 'schema', 'database'. `database` target defaults to current db when `name` omitted\n- `cluster()`: Without args, re-clusters all previously-clustered tables. With args, requires BOTH `table` AND `index`\n- `setConfig({ name, value, isLocal? })`: `isLocal: true` applies only to current transaction\n- `cancelBackend({ pid })`: Graceful query cancellation\u2014returns `{success: false}` for invalid PID (no error thrown)\n- `terminateBackend({ pid })`: Forceful connection termination\u2014use with caution\n\nAliases: `tableName`\u2192`table`, `indexName`\u2192`index`, `param`/`setting`\u2192`name`, `processId`\u2192`pid`\n\n**Top-Level Aliases**: `pg.vacuum()`, `pg.vacuumAnalyze()`, `pg.analyze()`, `pg.reindex()`, `pg.cluster()`, `pg.setConfig()`, `pg.reloadConf()`, `pg.resetStats()`, `pg.cancelBackend()`, `pg.terminateBackend()`\n\n**Discovery**: `pg.admin.help()` returns `{methods, methodAliases, examples}` object\n\n## Backup Tools\n\nCore: `dumpTable()`, `dumpSchema()`, `copyExport()`, `copyImport()`, `createBackupPlan()`, `restoreCommand()`, `physical()`, `restoreValidate()`, `scheduleOptimize()`\n\nResponse Structures:\n- `dumpTable`: `{ddl, type, note, insertStatements?}` \u2014 `insertStatements` only with `includeData: true` (separate field from `ddl`)\n- `copyExport`: `{data, rowCount, truncated?, limit?}` \u2014 `data` contains CSV/text content. `truncated: true` + `limit` when rows returned equals applied limit (indicating more rows likely exist)\n- `copyImport`: `{command, stdinCommand, notes}` \u2014 Both file and stdin COPY commands\n- `createBackupPlan`: `{strategy: {fullBackup, walArchiving}, estimates}`\n- `restoreCommand`: `{command, warnings?, notes}` \u2014 Warnings when `database` omitted\n- `restoreValidate`: `{note?, validationSteps: [{step, name, command?, commands?, note?}], recommendations}` \u2014 Top-level `note` when `backupType` omitted (defaults to pg_dump). Step-level `note` for non-command steps\n- `physical`: `{command, notes, requirements}`\n- `scheduleOptimize`: `{analysis, recommendation, commands}`\n\n\uD83D\uDCE6 **AI-Optimized Payloads**: `copyExport` limits results to 500 rows by default to prevent large payloads. Use `limit: 0` for all rows, or specify a custom limit.\n\n- `pg_copy_export`: Use `query`/`sql` OR `table`. \u26A0\uFE0F If both provided, `query` takes precedence with warning. Supports `schema.table` format (auto-parsed, takes priority over `schema` param). Format: `csv` (default, comma-delimited), `text` (tab-delimited). Both formats support `header: true` (default). \u26D4 `binary` not supported via MCP\u2014use `pg_dump_schema` for binary exports. Default `limit: 500` (use `0` for all rows). Optional `delimiter` to customize\n- `pg_dump_table`: Returns `ddl` + `insertStatements` when `includeData: true`. Supports sequences (`type: 'sequence'`), views (`type: 'view'`), and partitioned tables (`type: 'partitioned_table'` with `PARTITION BY` clause). **PRIMARY KEYS, INDEXES, CONSTRAINTS NOT included**\u2014use `pg_get_indexes`/`pg_get_constraints`. Supports `schema.table` format\n- `pg_dump_schema`: Generates pg_dump command. Optional `schema`, `table`, `filename`\n- `pg_copy_import`: Generates COPY FROM command. Supports `schema.table` format (auto-parsed, takes priority over `schema` param). `columns` array, `filePath`, `format`, `header`, `delimiter`\n- `pg_restore_command`: Include `database` parameter for complete command. Optional `schemaOnly`, `dataOnly`\n- `pg_create_backup_plan`: Generates backup strategy with cron schedule. `frequency`: 'hourly'|'daily'|'weekly', `retention` count\n- `pg_backup_physical`: Generates pg_basebackup command. `format`: 'plain'|'tar' (default: 'tar'), `checkpoint`: 'fast'|'spread', `compress`: 0-9\n- `pg_restore_validate`: Generates validation commands. `backupType`: 'pg_dump' (default)|'pg_basebackup'\n- `pg_backup_schedule_optimize`: Analyzes database activity patterns and recommends optimal backup schedule\n\n**Top-Level Aliases**: `pg.dumpTable()`, `pg.dumpSchema()`, `pg.copyExport()`, `pg.copyImport()`, `pg.createBackupPlan()`, `pg.restoreCommand()`, `pg.restoreValidate()`, `pg.physical()`, `pg.backupPhysical()`, `pg.scheduleOptimize()`, `pg.backupScheduleOptimize()`\n\n## Text Tools\n\nDefaults: `threshold`=0.3 (use 0.1-0.2 for partial), `maxDistance`=3 (use 5+ for longer strings)\n\n- All text tools support `schema.table` format (auto-parsed, embedded schema takes priority over explicit `schema` param)\n- `pg_text_search`: Supports both `column` (singular string) and `columns` (array). Either is valid\u2014`column` auto-converts to array\n- `pg_trigram_similarity`, `pg_fuzzy_match`, `pg_regexp_match`, `pg_like_search`: All default to 100 results to prevent large payloads. Use `limit: 0` for all rows\n- `pg_fuzzy_match`: Levenshtein returns distance (lower=better). Soundex/metaphone return phonetic codes (exact match only). \u26D4 Invalid `method` values throw error with valid options\n- `pg_text_normalize`: Removes accents only (unaccent). Does NOT lowercase/trim\n- \uD83D\uDCCD **Table vs Standalone**: `normalize`, `sentiment`, `toVector`, `toQuery`, `searchConfig` are standalone (text input only). For phonetic matching: use `pg_fuzzy_match` with `method: 'soundex'|'metaphone'` (direct MCP), or `pg.text.soundex()`/`pg.text.metaphone()` (Code Mode convenience wrappers that call fuzzyMatch internally)\n\n**Top-Level Aliases**: `pg.textSearch()`, `pg.textRank()`, `pg.textHeadline()`, `pg.textNormalize()`, `pg.textSentiment()`, `pg.textToVector()`, `pg.textToQuery()`, `pg.textSearchConfig()`, `pg.textTrigramSimilarity()`, `pg.textFuzzyMatch()`, `pg.textLikeSearch()`, `pg.textRegexpMatch()`, `pg.textCreateFtsIndex()`\n\n## Schema Tools\n\nCore: `listSchemas()`, `createSchema()`, `dropSchema()`, `listViews()`, `createView()`, `dropView()`, `listSequences()`, `createSequence()`, `dropSequence()`, `listFunctions()`, `listTriggers()`, `listConstraints()`\n\nResponse Structures:\n- `listSchemas()`: `{schemas: string[], count}`\n- `listViews({ includeMaterialized?, truncateDefinition?, limit? })`: `{views: [{schema, name, type, definition, definitionTruncated?}], count, hasMatViews, truncatedDefinitions?, truncated, note?}`. Default `limit: 50` (use `0` for all). Default `truncateDefinition: 500` chars (use `0` for full definitions). `truncated` always included (`true`/`false`)\n- `listSequences({ schema? })`: `{sequences: [{schema, name, owned_by}], count}`. Note: `owned_by` omits `public.` prefix for sequences in public schema (e.g., `users.id` not `public.users.id`)\n- `listFunctions({ schema?, limit?, exclude? })`: `{functions: [{schema, name, arguments, returns, language, volatility}], count, limit}`\n- `listTriggers({ schema?, table? })`: `{triggers: [{schema, table_name, name, timing, events, function_name, enabled}], count}`\n- `listConstraints({ schema?, table?, type? })`: `{constraints: [{schema, table_name, name, type, definition}], count}`. Type codes: `p`=primary_key, `f`=foreign_key, `u`=unique, `c`=check\n- `dropSchema/dropView/dropSequence`: All return `{existed: true/false}` to indicate if object existed before drop\n- `createSchema/createSequence` (with `ifNotExists`) and `createView` (with `orReplace`): Return `{alreadyExisted: true/false}` when the flag is set. Without `ifNotExists`/`orReplace`, the field is omitted\n\n- `pg_create_view`: Supports `schema.name` format (auto-parsed). Use `orReplace: true` for CREATE OR REPLACE. `checkOption`: 'cascaded', 'local', 'none'. \u26D4 OR REPLACE can add new columns but cannot rename/remove existing ones\u2014PostgreSQL limitation\n- `pg_create_sequence`: Supports `schema.name` format. Parameters: `start`, `increment`, `minValue`, `maxValue`, `cache`, `cycle`, `ownedBy`, `ifNotExists`\n- `pg_list_functions`: Default limit=500. Use `schema: 'public'`, `limit: 2000`, or `exclude: ['postgis', 'pg_trgm', 'ltree', 'citext', 'fuzzystrmatch', 'pg_stat_statements', 'hypopg', 'unaccent', 'pg_stat_kcache', 'pgcrypto', 'partman']` to filter. \u26A0\uFE0F `exclude` filters by **schema name** AND extension-owned functions. The `language` filter does NOT exclude extension functions\u2014use `exclude` alongside `language` for clean results. Note: Aggressive `exclude` may return 0 results if all functions belong to excluded extensions\n\n**Discovery**: `pg.schema.help()` returns `{methods, methodAliases, examples}` object\n\n## Partitioning Tools\n\n- `pg_create_partitioned_table`: `partitionBy` case-insensitive. Supports `schema.table` format for `name` (auto-parsed). `primaryKey` accepts array (e.g., `['id', 'event_date']`). \u26D4 `primaryKey`/`unique` must include partition key\u2014throws validation error otherwise\n- `pg_create_partition`: Use `parent`/`table`/`parentTable`. `forValues` is a raw SQL string: `\"FROM ('2024-01-01') TO ('2024-07-01')\"`, `\"IN ('US', 'CA')\"`, `\"WITH (MODULUS 4, REMAINDER 0)\"`. For DEFAULT partition, use `isDefault: true`. Supports `schema.table` format for `parent` (auto-parsed)\n- `pg_attach_partition`/`pg_detach_partition`: Support `schema.table` format for `parent` and `partition` (auto-parsed). For DEFAULT partition, use `isDefault: true` or `forValues: \"DEFAULT\"`\n- `pg_list_partitions`: Default `limit: 50` (use `0` for all). Returns `{partitions, count, truncated, totalCount?}`. Uses `bounds` field (consistent with `pg_partition_info`)\n- `pg_partition_info`: Returns `{tableInfo, partitions, totalSizeBytes}`. Uses `bounds` field\n- Both list/info tools support `schema.table` format (auto-parsed) and accept `table`, `parent`, `parentTable`, or `name` aliases\n- \uD83D\uDCCD Code Mode: `pg.partitioning.create()` = `createPartition`, NOT `createPartitionedTable`\n\n## pg_partman Tools\n\n- `pg_partman_create_parent`: Interval uses PostgreSQL syntax ('1 day', '1 month') NOT keywords ('daily'). `startPartition` accepts 'now' shorthand for current date. Required params: `parentTable`/`table`, `controlColumn`/`control`/`column`, `interval`\n- `pg_partman_run_maintenance`: Without `parentTable`, maintains ALL partition sets. Returns `partial: true` when some tables are skipped. `orphaned` object groups orphaned configs with `count`, `tables`, and cleanup `hint`. `errors` array for other failures\n- `pg_partman_show_config`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `orphaned` flag per config. Supports `schema.table` or plain table name (auto-prefixes `public.`)\n- `pg_partman_show_partitions`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `parentTable` required. Supports `schema.table` format (auto-parsed)\n- `pg_partman_check_default`/`partition_data`: `parentTable` required. Supports `schema.table` format (auto-parsed)\n- `pg_partman_set_retention`: \u26A0\uFE0F **CAUTION: Default is DROP** \u2014 `retentionKeepTable: false` (default) = DROP partitions, `true` = detach only (safer). Pass `retention: null` to disable retention\n- `pg_partman_undo_partition`: `targetTable` MUST exist before calling. Requires both `parentTable` and `targetTable`/`target`. \u26A0\uFE0F Parent table and child partitions remain after undo\u2014use `DROP TABLE parent CASCADE` to clean up\n- `pg_partman_analyze_partition_health`: Default `limit: 50` (use `0` for all). Returns `truncated` + `totalCount` when limited. `summary.overallHealth`: 'healthy'|'warnings'|'issues_found'\n- \uD83D\uDCDD **Schema Resolution**: All partman tools auto-prefix `public.` when no schema specified in `parentTable`\n- \uD83D\uDCDD **Aliases**: `parentTable` accepts `table`, `parent`, `name`. `controlColumn` accepts `control`, `column`. `targetTable` accepts `target`\n\n## pg_stat_kcache Tools\n\nCore: `createExtension()`, `queryStats()`, `topCpu()`, `topIo()`, `databaseStats()`, `resourceAnalysis()`, `reset()`\n\n- `pg_kcache_query_stats`: Default `limit: 20` (use `0` for all). Returns `truncated` + `totalCount` when limited. `orderBy`: 'total_time' (default), 'cpu_time', 'reads', 'writes'. `queryPreviewLength`: chars for query preview (default: 100, max: 500, 0 for full). \u26D4 'calls' NOT valid for orderBy\u2014use `minCalls` param\n- `pg_kcache_resource_analysis`: Default `limit: 20` (use `0` for all). Returns `truncated` + `totalCount` when limited. `minCalls`, `queryPreviewLength` supported. Classifies queries as 'CPU-bound', 'I/O-bound', or 'Balanced'\n- `pg_kcache_top_cpu`: Top CPU-consuming queries. `limit` param (default: 10). `queryPreviewLength`: chars for query preview (default: 100, max: 500, 0 for full). Returns `truncated` + `totalCount` when limited\n- `pg_kcache_top_io`: `type`/`ioType` (alias): 'reads', 'writes', 'both' (default). `limit` param (default: 10). `queryPreviewLength`: chars for query preview (default: 100, max: 500, 0 for full). Returns `truncated` + `totalCount` when limited\n- `pg_kcache_database_stats`: Aggregated CPU/IO stats per database. Optional `database` param to filter specific db\n- `pg_kcache_reset`: Resets pg_stat_kcache AND pg_stat_statements statistics\n\n## citext Tools\n\nCore: `createExtension()`, `convertColumn()`, `listColumns()`, `analyzeCandidates()`, `compare()`, `schemaAdvisor()`\n\n- `pg_citext_create_extension`: Enable citext extension (idempotent). Returns `{success, message, usage}`\n- `pg_citext_convert_column`: Supports `schema.table` format (auto-parsed). \u26D4 Only allows text-based columns (text, varchar, character varying)\u2014non-text columns return `{success: false, error, allowedTypes, suggestion}`. When views depend on column, returns `{success: false, dependentViews, hint}`\u2014drop/recreate views manually. `col` alias for `column`. Returns `{previousType}` showing original type\n- `pg_citext_list_columns`: Default `limit: 100` (use `0` for all). Returns `{columns: [{table_schema, table_name, column_name, is_nullable, column_default}], count, totalCount, truncated}`. Optional `schema`, `limit` filters\n- `pg_citext_analyze_candidates`: Default `limit: 50` (use `0` for all). Default `excludeSystemSchemas: true` filters out extension schemas (cron, topology, partman, tiger) when no `schema`/`table` filter specified\u2014use `excludeSystemSchemas: false` to include all. Returns `truncated: true` + `totalCount` when results are limited. Scans tables for TEXT/VARCHAR columns matching common patterns (email, username, name, etc.). Optional `schema`, `table`, `limit`, `excludeSystemSchemas`, `patterns` filters. Returns `{candidates, count, totalCount, truncated, summary: {highConfidence, mediumConfidence}, recommendation, patternsUsed, excludedSchemas?}`\n- `pg_citext_compare`: Test case-insensitive comparison. Returns `{value1, value2, citextEqual, textEqual, lowerEqual, extensionInstalled}`\n- `pg_citext_schema_advisor`: Supports `schema.table` format (auto-parsed). Analyzes specific table. Returns `{table, recommendations: [{column, currentType, previousType?, recommendation, confidence, reason}], summary, nextSteps}`. `tableName` alias for `table`. Already-citext columns include `previousType: \"text or varchar (converted)\"`\n\n**Discovery**: `pg.citext.help()` returns `{methods, methodAliases, examples}` object\n\n## ltree Tools\n\nCore: `createExtension()`, `query()`, `match()`, `subpath()`, `lca()`, `listColumns()`, `convertColumn()`, `createIndex()`\n\n- `pg_ltree_create_extension`: Enable ltree extension (idempotent). Returns `{success, message}`\n- `pg_ltree_query`: Query hierarchical relationships. Supports `schema.table` format (auto-parsed). `mode`/`type`: 'ancestors', 'descendants' (default), 'exact'. Returns `{results, count, path, mode, isPattern}`. \u26A0\uFE0F Validates column is ltree type\u2014returns clear error for non-ltree columns\n- `pg_ltree_match`: Match paths using lquery pattern syntax (`*`, `*{1,2}`, `*.label.*`). Supports `schema.table` format. `pattern`/`lquery`/`query` aliases. Returns `{results, count, pattern}`\n- `pg_ltree_subpath`: Extract portion of ltree path. `offset`/`start`/`from` and `length`/`len` aliases. Negative `offset` counts from end. \u26A0\uFE0F Returns `{success: false, error, pathDepth}` for invalid offset (validated before PostgreSQL call)\n- `pg_ltree_lca`: Find longest common ancestor of multiple paths. Requires `paths` array (min 2). Returns `{longestCommonAncestor, hasCommonAncestor: bool, paths}`\n- `pg_ltree_list_columns`: List all ltree columns in database. Optional `schema` filter. Returns `{columns: [{table_schema, table_name, column_name, is_nullable, column_default}], count}`\n- `pg_ltree_convert_column`: Convert TEXT column to ltree. Supports `schema.table` format. `col` alias for `column`. Returns `{previousType}`. \u26A0\uFE0F When views depend on column, returns `{success: false, dependentViews, hint}`\u2014drop/recreate views manually\n- `pg_ltree_create_index`: Create GiST index on ltree column. Supports `schema.table` format. Auto-generates index name if `indexName` omitted. Returns `{indexName, indexType: 'gist', alreadyExists?}`\n\n**Discovery**: `pg.ltree.help()` returns `{methods, methodAliases, examples}` object. Top-level aliases available: `pg.ltreeQuery()`, `pg.ltreeMatch()`, etc.\n\n## PostGIS Tools\n\n**Geometry Creation:**\n- `pg_geocode`: Create point geometry from lat/lng. Returns `{geojson, wkt}`. \u26A0\uFE0F Validates bounds: lat \u00B190\u00B0, lng \u00B1180\u00B0\n- `pg_geometry_column`: Add geometry column to table. `ifNotExists` returns `{alreadyExists: true}`\n- `pg_spatial_index`: Create GiST spatial index. Auto-generates name if not provided. `ifNotExists` supported\n\n**Spatial Queries:**\n- `pg_distance`: Find geometries within distance from point. Returns `{results, count}` with `distance_meters`. \u26A0\uFE0F Validates point bounds\n- `pg_bounding_box`: Find geometries within lat/lng bounding box. Use `select` array for specific columns\n- `pg_intersection`: Find geometries intersecting a WKT/GeoJSON geometry. Auto-detects SRID from column\n- `pg_point_in_polygon`: Check if point is within table polygons. Returns `{containingPolygons, count}`. \u26A0\uFE0F Validates point bounds\n\n**Geometry Operations (Table-based):**\n- `pg_buffer`: Create buffer zone around table geometries. Default limit: 50 rows. Default simplify: 10m (set `simplify: 0` to disable). Returns `truncated: true` + `totalCount` when results are truncated. Use `limit: 0` for all rows\n- `pg_geo_transform`: Transform table geometries between SRIDs. Default limit: 50 rows. Returns `truncated: true` + `totalCount` when results are truncated. Use `limit: 0` for all rows. Auto-detects `fromSrid` from column metadata if not provided (returns `autoDetectedSrid: true`). `fromSrid`/`sourceSrid` and `toSrid`/`targetSrid` aliases\n- `pg_geo_cluster`: Spatial clustering (DBSCAN/K-Means). K-Means: If `numClusters` exceeds row count, automatically clamps to available rows with `warning` field. DBSCAN: Returns contextual `hints` array explaining parameter effects (e.g., \"All points formed single cluster\u2014decrease eps\") and `parameterGuide` explaining eps/minPoints trade-offs\n\n**Geometry Operations (Standalone WKT/GeoJSON):**\n- `pg_geometry_buffer`: Create buffer around WKT/GeoJSON. Returns `{buffer_geojson, buffer_wkt, distance_meters}`. Optional `simplify` param (meters) reduces polygon complexity\u2014returns `simplified`, `simplifyTolerance` when applied. \u26A0\uFE0F Returns `warning` if simplify tolerance is too high and geometry collapses to null\n- `pg_geometry_transform`: Transform WKT/GeoJSON between SRIDs. Returns `{transformed_geojson, transformed_wkt, fromSrid, toSrid}`\n- `pg_geometry_intersection`: Compute intersection of two geometries. Returns `{intersects, intersection_geojson, intersection_area_sqm}`. Normalizes SRID (4326) automatically\u2014safe to mix GeoJSON and WKT\n\n**Administration:**\n- `pg_postgis_create_extension`: Enable PostGIS extension (idempotent)\n- `pg_geo_index_optimize`: Analyze spatial indexes. Without `table` param, analyzes all spatial indexes\n\n**Code Mode Aliases:** `pg.postgis.addColumn()` \u2192 `geometryColumn`, `pg.postgis.indexOptimize()` \u2192 `geoIndexOptimize`, `pg.postgis.geoCluster()` \u2192 `pg_geo_cluster`, `pg.postgis.geoTransform()` \u2192 `pg_geo_transform`. Note: `pg.{group}.help()` returns `{methods, methodAliases, examples}`\n\n## Cron Tools (pg_cron)\n\nCore: `createExtension()`, `schedule()`, `scheduleInDatabase()`, `unschedule()`, `alterJob()`, `listJobs()`, `jobRunDetails()`, `cleanupHistory()`\n\n- `pg_cron_schedule`: Schedule a cron job. `schedule` supports standard cron (`0 5 * * *`) or interval (`1 second` to `59 seconds`). \u26A0\uFE0F Interval syntax only works for 1-59 seconds\u2014for 60+ seconds, use cron syntax (e.g., `* * * * *` for every minute). Use `name`/`jobName` for identification. `command`/`sql`/`query` aliases supported. Note: pg_cron allows duplicate job names; use unique names to avoid confusion when unscheduling\n- `pg_cron_schedule_in_database`: Schedule job in specific database. `database`/`db` aliases. Optional `username`, `active` params\n- `pg_cron_unschedule`: Remove job by `jobId` or `jobName`. If both provided, `jobName` takes precedence (with warning)\n- `pg_cron_alter_job`: Modify existing job. Can change `schedule`, `command`, `database`, `username`, `active`. \u26D4 Non-existent jobId throws error\n- `pg_cron_list_jobs`: List all jobs. Default `limit: 50` (use `0` for all). Optional `active` boolean filter. Returns `truncated` + `totalCount` when limited. Returns `hint` when jobs have no name\n- `pg_cron_job_run_details`: View execution history. Default `limit: 50`. Optional `jobId`, `status` ('running'|'succeeded'|'failed') filters. Returns `truncated` + `totalCount` when limited. Returns `summary` with counts\n- `pg_cron_cleanup_history`: Delete old run records. `olderThanDays`/`days` param (default: 7). Optional `jobId` to target specific job\n- `pg_cron_create_extension`: Enable pg_cron extension (idempotent). Requires superuser\n\n**Discovery**: `pg.cron.help()` returns `{methods, methodAliases, examples}` object\n\n## pgcrypto Tools\n\nCore: `createExtension()`, `hash()`, `hmac()`, `encrypt()`, `decrypt()`, `genRandomUuid()`, `genRandomBytes()`, `genSalt()`, `crypt()`\n\n- `pg_pgcrypto_create_extension`: Enable pgcrypto extension (idempotent). Returns `{success, message}`\n- `pg_pgcrypto_hash`: Hash data using digest algorithms. `algorithm`: 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'. `encoding`: 'hex' (default), 'base64'. Returns `{hash, algorithm, encoding, inputLength}`\n- `pg_pgcrypto_hmac`: HMAC authentication. Same algorithms as hash. Returns `{hmac, algorithm, encoding}`. `key` param for secret\n- `pg_pgcrypto_encrypt`: PGP symmetric encryption. `data` + `password`/`key` (aliases). Optional `options` for cipher config (e.g., 'cipher-algo=aes256'). Returns `{encrypted, encoding: 'base64'}`\n- `pg_pgcrypto_decrypt`: Decrypt PGP-encrypted data. `encryptedData`/`data` + `password`/`key` (aliases). Returns `{decrypted, verified}`. \u26D4 Throws on wrong key/corrupt data\n- `pg_pgcrypto_gen_random_uuid`: Generate UUID v4. Optional `count` (1-100, default 1). Returns `{uuid, uuids, count}` (`uuid` convenience property for single requests)\n- `pg_pgcrypto_gen_random_bytes`: Generate random bytes. `length` (1-1024). `encoding`: 'hex' (default), 'base64'. Returns `{randomBytes, length, encoding}`\n- `pg_pgcrypto_gen_salt`: Generate salt for crypt(). `type`: 'bf' (bcrypt, recommended), 'md5', 'xdes', 'des'. Optional `iterations` for bf (4-31) or xdes. Returns `{salt, type}`\n- `pg_pgcrypto_crypt`: Hash password with salt. Use stored hash as salt for verification. Returns `{hash, algorithm}`. Verification: `crypt(password, storedHash).hash === storedHash`\n\n**Password Workflow**: 1) `genSalt({type:'bf', iterations:10})` \u2192 2) `crypt({password, salt})` \u2192 store hash \u2192 3) Verify: `crypt({password, salt: storedHash})` and compare hashes\n\n**Top-Level Aliases**: `pg.pgcryptoHash()`, `pg.pgcryptoEncrypt()`, `pg.pgcryptoDecrypt()`, `pg.pgcryptoGenRandomUuid()`, etc.\n\n**Discovery**: `pg.pgcrypto.help()` returns `{methods, methodAliases, examples}` object\n\n## Code Mode Sandbox\n\nNo `setTimeout`, `setInterval`, `fetch`, or network access. Use `pg.core.readQuery()` for data access.\n\n\uD83D\uDCCA **Metrics Note**: `memoryUsedMb` measures heap delta (end - start). Negative values indicate memory freed during execution (e.g., GC ran).\n\n## Transactions\n\nCore: `begin()`, `commit()`, `rollback()`, `savepoint()`, `rollbackTo()`, `release()`, `execute()`\n\n**Transaction Lifecycle:**\n- `pg_transaction_begin`: Start new transaction. Returns `{transactionId, isolationLevel, message}`. Use `transactionId` for subsequent operations\n- `pg_transaction_commit`: Commit transaction, making all changes permanent. `transactionId`/`tx`/`txId` aliases\n- `pg_transaction_rollback`: Rollback transaction, discarding all changes. `transactionId`/`tx`/`txId` aliases\n\n**Savepoints:**\n- `pg_transaction_savepoint`: Create savepoint within transaction. `name`/`savepoint` + `transactionId`/`tx`/`txId`\n- `pg_transaction_rollback_to`: Rollback to savepoint, restoring database state to when the savepoint was created. \u26A0\uFE0F Undoes ALL work (data changes AND savepoints) created after the target savepoint\n- `pg_transaction_release`: Release savepoint, keeping all changes since it was created. `name`/`savepoint` aliases\n\n**Atomic Execution:**\n- `pg_transaction_execute`: Execute multiple statements atomically. Two modes:\n - **Auto-commit**: Without `transactionId`\u2014auto-commits on success, auto-rollbacks on any error\n - **Join existing**: With `transactionId`/`tx`/`txId`\u2014no auto-commit, caller controls via commit/rollback\n- `statements`: Array of `{sql: \"...\", params?: [...]}` objects. \u26A0\uFE0F Each object MUST have `sql` key\n- `isolationLevel`: Optional isolation level for new transactions ('READ COMMITTED', 'REPEATABLE READ', 'SERIALIZABLE')\n\n**Response Structures:**\n- `begin`: `{transactionId, isolationLevel: 'READ COMMITTED', message}`\n- `commit/rollback`: `{success, transactionId, message}`\n- `savepoint/release/rollbackTo`: `{success, transactionId, savepoint, message}`\n- `execute`: `{success, statementsExecuted, results: [{sql, rowsAffected, rowCount, rows?}], transactionId?}`\n\n**Discovery**: `pg.transactions.help()` returns `{methods, methodAliases, examples}`";
|
|
13
13
|
//# sourceMappingURL=ServerInstructions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"ServerInstructions.d.ts","sourceRoot":"","sources":["../../src/constants/ServerInstructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,gs8CAkZyD,CAAC"}
|