@stigmer/react 3.2.3 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agent/steps/ReviewStep.d.ts.map +1 -1
- package/agent/steps/ReviewStep.js +2 -3
- package/agent/steps/ReviewStep.js.map +1 -1
- package/billing/index.d.ts.map +1 -1
- package/billing/index.js +4 -0
- package/billing/index.js.map +1 -1
- package/channel/AgentChannelsPanel.d.ts.map +1 -1
- package/channel/AgentChannelsPanel.js +11 -5
- package/channel/AgentChannelsPanel.js.map +1 -1
- package/composer/SessionComposer.d.ts +1 -1
- package/cursor-accounts/CursorAccountEditor.d.ts +34 -0
- package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -0
- package/cursor-accounts/CursorAccountEditor.js +67 -0
- package/cursor-accounts/CursorAccountEditor.js.map +1 -0
- package/cursor-accounts/CursorAccountsAccessNotice.d.ts +11 -0
- package/cursor-accounts/CursorAccountsAccessNotice.d.ts.map +1 -0
- package/cursor-accounts/CursorAccountsAccessNotice.js +14 -0
- package/cursor-accounts/CursorAccountsAccessNotice.js.map +1 -0
- package/cursor-accounts/CursorAccountsConsole.d.ts +32 -0
- package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -0
- package/cursor-accounts/CursorAccountsConsole.js +169 -0
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -0
- package/cursor-accounts/MemberCoverageTable.d.ts +29 -0
- package/cursor-accounts/MemberCoverageTable.d.ts.map +1 -0
- package/cursor-accounts/MemberCoverageTable.js +150 -0
- package/cursor-accounts/MemberCoverageTable.js.map +1 -0
- package/cursor-accounts/MemberKeysPanel.d.ts +25 -0
- package/cursor-accounts/MemberKeysPanel.d.ts.map +1 -0
- package/cursor-accounts/MemberKeysPanel.js +115 -0
- package/cursor-accounts/MemberKeysPanel.js.map +1 -0
- package/cursor-accounts/badges.d.ts +9 -0
- package/cursor-accounts/badges.d.ts.map +1 -0
- package/cursor-accounts/badges.js +10 -0
- package/cursor-accounts/badges.js.map +1 -0
- package/cursor-accounts/cursor-account-coverage.d.ts +41 -0
- package/cursor-accounts/cursor-account-coverage.d.ts.map +1 -0
- package/cursor-accounts/cursor-account-coverage.js +26 -0
- package/cursor-accounts/cursor-account-coverage.js.map +1 -0
- package/cursor-accounts/cursor-account-format.d.ts +23 -0
- package/cursor-accounts/cursor-account-format.d.ts.map +1 -0
- package/cursor-accounts/cursor-account-format.js +41 -0
- package/cursor-accounts/cursor-account-format.js.map +1 -0
- package/cursor-accounts/index.d.ts +18 -0
- package/cursor-accounts/index.d.ts.map +1 -0
- package/cursor-accounts/index.js +13 -0
- package/cursor-accounts/index.js.map +1 -0
- package/cursor-accounts/useCursorAccountView.d.ts +30 -0
- package/cursor-accounts/useCursorAccountView.d.ts.map +1 -0
- package/cursor-accounts/useCursorAccountView.js +25 -0
- package/cursor-accounts/useCursorAccountView.js.map +1 -0
- package/cursor-accounts/useCursorAccounts.d.ts +33 -0
- package/cursor-accounts/useCursorAccounts.d.ts.map +1 -0
- package/cursor-accounts/useCursorAccounts.js +25 -0
- package/cursor-accounts/useCursorAccounts.js.map +1 -0
- package/cursor-accounts/useCursorMemberKeyActions.d.ts +49 -0
- package/cursor-accounts/useCursorMemberKeyActions.d.ts.map +1 -0
- package/cursor-accounts/useCursorMemberKeyActions.js +38 -0
- package/cursor-accounts/useCursorMemberKeyActions.js.map +1 -0
- package/cursor-accounts/useDeleteCursorAccount.d.ts +30 -0
- package/cursor-accounts/useDeleteCursorAccount.d.ts.map +1 -0
- package/cursor-accounts/useDeleteCursorAccount.js +32 -0
- package/cursor-accounts/useDeleteCursorAccount.js.map +1 -0
- package/cursor-accounts/useSyncCursorAccount.d.ts +23 -0
- package/cursor-accounts/useSyncCursorAccount.d.ts.map +1 -0
- package/cursor-accounts/useSyncCursorAccount.js +31 -0
- package/cursor-accounts/useSyncCursorAccount.js.map +1 -0
- package/cursor-accounts/useUpsertCursorAccount.d.ts +26 -0
- package/cursor-accounts/useUpsertCursorAccount.d.ts.map +1 -0
- package/cursor-accounts/useUpsertCursorAccount.js +34 -0
- package/cursor-accounts/useUpsertCursorAccount.js.map +1 -0
- package/datastore/CollectionRecordsBrowser.d.ts +34 -0
- package/datastore/CollectionRecordsBrowser.d.ts.map +1 -0
- package/datastore/CollectionRecordsBrowser.js +223 -0
- package/datastore/CollectionRecordsBrowser.js.map +1 -0
- package/datastore/CollectionSchemaView.d.ts +29 -0
- package/datastore/CollectionSchemaView.d.ts.map +1 -0
- package/datastore/CollectionSchemaView.js +93 -0
- package/datastore/CollectionSchemaView.js.map +1 -0
- package/datastore/DatastoreDetailView.d.ts +44 -0
- package/datastore/DatastoreDetailView.d.ts.map +1 -0
- package/datastore/DatastoreDetailView.js +76 -0
- package/datastore/DatastoreDetailView.js.map +1 -0
- package/datastore/DatastoreSyncReport.d.ts +19 -0
- package/datastore/DatastoreSyncReport.d.ts.map +1 -0
- package/datastore/DatastoreSyncReport.js +45 -0
- package/datastore/DatastoreSyncReport.js.map +1 -0
- package/datastore/DeleteDatastoreDialog.d.ts +35 -0
- package/datastore/DeleteDatastoreDialog.d.ts.map +1 -0
- package/datastore/DeleteDatastoreDialog.js +90 -0
- package/datastore/DeleteDatastoreDialog.js.map +1 -0
- package/datastore/FieldValueControl.d.ts +55 -0
- package/datastore/FieldValueControl.d.ts.map +1 -0
- package/datastore/FieldValueControl.js +138 -0
- package/datastore/FieldValueControl.js.map +1 -0
- package/datastore/RecordFilterBuilder.d.ts +37 -0
- package/datastore/RecordFilterBuilder.d.ts.map +1 -0
- package/datastore/RecordFilterBuilder.js +122 -0
- package/datastore/RecordFilterBuilder.js.map +1 -0
- package/datastore/RecordFormPanel.d.ts +45 -0
- package/datastore/RecordFormPanel.d.ts.map +1 -0
- package/datastore/RecordFormPanel.js +215 -0
- package/datastore/RecordFormPanel.js.map +1 -0
- package/datastore/index.d.ts +43 -0
- package/datastore/index.d.ts.map +1 -0
- package/datastore/index.js +22 -0
- package/datastore/index.js.map +1 -0
- package/datastore/recordFilter.d.ts +62 -0
- package/datastore/recordFilter.d.ts.map +1 -0
- package/datastore/recordFilter.js +104 -0
- package/datastore/recordFilter.js.map +1 -0
- package/datastore/recordValues.d.ts +85 -0
- package/datastore/recordValues.d.ts.map +1 -0
- package/datastore/recordValues.js +282 -0
- package/datastore/recordValues.js.map +1 -0
- package/datastore/useDatastore.d.ts +39 -0
- package/datastore/useDatastore.d.ts.map +1 -0
- package/datastore/useDatastore.js +44 -0
- package/datastore/useDatastore.js.map +1 -0
- package/datastore/useDatastoreCount.d.ts +48 -0
- package/datastore/useDatastoreCount.d.ts.map +1 -0
- package/datastore/useDatastoreCount.js +27 -0
- package/datastore/useDatastoreCount.js.map +1 -0
- package/datastore/useDatastoreDescription.d.ts +54 -0
- package/datastore/useDatastoreDescription.d.ts.map +1 -0
- package/datastore/useDatastoreDescription.js +50 -0
- package/datastore/useDatastoreDescription.js.map +1 -0
- package/datastore/useDatastoreList.d.ts +57 -0
- package/datastore/useDatastoreList.d.ts.map +1 -0
- package/datastore/useDatastoreList.js +29 -0
- package/datastore/useDatastoreList.js.map +1 -0
- package/datastore/useDatastoreSearch.d.ts +19 -0
- package/datastore/useDatastoreSearch.d.ts.map +1 -0
- package/datastore/useDatastoreSearch.js +22 -0
- package/datastore/useDatastoreSearch.js.map +1 -0
- package/datastore/useDeleteDatastore.d.ts +53 -0
- package/datastore/useDeleteDatastore.d.ts.map +1 -0
- package/datastore/useDeleteDatastore.js +40 -0
- package/datastore/useDeleteDatastore.js.map +1 -0
- package/datastore/useDeleteRecord.d.ts +34 -0
- package/datastore/useDeleteRecord.d.ts.map +1 -0
- package/datastore/useDeleteRecord.js +43 -0
- package/datastore/useDeleteRecord.js.map +1 -0
- package/datastore/useInsertRecord.d.ts +50 -0
- package/datastore/useInsertRecord.d.ts.map +1 -0
- package/datastore/useInsertRecord.js +55 -0
- package/datastore/useInsertRecord.js.map +1 -0
- package/datastore/useRecordCollection.d.ts +104 -0
- package/datastore/useRecordCollection.d.ts.map +1 -0
- package/datastore/useRecordCollection.js +136 -0
- package/datastore/useRecordCollection.js.map +1 -0
- package/datastore/useRecordList.d.ts +66 -0
- package/datastore/useRecordList.d.ts.map +1 -0
- package/datastore/useRecordList.js +58 -0
- package/datastore/useRecordList.js.map +1 -0
- package/datastore/useUpdateRecord.d.ts +52 -0
- package/datastore/useUpdateRecord.d.ts.map +1 -0
- package/datastore/useUpdateRecord.js +55 -0
- package/datastore/useUpdateRecord.js.map +1 -0
- package/environment/EnvironmentListPanel.d.ts.map +1 -1
- package/environment/EnvironmentListPanel.js +12 -7
- package/environment/EnvironmentListPanel.js.map +1 -1
- package/execution/ExecutionProgress.d.ts.map +1 -1
- package/execution/ExecutionProgress.js +13 -4
- package/execution/ExecutionProgress.js.map +1 -1
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +10 -2
- package/execution/MessageThread.js.map +1 -1
- package/execution/useCreateAgentExecution.d.ts +31 -1
- package/execution/useCreateAgentExecution.d.ts.map +1 -1
- package/execution/useCreateAgentExecution.js +2 -0
- package/execution/useCreateAgentExecution.js.map +1 -1
- package/iam-policy/index.d.ts +1 -1
- package/iam-policy/index.d.ts.map +1 -1
- package/iam-policy/index.js.map +1 -1
- package/iam-policy/useCheckPermission.d.ts +32 -11
- package/iam-policy/useCheckPermission.d.ts.map +1 -1
- package/iam-policy/useCheckPermission.js +24 -19
- package/iam-policy/useCheckPermission.js.map +1 -1
- package/index.d.ts +12 -4
- package/index.d.ts.map +1 -1
- package/index.js +18 -3
- package/index.js.map +1 -1
- package/internal/form-primitives.d.ts +10 -0
- package/internal/form-primitives.d.ts.map +1 -0
- package/internal/form-primitives.js +15 -0
- package/internal/form-primitives.js.map +1 -0
- package/library/index.d.ts +0 -7
- package/library/index.d.ts.map +1 -1
- package/library/index.js +0 -4
- package/library/index.js.map +1 -1
- package/library/useApplyResource.d.ts +12 -12
- package/library/useApplyResource.d.ts.map +1 -1
- package/library/useApplyResource.js +16 -25
- package/library/useApplyResource.js.map +1 -1
- package/library/useExportResource.d.ts +13 -9
- package/library/useExportResource.d.ts.map +1 -1
- package/library/useExportResource.js +18 -36
- package/library/useExportResource.js.map +1 -1
- package/manifest/ApplyManifestDialog.d.ts +48 -0
- package/manifest/ApplyManifestDialog.d.ts.map +1 -0
- package/manifest/ApplyManifestDialog.js +135 -0
- package/manifest/ApplyManifestDialog.js.map +1 -0
- package/manifest/EditResourceYamlDialog.d.ts +51 -0
- package/manifest/EditResourceYamlDialog.d.ts.map +1 -0
- package/manifest/EditResourceYamlDialog.js +104 -0
- package/manifest/EditResourceYamlDialog.js.map +1 -0
- package/manifest/RedactedSecretsNotice.d.ts +14 -0
- package/manifest/RedactedSecretsNotice.d.ts.map +1 -0
- package/manifest/RedactedSecretsNotice.js +14 -0
- package/manifest/RedactedSecretsNotice.js.map +1 -0
- package/manifest/YamlEditor.d.ts +44 -0
- package/manifest/YamlEditor.d.ts.map +1 -0
- package/manifest/YamlEditor.js +216 -0
- package/manifest/YamlEditor.js.map +1 -0
- package/manifest/index.d.ts +13 -0
- package/manifest/index.d.ts.map +1 -0
- package/manifest/index.js +13 -0
- package/manifest/index.js.map +1 -0
- package/manifest/useApplyManifest.d.ts +82 -0
- package/manifest/useApplyManifest.d.ts.map +1 -0
- package/manifest/useApplyManifest.js +180 -0
- package/manifest/useApplyManifest.js.map +1 -0
- package/manifest/useEditResourceYaml.d.ts +106 -0
- package/manifest/useEditResourceYaml.d.ts.map +1 -0
- package/manifest/useEditResourceYaml.js +168 -0
- package/manifest/useEditResourceYaml.js.map +1 -0
- package/mcp-server/steps/ReviewStep.d.ts.map +1 -1
- package/mcp-server/steps/ReviewStep.js +2 -3
- package/mcp-server/steps/ReviewStep.js.map +1 -1
- package/package.json +4 -4
- package/pricing-governance/BaselineEditor.d.ts +9 -0
- package/pricing-governance/BaselineEditor.d.ts.map +1 -0
- package/pricing-governance/BaselineEditor.js +270 -0
- package/pricing-governance/BaselineEditor.js.map +1 -0
- package/pricing-governance/ModelCatalogPanel.d.ts +28 -0
- package/pricing-governance/ModelCatalogPanel.d.ts.map +1 -0
- package/pricing-governance/ModelCatalogPanel.js +102 -0
- package/pricing-governance/ModelCatalogPanel.js.map +1 -0
- package/pricing-governance/ModelGovernanceDetail.d.ts +8 -0
- package/pricing-governance/ModelGovernanceDetail.d.ts.map +1 -0
- package/pricing-governance/ModelGovernanceDetail.js +64 -0
- package/pricing-governance/ModelGovernanceDetail.js.map +1 -0
- package/pricing-governance/OperatorAccessNotice.d.ts +12 -0
- package/pricing-governance/OperatorAccessNotice.d.ts.map +1 -0
- package/pricing-governance/OperatorAccessNotice.js +15 -0
- package/pricing-governance/OperatorAccessNotice.js.map +1 -0
- package/pricing-governance/PricingGovernanceConsole.d.ts +57 -0
- package/pricing-governance/PricingGovernanceConsole.d.ts.map +1 -0
- package/pricing-governance/PricingGovernanceConsole.js +164 -0
- package/pricing-governance/PricingGovernanceConsole.js.map +1 -0
- package/pricing-governance/PricingGovernancePanel.d.ts +26 -0
- package/pricing-governance/PricingGovernancePanel.d.ts.map +1 -0
- package/pricing-governance/PricingGovernancePanel.js +64 -0
- package/pricing-governance/PricingGovernancePanel.js.map +1 -0
- package/pricing-governance/RetireConfirm.d.ts +9 -0
- package/pricing-governance/RetireConfirm.d.ts.map +1 -0
- package/pricing-governance/RetireConfirm.js +19 -0
- package/pricing-governance/RetireConfirm.js.map +1 -0
- package/pricing-governance/governance-primitives.d.ts +33 -0
- package/pricing-governance/governance-primitives.d.ts.map +1 -0
- package/pricing-governance/governance-primitives.js +43 -0
- package/pricing-governance/governance-primitives.js.map +1 -0
- package/pricing-governance/index.d.ts +19 -0
- package/pricing-governance/index.d.ts.map +1 -0
- package/pricing-governance/index.js +20 -0
- package/pricing-governance/index.js.map +1 -0
- package/pricing-governance/pricing-format.d.ts +12 -0
- package/pricing-governance/pricing-format.d.ts.map +1 -0
- package/pricing-governance/pricing-format.js +50 -0
- package/pricing-governance/pricing-format.js.map +1 -0
- package/pricing-governance/useDecidePricingOverride.d.ts +46 -0
- package/pricing-governance/useDecidePricingOverride.d.ts.map +1 -0
- package/pricing-governance/useDecidePricingOverride.js +44 -0
- package/pricing-governance/useDecidePricingOverride.js.map +1 -0
- package/pricing-governance/useModelGovernanceView.d.ts +103 -0
- package/pricing-governance/useModelGovernanceView.d.ts.map +1 -0
- package/pricing-governance/useModelGovernanceView.js +144 -0
- package/pricing-governance/useModelGovernanceView.js.map +1 -0
- package/pricing-governance/useModelPricingBaselines.d.ts +40 -0
- package/pricing-governance/useModelPricingBaselines.d.ts.map +1 -0
- package/pricing-governance/useModelPricingBaselines.js +32 -0
- package/pricing-governance/useModelPricingBaselines.js.map +1 -0
- package/pricing-governance/usePricingGovernance.d.ts +39 -0
- package/pricing-governance/usePricingGovernance.d.ts.map +1 -0
- package/pricing-governance/usePricingGovernance.js +31 -0
- package/pricing-governance/usePricingGovernance.js.map +1 -0
- package/pricing-governance/useRetireModelPricingBaseline.d.ts +31 -0
- package/pricing-governance/useRetireModelPricingBaseline.d.ts.map +1 -0
- package/pricing-governance/useRetireModelPricingBaseline.js +36 -0
- package/pricing-governance/useRetireModelPricingBaseline.js.map +1 -0
- package/pricing-governance/useUpsertModelPricingBaseline.d.ts +38 -0
- package/pricing-governance/useUpsertModelPricingBaseline.d.ts.map +1 -0
- package/pricing-governance/useUpsertModelPricingBaseline.js +37 -0
- package/pricing-governance/useUpsertModelPricingBaseline.js.map +1 -0
- package/resource-creation/templates/workflow-templates.js +4 -4
- package/session/useCreateSession.d.ts +28 -0
- package/session/useCreateSession.d.ts.map +1 -1
- package/session/useCreateSession.js +2 -1
- package/session/useCreateSession.js.map +1 -1
- package/session/useEditSessionPrep.js +3 -3
- package/session/useEditSessionPrep.js.map +1 -1
- package/session/useNewSessionFlow.d.ts +30 -0
- package/session/useNewSessionFlow.d.ts.map +1 -1
- package/session/useNewSessionFlow.js +7 -1
- package/session/useNewSessionFlow.js.map +1 -1
- package/session/useUpdateSession.d.ts +29 -10
- package/session/useUpdateSession.d.ts.map +1 -1
- package/session/useUpdateSession.js +29 -10
- package/session/useUpdateSession.js.map +1 -1
- package/settings/index.d.ts +2 -1
- package/settings/index.d.ts.map +1 -1
- package/settings/index.js +2 -1
- package/settings/index.js.map +1 -1
- package/settings/settings-nav.d.ts +22 -0
- package/settings/settings-nav.d.ts.map +1 -1
- package/settings/settings-nav.js +32 -1
- package/settings/settings-nav.js.map +1 -1
- package/settings/useSettingsNavGroups.d.ts +29 -0
- package/settings/useSettingsNavGroups.d.ts.map +1 -0
- package/settings/useSettingsNavGroups.js +61 -0
- package/settings/useSettingsNavGroups.js.map +1 -0
- package/src/agent/steps/ReviewStep.tsx +2 -3
- package/src/billing/index.ts +5 -0
- package/src/channel/AgentChannelsPanel.tsx +27 -1
- package/src/composer/SessionComposer.tsx +1 -1
- package/src/cursor-accounts/CursorAccountEditor.tsx +229 -0
- package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +36 -0
- package/src/cursor-accounts/CursorAccountsConsole.tsx +454 -0
- package/src/cursor-accounts/MemberCoverageTable.tsx +439 -0
- package/src/cursor-accounts/MemberKeysPanel.tsx +278 -0
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +680 -0
- package/src/cursor-accounts/__tests__/cursor-account-coverage.test.ts +73 -0
- package/src/cursor-accounts/badges.tsx +26 -0
- package/src/cursor-accounts/cursor-account-coverage.ts +71 -0
- package/src/cursor-accounts/cursor-account-format.ts +45 -0
- package/src/cursor-accounts/index.ts +29 -0
- package/src/cursor-accounts/useCursorAccountView.ts +49 -0
- package/src/cursor-accounts/useCursorAccounts.ts +49 -0
- package/src/cursor-accounts/useCursorMemberKeyActions.ts +106 -0
- package/src/cursor-accounts/useDeleteCursorAccount.ts +62 -0
- package/src/cursor-accounts/useSyncCursorAccount.ts +54 -0
- package/src/cursor-accounts/useUpsertCursorAccount.ts +57 -0
- package/src/datastore/CollectionRecordsBrowser.tsx +570 -0
- package/src/datastore/CollectionSchemaView.tsx +247 -0
- package/src/datastore/DatastoreDetailView.tsx +201 -0
- package/src/datastore/DatastoreSyncReport.tsx +105 -0
- package/src/datastore/DeleteDatastoreDialog.tsx +202 -0
- package/src/datastore/FieldValueControl.tsx +289 -0
- package/src/datastore/RecordFilterBuilder.tsx +422 -0
- package/src/datastore/RecordFormPanel.tsx +432 -0
- package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +245 -0
- package/src/datastore/__tests__/DeleteDatastoreDialog.test.tsx +133 -0
- package/src/datastore/__tests__/FieldValueControl.test.tsx +160 -0
- package/src/datastore/__tests__/RecordFilterBuilder.test.tsx +155 -0
- package/src/datastore/__tests__/RecordFormPanel.test.tsx +227 -0
- package/src/datastore/__tests__/recordFilter.test.ts +169 -0
- package/src/datastore/__tests__/recordMutations.test.tsx +195 -0
- package/src/datastore/__tests__/recordValues.test.ts +359 -0
- package/src/datastore/__tests__/schemaAndSyncViews.test.tsx +142 -0
- package/src/datastore/__tests__/useDatastoreDescription.test.tsx +143 -0
- package/src/datastore/__tests__/useRecordCollection.test.tsx +250 -0
- package/src/datastore/__tests__/useRecordList.test.tsx +85 -0
- package/src/datastore/index.ts +111 -0
- package/src/datastore/recordFilter.ts +154 -0
- package/src/datastore/recordValues.ts +327 -0
- package/src/datastore/useDatastore.ts +67 -0
- package/src/datastore/useDatastoreCount.ts +67 -0
- package/src/datastore/useDatastoreDescription.ts +90 -0
- package/src/datastore/useDatastoreList.ts +79 -0
- package/src/datastore/useDatastoreSearch.ts +39 -0
- package/src/datastore/useDeleteDatastore.ts +87 -0
- package/src/datastore/useDeleteRecord.ts +77 -0
- package/src/datastore/useInsertRecord.ts +92 -0
- package/src/datastore/useRecordCollection.ts +256 -0
- package/src/datastore/useRecordList.ts +131 -0
- package/src/datastore/useUpdateRecord.ts +95 -0
- package/src/environment/EnvironmentListPanel.tsx +24 -0
- package/src/execution/ExecutionProgress.tsx +14 -4
- package/src/execution/MessageThread.tsx +10 -2
- package/src/execution/__tests__/ExecutionProgress.test.tsx +67 -0
- package/src/execution/__tests__/MessageThread.test.tsx +44 -0
- package/src/execution/__tests__/useArtifactInspection.test.tsx +12 -2
- package/src/execution/__tests__/useCreateAgentExecution.test.tsx +86 -0
- package/src/execution/useCreateAgentExecution.ts +41 -6
- package/src/iam-policy/__tests__/useCheckPermission.test.tsx +221 -0
- package/src/iam-policy/index.ts +1 -0
- package/src/iam-policy/useCheckPermission.ts +45 -19
- package/src/index.ts +172 -14
- package/src/internal/form-primitives.tsx +40 -0
- package/src/library/index.ts +0 -20
- package/src/library/useApplyResource.ts +27 -34
- package/src/library/useExportResource.ts +21 -40
- package/src/manifest/ApplyManifestDialog.tsx +315 -0
- package/src/manifest/EditResourceYamlDialog.tsx +265 -0
- package/src/manifest/RedactedSecretsNotice.tsx +30 -0
- package/src/manifest/YamlEditor.tsx +272 -0
- package/src/manifest/__tests__/EditResourceYamlDialog.test.tsx +118 -0
- package/src/manifest/__tests__/useApplyManifest.test.tsx +237 -0
- package/src/manifest/__tests__/useEditResourceYaml.test.tsx +252 -0
- package/src/manifest/index.ts +33 -0
- package/src/manifest/useApplyManifest.ts +270 -0
- package/src/manifest/useEditResourceYaml.ts +273 -0
- package/src/mcp-server/steps/ReviewStep.tsx +2 -3
- package/src/pricing-governance/BaselineEditor.tsx +652 -0
- package/src/pricing-governance/ModelCatalogPanel.tsx +283 -0
- package/src/pricing-governance/ModelGovernanceDetail.tsx +289 -0
- package/src/pricing-governance/OperatorAccessNotice.tsx +32 -0
- package/src/pricing-governance/PricingGovernanceConsole.tsx +465 -0
- package/src/pricing-governance/PricingGovernancePanel.tsx +166 -0
- package/src/pricing-governance/RetireConfirm.tsx +82 -0
- package/src/pricing-governance/__tests__/ModelCatalogPanel.test.tsx +253 -0
- package/src/pricing-governance/__tests__/PricingGovernanceConsole.test.tsx +410 -0
- package/src/pricing-governance/__tests__/useModelGovernanceView.test.tsx +308 -0
- package/src/pricing-governance/governance-primitives.tsx +133 -0
- package/src/pricing-governance/index.ts +50 -0
- package/src/pricing-governance/pricing-format.ts +53 -0
- package/src/pricing-governance/useDecidePricingOverride.ts +78 -0
- package/src/pricing-governance/useModelGovernanceView.ts +290 -0
- package/src/pricing-governance/useModelPricingBaselines.ts +69 -0
- package/src/pricing-governance/usePricingGovernance.ts +57 -0
- package/src/pricing-governance/useRetireModelPricingBaseline.ts +65 -0
- package/src/pricing-governance/useUpsertModelPricingBaseline.ts +72 -0
- package/src/resource-creation/templates/workflow-templates.ts +4 -4
- package/src/session/__tests__/useCreateSession.test.tsx +94 -0
- package/src/session/__tests__/useNewSessionFlow.test.tsx +33 -0
- package/src/session/useCreateSession.ts +30 -0
- package/src/session/useEditSessionPrep.ts +3 -3
- package/src/session/useNewSessionFlow.ts +45 -1
- package/src/session/useUpdateSession.ts +29 -10
- package/src/settings/__tests__/useSettingsNavGroups.test.tsx +138 -0
- package/src/settings/index.ts +5 -1
- package/src/settings/settings-nav.ts +43 -0
- package/src/settings/useSettingsNavGroups.ts +81 -0
- package/src/workflow/WorkflowYamlEditor.tsx +6 -270
- package/styles.css +1 -1
- package/workflow/CanvasTransitionEdge.d.ts +1 -1
- package/workflow/WorkflowYamlEditor.d.ts +2 -42
- package/workflow/WorkflowYamlEditor.d.ts.map +1 -1
- package/workflow/WorkflowYamlEditor.js +5 -214
- package/workflow/WorkflowYamlEditor.js.map +1 -1
- package/library/ImportResourceDialog.d.ts +0 -43
- package/library/ImportResourceDialog.d.ts.map +0 -1
- package/library/ImportResourceDialog.js +0 -90
- package/library/ImportResourceDialog.js.map +0 -1
- package/library/parse-resource-yaml.d.ts +0 -63
- package/library/parse-resource-yaml.d.ts.map +0 -1
- package/library/parse-resource-yaml.js +0 -407
- package/library/parse-resource-yaml.js.map +0 -1
- package/library/serialize-resource-yaml.d.ts +0 -103
- package/library/serialize-resource-yaml.d.ts.map +0 -1
- package/library/serialize-resource-yaml.js +0 -565
- package/library/serialize-resource-yaml.js.map +0 -1
- package/library/useImportResource.d.ts +0 -84
- package/library/useImportResource.d.ts.map +0 -1
- package/library/useImportResource.js +0 -188
- package/library/useImportResource.js.map +0 -1
- package/src/library/ImportResourceDialog.tsx +0 -227
- package/src/library/parse-resource-yaml.ts +0 -630
- package/src/library/serialize-resource-yaml.ts +0 -756
- package/src/library/useImportResource.ts +0 -253
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { cn } from "@stigmer/theme";
|
|
5
|
+
import { timestampDate } from "@bufbuild/protobuf/wkt";
|
|
6
|
+
import { getRecordConstraint, getUserMessage } from "@stigmer/sdk";
|
|
7
|
+
import { FieldValueControl } from "./FieldValueControl.js";
|
|
8
|
+
import { buildUpdateFields, coerceFieldValue, formatSystemTimestamp, } from "./recordValues.js";
|
|
9
|
+
import { formatSubject } from "./CollectionSchemaView.js";
|
|
10
|
+
import { useInsertRecord } from "./useInsertRecord.js";
|
|
11
|
+
import { useUpdateRecord } from "./useUpdateRecord.js";
|
|
12
|
+
/**
|
|
13
|
+
* The record write surface (DD-008 SD-4): one schema-generated panel
|
|
14
|
+
* form serving insert and edit, with typed controls dispatched from
|
|
15
|
+
* `FieldDeclaration`.
|
|
16
|
+
*
|
|
17
|
+
* - **Insert** submits every field the operator set; required fields
|
|
18
|
+
* gate the submit (error prevention — the server remains the
|
|
19
|
+
* enforcer).
|
|
20
|
+
* - **Edit** submits a **partial merge**: only dirty fields travel, and
|
|
21
|
+
* the per-field clear affordance sends an explicit `null` — the form
|
|
22
|
+
* is honest about the RPC's tri-state. System fields render read-only
|
|
23
|
+
* and never travel.
|
|
24
|
+
* - **Errors replay the DD-002/DD-005 contract for humans**: a
|
|
25
|
+
* constraint violation renders the declared message **verbatim** —
|
|
26
|
+
* field-adjacent when the `ErrorInfo` constraint name maps through
|
|
27
|
+
* the spec to declared fields (unique constraints), as a form-level
|
|
28
|
+
* banner otherwise. The console operator and the WhatsApp patient
|
|
29
|
+
* read the same bytes.
|
|
30
|
+
*
|
|
31
|
+
* All visual properties flow through `--stgm-*` design tokens.
|
|
32
|
+
* Zero Console dependencies — safe for platform builder embedding.
|
|
33
|
+
*/
|
|
34
|
+
export function RecordFormPanel({ open, onOpenChange, scope, collection, record, onSaved, }) {
|
|
35
|
+
const dialogRef = useRef(null);
|
|
36
|
+
const isEdit = record != null;
|
|
37
|
+
const insert = useInsertRecord();
|
|
38
|
+
const update = useUpdateRecord();
|
|
39
|
+
const isSaving = insert.isInserting || update.isUpdating;
|
|
40
|
+
const [edits, setEdits] = useState(new Map());
|
|
41
|
+
const [fieldErrors, setFieldErrors] = useState(new Map());
|
|
42
|
+
const [bannerError, setBannerError] = useState(null);
|
|
43
|
+
// Reset form state whenever the panel opens (fresh draft per open).
|
|
44
|
+
// Deps narrowed to the stable clearError callbacks (DD-010).
|
|
45
|
+
const clearInsertError = insert.clearError;
|
|
46
|
+
const clearUpdateError = update.clearError;
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
if (open) {
|
|
49
|
+
setEdits(new Map());
|
|
50
|
+
setFieldErrors(new Map());
|
|
51
|
+
setBannerError(null);
|
|
52
|
+
clearInsertError();
|
|
53
|
+
clearUpdateError();
|
|
54
|
+
}
|
|
55
|
+
}, [open, record?.id, clearInsertError, clearUpdateError]);
|
|
56
|
+
// Native <dialog> open/close sync (the ConfirmDialog pattern).
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
const dialog = dialogRef.current;
|
|
59
|
+
if (!dialog)
|
|
60
|
+
return;
|
|
61
|
+
if (open && !dialog.open)
|
|
62
|
+
dialog.showModal();
|
|
63
|
+
else if (!open && dialog.open)
|
|
64
|
+
dialog.close();
|
|
65
|
+
}, [open]);
|
|
66
|
+
const handleDialogCancel = useCallback((e) => {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
onOpenChange(false);
|
|
69
|
+
}, [onOpenChange]);
|
|
70
|
+
/** The effective value a field's control shows: edit > stored > empty. */
|
|
71
|
+
const effectiveValue = useCallback((field) => {
|
|
72
|
+
const edit = edits.get(field.name);
|
|
73
|
+
if (edit)
|
|
74
|
+
return edit.kind === "cleared" ? undefined : edit.value;
|
|
75
|
+
if (isEdit) {
|
|
76
|
+
const stored = record?.fields?.[field.name];
|
|
77
|
+
return stored === null ? undefined : stored;
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}, [edits, isEdit, record]);
|
|
81
|
+
const setFieldValue = useCallback((name, value) => {
|
|
82
|
+
setEdits((prev) => {
|
|
83
|
+
const next = new Map(prev);
|
|
84
|
+
if (value === undefined) {
|
|
85
|
+
// Emptying the control: in insert mode the field simply won't
|
|
86
|
+
// travel; in edit mode an emptied control is an explicit clear.
|
|
87
|
+
next.set(name, { kind: "cleared" });
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
next.set(name, { kind: "value", value });
|
|
91
|
+
}
|
|
92
|
+
return next;
|
|
93
|
+
});
|
|
94
|
+
setFieldErrors((prev) => {
|
|
95
|
+
if (!prev.has(name))
|
|
96
|
+
return prev;
|
|
97
|
+
const next = new Map(prev);
|
|
98
|
+
next.delete(name);
|
|
99
|
+
return next;
|
|
100
|
+
});
|
|
101
|
+
}, []);
|
|
102
|
+
const clearField = useCallback((name) => {
|
|
103
|
+
setEdits((prev) => new Map(prev).set(name, { kind: "cleared" }));
|
|
104
|
+
}, []);
|
|
105
|
+
// Required fields gate the submit in insert mode (error prevention).
|
|
106
|
+
const missingRequired = useMemo(() => {
|
|
107
|
+
if (isEdit)
|
|
108
|
+
return [];
|
|
109
|
+
return collection.fields
|
|
110
|
+
.filter((f) => f.required && f.default === undefined)
|
|
111
|
+
.filter((f) => {
|
|
112
|
+
const edit = edits.get(f.name);
|
|
113
|
+
return !edit || edit.kind === "cleared";
|
|
114
|
+
})
|
|
115
|
+
.map((f) => f.name);
|
|
116
|
+
}, [collection, edits, isEdit]);
|
|
117
|
+
const handleSubmit = useCallback(async () => {
|
|
118
|
+
setBannerError(null);
|
|
119
|
+
// Client-side coercion (a projection of the server contract): fail
|
|
120
|
+
// fast with field-adjacent messages; the server stays the enforcer.
|
|
121
|
+
const coerced = new Map();
|
|
122
|
+
const errors = new Map();
|
|
123
|
+
for (const field of collection.fields) {
|
|
124
|
+
const edit = edits.get(field.name);
|
|
125
|
+
if (!edit)
|
|
126
|
+
continue;
|
|
127
|
+
if (edit.kind === "cleared") {
|
|
128
|
+
if (isEdit)
|
|
129
|
+
coerced.set(field.name, null);
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
const result = coerceFieldValue(field, edit.value);
|
|
133
|
+
if (result.ok) {
|
|
134
|
+
coerced.set(field.name, result.value);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
errors.set(field.name, result.error);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
if (errors.size > 0) {
|
|
141
|
+
setFieldErrors(errors);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
try {
|
|
145
|
+
let saved;
|
|
146
|
+
if (isEdit) {
|
|
147
|
+
if (coerced.size === 0) {
|
|
148
|
+
onOpenChange(false); // nothing dirty — an honest no-op
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
saved = await update.updateRecord({
|
|
152
|
+
...scope,
|
|
153
|
+
id: record.id,
|
|
154
|
+
fields: buildUpdateFields(coerced),
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
const payload = {};
|
|
159
|
+
for (const [name, value] of coerced) {
|
|
160
|
+
if (value !== null)
|
|
161
|
+
payload[name] = value;
|
|
162
|
+
}
|
|
163
|
+
saved = await insert.insertRecord({ ...scope, record: payload });
|
|
164
|
+
}
|
|
165
|
+
onSaved?.(saved);
|
|
166
|
+
onOpenChange(false);
|
|
167
|
+
}
|
|
168
|
+
catch (err) {
|
|
169
|
+
placeServerError(err, collection, setFieldErrors, setBannerError);
|
|
170
|
+
}
|
|
171
|
+
}, [collection, edits, isEdit, record, scope, insert, update, onSaved, onOpenChange]);
|
|
172
|
+
if (!open)
|
|
173
|
+
return null;
|
|
174
|
+
return (_jsx("dialog", { ref: dialogRef, onCancel: handleDialogCancel, "aria-label": isEdit
|
|
175
|
+
? `Edit record in ${collection.name}`
|
|
176
|
+
: `Insert record into ${collection.name}`, className: cn("fixed inset-0 z-50 m-auto w-full max-w-md rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-lg", "backdrop:bg-black/50", "open:animate-in open:fade-in-0 open:zoom-in-95"), children: _jsxs("div", { className: "flex max-h-[80vh] flex-col gap-4 overflow-y-auto p-6", children: [_jsxs("h3", { className: "text-base font-semibold text-foreground", children: [isEdit ? "Edit record" : "Insert record", _jsx("span", { className: "ml-2 font-mono text-xs font-normal text-muted-foreground", children: collection.name })] }), bannerError && (_jsx("div", { role: "alert", className: "rounded-md border border-destructive bg-card px-3 py-2 text-sm text-destructive", children: bannerError })), isEdit && record && _jsx(SystemFieldsSummary, { record: record }), _jsx("div", { className: "flex flex-col gap-3", children: collection.fields.map((field) => (_jsx(FieldRow, { field: field, value: effectiveValue(field), error: fieldErrors.get(field.name), isEdit: isEdit, cleared: edits.get(field.name)?.kind === "cleared", onChange: (v) => setFieldValue(field.name, v), onClear: () => clearField(field.name) }, field.name))) }), _jsxs("div", { className: "flex items-center justify-end gap-2", children: [missingRequired.length > 0 && (_jsxs("span", { className: "mr-auto text-xs text-muted-foreground", children: ["Required: ", missingRequired.join(", ")] })), _jsx("button", { type: "button", onClick: () => onOpenChange(false), className: cn("rounded-md border border-input bg-background px-3 py-1.5 text-sm font-medium text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), children: "Cancel" }), _jsx("button", { type: "button", onClick: handleSubmit, disabled: isSaving || missingRequired.length > 0, className: cn("rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground", "hover:bg-primary-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: isSaving ? "Saving…" : isEdit ? "Save changes" : "Insert" })] })] }) }));
|
|
177
|
+
}
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
// Server-error placement (DD-008 SD-4)
|
|
180
|
+
// ---------------------------------------------------------------------------
|
|
181
|
+
/**
|
|
182
|
+
* Place a record-write error: field-adjacent when the ErrorInfo
|
|
183
|
+
* constraint name maps to a unique constraint's declared fields, a
|
|
184
|
+
* form-level banner otherwise. Either way the message is the server's
|
|
185
|
+
* bytes, verbatim.
|
|
186
|
+
*/
|
|
187
|
+
function placeServerError(err, collection, setFieldErrors, setBannerError) {
|
|
188
|
+
const message = getUserMessage(err);
|
|
189
|
+
const constraintName = getRecordConstraint(err);
|
|
190
|
+
if (constraintName) {
|
|
191
|
+
const unique = collection.uniques.find((u) => u.name === constraintName);
|
|
192
|
+
if (unique && unique.fields.length > 0) {
|
|
193
|
+
setFieldErrors(new Map(unique.fields.map((f) => [f, message])));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
setBannerError(message);
|
|
198
|
+
}
|
|
199
|
+
// ---------------------------------------------------------------------------
|
|
200
|
+
// Rows
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
function FieldRow({ field, value, error, isEdit, cleared, onChange, onClear, }) {
|
|
203
|
+
const controlId = useId();
|
|
204
|
+
const showClear = isEdit && !field.required && !cleared && value !== undefined;
|
|
205
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [_jsxs("div", { className: "flex items-baseline gap-1", children: [_jsxs("label", { htmlFor: controlId, className: "text-xs font-medium text-muted-foreground", children: [field.name, field.required && (_jsxs("span", { className: "text-destructive", "aria-label": "required", children: [" ", "*"] }))] }), showClear && (_jsx("button", { type: "button", onClick: onClear, "aria-label": `Clear ${field.name}`, className: cn("ml-auto text-xs text-muted-foreground underline-offset-2 hover:text-foreground hover:underline", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring"), children: "Clear" })), cleared && (_jsx("span", { className: "ml-auto text-xs italic text-muted-foreground", children: "will be cleared" }))] }), field.description && (_jsx("p", { className: "text-xs leading-tight text-muted-foreground", children: field.description })), _jsx(FieldValueControl, { id: controlId, field: field, value: value, onChange: onChange }), error && (_jsx("span", { role: "alert", className: "text-xs text-destructive", children: error }))] }));
|
|
206
|
+
}
|
|
207
|
+
/** Read-only envelope columns shown in edit mode; never editable, never submitted. */
|
|
208
|
+
function SystemFieldsSummary({ record }) {
|
|
209
|
+
return (_jsxs("dl", { className: "grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 rounded-md bg-muted p-3 text-xs", children: [_jsx("dt", { className: "font-medium text-muted-foreground", children: "id" }), _jsx("dd", { className: "truncate font-mono text-foreground", children: record.id }), _jsx("dt", { className: "font-medium text-muted-foreground", children: "created_at" }), _jsx("dd", { className: "font-mono text-foreground", children: record.createdAt
|
|
210
|
+
? formatSystemTimestamp(timestampDate(record.createdAt).toISOString())
|
|
211
|
+
: "" }), _jsx("dt", { className: "font-medium text-muted-foreground", children: "updated_at" }), _jsx("dd", { className: "font-mono text-foreground", children: record.updatedAt
|
|
212
|
+
? formatSystemTimestamp(timestampDate(record.updatedAt).toISOString())
|
|
213
|
+
: "" }), _jsx("dt", { className: "font-medium text-muted-foreground", children: "created_by" }), _jsx("dd", { className: "truncate font-mono text-foreground", children: formatSubject(record.createdBy) })] }));
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=RecordFormPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RecordFormPanel.js","sourceRoot":"","sources":["../../src/datastore/RecordFormPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export { useDatastore } from "./useDatastore.js";
|
|
2
|
+
export type { UseDatastoreReturn } from "./useDatastore.js";
|
|
3
|
+
export { useDatastoreList } from "./useDatastoreList.js";
|
|
4
|
+
export type { UseDatastoreListOptions, UseDatastoreListReturn, } from "./useDatastoreList.js";
|
|
5
|
+
export { useDatastoreCount } from "./useDatastoreCount.js";
|
|
6
|
+
export type { UseDatastoreCountOptions, UseDatastoreCountReturn, } from "./useDatastoreCount.js";
|
|
7
|
+
export { useDatastoreSearch } from "./useDatastoreSearch.js";
|
|
8
|
+
export type { UseDatastoreSearchOptions, UseDatastoreSearchReturn, } from "./useDatastoreSearch.js";
|
|
9
|
+
export { useDatastoreDescription, DEFAULT_PARTITION } from "./useDatastoreDescription.js";
|
|
10
|
+
export type { UseDatastoreDescriptionReturn } from "./useDatastoreDescription.js";
|
|
11
|
+
export { useRecordList } from "./useRecordList.js";
|
|
12
|
+
export type { RecordScope, UseRecordListParams, UseRecordListReturn, } from "./useRecordList.js";
|
|
13
|
+
export { useInsertRecord } from "./useInsertRecord.js";
|
|
14
|
+
export type { InsertRecordArgs, UseInsertRecordReturn, } from "./useInsertRecord.js";
|
|
15
|
+
export { useUpdateRecord } from "./useUpdateRecord.js";
|
|
16
|
+
export type { UpdateRecordArgs, UseUpdateRecordReturn, } from "./useUpdateRecord.js";
|
|
17
|
+
export { useDeleteRecord } from "./useDeleteRecord.js";
|
|
18
|
+
export type { DeleteRecordArgs, UseDeleteRecordReturn, } from "./useDeleteRecord.js";
|
|
19
|
+
export { useRecordCollection } from "./useRecordCollection.js";
|
|
20
|
+
export type { RecordColumnDef, UseRecordCollectionOptions, UseRecordCollectionReturn, } from "./useRecordCollection.js";
|
|
21
|
+
export { useDeleteDatastore } from "./useDeleteDatastore.js";
|
|
22
|
+
export type { DeleteDatastoreArgs, UseDeleteDatastoreReturn, } from "./useDeleteDatastore.js";
|
|
23
|
+
export { buildUpdateFields, coerceFieldValue, formatFieldValue, formatSystemTimestamp, isListOperator, isSortableField, isValuelessOperator, operatorsForField, OPERATOR_LABELS, RESERVED_FIELD_NAMES, SYSTEM_FIELD_OPERATORS, } from "./recordValues.js";
|
|
24
|
+
export type { CoerceResult } from "./recordValues.js";
|
|
25
|
+
export { buildRecordFilter, filterableFields, formatConditionChip, isConditionComplete, } from "./recordFilter.js";
|
|
26
|
+
export type { FilterableField, RecordConditionDraft } from "./recordFilter.js";
|
|
27
|
+
export { FieldValueControl, FIELD_INPUT_CLASSES } from "./FieldValueControl.js";
|
|
28
|
+
export type { FieldValueControlProps } from "./FieldValueControl.js";
|
|
29
|
+
export { CollectionSchemaView, formatSubject } from "./CollectionSchemaView.js";
|
|
30
|
+
export type { CollectionSchemaViewProps } from "./CollectionSchemaView.js";
|
|
31
|
+
export { DatastoreSyncReport } from "./DatastoreSyncReport.js";
|
|
32
|
+
export type { DatastoreSyncReportProps } from "./DatastoreSyncReport.js";
|
|
33
|
+
export { RecordFilterBuilder } from "./RecordFilterBuilder.js";
|
|
34
|
+
export type { RecordFilterBuilderProps } from "./RecordFilterBuilder.js";
|
|
35
|
+
export { RecordFormPanel } from "./RecordFormPanel.js";
|
|
36
|
+
export type { RecordFormPanelProps } from "./RecordFormPanel.js";
|
|
37
|
+
export { CollectionRecordsBrowser } from "./CollectionRecordsBrowser.js";
|
|
38
|
+
export type { CollectionRecordsBrowserProps } from "./CollectionRecordsBrowser.js";
|
|
39
|
+
export { DeleteDatastoreDialog } from "./DeleteDatastoreDialog.js";
|
|
40
|
+
export type { DeleteDatastoreDialogProps } from "./DeleteDatastoreDialog.js";
|
|
41
|
+
export { DatastoreDetailView, DatastoreIcon } from "./DatastoreDetailView.js";
|
|
42
|
+
export type { DatastoreDetailTab, DatastoreDetailViewProps, } from "./DatastoreDetailView.js";
|
|
43
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/datastore/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export { useDatastore } from "./useDatastore.js";
|
|
2
|
+
export { useDatastoreList } from "./useDatastoreList.js";
|
|
3
|
+
export { useDatastoreCount } from "./useDatastoreCount.js";
|
|
4
|
+
export { useDatastoreSearch } from "./useDatastoreSearch.js";
|
|
5
|
+
export { useDatastoreDescription, DEFAULT_PARTITION } from "./useDatastoreDescription.js";
|
|
6
|
+
export { useRecordList } from "./useRecordList.js";
|
|
7
|
+
export { useInsertRecord } from "./useInsertRecord.js";
|
|
8
|
+
export { useUpdateRecord } from "./useUpdateRecord.js";
|
|
9
|
+
export { useDeleteRecord } from "./useDeleteRecord.js";
|
|
10
|
+
export { useRecordCollection } from "./useRecordCollection.js";
|
|
11
|
+
export { useDeleteDatastore } from "./useDeleteDatastore.js";
|
|
12
|
+
export { buildUpdateFields, coerceFieldValue, formatFieldValue, formatSystemTimestamp, isListOperator, isSortableField, isValuelessOperator, operatorsForField, OPERATOR_LABELS, RESERVED_FIELD_NAMES, SYSTEM_FIELD_OPERATORS, } from "./recordValues.js";
|
|
13
|
+
export { buildRecordFilter, filterableFields, formatConditionChip, isConditionComplete, } from "./recordFilter.js";
|
|
14
|
+
export { FieldValueControl, FIELD_INPUT_CLASSES } from "./FieldValueControl.js";
|
|
15
|
+
export { CollectionSchemaView, formatSubject } from "./CollectionSchemaView.js";
|
|
16
|
+
export { DatastoreSyncReport } from "./DatastoreSyncReport.js";
|
|
17
|
+
export { RecordFilterBuilder } from "./RecordFilterBuilder.js";
|
|
18
|
+
export { RecordFormPanel } from "./RecordFormPanel.js";
|
|
19
|
+
export { CollectionRecordsBrowser } from "./CollectionRecordsBrowser.js";
|
|
20
|
+
export { DeleteDatastoreDialog } from "./DeleteDatastoreDialog.js";
|
|
21
|
+
export { DatastoreDetailView, DatastoreIcon } from "./DatastoreDetailView.js";
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/datastore/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAM3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAG1F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAO/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { type JsonValue } from "@bufbuild/protobuf";
|
|
2
|
+
import { RecordConditionOp, type RecordFilter } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
3
|
+
import { FieldType, type CollectionDeclaration, type FieldDeclaration } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/spec_pb";
|
|
4
|
+
/**
|
|
5
|
+
* One draft condition in the filter builder — the client-side twin of
|
|
6
|
+
* the proto `RecordCondition`, with plain JSON values (converted to
|
|
7
|
+
* `google.protobuf.Value` only at request-build time).
|
|
8
|
+
*/
|
|
9
|
+
export interface RecordConditionDraft {
|
|
10
|
+
/** Declared field name, or a filterable system field (`id`, `created_at`, `updated_at`). */
|
|
11
|
+
readonly field: string;
|
|
12
|
+
/** Comparison operator — must be admitted by the field's operator set. */
|
|
13
|
+
readonly op: RecordConditionOp;
|
|
14
|
+
/** Scalar comparison value. Absent for `is_null`/`not_null` and list operators. */
|
|
15
|
+
readonly value?: JsonValue;
|
|
16
|
+
/** Comparison values for `is_in`/`not_in`. */
|
|
17
|
+
readonly values?: readonly JsonValue[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A field the builder can offer: a declared filterable field or a
|
|
21
|
+
* filterable system field, with the exact operator set the server
|
|
22
|
+
* admits for it.
|
|
23
|
+
*/
|
|
24
|
+
export interface FilterableField {
|
|
25
|
+
readonly name: string;
|
|
26
|
+
/** The declaration, or `undefined` for system fields. */
|
|
27
|
+
readonly declaration?: FieldDeclaration;
|
|
28
|
+
/** The field type driving the value control (system fields use fixed types). */
|
|
29
|
+
readonly type: FieldType;
|
|
30
|
+
readonly operators: readonly RecordConditionOp[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The fields a collection's filter builder offers: declared filterable
|
|
34
|
+
* fields (json is not filterable) followed by the filterable system
|
|
35
|
+
* fields. `id` conditions take string values; the audit timestamps take
|
|
36
|
+
* RFC 3339 timestamps — both ride the `timestamp`/`string` value
|
|
37
|
+
* controls.
|
|
38
|
+
*
|
|
39
|
+
* `readableFields` is the caller's column-level read access from
|
|
40
|
+
* `describeDatastore` (the read verb's `readable_fields`; empty means
|
|
41
|
+
* every field). When restricted, unreadable declared fields are not
|
|
42
|
+
* offered — the server refuses conditions on them (the existence-oracle
|
|
43
|
+
* guard), and the builder must stay structurally unable to express an
|
|
44
|
+
* unservable filter (DD-008 invariant 2). System fields are always
|
|
45
|
+
* readable and always offered.
|
|
46
|
+
*/
|
|
47
|
+
export declare function filterableFields(collection: CollectionDeclaration, readableFields?: readonly string[]): FilterableField[];
|
|
48
|
+
/**
|
|
49
|
+
* Whether a draft is complete enough to serve: value-less operators
|
|
50
|
+
* need nothing, list operators need at least one value, scalar
|
|
51
|
+
* operators need a value.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isConditionComplete(draft: RecordConditionDraft): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Build the proto `RecordFilter` from complete drafts. Returns
|
|
56
|
+
* `undefined` for an empty set (an absent filter, not an empty one, is
|
|
57
|
+
* the RPC's "no filter").
|
|
58
|
+
*/
|
|
59
|
+
export declare function buildRecordFilter(conditions: readonly RecordConditionDraft[]): RecordFilter | undefined;
|
|
60
|
+
/** Chip text for an active condition, e.g. `status = confirmed` or `notes is empty`. */
|
|
61
|
+
export declare function formatConditionChip(draft: RecordConditionDraft): string;
|
|
62
|
+
//# sourceMappingURL=recordFilter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordFilter.d.ts","sourceRoot":"","sources":["../../src/datastore/recordFilter.ts"],"names":[],"mappings":"AAWA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EACL,iBAAiB,EAGjB,KAAK,YAAY,EAClB,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,SAAS,EACT,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,yDAAyD,CAAC;AASjE;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,4FAA4F;IAC5F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,gFAAgF;IAChF,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAClD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,qBAAqB,EACjC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GACjC,eAAe,EAAE,CAwBnB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAKxE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,SAAS,oBAAoB,EAAE,GAC1C,YAAY,GAAG,SAAS,CAa1B;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAOvE"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
// The records-specific filter model (DD-008 SD-3) — typed 1:1 against
|
|
2
|
+
// `RecordConditionOp`.
|
|
3
|
+
//
|
|
4
|
+
// Deliberately NOT the workbench `FilterDef`/`FilterValue` model: its
|
|
5
|
+
// `string | string[]` value shape cannot carry typed values or
|
|
6
|
+
// value-less null operators, and its operator set includes `contains`,
|
|
7
|
+
// which `findRecords` cannot serve. Welding a server-grammar contract
|
|
8
|
+
// onto a client-filter model would couple two contracts that evolve
|
|
9
|
+
// independently — so this model mirrors the RPC grammar exactly and can
|
|
10
|
+
// express nothing the RPC cannot serve (DD-008 invariant 2).
|
|
11
|
+
import { create, fromJson } from "@bufbuild/protobuf";
|
|
12
|
+
import { ValueSchema } from "@bufbuild/protobuf/wkt";
|
|
13
|
+
import { RecordConditionOp, RecordConditionSchema, RecordFilterSchema, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
14
|
+
import { FieldType, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/spec_pb";
|
|
15
|
+
import { isListOperator, isValuelessOperator, OPERATOR_LABELS, SYSTEM_FIELD_OPERATORS, operatorsForField, } from "./recordValues.js";
|
|
16
|
+
/**
|
|
17
|
+
* The fields a collection's filter builder offers: declared filterable
|
|
18
|
+
* fields (json is not filterable) followed by the filterable system
|
|
19
|
+
* fields. `id` conditions take string values; the audit timestamps take
|
|
20
|
+
* RFC 3339 timestamps — both ride the `timestamp`/`string` value
|
|
21
|
+
* controls.
|
|
22
|
+
*
|
|
23
|
+
* `readableFields` is the caller's column-level read access from
|
|
24
|
+
* `describeDatastore` (the read verb's `readable_fields`; empty means
|
|
25
|
+
* every field). When restricted, unreadable declared fields are not
|
|
26
|
+
* offered — the server refuses conditions on them (the existence-oracle
|
|
27
|
+
* guard), and the builder must stay structurally unable to express an
|
|
28
|
+
* unservable filter (DD-008 invariant 2). System fields are always
|
|
29
|
+
* readable and always offered.
|
|
30
|
+
*/
|
|
31
|
+
export function filterableFields(collection, readableFields) {
|
|
32
|
+
const readable = readableFields !== undefined && readableFields.length > 0 ? new Set(readableFields) : null;
|
|
33
|
+
const declared = [];
|
|
34
|
+
for (const field of collection.fields) {
|
|
35
|
+
const operators = operatorsForField(field);
|
|
36
|
+
if (operators.length === 0)
|
|
37
|
+
continue; // json — not filterable
|
|
38
|
+
if (readable !== null && !readable.has(field.name))
|
|
39
|
+
continue; // not readable under the grant
|
|
40
|
+
declared.push({ name: field.name, declaration: field, type: field.type, operators });
|
|
41
|
+
}
|
|
42
|
+
return [
|
|
43
|
+
...declared,
|
|
44
|
+
{ name: "id", type: FieldType.string, operators: SYSTEM_FIELD_OPERATORS.get("id") },
|
|
45
|
+
{
|
|
46
|
+
name: "created_at",
|
|
47
|
+
type: FieldType.timestamp,
|
|
48
|
+
operators: SYSTEM_FIELD_OPERATORS.get("created_at"),
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: "updated_at",
|
|
52
|
+
type: FieldType.timestamp,
|
|
53
|
+
operators: SYSTEM_FIELD_OPERATORS.get("updated_at"),
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Whether a draft is complete enough to serve: value-less operators
|
|
59
|
+
* need nothing, list operators need at least one value, scalar
|
|
60
|
+
* operators need a value.
|
|
61
|
+
*/
|
|
62
|
+
export function isConditionComplete(draft) {
|
|
63
|
+
if (draft.op === RecordConditionOp.record_condition_op_unspecified)
|
|
64
|
+
return false;
|
|
65
|
+
if (isValuelessOperator(draft.op))
|
|
66
|
+
return true;
|
|
67
|
+
if (isListOperator(draft.op))
|
|
68
|
+
return (draft.values?.length ?? 0) > 0;
|
|
69
|
+
return draft.value !== undefined;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Build the proto `RecordFilter` from complete drafts. Returns
|
|
73
|
+
* `undefined` for an empty set (an absent filter, not an empty one, is
|
|
74
|
+
* the RPC's "no filter").
|
|
75
|
+
*/
|
|
76
|
+
export function buildRecordFilter(conditions) {
|
|
77
|
+
const complete = conditions.filter(isConditionComplete);
|
|
78
|
+
if (complete.length === 0)
|
|
79
|
+
return undefined;
|
|
80
|
+
return create(RecordFilterSchema, {
|
|
81
|
+
conditions: complete.map((draft) => create(RecordConditionSchema, {
|
|
82
|
+
field: draft.field,
|
|
83
|
+
op: draft.op,
|
|
84
|
+
value: draft.value !== undefined ? fromJson(ValueSchema, draft.value) : undefined,
|
|
85
|
+
values: (draft.values ?? []).map((v) => fromJson(ValueSchema, v)),
|
|
86
|
+
})),
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
/** Chip text for an active condition, e.g. `status = confirmed` or `notes is empty`. */
|
|
90
|
+
export function formatConditionChip(draft) {
|
|
91
|
+
const op = OPERATOR_LABELS.get(draft.op) ?? "?";
|
|
92
|
+
if (isValuelessOperator(draft.op))
|
|
93
|
+
return `${draft.field} ${op}`;
|
|
94
|
+
if (isListOperator(draft.op)) {
|
|
95
|
+
return `${draft.field} ${op} [${(draft.values ?? []).map(formatChipValue).join(", ")}]`;
|
|
96
|
+
}
|
|
97
|
+
return `${draft.field} ${op} ${formatChipValue(draft.value)}`;
|
|
98
|
+
}
|
|
99
|
+
function formatChipValue(value) {
|
|
100
|
+
if (value === undefined || value === null)
|
|
101
|
+
return "";
|
|
102
|
+
return typeof value === "string" ? value : JSON.stringify(value);
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=recordFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordFilter.js","sourceRoot":"","sources":["../../src/datastore/recordFilter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { JsonObject, JsonValue } from "@bufbuild/protobuf";
|
|
2
|
+
import { FieldType, type FieldDeclaration } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/spec_pb";
|
|
3
|
+
import { RecordConditionOp } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
4
|
+
/**
|
|
5
|
+
* Record-envelope system field names (plus the cloud tenancy column and
|
|
6
|
+
* the DD-010 partition label). Never declarable, never caller-writable.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RESERVED_FIELD_NAMES: ReadonlySet<string>;
|
|
9
|
+
/** Result of {@link coerceFieldValue}: a canonical value or a field-level message. */
|
|
10
|
+
export type CoerceResult = {
|
|
11
|
+
readonly ok: true;
|
|
12
|
+
readonly value: JsonValue | null;
|
|
13
|
+
} | {
|
|
14
|
+
readonly ok: false;
|
|
15
|
+
readonly error: string;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Validate a caller-supplied field value against its declaration and
|
|
19
|
+
* return the canonical JSON encoding (see module doc). `null` means
|
|
20
|
+
* explicit null — valid here for any field; required-ness is write-path
|
|
21
|
+
* policy (updates only see the supplied subset), exactly as in the
|
|
22
|
+
* server's CanonicalizeValue.
|
|
23
|
+
*
|
|
24
|
+
* Error messages match the server's shape (`field "x" must be …`) so a
|
|
25
|
+
* client-side rejection reads the same as the server rejection it
|
|
26
|
+
* pre-empts.
|
|
27
|
+
*/
|
|
28
|
+
export declare function coerceFieldValue(field: FieldDeclaration, value: JsonValue | null): CoerceResult;
|
|
29
|
+
/**
|
|
30
|
+
* Format a canonical field value for grid-cell display. Values render
|
|
31
|
+
* in their DD-004 canonical encodings (honest, timezone-free); the one
|
|
32
|
+
* concession to readability is trimming a timestamp's zero fractional
|
|
33
|
+
* seconds (storage pads to nine digits for lexicographic ordering —
|
|
34
|
+
* "…T04:30:00.000000000Z" and "…T04:30:00Z" are the same RFC 3339 UTC
|
|
35
|
+
* instant).
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatFieldValue(type: FieldType, value: JsonValue | null | undefined): string;
|
|
38
|
+
/** Also used for the envelope's created_at/updated_at system columns. */
|
|
39
|
+
export declare function formatSystemTimestamp(value: string): string;
|
|
40
|
+
/**
|
|
41
|
+
* The per-type operator matrix (record_io.proto @internal, DD-005 SD-2)
|
|
42
|
+
* — a projection of the server's opsForFieldType. The filter builder
|
|
43
|
+
* offers exactly these, making an unservable operator structurally
|
|
44
|
+
* unofferable (DD-008 invariant 2):
|
|
45
|
+
*
|
|
46
|
+
* string (incl. enum): eq, neq, is_in, not_in
|
|
47
|
+
* bool: eq, neq
|
|
48
|
+
* integer, number,
|
|
49
|
+
* timestamp, date, time: eq, neq, gt, gte, lt, lte
|
|
50
|
+
* json: not filterable
|
|
51
|
+
* + is_null / not_null on any optional (non-required) field
|
|
52
|
+
*/
|
|
53
|
+
export declare function operatorsForField(field: FieldDeclaration): RecordConditionOp[];
|
|
54
|
+
/**
|
|
55
|
+
* The filterable system fields and their operator sets (mirrors the
|
|
56
|
+
* server's buildSystemCondition): `id` by identity, the audit
|
|
57
|
+
* timestamps by range. `created_by`, `org`, and `partition` are not
|
|
58
|
+
* filterable — attribution is the grant system's privacy boundary and
|
|
59
|
+
* partition is ambient scope, never data.
|
|
60
|
+
*/
|
|
61
|
+
export declare const SYSTEM_FIELD_OPERATORS: ReadonlyMap<string, readonly RecordConditionOp[]>;
|
|
62
|
+
/** Operators that take no value (null tests). */
|
|
63
|
+
export declare function isValuelessOperator(op: RecordConditionOp): boolean;
|
|
64
|
+
/** Operators that take a value list (`values`) rather than a scalar. */
|
|
65
|
+
export declare function isListOperator(op: RecordConditionOp): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Human labels for the filter builder and chips. `is_in` is displayed
|
|
68
|
+
* as "in" — the proto spelling exists only because `in` is reserved in
|
|
69
|
+
* Java/Python, a substrate detail operators never see.
|
|
70
|
+
*/
|
|
71
|
+
export declare const OPERATOR_LABELS: ReadonlyMap<RecordConditionOp, string>;
|
|
72
|
+
/**
|
|
73
|
+
* Sortable fields: any declared non-json field, plus the system id and
|
|
74
|
+
* audit timestamps (mirrors the server's BuildOrderBy).
|
|
75
|
+
*/
|
|
76
|
+
export declare function isSortableField(field: FieldDeclaration): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Build an update payload from per-field edits (DD-005 partial merge).
|
|
79
|
+
* The RPC's tri-state: a key present with a value replaces the field, a
|
|
80
|
+
* key present with `null` explicitly clears it, an absent key leaves
|
|
81
|
+
* the stored value untouched. Callers pass only the dirty fields —
|
|
82
|
+
* cleared ones as `null`.
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildUpdateFields(edits: ReadonlyMap<string, JsonValue | null>): JsonObject;
|
|
85
|
+
//# sourceMappingURL=recordValues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordValues.d.ts","sourceRoot":"","sources":["../../src/datastore/recordValues.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACtB,MAAM,yDAAyD,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8DAA8D,CAAC;AAEjG;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,WAAW,CAAC,MAAM,CAOnD,CAAC;AAEH,sFAAsF;AACtF,MAAM,MAAM,YAAY,GACpB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAgBnD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,SAAS,GAAG,IAAI,GACtB,YAAY,CA0Ed;AAeD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,CAaR;AAED,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE3D;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,iBAAiB,EAAE,CAM9E;AAgCD;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,iBAAiB,EAAE,CAWjF,CAAC;AAEL,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAElE;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAE7D;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAWjE,CAAC;AAEH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAEhE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,GAC3C,UAAU,CAMZ"}
|