@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
|
@@ -14,7 +14,7 @@ import type { CanvasTransitionEdgeData } from "./workflow-graph-conversions.js";
|
|
|
14
14
|
*
|
|
15
15
|
* @since T15 (Visual Canvas Editor), T06 (Branch Highlighting)
|
|
16
16
|
*/
|
|
17
|
-
export declare const CanvasTransitionEdge: import("react").NamedExoticComponent<Pick<import("@xyflow/react").Edge<Record<string, unknown>, string | undefined>, "id" | "source" | "
|
|
17
|
+
export declare const CanvasTransitionEdge: import("react").NamedExoticComponent<Pick<import("@xyflow/react").Edge<Record<string, unknown>, string | undefined>, "id" | "source" | "type" | "data" | "style" | "target" | "selected" | "selectable" | "deletable" | "animated"> & import("@xyflow/system").EdgePosition & import("@xyflow/react").EdgeLabelOptions & {
|
|
18
18
|
sourceHandleId?: string | null;
|
|
19
19
|
targetHandleId?: string | null;
|
|
20
20
|
markerStart?: string;
|
|
@@ -1,43 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
/** Props for {@link WorkflowYamlEditor}. */
|
|
4
|
-
export interface WorkflowYamlEditorProps {
|
|
5
|
-
/** Current YAML content. */
|
|
6
|
-
readonly value: string;
|
|
7
|
-
/** Called when the editor content changes. */
|
|
8
|
-
readonly onChange?: (value: string) => void;
|
|
9
|
-
/** Validation diagnostics to display as inline markers. */
|
|
10
|
-
readonly diagnostics?: readonly Diagnostic[];
|
|
11
|
-
/** Whether the editor is read-only. @default false */
|
|
12
|
-
readonly readOnly?: boolean;
|
|
13
|
-
/** Additional CSS class names for the root container. */
|
|
14
|
-
readonly className?: string;
|
|
15
|
-
/** Additional inline styles for the root container. */
|
|
16
|
-
readonly style?: CSSProperties;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Schema-aware YAML editor built on CodeMirror 6.
|
|
20
|
-
*
|
|
21
|
-
* Provides syntax highlighting, line numbers, bracket matching,
|
|
22
|
-
* code folding, undo/redo, and inline diagnostic markers driven by
|
|
23
|
-
* external validation (via the `diagnostics` prop).
|
|
24
|
-
*
|
|
25
|
-
* Themed via `--stgm-*` CSS custom properties to respect the host
|
|
26
|
-
* application's design tokens.
|
|
27
|
-
*
|
|
28
|
-
* This is an optional SDK component — it requires CodeMirror peer
|
|
29
|
-
* dependencies which are tree-shaken when not imported (DD-013).
|
|
30
|
-
*
|
|
31
|
-
* @example
|
|
32
|
-
* ```tsx
|
|
33
|
-
* <WorkflowYamlEditor
|
|
34
|
-
* value={yaml}
|
|
35
|
-
* onChange={setYaml}
|
|
36
|
-
* diagnostics={diagnostics}
|
|
37
|
-
* />
|
|
38
|
-
* ```
|
|
39
|
-
*
|
|
40
|
-
* @since T10 (YAML Editor with Graph Preview)
|
|
41
|
-
*/
|
|
42
|
-
export declare const WorkflowYamlEditor: import("react").NamedExoticComponent<WorkflowYamlEditorProps>;
|
|
1
|
+
export { YamlEditor as WorkflowYamlEditor } from "../manifest/YamlEditor.js";
|
|
2
|
+
export type { YamlEditorProps as WorkflowYamlEditorProps } from "../manifest/YamlEditor.js";
|
|
43
3
|
//# sourceMappingURL=WorkflowYamlEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowYamlEditor.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowYamlEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"WorkflowYamlEditor.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowYamlEditor.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,YAAY,EAAE,eAAe,IAAI,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,215 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import { EditorView, keymap, lineNumbers, highlightActiveLine, drawSelection, highlightSpecialChars } from "@codemirror/view";
|
|
7
|
-
import { yaml } from "@codemirror/lang-yaml";
|
|
8
|
-
import { syntaxHighlighting, HighlightStyle, bracketMatching, indentOnInput, foldGutter } from "@codemirror/language";
|
|
9
|
-
import { tags } from "@lezer/highlight";
|
|
10
|
-
import { lintGutter, setDiagnostics } from "@codemirror/lint";
|
|
11
|
-
import { defaultKeymap, indentWithTab, history, historyKeymap } from "@codemirror/commands";
|
|
12
|
-
import { autocompletion } from "@codemirror/autocomplete";
|
|
13
|
-
/**
|
|
14
|
-
* Schema-aware YAML editor built on CodeMirror 6.
|
|
15
|
-
*
|
|
16
|
-
* Provides syntax highlighting, line numbers, bracket matching,
|
|
17
|
-
* code folding, undo/redo, and inline diagnostic markers driven by
|
|
18
|
-
* external validation (via the `diagnostics` prop).
|
|
19
|
-
*
|
|
20
|
-
* Themed via `--stgm-*` CSS custom properties to respect the host
|
|
21
|
-
* application's design tokens.
|
|
22
|
-
*
|
|
23
|
-
* This is an optional SDK component — it requires CodeMirror peer
|
|
24
|
-
* dependencies which are tree-shaken when not imported (DD-013).
|
|
25
|
-
*
|
|
26
|
-
* @example
|
|
27
|
-
* ```tsx
|
|
28
|
-
* <WorkflowYamlEditor
|
|
29
|
-
* value={yaml}
|
|
30
|
-
* onChange={setYaml}
|
|
31
|
-
* diagnostics={diagnostics}
|
|
32
|
-
* />
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @since T10 (YAML Editor with Graph Preview)
|
|
36
|
-
*/
|
|
37
|
-
export const WorkflowYamlEditor = memo(function WorkflowYamlEditor({ value, onChange, diagnostics, readOnly = false, className, style, }) {
|
|
38
|
-
const containerRef = useRef(null);
|
|
39
|
-
const viewRef = useRef(null);
|
|
40
|
-
const readOnlyCompartment = useRef(new Compartment());
|
|
41
|
-
const onChangeRef = useRef(onChange);
|
|
42
|
-
onChangeRef.current = onChange;
|
|
43
|
-
const isInternalUpdate = useRef(false);
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
if (!containerRef.current)
|
|
46
|
-
return;
|
|
47
|
-
const updateListener = EditorView.updateListener.of((update) => {
|
|
48
|
-
if (update.docChanged) {
|
|
49
|
-
isInternalUpdate.current = true;
|
|
50
|
-
onChangeRef.current?.(update.state.doc.toString());
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
const state = EditorState.create({
|
|
54
|
-
doc: value,
|
|
55
|
-
extensions: [
|
|
56
|
-
lineNumbers(),
|
|
57
|
-
highlightActiveLine(),
|
|
58
|
-
highlightSpecialChars(),
|
|
59
|
-
drawSelection(),
|
|
60
|
-
bracketMatching(),
|
|
61
|
-
indentOnInput(),
|
|
62
|
-
foldGutter(),
|
|
63
|
-
history(),
|
|
64
|
-
yaml(),
|
|
65
|
-
syntaxHighlighting(stigmerHighlightStyle, { fallback: true }),
|
|
66
|
-
autocompletion(),
|
|
67
|
-
lintGutter(),
|
|
68
|
-
keymap.of([...defaultKeymap, ...historyKeymap, indentWithTab]),
|
|
69
|
-
readOnlyCompartment.current.of(EditorState.readOnly.of(readOnly)),
|
|
70
|
-
stigmerTheme,
|
|
71
|
-
updateListener,
|
|
72
|
-
],
|
|
73
|
-
});
|
|
74
|
-
const view = new EditorView({
|
|
75
|
-
state,
|
|
76
|
-
parent: containerRef.current,
|
|
77
|
-
});
|
|
78
|
-
viewRef.current = view;
|
|
79
|
-
return () => {
|
|
80
|
-
view.destroy();
|
|
81
|
-
viewRef.current = null;
|
|
82
|
-
};
|
|
83
|
-
}, []);
|
|
84
|
-
// Sync external value changes into the editor
|
|
85
|
-
useEffect(() => {
|
|
86
|
-
const view = viewRef.current;
|
|
87
|
-
if (!view)
|
|
88
|
-
return;
|
|
89
|
-
if (isInternalUpdate.current) {
|
|
90
|
-
isInternalUpdate.current = false;
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const currentDoc = view.state.doc.toString();
|
|
94
|
-
if (currentDoc !== value) {
|
|
95
|
-
view.dispatch({
|
|
96
|
-
changes: {
|
|
97
|
-
from: 0,
|
|
98
|
-
to: currentDoc.length,
|
|
99
|
-
insert: value,
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
}, [value]);
|
|
104
|
-
useEffect(() => {
|
|
105
|
-
const view = viewRef.current;
|
|
106
|
-
if (!view)
|
|
107
|
-
return;
|
|
108
|
-
view.dispatch({
|
|
109
|
-
effects: readOnlyCompartment.current.reconfigure(EditorState.readOnly.of(readOnly)),
|
|
110
|
-
});
|
|
111
|
-
}, [readOnly]);
|
|
112
|
-
// Sync diagnostics into CodeMirror's lint system
|
|
113
|
-
useEffect(() => {
|
|
114
|
-
const view = viewRef.current;
|
|
115
|
-
if (!view)
|
|
116
|
-
return;
|
|
117
|
-
const cmDiags = diagnostics
|
|
118
|
-
? diagnostics.map((d) => ({
|
|
119
|
-
...d,
|
|
120
|
-
from: Math.min(d.from, view.state.doc.length),
|
|
121
|
-
to: Math.min(d.to, view.state.doc.length),
|
|
122
|
-
}))
|
|
123
|
-
: [];
|
|
124
|
-
view.dispatch(setDiagnostics(view.state, cmDiags));
|
|
125
|
-
}, [diagnostics]);
|
|
126
|
-
return (_jsx("div", { ref: containerRef, className: cn("stgm-yaml-editor overflow-auto rounded-md border border-border bg-background font-mono text-sm", className), style: style }));
|
|
127
|
-
});
|
|
128
|
-
// ---------------------------------------------------------------------------
|
|
129
|
-
// Syntax highlighting: maps lezer tags to --stgm-syntax-* CSS variables
|
|
130
|
-
// ---------------------------------------------------------------------------
|
|
131
|
-
const stigmerHighlightStyle = HighlightStyle.define([
|
|
132
|
-
{ tag: tags.propertyName, color: "var(--stgm-syntax-property, #0550ae)" },
|
|
133
|
-
{ tag: tags.tagName, color: "var(--stgm-syntax-tag, #cf222e)" },
|
|
134
|
-
{ tag: tags.keyword, color: "var(--stgm-syntax-keyword, #8250df)", fontWeight: "bold" },
|
|
135
|
-
{ tag: tags.string, color: "var(--stgm-syntax-string, #0a3069)" },
|
|
136
|
-
{ tag: tags.number, color: "var(--stgm-syntax-number, #953800)" },
|
|
137
|
-
{ tag: [tags.bool, tags.null], color: "var(--stgm-syntax-bool, #8250df)" },
|
|
138
|
-
{ tag: tags.atom, color: "var(--stgm-syntax-atom, #cf222e)" },
|
|
139
|
-
{ tag: tags.comment, color: "var(--stgm-syntax-comment, #6e7781)", fontStyle: "italic" },
|
|
140
|
-
{ tag: tags.meta, color: "var(--stgm-syntax-meta, #8250df)" },
|
|
141
|
-
{ tag: tags.name, color: "var(--stgm-foreground, #1a1a2e)" },
|
|
142
|
-
{ tag: tags.definition(tags.name), color: "var(--stgm-syntax-property, #0550ae)" },
|
|
143
|
-
{ tag: tags.separator, color: "var(--stgm-muted-foreground, #737373)" },
|
|
144
|
-
{ tag: tags.punctuation, color: "var(--stgm-muted-foreground, #737373)" },
|
|
145
|
-
]);
|
|
146
|
-
// ---------------------------------------------------------------------------
|
|
147
|
-
// CodeMirror theme bridge: maps --stgm-* tokens to editor styles
|
|
148
|
-
// ---------------------------------------------------------------------------
|
|
149
|
-
const stigmerTheme = EditorView.theme({
|
|
150
|
-
"&": {
|
|
151
|
-
height: "100%",
|
|
152
|
-
backgroundColor: "var(--stgm-background, #fff)",
|
|
153
|
-
color: "var(--stgm-foreground, #1a1a2e)",
|
|
154
|
-
fontSize: "13px",
|
|
155
|
-
},
|
|
156
|
-
".cm-content": {
|
|
157
|
-
caretColor: "var(--stgm-foreground, #1a1a2e)",
|
|
158
|
-
fontFamily: "var(--stgm-font-mono, ui-monospace, monospace)",
|
|
159
|
-
padding: "8px 0",
|
|
160
|
-
},
|
|
161
|
-
".cm-cursor, .cm-dropCursor": {
|
|
162
|
-
borderLeftColor: "var(--stgm-foreground, #1a1a2e)",
|
|
163
|
-
},
|
|
164
|
-
"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection": {
|
|
165
|
-
backgroundColor: "var(--stgm-accent, #e0e7ff)",
|
|
166
|
-
},
|
|
167
|
-
".cm-gutters": {
|
|
168
|
-
backgroundColor: "var(--stgm-muted, #f5f5f5)",
|
|
169
|
-
color: "var(--stgm-muted-foreground, #737373)",
|
|
170
|
-
border: "none",
|
|
171
|
-
borderRight: "1px solid var(--stgm-border, #e5e5e5)",
|
|
172
|
-
},
|
|
173
|
-
".cm-activeLineGutter": {
|
|
174
|
-
backgroundColor: "var(--stgm-accent, #e0e7ff)",
|
|
175
|
-
},
|
|
176
|
-
".cm-activeLine": {
|
|
177
|
-
backgroundColor: "color-mix(in srgb, var(--stgm-accent, #e0e7ff) 30%, transparent)",
|
|
178
|
-
},
|
|
179
|
-
".cm-foldPlaceholder": {
|
|
180
|
-
backgroundColor: "var(--stgm-muted, #f5f5f5)",
|
|
181
|
-
border: "1px solid var(--stgm-border, #e5e5e5)",
|
|
182
|
-
color: "var(--stgm-muted-foreground, #737373)",
|
|
183
|
-
},
|
|
184
|
-
".cm-tooltip": {
|
|
185
|
-
backgroundColor: "var(--stgm-popover, #fff)",
|
|
186
|
-
color: "var(--stgm-popover-foreground, #1a1a2e)",
|
|
187
|
-
border: "1px solid var(--stgm-border, #e5e5e5)",
|
|
188
|
-
borderRadius: "6px",
|
|
189
|
-
boxShadow: "0 2px 8px rgba(0,0,0,0.08)",
|
|
190
|
-
},
|
|
191
|
-
".cm-tooltip-autocomplete": {
|
|
192
|
-
"& > ul > li[aria-selected]": {
|
|
193
|
-
backgroundColor: "var(--stgm-accent, #e0e7ff)",
|
|
194
|
-
color: "var(--stgm-accent-foreground, #1a1a2e)",
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
".cm-diagnostic-error": {
|
|
198
|
-
borderLeft: "3px solid var(--stgm-destructive, #ef4444)",
|
|
199
|
-
},
|
|
200
|
-
".cm-diagnostic-warning": {
|
|
201
|
-
borderLeft: "3px solid var(--stgm-warning, #f59e0b)",
|
|
202
|
-
},
|
|
203
|
-
".cm-diagnostic-info": {
|
|
204
|
-
borderLeft: "3px solid var(--stgm-primary, #6366f1)",
|
|
205
|
-
},
|
|
206
|
-
".cm-lint-marker-error": {
|
|
207
|
-
content: "'●'",
|
|
208
|
-
color: "var(--stgm-destructive, #ef4444)",
|
|
209
|
-
},
|
|
210
|
-
".cm-lint-marker-warning": {
|
|
211
|
-
content: "'●'",
|
|
212
|
-
color: "var(--stgm-warning, #f59e0b)",
|
|
213
|
-
},
|
|
214
|
-
});
|
|
1
|
+
// The schema-aware YAML editor started life here (T10) and was promoted to
|
|
2
|
+
// the manifest domain when resource YAML editing became a cross-kind
|
|
3
|
+
// concern. These aliases keep the original workflow-scoped names stable —
|
|
4
|
+
// both are public API (exported from the package index).
|
|
5
|
+
export { YamlEditor as WorkflowYamlEditor } from "../manifest/YamlEditor.js";
|
|
215
6
|
//# sourceMappingURL=WorkflowYamlEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowYamlEditor.js","sourceRoot":"","sources":["../../src/workflow/WorkflowYamlEditor.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"WorkflowYamlEditor.js","sourceRoot":"","sources":["../../src/workflow/WorkflowYamlEditor.tsx"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,qEAAqE;AACrE,0EAA0E;AAC1E,yDAAyD;AAEzD,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { ApplyResourceResult } from "./useApplyResource.js";
|
|
2
|
-
/** Props for {@link ImportResourceDialog}. */
|
|
3
|
-
export interface ImportResourceDialogProps {
|
|
4
|
-
/** Whether the dialog is open. */
|
|
5
|
-
readonly open: boolean;
|
|
6
|
-
/** Called when the dialog should open or close. */
|
|
7
|
-
readonly onOpenChange: (open: boolean) => void;
|
|
8
|
-
/** Target organization slug to apply the imported resource to. */
|
|
9
|
-
readonly org: string;
|
|
10
|
-
/** Called after a successful import. Use for navigation or list refresh. */
|
|
11
|
-
readonly onSuccess?: (result: ApplyResourceResult) => void;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Modal dialog for importing a Stigmer resource from a YAML or JSON file.
|
|
15
|
-
*
|
|
16
|
-
* Workflow:
|
|
17
|
-
* 1. User selects a `.yaml`, `.yml`, or `.json` file via the file picker
|
|
18
|
-
* 2. The file is validated and a preview card shows the detected resource
|
|
19
|
-
* 3. User confirms the import, which calls `apply()` on the target org
|
|
20
|
-
* 4. On success: toast notification and `onSuccess` callback
|
|
21
|
-
* 5. On error: inline error message with guidance
|
|
22
|
-
*
|
|
23
|
-
* Uses the native `<dialog>` element for built-in focus trapping, Escape
|
|
24
|
-
* key handling, and backdrop — consistent with {@link ConfirmDialog}.
|
|
25
|
-
*
|
|
26
|
-
* Zero Console dependencies — safe for platform builder embedding.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```tsx
|
|
30
|
-
* const [open, setOpen] = useState(false);
|
|
31
|
-
*
|
|
32
|
-
* <ImportResourceDialog
|
|
33
|
-
* open={open}
|
|
34
|
-
* onOpenChange={setOpen}
|
|
35
|
-
* org={activeOrg}
|
|
36
|
-
* onSuccess={(result) => {
|
|
37
|
-
* router.push(`/library/${result.kind === "Agent" ? "agents" : "mcp-servers"}`);
|
|
38
|
-
* }}
|
|
39
|
-
* />
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare function ImportResourceDialog({ open, onOpenChange, org, onSuccess, }: ImportResourceDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
-
//# sourceMappingURL=ImportResourceDialog.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImportResourceDialog.d.ts","sourceRoot":"","sources":["../../src/library/ImportResourceDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,8CAA8C;AAC9C,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAC5D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,YAAY,EACZ,GAAG,EACH,SAAS,GACV,EAAE,yBAAyB,2CAoK3B"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useCallback, useEffect, useRef } from "react";
|
|
4
|
-
import { cn } from "@stigmer/theme";
|
|
5
|
-
import { toast } from "../feedback/toast.js";
|
|
6
|
-
import { useImportResource } from "./useImportResource.js";
|
|
7
|
-
// ---------------------------------------------------------------------------
|
|
8
|
-
// Component
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
/**
|
|
11
|
-
* Modal dialog for importing a Stigmer resource from a YAML or JSON file.
|
|
12
|
-
*
|
|
13
|
-
* Workflow:
|
|
14
|
-
* 1. User selects a `.yaml`, `.yml`, or `.json` file via the file picker
|
|
15
|
-
* 2. The file is validated and a preview card shows the detected resource
|
|
16
|
-
* 3. User confirms the import, which calls `apply()` on the target org
|
|
17
|
-
* 4. On success: toast notification and `onSuccess` callback
|
|
18
|
-
* 5. On error: inline error message with guidance
|
|
19
|
-
*
|
|
20
|
-
* Uses the native `<dialog>` element for built-in focus trapping, Escape
|
|
21
|
-
* key handling, and backdrop — consistent with {@link ConfirmDialog}.
|
|
22
|
-
*
|
|
23
|
-
* Zero Console dependencies — safe for platform builder embedding.
|
|
24
|
-
*
|
|
25
|
-
* @example
|
|
26
|
-
* ```tsx
|
|
27
|
-
* const [open, setOpen] = useState(false);
|
|
28
|
-
*
|
|
29
|
-
* <ImportResourceDialog
|
|
30
|
-
* open={open}
|
|
31
|
-
* onOpenChange={setOpen}
|
|
32
|
-
* org={activeOrg}
|
|
33
|
-
* onSuccess={(result) => {
|
|
34
|
-
* router.push(`/library/${result.kind === "Agent" ? "agents" : "mcp-servers"}`);
|
|
35
|
-
* }}
|
|
36
|
-
* />
|
|
37
|
-
* ```
|
|
38
|
-
*/
|
|
39
|
-
export function ImportResourceDialog({ open, onOpenChange, org, onSuccess, }) {
|
|
40
|
-
const dialogRef = useRef(null);
|
|
41
|
-
const fileInputRef = useRef(null);
|
|
42
|
-
const { readFile, preview, error, reset, apply, isApplying } = useImportResource();
|
|
43
|
-
// Sync dialog open state with the native <dialog> element.
|
|
44
|
-
useEffect(() => {
|
|
45
|
-
const dialog = dialogRef.current;
|
|
46
|
-
if (!dialog)
|
|
47
|
-
return;
|
|
48
|
-
if (open && !dialog.open) {
|
|
49
|
-
dialog.showModal();
|
|
50
|
-
}
|
|
51
|
-
else if (!open && dialog.open) {
|
|
52
|
-
dialog.close();
|
|
53
|
-
}
|
|
54
|
-
}, [open]);
|
|
55
|
-
// Reset state when the dialog opens.
|
|
56
|
-
useEffect(() => {
|
|
57
|
-
if (open) {
|
|
58
|
-
reset();
|
|
59
|
-
if (fileInputRef.current) {
|
|
60
|
-
fileInputRef.current.value = "";
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}, [open, reset]);
|
|
64
|
-
const handleCancel = useCallback((e) => {
|
|
65
|
-
e.preventDefault();
|
|
66
|
-
onOpenChange(false);
|
|
67
|
-
}, [onOpenChange]);
|
|
68
|
-
const handleClose = useCallback(() => {
|
|
69
|
-
onOpenChange(false);
|
|
70
|
-
}, [onOpenChange]);
|
|
71
|
-
const handleFileChange = useCallback((e) => {
|
|
72
|
-
const file = e.target.files?.[0];
|
|
73
|
-
if (file) {
|
|
74
|
-
readFile(file);
|
|
75
|
-
}
|
|
76
|
-
}, [readFile]);
|
|
77
|
-
const handleConfirm = useCallback(async () => {
|
|
78
|
-
try {
|
|
79
|
-
const result = await apply(org);
|
|
80
|
-
toast.success(`${result.kind === "Agent" ? "Agent" : "MCP Server"} "${result.name}" imported successfully`);
|
|
81
|
-
onOpenChange(false);
|
|
82
|
-
onSuccess?.(result);
|
|
83
|
-
}
|
|
84
|
-
catch {
|
|
85
|
-
// error is set by the hook
|
|
86
|
-
}
|
|
87
|
-
}, [apply, org, onOpenChange, onSuccess]);
|
|
88
|
-
return (_jsx("dialog", { ref: dialogRef, onCancel: handleCancel, 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 flex-col gap-5 p-6", children: [_jsxs("div", { className: "flex flex-col gap-1", children: [_jsx("h3", { className: "text-base font-semibold text-foreground", children: "Import resource" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Select a YAML or JSON file containing a Stigmer Agent or MCP Server definition." })] }), _jsx("div", { children: _jsx("input", { ref: fileInputRef, type: "file", accept: ".yaml,.yml,.json", onChange: handleFileChange, className: cn("w-full rounded-md border border-input bg-background px-3 py-2 text-sm text-foreground", "file:mr-3 file:rounded-md file:border-0 file:bg-primary file:px-2.5 file:py-1 file:text-xs file:font-medium file:text-primary-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"), "aria-label": "Select resource file" }) }), error && (_jsx("div", { role: "alert", className: "rounded-md border border-destructive bg-card px-3 py-2.5 text-sm text-destructive", children: error })), preview && !error && (_jsxs("div", { className: "rounded-md border border-border bg-card px-4 py-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "inline-flex rounded bg-muted px-1.5 py-0.5 text-xs font-medium text-muted-foreground", children: preview.kind === "Agent" ? "Agent" : "MCP Server" }), _jsx("span", { className: "inline-flex rounded bg-muted px-1.5 py-0.5 text-xs text-muted-foreground uppercase", children: preview.format })] }), _jsx("p", { className: "mt-1.5 text-sm font-medium text-foreground", children: preview.name }), preview.slug && preview.slug !== preview.name && (_jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: preview.slug })), _jsxs("p", { className: "mt-1.5 text-xs text-muted-foreground", children: ["Will be applied to ", _jsx("span", { className: "font-medium text-foreground", children: org })] })] })), _jsxs("div", { className: "flex justify-end gap-2", children: [_jsx("button", { type: "button", onClick: handleClose, disabled: isApplying, className: cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "border border-input bg-background text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" }), _jsx("button", { type: "button", onClick: handleConfirm, disabled: !preview || !!error || isApplying, className: cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "bg-primary 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: isApplying ? "Importing\u2026" : "Import" })] })] }) }));
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=ImportResourceDialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImportResourceDialog.js","sourceRoot":"","sources":["../../src/library/ImportResourceDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { AgentInput, McpServerInput } from "@stigmer/sdk";
|
|
2
|
-
/**
|
|
3
|
-
* Result of parsing a Stigmer resource YAML into an SDK input type.
|
|
4
|
-
*
|
|
5
|
-
* Discriminated on `kind` so consumers can narrow to the specific input:
|
|
6
|
-
*
|
|
7
|
-
* ```ts
|
|
8
|
-
* const parsed = parseResourceYaml(content, "my-org");
|
|
9
|
-
* if (parsed.kind === "Agent") {
|
|
10
|
-
* // parsed.input is AgentInput
|
|
11
|
-
* }
|
|
12
|
-
* ```
|
|
13
|
-
*/
|
|
14
|
-
export type ParsedResource = {
|
|
15
|
-
/** The parsed resource is an Agent blueprint. */
|
|
16
|
-
readonly kind: "Agent";
|
|
17
|
-
/** SDK input suitable for `stigmer.agent.apply()`. */
|
|
18
|
-
readonly input: AgentInput;
|
|
19
|
-
} | {
|
|
20
|
-
/** The parsed resource is an MCP server definition. */
|
|
21
|
-
readonly kind: "McpServer";
|
|
22
|
-
/** SDK input suitable for `stigmer.mcpServer.apply()`. */
|
|
23
|
-
readonly input: McpServerInput;
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Parses a Stigmer resource YAML string into the corresponding SDK input
|
|
27
|
-
* type for use with `stigmer.agent.apply()` or `stigmer.mcpServer.apply()`.
|
|
28
|
-
*
|
|
29
|
-
* Handles the conversion from proto-style snake_case YAML field names to
|
|
30
|
-
* the camelCase TypeScript SDK input types, including nested structures
|
|
31
|
-
* like `mcp_server_usages`, `sub_agents`, and `env`.
|
|
32
|
-
*
|
|
33
|
-
* The `org` parameter **always overrides** `metadata.org` in the YAML.
|
|
34
|
-
* This matches the UX intent of "Apply to [my-org]" — the user explicitly
|
|
35
|
-
* chooses the target organization.
|
|
36
|
-
*
|
|
37
|
-
* **Throws** with descriptive, user-facing error messages when the YAML
|
|
38
|
-
* is malformed or missing required fields. These messages are designed
|
|
39
|
-
* for display in error UI components.
|
|
40
|
-
*
|
|
41
|
-
* @param content - Raw YAML content string (typically from {@link useArtifactContent}).
|
|
42
|
-
* @param org - Target organization slug. Overrides `metadata.org` in the YAML.
|
|
43
|
-
* @returns A discriminated union with the parsed SDK input.
|
|
44
|
-
* @throws {Error} When the content is not valid YAML, not a recognized
|
|
45
|
-
* Stigmer resource, or is missing required fields.
|
|
46
|
-
*
|
|
47
|
-
* @example
|
|
48
|
-
* ```ts
|
|
49
|
-
* import { parseResourceYaml } from "@stigmer/react";
|
|
50
|
-
*
|
|
51
|
-
* const parsed = parseResourceYaml(yamlContent, "my-org");
|
|
52
|
-
* if (parsed.kind === "Agent") {
|
|
53
|
-
* await stigmer.agent.apply(parsed.input);
|
|
54
|
-
* } else {
|
|
55
|
-
* await stigmer.mcpServer.apply(parsed.input);
|
|
56
|
-
* }
|
|
57
|
-
* ```
|
|
58
|
-
*
|
|
59
|
-
* @see {@link useApplyResource} for the React hook that wraps this function
|
|
60
|
-
* @see {@link detectStigmerResource} for lightweight detection without full parsing
|
|
61
|
-
*/
|
|
62
|
-
export declare function parseResourceYaml(content: string, org: string): ParsedResource;
|
|
63
|
-
//# sourceMappingURL=parse-resource-yaml.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parse-resource-yaml.d.ts","sourceRoot":"","sources":["../../src/library/parse-resource-yaml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EASf,MAAM,cAAc,CAAC;AAGtB;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IACE,iDAAiD;IACjD,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,sDAAsD;IACtD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;CAC5B,GACD;IACE,uDAAuD;IACvD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;CAChC,CAAC;AAEN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,cAAc,CAyBhB"}
|