@ai-matrx/records 0.8.0 → 0.16.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.
@@ -1,5 +1,5 @@
1
- import { Timestamp, Uuid, RelationCoordinate, RecordsConfig, RecordDocument, RecordsResult, RecordRead, ReadRow, Table, Field, StoredRecord, TableCapacity, NewFieldDeclaration, FieldPatch, FormSummary, AggregateMeasure, AggregateBucket, AggregateRow, Subscription, DocToken, DocUnresolvedToken, DocTemplateRow, DocRenderRow, DocSignatureRow, RecordRevision, ReadValue, AnonTokenBinding, WorkState, WorkGraph, WorkInstantiation, WorkTurn, WorkAssignmentField, WorkSlotHold, ExternalPrincipalCard, PublishBinding, ResolvedPublishBinding, FieldProposal, TableProposal, MyLevel, RecordsError, WriteConflict, PgError, RecordsDataSource, StaleWriteDetail, PredictedRefusal } from '../index.js';
2
- export { ABSENCE_REASONS, ACTOR_VOCABULARY, AbsenceReason, Actor, AggregateOperation, COMPUTE_ON, CONTEXT_POLICIES, ComputeOn, ContextPolicy, DELIVERIES, Delivery, DocSignatureCheck, ENTITY_TOKENS, EntityToken, FIELD_SENSITIVITIES, FIELD_SOURCES, FRESHNESS, FieldBehavior, FieldRule, FieldSensitivity, FieldSource, ForbiddenEnvelopeWord, Freshness, HiddenFieldNotice, Home, KERNEL_TABLES, KernelTableName, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, MergeField, MergeFieldModifier, MergeFieldProvenance, MergeFieldResolution, MergeFieldSemanticType, MergeFieldSource, MergeFieldTransform, MissingBehavior, ON_DELETE, OVERRIDE_POLICIES, OnDelete, OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, ParityFieldType, ParityFieldTypeDescriptor, PerValueAccessWord, PermissionLevel, ProvenancePointer, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, RULE_NODE_KINDS, RULE_USES, RecordsActor, RecordsErrorCode, RecordsErrorSink, RecordsFilter, RecordsRealtimePort, RecordsResolverPort, RecordsResponse, RecordsTableQuery, RegisteredTable, Relation, RelationBinding, RelationCardinality, RelationCarries, RelationFlavor, RelationProperties, RelationTarget, ResolutionTriple, RetiredActorWord, Rule, RuleAnswer, RuleExpression, RuleNodeKind, RuleUse, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, StorageMode, StoreDoorName, StoreRefusalCode, SubscriptionBlock, SubscriptionCadence, TABLE_DISPLAYS, TABLE_ORIGINS, TABLE_TYPES, TableDisplay, TableOrigin, TableType, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, ValueAlternate, ValueAlternateKey, ValueEnvelope, ValueEnvelopeKey, ValueSource, WorkTemplateNode, WorkTemplateRelation, asPermissionLevel, atLeast, err, highestLevel, isRecordsErr, measureKey, ok, publicFormPath } from '../index.js';
1
+ import { Timestamp, Uuid, RelationCoordinate, RecordsConfig, RecordDocument, RecordsResult, RecordRead, ReadRow, Table, Field, StoredRecord, TableCapacity, NewFieldDeclaration, FieldPatch, EntityTableFacts, NewEntityFieldDeclaration, EntityFieldRights, EntityRecordRead, EntityRecordsFound, FormSummary, PortalSummary, PortalCard, PortalInvitation, PortalRevocation, PortalPreviewRow, DashboardSummary, DashboardBlock, AggregateFilter, DashboardRunResult, StuckRow, AggregateMeasure, AggregateBucket, AggregateRow, Subscription, MySubscription, DocToken, DocUnresolvedToken, DocTemplateRow, DocRenderRow, DocSignatureRow, RecordRevision, ReadValue, AnonTokenBinding, WorkState, WorkGraph, WorkInstantiation, WorkTurn, WorkAssignmentField, WorkSlotHold, WorkInboxItem, WorkListFlavour, WorkListItem, WorkAssignment, WorkRecordState, WorkApprover, WorkChange, WorkApprovalFiled, WorkApprovalDecision, ExternalPrincipalCard, PublishBinding, ResolvedPublishBinding, FieldProposal, TableProposal, MyLevel, RecordsError, WriteConflict, PgError, RecordsDataSource, StaleWriteDetail, PredictedRefusal } from '../index.js';
2
+ export { ABSENCE_REASONS, ACTOR_VOCABULARY, AbsenceReason, Actor, AggregateOperation, AggregateWindow, COMPUTE_ON, CONTEXT_POLICIES, ChoiceOption, ComputeOn, ContextPolicy, CustomFieldTableType, DELIVERIES, DashboardBlockKind, DashboardBlockResult, Delivery, DocSignatureCheck, ENTITY_TOKENS, EntityFieldValue, EntityRecordMatch, EntityToken, FIELD_SENSITIVITIES, FIELD_SOURCES, FRESHNESS, FieldBehavior, FieldRule, FieldSensitivity, FieldSource, FieldTypeWord, ForbiddenEnvelopeWord, Freshness, HiddenFieldNotice, Home, KERNEL_TABLES, KernelTableName, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, MergeField, MergeFieldModifier, MergeFieldProvenance, MergeFieldResolution, MergeFieldSemanticType, MergeFieldSource, MergeFieldTransform, MissingBehavior, ON_DELETE, OVERRIDE_POLICIES, OnDelete, OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, ParityFieldType, ParityFieldTypeDescriptor, PerValueAccessWord, PermissionLevel, PortalPrincipal, PortalTableExposure, ProvenancePointer, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, RULE_NODE_KINDS, RULE_USES, RecordsActor, RecordsErrorCode, RecordsErrorSink, RecordsFilter, RecordsRealtimePort, RecordsResolverPort, RecordsResponse, RecordsTableQuery, RegisteredTable, Relation, RelationBinding, RelationCardinality, RelationCarries, RelationFlavor, RelationProperties, RelationTarget, ResolutionTriple, RetiredActorWord, Rule, RuleAnswer, RuleExpression, RuleNodeKind, RuleUse, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, StorageMode, StoreDoorName, StoreRefusalCode, SubscriptionBlock, SubscriptionCadence, TABLE_DISPLAYS, TABLE_ORIGINS, TABLE_TYPES, TableDisplay, TableOrigin, TableType, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, ValueAlternate, ValueAlternateKey, ValueEnvelope, ValueEnvelopeKey, ValueSource, WorkDueState, WorkInboxKind, WorkOrigin, WorkTemplateNode, WorkTemplateRelation, asPermissionLevel, atLeast, choiceSlug, choiceValuesOf, choicesOf, err, highestLevel, holdsARetiredChoice, isRecordsErr, isTheChosen, looksLikeAnId, measureKey, ok, optionKey, optionLabel, portalPath, publicFormPath } from '../index.js';
3
3
 
4
4
  /**
5
5
  * DOOR-8. As-of on EITHER clock, and they are different questions:
@@ -179,6 +179,51 @@ interface RecordsClient {
179
179
  fieldRetire(args: {
180
180
  field_id: Uuid;
181
181
  }): Promise<RecordsResult<boolean>>;
182
+ /** What the registry says about a token, and whether it can hold a value at all. */
183
+ entityTable(args: {
184
+ token: string;
185
+ }): Promise<RecordsResult<EntityTableFacts>>;
186
+ /** The fields THIS organization added to that standard table. */
187
+ entityFields(args: {
188
+ token: string;
189
+ }): Promise<RecordsResult<Field[]>>;
190
+ /** Add a column to a standard table. An organization admin's right - it changes the table for everybody. */
191
+ entityFieldDeclare(args: {
192
+ token: string;
193
+ spec: NewEntityFieldDeclaration;
194
+ }): Promise<RecordsResult<Uuid>>;
195
+ /** One field's own settings. A TYPE change is refused here by name, as it is on a custom table. */
196
+ entityFieldUpdate(args: {
197
+ field_id: Uuid;
198
+ patch: Record<string, unknown>;
199
+ }): Promise<RecordsResult<Uuid>>;
200
+ /** Take a custom field off a standard table. The values already written stay in each row. */
201
+ entityFieldRetire(args: {
202
+ field_id: Uuid;
203
+ }): Promise<RecordsResult<Uuid>>;
204
+ /** May this person add a column here - and if not, the store's own sentence saying why. */
205
+ entityFieldRights(args: {
206
+ token: string;
207
+ }): Promise<RecordsResult<EntityFieldRights>>;
208
+ /** REC-53 in one answer: the row's real columns AND its custom values AND the definitions. */
209
+ entityRecordRead(args: {
210
+ token: string;
211
+ record_id: Uuid;
212
+ }): Promise<RecordsResult<EntityRecordRead>>;
213
+ /** A patch: a key left out is left alone, a key set to null is cleared with its envelope. */
214
+ entityValueWrite(args: {
215
+ token: string;
216
+ record_id: Uuid;
217
+ patch: Record<string, unknown>;
218
+ }): Promise<RecordsResult<EntityRecordRead>>;
219
+ /** Rows of that standard table with this custom value. Refuses a field nobody declared. */
220
+ entityRecordsFind(args: {
221
+ token: string;
222
+ key: string;
223
+ value?: unknown;
224
+ limit?: number;
225
+ offset?: number;
226
+ }): Promise<RecordsResult<EntityRecordsFound>>;
182
227
  /** The kernel Tables a caller writes a Home, a Field or a Rule into. */
183
228
  personKernelId(): Promise<RecordsResult<Uuid>>;
184
229
  fieldKernelId(): Promise<RecordsResult<Uuid>>;
@@ -227,6 +272,99 @@ interface RecordsClient {
227
272
  form_id?: Uuid | null;
228
273
  slug?: string | null;
229
274
  }): Promise<RecordsResult<Uuid>>;
275
+ /** Every portal over this organization the caller may know about, with its numbers. */
276
+ portals(): Promise<RecordsResult<PortalSummary[]>>;
277
+ /** ONE portal in full: what it shows, and who it was opened to. */
278
+ portalCard(args: {
279
+ portal_id: Uuid;
280
+ }): Promise<RecordsResult<PortalCard>>;
281
+ /**
282
+ * Create or RE-STATE one portal. Re-stating REPLACES what it exposes — a
283
+ * Table left out of `tables` stops being exposed in the same act — and leaves
284
+ * the people alone: who is invited is not part of what the portal shows.
285
+ */
286
+ portalDeclare(args: {
287
+ title: string;
288
+ client_table_id: Uuid;
289
+ tables: Array<{
290
+ table_id: Uuid;
291
+ names_via: string;
292
+ visible_fields?: string[];
293
+ editable_fields?: string[];
294
+ comments?: boolean;
295
+ }>;
296
+ portal_id?: Uuid | null;
297
+ slug?: string | null;
298
+ sign_in_method?: string | null;
299
+ }): Promise<RecordsResult<Uuid>>;
300
+ /**
301
+ * Invite one person, as one record of the portal's client Table.
302
+ *
303
+ * `user_id` is deliberately NOT a parameter here. From a screen it is always
304
+ * null: an invitation confers NOTHING until the person follows their sign-in
305
+ * link and the platform gives them an identity, and the door's own `say`
306
+ * sentence states exactly that. A screen that passed an id would be granting
307
+ * access on somebody else's behalf.
308
+ */
309
+ portalInvite(args: {
310
+ portal_id: Uuid;
311
+ client_record_id: Uuid;
312
+ email: string;
313
+ }): Promise<RecordsResult<PortalInvitation>>;
314
+ /** Take one person's way in away. The answer's `say` names the consequence. */
315
+ portalRevoke(args: {
316
+ portal_id: Uuid;
317
+ principal_id: Uuid;
318
+ }): Promise<RecordsResult<PortalRevocation>>;
319
+ /**
320
+ * VIEW AS THIS CLIENT. The door asks `custom.visible_set` for HER user id —
321
+ * the same call `custom.read_records` makes when she opens the page — so this
322
+ * cannot disagree with what she sees. It REFUSES with `02000` and a sentence
323
+ * when she has not signed in yet; show the sentence, never an empty list.
324
+ */
325
+ portalPreview(args: {
326
+ portal_id: Uuid;
327
+ principal_id: Uuid;
328
+ table_id: Uuid;
329
+ }): Promise<RecordsResult<PortalPreviewRow[]>>;
330
+ /** This organization's dashboards, optionally only those whose subject is one Table. */
331
+ dashboards(args?: {
332
+ table_id?: Uuid | null;
333
+ }): Promise<RecordsResult<DashboardSummary[]>>;
334
+ /**
335
+ * Create or re-state one dashboard. Every block is judged on the way IN —
336
+ * a block naming a field this Table does not have is refused BY NAME, with
337
+ * the table's own field list in the hint — so a canvas cannot be saved broken.
338
+ */
339
+ dashboardDeclare(args: {
340
+ table_id: Uuid;
341
+ name: string;
342
+ blocks?: DashboardBlock[];
343
+ presentation?: Record<string, unknown> | null;
344
+ dashboard_id?: Uuid | null;
345
+ }): Promise<RecordsResult<Uuid>>;
346
+ /**
347
+ * Run every block and answer the numbers. `filter` is the ONE filter bar
348
+ * across the canvas: it is merged UNDER each block's own filter, so a block
349
+ * deliberately scoped to one stage stays scoped while the bar moves the rest.
350
+ * A block that refuses carries the store's sentence and the others still answer.
351
+ */
352
+ dashboardRun(args: {
353
+ dashboard_id: Uuid;
354
+ filter?: Record<string, AggregateFilter>;
355
+ }): Promise<RecordsResult<DashboardRunResult>>;
356
+ /** The seventh block kind on its own: records that have sat on the same value too long. */
357
+ dashboardStuck(args: {
358
+ table_id: Uuid;
359
+ state_key: string;
360
+ days?: number;
361
+ filter?: Record<string, AggregateFilter>;
362
+ limit?: number;
363
+ }): Promise<RecordsResult<StuckRow[]>>;
364
+ /** Take a dashboard away. The records it counted are untouched — a canvas owns nothing. */
365
+ dashboardDelete(args: {
366
+ dashboard_id: Uuid;
367
+ }): Promise<RecordsResult<boolean>>;
230
368
  /**
231
369
  * Group, bucket, filter and measure INSIDE `custom.record_aggregate`. The
232
370
  * aggregate node sits above the visibility join, so what a chart draws is
@@ -244,8 +382,11 @@ interface RecordsClient {
244
382
  key: string;
245
383
  by: AggregateBucket;
246
384
  } | null;
247
- /** Equality only, and it lands in the SAME WHERE as visibility. */
248
- filter?: Record<string, string>;
385
+ /**
386
+ * A scalar is an equality and an object is a half-open moment window, and
387
+ * either way it lands in the SAME WHERE as visibility.
388
+ */
389
+ filter?: Record<string, AggregateFilter>;
249
390
  limit?: number;
250
391
  }): Promise<RecordsResult<AggregateRow[]>>;
251
392
  /** The measures the store itself offers. Asked, never hardcoded in a picker. */
@@ -264,6 +405,25 @@ interface RecordsClient {
264
405
  }): Promise<RecordsResult<Subscription[]>>;
265
406
  /** The cadences the store itself offers. Asked, never hardcoded in a picker. */
266
407
  aggSubscriptionCadences(): Promise<RecordsResult<string[]>>;
408
+ /**
409
+ * WHAT THIS PERSON IS BEING TOLD ABOUT, and what they may switch off.
410
+ *
411
+ * Mine, plus anyone's over a Table I hold admin on — narrowed to Tables I can
412
+ * already open, so the list never reveals one. `aggSubscriptions` above is the
413
+ * NOTIFIER's reader and no client can call it; this is the owner's.
414
+ */
415
+ subscriptions(args?: {
416
+ table_id?: Uuid | null;
417
+ }): Promise<RecordsResult<MySubscription[]>>;
418
+ /**
419
+ * Switch one on or off. Muting is honoured in ONE place — the reader every
420
+ * consumer goes through — so a screen can never say a subscription is off
421
+ * while it keeps firing.
422
+ */
423
+ subscriptionMute(args: {
424
+ rule_id: Uuid;
425
+ muted: boolean;
426
+ }): Promise<RecordsResult<boolean>>;
267
427
  docTemplateSave(args: {
268
428
  table_id: Uuid;
269
429
  name: string;
@@ -462,6 +622,86 @@ interface RecordsClient {
462
622
  workSlotExpire(args: {
463
623
  table_id: Uuid;
464
624
  }): Promise<RecordsResult<number>>;
625
+ /**
626
+ * THE ONE INBOX. Assignments, approvals and the agent's proposals, in one
627
+ * ordered list with ONE row shape — PRODUCTS.md row 6. A second queue for the
628
+ * agent's suggestions is the thing this replaces.
629
+ */
630
+ workInbox(args?: {
631
+ limit?: number;
632
+ offset?: number;
633
+ includeDecided?: boolean;
634
+ }): Promise<RecordsResult<WorkInboxItem[]>>;
635
+ /** "My work", "work I assigned", "waiting on somebody being chosen". */
636
+ workList(args?: {
637
+ flavour?: WorkListFlavour;
638
+ includeFinished?: boolean;
639
+ limit?: number;
640
+ offset?: number;
641
+ }): Promise<RecordsResult<WorkListItem[]>>;
642
+ /**
643
+ * Give one record to one person: the Assignee value AND editor access, in one
644
+ * transaction. Passing no `user_id` un-assigns and says plainly that nobody's
645
+ * access was taken away.
646
+ */
647
+ workAssign(args: {
648
+ record_id: Uuid;
649
+ user_id?: Uuid | null;
650
+ dueDate?: string | null;
651
+ clearDue?: boolean;
652
+ }): Promise<RecordsResult<WorkAssignment>>;
653
+ /** The states this record may be moved to, and the sentence for each it may not. */
654
+ workRecordStates(args: {
655
+ record_id: Uuid;
656
+ }): Promise<RecordsResult<WorkRecordState[]>>;
657
+ /** Move it. The store refuses a move the model forbids, in its own words. */
658
+ workSetState(args: {
659
+ record_id: Uuid;
660
+ state_id: Uuid | null;
661
+ }): Promise<RecordsResult<unknown>>;
662
+ /** The person-kernel record standing for a signed-in person here. */
663
+ workPerson(args: {
664
+ user_id: Uuid;
665
+ create?: boolean;
666
+ }): Promise<RecordsResult<Uuid | null>>;
667
+ /** The templates this person may run, so a picker has ids to offer. */
668
+ workTemplates(args?: {
669
+ limit?: number;
670
+ }): Promise<RecordsResult<Array<{
671
+ template_id: Uuid;
672
+ name: string;
673
+ nodes: number;
674
+ relations: number;
675
+ created_at: string;
676
+ }>>>;
677
+ /** Who may decide a change about this subject, and why each of them may. */
678
+ workApprovalApprovers(args: {
679
+ subject_id: Uuid | null;
680
+ approver_id?: Uuid | null;
681
+ }): Promise<RecordsResult<WorkApprover[]>>;
682
+ /** Ask for a change instead of making it. Viewer on the subject is enough to ASK. */
683
+ workApprovalRequest(args: {
684
+ subject_id: Uuid;
685
+ change: WorkChange;
686
+ note?: string | null;
687
+ approver_id?: Uuid | null;
688
+ origin?: "person" | "agent";
689
+ conversation_id?: Uuid | null;
690
+ }): Promise<RecordsResult<WorkApprovalFiled>>;
691
+ /** Whether THIS person may decide THIS one — so a screen never draws a dead button. */
692
+ workApprovalMayDecide(args: {
693
+ approval_id: Uuid;
694
+ }): Promise<RecordsResult<boolean>>;
695
+ /** Approve or decline. Approving APPLIES the change, as the person approving. */
696
+ workApprovalDecide(args: {
697
+ approval_id: Uuid;
698
+ approve: boolean;
699
+ note?: string | null;
700
+ }): Promise<RecordsResult<WorkApprovalDecision>>;
701
+ /** One waiting change in full, for the person deciding it or the one who asked. */
702
+ workApprovalRead(args: {
703
+ approval_id: Uuid;
704
+ }): Promise<RecordsResult<Record<string, unknown>>>;
465
705
  /** VIS-31. Is this account a signed-in outsider — no NON-personal organization? */
466
706
  isExternalPrincipal(args?: {
467
707
  user_id?: Uuid | null;
@@ -569,6 +809,15 @@ declare const DOORS: {
569
809
  readonly fieldDeclare: "field_declare";
570
810
  readonly fieldUpdate: "field_update";
571
811
  readonly fieldRetire: "field_retire";
812
+ readonly entityTable: "entity_table";
813
+ readonly entityFields: "entity_fields";
814
+ readonly entityFieldDeclare: "entity_field_declare";
815
+ readonly entityFieldUpdate: "entity_field_update";
816
+ readonly entityFieldRetire: "entity_field_retire";
817
+ readonly entityFieldRights: "entity_field_rights";
818
+ readonly entityRecordRead: "entity_record_read";
819
+ readonly entityValueWrite: "entity_value_write";
820
+ readonly entityRecordsFind: "entity_records_find";
572
821
  readonly tableCapacity: "table_capacity";
573
822
  readonly tableStorage: "table_storage";
574
823
  readonly promoteTable: "promote_table";
@@ -594,11 +843,24 @@ declare const DOORS: {
594
843
  readonly ruleEval: "rule_eval";
595
844
  readonly forms: "forms";
596
845
  readonly formDeclare: "form_declare";
846
+ readonly portals: "portals";
847
+ readonly portalCard: "portal_card";
848
+ readonly portalDeclare: "portal_declare";
849
+ readonly portalInvite: "portal_invite";
850
+ readonly portalRevoke: "portal_revoke";
851
+ readonly portalPreview: "portal_preview";
852
+ readonly dashboards: "dashboards";
853
+ readonly dashboardDeclare: "dashboard_declare";
854
+ readonly dashboardRun: "dashboard_run";
855
+ readonly dashboardStuck: "dashboard_stuck";
856
+ readonly dashboardDelete: "dashboard_delete";
597
857
  readonly recordAggregate: "record_aggregate";
598
858
  readonly aggOperations: "agg_operations";
599
859
  readonly aggBuckets: "agg_buckets";
600
860
  readonly aggSubscriptions: "agg_subscriptions";
601
861
  readonly aggSubscriptionCadences: "agg_subscription_cadences";
862
+ readonly subscriptions: "subscriptions";
863
+ readonly subscriptionMute: "subscription_mute";
602
864
  readonly docTemplateSave: "doc_template_save";
603
865
  readonly docRenderBody: "doc_render_body";
604
866
  readonly docRenderDocument: "doc_render_document";
@@ -631,6 +893,19 @@ declare const DOORS: {
631
893
  readonly workSlotRelease: "work_slot_release";
632
894
  readonly workSlotHolds: "work_slot_holds";
633
895
  readonly workSlotExpire: "work_slot_expire";
896
+ readonly workPerson: "work_person";
897
+ readonly workAssign: "work_assign";
898
+ readonly workRecordStates: "work_record_states";
899
+ readonly workSetState: "work_set_state";
900
+ readonly workList: "work_list";
901
+ readonly workTemplates: "work_templates";
902
+ /** THE ONE QUEUE: assignments, approvals and the agent's proposals together. */
903
+ readonly workInbox: "work_inbox";
904
+ readonly workApprovalApprovers: "work_approval_approvers";
905
+ readonly workApprovalRequest: "work_approval_request";
906
+ readonly workApprovalMayDecide: "work_approval_may_decide";
907
+ readonly workApprovalDecide: "work_approval_decide";
908
+ readonly workApprovalRead: "work_approval_read";
634
909
  readonly metadataSearch: "metadata_search";
635
910
  readonly ruleDeclare: "rule_declare";
636
911
  readonly fieldPropose: "field_propose";
@@ -751,4 +1026,4 @@ declare function parseCsv(text: string): string[][];
751
1026
  declare function importCsv(fields: Field[], text: string): ParsedImport;
752
1027
  declare function importXlsx(fields: Field[], bytes: ArrayBuffer | Uint8Array): Promise<ParsedImport>;
753
1028
 
754
- export { AggregateBucket, AggregateMeasure, AggregateRow, AnonTokenBinding, type AsOf, DEFAULT_DOCUMENT_MAX_BYTES, DEFAULT_PAGE_SIZE, DEFAULT_VALUE_MAX_BYTES, DOORS, DocRenderRow, DocSignatureRow, DocTemplateRow, DocToken, DocUnresolvedToken, type DoorKey, type ExportRow, ExternalPrincipalCard, Field, FieldPatch, FieldProposal, FormSummary, MAPPED_SQLSTATES, type MirrorLimits, MyLevel, NewFieldDeclaration, type ParsedImport, PgError, PredictedRefusal, type PromotedPredicate, PublishBinding, type QueryPlan, ReadRow, ReadValue, RecordDocument, type RecordQuery, RecordRead, RecordRevision, type RecordsClient, RecordsConfig, RecordsDataSource, RecordsError, RecordsResult, RelationCoordinate, ResolvedPublishBinding, StaleWriteDetail, StoredRecord, Subscription, type SupabaseLike, Table, TableCapacity, TableProposal, Timestamp, Uuid, WorkAssignmentField, WorkGraph, WorkInstantiation, WorkSlotHold, WorkState, WorkTurn, WriteConflict, asWriteConflict, cellText, createRecordsClient, doorAbsent, doorCensus, doorExists, exportCsv, exportXlsx, importCsv, importXlsx, intersectIds, mapPgError, parseCsv, planQuery, predictEnvelopeRefusal, predictSizeRefusal, predictValueRefusals, predictWriteRefusals, staleWriteDetail, supabaseDataSource, toAoa };
1029
+ export { AggregateBucket, AggregateFilter, AggregateMeasure, AggregateRow, AnonTokenBinding, type AsOf, DEFAULT_DOCUMENT_MAX_BYTES, DEFAULT_PAGE_SIZE, DEFAULT_VALUE_MAX_BYTES, DOORS, DashboardBlock, DashboardRunResult, DashboardSummary, DocRenderRow, DocSignatureRow, DocTemplateRow, DocToken, DocUnresolvedToken, type DoorKey, EntityFieldRights, EntityRecordRead, EntityRecordsFound, EntityTableFacts, type ExportRow, ExternalPrincipalCard, Field, FieldPatch, FieldProposal, FormSummary, MAPPED_SQLSTATES, type MirrorLimits, MyLevel, MySubscription, NewEntityFieldDeclaration, NewFieldDeclaration, type ParsedImport, PgError, PortalCard, PortalInvitation, PortalPreviewRow, PortalRevocation, PortalSummary, PredictedRefusal, type PromotedPredicate, PublishBinding, type QueryPlan, ReadRow, ReadValue, RecordDocument, type RecordQuery, RecordRead, RecordRevision, type RecordsClient, RecordsConfig, RecordsDataSource, RecordsError, RecordsResult, RelationCoordinate, ResolvedPublishBinding, StaleWriteDetail, StoredRecord, StuckRow, Subscription, type SupabaseLike, Table, TableCapacity, TableProposal, Timestamp, Uuid, WorkApprovalDecision, WorkApprovalFiled, WorkApprover, WorkAssignment, WorkAssignmentField, WorkChange, WorkGraph, WorkInboxItem, WorkInstantiation, WorkListFlavour, WorkListItem, WorkRecordState, WorkSlotHold, WorkState, WorkTurn, WriteConflict, asWriteConflict, cellText, createRecordsClient, doorAbsent, doorCensus, doorExists, exportCsv, exportXlsx, importCsv, importXlsx, intersectIds, mapPgError, parseCsv, planQuery, predictEnvelopeRefusal, predictSizeRefusal, predictValueRefusals, predictWriteRefusals, staleWriteDetail, supabaseDataSource, toAoa };