pinokiod 5.1.10 → 5.1.17
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/kernel/api/fs/download_worker.js +158 -0
- package/kernel/api/fs/index.js +95 -91
- package/kernel/api/index.js +3 -0
- package/kernel/bin/index.js +5 -2
- package/kernel/environment.js +19 -2
- package/kernel/git.js +972 -1
- package/kernel/index.js +65 -30
- package/kernel/peer.js +1 -2
- package/kernel/plugin.js +0 -8
- package/kernel/procs.js +92 -36
- package/kernel/prototype.js +45 -22
- package/kernel/shells.js +30 -6
- package/kernel/sysinfo.js +33 -13
- package/kernel/util.js +61 -24
- package/kernel/workspace_status.js +131 -7
- package/package.json +1 -1
- package/pipe/index.js +1 -1
- package/server/index.js +1169 -350
- package/server/public/create-launcher.js +157 -2
- package/server/public/install.js +135 -41
- package/server/public/style.css +32 -1
- package/server/public/tab-link-popover.js +45 -14
- package/server/public/terminal-settings.js +51 -35
- package/server/public/urldropdown.css +89 -3
- package/server/socket.js +12 -7
- package/server/views/agents.ejs +4 -3
- package/server/views/app.ejs +798 -30
- package/server/views/bootstrap.ejs +2 -1
- package/server/views/checkpoints.ejs +1014 -0
- package/server/views/checkpoints_registry_beta.ejs +260 -0
- package/server/views/columns.ejs +4 -4
- package/server/views/connect.ejs +1 -0
- package/server/views/d.ejs +74 -4
- package/server/views/download.ejs +28 -28
- package/server/views/editor.ejs +4 -5
- package/server/views/env_editor.ejs +1 -1
- package/server/views/file_explorer.ejs +1 -1
- package/server/views/index.ejs +3 -1
- package/server/views/init/index.ejs +2 -1
- package/server/views/install.ejs +2 -1
- package/server/views/net.ejs +9 -7
- package/server/views/network.ejs +15 -14
- package/server/views/pro.ejs +5 -2
- package/server/views/prototype/index.ejs +2 -1
- package/server/views/registry_link.ejs +76 -0
- package/server/views/rows.ejs +4 -4
- package/server/views/screenshots.ejs +1 -0
- package/server/views/settings.ejs +1 -0
- package/server/views/shell.ejs +4 -6
- package/server/views/terminal.ejs +528 -38
- package/server/views/tools.ejs +1 -0
- package/undefined/logs/dev/plugin/cursor-agent.git/pinokio.js/1764297248545 +0 -45
- package/undefined/logs/dev/plugin/cursor-agent.git/pinokio.js/1764335557118 +0 -45
- package/undefined/logs/dev/plugin/cursor-agent.git/pinokio.js/1764335834126 +0 -45
- package/undefined/logs/dev/plugin/cursor-agent.git/pinokio.js/events +0 -12
- package/undefined/logs/dev/plugin/cursor-agent.git/pinokio.js/latest +0 -45
package/server/views/network.ejs
CHANGED
|
@@ -1155,7 +1155,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1155
1155
|
<h3>
|
|
1156
1156
|
<div class='item-icon'>
|
|
1157
1157
|
<div class='placeholder-icon'>
|
|
1158
|
-
<i class="fa-solid fa-
|
|
1158
|
+
<i class="fa-solid fa-clock-rotate-left"></i>
|
|
1159
1159
|
</div>
|
|
1160
1160
|
</div>
|
|
1161
1161
|
<div class='col'>
|
|
@@ -1194,21 +1194,22 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
1194
1194
|
<button type='button' class='btn' id='create-launcher-button'><i class="fa-solid fa-plus"></i><div class='caption'>Create</div></button>
|
|
1195
1195
|
<a class='btn' id='explore' href="/home?mode=explore"><i class="fa-solid fa-globe"></i><div class='caption'>Discover</div></a>
|
|
1196
1196
|
</div>
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1197
|
+
<a href="/home" class='tab'><i class='fas fa-laptop-code'></i><div class='caption'>This machine</div></a>
|
|
1198
|
+
<a href="/network" class='tab selected'><i class="fa-solid fa-wifi"></i><div class='caption'>Local network</div></a>
|
|
1199
|
+
<% if (list.length > 0) { %>
|
|
1200
|
+
<% let brands = { win32: "windows", darwin: "apple", linux: "Linux" } %>
|
|
1201
|
+
<% list.forEach(({ host, name, platform, processes }, index) => { %>
|
|
1202
1202
|
<a href="/net/<%=name%>" class='submenu tab'><i class="fa-brands fa-<%=brands[platform]%>"></i><div class='caption'><%=name%> (<%=current_host === host ? 'this machine' : host%>)</div></a>
|
|
1203
1203
|
<% }) %>
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1204
|
+
<% } %>
|
|
1205
|
+
<a href="/connect" class='tab'><i class="fa-solid fa-plug"></i><div class='caption'>Login</div></a>
|
|
1206
|
+
<a class='tab' href="<%=portal%>" target="_blank"><i class="fa-solid fa-question"></i><div class='caption'>Help</div></a>
|
|
1207
|
+
<a class='tab' id='genlog' href="/logs"><i class="fa-solid fa-laptop-code"></i><div class='caption'>Logs</div></a>
|
|
1208
|
+
<a class='tab' href="/checkpoints"><i class="fa-solid fa-clock-rotate-left"></i><div class='caption'>Checkpoints</div></a>
|
|
1209
|
+
<a class='tab' href="/screenshots"><i class="fa-solid fa-camera"></i><div class='caption'>Screenshots</div></a>
|
|
1210
|
+
<a class='tab' href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Installed Tools</div></a>
|
|
1211
|
+
<a class='tab' href="/agents"><i class="fa-solid fa-robot"></i><div class='caption'>Agents</div></a>
|
|
1212
|
+
<a class='tab' href="/home?mode=settings"><i class="fa-solid fa-gear"></i><div class='caption'>Settings</div></a>
|
|
1212
1213
|
<%- include('partials/peer_access_points', { peer_access_points, peer_url, peer_qr }) %>
|
|
1213
1214
|
</aside>
|
|
1214
1215
|
</main>
|
package/server/views/pro.ejs
CHANGED
|
@@ -227,7 +227,8 @@ const createTerm = async (_theme) => {
|
|
|
227
227
|
<% } %>
|
|
228
228
|
let config = {
|
|
229
229
|
scrollback: 9999999,
|
|
230
|
-
fontSize:
|
|
230
|
+
fontSize: 14,
|
|
231
|
+
fontFamily: 'monospace',
|
|
231
232
|
theme,
|
|
232
233
|
}
|
|
233
234
|
let res = await fetch("/xterm_config").then((res) => {
|
|
@@ -371,13 +372,15 @@ let cwd = searchParams.get("cwd")
|
|
|
371
372
|
let name = searchParams.get("name")
|
|
372
373
|
let tool = searchParams.get("tool")
|
|
373
374
|
let aiPrompt = searchParams.get("message")
|
|
375
|
+
let uploadToken = searchParams.get("uploadToken")
|
|
374
376
|
displayResults({
|
|
375
377
|
cwd: "<%-JSON.stringify(cwd).slice(1, -1)%>",
|
|
376
378
|
name: name,
|
|
377
379
|
startType: "new",
|
|
378
380
|
projectType: "default",
|
|
379
381
|
aiPrompt,
|
|
380
|
-
tool
|
|
382
|
+
tool,
|
|
383
|
+
uploadToken
|
|
381
384
|
})
|
|
382
385
|
</script>
|
|
383
386
|
</body>
|
|
@@ -1565,7 +1565,8 @@ async function displayResults(config) {
|
|
|
1565
1565
|
|
|
1566
1566
|
let term_config = {
|
|
1567
1567
|
scrollback: 9999999,
|
|
1568
|
-
fontSize:
|
|
1568
|
+
fontSize: 14,
|
|
1569
|
+
fontFamily: 'monospace',
|
|
1569
1570
|
theme,
|
|
1570
1571
|
}
|
|
1571
1572
|
let res = await fetch("/xterm_config").then((res) => {
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<meta charset="UTF-8" />
|
|
4
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
5
|
+
<style>
|
|
6
|
+
body {
|
|
7
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
justify-content: center;
|
|
11
|
+
height: 100vh;
|
|
12
|
+
margin: 0;
|
|
13
|
+
background: #f5f5f5;
|
|
14
|
+
}
|
|
15
|
+
.card {
|
|
16
|
+
background: white;
|
|
17
|
+
padding: 40px;
|
|
18
|
+
border-radius: 12px;
|
|
19
|
+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
20
|
+
text-align: center;
|
|
21
|
+
max-width: 500px;
|
|
22
|
+
}
|
|
23
|
+
h1 {
|
|
24
|
+
margin-top: 0;
|
|
25
|
+
}
|
|
26
|
+
h1.ok {
|
|
27
|
+
color: #16a34a;
|
|
28
|
+
}
|
|
29
|
+
h1.error {
|
|
30
|
+
color: #dc2626;
|
|
31
|
+
}
|
|
32
|
+
.meta {
|
|
33
|
+
color: #666;
|
|
34
|
+
font-size: 14px;
|
|
35
|
+
margin-top: 20px;
|
|
36
|
+
}
|
|
37
|
+
.close {
|
|
38
|
+
margin-top: 20px;
|
|
39
|
+
padding: 10px 20px;
|
|
40
|
+
background: #2563eb;
|
|
41
|
+
color: white;
|
|
42
|
+
border: none;
|
|
43
|
+
border-radius: 6px;
|
|
44
|
+
cursor: pointer;
|
|
45
|
+
}
|
|
46
|
+
.error {
|
|
47
|
+
color: #666;
|
|
48
|
+
font-size: 14px;
|
|
49
|
+
}
|
|
50
|
+
</style>
|
|
51
|
+
</head>
|
|
52
|
+
<body>
|
|
53
|
+
<div class="card">
|
|
54
|
+
<% if (ok) { %>
|
|
55
|
+
<h1 class="ok">✓ Linked Successfully!</h1>
|
|
56
|
+
<p>Pinokio is now connected to the registry.</p>
|
|
57
|
+
<p>You can now back up checkpoints to the registry.</p>
|
|
58
|
+
<div class="meta">Registry: <strong><%= registryUrl %></strong></div>
|
|
59
|
+
<button class="close" onclick="window.close()">Close</button>
|
|
60
|
+
<script>
|
|
61
|
+
setTimeout(() => window.close(), 5000);
|
|
62
|
+
</script>
|
|
63
|
+
<% } else { %>
|
|
64
|
+
<h1 class="error">❌ Linking Failed</h1>
|
|
65
|
+
<% if (message) { %>
|
|
66
|
+
<p class="error"><%= message %></p>
|
|
67
|
+
<% } %>
|
|
68
|
+
<% if (registryUrl) { %>
|
|
69
|
+
<p class="error">Registry: <%= registryUrl %></p>
|
|
70
|
+
<% } %>
|
|
71
|
+
<a href="/">Go back to Pinokio</a>
|
|
72
|
+
<% } %>
|
|
73
|
+
</div>
|
|
74
|
+
</body>
|
|
75
|
+
</html>
|
|
76
|
+
|
package/server/views/rows.ejs
CHANGED
|
@@ -62,9 +62,9 @@ body[data-agent='electron'] {
|
|
|
62
62
|
<script src="/window_storage.js"></script>
|
|
63
63
|
</head>
|
|
64
64
|
<body class='<%=theme%>' data-agent="<%=agent%>">
|
|
65
|
-
<iframe id='row0' data-src="<%= originSrc || '/' %>"></iframe>
|
|
65
|
+
<iframe id='row0' data-src="<%= originSrc || '/home' %>"></iframe>
|
|
66
66
|
<div id="gutter" class="gutter" tabindex="0" role="separator" aria-orientation="horizontal" aria-label="Resize panels" aria-valuemin="120" aria-valuemax="0" aria-valuenow="0"></div>
|
|
67
|
-
<iframe id='row1' data-src="<%= targetSrc || originSrc || '/' %>"></iframe>
|
|
67
|
+
<iframe id='row1' data-src="<%= targetSrc || originSrc || '/home' %>"></iframe>
|
|
68
68
|
|
|
69
69
|
<script>
|
|
70
70
|
if (window !== window.top) {
|
|
@@ -208,7 +208,7 @@ body[data-agent='electron'] {
|
|
|
208
208
|
}, "*")
|
|
209
209
|
} else {
|
|
210
210
|
// if this is the top window, everything has been removed, so just redirect to home
|
|
211
|
-
location.href = "/"
|
|
211
|
+
location.href = "/home"
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
}
|
|
@@ -337,7 +337,7 @@ body[data-agent='electron'] {
|
|
|
337
337
|
|
|
338
338
|
if (!sourceFrameId) {
|
|
339
339
|
windowStorage.removeItem(splitKey)
|
|
340
|
-
location.href = "/"
|
|
340
|
+
location.href = "/home"
|
|
341
341
|
return
|
|
342
342
|
}
|
|
343
343
|
|
|
@@ -804,6 +804,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
804
804
|
<a href="/connect" class='tab'><i class="fa-solid fa-plug"></i><div class='caption'>Login</div></a>
|
|
805
805
|
<a class='tab' href="<%=portal%>" target="_blank"><i class="fa-solid fa-question"></i><div class='caption'>Help</div></a>
|
|
806
806
|
<a class='tab' id='genlog' href="/logs"><i class="fa-solid fa-laptop-code"></i><div class='caption'>Logs</div></a>
|
|
807
|
+
<a class='tab' href="/checkpoints"><i class="fa-solid fa-clock-rotate-left"></i><div class='caption'>Checkpoints</div></a>
|
|
807
808
|
<a class='tab selected' href="/screenshots"><i class="fa-solid fa-camera"></i><div class='caption'>Screenshots</div></a>
|
|
808
809
|
<a class='tab' href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Installed Tools</div></a>
|
|
809
810
|
<a class='tab' href="/agents"><i class="fa-solid fa-robot"></i><div class='caption'>Agents</div></a>
|
|
@@ -639,6 +639,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
|
|
639
639
|
<a href="/connect" class='tab'><i class="fa-solid fa-plug"></i><div class='caption'>Login</div></a>
|
|
640
640
|
<a class='tab' href="<%=portal%>" target="_blank"><i class="fa-solid fa-question"></i><div class='caption'>Help</div></a>
|
|
641
641
|
<a class='tab' id='genlog' href="/logs"><i class="fa-solid fa-laptop-code"></i><div class='caption'>Logs</div></a>
|
|
642
|
+
<a class='tab' href="/checkpoints"><i class="fa-solid fa-clock-rotate-left"></i><div class='caption'>Checkpoints</div></a>
|
|
642
643
|
<a class='tab' href="/screenshots"><i class="fa-solid fa-camera"></i><div class='caption'>Screenshots</div></a>
|
|
643
644
|
<a class='tab' href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Installed Tools</div></a>
|
|
644
645
|
<a class='tab' href="/agents"><i class="fa-solid fa-robot"></i><div class='caption'>Agents</div></a>
|
package/server/views/shell.ejs
CHANGED
|
@@ -432,10 +432,9 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
432
432
|
})
|
|
433
433
|
})
|
|
434
434
|
}
|
|
435
|
-
start(mode) {
|
|
436
|
-
return new Promise(async (resolve, reject) => {
|
|
435
|
+
async start(mode) {
|
|
437
436
|
// await this.save()
|
|
438
|
-
|
|
437
|
+
this.socket.close()
|
|
439
438
|
|
|
440
439
|
let query = Object.fromEntries(new URLSearchParams(location.search))
|
|
441
440
|
let firstPacketReceived = false
|
|
@@ -871,7 +870,6 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
871
870
|
<% } %>
|
|
872
871
|
<% } %>
|
|
873
872
|
})
|
|
874
|
-
})
|
|
875
873
|
}
|
|
876
874
|
async run (mode) {
|
|
877
875
|
this.mode = (mode ? mode : "run")
|
|
@@ -1192,8 +1190,8 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
1192
1190
|
|
|
1193
1191
|
let config = {
|
|
1194
1192
|
scrollback: 9999999,
|
|
1195
|
-
|
|
1196
|
-
|
|
1193
|
+
fontSize: 14,
|
|
1194
|
+
fontFamily: 'monospace',
|
|
1197
1195
|
theme,
|
|
1198
1196
|
//theme: xtermTheme.FrontEndDelight
|
|
1199
1197
|
//theme: xtermTheme.Afterglow
|