summaryrefslogtreecommitdiff
path: root/extension/react-app/src/hooks/useContinueNotebookProtocol.ts
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-05-31 16:13:01 -0400
committerNate Sesti <sestinj@gmail.com>2023-05-31 16:13:01 -0400
commitdd5b9f6b7f08f178d6034a57f97faea38442eb0a (patch)
treeb18b4dbc9b6db8b033b9c48d832960b11f9ac687 /extension/react-app/src/hooks/useContinueNotebookProtocol.ts
parent22245d2cbf90daa9033d8551207aa986069d8b24 (diff)
downloadsncontinue-dd5b9f6b7f08f178d6034a57f97faea38442eb0a.tar.gz
sncontinue-dd5b9f6b7f08f178d6034a57f97faea38442eb0a.tar.bz2
sncontinue-dd5b9f6b7f08f178d6034a57f97faea38442eb0a.zip
checkpoint! protocol reform and it works now
Diffstat (limited to 'extension/react-app/src/hooks/useContinueNotebookProtocol.ts')
-rw-r--r--extension/react-app/src/hooks/useContinueNotebookProtocol.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/extension/react-app/src/hooks/useContinueNotebookProtocol.ts b/extension/react-app/src/hooks/useContinueNotebookProtocol.ts
new file mode 100644
index 00000000..d5ffbf09
--- /dev/null
+++ b/extension/react-app/src/hooks/useContinueNotebookProtocol.ts
@@ -0,0 +1,49 @@
+import AbstractContinueNotebookClientProtocol from "./ContinueNotebookClientProtocol";
+// import { Messenger, WebsocketMessenger } from "../../../src/util/messenger";
+import { Messenger, WebsocketMessenger } from "./messenger";
+import { VscodeMessenger } from "./vscodeMessenger";
+
+class ContinueNotebookClientProtocol extends AbstractContinueNotebookClientProtocol {
+ messenger: Messenger;
+ // Server URL must contain the session ID param
+ serverUrlWithSessionId: string;
+
+ constructor(
+ serverUrlWithSessionId: string,
+ useVscodeMessagePassing: boolean = false
+ ) {
+ super();
+ this.serverUrlWithSessionId = serverUrlWithSessionId;
+ if (useVscodeMessagePassing) {
+ this.messenger = new VscodeMessenger(serverUrlWithSessionId);
+ } else {
+ this.messenger = new WebsocketMessenger(serverUrlWithSessionId);
+ }
+ }
+
+ sendMainInput(input: string) {
+ this.messenger.send("main_input", { input });
+ }
+
+ reverseToIndex(index: number) {
+ this.messenger.send("reverse_to_index", { index });
+ }
+
+ sendRefinementInput(input: string, index: number) {
+ this.messenger.send("refinement_input", { input, index });
+ }
+
+ sendStepUserInput(input: string, index: number) {
+ this.messenger.send("step_user_input", { input, index });
+ }
+
+ onStateUpdate(callback: (state: any) => void) {
+ this.messenger.onMessageType("state_update", (data: any) => {
+ if (data.state) {
+ callback(data.state);
+ }
+ });
+ }
+}
+
+export default ContinueNotebookClientProtocol;