@ai-matrx/records 0.99.28 → 0.99.29

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 +7 -0
  2. package/dist/{client-B7LYr-aE.d.cts → client-B7KEs9hi.d.cts} +10 -0
  3. package/dist/{client-m4soDpHA.d.ts → client-Dthx26hr.d.ts} +10 -0
  4. package/dist/core/index.cjs +76 -10
  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 +76 -10
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/data/index.cjs +12 -1
  11. package/dist/data/index.cjs.map +1 -1
  12. package/dist/data/index.d.cts +1 -1
  13. package/dist/data/index.d.ts +1 -1
  14. package/dist/data/index.js +12 -1
  15. package/dist/data/index.js.map +1 -1
  16. package/dist/{declareTable-D5Zs-SjU.d.ts → declareTable-CvBu5dTJ.d.ts} +1 -1
  17. package/dist/{declareTable-Bnrzv-Bg.d.cts → declareTable-enQs2N0E.d.cts} +1 -1
  18. package/dist/first-page/index.d.cts +2 -0
  19. package/dist/first-page/index.d.ts +2 -0
  20. package/dist/index.cjs +64 -9
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +29 -3
  23. package/dist/index.d.ts +29 -3
  24. package/dist/index.js +64 -9
  25. package/dist/index.js.map +1 -1
  26. package/dist/questions/index.d.cts +1 -1
  27. package/dist/questions/index.d.ts +1 -1
  28. package/dist/react/index.cjs +78 -12
  29. package/dist/react/index.cjs.map +1 -1
  30. package/dist/react/index.d.cts +37 -1
  31. package/dist/react/index.d.ts +37 -1
  32. package/dist/react/index.js +78 -12
  33. package/dist/react/index.js.map +1 -1
  34. package/dist/setup/index.cjs +12 -1
  35. package/dist/setup/index.cjs.map +1 -1
  36. package/dist/setup/index.d.cts +1 -1
  37. package/dist/setup/index.d.ts +1 -1
  38. package/dist/setup/index.js +12 -1
  39. package/dist/setup/index.js.map +1 -1
  40. package/dist/typed-table/index.cjs +12 -1
  41. package/dist/typed-table/index.cjs.map +1 -1
  42. package/dist/typed-table/index.d.cts +2 -2
  43. package/dist/typed-table/index.d.ts +2 -2
  44. package/dist/typed-table/index.js +12 -1
  45. package/dist/typed-table/index.js.map +1 -1
  46. package/dist/views/index.d.cts +1 -1
  47. package/dist/views/index.d.ts +1 -1
  48. package/package.json +2 -2
@@ -6891,6 +6891,8 @@ interface Table {
6891
6891
  row_order: string | null;
6892
6892
  /** REC-14. Where this Table lives. Exactly one primary Home. */
6893
6893
  home_id: Uuid | null;
6894
+ /** The feature that keeps this Table out of the person's lists (`snapshot`, `copying`, …); absent for a person's own table. */
6895
+ kept_for?: string | null;
6894
6896
  /** REC-27. One of the nine, defined in code and not editable by Migration. */
6895
6897
  is_kernel: boolean;
6896
6898
  created_by: Uuid | null;
@@ -11421,6 +11423,19 @@ interface BasePort {
11421
11423
  /** `RecordsClient.tableArchive` / its restore: put a copy away, or bring it back to be copied from. */
11422
11424
  archive?(tableId: Uuid): Promise<RecordsResult<unknown>>;
11423
11425
  unarchive?(tableId: Uuid): Promise<RecordsResult<unknown>>;
11426
+ /** The door that makes a table's Home today (`declareTable`): a new record "<name>" in the person kernel. A NEW base is a new Home. */
11427
+ createHome?(name: string): Promise<RecordsResult<Uuid>>;
11428
+ /** The one door that moves a table between Homes: `custom.record_reparent` (`RecordsClient.recordReparent`). Pages and automations ride on their table. */
11429
+ moveInto?(tableId: Uuid, homeId: Uuid): Promise<RecordsResult<unknown>>;
11430
+ /** Columns and views of a table (`RecordsClient.fields` / `views`): a copy's automations and pages name the COPY's column and view ids. */
11431
+ fieldsOf?(tableId: Uuid): Promise<RecordsResult<Array<{
11432
+ id: Uuid;
11433
+ key: string;
11434
+ }>>>;
11435
+ viewsOf?(tableId: Uuid): Promise<RecordsResult<Array<{
11436
+ id: Uuid;
11437
+ name: string;
11438
+ }>>>;
11424
11439
  }
11425
11440
  interface BaseCopyProgress {
11426
11441
  /** 1-based position of the table being copied, and how many there are. */
@@ -11430,6 +11445,8 @@ interface BaseCopyProgress {
11430
11445
  pass: TableDuplicateProgress | null;
11431
11446
  }
11432
11447
  interface BaseCopied {
11448
+ /** The NEW Home every copied table now lives in (a copy is its own base); null when the port cannot make Homes. */
11449
+ homeId: Uuid | null;
11433
11450
  /** Source table id → its copy. */
11434
11451
  pairs: Record<Uuid, Uuid>;
11435
11452
  tables: Array<{
@@ -11460,6 +11477,8 @@ type BaseCopyResult = {
11460
11477
  };
11461
11478
  /** "Harbor Studio (copy)", the same word the table dialog offers. */
11462
11479
  declare function baseCopyName(name: string): string;
11480
+ /** "Harbor Studio (restored 10/15/2026)". */
11481
+ declare function restoredBaseName(name: string, on: string): string;
11463
11482
  /** Duplicate every table of a base. `names` (by source table id) overrides the "<name>" a copy is given. */
11464
11483
  declare function duplicateBase(port: BasePort, args: {
11465
11484
  organizationId: Uuid;
@@ -11468,9 +11487,16 @@ declare function duplicateBase(port: BasePort, args: {
11468
11487
  /** The copy's name for each table; default the source's own name (the copies live together in the new base). */
11469
11488
  nameFor?: (table: BaseTable) => string;
11470
11489
  onProgress?: (p: BaseCopyProgress) => void;
11490
+ /** Put the copies in a NEW Home with this name (a base is a Home); absent keeps each copy where the per-table door put it. */
11491
+ homeName?: string;
11471
11492
  }): Promise<BaseCopyResult>;
11472
11493
  /** Every table id (and any id of a copied table) inside a document becomes its copy's id. Column keys are kept by a copy, so they stay. */
11473
11494
  declare function pointAtCopies<T>(doc: T, pairs: Record<Uuid, Uuid>): T;
11495
+ /**
11496
+ * Every id a copy renamed, old → new: the tables, then each column (matched by key, which a copy keeps) and each view (matched by
11497
+ * name). An automation or page of the copy that kept the ORIGINAL's column or view ids would watch the wrong table.
11498
+ */
11499
+ declare function idsOfCopies(port: BasePort, pairs: Record<Uuid, Uuid>): Promise<Record<Uuid, Uuid>>;
11474
11500
  interface BaseSnapshotRecord {
11475
11501
  label: string;
11476
11502
  origin: "manual" | "schedule";
@@ -11501,6 +11527,8 @@ declare function snapshotBase(port: BasePort, args: {
11501
11527
  declare function restoreSnapshot(port: BasePort, args: {
11502
11528
  organizationId: Uuid;
11503
11529
  snapshot: BaseSnapshotRecord;
11530
+ baseName?: string;
11531
+ restoredOn?: string;
11504
11532
  onProgress?: (p: BaseCopyProgress) => void;
11505
11533
  }): Promise<BaseCopyResult>;
11506
11534
 
@@ -13904,6 +13932,14 @@ interface RecordsClient {
13904
13932
  recordDelete(args: {
13905
13933
  record_id: Uuid;
13906
13934
  }): Promise<RecordsResult<Timestamp>>;
13935
+ /**
13936
+ * MOVE A RECORD (a Table included) INTO ANOTHER HOME — `custom.record_reparent`, the one door that changes where a
13937
+ * record is contained. `parent_id` is the Home's record id (null takes it out). Admin on the record, viewer on the Home.
13938
+ */
13939
+ recordReparent(args: {
13940
+ record_id: Uuid;
13941
+ parent_id: Uuid | null;
13942
+ }): Promise<RecordsResult<null>>;
13907
13943
  recordRestore(args: {
13908
13944
  record_id: Uuid;
13909
13945
  }): Promise<RecordsResult<void>>;
@@ -18255,4 +18291,4 @@ interface AppAutomationSpec {
18255
18291
  */
18256
18292
  declare function ensureAppAutomations(client: RecordsClient, def: AnyTypedTableDef, specs: readonly AppAutomationSpec[], options?: TypedTableOrgOptions): Promise<RecordsResult<Uuid[]>>;
18257
18293
 
18258
- export { ABSENCE_REASONS, ACTOR_VOCABULARY, ADDRESS_PARTS, AGENT_WRITER_WORDS, APP_ROWS_CEILING, ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, type AbsenceReason, type ActionRefusal, type ActionRunResult, type Actor, type AddressPart, type AddressValue, type AdminTable, type AggregateBucket, type AggregateCompare, type AggregateCompareKind, type AggregateCompareWindows, type AggregateDelta, type AggregateFilter, type AggregateGroupValue, type AggregateMeasure, type AggregateOperation, type AggregateRow, type AggregateWindow, type AnonTokenBinding, type AnyStoreTable, type AnyTypedTableDef, type AppAutomationSpec, type AppField, type AppFields, type AppRows, type AppUpsertOptions, type ArchiveDeliberatelyArgs, type ArchiveLane, type ArchivedChecklistTemplate, type ArchivedDoorRow, type ArchivedForm, type ArchivedRow, type AutomationAction, type AutomationComparison, type AutomationDeclared, type AutomationFilter, type AutomationFlipped, type AutomationItem, type AutomationLastRun, type AutomationList, type AutomationRevision, type AutomationRevisions, type AutomationRun, type AutomationRunStatus, type AutomationRuns, type AutomationSpec, type AutomationStep, type AutomationTested, type AutomationToken, type AutomationTrigger, type AutomationValue, type AutomationValues, type AutomationWeekday, type AutomationWhen, BARCODE_SYMBOLOGIES, BUILT_KIND_WORD, BUTTON_DOES, type BaseCopied, type BaseCopyProgress, type BaseCopyResult, type BasePort, type BaseSnapshotRecord, type BaseTable, type BookingAvailability, type BookingDeclared, type BookingSummary, type BookingWindow, type ButtonDoes, type ButtonPressed, type ButtonSettings, CHOICE_NUDGES, COMPUTE_ON, CONTEXT_POLICIES, type CaptureField, type CaptureFileRef, type CaptureOutcome, type CaptureQuestion, type CaptureQueue, type CaptureQueueCounts, type CaptureQueueOptions, type CaptureQueuePorts, type CaptureQueueStore, type CaptureSheetFace, type CaptureSheetSummary, type CaptureSyncReport, type ChecklistDeclared, type ChecklistRequirement, type ChecklistRequirementKind, type ChecklistRoleSpec, type ChecklistRunStarted, type ChecklistRunStep, type ChecklistRunSummary, type ChecklistSpec, type ChecklistStepCompleted, type ChecklistStepSpec, type ChecklistTemplateShape, type ChecklistTemplateSummary, type ChecklistTrigger, type ChecklistTriggerKind, type ChoiceCellBack, type ChoiceLike, type ChoiceNudge, type ChoiceOption, type ChoiceOptions, type ChoiceRehome, type ChoiceUsage, type ChoicesRehomed, type ChooseAlternateArgs, type CoerceOptions, type Coerced, type CoercedAnswers, type CoercibleField, type CommentThreadRead, type CommentWritten, type ComputeOn, type ConfidentialRequest, type ConfidentialState, type ContextPolicy$1 as ContextPolicy, type ConversationScope, type ConversationScopeContext, type CustomFieldTableType, DECLARABLE_FIELD_KINDS, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DELIVERIES, DRILL_CHART_TOKENS, DRILL_DESCRIPTION_MAX, DRILL_DOORS, DRILL_SCHEMA, type DashboardBlock, type DashboardBlockKind, type DashboardBlockResult, type DashboardRunResult, type DashboardSummary, type DashboardTarget, type DashboardTargetBase, type DashboardTargetOp, type DashboardTargetResult, type DashboardTotals, type DataHomeTable, type DeclarableFieldKind, type DecorationColor, type DecorationPath, type DecorationRule, type DecorationRuleOp, type DecorationTarget, type Delivery, type DigestPreview, type DocRenderRow, type DocSignatureCheck, type DocSignatureRow, type DocTemplateRow, type DocToken, type DocUnresolvedToken, type DrillAdHocOp, type DrillAnswer, type DrillAnswerRow, type DrillChartToken, type DrillDeclaration, type DrillDefinition, type DrillDimension, type DrillFinding, type DrillGrain, type DrillHaving, type DrillLane, type DrillLevel, type DrillMeasure, type DrillMeasureOp, type DrillMeasureWhereValue, type DrillPath, type DrillQuestion, type DrillRecords, type DrillRowsPage, type DrillSource, type DrillView, ENTITY_TOKENS, type EnrichAlternate, type EnrichCell, type EnrichDeclared, type EnrichDueRow, type EnrichRun, type EnrichSource, type Enrichment, type EnrichmentSummary, type EntityBackLinkItem, type EntityBackLinks, type EntityFieldRights, type EntityFieldValue, type EntityFieldsAcross, type EntityRecordMatch, type EntityRecordRead, type EntityRecordsFound, type EntityRef, type EntityRefWithWords, type EntityReferenceKind, type EntityReferenceRead, type EntityRowWritten, type EntityTableFacts, type EntityToken, type ExternalPrincipalCard, FIELD_KINDS, FIELD_SENSITIVITIES, FIELD_SOURCES, FORMULA_NODE_RESULTS, FRESHNESS, type Field, type FieldBehavior, type FieldDrift, type FieldDriftAspect, type FieldDuplicated, type FieldHistoryEntry, type FieldKind, type FieldOptionEdit, type FieldOptions, type FieldPatch, type FieldProposal, type FieldRetyped, type FieldRule, type FieldSensitivity, type FieldSource, type FieldTypeWord, type ForbiddenEnvelopeWord, type FormArchiveAnswer, type FormLookOptions, type FormResults, type FormRoute, type FormSummary, type FormulaParse, type FormulaPreview, type Freshness, GRADUATION_BASE_COLUMNS, type GraduatedRelation, type GraduatedRow, type GridLayout, type GridLayoutMode, type GridRowHeight, type HiddenFieldNotice, type HistoryActor, type HistoryActorKind, type HistoryChange, type Home, type ImportBatchResult, type ImportColumnPlan, type ImportColumnsDeclared, type ImportFinished, type ImportOpened, type ImportOutcome, type ImportPlan, type ImportPolicy, type ImportProposal, type ImportReport, type ImportRun, type InboundAddress, type InboundDeclared, type InboxCounts, type InboxStateChange, type InsertOf, type InterfaceRead, type InterfaceRows, type InterfaceRowsField, type IoExportPage, KERNEL_TABLES, type KernelTableName, type KernelTargets, type KeysetRow, type ListTableRowsOptions, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, type MergeField, type MergeFieldModifier, type MergeFieldProvenance, type MergeFieldResolution, type MergeFieldSemanticType, type MergeFieldSource, type MergeFieldTransform, type MigrationEntry, type MigrationUndone, type MissingBehavior, type MyLevel, type MySubscription, NEWER_FIELD_KINDS, NOT_A_MEMBER_WORDS, type NewEntityFieldDeclaration, type NewFieldDeclaration, type NewerFieldKind, ON_DELETE, OVERRIDE_POLICIES, type ObjectKind, type ObjectOrganizationAnswer, type OnDelete, type OpLedger, type OutsideShareAnswer, type OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, PIPELINE_RULE_KINDS, PORTAL_ACCENTS, PORTAL_ARCHIVE_FILTERS, type ParentExtracted, type ParityFieldType, type ParityFieldTypeDescriptor, type PerValueAccessWord, type PermissionLevel, type PersonStamp, type PgError, type PickListDocument, type PickListItem, type PickListItemInput, type Pipeline, type PipelineColumn, type PipelineDeclared, type PipelineGate, type PipelineGatePreview, type PipelineMissingField, type PipelineMoveMany, type PipelineMoveManyItem, type PipelineMoveManyResult, type PipelineMoveResult, type PipelineMoveVerdict, type PipelineRule, type PipelineRuleKind, type PipelineSpec, type PipelineStage, type PipelineVerdict, type PortalAccent, type PortalArchiveAnswer, type PortalArchiveFilter, type PortalCard, type PortalConfig, type PortalConfigInput, type PortalFooterLink, type PortalFormAnswer, type PortalFormInput, type PortalFormRef, type PortalFormSpec, type PortalInvitation, type PortalPreviewRow, type PortalPrincipal, type PortalRevocation, type PortalStage, type PortalStyle, type PortalStyleInput, type PortalSummary, type PortalTableExposure, type PortalTableRef, type PredictedRefusal, type ProvenancePointer, type PublicPicture, type PublishBinding, type PublishBindingKind, type QueuedCapture, type QueuedCaptureFile, type QueuedCaptureState, type QuietHours, RECORDS_CACHE_GRACE_MS, REFUSALS_WORTH_REPEATING, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, REVERSE_LINKS_PAGE_MAX, REVERSE_LINKS_RECORDS_PER_CALL, ROW_LABEL_FORMULA_MAX_LENGTH, ROW_WEB_NOT_READY, RULE_NODE_KINDS, RULE_USES, type ReadRow, type ReadValue, type RecordChange, type RecordChangeAction, type RecordChangeResult, type RecordComment, type RecordDocument, type RecordEvent, type RecordFilter, type RecordGraphWritten, type RecordHeader, type RecordHistoryEntry, type RecordKeysetPage, type RecordOrganizationPort, type RecordPage, type RecordPageData, type RecordPageSort, type RecordRead, type RecordRevision, type RecordRowControls, type RecordScopeComment, type RecordScopeContext, type RecordScopeField, type RecordScopeHistoryEntry, type RecordScopeRelation, type RecordScopeWithheld, type RecordSplit, type RecordsActor, type RecordsChangeSink, type RecordsConfig, type RecordsDataSource, type RecordsError, type RecordsErrorCode, type RecordsErrorSink, type RecordsFilter, RecordsHoldScope, type RecordsMerged, RecordsProvider, type RecordsProviderProps, type RecordsRealtimePort, type RecordsResolverPort, type RecordsResponse, type RecordsResult, RecordsSeedProvider, type RecordsSeedProviderProps, type RecordsTableQuery, type RegisteredTable, type Relation, type RelationBinding, type RelationCardinality, type RelationCarries, type RelationCoordinate, type RelationDisplay, type RelationFlavor, type RelationIcons, type RelationNameIndex, type RelationNameMatch, type RelationNamesAnswer, type RelationProperties, type RelationTarget, type RelationWordsManyArgs, type ResolutionTriple, type ResolvedPublishBinding, type ResolvedPublishBindingKind, type RestorePreview, type RestoreResult, type RetiredActorWord, type RetypeBehaviour, type RetypePreview, type ReverseColumn, type ReverseLink, type ReverseLinks, type ReverseLinksFieldsArgs, type ReverseLinksManyArgs, type RowAction, type RowActionStep, type RowAgentPort, type RowAgentTarget, type RowDefaultsApplied, type RowOf, type RowTemplateRow, type Rule, type RuleAnswer, type RuleExpression, type RuleNodeKind, type RuleUse, SEED_FRESH_MS, SHOWN_TO_LABEL, SHOWN_TO_VALUES, SHOWN_TO_WHO_MAY_CHANGE, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, STATUS_GROUPS, STATUS_GROUP_WORDS, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, STORE_ROWS_CEILING, SYSTEM_WRITER_WORDS, type SavedViewColorBy, type SavedViewDefinition, type SavedViewLayout, type SavedViewRow, type SavedViewSpecIn, type ShownTo, type SourceArchived, type StagePending, type StagePendingOnBoard, type StageRuleEnforcement, type StageRuleOnFail, type StageRuleWarning, type StaleWriteDetail, type StatusGroup, type StorageMode, type StoreDoorName, type StoreFilter, type StoreInsertOf, type StoreRefusalCode, type StoreRowOf, type StoreRowSnapshot, type StoreTable, type StoreTableColumn, type StoreTableRows, type StoreTableSort, type StoreTableWhere, type StoredRecord, type StuckRow, type Subscription, type SubscriptionBlock, type SubscriptionCadence, type SubscriptionSpec, type SyncAutoRefresh, TABLE_DISPLAYS, TABLE_KIND_PREFIX, TABLE_ORIGINS, TABLE_TYPES, TO_ASSOCIATION, TO_CUSTOM_FIELDS, type Table, type TableArchiveProgress, type TableCapacity, type TableCopyInProgress, type TableCopySpec, type TableDecorations, type TableDisplay, type TableDuplicateProgress, type TableDuplicated, type TableHome, type TableHomeDestination, type TableKindFacts, type TableLevel, type TableLevelApproval, type TableLevelFacts, type TableLevelSet, type TableListEntry, type TableMoved, type TableOrigin, type TablePlacement, type TablePlacementFact, type TableProposal, type TableReaderRule, type TableRenderSchema, type TableRestoreProgress, type TableRowCount, type TableRowDefaults, type TableRowDefaultsPatch, type TableRowLabel, type TableSchemaMode, type TableSyncAnswer, type TableSyncResult, type TableSyncSettings, type TableSyncSource, type TableSyncSourceDocument, type TableSyncSpec, type TableType, type TableWebhook, type TableWebhookDeclared, type Timestamp, type TypedChoiceDecision, type TypedDate, type TypedMatchScore, type TypedNumber, type TypedTableChecked, type TypedTableConfidential, type TypedTableDef, type TypedTableEnsured, type TypedTableGraduation, type TypedTableInput, type TypedTableOrgOptions, type TypedTableReader, type TypedTableScope, type TypedTableStatus, type TypedTime, type UniqueKeys, type UseEntityBackLinks, type UseEntityFieldMutation, type UseFieldMutation, type UseRecordMutation, type UseRecordOptions, type UseRecordPageOptions, type UseRecordPageState, type UseRecordsOptions, type UseRecordsState, type UseStoreTable, type UseTableArchive, type UseTypedTable, type UseTypedTableOptions, type Uuid, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, type ValueAlternate, type ValueAlternateKey, type ValueEnvelope, type ValueEnvelopeKey, type ValueSource, type ViewLayout, type ViewOrderSet, WHERE_ID_OPENS_DOOR, type WorkApprovalDecision, type WorkApprovalFiled, type WorkApprovalState, type WorkApprover, type WorkAssignment, type WorkAssignmentField, type WorkChange, type WorkDecideMany, type WorkDecideManyItem, type WorkDecideManyResult, type WorkDecideVerdict, type WorkDueState, type WorkGraph, type WorkInboxItem, type WorkInboxKind, type WorkInboxView, type WorkInstantiation, type WorkListFlavour, type WorkListItem, type WorkOrigin, type WorkRecordState, type WorkSlotHold, type WorkState, type WorkTemplateNode, type WorkTemplateRelation, type WorkTurn, type WriteConflict, actionRefusals, addressFromText, addressMapUrl, addressText, allowsOtherValues, alternatePatch, archiveTableRow, archiveTypedTableDeliberately, archivedByLine, archivedWhen, asChoiceNudge, asPermissionLevel, atLeast, automationWebhookUrl, autonumberJoin, autonumberPrefixOf, autonumberSearchOf, autonumberWords, baseCopyName, bookingPath, buttonNeeds, buttonOf, buttonUrlPlaceholders, callersTimeZone, checkTypedTable, choiceSlug, choiceValuesOf, choicesOf, chooseAlternate, clearsRowLabel, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, confidentialGate, confidentialRefusal, confidentialRequest, confidentialState, createOpLedger, decideTypedChoice, declareDrillDefinition, defaultOpLedger, defineTypedTable, drillAnswerOf, drillFindingKnob, duplicateBase, durationText, emptyArchiveLine, emptyPortalArchiveLine, ensureAppAutomations, ensureTypedTable, entityReferenceKinds, entityReferenceKindsOf, entityReferenceSearch, entityReferenceWords, entityRefsOf, entityRefsToWrite, err, exportPageXlsx, f, fieldKindFor, fieldKindOf, filterWithAutonumber, forgetAllOps, graduatedRow, graduationProblems, hasQuietHours, highestLevel, holdsARetiredChoice, indexedDbStore, isAddressValue, isArchiveLane, isAutonumberField, isButtonField, isDecided, isEntityReferenceConfig, isFoundation, isLockedStub, isOwnOp, isPersonStamp, isPortalAccent, isPortalArchiveFilter, isRecordsErr, isReverseField, isRuleFilter, isShownTo, isTableKind, isTheChosen, keptGroups, keptOutOfSight, keptTableHref, levelHasShownTo, liftWithheld, listAppRows, listTableRows, localeDateOrder, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, moveConsequence, moveInOrder, newerKindExportWords, newerKindOf, newerKindWords, offeredAsContext, ok, openCaptureQueue, optionKey, optionLabel, parseFieldDrift, parseTableCopiesInProgress, parseTableDuplicateProgress, parseTableDuplicated, parseTableHome, parseTableMoved, personStampText, pointAtCopies, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, previewRetype, previewRuleChange, publicFormPath, rankTypedMatches, ratingMaxOf, readObjectOrganizationAnswer, readTypedDate, readTypedDuration, readTypedNumber, readTypedTime, readersMatch, recordChangeTrigger, recordSourceKey, recordSourceTable, recordsCacheCounters, recordsUseSentence, rehomeSentence, relationNameIndexOf, relationNameKey, relationNamesIn, rememberedOpCount, removeAppRow, removedChoicesInUse, resolveObjectOrganization, restoreSnapshot, richTextPlain, rowFromDocument, ruleThatRefuses, rulesWithTopStar, safeLinkHref, sameDocument, scopeChip, sha256Hex, sheetSyncSpec, snapshotBase, sourceArchivedOf, splitListCell, splitLockedRows, stableFilterKey, statusGroupOf, storeTable, tableIdOf, tableJsonSchema, tableKindMapping, tableKindSlug, tableRenderSchema, tableShapeChanged, twoDigitYear, typedDateText, typedMatchScore, typedTimeText, unwrapRecords, updateTableRow, upsertAppRow, useEntityBackLinks, useEntityFieldMutation, useEntityFieldRights, useEntityFields, useEntityRecord, useEntityReferenceKinds, useEntityReferenceSearch, useEntityReferenceWords, useEntityTable, useFieldMutation, useFields, useMergeField, useMyLevel, useMyLevels, useOptionalRecordsClient, useRecord, useRecordChangeRevision, useRecordMutation, useRecordPage, useRecordWrites, useRecords, useRecordsActor, useRecordsClient, useRecordsHold, useReverseColumns, useReverseLinks, useRowActions, useSeededAggregate, useSeededAnswer, useSeededAnswerAt, useSeededSource, useStoreTable, useTable, useTableArchive, useTables, useTypedTable, valueConverts, whereIdOpensPort, withCallersClock, withRowCounts, withTablePlacement, writeTableRow };
18294
+ export { ABSENCE_REASONS, ACTOR_VOCABULARY, ADDRESS_PARTS, AGENT_WRITER_WORDS, APP_ROWS_CEILING, ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, type AbsenceReason, type ActionRefusal, type ActionRunResult, type Actor, type AddressPart, type AddressValue, type AdminTable, type AggregateBucket, type AggregateCompare, type AggregateCompareKind, type AggregateCompareWindows, type AggregateDelta, type AggregateFilter, type AggregateGroupValue, type AggregateMeasure, type AggregateOperation, type AggregateRow, type AggregateWindow, type AnonTokenBinding, type AnyStoreTable, type AnyTypedTableDef, type AppAutomationSpec, type AppField, type AppFields, type AppRows, type AppUpsertOptions, type ArchiveDeliberatelyArgs, type ArchiveLane, type ArchivedChecklistTemplate, type ArchivedDoorRow, type ArchivedForm, type ArchivedRow, type AutomationAction, type AutomationComparison, type AutomationDeclared, type AutomationFilter, type AutomationFlipped, type AutomationItem, type AutomationLastRun, type AutomationList, type AutomationRevision, type AutomationRevisions, type AutomationRun, type AutomationRunStatus, type AutomationRuns, type AutomationSpec, type AutomationStep, type AutomationTested, type AutomationToken, type AutomationTrigger, type AutomationValue, type AutomationValues, type AutomationWeekday, type AutomationWhen, BARCODE_SYMBOLOGIES, BUILT_KIND_WORD, BUTTON_DOES, type BaseCopied, type BaseCopyProgress, type BaseCopyResult, type BasePort, type BaseSnapshotRecord, type BaseTable, type BookingAvailability, type BookingDeclared, type BookingSummary, type BookingWindow, type ButtonDoes, type ButtonPressed, type ButtonSettings, CHOICE_NUDGES, COMPUTE_ON, CONTEXT_POLICIES, type CaptureField, type CaptureFileRef, type CaptureOutcome, type CaptureQuestion, type CaptureQueue, type CaptureQueueCounts, type CaptureQueueOptions, type CaptureQueuePorts, type CaptureQueueStore, type CaptureSheetFace, type CaptureSheetSummary, type CaptureSyncReport, type ChecklistDeclared, type ChecklistRequirement, type ChecklistRequirementKind, type ChecklistRoleSpec, type ChecklistRunStarted, type ChecklistRunStep, type ChecklistRunSummary, type ChecklistSpec, type ChecklistStepCompleted, type ChecklistStepSpec, type ChecklistTemplateShape, type ChecklistTemplateSummary, type ChecklistTrigger, type ChecklistTriggerKind, type ChoiceCellBack, type ChoiceLike, type ChoiceNudge, type ChoiceOption, type ChoiceOptions, type ChoiceRehome, type ChoiceUsage, type ChoicesRehomed, type ChooseAlternateArgs, type CoerceOptions, type Coerced, type CoercedAnswers, type CoercibleField, type CommentThreadRead, type CommentWritten, type ComputeOn, type ConfidentialRequest, type ConfidentialState, type ContextPolicy$1 as ContextPolicy, type ConversationScope, type ConversationScopeContext, type CustomFieldTableType, DECLARABLE_FIELD_KINDS, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DELIVERIES, DRILL_CHART_TOKENS, DRILL_DESCRIPTION_MAX, DRILL_DOORS, DRILL_SCHEMA, type DashboardBlock, type DashboardBlockKind, type DashboardBlockResult, type DashboardRunResult, type DashboardSummary, type DashboardTarget, type DashboardTargetBase, type DashboardTargetOp, type DashboardTargetResult, type DashboardTotals, type DataHomeTable, type DeclarableFieldKind, type DecorationColor, type DecorationPath, type DecorationRule, type DecorationRuleOp, type DecorationTarget, type Delivery, type DigestPreview, type DocRenderRow, type DocSignatureCheck, type DocSignatureRow, type DocTemplateRow, type DocToken, type DocUnresolvedToken, type DrillAdHocOp, type DrillAnswer, type DrillAnswerRow, type DrillChartToken, type DrillDeclaration, type DrillDefinition, type DrillDimension, type DrillFinding, type DrillGrain, type DrillHaving, type DrillLane, type DrillLevel, type DrillMeasure, type DrillMeasureOp, type DrillMeasureWhereValue, type DrillPath, type DrillQuestion, type DrillRecords, type DrillRowsPage, type DrillSource, type DrillView, ENTITY_TOKENS, type EnrichAlternate, type EnrichCell, type EnrichDeclared, type EnrichDueRow, type EnrichRun, type EnrichSource, type Enrichment, type EnrichmentSummary, type EntityBackLinkItem, type EntityBackLinks, type EntityFieldRights, type EntityFieldValue, type EntityFieldsAcross, type EntityRecordMatch, type EntityRecordRead, type EntityRecordsFound, type EntityRef, type EntityRefWithWords, type EntityReferenceKind, type EntityReferenceRead, type EntityRowWritten, type EntityTableFacts, type EntityToken, type ExternalPrincipalCard, FIELD_KINDS, FIELD_SENSITIVITIES, FIELD_SOURCES, FORMULA_NODE_RESULTS, FRESHNESS, type Field, type FieldBehavior, type FieldDrift, type FieldDriftAspect, type FieldDuplicated, type FieldHistoryEntry, type FieldKind, type FieldOptionEdit, type FieldOptions, type FieldPatch, type FieldProposal, type FieldRetyped, type FieldRule, type FieldSensitivity, type FieldSource, type FieldTypeWord, type ForbiddenEnvelopeWord, type FormArchiveAnswer, type FormLookOptions, type FormResults, type FormRoute, type FormSummary, type FormulaParse, type FormulaPreview, type Freshness, GRADUATION_BASE_COLUMNS, type GraduatedRelation, type GraduatedRow, type GridLayout, type GridLayoutMode, type GridRowHeight, type HiddenFieldNotice, type HistoryActor, type HistoryActorKind, type HistoryChange, type Home, type ImportBatchResult, type ImportColumnPlan, type ImportColumnsDeclared, type ImportFinished, type ImportOpened, type ImportOutcome, type ImportPlan, type ImportPolicy, type ImportProposal, type ImportReport, type ImportRun, type InboundAddress, type InboundDeclared, type InboxCounts, type InboxStateChange, type InsertOf, type InterfaceRead, type InterfaceRows, type InterfaceRowsField, type IoExportPage, KERNEL_TABLES, type KernelTableName, type KernelTargets, type KeysetRow, type ListTableRowsOptions, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, type MergeField, type MergeFieldModifier, type MergeFieldProvenance, type MergeFieldResolution, type MergeFieldSemanticType, type MergeFieldSource, type MergeFieldTransform, type MigrationEntry, type MigrationUndone, type MissingBehavior, type MyLevel, type MySubscription, NEWER_FIELD_KINDS, NOT_A_MEMBER_WORDS, type NewEntityFieldDeclaration, type NewFieldDeclaration, type NewerFieldKind, ON_DELETE, OVERRIDE_POLICIES, type ObjectKind, type ObjectOrganizationAnswer, type OnDelete, type OpLedger, type OutsideShareAnswer, type OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, PIPELINE_RULE_KINDS, PORTAL_ACCENTS, PORTAL_ARCHIVE_FILTERS, type ParentExtracted, type ParityFieldType, type ParityFieldTypeDescriptor, type PerValueAccessWord, type PermissionLevel, type PersonStamp, type PgError, type PickListDocument, type PickListItem, type PickListItemInput, type Pipeline, type PipelineColumn, type PipelineDeclared, type PipelineGate, type PipelineGatePreview, type PipelineMissingField, type PipelineMoveMany, type PipelineMoveManyItem, type PipelineMoveManyResult, type PipelineMoveResult, type PipelineMoveVerdict, type PipelineRule, type PipelineRuleKind, type PipelineSpec, type PipelineStage, type PipelineVerdict, type PortalAccent, type PortalArchiveAnswer, type PortalArchiveFilter, type PortalCard, type PortalConfig, type PortalConfigInput, type PortalFooterLink, type PortalFormAnswer, type PortalFormInput, type PortalFormRef, type PortalFormSpec, type PortalInvitation, type PortalPreviewRow, type PortalPrincipal, type PortalRevocation, type PortalStage, type PortalStyle, type PortalStyleInput, type PortalSummary, type PortalTableExposure, type PortalTableRef, type PredictedRefusal, type ProvenancePointer, type PublicPicture, type PublishBinding, type PublishBindingKind, type QueuedCapture, type QueuedCaptureFile, type QueuedCaptureState, type QuietHours, RECORDS_CACHE_GRACE_MS, REFUSALS_WORTH_REPEATING, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, REVERSE_LINKS_PAGE_MAX, REVERSE_LINKS_RECORDS_PER_CALL, ROW_LABEL_FORMULA_MAX_LENGTH, ROW_WEB_NOT_READY, RULE_NODE_KINDS, RULE_USES, type ReadRow, type ReadValue, type RecordChange, type RecordChangeAction, type RecordChangeResult, type RecordComment, type RecordDocument, type RecordEvent, type RecordFilter, type RecordGraphWritten, type RecordHeader, type RecordHistoryEntry, type RecordKeysetPage, type RecordOrganizationPort, type RecordPage, type RecordPageData, type RecordPageSort, type RecordRead, type RecordRevision, type RecordRowControls, type RecordScopeComment, type RecordScopeContext, type RecordScopeField, type RecordScopeHistoryEntry, type RecordScopeRelation, type RecordScopeWithheld, type RecordSplit, type RecordsActor, type RecordsChangeSink, type RecordsConfig, type RecordsDataSource, type RecordsError, type RecordsErrorCode, type RecordsErrorSink, type RecordsFilter, RecordsHoldScope, type RecordsMerged, RecordsProvider, type RecordsProviderProps, type RecordsRealtimePort, type RecordsResolverPort, type RecordsResponse, type RecordsResult, RecordsSeedProvider, type RecordsSeedProviderProps, type RecordsTableQuery, type RegisteredTable, type Relation, type RelationBinding, type RelationCardinality, type RelationCarries, type RelationCoordinate, type RelationDisplay, type RelationFlavor, type RelationIcons, type RelationNameIndex, type RelationNameMatch, type RelationNamesAnswer, type RelationProperties, type RelationTarget, type RelationWordsManyArgs, type ResolutionTriple, type ResolvedPublishBinding, type ResolvedPublishBindingKind, type RestorePreview, type RestoreResult, type RetiredActorWord, type RetypeBehaviour, type RetypePreview, type ReverseColumn, type ReverseLink, type ReverseLinks, type ReverseLinksFieldsArgs, type ReverseLinksManyArgs, type RowAction, type RowActionStep, type RowAgentPort, type RowAgentTarget, type RowDefaultsApplied, type RowOf, type RowTemplateRow, type Rule, type RuleAnswer, type RuleExpression, type RuleNodeKind, type RuleUse, SEED_FRESH_MS, SHOWN_TO_LABEL, SHOWN_TO_VALUES, SHOWN_TO_WHO_MAY_CHANGE, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, STATUS_GROUPS, STATUS_GROUP_WORDS, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, STORE_ROWS_CEILING, SYSTEM_WRITER_WORDS, type SavedViewColorBy, type SavedViewDefinition, type SavedViewLayout, type SavedViewRow, type SavedViewSpecIn, type ShownTo, type SourceArchived, type StagePending, type StagePendingOnBoard, type StageRuleEnforcement, type StageRuleOnFail, type StageRuleWarning, type StaleWriteDetail, type StatusGroup, type StorageMode, type StoreDoorName, type StoreFilter, type StoreInsertOf, type StoreRefusalCode, type StoreRowOf, type StoreRowSnapshot, type StoreTable, type StoreTableColumn, type StoreTableRows, type StoreTableSort, type StoreTableWhere, type StoredRecord, type StuckRow, type Subscription, type SubscriptionBlock, type SubscriptionCadence, type SubscriptionSpec, type SyncAutoRefresh, TABLE_DISPLAYS, TABLE_KIND_PREFIX, TABLE_ORIGINS, TABLE_TYPES, TO_ASSOCIATION, TO_CUSTOM_FIELDS, type Table, type TableArchiveProgress, type TableCapacity, type TableCopyInProgress, type TableCopySpec, type TableDecorations, type TableDisplay, type TableDuplicateProgress, type TableDuplicated, type TableHome, type TableHomeDestination, type TableKindFacts, type TableLevel, type TableLevelApproval, type TableLevelFacts, type TableLevelSet, type TableListEntry, type TableMoved, type TableOrigin, type TablePlacement, type TablePlacementFact, type TableProposal, type TableReaderRule, type TableRenderSchema, type TableRestoreProgress, type TableRowCount, type TableRowDefaults, type TableRowDefaultsPatch, type TableRowLabel, type TableSchemaMode, type TableSyncAnswer, type TableSyncResult, type TableSyncSettings, type TableSyncSource, type TableSyncSourceDocument, type TableSyncSpec, type TableType, type TableWebhook, type TableWebhookDeclared, type Timestamp, type TypedChoiceDecision, type TypedDate, type TypedMatchScore, type TypedNumber, type TypedTableChecked, type TypedTableConfidential, type TypedTableDef, type TypedTableEnsured, type TypedTableGraduation, type TypedTableInput, type TypedTableOrgOptions, type TypedTableReader, type TypedTableScope, type TypedTableStatus, type TypedTime, type UniqueKeys, type UseEntityBackLinks, type UseEntityFieldMutation, type UseFieldMutation, type UseRecordMutation, type UseRecordOptions, type UseRecordPageOptions, type UseRecordPageState, type UseRecordsOptions, type UseRecordsState, type UseStoreTable, type UseTableArchive, type UseTypedTable, type UseTypedTableOptions, type Uuid, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, type ValueAlternate, type ValueAlternateKey, type ValueEnvelope, type ValueEnvelopeKey, type ValueSource, type ViewLayout, type ViewOrderSet, WHERE_ID_OPENS_DOOR, type WorkApprovalDecision, type WorkApprovalFiled, type WorkApprovalState, type WorkApprover, type WorkAssignment, type WorkAssignmentField, type WorkChange, type WorkDecideMany, type WorkDecideManyItem, type WorkDecideManyResult, type WorkDecideVerdict, type WorkDueState, type WorkGraph, type WorkInboxItem, type WorkInboxKind, type WorkInboxView, type WorkInstantiation, type WorkListFlavour, type WorkListItem, type WorkOrigin, type WorkRecordState, type WorkSlotHold, type WorkState, type WorkTemplateNode, type WorkTemplateRelation, type WorkTurn, type WriteConflict, actionRefusals, addressFromText, addressMapUrl, addressText, allowsOtherValues, alternatePatch, archiveTableRow, archiveTypedTableDeliberately, archivedByLine, archivedWhen, asChoiceNudge, asPermissionLevel, atLeast, automationWebhookUrl, autonumberJoin, autonumberPrefixOf, autonumberSearchOf, autonumberWords, baseCopyName, bookingPath, buttonNeeds, buttonOf, buttonUrlPlaceholders, callersTimeZone, checkTypedTable, choiceSlug, choiceValuesOf, choicesOf, chooseAlternate, clearsRowLabel, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, confidentialGate, confidentialRefusal, confidentialRequest, confidentialState, createOpLedger, decideTypedChoice, declareDrillDefinition, defaultOpLedger, defineTypedTable, drillAnswerOf, drillFindingKnob, duplicateBase, durationText, emptyArchiveLine, emptyPortalArchiveLine, ensureAppAutomations, ensureTypedTable, entityReferenceKinds, entityReferenceKindsOf, entityReferenceSearch, entityReferenceWords, entityRefsOf, entityRefsToWrite, err, exportPageXlsx, f, fieldKindFor, fieldKindOf, filterWithAutonumber, forgetAllOps, graduatedRow, graduationProblems, hasQuietHours, highestLevel, holdsARetiredChoice, idsOfCopies, indexedDbStore, isAddressValue, isArchiveLane, isAutonumberField, isButtonField, isDecided, isEntityReferenceConfig, isFoundation, isLockedStub, isOwnOp, isPersonStamp, isPortalAccent, isPortalArchiveFilter, isRecordsErr, isReverseField, isRuleFilter, isShownTo, isTableKind, isTheChosen, keptGroups, keptOutOfSight, keptTableHref, levelHasShownTo, liftWithheld, listAppRows, listTableRows, localeDateOrder, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, moveConsequence, moveInOrder, newerKindExportWords, newerKindOf, newerKindWords, offeredAsContext, ok, openCaptureQueue, optionKey, optionLabel, parseFieldDrift, parseTableCopiesInProgress, parseTableDuplicateProgress, parseTableDuplicated, parseTableHome, parseTableMoved, personStampText, pointAtCopies, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, previewRetype, previewRuleChange, publicFormPath, rankTypedMatches, ratingMaxOf, readObjectOrganizationAnswer, readTypedDate, readTypedDuration, readTypedNumber, readTypedTime, readersMatch, recordChangeTrigger, recordSourceKey, recordSourceTable, recordsCacheCounters, recordsUseSentence, rehomeSentence, relationNameIndexOf, relationNameKey, relationNamesIn, rememberedOpCount, removeAppRow, removedChoicesInUse, resolveObjectOrganization, restoreSnapshot, restoredBaseName, richTextPlain, rowFromDocument, ruleThatRefuses, rulesWithTopStar, safeLinkHref, sameDocument, scopeChip, sha256Hex, sheetSyncSpec, snapshotBase, sourceArchivedOf, splitListCell, splitLockedRows, stableFilterKey, statusGroupOf, storeTable, tableIdOf, tableJsonSchema, tableKindMapping, tableKindSlug, tableRenderSchema, tableShapeChanged, twoDigitYear, typedDateText, typedMatchScore, typedTimeText, unwrapRecords, updateTableRow, upsertAppRow, useEntityBackLinks, useEntityFieldMutation, useEntityFieldRights, useEntityFields, useEntityRecord, useEntityReferenceKinds, useEntityReferenceSearch, useEntityReferenceWords, useEntityTable, useFieldMutation, useFields, useMergeField, useMyLevel, useMyLevels, useOptionalRecordsClient, useRecord, useRecordChangeRevision, useRecordMutation, useRecordPage, useRecordWrites, useRecords, useRecordsActor, useRecordsClient, useRecordsHold, useReverseColumns, useReverseLinks, useRowActions, useSeededAggregate, useSeededAnswer, useSeededAnswerAt, useSeededSource, useStoreTable, useTable, useTableArchive, useTables, useTypedTable, valueConverts, whereIdOpensPort, withCallersClock, withRowCounts, withTablePlacement, writeTableRow };
@@ -6891,6 +6891,8 @@ interface Table {
6891
6891
  row_order: string | null;
6892
6892
  /** REC-14. Where this Table lives. Exactly one primary Home. */
6893
6893
  home_id: Uuid | null;
6894
+ /** The feature that keeps this Table out of the person's lists (`snapshot`, `copying`, …); absent for a person's own table. */
6895
+ kept_for?: string | null;
6894
6896
  /** REC-27. One of the nine, defined in code and not editable by Migration. */
6895
6897
  is_kernel: boolean;
6896
6898
  created_by: Uuid | null;
@@ -11421,6 +11423,19 @@ interface BasePort {
11421
11423
  /** `RecordsClient.tableArchive` / its restore: put a copy away, or bring it back to be copied from. */
11422
11424
  archive?(tableId: Uuid): Promise<RecordsResult<unknown>>;
11423
11425
  unarchive?(tableId: Uuid): Promise<RecordsResult<unknown>>;
11426
+ /** The door that makes a table's Home today (`declareTable`): a new record "<name>" in the person kernel. A NEW base is a new Home. */
11427
+ createHome?(name: string): Promise<RecordsResult<Uuid>>;
11428
+ /** The one door that moves a table between Homes: `custom.record_reparent` (`RecordsClient.recordReparent`). Pages and automations ride on their table. */
11429
+ moveInto?(tableId: Uuid, homeId: Uuid): Promise<RecordsResult<unknown>>;
11430
+ /** Columns and views of a table (`RecordsClient.fields` / `views`): a copy's automations and pages name the COPY's column and view ids. */
11431
+ fieldsOf?(tableId: Uuid): Promise<RecordsResult<Array<{
11432
+ id: Uuid;
11433
+ key: string;
11434
+ }>>>;
11435
+ viewsOf?(tableId: Uuid): Promise<RecordsResult<Array<{
11436
+ id: Uuid;
11437
+ name: string;
11438
+ }>>>;
11424
11439
  }
11425
11440
  interface BaseCopyProgress {
11426
11441
  /** 1-based position of the table being copied, and how many there are. */
@@ -11430,6 +11445,8 @@ interface BaseCopyProgress {
11430
11445
  pass: TableDuplicateProgress | null;
11431
11446
  }
11432
11447
  interface BaseCopied {
11448
+ /** The NEW Home every copied table now lives in (a copy is its own base); null when the port cannot make Homes. */
11449
+ homeId: Uuid | null;
11433
11450
  /** Source table id → its copy. */
11434
11451
  pairs: Record<Uuid, Uuid>;
11435
11452
  tables: Array<{
@@ -11460,6 +11477,8 @@ type BaseCopyResult = {
11460
11477
  };
11461
11478
  /** "Harbor Studio (copy)", the same word the table dialog offers. */
11462
11479
  declare function baseCopyName(name: string): string;
11480
+ /** "Harbor Studio (restored 10/15/2026)". */
11481
+ declare function restoredBaseName(name: string, on: string): string;
11463
11482
  /** Duplicate every table of a base. `names` (by source table id) overrides the "<name>" a copy is given. */
11464
11483
  declare function duplicateBase(port: BasePort, args: {
11465
11484
  organizationId: Uuid;
@@ -11468,9 +11487,16 @@ declare function duplicateBase(port: BasePort, args: {
11468
11487
  /** The copy's name for each table; default the source's own name (the copies live together in the new base). */
11469
11488
  nameFor?: (table: BaseTable) => string;
11470
11489
  onProgress?: (p: BaseCopyProgress) => void;
11490
+ /** Put the copies in a NEW Home with this name (a base is a Home); absent keeps each copy where the per-table door put it. */
11491
+ homeName?: string;
11471
11492
  }): Promise<BaseCopyResult>;
11472
11493
  /** Every table id (and any id of a copied table) inside a document becomes its copy's id. Column keys are kept by a copy, so they stay. */
11473
11494
  declare function pointAtCopies<T>(doc: T, pairs: Record<Uuid, Uuid>): T;
11495
+ /**
11496
+ * Every id a copy renamed, old → new: the tables, then each column (matched by key, which a copy keeps) and each view (matched by
11497
+ * name). An automation or page of the copy that kept the ORIGINAL's column or view ids would watch the wrong table.
11498
+ */
11499
+ declare function idsOfCopies(port: BasePort, pairs: Record<Uuid, Uuid>): Promise<Record<Uuid, Uuid>>;
11474
11500
  interface BaseSnapshotRecord {
11475
11501
  label: string;
11476
11502
  origin: "manual" | "schedule";
@@ -11501,6 +11527,8 @@ declare function snapshotBase(port: BasePort, args: {
11501
11527
  declare function restoreSnapshot(port: BasePort, args: {
11502
11528
  organizationId: Uuid;
11503
11529
  snapshot: BaseSnapshotRecord;
11530
+ baseName?: string;
11531
+ restoredOn?: string;
11504
11532
  onProgress?: (p: BaseCopyProgress) => void;
11505
11533
  }): Promise<BaseCopyResult>;
11506
11534
 
@@ -13904,6 +13932,14 @@ interface RecordsClient {
13904
13932
  recordDelete(args: {
13905
13933
  record_id: Uuid;
13906
13934
  }): Promise<RecordsResult<Timestamp>>;
13935
+ /**
13936
+ * MOVE A RECORD (a Table included) INTO ANOTHER HOME — `custom.record_reparent`, the one door that changes where a
13937
+ * record is contained. `parent_id` is the Home's record id (null takes it out). Admin on the record, viewer on the Home.
13938
+ */
13939
+ recordReparent(args: {
13940
+ record_id: Uuid;
13941
+ parent_id: Uuid | null;
13942
+ }): Promise<RecordsResult<null>>;
13907
13943
  recordRestore(args: {
13908
13944
  record_id: Uuid;
13909
13945
  }): Promise<RecordsResult<void>>;
@@ -18255,4 +18291,4 @@ interface AppAutomationSpec {
18255
18291
  */
18256
18292
  declare function ensureAppAutomations(client: RecordsClient, def: AnyTypedTableDef, specs: readonly AppAutomationSpec[], options?: TypedTableOrgOptions): Promise<RecordsResult<Uuid[]>>;
18257
18293
 
18258
- export { ABSENCE_REASONS, ACTOR_VOCABULARY, ADDRESS_PARTS, AGENT_WRITER_WORDS, APP_ROWS_CEILING, ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, type AbsenceReason, type ActionRefusal, type ActionRunResult, type Actor, type AddressPart, type AddressValue, type AdminTable, type AggregateBucket, type AggregateCompare, type AggregateCompareKind, type AggregateCompareWindows, type AggregateDelta, type AggregateFilter, type AggregateGroupValue, type AggregateMeasure, type AggregateOperation, type AggregateRow, type AggregateWindow, type AnonTokenBinding, type AnyStoreTable, type AnyTypedTableDef, type AppAutomationSpec, type AppField, type AppFields, type AppRows, type AppUpsertOptions, type ArchiveDeliberatelyArgs, type ArchiveLane, type ArchivedChecklistTemplate, type ArchivedDoorRow, type ArchivedForm, type ArchivedRow, type AutomationAction, type AutomationComparison, type AutomationDeclared, type AutomationFilter, type AutomationFlipped, type AutomationItem, type AutomationLastRun, type AutomationList, type AutomationRevision, type AutomationRevisions, type AutomationRun, type AutomationRunStatus, type AutomationRuns, type AutomationSpec, type AutomationStep, type AutomationTested, type AutomationToken, type AutomationTrigger, type AutomationValue, type AutomationValues, type AutomationWeekday, type AutomationWhen, BARCODE_SYMBOLOGIES, BUILT_KIND_WORD, BUTTON_DOES, type BaseCopied, type BaseCopyProgress, type BaseCopyResult, type BasePort, type BaseSnapshotRecord, type BaseTable, type BookingAvailability, type BookingDeclared, type BookingSummary, type BookingWindow, type ButtonDoes, type ButtonPressed, type ButtonSettings, CHOICE_NUDGES, COMPUTE_ON, CONTEXT_POLICIES, type CaptureField, type CaptureFileRef, type CaptureOutcome, type CaptureQuestion, type CaptureQueue, type CaptureQueueCounts, type CaptureQueueOptions, type CaptureQueuePorts, type CaptureQueueStore, type CaptureSheetFace, type CaptureSheetSummary, type CaptureSyncReport, type ChecklistDeclared, type ChecklistRequirement, type ChecklistRequirementKind, type ChecklistRoleSpec, type ChecklistRunStarted, type ChecklistRunStep, type ChecklistRunSummary, type ChecklistSpec, type ChecklistStepCompleted, type ChecklistStepSpec, type ChecklistTemplateShape, type ChecklistTemplateSummary, type ChecklistTrigger, type ChecklistTriggerKind, type ChoiceCellBack, type ChoiceLike, type ChoiceNudge, type ChoiceOption, type ChoiceOptions, type ChoiceRehome, type ChoiceUsage, type ChoicesRehomed, type ChooseAlternateArgs, type CoerceOptions, type Coerced, type CoercedAnswers, type CoercibleField, type CommentThreadRead, type CommentWritten, type ComputeOn, type ConfidentialRequest, type ConfidentialState, type ContextPolicy$1 as ContextPolicy, type ConversationScope, type ConversationScopeContext, type CustomFieldTableType, DECLARABLE_FIELD_KINDS, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DELIVERIES, DRILL_CHART_TOKENS, DRILL_DESCRIPTION_MAX, DRILL_DOORS, DRILL_SCHEMA, type DashboardBlock, type DashboardBlockKind, type DashboardBlockResult, type DashboardRunResult, type DashboardSummary, type DashboardTarget, type DashboardTargetBase, type DashboardTargetOp, type DashboardTargetResult, type DashboardTotals, type DataHomeTable, type DeclarableFieldKind, type DecorationColor, type DecorationPath, type DecorationRule, type DecorationRuleOp, type DecorationTarget, type Delivery, type DigestPreview, type DocRenderRow, type DocSignatureCheck, type DocSignatureRow, type DocTemplateRow, type DocToken, type DocUnresolvedToken, type DrillAdHocOp, type DrillAnswer, type DrillAnswerRow, type DrillChartToken, type DrillDeclaration, type DrillDefinition, type DrillDimension, type DrillFinding, type DrillGrain, type DrillHaving, type DrillLane, type DrillLevel, type DrillMeasure, type DrillMeasureOp, type DrillMeasureWhereValue, type DrillPath, type DrillQuestion, type DrillRecords, type DrillRowsPage, type DrillSource, type DrillView, ENTITY_TOKENS, type EnrichAlternate, type EnrichCell, type EnrichDeclared, type EnrichDueRow, type EnrichRun, type EnrichSource, type Enrichment, type EnrichmentSummary, type EntityBackLinkItem, type EntityBackLinks, type EntityFieldRights, type EntityFieldValue, type EntityFieldsAcross, type EntityRecordMatch, type EntityRecordRead, type EntityRecordsFound, type EntityRef, type EntityRefWithWords, type EntityReferenceKind, type EntityReferenceRead, type EntityRowWritten, type EntityTableFacts, type EntityToken, type ExternalPrincipalCard, FIELD_KINDS, FIELD_SENSITIVITIES, FIELD_SOURCES, FORMULA_NODE_RESULTS, FRESHNESS, type Field, type FieldBehavior, type FieldDrift, type FieldDriftAspect, type FieldDuplicated, type FieldHistoryEntry, type FieldKind, type FieldOptionEdit, type FieldOptions, type FieldPatch, type FieldProposal, type FieldRetyped, type FieldRule, type FieldSensitivity, type FieldSource, type FieldTypeWord, type ForbiddenEnvelopeWord, type FormArchiveAnswer, type FormLookOptions, type FormResults, type FormRoute, type FormSummary, type FormulaParse, type FormulaPreview, type Freshness, GRADUATION_BASE_COLUMNS, type GraduatedRelation, type GraduatedRow, type GridLayout, type GridLayoutMode, type GridRowHeight, type HiddenFieldNotice, type HistoryActor, type HistoryActorKind, type HistoryChange, type Home, type ImportBatchResult, type ImportColumnPlan, type ImportColumnsDeclared, type ImportFinished, type ImportOpened, type ImportOutcome, type ImportPlan, type ImportPolicy, type ImportProposal, type ImportReport, type ImportRun, type InboundAddress, type InboundDeclared, type InboxCounts, type InboxStateChange, type InsertOf, type InterfaceRead, type InterfaceRows, type InterfaceRowsField, type IoExportPage, KERNEL_TABLES, type KernelTableName, type KernelTargets, type KeysetRow, type ListTableRowsOptions, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, type MergeField, type MergeFieldModifier, type MergeFieldProvenance, type MergeFieldResolution, type MergeFieldSemanticType, type MergeFieldSource, type MergeFieldTransform, type MigrationEntry, type MigrationUndone, type MissingBehavior, type MyLevel, type MySubscription, NEWER_FIELD_KINDS, NOT_A_MEMBER_WORDS, type NewEntityFieldDeclaration, type NewFieldDeclaration, type NewerFieldKind, ON_DELETE, OVERRIDE_POLICIES, type ObjectKind, type ObjectOrganizationAnswer, type OnDelete, type OpLedger, type OutsideShareAnswer, type OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, PIPELINE_RULE_KINDS, PORTAL_ACCENTS, PORTAL_ARCHIVE_FILTERS, type ParentExtracted, type ParityFieldType, type ParityFieldTypeDescriptor, type PerValueAccessWord, type PermissionLevel, type PersonStamp, type PgError, type PickListDocument, type PickListItem, type PickListItemInput, type Pipeline, type PipelineColumn, type PipelineDeclared, type PipelineGate, type PipelineGatePreview, type PipelineMissingField, type PipelineMoveMany, type PipelineMoveManyItem, type PipelineMoveManyResult, type PipelineMoveResult, type PipelineMoveVerdict, type PipelineRule, type PipelineRuleKind, type PipelineSpec, type PipelineStage, type PipelineVerdict, type PortalAccent, type PortalArchiveAnswer, type PortalArchiveFilter, type PortalCard, type PortalConfig, type PortalConfigInput, type PortalFooterLink, type PortalFormAnswer, type PortalFormInput, type PortalFormRef, type PortalFormSpec, type PortalInvitation, type PortalPreviewRow, type PortalPrincipal, type PortalRevocation, type PortalStage, type PortalStyle, type PortalStyleInput, type PortalSummary, type PortalTableExposure, type PortalTableRef, type PredictedRefusal, type ProvenancePointer, type PublicPicture, type PublishBinding, type PublishBindingKind, type QueuedCapture, type QueuedCaptureFile, type QueuedCaptureState, type QuietHours, RECORDS_CACHE_GRACE_MS, REFUSALS_WORTH_REPEATING, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, REVERSE_LINKS_PAGE_MAX, REVERSE_LINKS_RECORDS_PER_CALL, ROW_LABEL_FORMULA_MAX_LENGTH, ROW_WEB_NOT_READY, RULE_NODE_KINDS, RULE_USES, type ReadRow, type ReadValue, type RecordChange, type RecordChangeAction, type RecordChangeResult, type RecordComment, type RecordDocument, type RecordEvent, type RecordFilter, type RecordGraphWritten, type RecordHeader, type RecordHistoryEntry, type RecordKeysetPage, type RecordOrganizationPort, type RecordPage, type RecordPageData, type RecordPageSort, type RecordRead, type RecordRevision, type RecordRowControls, type RecordScopeComment, type RecordScopeContext, type RecordScopeField, type RecordScopeHistoryEntry, type RecordScopeRelation, type RecordScopeWithheld, type RecordSplit, type RecordsActor, type RecordsChangeSink, type RecordsConfig, type RecordsDataSource, type RecordsError, type RecordsErrorCode, type RecordsErrorSink, type RecordsFilter, RecordsHoldScope, type RecordsMerged, RecordsProvider, type RecordsProviderProps, type RecordsRealtimePort, type RecordsResolverPort, type RecordsResponse, type RecordsResult, RecordsSeedProvider, type RecordsSeedProviderProps, type RecordsTableQuery, type RegisteredTable, type Relation, type RelationBinding, type RelationCardinality, type RelationCarries, type RelationCoordinate, type RelationDisplay, type RelationFlavor, type RelationIcons, type RelationNameIndex, type RelationNameMatch, type RelationNamesAnswer, type RelationProperties, type RelationTarget, type RelationWordsManyArgs, type ResolutionTriple, type ResolvedPublishBinding, type ResolvedPublishBindingKind, type RestorePreview, type RestoreResult, type RetiredActorWord, type RetypeBehaviour, type RetypePreview, type ReverseColumn, type ReverseLink, type ReverseLinks, type ReverseLinksFieldsArgs, type ReverseLinksManyArgs, type RowAction, type RowActionStep, type RowAgentPort, type RowAgentTarget, type RowDefaultsApplied, type RowOf, type RowTemplateRow, type Rule, type RuleAnswer, type RuleExpression, type RuleNodeKind, type RuleUse, SEED_FRESH_MS, SHOWN_TO_LABEL, SHOWN_TO_VALUES, SHOWN_TO_WHO_MAY_CHANGE, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, STATUS_GROUPS, STATUS_GROUP_WORDS, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, STORE_ROWS_CEILING, SYSTEM_WRITER_WORDS, type SavedViewColorBy, type SavedViewDefinition, type SavedViewLayout, type SavedViewRow, type SavedViewSpecIn, type ShownTo, type SourceArchived, type StagePending, type StagePendingOnBoard, type StageRuleEnforcement, type StageRuleOnFail, type StageRuleWarning, type StaleWriteDetail, type StatusGroup, type StorageMode, type StoreDoorName, type StoreFilter, type StoreInsertOf, type StoreRefusalCode, type StoreRowOf, type StoreRowSnapshot, type StoreTable, type StoreTableColumn, type StoreTableRows, type StoreTableSort, type StoreTableWhere, type StoredRecord, type StuckRow, type Subscription, type SubscriptionBlock, type SubscriptionCadence, type SubscriptionSpec, type SyncAutoRefresh, TABLE_DISPLAYS, TABLE_KIND_PREFIX, TABLE_ORIGINS, TABLE_TYPES, TO_ASSOCIATION, TO_CUSTOM_FIELDS, type Table, type TableArchiveProgress, type TableCapacity, type TableCopyInProgress, type TableCopySpec, type TableDecorations, type TableDisplay, type TableDuplicateProgress, type TableDuplicated, type TableHome, type TableHomeDestination, type TableKindFacts, type TableLevel, type TableLevelApproval, type TableLevelFacts, type TableLevelSet, type TableListEntry, type TableMoved, type TableOrigin, type TablePlacement, type TablePlacementFact, type TableProposal, type TableReaderRule, type TableRenderSchema, type TableRestoreProgress, type TableRowCount, type TableRowDefaults, type TableRowDefaultsPatch, type TableRowLabel, type TableSchemaMode, type TableSyncAnswer, type TableSyncResult, type TableSyncSettings, type TableSyncSource, type TableSyncSourceDocument, type TableSyncSpec, type TableType, type TableWebhook, type TableWebhookDeclared, type Timestamp, type TypedChoiceDecision, type TypedDate, type TypedMatchScore, type TypedNumber, type TypedTableChecked, type TypedTableConfidential, type TypedTableDef, type TypedTableEnsured, type TypedTableGraduation, type TypedTableInput, type TypedTableOrgOptions, type TypedTableReader, type TypedTableScope, type TypedTableStatus, type TypedTime, type UniqueKeys, type UseEntityBackLinks, type UseEntityFieldMutation, type UseFieldMutation, type UseRecordMutation, type UseRecordOptions, type UseRecordPageOptions, type UseRecordPageState, type UseRecordsOptions, type UseRecordsState, type UseStoreTable, type UseTableArchive, type UseTypedTable, type UseTypedTableOptions, type Uuid, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, type ValueAlternate, type ValueAlternateKey, type ValueEnvelope, type ValueEnvelopeKey, type ValueSource, type ViewLayout, type ViewOrderSet, WHERE_ID_OPENS_DOOR, type WorkApprovalDecision, type WorkApprovalFiled, type WorkApprovalState, type WorkApprover, type WorkAssignment, type WorkAssignmentField, type WorkChange, type WorkDecideMany, type WorkDecideManyItem, type WorkDecideManyResult, type WorkDecideVerdict, type WorkDueState, type WorkGraph, type WorkInboxItem, type WorkInboxKind, type WorkInboxView, type WorkInstantiation, type WorkListFlavour, type WorkListItem, type WorkOrigin, type WorkRecordState, type WorkSlotHold, type WorkState, type WorkTemplateNode, type WorkTemplateRelation, type WorkTurn, type WriteConflict, actionRefusals, addressFromText, addressMapUrl, addressText, allowsOtherValues, alternatePatch, archiveTableRow, archiveTypedTableDeliberately, archivedByLine, archivedWhen, asChoiceNudge, asPermissionLevel, atLeast, automationWebhookUrl, autonumberJoin, autonumberPrefixOf, autonumberSearchOf, autonumberWords, baseCopyName, bookingPath, buttonNeeds, buttonOf, buttonUrlPlaceholders, callersTimeZone, checkTypedTable, choiceSlug, choiceValuesOf, choicesOf, chooseAlternate, clearsRowLabel, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, confidentialGate, confidentialRefusal, confidentialRequest, confidentialState, createOpLedger, decideTypedChoice, declareDrillDefinition, defaultOpLedger, defineTypedTable, drillAnswerOf, drillFindingKnob, duplicateBase, durationText, emptyArchiveLine, emptyPortalArchiveLine, ensureAppAutomations, ensureTypedTable, entityReferenceKinds, entityReferenceKindsOf, entityReferenceSearch, entityReferenceWords, entityRefsOf, entityRefsToWrite, err, exportPageXlsx, f, fieldKindFor, fieldKindOf, filterWithAutonumber, forgetAllOps, graduatedRow, graduationProblems, hasQuietHours, highestLevel, holdsARetiredChoice, indexedDbStore, isAddressValue, isArchiveLane, isAutonumberField, isButtonField, isDecided, isEntityReferenceConfig, isFoundation, isLockedStub, isOwnOp, isPersonStamp, isPortalAccent, isPortalArchiveFilter, isRecordsErr, isReverseField, isRuleFilter, isShownTo, isTableKind, isTheChosen, keptGroups, keptOutOfSight, keptTableHref, levelHasShownTo, liftWithheld, listAppRows, listTableRows, localeDateOrder, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, moveConsequence, moveInOrder, newerKindExportWords, newerKindOf, newerKindWords, offeredAsContext, ok, openCaptureQueue, optionKey, optionLabel, parseFieldDrift, parseTableCopiesInProgress, parseTableDuplicateProgress, parseTableDuplicated, parseTableHome, parseTableMoved, personStampText, pointAtCopies, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, previewRetype, previewRuleChange, publicFormPath, rankTypedMatches, ratingMaxOf, readObjectOrganizationAnswer, readTypedDate, readTypedDuration, readTypedNumber, readTypedTime, readersMatch, recordChangeTrigger, recordSourceKey, recordSourceTable, recordsCacheCounters, recordsUseSentence, rehomeSentence, relationNameIndexOf, relationNameKey, relationNamesIn, rememberedOpCount, removeAppRow, removedChoicesInUse, resolveObjectOrganization, restoreSnapshot, richTextPlain, rowFromDocument, ruleThatRefuses, rulesWithTopStar, safeLinkHref, sameDocument, scopeChip, sha256Hex, sheetSyncSpec, snapshotBase, sourceArchivedOf, splitListCell, splitLockedRows, stableFilterKey, statusGroupOf, storeTable, tableIdOf, tableJsonSchema, tableKindMapping, tableKindSlug, tableRenderSchema, tableShapeChanged, twoDigitYear, typedDateText, typedMatchScore, typedTimeText, unwrapRecords, updateTableRow, upsertAppRow, useEntityBackLinks, useEntityFieldMutation, useEntityFieldRights, useEntityFields, useEntityRecord, useEntityReferenceKinds, useEntityReferenceSearch, useEntityReferenceWords, useEntityTable, useFieldMutation, useFields, useMergeField, useMyLevel, useMyLevels, useOptionalRecordsClient, useRecord, useRecordChangeRevision, useRecordMutation, useRecordPage, useRecordWrites, useRecords, useRecordsActor, useRecordsClient, useRecordsHold, useReverseColumns, useReverseLinks, useRowActions, useSeededAggregate, useSeededAnswer, useSeededAnswerAt, useSeededSource, useStoreTable, useTable, useTableArchive, useTables, useTypedTable, valueConverts, whereIdOpensPort, withCallersClock, withRowCounts, withTablePlacement, writeTableRow };
18294
+ export { ABSENCE_REASONS, ACTOR_VOCABULARY, ADDRESS_PARTS, AGENT_WRITER_WORDS, APP_ROWS_CEILING, ARCHIVE_LANES, ARCHIVE_LANE_LABEL, ARCHIVE_LANE_MEANS, type AbsenceReason, type ActionRefusal, type ActionRunResult, type Actor, type AddressPart, type AddressValue, type AdminTable, type AggregateBucket, type AggregateCompare, type AggregateCompareKind, type AggregateCompareWindows, type AggregateDelta, type AggregateFilter, type AggregateGroupValue, type AggregateMeasure, type AggregateOperation, type AggregateRow, type AggregateWindow, type AnonTokenBinding, type AnyStoreTable, type AnyTypedTableDef, type AppAutomationSpec, type AppField, type AppFields, type AppRows, type AppUpsertOptions, type ArchiveDeliberatelyArgs, type ArchiveLane, type ArchivedChecklistTemplate, type ArchivedDoorRow, type ArchivedForm, type ArchivedRow, type AutomationAction, type AutomationComparison, type AutomationDeclared, type AutomationFilter, type AutomationFlipped, type AutomationItem, type AutomationLastRun, type AutomationList, type AutomationRevision, type AutomationRevisions, type AutomationRun, type AutomationRunStatus, type AutomationRuns, type AutomationSpec, type AutomationStep, type AutomationTested, type AutomationToken, type AutomationTrigger, type AutomationValue, type AutomationValues, type AutomationWeekday, type AutomationWhen, BARCODE_SYMBOLOGIES, BUILT_KIND_WORD, BUTTON_DOES, type BaseCopied, type BaseCopyProgress, type BaseCopyResult, type BasePort, type BaseSnapshotRecord, type BaseTable, type BookingAvailability, type BookingDeclared, type BookingSummary, type BookingWindow, type ButtonDoes, type ButtonPressed, type ButtonSettings, CHOICE_NUDGES, COMPUTE_ON, CONTEXT_POLICIES, type CaptureField, type CaptureFileRef, type CaptureOutcome, type CaptureQuestion, type CaptureQueue, type CaptureQueueCounts, type CaptureQueueOptions, type CaptureQueuePorts, type CaptureQueueStore, type CaptureSheetFace, type CaptureSheetSummary, type CaptureSyncReport, type ChecklistDeclared, type ChecklistRequirement, type ChecklistRequirementKind, type ChecklistRoleSpec, type ChecklistRunStarted, type ChecklistRunStep, type ChecklistRunSummary, type ChecklistSpec, type ChecklistStepCompleted, type ChecklistStepSpec, type ChecklistTemplateShape, type ChecklistTemplateSummary, type ChecklistTrigger, type ChecklistTriggerKind, type ChoiceCellBack, type ChoiceLike, type ChoiceNudge, type ChoiceOption, type ChoiceOptions, type ChoiceRehome, type ChoiceUsage, type ChoicesRehomed, type ChooseAlternateArgs, type CoerceOptions, type Coerced, type CoercedAnswers, type CoercibleField, type CommentThreadRead, type CommentWritten, type ComputeOn, type ConfidentialRequest, type ConfidentialState, type ContextPolicy$1 as ContextPolicy, type ConversationScope, type ConversationScopeContext, type CustomFieldTableType, DECLARABLE_FIELD_KINDS, DEFAULT_ARCHIVE_LANE, DEFAULT_PORTAL_ARCHIVE_FILTER, DELIVERIES, DRILL_CHART_TOKENS, DRILL_DESCRIPTION_MAX, DRILL_DOORS, DRILL_SCHEMA, type DashboardBlock, type DashboardBlockKind, type DashboardBlockResult, type DashboardRunResult, type DashboardSummary, type DashboardTarget, type DashboardTargetBase, type DashboardTargetOp, type DashboardTargetResult, type DashboardTotals, type DataHomeTable, type DeclarableFieldKind, type DecorationColor, type DecorationPath, type DecorationRule, type DecorationRuleOp, type DecorationTarget, type Delivery, type DigestPreview, type DocRenderRow, type DocSignatureCheck, type DocSignatureRow, type DocTemplateRow, type DocToken, type DocUnresolvedToken, type DrillAdHocOp, type DrillAnswer, type DrillAnswerRow, type DrillChartToken, type DrillDeclaration, type DrillDefinition, type DrillDimension, type DrillFinding, type DrillGrain, type DrillHaving, type DrillLane, type DrillLevel, type DrillMeasure, type DrillMeasureOp, type DrillMeasureWhereValue, type DrillPath, type DrillQuestion, type DrillRecords, type DrillRowsPage, type DrillSource, type DrillView, ENTITY_TOKENS, type EnrichAlternate, type EnrichCell, type EnrichDeclared, type EnrichDueRow, type EnrichRun, type EnrichSource, type Enrichment, type EnrichmentSummary, type EntityBackLinkItem, type EntityBackLinks, type EntityFieldRights, type EntityFieldValue, type EntityFieldsAcross, type EntityRecordMatch, type EntityRecordRead, type EntityRecordsFound, type EntityRef, type EntityRefWithWords, type EntityReferenceKind, type EntityReferenceRead, type EntityRowWritten, type EntityTableFacts, type EntityToken, type ExternalPrincipalCard, FIELD_KINDS, FIELD_SENSITIVITIES, FIELD_SOURCES, FORMULA_NODE_RESULTS, FRESHNESS, type Field, type FieldBehavior, type FieldDrift, type FieldDriftAspect, type FieldDuplicated, type FieldHistoryEntry, type FieldKind, type FieldOptionEdit, type FieldOptions, type FieldPatch, type FieldProposal, type FieldRetyped, type FieldRule, type FieldSensitivity, type FieldSource, type FieldTypeWord, type ForbiddenEnvelopeWord, type FormArchiveAnswer, type FormLookOptions, type FormResults, type FormRoute, type FormSummary, type FormulaParse, type FormulaPreview, type Freshness, GRADUATION_BASE_COLUMNS, type GraduatedRelation, type GraduatedRow, type GridLayout, type GridLayoutMode, type GridRowHeight, type HiddenFieldNotice, type HistoryActor, type HistoryActorKind, type HistoryChange, type Home, type ImportBatchResult, type ImportColumnPlan, type ImportColumnsDeclared, type ImportFinished, type ImportOpened, type ImportOutcome, type ImportPlan, type ImportPolicy, type ImportProposal, type ImportReport, type ImportRun, type InboundAddress, type InboundDeclared, type InboxCounts, type InboxStateChange, type InsertOf, type InterfaceRead, type InterfaceRows, type InterfaceRowsField, type IoExportPage, KERNEL_TABLES, type KernelTableName, type KernelTargets, type KeysetRow, type ListTableRowsOptions, MERGE_FIELD_MODIFIERS, MERGE_FIELD_SEMANTIC_TYPES, MERGE_FIELD_SOURCES, type MergeField, type MergeFieldModifier, type MergeFieldProvenance, type MergeFieldResolution, type MergeFieldSemanticType, type MergeFieldSource, type MergeFieldTransform, type MigrationEntry, type MigrationUndone, type MissingBehavior, type MyLevel, type MySubscription, NEWER_FIELD_KINDS, NOT_A_MEMBER_WORDS, type NewEntityFieldDeclaration, type NewFieldDeclaration, type NewerFieldKind, ON_DELETE, OVERRIDE_POLICIES, type ObjectKind, type ObjectOrganizationAnswer, type OnDelete, type OpLedger, type OutsideShareAnswer, type OverridePolicy, PARITY_FIELD_TYPES, PERMISSION_LEVELS, PER_VALUE_ACCESS_WORDS, PIPELINE_RULE_KINDS, PORTAL_ACCENTS, PORTAL_ARCHIVE_FILTERS, type ParentExtracted, type ParityFieldType, type ParityFieldTypeDescriptor, type PerValueAccessWord, type PermissionLevel, type PersonStamp, type PgError, type PickListDocument, type PickListItem, type PickListItemInput, type Pipeline, type PipelineColumn, type PipelineDeclared, type PipelineGate, type PipelineGatePreview, type PipelineMissingField, type PipelineMoveMany, type PipelineMoveManyItem, type PipelineMoveManyResult, type PipelineMoveResult, type PipelineMoveVerdict, type PipelineRule, type PipelineRuleKind, type PipelineSpec, type PipelineStage, type PipelineVerdict, type PortalAccent, type PortalArchiveAnswer, type PortalArchiveFilter, type PortalCard, type PortalConfig, type PortalConfigInput, type PortalFooterLink, type PortalFormAnswer, type PortalFormInput, type PortalFormRef, type PortalFormSpec, type PortalInvitation, type PortalPreviewRow, type PortalPrincipal, type PortalRevocation, type PortalStage, type PortalStyle, type PortalStyleInput, type PortalSummary, type PortalTableExposure, type PortalTableRef, type PredictedRefusal, type ProvenancePointer, type PublicPicture, type PublishBinding, type PublishBindingKind, type QueuedCapture, type QueuedCaptureFile, type QueuedCaptureState, type QuietHours, RECORDS_CACHE_GRACE_MS, REFUSALS_WORTH_REPEATING, RELATION_BINDINGS, RELATION_CARDINALITIES, RELATION_FLAVORS, RETIRED_ACTOR_WORDS, REVERSE_LINKS_PAGE_MAX, REVERSE_LINKS_RECORDS_PER_CALL, ROW_LABEL_FORMULA_MAX_LENGTH, ROW_WEB_NOT_READY, RULE_NODE_KINDS, RULE_USES, type ReadRow, type ReadValue, type RecordChange, type RecordChangeAction, type RecordChangeResult, type RecordComment, type RecordDocument, type RecordEvent, type RecordFilter, type RecordGraphWritten, type RecordHeader, type RecordHistoryEntry, type RecordKeysetPage, type RecordOrganizationPort, type RecordPage, type RecordPageData, type RecordPageSort, type RecordRead, type RecordRevision, type RecordRowControls, type RecordScopeComment, type RecordScopeContext, type RecordScopeField, type RecordScopeHistoryEntry, type RecordScopeRelation, type RecordScopeWithheld, type RecordSplit, type RecordsActor, type RecordsChangeSink, type RecordsConfig, type RecordsDataSource, type RecordsError, type RecordsErrorCode, type RecordsErrorSink, type RecordsFilter, RecordsHoldScope, type RecordsMerged, RecordsProvider, type RecordsProviderProps, type RecordsRealtimePort, type RecordsResolverPort, type RecordsResponse, type RecordsResult, RecordsSeedProvider, type RecordsSeedProviderProps, type RecordsTableQuery, type RegisteredTable, type Relation, type RelationBinding, type RelationCardinality, type RelationCarries, type RelationCoordinate, type RelationDisplay, type RelationFlavor, type RelationIcons, type RelationNameIndex, type RelationNameMatch, type RelationNamesAnswer, type RelationProperties, type RelationTarget, type RelationWordsManyArgs, type ResolutionTriple, type ResolvedPublishBinding, type ResolvedPublishBindingKind, type RestorePreview, type RestoreResult, type RetiredActorWord, type RetypeBehaviour, type RetypePreview, type ReverseColumn, type ReverseLink, type ReverseLinks, type ReverseLinksFieldsArgs, type ReverseLinksManyArgs, type RowAction, type RowActionStep, type RowAgentPort, type RowAgentTarget, type RowDefaultsApplied, type RowOf, type RowTemplateRow, type Rule, type RuleAnswer, type RuleExpression, type RuleNodeKind, type RuleUse, SEED_FRESH_MS, SHOWN_TO_LABEL, SHOWN_TO_VALUES, SHOWN_TO_WHO_MAY_CHANGE, STAGE_RULE_ENFORCEMENT, STAGE_RULE_ON_FAIL, STATUS_GROUPS, STATUS_GROUP_WORDS, STORAGE_MODES, STORE_DOORS, STORE_KNOBS, STORE_REFUSAL_CODES, STORE_ROWS_CEILING, SYSTEM_WRITER_WORDS, type SavedViewColorBy, type SavedViewDefinition, type SavedViewLayout, type SavedViewRow, type SavedViewSpecIn, type ShownTo, type SourceArchived, type StagePending, type StagePendingOnBoard, type StageRuleEnforcement, type StageRuleOnFail, type StageRuleWarning, type StaleWriteDetail, type StatusGroup, type StorageMode, type StoreDoorName, type StoreFilter, type StoreInsertOf, type StoreRefusalCode, type StoreRowOf, type StoreRowSnapshot, type StoreTable, type StoreTableColumn, type StoreTableRows, type StoreTableSort, type StoreTableWhere, type StoredRecord, type StuckRow, type Subscription, type SubscriptionBlock, type SubscriptionCadence, type SubscriptionSpec, type SyncAutoRefresh, TABLE_DISPLAYS, TABLE_KIND_PREFIX, TABLE_ORIGINS, TABLE_TYPES, TO_ASSOCIATION, TO_CUSTOM_FIELDS, type Table, type TableArchiveProgress, type TableCapacity, type TableCopyInProgress, type TableCopySpec, type TableDecorations, type TableDisplay, type TableDuplicateProgress, type TableDuplicated, type TableHome, type TableHomeDestination, type TableKindFacts, type TableLevel, type TableLevelApproval, type TableLevelFacts, type TableLevelSet, type TableListEntry, type TableMoved, type TableOrigin, type TablePlacement, type TablePlacementFact, type TableProposal, type TableReaderRule, type TableRenderSchema, type TableRestoreProgress, type TableRowCount, type TableRowDefaults, type TableRowDefaultsPatch, type TableRowLabel, type TableSchemaMode, type TableSyncAnswer, type TableSyncResult, type TableSyncSettings, type TableSyncSource, type TableSyncSourceDocument, type TableSyncSpec, type TableType, type TableWebhook, type TableWebhookDeclared, type Timestamp, type TypedChoiceDecision, type TypedDate, type TypedMatchScore, type TypedNumber, type TypedTableChecked, type TypedTableConfidential, type TypedTableDef, type TypedTableEnsured, type TypedTableGraduation, type TypedTableInput, type TypedTableOrgOptions, type TypedTableReader, type TypedTableScope, type TypedTableStatus, type TypedTime, type UniqueKeys, type UseEntityBackLinks, type UseEntityFieldMutation, type UseFieldMutation, type UseRecordMutation, type UseRecordOptions, type UseRecordPageOptions, type UseRecordPageState, type UseRecordsOptions, type UseRecordsState, type UseStoreTable, type UseTableArchive, type UseTypedTable, type UseTypedTableOptions, type Uuid, VALUE_ALTERNATE_KEYS, VALUE_ENVELOPE_KEYS, type ValueAlternate, type ValueAlternateKey, type ValueEnvelope, type ValueEnvelopeKey, type ValueSource, type ViewLayout, type ViewOrderSet, WHERE_ID_OPENS_DOOR, type WorkApprovalDecision, type WorkApprovalFiled, type WorkApprovalState, type WorkApprover, type WorkAssignment, type WorkAssignmentField, type WorkChange, type WorkDecideMany, type WorkDecideManyItem, type WorkDecideManyResult, type WorkDecideVerdict, type WorkDueState, type WorkGraph, type WorkInboxItem, type WorkInboxKind, type WorkInboxView, type WorkInstantiation, type WorkListFlavour, type WorkListItem, type WorkOrigin, type WorkRecordState, type WorkSlotHold, type WorkState, type WorkTemplateNode, type WorkTemplateRelation, type WorkTurn, type WriteConflict, actionRefusals, addressFromText, addressMapUrl, addressText, allowsOtherValues, alternatePatch, archiveTableRow, archiveTypedTableDeliberately, archivedByLine, archivedWhen, asChoiceNudge, asPermissionLevel, atLeast, automationWebhookUrl, autonumberJoin, autonumberPrefixOf, autonumberSearchOf, autonumberWords, baseCopyName, bookingPath, buttonNeeds, buttonOf, buttonUrlPlaceholders, callersTimeZone, checkTypedTable, choiceSlug, choiceValuesOf, choicesOf, chooseAlternate, clearsRowLabel, coerceTypedAnswer, coerceTypedAnswers, coercionLabel, confidentialGate, confidentialRefusal, confidentialRequest, confidentialState, createOpLedger, decideTypedChoice, declareDrillDefinition, defaultOpLedger, defineTypedTable, drillAnswerOf, drillFindingKnob, duplicateBase, durationText, emptyArchiveLine, emptyPortalArchiveLine, ensureAppAutomations, ensureTypedTable, entityReferenceKinds, entityReferenceKindsOf, entityReferenceSearch, entityReferenceWords, entityRefsOf, entityRefsToWrite, err, exportPageXlsx, f, fieldKindFor, fieldKindOf, filterWithAutonumber, forgetAllOps, graduatedRow, graduationProblems, hasQuietHours, highestLevel, holdsARetiredChoice, idsOfCopies, indexedDbStore, isAddressValue, isArchiveLane, isAutonumberField, isButtonField, isDecided, isEntityReferenceConfig, isFoundation, isLockedStub, isOwnOp, isPersonStamp, isPortalAccent, isPortalArchiveFilter, isRecordsErr, isReverseField, isRuleFilter, isShownTo, isTableKind, isTheChosen, keptGroups, keptOutOfSight, keptTableHref, levelHasShownTo, liftWithheld, listAppRows, listTableRows, localeDateOrder, looksLikeAnId, mayDrag, measureKey, memoryStore, mintClientKey, mintOpId, moveConsequence, moveInOrder, newerKindExportWords, newerKindOf, newerKindWords, offeredAsContext, ok, openCaptureQueue, optionKey, optionLabel, parseFieldDrift, parseTableCopiesInProgress, parseTableDuplicateProgress, parseTableDuplicated, parseTableHome, parseTableMoved, personStampText, pointAtCopies, portalArchiveConsequence, portalConfirmLine, portalPath, portalTitleTypedBack, previewRetype, previewRuleChange, publicFormPath, rankTypedMatches, ratingMaxOf, readObjectOrganizationAnswer, readTypedDate, readTypedDuration, readTypedNumber, readTypedTime, readersMatch, recordChangeTrigger, recordSourceKey, recordSourceTable, recordsCacheCounters, recordsUseSentence, rehomeSentence, relationNameIndexOf, relationNameKey, relationNamesIn, rememberedOpCount, removeAppRow, removedChoicesInUse, resolveObjectOrganization, restoreSnapshot, restoredBaseName, richTextPlain, rowFromDocument, ruleThatRefuses, rulesWithTopStar, safeLinkHref, sameDocument, scopeChip, sha256Hex, sheetSyncSpec, snapshotBase, sourceArchivedOf, splitListCell, splitLockedRows, stableFilterKey, statusGroupOf, storeTable, tableIdOf, tableJsonSchema, tableKindMapping, tableKindSlug, tableRenderSchema, tableShapeChanged, twoDigitYear, typedDateText, typedMatchScore, typedTimeText, unwrapRecords, updateTableRow, upsertAppRow, useEntityBackLinks, useEntityFieldMutation, useEntityFieldRights, useEntityFields, useEntityRecord, useEntityReferenceKinds, useEntityReferenceSearch, useEntityReferenceWords, useEntityTable, useFieldMutation, useFields, useMergeField, useMyLevel, useMyLevels, useOptionalRecordsClient, useRecord, useRecordChangeRevision, useRecordMutation, useRecordPage, useRecordWrites, useRecords, useRecordsActor, useRecordsClient, useRecordsHold, useReverseColumns, useReverseLinks, useRowActions, useSeededAggregate, useSeededAnswer, useSeededAnswerAt, useSeededSource, useStoreTable, useTable, useTableArchive, useTables, useTypedTable, valueConverts, whereIdOpensPort, withCallersClock, withRowCounts, withTablePlacement, writeTableRow };
@@ -5836,6 +5836,15 @@ function createRecordsClient(given) {
5836
5836
  }
5837
5837
  return result;
5838
5838
  },
5839
+ async recordReparent({ record_id, parent_id }) {
5840
+ const result = await callDoor(
5841
+ DOORS.recordReparent,
5842
+ { p_organization_id: org, p_record_id: record_id, p_parent_id: parent_id },
5843
+ "recordReparent"
5844
+ );
5845
+ if (result.ok) announceRecordChanged(record_id);
5846
+ return result;
5847
+ },
5839
5848
  async recordRestore({ record_id }) {
5840
5849
  const result = await callDoor(
5841
5850
  DOORS.recordRestore,
@@ -6383,7 +6392,9 @@ function createRecordsClient(given) {
6383
6392
  }
6384
6393
  const tables = read.map((row) => {
6385
6394
  const { document } = unfold(row.document);
6386
- return { ...document, id: row.id, organization_id: org };
6395
+ const doc = document;
6396
+ const home = typeof doc.home_id === "string" ? doc.home_id : typeof doc.parent_id === "string" ? doc.parent_id : null;
6397
+ return { ...doc, home_id: home, id: row.id, organization_id: org };
6387
6398
  });
6388
6399
  tables.sort((a, b) => (a.name ?? "").localeCompare(b.name ?? ""));
6389
6400
  return ok(tables);
@@ -12500,8 +12511,8 @@ var f = {
12500
12511
  };
12501
12512
  var SLUG = /^[a-z][a-z0-9_]*$/;
12502
12513
  var WORD = /^[a-z][a-z0-9_]*$/;
12503
- function refuse3(slug, sentence) {
12504
- throw new Error(`defineTypedTable(${JSON.stringify(slug)}): ${sentence}`);
12514
+ function refuse3(slug, sentence2) {
12515
+ throw new Error(`defineTypedTable(${JSON.stringify(slug)}): ${sentence2}`);
12505
12516
  }
12506
12517
  function labelFor(key) {
12507
12518
  const words = key.replace(/_+/g, " ").trim();
@@ -13137,6 +13148,9 @@ function automationWebhookUrl(serverBase, item2) {
13137
13148
  function baseCopyName(name) {
13138
13149
  return `${name.trim() || "Base"} (copy)`;
13139
13150
  }
13151
+ function restoredBaseName(name, on) {
13152
+ return `${name.trim() || "Base"} (restored ${on})`;
13153
+ }
13140
13154
  async function duplicateBase(port, args) {
13141
13155
  const made = [];
13142
13156
  const pairs = {};
@@ -13156,10 +13170,21 @@ async function duplicateBase(port, args) {
13156
13170
  }
13157
13171
  const fin = args.tables.length > 1 ? await port.finish({ organizationId: args.organizationId, pairs }) : null;
13158
13172
  if (fin && !fin.ok) return { ok: false, error: fin.error, stoppedAt: args.tables[args.tables.length - 1], made };
13173
+ let homeId = null;
13174
+ if (args.homeName && port.createHome && port.moveInto) {
13175
+ const home = await port.createHome(args.homeName);
13176
+ if (!home.ok) return { ok: false, error: home.error, stoppedAt: args.tables[args.tables.length - 1], made };
13177
+ homeId = home.data;
13178
+ for (const m of made) {
13179
+ const moved = await port.moveInto(m.copy.id, homeId);
13180
+ if (!moved.ok) return { ok: false, error: moved.error, stoppedAt: m.from, made };
13181
+ }
13182
+ }
13159
13183
  const extras = await copyExtras(port, args.tables, pairs);
13160
13184
  return {
13161
13185
  ok: true,
13162
13186
  data: {
13187
+ homeId,
13163
13188
  pairs,
13164
13189
  tables: made,
13165
13190
  relinkedColumns: fin?.ok ? fin.data.relinked_columns : 0,
@@ -13174,10 +13199,47 @@ function pointAtCopies(doc, pairs) {
13174
13199
  for (const [from, to] of Object.entries(pairs)) text2 = text2.split(from).join(to);
13175
13200
  return JSON.parse(text2);
13176
13201
  }
13202
+ function sentence(error) {
13203
+ const m = error?.message;
13204
+ return typeof m === "string" && m ? m : "the store gave no reason.";
13205
+ }
13206
+ function refusedSentence(data) {
13207
+ const errors = data?._errors;
13208
+ const lines = errors ? Object.entries(errors).map(([path, why]) => `${path}: ${why}`) : [];
13209
+ return lines.length ? lines.join("; ") : "the store gave no reason.";
13210
+ }
13211
+ async function idsOfCopies(port, pairs) {
13212
+ const ids = { ...pairs };
13213
+ if (!port.fieldsOf && !port.viewsOf) return ids;
13214
+ for (const [from, to] of Object.entries(pairs)) {
13215
+ if (port.fieldsOf) {
13216
+ const [a, b] = await Promise.all([port.fieldsOf(from), port.fieldsOf(to)]);
13217
+ if (a.ok && b.ok) {
13218
+ const byKey = new Map(b.data.map((f2) => [f2.key, f2.id]));
13219
+ for (const f2 of a.data) {
13220
+ const n = byKey.get(f2.key);
13221
+ if (n && n !== f2.id) ids[f2.id] = n;
13222
+ }
13223
+ }
13224
+ }
13225
+ if (port.viewsOf) {
13226
+ const [a, b] = await Promise.all([port.viewsOf(from), port.viewsOf(to)]);
13227
+ if (a.ok && b.ok) {
13228
+ const byName = new Map(b.data.map((v) => [v.name, v.id]));
13229
+ for (const v of a.data) {
13230
+ const n = byName.get(v.name);
13231
+ if (n && n !== v.id) ids[v.id] = n;
13232
+ }
13233
+ }
13234
+ }
13235
+ }
13236
+ return ids;
13237
+ }
13177
13238
  async function copyExtras(port, tables, pairs) {
13178
13239
  let automations = 0;
13179
13240
  let pages = 0;
13180
13241
  const extrasRefused = [];
13242
+ const ids = await idsOfCopies(port, pairs);
13181
13243
  for (const t of tables) {
13182
13244
  const copy = pairs[t.id];
13183
13245
  if (!copy) continue;
@@ -13185,13 +13247,14 @@ async function copyExtras(port, tables, pairs) {
13185
13247
  const list = await port.automations(t.id);
13186
13248
  if (list.ok) {
13187
13249
  for (const a of list.data.automations) {
13188
- const made = await port.automationDeclare({ table_id: copy, spec: pointAtCopies(a.spec, pairs) });
13250
+ const made = await port.automationDeclare({ table_id: copy, spec: pointAtCopies(a.spec, ids) });
13189
13251
  if (made.ok && made.data.ok && made.data.automation_id) {
13190
- await port.automationSetEnabled?.({ automation_id: made.data.automation_id, enabled: false });
13191
- automations += 1;
13192
- } else extrasRefused.push(`Automation "${a.name}" on ${t.name} was not copied.`);
13252
+ const off = await port.automationSetEnabled?.({ automation_id: made.data.automation_id, enabled: false });
13253
+ if (off && !off.ok) extrasRefused.push(`Automation "${a.name}" on ${t.name} was copied but could not be switched off: ${sentence(off.error)}`);
13254
+ else automations += 1;
13255
+ } else extrasRefused.push(`Automation "${a.name}" on ${t.name} was not copied: ${made.ok ? refusedSentence(made.data) : sentence(made.error)}`);
13193
13256
  }
13194
- }
13257
+ } else extrasRefused.push(`The automations of ${t.name} could not be read: ${sentence(list.error)}`);
13195
13258
  }
13196
13259
  if (port.dashboards && port.dashboardDeclare) {
13197
13260
  const list = await port.dashboards(t.id);
@@ -13200,13 +13263,13 @@ async function copyExtras(port, tables, pairs) {
13200
13263
  const made = await port.dashboardDeclare({
13201
13264
  table_id: copy,
13202
13265
  name: d.name,
13203
- blocks: pointAtCopies(d.blocks, pairs),
13204
- presentation: pointAtCopies(d.presentation, pairs)
13266
+ blocks: pointAtCopies(d.blocks, ids),
13267
+ presentation: pointAtCopies(d.presentation, ids)
13205
13268
  });
13206
13269
  if (made.ok) pages += 1;
13207
- else extrasRefused.push(`Page "${d.name}" on ${t.name} was not copied.`);
13270
+ else extrasRefused.push(`Page "${d.name}" on ${t.name} was not copied: ${sentence(made.error)}`);
13208
13271
  }
13209
- }
13272
+ } else extrasRefused.push(`The pages of ${t.name} could not be read: ${sentence(list.error)}`);
13210
13273
  }
13211
13274
  }
13212
13275
  return { automations, pages, extrasRefused };
@@ -13245,6 +13308,7 @@ async function restoreSnapshot(port, args) {
13245
13308
  tables: sources,
13246
13309
  withRecords: true,
13247
13310
  nameFor: (t) => `${byCopy.get(t.id) ?? t.name} (restored)`,
13311
+ homeName: restoredBaseName(args.baseName ?? "Base", args.restoredOn ?? (/* @__PURE__ */ new Date()).toLocaleDateString()),
13248
13312
  ...args.onProgress ? { onProgress: args.onProgress } : {}
13249
13313
  });
13250
13314
  for (const s of sources) await port.archive?.(s.id);
@@ -14174,6 +14238,7 @@ export {
14174
14238
  hasQuietHours,
14175
14239
  highestLevel,
14176
14240
  holdsARetiredChoice,
14241
+ idsOfCopies,
14177
14242
  indexedDbStore,
14178
14243
  isAddressValue,
14179
14244
  isArchiveLane,
@@ -14254,6 +14319,7 @@ export {
14254
14319
  removedChoicesInUse,
14255
14320
  resolveObjectOrganization,
14256
14321
  restoreSnapshot,
14322
+ restoredBaseName,
14257
14323
  richTextPlain,
14258
14324
  rowFromDocument,
14259
14325
  ruleThatRefuses,