latticesql 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -61766,6 +61766,44 @@ async function reconcileCloudMemberAccess(db) {
61766
61766
  );
61767
61767
  }
61768
61768
  }
61769
+ const memberSystemGrants = [
61770
+ ["_lattice_gui_meta", "SELECT, INSERT, UPDATE"],
61771
+ ["_lattice_gui_column_meta", "SELECT, INSERT, UPDATE"],
61772
+ ["_lattice_gui_audit", "SELECT, INSERT"],
61773
+ ["__lattice_user_identity", "SELECT, INSERT, UPDATE"]
61774
+ ];
61775
+ for (const [tbl, privs] of memberSystemGrants) {
61776
+ await runAsyncOrSync(
61777
+ db.adapter,
61778
+ `DO $LATTICE$ BEGIN
61779
+ IF to_regclass('${tbl}') IS NOT NULL THEN
61780
+ EXECUTE 'GRANT ${privs} ON "${tbl}" TO ${MEMBER_GROUP}';
61781
+ END IF;
61782
+ END $LATTICE$`
61783
+ );
61784
+ }
61785
+ try {
61786
+ await runAsyncOrSync(
61787
+ db.adapter,
61788
+ `GRANT EXECUTE ON FUNCTION json_extract(text, text), strftime(text, text) TO ${MEMBER_GROUP}`
61789
+ );
61790
+ } catch (err) {
61791
+ console.warn(
61792
+ "[reconcileCloudMemberAccess] could not grant EXECUTE on polyfills (will retry next open):",
61793
+ err instanceof Error ? err.message : String(err)
61794
+ );
61795
+ }
61796
+ for (const table of registered) {
61797
+ if (table.startsWith("__lattice_") || table.startsWith("_lattice_")) continue;
61798
+ const cols = db.getRegisteredColumns(table);
61799
+ if (cols && !("deleted_at" in cols)) {
61800
+ const q3 = `"${table.replace(/"/g, '""')}"`;
61801
+ await runAsyncOrSync(
61802
+ db.adapter,
61803
+ `ALTER TABLE ${q3} ADD COLUMN IF NOT EXISTS "deleted_at" TEXT`
61804
+ );
61805
+ }
61806
+ }
61769
61807
  }
61770
61808
  async function secureNewCloudTable(db, table, pk) {
61771
61809
  if (db.getDialect() !== "postgres") return;
@@ -61791,14 +61829,6 @@ async function secureCloud(db) {
61791
61829
  await secureNewCloudTable(db, table, db.getPrimaryKey(table));
61792
61830
  }
61793
61831
  await reconcileCloudMemberAccess(db);
61794
- await runAsyncOrSync(
61795
- db.adapter,
61796
- `DO $LATTICE$ BEGIN
61797
- IF to_regclass('__lattice_user_identity') IS NOT NULL THEN
61798
- EXECUTE 'GRANT SELECT, INSERT, UPDATE ON "__lattice_user_identity" TO ${MEMBER_GROUP}';
61799
- END IF;
61800
- END $LATTICE$`
61801
- );
61802
61832
  }
61803
61833
 
61804
61834
  // src/gui/meta-gen.ts
@@ -67783,7 +67813,7 @@ function printHelp() {
67783
67813
  );
67784
67814
  }
67785
67815
  function getVersion() {
67786
- if (true) return "3.3.2";
67816
+ if (true) return "3.3.3";
67787
67817
  try {
67788
67818
  const pkgPath = new URL("../package.json", import.meta.url).pathname;
67789
67819
  const pkg = JSON.parse(readFileSync18(pkgPath, "utf-8"));
package/dist/index.cjs CHANGED
@@ -54016,6 +54016,44 @@ async function reconcileCloudMemberAccess(db) {
54016
54016
  );
54017
54017
  }
54018
54018
  }
54019
+ const memberSystemGrants = [
54020
+ ["_lattice_gui_meta", "SELECT, INSERT, UPDATE"],
54021
+ ["_lattice_gui_column_meta", "SELECT, INSERT, UPDATE"],
54022
+ ["_lattice_gui_audit", "SELECT, INSERT"],
54023
+ ["__lattice_user_identity", "SELECT, INSERT, UPDATE"]
54024
+ ];
54025
+ for (const [tbl, privs] of memberSystemGrants) {
54026
+ await runAsyncOrSync(
54027
+ db.adapter,
54028
+ `DO $LATTICE$ BEGIN
54029
+ IF to_regclass('${tbl}') IS NOT NULL THEN
54030
+ EXECUTE 'GRANT ${privs} ON "${tbl}" TO ${MEMBER_GROUP}';
54031
+ END IF;
54032
+ END $LATTICE$`
54033
+ );
54034
+ }
54035
+ try {
54036
+ await runAsyncOrSync(
54037
+ db.adapter,
54038
+ `GRANT EXECUTE ON FUNCTION json_extract(text, text), strftime(text, text) TO ${MEMBER_GROUP}`
54039
+ );
54040
+ } catch (err) {
54041
+ console.warn(
54042
+ "[reconcileCloudMemberAccess] could not grant EXECUTE on polyfills (will retry next open):",
54043
+ err instanceof Error ? err.message : String(err)
54044
+ );
54045
+ }
54046
+ for (const table of registered) {
54047
+ if (table.startsWith("__lattice_") || table.startsWith("_lattice_")) continue;
54048
+ const cols = db.getRegisteredColumns(table);
54049
+ if (cols && !("deleted_at" in cols)) {
54050
+ const q3 = `"${table.replace(/"/g, '""')}"`;
54051
+ await runAsyncOrSync(
54052
+ db.adapter,
54053
+ `ALTER TABLE ${q3} ADD COLUMN IF NOT EXISTS "deleted_at" TEXT`
54054
+ );
54055
+ }
54056
+ }
54019
54057
  }
54020
54058
  async function secureNewCloudTable(db, table, pk) {
54021
54059
  if (db.getDialect() !== "postgres") return;
@@ -54041,14 +54079,6 @@ async function secureCloud(db) {
54041
54079
  await secureNewCloudTable(db, table, db.getPrimaryKey(table));
54042
54080
  }
54043
54081
  await reconcileCloudMemberAccess(db);
54044
- await runAsyncOrSync(
54045
- db.adapter,
54046
- `DO $LATTICE$ BEGIN
54047
- IF to_regclass('__lattice_user_identity') IS NOT NULL THEN
54048
- EXECUTE 'GRANT SELECT, INSERT, UPDATE ON "__lattice_user_identity" TO ${MEMBER_GROUP}';
54049
- END IF;
54050
- END $LATTICE$`
54051
- );
54052
54082
  }
54053
54083
 
54054
54084
  // src/index.ts
package/dist/index.js CHANGED
@@ -53829,6 +53829,44 @@ async function reconcileCloudMemberAccess(db) {
53829
53829
  );
53830
53830
  }
53831
53831
  }
53832
+ const memberSystemGrants = [
53833
+ ["_lattice_gui_meta", "SELECT, INSERT, UPDATE"],
53834
+ ["_lattice_gui_column_meta", "SELECT, INSERT, UPDATE"],
53835
+ ["_lattice_gui_audit", "SELECT, INSERT"],
53836
+ ["__lattice_user_identity", "SELECT, INSERT, UPDATE"]
53837
+ ];
53838
+ for (const [tbl, privs] of memberSystemGrants) {
53839
+ await runAsyncOrSync(
53840
+ db.adapter,
53841
+ `DO $LATTICE$ BEGIN
53842
+ IF to_regclass('${tbl}') IS NOT NULL THEN
53843
+ EXECUTE 'GRANT ${privs} ON "${tbl}" TO ${MEMBER_GROUP}';
53844
+ END IF;
53845
+ END $LATTICE$`
53846
+ );
53847
+ }
53848
+ try {
53849
+ await runAsyncOrSync(
53850
+ db.adapter,
53851
+ `GRANT EXECUTE ON FUNCTION json_extract(text, text), strftime(text, text) TO ${MEMBER_GROUP}`
53852
+ );
53853
+ } catch (err) {
53854
+ console.warn(
53855
+ "[reconcileCloudMemberAccess] could not grant EXECUTE on polyfills (will retry next open):",
53856
+ err instanceof Error ? err.message : String(err)
53857
+ );
53858
+ }
53859
+ for (const table of registered) {
53860
+ if (table.startsWith("__lattice_") || table.startsWith("_lattice_")) continue;
53861
+ const cols = db.getRegisteredColumns(table);
53862
+ if (cols && !("deleted_at" in cols)) {
53863
+ const q3 = `"${table.replace(/"/g, '""')}"`;
53864
+ await runAsyncOrSync(
53865
+ db.adapter,
53866
+ `ALTER TABLE ${q3} ADD COLUMN IF NOT EXISTS "deleted_at" TEXT`
53867
+ );
53868
+ }
53869
+ }
53832
53870
  }
53833
53871
  async function secureNewCloudTable(db, table, pk) {
53834
53872
  if (db.getDialect() !== "postgres") return;
@@ -53854,14 +53892,6 @@ async function secureCloud(db) {
53854
53892
  await secureNewCloudTable(db, table, db.getPrimaryKey(table));
53855
53893
  }
53856
53894
  await reconcileCloudMemberAccess(db);
53857
- await runAsyncOrSync(
53858
- db.adapter,
53859
- `DO $LATTICE$ BEGIN
53860
- IF to_regclass('__lattice_user_identity') IS NOT NULL THEN
53861
- EXECUTE 'GRANT SELECT, INSERT, UPDATE ON "__lattice_user_identity" TO ${MEMBER_GROUP}';
53862
- END IF;
53863
- END $LATTICE$`
53864
- );
53865
53895
  }
53866
53896
 
53867
53897
  // src/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latticesql",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "Persistent structured memory for AI agent systems — pluggable SQLite or Postgres backend, LLM context bridge",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",