synthos 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/synthos.js +2 -2
- package/default-pages/[application].html +94 -86
- package/default-pages/[markdown].html +270 -260
- package/default-pages/[sidebar].html +67 -42
- package/default-pages/[split-application].html +55 -70
- package/default-pages/json_tools.html +113 -130
- package/default-pages/solar_system.html +432 -0
- package/default-pages/space_invaders.html +617 -0
- package/default-scripts/windows-terminal.json +6 -6
- package/dist/service/createCompletePrompt.d.ts.map +1 -1
- package/dist/service/createCompletePrompt.js +6 -5
- package/dist/service/createCompletePrompt.js.map +1 -1
- package/package.json +1 -1
- package/required-pages/apis.html +361 -346
- package/required-pages/home.html +69 -26
- package/required-pages/pages.html +152 -134
- package/required-pages/scripts.html +349 -334
- package/required-pages/settings.html +184 -157
- package/src/service/createCompletePrompt.ts +6 -5
- package/src/settings.ts +1 -1
package/bin/synthos.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
var app = require('../dist/synthos-cli.js');
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var app = require('../dist/synthos-cli.js');
|
|
3
3
|
app.run();
|
|
@@ -1,87 +1,95 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>SynthOS - {Application Title}</title>
|
|
7
|
-
<style>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
.chat-
|
|
13
|
-
.chat-
|
|
14
|
-
.chat-
|
|
15
|
-
.chat-message
|
|
16
|
-
.chat-message p
|
|
17
|
-
.
|
|
18
|
-
.
|
|
19
|
-
.link-group
|
|
20
|
-
|
|
21
|
-
.
|
|
22
|
-
|
|
23
|
-
.chat-
|
|
24
|
-
.chat-
|
|
25
|
-
.
|
|
26
|
-
.
|
|
27
|
-
.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.application-title { font-size:
|
|
34
|
-
.application-content { font-size:
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</div>
|
|
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
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>SynthOS - {Application Title}</title>
|
|
7
|
+
<style>
|
|
8
|
+
/* Nebula Dusk Theme */
|
|
9
|
+
:root { --accent-primary: #667eea; --accent-secondary: #764ba2; --accent-tertiary: #f093fb; --accent-glow: rgba(138, 43, 226, 0.3); --border-color: rgba(138, 43, 226, 0.3); }
|
|
10
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
11
|
+
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background: #0a0a0f; color: #e0e0e0; height: 100vh; display: flex; }
|
|
12
|
+
.chat-panel { width: 30%; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f0f23 100%); box-shadow: 0 0 20px rgba(138, 43, 226, 0.3); padding: 5px; display: flex; flex-direction: column; border-right: 1px solid rgba(138, 43, 226, 0.3); }
|
|
13
|
+
.chat-header { font-size: 24px; padding: 10px; background: linear-gradient(90deg, #667eea 0%, #764ba2 50%, #f093fb 100%); color: white; text-align: center; border-radius: 10px 10px 0 0; text-shadow: 0 0 10px rgba(255,255,255,0.5); }
|
|
14
|
+
.chat-messages { flex-grow: 1; overflow-y: auto; padding: 15px; margin-top: 10px; background: rgba(15, 15, 35, 0.8); border-radius: 10px; border: 1px solid rgba(138, 43, 226, 0.2); }
|
|
15
|
+
.chat-message { margin-bottom: 15px; padding: 10px; background: linear-gradient(135deg, rgba(102, 126, 234, 0.2) 0%, rgba(118, 75, 162, 0.2) 100%); border-radius: 15px; box-shadow: 0 2px 10px rgba(138, 43, 226, 0.2); border: 1px solid rgba(138, 43, 226, 0.1); }
|
|
16
|
+
.chat-message p { margin-bottom: 5px; line-height: 1.4; }
|
|
17
|
+
.chat-message p strong { font-weight: 600; color: #a78bfa; }
|
|
18
|
+
.chat-message p code { background: rgba(138, 43, 226, 0.3); padding: 2px 4px; border-radius: 3px; font-family: 'Courier New', Courier, monospace; color: #e0e0e0; }
|
|
19
|
+
.link-group { display: flex; justify-content: space-between; margin: 15px 0; }
|
|
20
|
+
.link-group a { font-size: 14px; color: #a78bfa; text-decoration: none; padding: 5px 10px; border-radius: 5px; transition: all 0.3s; }
|
|
21
|
+
.link-group a:hover { background: rgba(138, 43, 226, 0.3); text-shadow: 0 0 10px rgba(167, 139, 250, 0.5); }
|
|
22
|
+
form { display: flex; flex-direction: row; width: 100%; gap: 10px; }
|
|
23
|
+
.chat-input { padding: 12px; border: none; border-radius: 25px; flex-grow: 1; font-size: 14px; background: rgba(30, 30, 60, 0.8); color: #e0e0e0; box-shadow: inset 0 1px 3px rgba(0,0,0,0.3); border: 1px solid rgba(138, 43, 226, 0.3); }
|
|
24
|
+
.chat-input:focus { outline: none; border-color: #a78bfa; box-shadow: 0 0 10px rgba(167, 139, 250, 0.3); }
|
|
25
|
+
.chat-submit { padding: 12px 20px; border: none; border-radius: 25px; font-size: 14px; background: linear-gradient(90deg, #667eea 0%, #764ba2 100%); color: white; cursor: pointer; transition: all 0.3s; white-space: nowrap; }
|
|
26
|
+
.chat-submit:hover { box-shadow: 0 0 20px rgba(138, 43, 226, 0.5); transform: translateY(-2px); }
|
|
27
|
+
.viewer-panel { width: 90%; padding: 20px; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f0f23 100%); display: flex; flex-direction: column; justify-content: flex-start; align-items: center; }
|
|
28
|
+
.loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(10, 10, 15, 0.9); display: none; justify-content: center; align-items: center; z-index: 1000; }
|
|
29
|
+
.spinner { border: 8px solid rgba(138, 43, 226, 0.2); border-top: 8px solid #a78bfa; border-radius: 50%; width: 60px; height: 60px; animation: spin 1s linear infinite; }
|
|
30
|
+
@keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
|
|
31
|
+
|
|
32
|
+
/* Page Specific Styles - Updated with dialog colors */
|
|
33
|
+
.application-title { font-size: 22px; font-weight: 700; padding: 14px 30px; background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary)); color: white; text-align: center; border-radius: 12px 12px 0 0; width: 100%; max-width: 800px; box-shadow: 0 6px 25px var(--accent-glow); }
|
|
34
|
+
.application-content { font-size: 14px; color: rgba(224, 224, 224, 0.8); padding: 20px; flex-grow: 1; width: 100%; max-width: 800px; background: rgba(15, 15, 35, 0.8); border-radius: 0 0 12px 12px; border: 1px solid rgba(138, 43, 226, 0.2); border-top: none; }
|
|
35
|
+
|
|
36
|
+
/* Scrollbar Styles */
|
|
37
|
+
::-webkit-scrollbar { width: 10px; height: 10px; }
|
|
38
|
+
::-webkit-scrollbar-track { background: rgba(15, 15, 35, 0.6); border-radius: 10px; border: 1px solid var(--border-color); }
|
|
39
|
+
::-webkit-scrollbar-thumb { background: linear-gradient(180deg, var(--accent-primary) 0%, var(--accent-secondary) 50%, var(--accent-tertiary) 100%); border-radius: 10px; border: 2px solid rgba(15, 15, 35, 0.6); box-shadow: 0 0 10px var(--accent-glow); }
|
|
40
|
+
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, var(--accent-tertiary) 0%, var(--accent-secondary) 50%, var(--accent-primary) 100%); box-shadow: 0 0 15px rgba(240, 147, 251, 0.5); }
|
|
41
|
+
::-webkit-scrollbar-corner { background: rgba(15, 15, 35, 0.6); }
|
|
42
|
+
* { scrollbar-width: thin; scrollbar-color: var(--accent-secondary) rgba(15, 15, 35, 0.6); }
|
|
43
|
+
</style>
|
|
44
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js"></script>
|
|
45
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/marked/14.1.1/marked.min.js"></script>
|
|
46
|
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/11.1.0/mermaid.min.js"></script>
|
|
47
|
+
</head>
|
|
48
|
+
<body>
|
|
49
|
+
<div class="chat-panel">
|
|
50
|
+
<div class="chat-header">SynthOS</div>
|
|
51
|
+
<div class="chat-messages" id="chatMessages">
|
|
52
|
+
<div class="chat-message"><p><strong>SynthOS:</strong> what kind of application would you like?</p></div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="link-group">
|
|
55
|
+
<a href="#" id="saveLink">Save</a>
|
|
56
|
+
<a href="/pages" id="pagesLink">Pages</a>
|
|
57
|
+
<a href="#" id="resetLink">Reset</a>
|
|
58
|
+
</div>
|
|
59
|
+
<form action="/" method="POST" id="chatForm">
|
|
60
|
+
<input type="text" class="chat-input" id="chatInput" name="message" placeholder="Type a message...">
|
|
61
|
+
<button type="submit" class="chat-submit">Send</button>
|
|
62
|
+
</form>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="viewer-panel" id="viewerPanel">
|
|
65
|
+
<div class="application-title">{Application Title}</div>
|
|
66
|
+
<div class="application-content">{Application Content}</div>
|
|
67
|
+
</div>
|
|
68
|
+
<div id="thoughts" style="display: none;">I've prompted the user for the type of application to create.</div>
|
|
69
|
+
<div id="loadingOverlay" class="loading-overlay"><div class="spinner"></div></div>
|
|
70
|
+
<script>
|
|
71
|
+
// Basic chat functionality
|
|
72
|
+
document.getElementById("chatInput").focus();
|
|
73
|
+
document.getElementById("chatForm").addEventListener('submit', () => {
|
|
74
|
+
document.getElementById("loadingOverlay").style.display = 'flex';
|
|
75
|
+
document.getElementById("chatForm").action = window.location.pathname;
|
|
76
|
+
});
|
|
77
|
+
document.getElementById("saveLink").addEventListener("click", function() {
|
|
78
|
+
const pageName = prompt("Enter the name of the page to save as:");
|
|
79
|
+
if (pageName) {
|
|
80
|
+
window.location.href = `${window.location.pathname}/save?name=${encodeURIComponent(pageName)}`;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
document.getElementById("resetLink").addEventListener("click", function() {
|
|
84
|
+
window.location.href = `${window.location.pathname}/reset`;
|
|
85
|
+
});
|
|
86
|
+
window.onload = function() {
|
|
87
|
+
const chatMessages = document.getElementById('chatMessages');
|
|
88
|
+
chatMessages.scrollTo({
|
|
89
|
+
top: chatMessages.scrollHeight,
|
|
90
|
+
behavior: 'smooth'
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
</script>
|
|
94
|
+
</body>
|
|
87
95
|
</html>
|