Spaces:
Running
Running
fix: resolve all console errors and CSP violations
Browse files- Remove redundant chatInterface.initialize() call - already set up in constructor
- Fix ChatInterface to receive gameEngine instead of aiService
- Move inline script to external init-env.js to comply with CSP
- Properly structure all module dependencies and initialization
- app.py +1 -9
- src/app.js +2 -3
- src/init-env.js +13 -0
app.py
CHANGED
@@ -27,15 +27,7 @@ async def read_root():
|
|
27 |
env_script = f"""
|
28 |
<meta name="openrouter-key" content="{openrouter_key}">
|
29 |
<meta name="hf-key" content="{hf_key}">
|
30 |
-
<script>
|
31 |
-
// Read keys from meta tags to avoid CSP issues
|
32 |
-
document.addEventListener('DOMContentLoaded', function() {{
|
33 |
-
const openrouterMeta = document.querySelector('meta[name="openrouter-key"]');
|
34 |
-
const hfMeta = document.querySelector('meta[name="hf-key"]');
|
35 |
-
if (openrouterMeta) window.OPENROUTER_API_KEY = openrouterMeta.content;
|
36 |
-
if (hfMeta) window.HF_API_KEY = hfMeta.content;
|
37 |
-
}});
|
38 |
-
</script>
|
39 |
"""
|
40 |
|
41 |
# Insert the script before closing head tag
|
|
|
27 |
env_script = f"""
|
28 |
<meta name="openrouter-key" content="{openrouter_key}">
|
29 |
<meta name="hf-key" content="{hf_key}">
|
30 |
+
<script src="./src/init-env.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
31 |
"""
|
32 |
|
33 |
# Insert the script before closing head tag
|
src/app.js
CHANGED
@@ -10,7 +10,7 @@ class ClozeReaderApp {
|
|
10 |
this.bookDataService = bookDataService; // Already instantiated
|
11 |
this.aiService = new AIService();
|
12 |
this.gameEngine = new ClozeGameEngine();
|
13 |
-
this.chatInterface = new ChatInterface(this.
|
14 |
this.conversationManager = new ConversationManager(this.aiService);
|
15 |
|
16 |
this.init();
|
@@ -21,8 +21,7 @@ class ClozeReaderApp {
|
|
21 |
// Start the game directly - bookDataService is already initialized
|
22 |
await this.gameEngine.initialize();
|
23 |
|
24 |
-
//
|
25 |
-
this.chatInterface.initialize();
|
26 |
|
27 |
console.log('Cloze Reader application initialized successfully');
|
28 |
} catch (error) {
|
|
|
10 |
this.bookDataService = bookDataService; // Already instantiated
|
11 |
this.aiService = new AIService();
|
12 |
this.gameEngine = new ClozeGameEngine();
|
13 |
+
this.chatInterface = new ChatInterface(this.gameEngine);
|
14 |
this.conversationManager = new ConversationManager(this.aiService);
|
15 |
|
16 |
this.init();
|
|
|
21 |
// Start the game directly - bookDataService is already initialized
|
22 |
await this.gameEngine.initialize();
|
23 |
|
24 |
+
// Chat interface is already initialized in constructor
|
|
|
25 |
|
26 |
console.log('Cloze Reader application initialized successfully');
|
27 |
} catch (error) {
|
src/init-env.js
ADDED
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
// Initialize environment variables from meta tags
|
2 |
+
document.addEventListener('DOMContentLoaded', function() {
|
3 |
+
const openrouterMeta = document.querySelector('meta[name="openrouter-key"]');
|
4 |
+
const hfMeta = document.querySelector('meta[name="hf-key"]');
|
5 |
+
|
6 |
+
if (openrouterMeta) {
|
7 |
+
window.OPENROUTER_API_KEY = openrouterMeta.content;
|
8 |
+
}
|
9 |
+
|
10 |
+
if (hfMeta) {
|
11 |
+
window.HF_API_KEY = hfMeta.content;
|
12 |
+
}
|
13 |
+
});
|