@stigmer/react 3.2.3 → 3.3.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/BaselineEditor.d.ts +9 -0
- package/billing/BaselineEditor.d.ts.map +1 -0
- package/billing/BaselineEditor.js +253 -0
- package/billing/BaselineEditor.js.map +1 -0
- package/billing/ModelCatalogPanel.d.ts +28 -0
- package/billing/ModelCatalogPanel.d.ts.map +1 -0
- package/billing/ModelCatalogPanel.js +102 -0
- package/billing/ModelCatalogPanel.js.map +1 -0
- package/billing/ModelGovernanceDetail.d.ts +8 -0
- package/billing/ModelGovernanceDetail.d.ts.map +1 -0
- package/billing/ModelGovernanceDetail.js +64 -0
- package/billing/ModelGovernanceDetail.js.map +1 -0
- package/billing/OperatorAccessNotice.d.ts +12 -0
- package/billing/OperatorAccessNotice.d.ts.map +1 -0
- package/billing/OperatorAccessNotice.js +15 -0
- package/billing/OperatorAccessNotice.js.map +1 -0
- package/billing/PricingGovernanceConsole.d.ts +57 -0
- package/billing/PricingGovernanceConsole.d.ts.map +1 -0
- package/billing/PricingGovernanceConsole.js +164 -0
- package/billing/PricingGovernanceConsole.js.map +1 -0
- package/billing/PricingGovernancePanel.d.ts +26 -0
- package/billing/PricingGovernancePanel.d.ts.map +1 -0
- package/billing/PricingGovernancePanel.js +64 -0
- package/billing/PricingGovernancePanel.js.map +1 -0
- package/billing/RetireConfirm.d.ts +9 -0
- package/billing/RetireConfirm.d.ts.map +1 -0
- package/billing/RetireConfirm.js +19 -0
- package/billing/RetireConfirm.js.map +1 -0
- package/billing/form-primitives.d.ts +18 -0
- package/billing/form-primitives.d.ts.map +1 -0
- package/billing/form-primitives.js +19 -0
- package/billing/form-primitives.js.map +1 -0
- package/billing/governance-primitives.d.ts +33 -0
- package/billing/governance-primitives.d.ts.map +1 -0
- package/billing/governance-primitives.js +43 -0
- package/billing/governance-primitives.js.map +1 -0
- package/billing/index.d.ts +18 -0
- package/billing/index.d.ts.map +1 -1
- package/billing/index.js +9 -0
- package/billing/index.js.map +1 -1
- package/billing/pricing-format.d.ts +12 -0
- package/billing/pricing-format.d.ts.map +1 -0
- package/billing/pricing-format.js +50 -0
- package/billing/pricing-format.js.map +1 -0
- package/billing/useDecidePricingOverride.d.ts +46 -0
- package/billing/useDecidePricingOverride.d.ts.map +1 -0
- package/billing/useDecidePricingOverride.js +44 -0
- package/billing/useDecidePricingOverride.js.map +1 -0
- package/billing/useModelGovernanceView.d.ts +103 -0
- package/billing/useModelGovernanceView.d.ts.map +1 -0
- package/billing/useModelGovernanceView.js +144 -0
- package/billing/useModelGovernanceView.js.map +1 -0
- package/billing/useModelPricingBaselines.d.ts +40 -0
- package/billing/useModelPricingBaselines.d.ts.map +1 -0
- package/billing/useModelPricingBaselines.js +32 -0
- package/billing/useModelPricingBaselines.js.map +1 -0
- package/billing/usePricingGovernance.d.ts +39 -0
- package/billing/usePricingGovernance.d.ts.map +1 -0
- package/billing/usePricingGovernance.js +31 -0
- package/billing/usePricingGovernance.js.map +1 -0
- package/billing/useRetireModelPricingBaseline.d.ts +31 -0
- package/billing/useRetireModelPricingBaseline.d.ts.map +1 -0
- package/billing/useRetireModelPricingBaseline.js +36 -0
- package/billing/useRetireModelPricingBaseline.js.map +1 -0
- package/billing/useUpsertModelPricingBaseline.d.ts +38 -0
- package/billing/useUpsertModelPricingBaseline.d.ts.map +1 -0
- package/billing/useUpsertModelPricingBaseline.js +37 -0
- package/billing/useUpsertModelPricingBaseline.js.map +1 -0
- 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 +28 -0
- package/cursor-accounts/CursorAccountEditor.d.ts.map +1 -0
- package/cursor-accounts/CursorAccountEditor.js +51 -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 +28 -0
- package/cursor-accounts/CursorAccountsConsole.d.ts.map +1 -0
- package/cursor-accounts/CursorAccountsConsole.js +275 -0
- package/cursor-accounts/CursorAccountsConsole.js.map +1 -0
- package/cursor-accounts/cursor-account-format.d.ts +10 -0
- package/cursor-accounts/cursor-account-format.d.ts.map +1 -0
- package/cursor-accounts/cursor-account-format.js +26 -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 +209 -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 +30 -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 +54 -0
- package/datastore/recordFilter.d.ts.map +1 -0
- package/datastore/recordFilter.js +93 -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/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 -6
- package/index.d.ts.map +1 -1
- package/index.js +14 -3
- package/index.js.map +1 -1
- 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/resource-creation/templates/workflow-templates.js +4 -4
- package/session/useEditSessionPrep.js +3 -3
- package/session/useEditSessionPrep.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/BaselineEditor.tsx +619 -0
- package/src/billing/ModelCatalogPanel.tsx +283 -0
- package/src/billing/ModelGovernanceDetail.tsx +289 -0
- package/src/billing/OperatorAccessNotice.tsx +32 -0
- package/src/billing/PricingGovernanceConsole.tsx +465 -0
- package/src/billing/PricingGovernancePanel.tsx +166 -0
- package/src/billing/RetireConfirm.tsx +82 -0
- package/src/billing/__tests__/ModelCatalogPanel.test.tsx +253 -0
- package/src/billing/__tests__/PricingGovernanceConsole.test.tsx +410 -0
- package/src/billing/__tests__/useModelGovernanceView.test.tsx +308 -0
- package/src/billing/form-primitives.tsx +68 -0
- package/src/billing/governance-primitives.tsx +133 -0
- package/src/billing/index.ts +37 -0
- package/src/billing/pricing-format.ts +53 -0
- package/src/billing/useDecidePricingOverride.ts +78 -0
- package/src/billing/useModelGovernanceView.ts +290 -0
- package/src/billing/useModelPricingBaselines.ts +69 -0
- package/src/billing/usePricingGovernance.ts +57 -0
- package/src/billing/useRetireModelPricingBaseline.ts +65 -0
- package/src/billing/useUpsertModelPricingBaseline.ts +72 -0
- package/src/channel/AgentChannelsPanel.tsx +27 -1
- package/src/composer/SessionComposer.tsx +1 -1
- package/src/cursor-accounts/CursorAccountEditor.tsx +181 -0
- package/src/cursor-accounts/CursorAccountsAccessNotice.tsx +36 -0
- package/src/cursor-accounts/CursorAccountsConsole.tsx +810 -0
- package/src/cursor-accounts/__tests__/CursorAccountsConsole.test.tsx +384 -0
- package/src/cursor-accounts/cursor-account-format.ts +29 -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 +544 -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 +411 -0
- package/src/datastore/RecordFormPanel.tsx +432 -0
- package/src/datastore/__tests__/CollectionRecordsBrowser.test.tsx +207 -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 +141 -0
- package/src/datastore/__tests__/RecordFormPanel.test.tsx +227 -0
- package/src/datastore/__tests__/recordFilter.test.ts +156 -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 +140 -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/__tests__/useArtifactInspection.test.tsx +12 -2
- 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 +163 -13
- 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/resource-creation/templates/workflow-templates.ts +4 -4
- package/src/session/useEditSessionPrep.ts +3 -3
- 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,39 @@
|
|
|
1
|
+
import type { Datastore } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
|
|
2
|
+
/** Return value of {@link useDatastore}. */
|
|
3
|
+
export interface UseDatastoreReturn {
|
|
4
|
+
/** The resolved datastore, or `null` while loading, on error, or when not found. */
|
|
5
|
+
readonly datastore: Datastore | null;
|
|
6
|
+
/** `true` while the initial fetch is in flight. */
|
|
7
|
+
readonly isLoading: boolean;
|
|
8
|
+
/** `true` while a background refetch is in flight. */
|
|
9
|
+
readonly isRefetching: boolean;
|
|
10
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
11
|
+
readonly error: Error | null;
|
|
12
|
+
/** Discard cached data and re-fetch the datastore from the server. */
|
|
13
|
+
readonly refetch: () => void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Data hook that fetches a single Datastore by organization and slug.
|
|
17
|
+
*
|
|
18
|
+
* Wraps `stigmer.datastore.getByReference()` with loading, error, and
|
|
19
|
+
* not-found state management. The loaded resource carries the spec
|
|
20
|
+
* (collections, fields, constraints, authorization) and status (sync
|
|
21
|
+
* report, per-collection record counts) — the authoritative source for
|
|
22
|
+
* every structural view (DD-008 SD-5: spec for structure, status for
|
|
23
|
+
* health; `describeDatastore` is consulted only for caller-effective
|
|
24
|
+
* verbs — see {@link useDatastoreDescription}).
|
|
25
|
+
*
|
|
26
|
+
* Pass `null` for either `org` or `slug` to skip fetching (stable
|
|
27
|
+
* no-op).
|
|
28
|
+
*
|
|
29
|
+
* **Not-found handling:** a NOT_FOUND response sets `datastore` to
|
|
30
|
+
* `null` without raising an error; `datastore === null && !isLoading
|
|
31
|
+
* && !error` means the resource does not exist.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* const { datastore, isLoading, error } = useDatastore("acme", "clinic");
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare function useDatastore(org: string | null, slug: string | null): UseDatastoreReturn;
|
|
39
|
+
//# sourceMappingURL=useDatastore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastore.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastore.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAKxF,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,oFAAoF;IACpF,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IACrC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,sEAAsE;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,kBAAkB,CAmBpB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { isNotFound } from "@stigmer/sdk";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { useFetch } from "../internal/useFetch.js";
|
|
5
|
+
/**
|
|
6
|
+
* Data hook that fetches a single Datastore by organization and slug.
|
|
7
|
+
*
|
|
8
|
+
* Wraps `stigmer.datastore.getByReference()` with loading, error, and
|
|
9
|
+
* not-found state management. The loaded resource carries the spec
|
|
10
|
+
* (collections, fields, constraints, authorization) and status (sync
|
|
11
|
+
* report, per-collection record counts) — the authoritative source for
|
|
12
|
+
* every structural view (DD-008 SD-5: spec for structure, status for
|
|
13
|
+
* health; `describeDatastore` is consulted only for caller-effective
|
|
14
|
+
* verbs — see {@link useDatastoreDescription}).
|
|
15
|
+
*
|
|
16
|
+
* Pass `null` for either `org` or `slug` to skip fetching (stable
|
|
17
|
+
* no-op).
|
|
18
|
+
*
|
|
19
|
+
* **Not-found handling:** a NOT_FOUND response sets `datastore` to
|
|
20
|
+
* `null` without raising an error; `datastore === null && !isLoading
|
|
21
|
+
* && !error` means the resource does not exist.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* const { datastore, isLoading, error } = useDatastore("acme", "clinic");
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function useDatastore(org, slug) {
|
|
29
|
+
const stigmer = useStigmer();
|
|
30
|
+
const { data: datastore, isLoading, isRefetching, error, refetch } = useFetch(org && slug
|
|
31
|
+
? async () => {
|
|
32
|
+
try {
|
|
33
|
+
return await stigmer.datastore.getByReference({ org, slug });
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
if (isNotFound(err))
|
|
37
|
+
return null;
|
|
38
|
+
throw err;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
: null, [org, slug, stigmer], null);
|
|
42
|
+
return { datastore, isLoading, isRefetching, error, refetch };
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=useDatastore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastore.js","sourceRoot":"","sources":["../../src/datastore/useDatastore.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAgBnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAC1B,GAAkB,EAClB,IAAmB;IAEnB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC3E,GAAG,IAAI,IAAI;QACT,CAAC,CAAC,KAAK,IAAI,EAAE;YACT,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/D,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,UAAU,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACjC,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QACH,CAAC,CAAC,IAAI,EACR,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,EACpB,IAAI,CACL,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ResourceListScope } from "../search/index.js";
|
|
2
|
+
/** Options for {@link useDatastoreCount}. */
|
|
3
|
+
export interface UseDatastoreCountOptions {
|
|
4
|
+
/** Text query to filter datastores before counting. */
|
|
5
|
+
readonly query?: string;
|
|
6
|
+
/**
|
|
7
|
+
* Controls which datastores are counted.
|
|
8
|
+
*
|
|
9
|
+
* - `"org"` — only datastores owned by the given organization.
|
|
10
|
+
* - `"all"` — includes public/platform datastores.
|
|
11
|
+
*
|
|
12
|
+
* @default "org"
|
|
13
|
+
*/
|
|
14
|
+
readonly scope?: ResourceListScope;
|
|
15
|
+
}
|
|
16
|
+
/** Return value of {@link useDatastoreCount}. */
|
|
17
|
+
export interface UseDatastoreCountReturn {
|
|
18
|
+
/**
|
|
19
|
+
* Total number of datastores matching the current filters. `undefined`
|
|
20
|
+
* until the first successful fetch completes.
|
|
21
|
+
*/
|
|
22
|
+
readonly count: number | undefined;
|
|
23
|
+
/** `true` while the count fetch is in flight. */
|
|
24
|
+
readonly isLoading: boolean;
|
|
25
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
26
|
+
readonly error: Error | null;
|
|
27
|
+
/** Discard cached data and re-fetch the count from the server. */
|
|
28
|
+
readonly refetch: () => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Data hook that fetches the total count of datastores.
|
|
32
|
+
*
|
|
33
|
+
* Issues a minimal `stigmer.datastore.list()` call to retrieve only the
|
|
34
|
+
* total count — no datastore entries are returned or stored. Useful for
|
|
35
|
+
* the Library landing card and dashboard widgets.
|
|
36
|
+
*
|
|
37
|
+
* For the full paginated datastore list, use {@link useDatastoreList}
|
|
38
|
+
* instead.
|
|
39
|
+
*
|
|
40
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```tsx
|
|
44
|
+
* const { count, isLoading } = useDatastoreCount("acme");
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function useDatastoreCount(org: string | null, options?: UseDatastoreCountOptions): UseDatastoreCountReturn;
|
|
48
|
+
//# sourceMappingURL=useDatastoreCount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreCount.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreCount.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,uDAAuD;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,iDAAiD;AACjD,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,iDAAiD;IACjD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,kEAAkE;IAClE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,wBAAwB,GACjC,uBAAuB,CAUzB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { useResourceCount } from "../search/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Data hook that fetches the total count of datastores.
|
|
7
|
+
*
|
|
8
|
+
* Issues a minimal `stigmer.datastore.list()` call to retrieve only the
|
|
9
|
+
* total count — no datastore entries are returned or stored. Useful for
|
|
10
|
+
* the Library landing card and dashboard widgets.
|
|
11
|
+
*
|
|
12
|
+
* For the full paginated datastore list, use {@link useDatastoreList}
|
|
13
|
+
* instead.
|
|
14
|
+
*
|
|
15
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const { count, isLoading } = useDatastoreCount("acme");
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function useDatastoreCount(org, options) {
|
|
23
|
+
const stigmer = useStigmer();
|
|
24
|
+
const listFn = useCallback((params) => stigmer.datastore.list(params), [stigmer]);
|
|
25
|
+
return useResourceCount(listFn, org, options);
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=useDatastoreCount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreCount.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreCount.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAA0B,MAAM,oBAAoB,CAAC;AAgC9E;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAkB,EAClB,OAAkC;IAElC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAAoD,EAAE,EAAE,CACvD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { type DatastoreDescription } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
2
|
+
/** The partition every datastore starts with (DD-010). */
|
|
3
|
+
export declare const DEFAULT_PARTITION = "default";
|
|
4
|
+
/** Return value of {@link useDatastoreDescription}. */
|
|
5
|
+
export interface UseDatastoreDescriptionReturn {
|
|
6
|
+
/** The caller-effective description, or `null` while loading or on error. */
|
|
7
|
+
readonly description: DatastoreDescription | null;
|
|
8
|
+
/**
|
|
9
|
+
* Selectable data partitions: the datastore's partition catalog with
|
|
10
|
+
* `"default"` always present. The catalog materializes with the first
|
|
11
|
+
* record write, so on an empty datastore it reports nothing — but the
|
|
12
|
+
* default partition is always addressable (DD-010: unset partition
|
|
13
|
+
* means `"default"`), so the picker must always offer it.
|
|
14
|
+
*/
|
|
15
|
+
readonly partitions: readonly string[];
|
|
16
|
+
/** `true` while the initial fetch is in flight. */
|
|
17
|
+
readonly isLoading: boolean;
|
|
18
|
+
/** `true` while a background refetch is in flight. */
|
|
19
|
+
readonly isRefetching: boolean;
|
|
20
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
21
|
+
readonly error: Error | null;
|
|
22
|
+
/** Discard cached data and re-fetch the description from the server. */
|
|
23
|
+
readonly refetch: () => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Data hook that fetches the caller-effective view of a datastore via
|
|
27
|
+
* `describeDatastore`.
|
|
28
|
+
*
|
|
29
|
+
* This is the console's **only** source of caller-effective record
|
|
30
|
+
* verbs (DD-008 SD-2): record grants are datastore domain logic, not
|
|
31
|
+
* FGA, so resource-layer permission checks structurally cannot answer
|
|
32
|
+
* "may I insert into bookings?". Every record write affordance gates on
|
|
33
|
+
* the per-collection `access` lists returned here — and those lists are
|
|
34
|
+
* projections, never authority: the server's record layer remains the
|
|
35
|
+
* enforcer, so a stale projection degrades to a clean denial.
|
|
36
|
+
*
|
|
37
|
+
* **Denied-state semantics** (DD-008 SD-3): a caller with resource
|
|
38
|
+
* visibility but no record grants gets a successful response with
|
|
39
|
+
* empty `access` lists — deny-by-default renders as empty access,
|
|
40
|
+
* never an error. A reach-level `PERMISSION_DENIED` (no
|
|
41
|
+
* `can_use_records` in cloud) surfaces as `error`; consumers render
|
|
42
|
+
* both as the Records-tab denied panel, not a page-level failure.
|
|
43
|
+
*
|
|
44
|
+
* Pass `null` for `org` or `datastore` to skip fetching (stable no-op).
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* const { description, partitions } = useDatastoreDescription("acme", "clinic");
|
|
49
|
+
* const bookings = description?.collections.find((c) => c.name === "bookings");
|
|
50
|
+
* const canInsert = bookings?.access.some((a) => a.verb === DatastoreVerb.insert);
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function useDatastoreDescription(org: string | null, datastore: string | null): UseDatastoreDescriptionReturn;
|
|
54
|
+
//# sourceMappingURL=useDatastoreDescription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreDescription.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreDescription.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,8DAA8D,CAAC;AAItE,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,uDAAuD;AACvD,MAAM,WAAW,6BAA6B;IAC5C,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClD;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,6BAA6B,CAsB/B"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { DescribeDatastoreRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
5
|
+
import { useStigmer } from "../hooks.js";
|
|
6
|
+
import { useFetch } from "../internal/useFetch.js";
|
|
7
|
+
/** The partition every datastore starts with (DD-010). */
|
|
8
|
+
export const DEFAULT_PARTITION = "default";
|
|
9
|
+
/**
|
|
10
|
+
* Data hook that fetches the caller-effective view of a datastore via
|
|
11
|
+
* `describeDatastore`.
|
|
12
|
+
*
|
|
13
|
+
* This is the console's **only** source of caller-effective record
|
|
14
|
+
* verbs (DD-008 SD-2): record grants are datastore domain logic, not
|
|
15
|
+
* FGA, so resource-layer permission checks structurally cannot answer
|
|
16
|
+
* "may I insert into bookings?". Every record write affordance gates on
|
|
17
|
+
* the per-collection `access` lists returned here — and those lists are
|
|
18
|
+
* projections, never authority: the server's record layer remains the
|
|
19
|
+
* enforcer, so a stale projection degrades to a clean denial.
|
|
20
|
+
*
|
|
21
|
+
* **Denied-state semantics** (DD-008 SD-3): a caller with resource
|
|
22
|
+
* visibility but no record grants gets a successful response with
|
|
23
|
+
* empty `access` lists — deny-by-default renders as empty access,
|
|
24
|
+
* never an error. A reach-level `PERMISSION_DENIED` (no
|
|
25
|
+
* `can_use_records` in cloud) surfaces as `error`; consumers render
|
|
26
|
+
* both as the Records-tab denied panel, not a page-level failure.
|
|
27
|
+
*
|
|
28
|
+
* Pass `null` for `org` or `datastore` to skip fetching (stable no-op).
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```tsx
|
|
32
|
+
* const { description, partitions } = useDatastoreDescription("acme", "clinic");
|
|
33
|
+
* const bookings = description?.collections.find((c) => c.name === "bookings");
|
|
34
|
+
* const canInsert = bookings?.access.some((a) => a.verb === DatastoreVerb.insert);
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export function useDatastoreDescription(org, datastore) {
|
|
38
|
+
const stigmer = useStigmer();
|
|
39
|
+
const { data: description, isLoading, isRefetching, error, refetch } = useFetch(org && datastore
|
|
40
|
+
? () => stigmer.datastore.describeDatastore(create(DescribeDatastoreRequestSchema, { org, datastore }))
|
|
41
|
+
: null, [org, datastore, stigmer], null);
|
|
42
|
+
const partitions = useMemo(() => {
|
|
43
|
+
const catalog = description?.partitions ?? [];
|
|
44
|
+
return catalog.includes(DEFAULT_PARTITION)
|
|
45
|
+
? catalog
|
|
46
|
+
: [DEFAULT_PARTITION, ...catalog];
|
|
47
|
+
}, [description]);
|
|
48
|
+
return { description, partitions, isLoading, isRefetching, error, refetch };
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=useDatastoreDescription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreDescription.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreDescription.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,8BAA8B,GAE/B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,0DAA0D;AAC1D,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAwB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,uBAAuB,CACrC,GAAkB,EAClB,SAAwB;IAExB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,QAAQ,CAC7E,GAAG,IAAI,SAAS;QACd,CAAC,CAAC,GAAG,EAAE,CACH,OAAO,CAAC,SAAS,CAAC,iBAAiB,CACjC,MAAM,CAAC,8BAA8B,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAC3D;QACL,CAAC,CAAC,IAAI,EACR,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,EACzB,IAAI,CACL,CAAC;IAEF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAG,WAAW,EAAE,UAAU,IAAI,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxC,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,CAAC;IACtC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { SearchResult } from "@stigmer/protos/ai/stigmer/search/v1/io_pb";
|
|
2
|
+
import { type ResourceListScope } from "../search/index.js";
|
|
3
|
+
/** Options for {@link useDatastoreList}. */
|
|
4
|
+
export interface UseDatastoreListOptions {
|
|
5
|
+
/** Maximum datastores per page. @default 20 */
|
|
6
|
+
readonly pageSize?: number;
|
|
7
|
+
/** Page number (1-indexed). @default 1 */
|
|
8
|
+
readonly page?: number;
|
|
9
|
+
/** Text query to filter datastores by name, description, or tags. */
|
|
10
|
+
readonly query?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Controls which datastores are visible.
|
|
13
|
+
*
|
|
14
|
+
* - `"org"` — only datastores owned by the given organization.
|
|
15
|
+
* - `"all"` — includes public/platform datastores.
|
|
16
|
+
*
|
|
17
|
+
* @default "org"
|
|
18
|
+
*/
|
|
19
|
+
readonly scope?: ResourceListScope;
|
|
20
|
+
}
|
|
21
|
+
/** Return value of {@link useDatastoreList}. */
|
|
22
|
+
export interface UseDatastoreListReturn {
|
|
23
|
+
/** Paginated datastore entries for the current page. */
|
|
24
|
+
readonly datastores: readonly SearchResult[];
|
|
25
|
+
/** Total number of datastores matching the current filters. */
|
|
26
|
+
readonly totalCount: number;
|
|
27
|
+
/** Total pages available at the current page size. */
|
|
28
|
+
readonly totalPages: number;
|
|
29
|
+
/** The current page number (mirrors the `page` option). */
|
|
30
|
+
readonly currentPage: number;
|
|
31
|
+
/** `true` while the initial fetch or a refetch is in flight. */
|
|
32
|
+
readonly isLoading: boolean;
|
|
33
|
+
/** Error from the last failed request, or `null` when healthy. */
|
|
34
|
+
readonly error: Error | null;
|
|
35
|
+
/** Discard cached data and re-fetch the current page from the server. */
|
|
36
|
+
readonly refetch: () => void;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Data hook that fetches a paginated list of datastores for the Library.
|
|
40
|
+
*
|
|
41
|
+
* Wraps `stigmer.datastore.list()` (SearchService-backed) with
|
|
42
|
+
* pagination, scope filtering, and text search. All parameters are
|
|
43
|
+
* externally controlled — the consumer manages page state, query
|
|
44
|
+
* debouncing, and scope toggling.
|
|
45
|
+
*
|
|
46
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* const { datastores, totalCount, isLoading } = useDatastoreList("acme", {
|
|
51
|
+
* page: 1,
|
|
52
|
+
* pageSize: 20,
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function useDatastoreList(org: string | null, options?: UseDatastoreListOptions): UseDatastoreListReturn;
|
|
57
|
+
//# sourceMappingURL=useDatastoreList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreList.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreList.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAE/E,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;CACpC;AAED,gDAAgD;AAChD,MAAM,WAAW,sBAAsB;IACrC,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,CAAC;IAC7C,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gEAAgE;IAChE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,GAAG,IAAI,EAClB,OAAO,CAAC,EAAE,uBAAuB,GAChC,sBAAsB,CAaxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { useResourceList } from "../search/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Data hook that fetches a paginated list of datastores for the Library.
|
|
7
|
+
*
|
|
8
|
+
* Wraps `stigmer.datastore.list()` (SearchService-backed) with
|
|
9
|
+
* pagination, scope filtering, and text search. All parameters are
|
|
10
|
+
* externally controlled — the consumer manages page state, query
|
|
11
|
+
* debouncing, and scope toggling.
|
|
12
|
+
*
|
|
13
|
+
* Pass `null` as `org` to skip fetching (stable no-op).
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const { datastores, totalCount, isLoading } = useDatastoreList("acme", {
|
|
18
|
+
* page: 1,
|
|
19
|
+
* pageSize: 20,
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function useDatastoreList(org, options) {
|
|
24
|
+
const stigmer = useStigmer();
|
|
25
|
+
const listFn = useCallback((params) => stigmer.datastore.list(params), [stigmer]);
|
|
26
|
+
const { entries, totalCount, totalPages, currentPage, isLoading, error, refetch } = useResourceList(listFn, org, options);
|
|
27
|
+
return { datastores: entries, totalCount, totalPages, currentPage, isLoading, error, refetch };
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=useDatastoreList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreList.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreList.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,eAAe,EAA0B,MAAM,oBAAoB,CAAC;AAuC7E;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAkB,EAClB,OAAiC;IAEjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAAoD,EAAE,EAAE,CACvD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAC/E,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAExC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type UseResourceSearchOptions, type UseResourceSearchReturn } from "../search/index.js";
|
|
2
|
+
/** Options for {@link useDatastoreSearch}. Delegates to the shared resource search options. */
|
|
3
|
+
export type UseDatastoreSearchOptions = UseResourceSearchOptions;
|
|
4
|
+
/** Return value of {@link useDatastoreSearch}. Delegates to the shared resource search return. */
|
|
5
|
+
export type UseDatastoreSearchReturn = UseResourceSearchReturn;
|
|
6
|
+
/**
|
|
7
|
+
* Data hook that searches datastores available in the given organization.
|
|
8
|
+
*
|
|
9
|
+
* Wraps `stigmer.datastore.list()` with debounced search, loading/error
|
|
10
|
+
* tracking, and cancellation-safe fetching. Platform builders use this
|
|
11
|
+
* when they want full control over rendering.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* const { results, isLoading, query, setQuery } = useDatastoreSearch("acme");
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function useDatastoreSearch(org: string, options?: UseDatastoreSearchOptions): UseDatastoreSearchReturn;
|
|
19
|
+
//# sourceMappingURL=useDatastoreSearch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreSearch.d.ts","sourceRoot":"","sources":["../../src/datastore/useDatastoreSearch.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,oBAAoB,CAAC;AAE5B,+FAA+F;AAC/F,MAAM,MAAM,yBAAyB,GAAG,wBAAwB,CAAC;AACjE,kGAAkG;AAClG,MAAM,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,yBAAyB,GAClC,wBAAwB,CAQ1B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { useResourceSearch, } from "../search/index.js";
|
|
5
|
+
/**
|
|
6
|
+
* Data hook that searches datastores available in the given organization.
|
|
7
|
+
*
|
|
8
|
+
* Wraps `stigmer.datastore.list()` with debounced search, loading/error
|
|
9
|
+
* tracking, and cancellation-safe fetching. Platform builders use this
|
|
10
|
+
* when they want full control over rendering.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const { results, isLoading, query, setQuery } = useDatastoreSearch("acme");
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export function useDatastoreSearch(org, options) {
|
|
18
|
+
const stigmer = useStigmer();
|
|
19
|
+
const listFn = useCallback((params) => stigmer.datastore.list(params), [stigmer]);
|
|
20
|
+
return useResourceSearch(listFn, org, options);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=useDatastoreSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDatastoreSearch.js","sourceRoot":"","sources":["../../src/datastore/useDatastoreSearch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAChC,GAAW,EACX,OAAmC;IAEnC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,MAAoD,EAAE,EAAE,CACvD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { Datastore } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/api_pb";
|
|
2
|
+
/** Arguments for {@link UseDeleteDatastoreReturn.deleteDatastore}. */
|
|
3
|
+
export interface DeleteDatastoreArgs {
|
|
4
|
+
/** Datastore resource id (`dst_…`). */
|
|
5
|
+
readonly resourceId: string;
|
|
6
|
+
/**
|
|
7
|
+
* Acknowledgment that the datastore's records will be destroyed.
|
|
8
|
+
* Required for non-empty datastores (the server's GuardNonEmpty
|
|
9
|
+
* rejects without it, reporting record and collection counts);
|
|
10
|
+
* meaningless for empty ones. `DeleteDatastoreDialog` arms it only
|
|
11
|
+
* after the operator types the datastore slug.
|
|
12
|
+
*/
|
|
13
|
+
readonly force?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** Return value of {@link useDeleteDatastore}. */
|
|
16
|
+
export interface UseDeleteDatastoreReturn {
|
|
17
|
+
/**
|
|
18
|
+
* Delete a datastore through its two server guards (DD-003), in
|
|
19
|
+
* order:
|
|
20
|
+
*
|
|
21
|
+
* 1. **Agent-reference block** — a datastore referenced by any
|
|
22
|
+
* agent's `datastore_usages` cannot be deleted, force or not; the
|
|
23
|
+
* `FAILED_PRECONDITION` names the referencing agents (detach
|
|
24
|
+
* first).
|
|
25
|
+
* 2. **Non-empty acknowledgment** — held records require `force`;
|
|
26
|
+
* without it the error reports current record/collection counts.
|
|
27
|
+
*
|
|
28
|
+
* Rejects — and sets `error` — when a guard refuses; the message is
|
|
29
|
+
* the server's authoritative text with fresh counts, so on drift the
|
|
30
|
+
* dialog re-renders the guard rather than pre-empting it (DD-008
|
|
31
|
+
* invariant 6).
|
|
32
|
+
*/
|
|
33
|
+
readonly deleteDatastore: (args: DeleteDatastoreArgs) => Promise<Datastore>;
|
|
34
|
+
/** `true` while the delete is in flight. */
|
|
35
|
+
readonly isDeleting: boolean;
|
|
36
|
+
/** Error from the last refused or failed delete, or `null` when healthy. */
|
|
37
|
+
readonly error: Error | null;
|
|
38
|
+
/** Reset `error` to `null`. */
|
|
39
|
+
readonly clearError: () => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Behavior hook for the platform's only record-destroying resource
|
|
43
|
+
* delete.
|
|
44
|
+
*
|
|
45
|
+
* Deliberately domain-local rather than a new arm in the generic
|
|
46
|
+
* `useDeleteResource` kind-switch: datastore deletion carries an
|
|
47
|
+
* acknowledgment protocol (`force`) and guard-error rendering that the
|
|
48
|
+
* generic one-shot delete contract must not absorb (DD-003 — extending
|
|
49
|
+
* it would leak record-destruction semantics platform-wide). No
|
|
50
|
+
* success/failure toasts here; `DeleteDatastoreDialog` owns the UX.
|
|
51
|
+
*/
|
|
52
|
+
export declare function useDeleteDatastore(): UseDeleteDatastoreReturn;
|
|
53
|
+
//# sourceMappingURL=useDeleteDatastore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeleteDatastore.d.ts","sourceRoot":"","sources":["../../src/datastore/useDeleteDatastore.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wDAAwD,CAAC;AAIxF,sEAAsE;AACtE,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;;;;;OAMG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,eAAe,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5E,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CA2B7D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
import { useStigmer } from "../hooks.js";
|
|
4
|
+
import { toError } from "../internal/toError.js";
|
|
5
|
+
/**
|
|
6
|
+
* Behavior hook for the platform's only record-destroying resource
|
|
7
|
+
* delete.
|
|
8
|
+
*
|
|
9
|
+
* Deliberately domain-local rather than a new arm in the generic
|
|
10
|
+
* `useDeleteResource` kind-switch: datastore deletion carries an
|
|
11
|
+
* acknowledgment protocol (`force`) and guard-error rendering that the
|
|
12
|
+
* generic one-shot delete contract must not absorb (DD-003 — extending
|
|
13
|
+
* it would leak record-destruction semantics platform-wide). No
|
|
14
|
+
* success/failure toasts here; `DeleteDatastoreDialog` owns the UX.
|
|
15
|
+
*/
|
|
16
|
+
export function useDeleteDatastore() {
|
|
17
|
+
const stigmer = useStigmer();
|
|
18
|
+
const [isDeleting, setIsDeleting] = useState(false);
|
|
19
|
+
const [error, setError] = useState(null);
|
|
20
|
+
const clearError = useCallback(() => setError(null), []);
|
|
21
|
+
const deleteDatastore = useCallback(async (args) => {
|
|
22
|
+
setIsDeleting(true);
|
|
23
|
+
setError(null);
|
|
24
|
+
try {
|
|
25
|
+
return await stigmer.datastore.delete({
|
|
26
|
+
resourceId: args.resourceId,
|
|
27
|
+
force: args.force,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
setError(toError(err));
|
|
32
|
+
throw err;
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
setIsDeleting(false);
|
|
36
|
+
}
|
|
37
|
+
}, [stigmer]);
|
|
38
|
+
return { deleteDatastore, isDeleting, error, clearError };
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=useDeleteDatastore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeleteDatastore.js","sourceRoot":"","sources":["../../src/datastore/useDeleteDatastore.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AA2CjD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,IAAyB,EAAsB,EAAE;QACtD,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC;gBACpC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC5D,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { type RecordEnvelope } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
2
|
+
import type { RecordScope } from "./useRecordList.js";
|
|
3
|
+
/** Arguments for a single record delete. */
|
|
4
|
+
export interface DeleteRecordArgs extends RecordScope {
|
|
5
|
+
/** Record id (`dsr_…`). */
|
|
6
|
+
readonly id: string;
|
|
7
|
+
}
|
|
8
|
+
/** Return value of {@link useDeleteRecord}. */
|
|
9
|
+
export interface UseDeleteRecordReturn {
|
|
10
|
+
/**
|
|
11
|
+
* Delete one record by id. Resolves with the deleted record's final
|
|
12
|
+
* envelope (usable for an undo-by-reinsert growth path). Rejects —
|
|
13
|
+
* and sets `error` — on denial; the error's message is the server's
|
|
14
|
+
* relayable text, byte-for-byte.
|
|
15
|
+
*/
|
|
16
|
+
readonly deleteRecord: (args: DeleteRecordArgs) => Promise<RecordEnvelope>;
|
|
17
|
+
/** `true` while the delete is in flight. */
|
|
18
|
+
readonly isDeleting: boolean;
|
|
19
|
+
/** Error from the last failed delete, or `null` when healthy. */
|
|
20
|
+
readonly error: Error | null;
|
|
21
|
+
/** Reset `error` to `null`. */
|
|
22
|
+
readonly clearError: () => void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Behavior hook that wraps `datastore.deleteRecord()` with loading and
|
|
26
|
+
* error state.
|
|
27
|
+
*
|
|
28
|
+
* Record deletes are id-addressed with a blast radius of one — the
|
|
29
|
+
* standard destructive confirm suffices (DD-008 SD-4). Deleting the
|
|
30
|
+
* datastore itself is a different, guarded operation: see
|
|
31
|
+
* {@link useDeleteDatastore}.
|
|
32
|
+
*/
|
|
33
|
+
export declare function useDeleteRecord(): UseDeleteRecordReturn;
|
|
34
|
+
//# sourceMappingURL=useDeleteRecord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeleteRecord.d.ts","sourceRoot":"","sources":["../../src/datastore/useDeleteRecord.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,8DAA8D,CAAC;AAGtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,4CAA4C;AAC5C,MAAM,WAAW,gBAAiB,SAAQ,WAAW;IACnD,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3E,4CAA4C;IAC5C,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,IAAI,qBAAqB,CAgCvD"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useCallback, useState } from "react";
|
|
3
|
+
import { create } from "@bufbuild/protobuf";
|
|
4
|
+
import { DeleteRecordRequestSchema, } from "@stigmer/protos/ai/stigmer/agentic/datastore/v1/record_io_pb";
|
|
5
|
+
import { useStigmer } from "../hooks.js";
|
|
6
|
+
import { toError } from "../internal/toError.js";
|
|
7
|
+
/**
|
|
8
|
+
* Behavior hook that wraps `datastore.deleteRecord()` with loading and
|
|
9
|
+
* error state.
|
|
10
|
+
*
|
|
11
|
+
* Record deletes are id-addressed with a blast radius of one — the
|
|
12
|
+
* standard destructive confirm suffices (DD-008 SD-4). Deleting the
|
|
13
|
+
* datastore itself is a different, guarded operation: see
|
|
14
|
+
* {@link useDeleteDatastore}.
|
|
15
|
+
*/
|
|
16
|
+
export function useDeleteRecord() {
|
|
17
|
+
const stigmer = useStigmer();
|
|
18
|
+
const [isDeleting, setIsDeleting] = useState(false);
|
|
19
|
+
const [error, setError] = useState(null);
|
|
20
|
+
const clearError = useCallback(() => setError(null), []);
|
|
21
|
+
const deleteRecord = useCallback(async (args) => {
|
|
22
|
+
setIsDeleting(true);
|
|
23
|
+
setError(null);
|
|
24
|
+
try {
|
|
25
|
+
return await stigmer.datastore.deleteRecord(create(DeleteRecordRequestSchema, {
|
|
26
|
+
org: args.org,
|
|
27
|
+
datastore: args.datastore,
|
|
28
|
+
collection: args.collection,
|
|
29
|
+
partition: args.partition ?? "",
|
|
30
|
+
id: args.id,
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
setError(toError(err));
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
finally {
|
|
38
|
+
setIsDeleting(false);
|
|
39
|
+
}
|
|
40
|
+
}, [stigmer]);
|
|
41
|
+
return { deleteRecord, isDeleting, error, clearError };
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=useDeleteRecord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeleteRecord.js","sourceRoot":"","sources":["../../src/datastore/useDeleteRecord.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,GAE1B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AA0BjD;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAe,IAAI,CAAC,CAAC;IAEvD,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAEzD,MAAM,YAAY,GAAG,WAAW,CAC9B,KAAK,EAAE,IAAsB,EAA2B,EAAE;QACxD,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,YAAY,CACzC,MAAM,CAAC,yBAAyB,EAAE;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,EAAE,EAAE,IAAI,CAAC,EAAE;aACZ,CAAC,CACH,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,aAAa,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AACzD,CAAC"}
|