Skip to content

Commit ac04ff0

Browse files
authored
Merge pull request #204 from thedadams/oauth-login-button
feat: handle OAuth authentication flow
2 parents e8f5c9e + 708507c commit ac04ff0

File tree

5 files changed

+38
-9
lines changed

5 files changed

+38
-9
lines changed

components/script/messages/promptForm.tsx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,18 @@ const PromptForm = ({
2323
const onSubmitForm = () => {
2424
setSubmitted(true);
2525
onSubmit({ id: frame.id, responses: getValues() });
26+
if (frame.metadata && frame.metadata.authURL) {
27+
open(frame.metadata.authURL);
28+
}
2629
};
2730

31+
let buttonText = noFields ? 'OK' : 'Submit';
32+
let includeHiddenInput = false;
33+
if (noFields && frame.metadata && frame.metadata.authURL) {
34+
buttonText = 'Click here to sign in';
35+
includeHiddenInput = true;
36+
}
37+
2838
return (
2939
<form onSubmit={handleSubmit(onSubmitForm)} className="mx-4">
3040
{frame.fields.map(
@@ -40,6 +50,14 @@ const PromptForm = ({
4050
/>
4151
)
4252
)}
53+
{includeHiddenInput && (
54+
<Input
55+
type="text"
56+
className="hidden"
57+
{...register('handled')}
58+
value={'true'}
59+
/>
60+
)}
4361
<Button
4462
startContent={<GoCheckCircle />}
4563
type="submit"
@@ -48,7 +66,7 @@ const PromptForm = ({
4866
color="primary"
4967
isDisabled={submitted}
5068
>
51-
{noFields ? 'OK' : submitted ? 'Submitted' : 'Submit'}
69+
{submitted ? 'Submitted' : buttonText}
5270
</Button>
5371
</form>
5472
);

components/script/useChatSocket.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,14 +154,23 @@ const useChatSocket = (isEmpty?: boolean) => {
154154
if (latestAgentMessageIndex.current !== -1) {
155155
// Update the message content
156156
updatedMessages[latestAgentMessageIndex.current].message =
157-
frame.message;
157+
frame.metadata &&
158+
frame.metadata.authURL &&
159+
frame.metadata.toolDisplayName
160+
? `${frame.metadata.toolDisplayName} requires authentication`
161+
: frame.message;
158162
updatedMessages[latestAgentMessageIndex.current].component = form;
159163
updatedMessages[latestAgentMessageIndex.current].calls = state;
160164
} else {
161165
// If there are no previous messages, create a new message
162166
updatedMessages.push({
163167
type: MessageType.Agent,
164-
message: frame.message,
168+
message:
169+
frame.metadata &&
170+
frame.metadata.authURL &&
171+
frame.metadata.toolDisplayName
172+
? `${frame.metadata.toolDisplayName} requires authentication`
173+
: frame.message,
165174
component: form,
166175
calls: state,
167176
});

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
},
2222
"main": "electron/main.mjs",
2323
"dependencies": {
24-
"@gptscript-ai/gptscript": "^0.9.5-rc3",
24+
"@gptscript-ai/gptscript": "github:gptscript-ai/node-gptscript#de914911013bf9da02046906b88a5613dce508e1",
2525
"@monaco-editor/react": "^4.6.0",
2626
"@nextui-org/button": "2.0.32",
2727
"@nextui-org/code": "2.0.28",

server/app.mjs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,9 @@ const mount = async (
166166
tools: state.tools || [],
167167
});
168168
}
169-
} catch (e) {}
169+
} catch (e) {
170+
console.error('Error loading state:', e);
171+
}
170172

171173
// Start the script
172174
let runningScript = null;

0 commit comments

Comments
 (0)