mirror of
https://github.com/noodlapp/noodl.git
synced 2026-01-11 23:02:53 +01:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6e514f2521 | ||
|
|
8a88290dab | ||
|
|
418eff7dc7 | ||
|
|
c95725ec08 | ||
|
|
eae223a817 |
15
README.md
15
README.md
@@ -33,3 +33,18 @@ $ npm run dev
|
||||
# Start Noodl Editor test runner
|
||||
$ npm run test:editor
|
||||
```
|
||||
|
||||
## Licenses
|
||||
This repository contains two different licenses for different parts of the Noodl platform.
|
||||
|
||||
- Components related to the editor, used to edit Noodl projects, are under GPLv3
|
||||
- Components related to the end applications, used by the applications Noodl deploys, are under MIT
|
||||
|
||||
All of the source code of applications created with Noodl are under MIT. This means you can do project specific changes to the runtime without having to redistribute your changes.
|
||||
|
||||
Packaged licensed under MIT:
|
||||
- `noodl-runtime`
|
||||
- `noodl-viewer-cloud`
|
||||
- `noodl-viewer-react`
|
||||
|
||||
You can find a MIT LICENSE file in each of these packages. The rest of the repository is licensed under GPLv3.
|
||||
|
||||
@@ -7,6 +7,7 @@ import { verifyOpenAiApiKey } from '@noodl-models/AiAssistant/api';
|
||||
import { PrimaryButton, PrimaryButtonSize, PrimaryButtonVariant } from '@noodl-core-ui/components/inputs/PrimaryButton';
|
||||
import { Box } from '@noodl-core-ui/components/layout/Box';
|
||||
import { VStack } from '@noodl-core-ui/components/layout/Stack';
|
||||
import { PropertyPanelButton } from '@noodl-core-ui/components/property-panel/PropertyPanelButton';
|
||||
import { PropertyPanelRow } from '@noodl-core-ui/components/property-panel/PropertyPanelInput';
|
||||
import { PropertyPanelPasswordInput } from '@noodl-core-ui/components/property-panel/PropertyPanelPasswordInput';
|
||||
import { PropertyPanelSelectInput } from '@noodl-core-ui/components/property-panel/PropertyPanelSelectInput';
|
||||
@@ -31,14 +32,14 @@ export function OpenAiSection() {
|
||||
const haveGpt4 = !!models['gpt-4'];
|
||||
if (haveGpt4) {
|
||||
OpenAiStore.setIsAiApiKeyVerified(true);
|
||||
ToastLayer.showSuccess('Open AI, API Key is valid with GPT-4!');
|
||||
ToastLayer.showSuccess('OpenAI API Key is valid with GPT-4!');
|
||||
} else {
|
||||
OpenAiStore.setIsAiApiKeyVerified(false);
|
||||
ToastLayer.showError('Open AI, API Key is missing gpt-4 model Support!');
|
||||
ToastLayer.showError('OpenAI API Key is missing gpt-4 model Support!');
|
||||
}
|
||||
} else {
|
||||
OpenAiStore.setIsAiApiKeyVerified(false);
|
||||
ToastLayer.showError('Open AI, API Key is invalid!');
|
||||
ToastLayer.showError('OpenAI API Key is invalid!');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +96,20 @@ export function OpenAiSection() {
|
||||
}}
|
||||
/>
|
||||
</PropertyPanelRow>
|
||||
<PropertyPanelRow label="API Key" isChanged={false}>
|
||||
<PropertyPanelButton
|
||||
properties={{
|
||||
isPrimary: true,
|
||||
buttonLabel: 'Verify API Key',
|
||||
onClick() {
|
||||
onVerifyApiKey();
|
||||
}
|
||||
}}
|
||||
/>
|
||||
</PropertyPanelRow>
|
||||
<Box hasYSpacing>
|
||||
<Text>Verify your OpenAI API key to start using AI Commands.</Text>
|
||||
</Box>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
||||
@@ -324,6 +324,11 @@ export function GitStatusButton({ openGitSettingsPopout }: GitStatusButtonProps)
|
||||
});
|
||||
} else {
|
||||
ToastLayer.showError('Failed to push. ' + error);
|
||||
|
||||
// If the error is a rejected push, we need to fetch again to get the latest state where we can pull and rebase
|
||||
if (error?.toString().includes('rejected')) {
|
||||
await fetchRemote();
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user