@ai-matrx/records 0.97.4 → 0.97.6

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/{client-C6_v0Jnq.d.ts → client-B1PjSTav.d.ts} +1 -1
  3. package/dist/{client-BSe721CI.d.cts → client-ijtYioVl.d.cts} +1 -1
  4. package/dist/core/index.cjs +53 -1
  5. package/dist/core/index.cjs.map +1 -1
  6. package/dist/core/index.d.cts +3 -3
  7. package/dist/core/index.d.ts +3 -3
  8. package/dist/core/index.js +53 -1
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/data/index.cjs +53 -1
  11. package/dist/data/index.cjs.map +1 -1
  12. package/dist/data/index.d.cts +2 -2
  13. package/dist/data/index.d.ts +2 -2
  14. package/dist/data/index.js +53 -1
  15. package/dist/data/index.js.map +1 -1
  16. package/dist/{declareTable-B6ps9KX8.d.cts → declareTable-BE423RBb.d.cts} +1 -1
  17. package/dist/{declareTable-C_ZguQb4.d.ts → declareTable-W3aD-9fQ.d.ts} +1 -1
  18. package/dist/{doors-DEvCdeYB.d.cts → doors-Bopr9YVf.d.cts} +52 -5
  19. package/dist/{doors-DnHM_tkC.d.ts → doors-DfHUqP7j.d.ts} +52 -5
  20. package/dist/questions/index.d.cts +2 -2
  21. package/dist/questions/index.d.ts +2 -2
  22. package/dist/react/index.cjs +53 -1
  23. package/dist/react/index.cjs.map +1 -1
  24. package/dist/react/index.d.cts +32 -4
  25. package/dist/react/index.d.ts +32 -4
  26. package/dist/react/index.js +53 -1
  27. package/dist/react/index.js.map +1 -1
  28. package/dist/scopes/index.cjs +53 -1
  29. package/dist/scopes/index.cjs.map +1 -1
  30. package/dist/scopes/index.d.cts +2 -2
  31. package/dist/scopes/index.d.ts +2 -2
  32. package/dist/scopes/index.js +53 -1
  33. package/dist/scopes/index.js.map +1 -1
  34. package/dist/setup/index.cjs +53 -1
  35. package/dist/setup/index.cjs.map +1 -1
  36. package/dist/setup/index.d.cts +2 -2
  37. package/dist/setup/index.d.ts +2 -2
  38. package/dist/setup/index.js +53 -1
  39. package/dist/setup/index.js.map +1 -1
  40. package/dist/typed-table/index.cjs +53 -1
  41. package/dist/typed-table/index.cjs.map +1 -1
  42. package/dist/typed-table/index.d.cts +3 -3
  43. package/dist/typed-table/index.d.ts +3 -3
  44. package/dist/typed-table/index.js +53 -1
  45. package/dist/typed-table/index.js.map +1 -1
  46. package/dist/views/index.d.cts +2 -2
  47. package/dist/views/index.d.ts +2 -2
  48. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { R as RecordsClient } from './client-BSe721CI.cjs';
1
+ import { R as RecordsClient } from './client-ijtYioVl.cjs';
2
2
  import { a as FieldTypeWord, N as NewFieldDeclaration } from './field-CSNfZsJ3.cjs';
3
3
  import { U as Uuid, a as RecordsError } from './record-fC6s1Xc8.cjs';
4
4
  import { F as FieldDrift } from './table-kind-CzaNpjv1.cjs';
@@ -1,4 +1,4 @@
1
- import { R as RecordsClient } from './client-C6_v0Jnq.js';
1
+ import { R as RecordsClient } from './client-B1PjSTav.js';
2
2
  import { a as FieldTypeWord, N as NewFieldDeclaration } from './field-Do135FdJ.js';
3
3
  import { U as Uuid, a as RecordsError } from './record-fC6s1Xc8.js';
4
4
  import { F as FieldDrift } from './table-kind-DT5EYraJ.js';
@@ -191,9 +191,41 @@ interface ScopePage {
191
191
  total: number;
192
192
  next_offset: number | null;
193
193
  }
194
- /** A System Context item (`context.system_context_item`), as `custom.context_system_items` answers it. */
195
- interface SystemContextItem {
196
- [key: string]: unknown;
194
+ /**
195
+ * The pseudo scope-type id a System Context field carries. System Context (what is simply TRUE on the
196
+ * platform) has no scope type; its fields share this sentinel so a holder can keep them beside a
197
+ * type's fields. A client-side key only — a binding to one of these carries `scope_type_id: null`.
198
+ */
199
+ declare const SYSTEM_CONTEXT_TYPE_ID = "__system__";
200
+ /** What a System Context item is: a curated fact, an ambient fact of the moment, or a dataset. */
201
+ type SystemContextItemClass = "curated" | "ambient" | "dataset" | (string & {});
202
+ /**
203
+ * A System Context item (`custom.context_system_items`), as a `ContextField` of the
204
+ * `SYSTEM_CONTEXT_TYPE_ID` pseudo-type, plus its class.
205
+ */
206
+ interface SystemContextField extends ContextField {
207
+ item_class: SystemContextItemClass | null;
208
+ }
209
+ /** One column of a table template. */
210
+ interface TableTemplateField {
211
+ field_name: string;
212
+ display_name: string;
213
+ data_type: string;
214
+ field_order: number;
215
+ is_required: boolean;
216
+ }
217
+ /**
218
+ * A table template (a `custom.template` of kind `table`) a scope's dataset field may lock its
219
+ * table's columns to: the organization's own or a platform one, as `custom.table_templates` answers it.
220
+ */
221
+ interface TableTemplate {
222
+ id: Uuid;
223
+ organization_id: Uuid | null;
224
+ name: string;
225
+ description: string;
226
+ version: number;
227
+ is_platform: boolean;
228
+ fields: TableTemplateField[];
197
229
  }
198
230
  /** One scope template of the gallery, as `custom.context_templates` answers it. */
199
231
  interface ScopeTemplate {
@@ -380,6 +412,19 @@ declare const FILE_KERNEL_ID = "11111111-0000-4000-8000-000000000006";
380
412
  /** What a Field holds, as a person thinks of it. */
381
413
  declare function contextFieldKind(doc: Pick<StoreFieldDoc, "type" | "multi" | "format" | "display_format" | "config" | "relation_target">, carried?: StoreCarried | null): ContextFieldKind;
382
414
  declare function contextFieldFromStore(row: StoreItemRow): ContextField;
415
+ /** A System Context item, as `custom.context_system_items` answers it (the door's own words). */
416
+ interface StoreSystemItemRow {
417
+ id?: string | null;
418
+ key?: string | null;
419
+ display_name?: string | null;
420
+ description?: string | null;
421
+ item_class?: string | null;
422
+ value_type?: string | null;
423
+ sensitivity?: string | null;
424
+ sort_order?: number | null;
425
+ }
426
+ /** A System Context item as a field of the `SYSTEM_CONTEXT_TYPE_ID` pseudo-type, with its class. */
427
+ declare function systemContextFieldFromStore(row: StoreSystemItemRow, index: number): SystemContextField;
383
428
  /** A reference / document cell's targets, with the names and files the door gave this caller. */
384
429
  declare function referencesOf(row: Pick<StoreValueRow, "value" | "field" | "labels" | "files">): ContextReference[];
385
430
  /** One cell, as a `ContextValue` (its whole text not yet read — see `completeWholeValues`). */
@@ -448,7 +493,9 @@ interface ScopeDoors {
448
493
  /** Of these scope ids, the ones that are ARCHIVED scopes of this type. */
449
494
  archivedScopesOfType(organizationId: Uuid, scopeTypeId: Uuid, wanted: ReadonlySet<Uuid>): Promise<RecordsResult<ArchivedScope[]>>;
450
495
  /** The System Context items (not scopes: the platform's own ambient context). */
451
- systemItems(): Promise<RecordsResult<SystemContextItem[]>>;
496
+ systemItems(): Promise<RecordsResult<SystemContextField[]>>;
497
+ /** The table templates an organization's scope dataset fields may use (its own and the platform's). */
498
+ tableTemplates(organizationId: Uuid): Promise<RecordsResult<TableTemplate[]>>;
452
499
  /** The scope templates of the gallery. */
453
500
  templates(): Promise<RecordsResult<ScopeTemplate[]>>;
454
501
  /** A new scope type in `organizationId`. */
@@ -486,4 +533,4 @@ interface ScopeDoors {
486
533
  }
487
534
  declare function createScopeDoors(call: ScopeDoorCall): ScopeDoors;
488
535
 
489
- export { ARCHIVED_SCOPES_PAGE as A, type StoreWholeValue as B, type ContextValue as C, type SystemContextItem as D, completeWholeValues as E, FILE_KERNEL_ID as F, contextFieldFromStore as G, contextFieldKind as H, INCOMPLETE_SAVE_REFUSAL as I, contextValueFromStore as J, createScopeDoors as K, incompleteSaveRefusal as L, referenceFence as M, referencesOf as N, scopeFromStore as O, scopeTypeFromStore as P, scopeWithTypeFromStore as Q, type ReadContextFileText as R, type Scope as S, TYPE_SCOPES_PAGE as T, settingFromStore as U, type ContextField as a, type ContextFieldKind as b, type ContextReference as c, type ArchivedScope as d, type ArchivedScopeType as e, CONTEXT_FIELD_KINDS as f, type ContextFieldSpec as g, type ContextPolicy as h, type ContextSensitivity as i, type ContextValueWrite as j, type ContextValueWritten as k, type IncompleteValue as l, SCOPES_PER_CALL as m, SCOPES_PER_VALUES_CALL as n, SCOPE_TYPES_PER_FIELDS_CALL as o, type ScopeDoorCall as p, type ScopeDoors as q, type ScopePage as r, type ScopeSpec as s, type ScopeTemplate as t, type ScopeType as u, type ScopeTypeLabel as v, type ScopeTypeSkeleton as w, type ScopeTypeSpec as x, type ScopeTypeWithScopes as y, type ScopeWithType as z };
536
+ export { ARCHIVED_SCOPES_PAGE as A, type ScopeWithType as B, type ContextValue as C, type StoreSystemItemRow as D, type StoreWholeValue as E, FILE_KERNEL_ID as F, type SystemContextField as G, type SystemContextItemClass as H, INCOMPLETE_SAVE_REFUSAL as I, type TableTemplate as J, type TableTemplateField as K, completeWholeValues as L, contextFieldFromStore as M, contextFieldKind as N, contextValueFromStore as O, createScopeDoors as P, incompleteSaveRefusal as Q, type ReadContextFileText as R, type Scope as S, TYPE_SCOPES_PAGE as T, referenceFence as U, referencesOf as V, scopeFromStore as W, scopeTypeFromStore as X, scopeWithTypeFromStore as Y, settingFromStore as Z, systemContextFieldFromStore as _, type ContextField as a, type ContextFieldKind as b, type ContextReference as c, type ArchivedScope as d, type ArchivedScopeType as e, CONTEXT_FIELD_KINDS as f, type ContextFieldSpec as g, type ContextPolicy as h, type ContextSensitivity as i, type ContextValueWrite as j, type ContextValueWritten as k, type IncompleteValue as l, SCOPES_PER_CALL as m, SCOPES_PER_VALUES_CALL as n, SCOPE_TYPES_PER_FIELDS_CALL as o, SYSTEM_CONTEXT_TYPE_ID as p, type ScopeDoorCall as q, type ScopeDoors as r, type ScopePage as s, type ScopeSpec as t, type ScopeTemplate as u, type ScopeType as v, type ScopeTypeLabel as w, type ScopeTypeSkeleton as x, type ScopeTypeSpec as y, type ScopeTypeWithScopes as z };
@@ -191,9 +191,41 @@ interface ScopePage {
191
191
  total: number;
192
192
  next_offset: number | null;
193
193
  }
194
- /** A System Context item (`context.system_context_item`), as `custom.context_system_items` answers it. */
195
- interface SystemContextItem {
196
- [key: string]: unknown;
194
+ /**
195
+ * The pseudo scope-type id a System Context field carries. System Context (what is simply TRUE on the
196
+ * platform) has no scope type; its fields share this sentinel so a holder can keep them beside a
197
+ * type's fields. A client-side key only — a binding to one of these carries `scope_type_id: null`.
198
+ */
199
+ declare const SYSTEM_CONTEXT_TYPE_ID = "__system__";
200
+ /** What a System Context item is: a curated fact, an ambient fact of the moment, or a dataset. */
201
+ type SystemContextItemClass = "curated" | "ambient" | "dataset" | (string & {});
202
+ /**
203
+ * A System Context item (`custom.context_system_items`), as a `ContextField` of the
204
+ * `SYSTEM_CONTEXT_TYPE_ID` pseudo-type, plus its class.
205
+ */
206
+ interface SystemContextField extends ContextField {
207
+ item_class: SystemContextItemClass | null;
208
+ }
209
+ /** One column of a table template. */
210
+ interface TableTemplateField {
211
+ field_name: string;
212
+ display_name: string;
213
+ data_type: string;
214
+ field_order: number;
215
+ is_required: boolean;
216
+ }
217
+ /**
218
+ * A table template (a `custom.template` of kind `table`) a scope's dataset field may lock its
219
+ * table's columns to: the organization's own or a platform one, as `custom.table_templates` answers it.
220
+ */
221
+ interface TableTemplate {
222
+ id: Uuid;
223
+ organization_id: Uuid | null;
224
+ name: string;
225
+ description: string;
226
+ version: number;
227
+ is_platform: boolean;
228
+ fields: TableTemplateField[];
197
229
  }
198
230
  /** One scope template of the gallery, as `custom.context_templates` answers it. */
199
231
  interface ScopeTemplate {
@@ -380,6 +412,19 @@ declare const FILE_KERNEL_ID = "11111111-0000-4000-8000-000000000006";
380
412
  /** What a Field holds, as a person thinks of it. */
381
413
  declare function contextFieldKind(doc: Pick<StoreFieldDoc, "type" | "multi" | "format" | "display_format" | "config" | "relation_target">, carried?: StoreCarried | null): ContextFieldKind;
382
414
  declare function contextFieldFromStore(row: StoreItemRow): ContextField;
415
+ /** A System Context item, as `custom.context_system_items` answers it (the door's own words). */
416
+ interface StoreSystemItemRow {
417
+ id?: string | null;
418
+ key?: string | null;
419
+ display_name?: string | null;
420
+ description?: string | null;
421
+ item_class?: string | null;
422
+ value_type?: string | null;
423
+ sensitivity?: string | null;
424
+ sort_order?: number | null;
425
+ }
426
+ /** A System Context item as a field of the `SYSTEM_CONTEXT_TYPE_ID` pseudo-type, with its class. */
427
+ declare function systemContextFieldFromStore(row: StoreSystemItemRow, index: number): SystemContextField;
383
428
  /** A reference / document cell's targets, with the names and files the door gave this caller. */
384
429
  declare function referencesOf(row: Pick<StoreValueRow, "value" | "field" | "labels" | "files">): ContextReference[];
385
430
  /** One cell, as a `ContextValue` (its whole text not yet read — see `completeWholeValues`). */
@@ -448,7 +493,9 @@ interface ScopeDoors {
448
493
  /** Of these scope ids, the ones that are ARCHIVED scopes of this type. */
449
494
  archivedScopesOfType(organizationId: Uuid, scopeTypeId: Uuid, wanted: ReadonlySet<Uuid>): Promise<RecordsResult<ArchivedScope[]>>;
450
495
  /** The System Context items (not scopes: the platform's own ambient context). */
451
- systemItems(): Promise<RecordsResult<SystemContextItem[]>>;
496
+ systemItems(): Promise<RecordsResult<SystemContextField[]>>;
497
+ /** The table templates an organization's scope dataset fields may use (its own and the platform's). */
498
+ tableTemplates(organizationId: Uuid): Promise<RecordsResult<TableTemplate[]>>;
452
499
  /** The scope templates of the gallery. */
453
500
  templates(): Promise<RecordsResult<ScopeTemplate[]>>;
454
501
  /** A new scope type in `organizationId`. */
@@ -486,4 +533,4 @@ interface ScopeDoors {
486
533
  }
487
534
  declare function createScopeDoors(call: ScopeDoorCall): ScopeDoors;
488
535
 
489
- export { ARCHIVED_SCOPES_PAGE as A, type StoreWholeValue as B, type ContextValue as C, type SystemContextItem as D, completeWholeValues as E, FILE_KERNEL_ID as F, contextFieldFromStore as G, contextFieldKind as H, INCOMPLETE_SAVE_REFUSAL as I, contextValueFromStore as J, createScopeDoors as K, incompleteSaveRefusal as L, referenceFence as M, referencesOf as N, scopeFromStore as O, scopeTypeFromStore as P, scopeWithTypeFromStore as Q, type ReadContextFileText as R, type Scope as S, TYPE_SCOPES_PAGE as T, settingFromStore as U, type ContextField as a, type ContextFieldKind as b, type ContextReference as c, type ArchivedScope as d, type ArchivedScopeType as e, CONTEXT_FIELD_KINDS as f, type ContextFieldSpec as g, type ContextPolicy as h, type ContextSensitivity as i, type ContextValueWrite as j, type ContextValueWritten as k, type IncompleteValue as l, SCOPES_PER_CALL as m, SCOPES_PER_VALUES_CALL as n, SCOPE_TYPES_PER_FIELDS_CALL as o, type ScopeDoorCall as p, type ScopeDoors as q, type ScopePage as r, type ScopeSpec as s, type ScopeTemplate as t, type ScopeType as u, type ScopeTypeLabel as v, type ScopeTypeSkeleton as w, type ScopeTypeSpec as x, type ScopeTypeWithScopes as y, type ScopeWithType as z };
536
+ export { ARCHIVED_SCOPES_PAGE as A, type ScopeWithType as B, type ContextValue as C, type StoreSystemItemRow as D, type StoreWholeValue as E, FILE_KERNEL_ID as F, type SystemContextField as G, type SystemContextItemClass as H, INCOMPLETE_SAVE_REFUSAL as I, type TableTemplate as J, type TableTemplateField as K, completeWholeValues as L, contextFieldFromStore as M, contextFieldKind as N, contextValueFromStore as O, createScopeDoors as P, incompleteSaveRefusal as Q, type ReadContextFileText as R, type Scope as S, TYPE_SCOPES_PAGE as T, referenceFence as U, referencesOf as V, scopeFromStore as W, scopeTypeFromStore as X, scopeWithTypeFromStore as Y, settingFromStore as Z, systemContextFieldFromStore as _, type ContextField as a, type ContextFieldKind as b, type ContextReference as c, type ArchivedScope as d, type ArchivedScopeType as e, CONTEXT_FIELD_KINDS as f, type ContextFieldSpec as g, type ContextPolicy as h, type ContextSensitivity as i, type ContextValueWrite as j, type ContextValueWritten as k, type IncompleteValue as l, SCOPES_PER_CALL as m, SCOPES_PER_VALUES_CALL as n, SCOPE_TYPES_PER_FIELDS_CALL as o, SYSTEM_CONTEXT_TYPE_ID as p, type ScopeDoorCall as q, type ScopeDoors as r, type ScopePage as s, type ScopeSpec as t, type ScopeTemplate as u, type ScopeType as v, type ScopeTypeLabel as w, type ScopeTypeSkeleton as x, type ScopeTypeSpec as y, type ScopeTypeWithScopes as z };
@@ -1,12 +1,12 @@
1
1
  import { A as AggregateBucket } from '../subscription-D5IcSqMw.cjs';
2
- import { R as RecordsClient } from '../client-BSe721CI.cjs';
2
+ import { R as RecordsClient } from '../client-ijtYioVl.cjs';
3
3
  import { F as Field } from '../field-CSNfZsJ3.cjs';
4
4
  import { H as HiddenFieldNotice, U as Uuid, R as RecordsResult } from '../record-fC6s1Xc8.cjs';
5
5
  import { R as RuleExpression } from '../rule-DE3biaSw.cjs';
6
6
  import '../table-kind-CzaNpjv1.cjs';
7
7
  import '../ports-DBxW-a61.cjs';
8
8
  import '../relation-C5H3GUUP.cjs';
9
- import '../doors-DEvCdeYB.cjs';
9
+ import '../doors-Bopr9YVf.cjs';
10
10
  import '../portal-ByiRZGqc.cjs';
11
11
 
12
12
  type QuestionOp = "count" | "sum" | "avg" | "min" | "max";
@@ -1,12 +1,12 @@
1
1
  import { A as AggregateBucket } from '../subscription-Cu6aMX6f.js';
2
- import { R as RecordsClient } from '../client-C6_v0Jnq.js';
2
+ import { R as RecordsClient } from '../client-B1PjSTav.js';
3
3
  import { F as Field } from '../field-Do135FdJ.js';
4
4
  import { H as HiddenFieldNotice, U as Uuid, R as RecordsResult } from '../record-fC6s1Xc8.js';
5
5
  import { R as RuleExpression } from '../rule-Bn3E-ZLl.js';
6
6
  import '../table-kind-DT5EYraJ.js';
7
7
  import '../ports-DCX-WDVh.js';
8
8
  import '../relation-yYaW32bf.js';
9
- import '../doors-DnHM_tkC.js';
9
+ import '../doors-DfHUqP7j.js';
10
10
  import '../portal-B_H6TEj2.js';
11
11
 
12
12
  type QuestionOp = "count" | "sum" | "avg" | "min" | "max";
@@ -880,6 +880,9 @@ function rememberedOpCount() {
880
880
  return defaultOpLedger.size;
881
881
  }
882
882
 
883
+ // src/scopes/types.ts
884
+ var SYSTEM_CONTEXT_TYPE_ID = "__system__";
885
+
883
886
  // src/scopes/codec.ts
884
887
  var str = (v, fallback = "") => typeof v === "string" ? v : fallback;
885
888
  var strOrNull = (v) => typeof v === "string" ? v : null;
@@ -1051,6 +1054,51 @@ var SENSITIVITY_TO_DOOR = {
1051
1054
  confidential: "restricted",
1052
1055
  restricted: "privileged"
1053
1056
  };
1057
+ var SENSITIVITY_FROM_DOOR = {
1058
+ public: "public",
1059
+ internal: "internal",
1060
+ restricted: "confidential",
1061
+ privileged: "restricted"
1062
+ };
1063
+ function systemContextFieldFromStore(row, index) {
1064
+ const key = str(row.key);
1065
+ const kind = str(row.value_type, "string");
1066
+ return {
1067
+ id: str(row.id),
1068
+ scope_type_id: SYSTEM_CONTEXT_TYPE_ID,
1069
+ organization_id: "",
1070
+ key,
1071
+ label: str(row.display_name, key),
1072
+ description: str(row.description),
1073
+ kind: KINDS.has(kind) ? kind : "string",
1074
+ type: "system",
1075
+ multi: kind === "array",
1076
+ format: null,
1077
+ config: {},
1078
+ relation_target: null,
1079
+ sort: typeof row.sort_order === "number" ? row.sort_order : index,
1080
+ context_policy: "include",
1081
+ // The system table keeps the old sensitivity words (`restricted`/`privileged`), like the write doors.
1082
+ sensitivity: SENSITIVITY_FROM_DOOR[str(row.sensitivity)] ?? "public",
1083
+ source: "system",
1084
+ status: "active",
1085
+ status_note: null,
1086
+ category: null,
1087
+ tags: [],
1088
+ max_items: 0,
1089
+ custom_component: null,
1090
+ reference_source: null,
1091
+ allowed_scope_type_ids: null,
1092
+ allowed_reference_types: null,
1093
+ review_interval_days: null,
1094
+ depends_on: [],
1095
+ version: 0,
1096
+ created_by: null,
1097
+ created_at: "",
1098
+ updated_at: "",
1099
+ item_class: strOrNull(row.item_class)
1100
+ };
1101
+ }
1054
1102
  var UUID = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
1055
1103
  function referencesOf(row) {
1056
1104
  const v = row.value;
@@ -1385,7 +1433,11 @@ function createScopeDoors(call) {
1385
1433
  },
1386
1434
  async systemItems() {
1387
1435
  const res = await call("context_system_items", {}, "scopes.systemItems");
1388
- return res.ok ? { ok: true, data: res.data ?? [] } : res;
1436
+ return res.ok ? { ok: true, data: (res.data ?? []).map(systemContextFieldFromStore) } : res;
1437
+ },
1438
+ async tableTemplates(organizationId) {
1439
+ const res = await call("table_templates", { p_org_id: organizationId }, "scopes.tableTemplates");
1440
+ return res.ok ? { ok: true, data: Array.isArray(res.data) ? res.data : [] } : res;
1389
1441
  },
1390
1442
  async templates() {
1391
1443
  const res = await call("context_templates", {}, "scopes.templates");