File size: 3,151 Bytes
c59bca4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bfcb19a
c59bca4
bfcb19a
 
 
c59bca4
 
 
 
 
 
 
 
 
 
 
 
 
 
bfcb19a
c59bca4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bfcb19a
c59bca4
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
const fs = require('fs');
let content = fs.readFileSync('App.tsx', 'utf8');

// There are extra lines left behind from the bad regex replace earlier
// Let's replace EVERYTHING from the end of SettingsModal to the beginning of NewSessionModal.

const startRegex = /<SettingsModal[^>]*\/>/s;
const endRegex = /<NewSessionModal/s;

const startMatch = startRegex.exec(content);
const endMatch = endRegex.exec(content);

if (startMatch && endMatch) {
    const startIndex = startMatch.index + startMatch[0].length;
    const endIndex = endMatch.index;

    const replacement = `
      <TemplateFillerModal
        note={selectedNoteForTemplate}
        isOpen={templateModalOpen}
        onClose={() => {
            setTemplateModalOpen(false);
            if (activeWorkflow && activeWorkflow.stepIndex > 0) {
                if (window.confirm('Cancel the rest of the workflow?')) {
                    setActiveWorkflow(null);
                }
            } else {
                setActiveWorkflow(null);
            }
        }}
        onSubmit={async (text) => {
            if (activeWorkflow && activeWorkflow.stepIndex > 0 && activeWorkflow.sessionId) {
                const delay = activeWorkflow.workflow.steps[activeWorkflow.stepIndex].delayMinutes;
                queueWorkflowStep(text, activeWorkflow.sessionId, delay);

                const nextIndex = activeWorkflow.stepIndex + 1;
                if (nextIndex < activeWorkflow.workflow.steps.length) {
                    setActiveWorkflow({ ...activeWorkflow, stepIndex: nextIndex });
                    const nextTemplate = notes.find(n => n.id === activeWorkflow.workflow.steps[nextIndex].templateId);
                    if (nextTemplate) {
                        setTimeout(() => handleUseTemplate(nextTemplate), 100);
                    }
                } else {
                    setActiveWorkflow(null);
                    setTemplateModalOpen(false);
                }
            } else {
                await handleTemplateSubmitted(text, false);
                setTemplateModalOpen(false);
                if (!activeWorkflow) {
                    setInputText(text);
                    setActiveTab('chat');
                    if (window.innerWidth < 1024) {
                        setTemplatesOpen(false);
                        setSidebarOpen(false);
                    }
                }
            }
        }}
        onStartNewChat={(text) => {
            if (activeWorkflow) {
                handleTemplateSubmitted(text, true);
            }
            handleStartNewChatFromTemplate(text);
        }}
        hfProfileData={hfProfiles[currentAgent.id]}
        workflowContext={activeWorkflow ? {
            stepIndex: activeWorkflow.stepIndex,
            totalSteps: activeWorkflow.workflow.steps.length,
            delayMinutes: activeWorkflow.workflow.steps[activeWorkflow.stepIndex].delayMinutes
        } : undefined}
      />

      `;

      const newContent = content.substring(0, startIndex) + replacement + content.substring(endIndex);
      fs.writeFileSync('App.tsx', newContent);
      console.log('Fixed completely.');
}