pinokiod 7.3.8 → 7.3.10
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/package.json +1 -1
- package/server/public/common.js +7 -17
- package/server/public/nav.js +3 -1
- package/server/public/style.css +23 -10
- package/server/public/task-launcher.css +94 -40
- package/server/public/terminal-settings.js +107 -24
- package/server/views/app.ejs +125 -46
- package/server/views/index.ejs +12 -7
- package/server/views/install.ejs +15 -46
- package/server/views/layout.ejs +1 -2
- package/server/views/logs.ejs +1 -1
- package/server/views/partials/main_sidebar.ejs +12 -12
- package/server/views/terminal.ejs +143 -62
package/server/views/app.ejs
CHANGED
|
@@ -96,6 +96,48 @@ body.app-page header.navheader h1 > .flexible {
|
|
|
96
96
|
flex: 0 0 0;
|
|
97
97
|
min-width: 0;
|
|
98
98
|
}
|
|
99
|
+
body.app-page header.navheader .nav-labeled-action {
|
|
100
|
+
width: auto;
|
|
101
|
+
min-width: 0;
|
|
102
|
+
height: 28px;
|
|
103
|
+
flex: 0 0 auto;
|
|
104
|
+
flex-direction: row;
|
|
105
|
+
align-items: center;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
gap: 6px;
|
|
108
|
+
padding: 0 10px;
|
|
109
|
+
border-radius: 6px;
|
|
110
|
+
white-space: nowrap;
|
|
111
|
+
line-height: 1;
|
|
112
|
+
text-transform: none;
|
|
113
|
+
}
|
|
114
|
+
body.app-page header.navheader .nav-labeled-action i {
|
|
115
|
+
margin: 0;
|
|
116
|
+
padding: 0;
|
|
117
|
+
font-size: 13px;
|
|
118
|
+
line-height: 1;
|
|
119
|
+
}
|
|
120
|
+
body.app-page .ask-ai-brand-icon {
|
|
121
|
+
display: inline-flex;
|
|
122
|
+
width: 14px;
|
|
123
|
+
height: 14px;
|
|
124
|
+
flex: 0 0 14px;
|
|
125
|
+
background: currentColor;
|
|
126
|
+
-webkit-mask: url('/pinokio-mark.svg') center / contain no-repeat;
|
|
127
|
+
mask: url('/pinokio-mark.svg') center / contain no-repeat;
|
|
128
|
+
}
|
|
129
|
+
body.app-page header.navheader .nav-labeled-action .nav-action-label {
|
|
130
|
+
display: inline-block;
|
|
131
|
+
font-size: 12px;
|
|
132
|
+
line-height: 1;
|
|
133
|
+
font-weight: 500;
|
|
134
|
+
}
|
|
135
|
+
body.app-page header.navheader .nav-labeled-action.selected,
|
|
136
|
+
body.app-page header.navheader .nav-labeled-action:hover,
|
|
137
|
+
body.app-page header.navheader .nav-labeled-action:focus-visible {
|
|
138
|
+
background: var(--pinokio-sidebar-tab-active-bg);
|
|
139
|
+
color: var(--pinokio-sidebar-tab-active-color);
|
|
140
|
+
}
|
|
99
141
|
.resource-usage {
|
|
100
142
|
position: relative;
|
|
101
143
|
flex: 0 0 auto;
|
|
@@ -1333,6 +1375,15 @@ body.dark .ask-ai-drawer-empty {
|
|
|
1333
1375
|
body.dark .ask-ai-drawer-empty-title {
|
|
1334
1376
|
color: rgba(248, 250, 252, 0.95);
|
|
1335
1377
|
}
|
|
1378
|
+
.ask-ai-drawer-empty-subtitle {
|
|
1379
|
+
font-size: 12px;
|
|
1380
|
+
line-height: 1.4;
|
|
1381
|
+
margin-top: -6px;
|
|
1382
|
+
color: rgba(75, 85, 99, 0.78);
|
|
1383
|
+
}
|
|
1384
|
+
body.dark .ask-ai-drawer-empty-subtitle {
|
|
1385
|
+
color: rgba(209, 213, 219, 0.68);
|
|
1386
|
+
}
|
|
1336
1387
|
.ask-ai-drawer-search {
|
|
1337
1388
|
display: flex;
|
|
1338
1389
|
align-items: center;
|
|
@@ -6233,7 +6284,8 @@ header.navheader h1 {
|
|
|
6233
6284
|
color: #64748b;
|
|
6234
6285
|
text-decoration: none;
|
|
6235
6286
|
}
|
|
6236
|
-
.mobile-bottom-nav__button i
|
|
6287
|
+
.mobile-bottom-nav__button i,
|
|
6288
|
+
.mobile-bottom-nav__button .ask-ai-brand-icon {
|
|
6237
6289
|
font-size: 14px;
|
|
6238
6290
|
}
|
|
6239
6291
|
.mobile-bottom-nav__button.selected {
|
|
@@ -6703,8 +6755,10 @@ header.navheader h1 {
|
|
|
6703
6755
|
<button class='btn2' id='back' data-tippy-content="back"><div><i class="fa-solid fa-chevron-left"></i></div></button>
|
|
6704
6756
|
<button class='btn2' id='forward' data-tippy-content="forward"><div><i class="fa-solid fa-chevron-right"></i></div></button>
|
|
6705
6757
|
<button class='btn2' id='refresh-page' data-tippy-content="refresh"><div><i class="fa-solid fa-rotate-right"></i></div></button>
|
|
6758
|
+
<!-- Screen capture and X-ray mode are hidden for now.
|
|
6706
6759
|
<button class='btn2' id='screenshot' data-tippy-content="screen capture"><i class="fa-solid fa-camera"></i></button>
|
|
6707
6760
|
<button class='btn2' id='inspector' data-tippy-content="X-ray mode"><i class="fa-solid fa-eye"></i></button>
|
|
6761
|
+
-->
|
|
6708
6762
|
<button class='btn2' id='menu-mobile' data-tippy-content="Tabs">
|
|
6709
6763
|
<div><i class="fa-solid fa-list"></i></div>
|
|
6710
6764
|
</button>
|
|
@@ -6748,6 +6802,36 @@ header.navheader h1 {
|
|
|
6748
6802
|
</button>
|
|
6749
6803
|
<% } %>
|
|
6750
6804
|
<div class='flexible'></div>
|
|
6805
|
+
<% if (type === 'run') { %>
|
|
6806
|
+
<button
|
|
6807
|
+
type='button'
|
|
6808
|
+
id='ask-ai-tab'
|
|
6809
|
+
class="btn2 nav-labeled-action"
|
|
6810
|
+
data-static="ask-ai"
|
|
6811
|
+
data-workspace="<%=name%>"
|
|
6812
|
+
data-workspace-cwd="<%=path%>"
|
|
6813
|
+
data-ask-ai-trigger="true"
|
|
6814
|
+
data-tippy-content="Ask AI"
|
|
6815
|
+
aria-label="Ask AI"
|
|
6816
|
+
aria-expanded="false"
|
|
6817
|
+
aria-controls="ask-ai-drawer">
|
|
6818
|
+
<span class="ask-ai-brand-icon" aria-hidden="true"></span>
|
|
6819
|
+
<span class="nav-action-label">Ask AI</span>
|
|
6820
|
+
</button>
|
|
6821
|
+
<% } %>
|
|
6822
|
+
<% if (registryEnabled) { %>
|
|
6823
|
+
<button
|
|
6824
|
+
type='button'
|
|
6825
|
+
id='community-toggle'
|
|
6826
|
+
class="btn2 nav-labeled-action"
|
|
6827
|
+
data-tippy-content="Project feed"
|
|
6828
|
+
aria-label="Project feed"
|
|
6829
|
+
aria-expanded="false"
|
|
6830
|
+
aria-controls="community-drawer">
|
|
6831
|
+
<i class="fa-solid fa-rss" aria-hidden="true"></i>
|
|
6832
|
+
<span class="nav-action-label">Feed</span>
|
|
6833
|
+
</button>
|
|
6834
|
+
<% } %>
|
|
6751
6835
|
<a class='btn2' href="/columns" data-tippy-content="split into 2 columns">
|
|
6752
6836
|
<div><i class="fa-solid fa-table-columns"></i></div>
|
|
6753
6837
|
</a>
|
|
@@ -6860,15 +6944,6 @@ header.navheader h1 {
|
|
|
6860
6944
|
<% if (type === 'browse') { %>
|
|
6861
6945
|
<%- include('./partials/fs_status') %>
|
|
6862
6946
|
<% } %>
|
|
6863
|
-
<% if (type === 'run') { %>
|
|
6864
|
-
<button type='button' id='ask-ai-tab' class="btn header-item" data-static="ask-ai" data-workspace="<%=name%>" data-workspace-cwd="<%=path%>" data-ask-ai-trigger="true" data-tippy-content="Ask AI">
|
|
6865
|
-
<div class='tab'>
|
|
6866
|
-
<span class="menu-action-leading-icon ask-ai-brand-icon" aria-hidden="true"></span>
|
|
6867
|
-
<div class='display'>Ask AI</div>
|
|
6868
|
-
<div class='flexible'></div>
|
|
6869
|
-
</div>
|
|
6870
|
-
</button>
|
|
6871
|
-
<% } %>
|
|
6872
6947
|
<button type='button' id='logs-toggle' class="btn header-item" data-tippy-content="logs" aria-expanded="false" aria-controls="app-logs-drawer">
|
|
6873
6948
|
<div class='tab'>
|
|
6874
6949
|
<i class="fa-solid fa-laptop-code menu-action-leading-icon"></i>
|
|
@@ -6877,15 +6952,6 @@ header.navheader h1 {
|
|
|
6877
6952
|
<span class='logs-new-badge hidden' id='logs-new-badge'>New</span>
|
|
6878
6953
|
</div>
|
|
6879
6954
|
</button>
|
|
6880
|
-
<% if (registryEnabled) { %>
|
|
6881
|
-
<button type='button' id='community-toggle' class="btn header-item" data-tippy-content="community">
|
|
6882
|
-
<div class='tab'>
|
|
6883
|
-
<i class="fa-solid fa-globe menu-action-leading-icon"></i>
|
|
6884
|
-
<div class='display'>Community</div>
|
|
6885
|
-
<div class='flexible'></div>
|
|
6886
|
-
</div>
|
|
6887
|
-
</button>
|
|
6888
|
-
<% } %>
|
|
6889
6955
|
<button type='button' id='sidebar-open-explorer' class="btn header-item" data-filepath="<%=path%>" data-tippy-content="Open in File Explorer">
|
|
6890
6956
|
<div class='tab'>
|
|
6891
6957
|
<i class="fa-solid fa-folder-open menu-action-leading-icon"></i>
|
|
@@ -6896,20 +6962,20 @@ header.navheader h1 {
|
|
|
6896
6962
|
<% if (typeof autolaunch_app !== 'undefined' && autolaunch_app) { %>
|
|
6897
6963
|
<div class="app-autolaunch" data-app-autolaunch data-app-id="<%=name%>">
|
|
6898
6964
|
<button type="button" class="app-autolaunch-row" data-app-autolaunch-button data-enabled="<%= autolaunch_app.autolaunch_enabled ? 'true' : 'false' %>" aria-haspopup="dialog" aria-expanded="false">
|
|
6899
|
-
<span class="app-autolaunch-label"><i class="fa-solid fa-power-off"></i><span>
|
|
6965
|
+
<span class="app-autolaunch-label"><i class="fa-solid fa-power-off"></i><span>Autolaunch</span></span>
|
|
6900
6966
|
<span class="app-autolaunch-spacer" aria-hidden="true"></span>
|
|
6901
6967
|
<span class="app-autolaunch-status" data-app-autolaunch-status><%= autolaunch_app.autolaunch_enabled ? 'ON' : 'OFF' %></span>
|
|
6902
6968
|
<i class="fa-solid fa-angle-down app-autolaunch-chevron" aria-hidden="true"></i>
|
|
6903
6969
|
</button>
|
|
6904
|
-
<div class="app-autolaunch-modal hidden" data-app-autolaunch-modal role="dialog" aria-modal="true" aria-label="
|
|
6970
|
+
<div class="app-autolaunch-modal hidden" data-app-autolaunch-modal role="dialog" aria-modal="true" aria-label="Autolaunch">
|
|
6905
6971
|
<div class="app-autolaunch-panel" data-app-autolaunch-panel>
|
|
6906
6972
|
<div class="app-autolaunch-modal-head">
|
|
6907
6973
|
<div>
|
|
6908
|
-
<div class="app-autolaunch-title">
|
|
6974
|
+
<div class="app-autolaunch-title">Autolaunch</div>
|
|
6909
6975
|
<div class="app-autolaunch-note">Run this app when Pinokio starts.</div>
|
|
6910
6976
|
</div>
|
|
6911
6977
|
<div class="app-autolaunch-modal-actions">
|
|
6912
|
-
<button type="button" class="app-autolaunch-switch" role="switch" aria-checked="<%= autolaunch_app.autolaunch_enabled ? 'true' : 'false' %>" data-app-autolaunch-switch aria-label="
|
|
6978
|
+
<button type="button" class="app-autolaunch-switch" role="switch" aria-checked="<%= autolaunch_app.autolaunch_enabled ? 'true' : 'false' %>" data-app-autolaunch-switch aria-label="Autolaunch" title="Autolaunch is <%= autolaunch_app.autolaunch_enabled ? 'on' : 'off' %>">
|
|
6913
6979
|
<span class="app-autolaunch-switch-label" data-app-autolaunch-switch-label><%= autolaunch_app.autolaunch_enabled ? 'ON' : 'OFF' %></span>
|
|
6914
6980
|
<span class="app-autolaunch-switch-thumb" aria-hidden="true"></span>
|
|
6915
6981
|
</button>
|
|
@@ -7012,7 +7078,7 @@ header.navheader h1 {
|
|
|
7012
7078
|
<div class='ask-ai-drawer-inner'>
|
|
7013
7079
|
<div class='ask-ai-drawer-bar'>
|
|
7014
7080
|
<div class='ask-ai-drawer-title'>
|
|
7015
|
-
<
|
|
7081
|
+
<span class="ask-ai-brand-icon" aria-hidden="true"></span>
|
|
7016
7082
|
<span>Ask AI</span>
|
|
7017
7083
|
</div>
|
|
7018
7084
|
<div class='ask-ai-drawer-actions'>
|
|
@@ -7034,11 +7100,12 @@ header.navheader h1 {
|
|
|
7034
7100
|
<div class='ask-ai-drawer-empty'>
|
|
7035
7101
|
<div class='ask-ai-drawer-search'>
|
|
7036
7102
|
<i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i>
|
|
7037
|
-
<input class='ask-ai-drawer-search-input' type='search' placeholder="
|
|
7103
|
+
<input class='ask-ai-drawer-search-input' type='search' placeholder="Search shells and plugins" autocomplete="off" spellcheck="false" aria-label="Search shells and plugins">
|
|
7038
7104
|
</div>
|
|
7039
|
-
<div class='ask-ai-drawer-empty-title'>
|
|
7040
|
-
<div class='ask-ai-drawer-
|
|
7041
|
-
<div class='ask-ai-drawer-picker-
|
|
7105
|
+
<div class='ask-ai-drawer-empty-title'>Ask an AI agent about this project</div>
|
|
7106
|
+
<div class='ask-ai-drawer-empty-subtitle'>Choose the shell or plugin the agent should use.</div>
|
|
7107
|
+
<div class='ask-ai-drawer-picker-list' role="list" aria-label="Ask AI shells and plugins"></div>
|
|
7108
|
+
<div class='ask-ai-drawer-picker-status muted'>Choose a shell or plugin to start an agent.</div>
|
|
7042
7109
|
</div>
|
|
7043
7110
|
<iframe class='ask-ai-frame hidden' title="Panel" allow="fullscreen *;" allowfullscreen></iframe>
|
|
7044
7111
|
</div>
|
|
@@ -7122,9 +7189,9 @@ header.navheader h1 {
|
|
|
7122
7189
|
<div class='community-drawer-inner'>
|
|
7123
7190
|
<div class='community-drawer-bar'>
|
|
7124
7191
|
<div class='community-drawer-title'>
|
|
7125
|
-
<button type="button" class="community-drawer-home" data-tippy-content="
|
|
7126
|
-
<i class="fa-solid fa-
|
|
7127
|
-
<span>
|
|
7192
|
+
<button type="button" class="community-drawer-home" data-tippy-content="Project feed" aria-label="Project feed">
|
|
7193
|
+
<i class="fa-solid fa-rss"></i>
|
|
7194
|
+
<span>Feed</span>
|
|
7128
7195
|
</button>
|
|
7129
7196
|
<span class='community-drawer-status' data-state="offline" data-tippy-content="Offline" aria-label="Offline" role="img"></span>
|
|
7130
7197
|
</div>
|
|
@@ -7135,7 +7202,7 @@ header.navheader h1 {
|
|
|
7135
7202
|
<button type='button' class='btn2 community-drawer-forward' disabled data-tippy-content="Forward" aria-label="Forward">
|
|
7136
7203
|
<i class="fa-solid fa-chevron-right"></i>
|
|
7137
7204
|
</button>
|
|
7138
|
-
<button type='button' class='btn2 community-drawer-refresh' disabled data-tippy-content="Refresh" aria-label="Refresh
|
|
7205
|
+
<button type='button' class='btn2 community-drawer-refresh' disabled data-tippy-content="Refresh" aria-label="Refresh feed">
|
|
7139
7206
|
<i class="fa-solid fa-rotate-right"></i>
|
|
7140
7207
|
</button>
|
|
7141
7208
|
<button type='button' class='btn2 community-drawer-toggle' data-tippy-content="Connect to Pinokio Network" aria-label="Connect to Pinokio Network">
|
|
@@ -7144,15 +7211,15 @@ header.navheader h1 {
|
|
|
7144
7211
|
<button type='button' class='btn2 community-drawer-expand' data-tippy-content="Expand panel" aria-label="Expand panel" aria-pressed="false">
|
|
7145
7212
|
<i class="fa-solid fa-expand"></i>
|
|
7146
7213
|
</button>
|
|
7147
|
-
<button type='button' class='btn2 community-drawer-close' data-tippy-content="Close panel" aria-label="Close
|
|
7214
|
+
<button type='button' class='btn2 community-drawer-close' data-tippy-content="Close panel" aria-label="Close feed panel">
|
|
7148
7215
|
<i class="fa-solid fa-xmark"></i>
|
|
7149
7216
|
</button>
|
|
7150
7217
|
</div>
|
|
7151
7218
|
</div>
|
|
7152
7219
|
<div class='community-drawer-location'>
|
|
7153
|
-
<input class='community-drawer-location-input' type='text' value="" readonly aria-label="
|
|
7220
|
+
<input class='community-drawer-location-input' type='text' value="" readonly aria-label="Feed URL">
|
|
7154
7221
|
<div class='community-drawer-location-overlay' aria-hidden="true"></div>
|
|
7155
|
-
<textarea class='community-drawer-location-textarea' rows="1" readonly aria-label="
|
|
7222
|
+
<textarea class='community-drawer-location-textarea' rows="1" readonly aria-label="Feed URL"></textarea>
|
|
7156
7223
|
</div>
|
|
7157
7224
|
<div class='community-drawer-body'>
|
|
7158
7225
|
<div class='community-drawer-empty'>
|
|
@@ -7160,12 +7227,12 @@ header.navheader h1 {
|
|
|
7160
7227
|
<div class='community-drawer-empty-icon'>
|
|
7161
7228
|
<i class="fa-solid fa-plug-circle-xmark" aria-hidden="true"></i>
|
|
7162
7229
|
</div>
|
|
7163
|
-
<div class='community-drawer-empty-title'>Load
|
|
7230
|
+
<div class='community-drawer-empty-title'>Load Feed</div>
|
|
7164
7231
|
</div>
|
|
7165
7232
|
<div class='community-drawer-empty-note muted'>Load https://pinokio.co in the panel (requires network)</div>
|
|
7166
7233
|
<button type='button' class='btn community-drawer-connect'>Load</button>
|
|
7167
7234
|
</div>
|
|
7168
|
-
<iframe class='community-frame hidden' title="
|
|
7235
|
+
<iframe class='community-frame hidden' title="Project feed" allow="fullscreen *;" allowfullscreen></iframe>
|
|
7169
7236
|
</div>
|
|
7170
7237
|
</div>
|
|
7171
7238
|
</aside>
|
|
@@ -7227,8 +7294,8 @@ header.navheader h1 {
|
|
|
7227
7294
|
</div>
|
|
7228
7295
|
</div>
|
|
7229
7296
|
<% if (registryEnabled) { %>
|
|
7230
|
-
<button type='button' class='btn2 mobile-bottom-nav__button mobile-nav-community' data-mobile-proxy="#community-mode-toggle" data-mobile-close-menu="true" aria-pressed="false" aria-label="
|
|
7231
|
-
<i class="fa-solid fa-
|
|
7297
|
+
<button type='button' class='btn2 mobile-bottom-nav__button mobile-nav-community' data-mobile-proxy="#community-mode-toggle" data-mobile-close-menu="true" aria-pressed="false" aria-label="Project feed">
|
|
7298
|
+
<i class="fa-solid fa-rss"></i>
|
|
7232
7299
|
</button>
|
|
7233
7300
|
<% } %>
|
|
7234
7301
|
<button type='button' class='btn2 mobile-bottom-nav__button mobile-nav-logs' data-mobile-proxy="#logs-toggle" data-mobile-close-menu="true" aria-pressed="false" aria-label="Logs">
|
|
@@ -7236,7 +7303,7 @@ header.navheader h1 {
|
|
|
7236
7303
|
</button>
|
|
7237
7304
|
<% if (type === 'run') { %>
|
|
7238
7305
|
<button type='button' class='btn2 mobile-bottom-nav__button mobile-nav-ask-ai' data-mobile-proxy="#ask-ai-tab" data-mobile-close-menu="true" aria-pressed="false" aria-label="Ask AI">
|
|
7239
|
-
<
|
|
7306
|
+
<span class="ask-ai-brand-icon" aria-hidden="true"></span>
|
|
7240
7307
|
</button>
|
|
7241
7308
|
<% } %>
|
|
7242
7309
|
</nav>
|
|
@@ -15016,7 +15083,9 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15016
15083
|
applyDrawerOpenState()
|
|
15017
15084
|
if (askAiTrigger) {
|
|
15018
15085
|
askAiTrigger.classList.remove("hidden")
|
|
15086
|
+
askAiTrigger.classList.toggle("selected", open)
|
|
15019
15087
|
askAiTrigger.setAttribute("aria-hidden", "false")
|
|
15088
|
+
askAiTrigger.setAttribute("aria-expanded", open ? "true" : "false")
|
|
15020
15089
|
}
|
|
15021
15090
|
drawer.setAttribute("aria-hidden", open ? "false" : "true")
|
|
15022
15091
|
if (resizer) {
|
|
@@ -15374,7 +15443,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15374
15443
|
clearPickerList()
|
|
15375
15444
|
const sourceTools = Array.isArray(tools) ? tools : []
|
|
15376
15445
|
if (sourceTools.length === 0) {
|
|
15377
|
-
setPickerStatus("No
|
|
15446
|
+
setPickerStatus("No shells or plugins available.")
|
|
15378
15447
|
return
|
|
15379
15448
|
}
|
|
15380
15449
|
const normalizedQuery = normalizePickerQuery(query)
|
|
@@ -15382,7 +15451,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15382
15451
|
? sourceTools.filter((tool) => toolMatchesPickerQuery(tool, normalizedQuery))
|
|
15383
15452
|
: sourceTools
|
|
15384
15453
|
if (visibleTools.length === 0) {
|
|
15385
|
-
setPickerStatus("No
|
|
15454
|
+
setPickerStatus("No matching shells or plugins.")
|
|
15386
15455
|
return
|
|
15387
15456
|
}
|
|
15388
15457
|
const groups = new Map()
|
|
@@ -15424,7 +15493,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15424
15493
|
}
|
|
15425
15494
|
})
|
|
15426
15495
|
if (!renderedCount) {
|
|
15427
|
-
setPickerStatus("No
|
|
15496
|
+
setPickerStatus("No shells or plugins available.")
|
|
15428
15497
|
return
|
|
15429
15498
|
}
|
|
15430
15499
|
setPickerStatus("")
|
|
@@ -15480,7 +15549,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15480
15549
|
if (searchInput) {
|
|
15481
15550
|
searchInput.value = ""
|
|
15482
15551
|
}
|
|
15483
|
-
setPickerStatus("Loading
|
|
15552
|
+
setPickerStatus("Loading shells and plugins...")
|
|
15484
15553
|
getAskAiTools(workspaceCwd).then((tools) => {
|
|
15485
15554
|
if (requestId !== pickerRequestId) {
|
|
15486
15555
|
return
|
|
@@ -15770,7 +15839,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
15770
15839
|
setLocation("")
|
|
15771
15840
|
setActionState(false)
|
|
15772
15841
|
setEmptyState(true)
|
|
15773
|
-
setPickerStatus("
|
|
15842
|
+
setPickerStatus("Choose a shell or plugin to start an agent.")
|
|
15774
15843
|
setOpen(false)
|
|
15775
15844
|
window.PinokioAskAiDrawer = {
|
|
15776
15845
|
openWithAgent,
|
|
@@ -16362,6 +16431,16 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
16362
16431
|
if (toggle) {
|
|
16363
16432
|
toggle.addEventListener("click", (event) => {
|
|
16364
16433
|
event.preventDefault()
|
|
16434
|
+
if (
|
|
16435
|
+
window.PinokioIsLogsPageSelected &&
|
|
16436
|
+
typeof window.PinokioIsLogsPageSelected === "function" &&
|
|
16437
|
+
window.PinokioIsLogsPageSelected() &&
|
|
16438
|
+
window.PinokioCloseLogsPage &&
|
|
16439
|
+
typeof window.PinokioCloseLogsPage === "function"
|
|
16440
|
+
) {
|
|
16441
|
+
window.PinokioCloseLogsPage()
|
|
16442
|
+
return
|
|
16443
|
+
}
|
|
16365
16444
|
if (window.PinokioOpenLogsPage && typeof window.PinokioOpenLogsPage === "function") {
|
|
16366
16445
|
window.PinokioOpenLogsPage({ view: "latest" })
|
|
16367
16446
|
return
|
|
@@ -16804,7 +16883,7 @@ document.addEventListener("DOMContentLoaded", () => {
|
|
|
16804
16883
|
}
|
|
16805
16884
|
if (homeBtn) {
|
|
16806
16885
|
homeBtn.disabled = false
|
|
16807
|
-
setTooltip(homeBtn, "
|
|
16886
|
+
setTooltip(homeBtn, "Project feed")
|
|
16808
16887
|
}
|
|
16809
16888
|
setNavDisabled(false)
|
|
16810
16889
|
setToggleState(true)
|
package/server/views/index.ejs
CHANGED
|
@@ -509,9 +509,9 @@ aside .btn-tab .btn .caption {
|
|
|
509
509
|
position: relative;
|
|
510
510
|
align-items: center;
|
|
511
511
|
gap: 5px;
|
|
512
|
-
height:
|
|
513
|
-
min-height:
|
|
514
|
-
padding: 0
|
|
512
|
+
height: var(--home-filter-control-height);
|
|
513
|
+
min-height: var(--home-filter-control-height);
|
|
514
|
+
padding: 0 12px;
|
|
515
515
|
border: 1px solid var(--home-sort-border);
|
|
516
516
|
border-radius: 6px;
|
|
517
517
|
background: var(--home-sort-bg);
|
|
@@ -581,9 +581,12 @@ aside .btn-tab .btn .caption {
|
|
|
581
581
|
flex: 0 0 auto;
|
|
582
582
|
width: 132px;
|
|
583
583
|
min-width: 132px;
|
|
584
|
+
height: 100%;
|
|
584
585
|
}
|
|
585
586
|
|
|
586
587
|
.home-search-form .home-apps-sort .ts-wrapper.single .ts-control {
|
|
588
|
+
display: flex;
|
|
589
|
+
align-items: center;
|
|
587
590
|
border: 0;
|
|
588
591
|
outline: none;
|
|
589
592
|
background: transparent;
|
|
@@ -595,6 +598,7 @@ aside .btn-tab .btn .caption {
|
|
|
595
598
|
border-radius: 0;
|
|
596
599
|
cursor: pointer;
|
|
597
600
|
color: inherit;
|
|
601
|
+
height: 100%;
|
|
598
602
|
}
|
|
599
603
|
|
|
600
604
|
.home-search-form .home-apps-sort .ts-control > .item {
|
|
@@ -704,6 +708,7 @@ body.dark .home-search-form .home-apps-sort .ts-dropdown [data-selectable].optio
|
|
|
704
708
|
color: var(--home-sort-option-hover-text);
|
|
705
709
|
}
|
|
706
710
|
.home-search-form {
|
|
711
|
+
--home-filter-control-height: 40px;
|
|
707
712
|
align-items: center;
|
|
708
713
|
gap: 8px;
|
|
709
714
|
}
|
|
@@ -731,11 +736,11 @@ body.dark .home-search-form {
|
|
|
731
736
|
border-bottom-color: rgba(148, 163, 184, 0.22);
|
|
732
737
|
}
|
|
733
738
|
.home-search-form input[type='search'].flexible {
|
|
734
|
-
height:
|
|
735
|
-
min-height:
|
|
739
|
+
height: var(--home-filter-control-height);
|
|
740
|
+
min-height: var(--home-filter-control-height);
|
|
736
741
|
box-sizing: border-box;
|
|
737
|
-
padding: 0
|
|
738
|
-
border-radius:
|
|
742
|
+
padding: 0 12px;
|
|
743
|
+
border-radius: 6px;
|
|
739
744
|
font-size: 12px;
|
|
740
745
|
font-weight: 400;
|
|
741
746
|
line-height: 1;
|
package/server/views/install.ejs
CHANGED
|
@@ -348,25 +348,6 @@ body.dark {
|
|
|
348
348
|
[data-install-spinner-variant="binary-shuffle"] .install-status-grid-tile-4 {
|
|
349
349
|
animation: pinokio-binary-shuffle-4 1.1s steps(1, end) infinite;
|
|
350
350
|
}
|
|
351
|
-
.install-loader-popup.swal2-popup.loader-popup {
|
|
352
|
-
background: var(--install-status-bg) !important;
|
|
353
|
-
color: var(--install-status-fg) !important;
|
|
354
|
-
border: 1px solid var(--install-status-border) !important;
|
|
355
|
-
border-radius: 999px !important;
|
|
356
|
-
box-shadow: none !important;
|
|
357
|
-
}
|
|
358
|
-
.install-loader-dialog.loader-dialog {
|
|
359
|
-
padding: 0 !important;
|
|
360
|
-
}
|
|
361
|
-
.install-loader-shell {
|
|
362
|
-
display: inline-flex;
|
|
363
|
-
align-items: center;
|
|
364
|
-
gap: 10px;
|
|
365
|
-
color: var(--install-status-fg);
|
|
366
|
-
font-size: 13px;
|
|
367
|
-
font-weight: 700;
|
|
368
|
-
letter-spacing: 0.01em;
|
|
369
|
-
}
|
|
370
351
|
@keyframes pinokio-grid-shift-1 {
|
|
371
352
|
0%, 100% { transform: translate(0, 0); }
|
|
372
353
|
25% { transform: translate(11px, 0); }
|
|
@@ -641,13 +622,17 @@ const setInstallStatus = (html) => {
|
|
|
641
622
|
}
|
|
642
623
|
statusScreen.innerHTML = normalizeInstallStatusHtml(html)
|
|
643
624
|
}
|
|
644
|
-
const
|
|
645
|
-
|
|
646
|
-
|
|
625
|
+
const setRestartStatus = () => {
|
|
626
|
+
applyInstallSpinnerVariant("corner-chase")
|
|
627
|
+
setInstallStatus(`
|
|
628
|
+
<div class="install-status-shell">
|
|
647
629
|
${INSTALL_STATUS_SPINNER_HTML}
|
|
648
|
-
<
|
|
649
|
-
|
|
650
|
-
|
|
630
|
+
<div class="install-status-copy">
|
|
631
|
+
<div class="install-status-title">Restarting Pinokio...</div>
|
|
632
|
+
<div class="install-status-detail">Applying the updated system tools. Pinokio will continue automatically.</div>
|
|
633
|
+
</div>
|
|
634
|
+
</div>
|
|
635
|
+
`)
|
|
651
636
|
}
|
|
652
637
|
const createTerm = async (_theme) => {
|
|
653
638
|
//const theme = Object.assign({ }, xtermTheme.Terminal_Basic, {
|
|
@@ -844,36 +829,20 @@ document.addEventListener("DOMContentLoaded", async () => {
|
|
|
844
829
|
}
|
|
845
830
|
})
|
|
846
831
|
})
|
|
847
|
-
|
|
848
|
-
start: (msg) => {
|
|
849
|
-
Swal.fire({
|
|
850
|
-
html: renderInstallLoader(msg),
|
|
851
|
-
customClass: {
|
|
852
|
-
container: "loader-container",
|
|
853
|
-
popup: "loader-popup install-loader-popup",
|
|
854
|
-
htmlContainer: "loader-dialog install-loader-dialog",
|
|
855
|
-
footer: "hidden",
|
|
856
|
-
actions: "hidden"
|
|
857
|
-
}
|
|
858
|
-
});
|
|
859
|
-
},
|
|
860
|
-
end: () => {
|
|
861
|
-
Swal.close()
|
|
862
|
-
}
|
|
863
|
-
}
|
|
864
|
-
LoadingDialog.start("Restarting...")
|
|
832
|
+
setRestartStatus()
|
|
865
833
|
fetch("/restart", {
|
|
866
834
|
method: "post"
|
|
867
|
-
}
|
|
835
|
+
}).catch((error) => {
|
|
836
|
+
console.warn("restart request ended early", error)
|
|
868
837
|
})
|
|
869
|
-
setInterval(async () => {
|
|
838
|
+
const restartPoll = setInterval(async () => {
|
|
870
839
|
try {
|
|
871
840
|
let res = await fetch("/bin_ready").then((res) => {
|
|
872
841
|
return res.json()
|
|
873
842
|
})
|
|
874
843
|
if (res.success) {
|
|
875
844
|
//location.href = location.href
|
|
876
|
-
|
|
845
|
+
clearInterval(restartPoll)
|
|
877
846
|
location.href = document.querySelector("#callback").value
|
|
878
847
|
}
|
|
879
848
|
} catch (e) {
|
package/server/views/layout.ejs
CHANGED
|
@@ -36,11 +36,9 @@
|
|
|
36
36
|
width: 100%;
|
|
37
37
|
box-sizing: border-box;
|
|
38
38
|
background: var(--layout-dragger-bg);
|
|
39
|
-
border-bottom: 1px solid var(--layout-dragger-border);
|
|
40
39
|
}
|
|
41
40
|
body.dark > #dragger {
|
|
42
41
|
background: var(--layout-dragger-bg);
|
|
43
|
-
border-bottom-color: var(--layout-dragger-border);
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
body[data-agent="electron"] {
|
|
@@ -53,6 +51,7 @@
|
|
|
53
51
|
|
|
54
52
|
body.dark {
|
|
55
53
|
--layout-background: #1b1c1d;
|
|
54
|
+
--layout-dragger-bg: var(--layout-background);
|
|
56
55
|
--layout-gutter-bg: rgba(255, 255, 255, 0.04);
|
|
57
56
|
--layout-dragger-border: rgba(255, 255, 255, 0.055);
|
|
58
57
|
/*
|
package/server/views/logs.ejs
CHANGED
|
@@ -29,31 +29,31 @@
|
|
|
29
29
|
|
|
30
30
|
<div class='main-sidebar-section' aria-label="Computer">
|
|
31
31
|
<div class="main-sidebar-section-title">Computer</div>
|
|
32
|
-
<a href="/home" class="tab <%= sidebarSelected === 'home' ? 'selected' : '' %>"
|
|
33
|
-
<a href="/network" class="tab <%= sidebarSelected === 'network' ? 'selected' : '' %>"
|
|
32
|
+
<a href="/home" class="tab <%= sidebarSelected === 'home' ? 'selected' : '' %>"><i class='fas fa-laptop-code'></i><div class='caption'>This machine</div></a>
|
|
33
|
+
<a href="/network" class="tab <%= sidebarSelected === 'network' ? 'selected' : '' %>"><i class="fa-solid fa-wifi"></i><div class='caption'>Local network</div></a>
|
|
34
34
|
<% if (sidebarList.length > 0) { %>
|
|
35
35
|
<% sidebarList.forEach(({ host, name, platform }) => { %>
|
|
36
36
|
<% const selectedNet = sidebarSelectedNetName && String(name || "") === sidebarSelectedNetName; %>
|
|
37
|
-
<a href="/net/<%=name%>" class="submenu tab <%= selectedNet ? 'selected' : '' %>"
|
|
37
|
+
<a href="/net/<%=name%>" class="submenu tab <%= selectedNet ? 'selected' : '' %>"><i class="fa-brands fa-<%=brands[platform]%>"></i><div class='caption'><%=name%> (<%=sidebarCurrentHost === host ? 'this machine' : host%>)</div></a>
|
|
38
38
|
<% }) %>
|
|
39
39
|
<% } %>
|
|
40
40
|
</div>
|
|
41
41
|
|
|
42
42
|
<div class='main-sidebar-section' aria-label="Manage">
|
|
43
43
|
<div class="main-sidebar-section-title">Manage</div>
|
|
44
|
-
<a class="tab <%= sidebarSelected === 'checkpoints' ? 'selected' : '' %>" href="/checkpoints"
|
|
45
|
-
<a class="tab <%= sidebarSelected === 'tools' ? 'selected' : '' %>" href="/tools"
|
|
46
|
-
<a class="tab <%= sidebarSelected === 'plugins' ? 'selected' : '' %>" href="/plugins"
|
|
47
|
-
<a class="tab <%= sidebarSelected === 'tasks' ? 'selected' : '' %>" href="/tasks"
|
|
48
|
-
<a class="tab <%= sidebarSelected === 'skills' ? 'selected' : '' %>" href="/skills"
|
|
49
|
-
<a class="tab <%= sidebarSelected === 'logs' ? 'selected' : '' %>" id='genlog' href="/logs"
|
|
44
|
+
<a class="tab <%= sidebarSelected === 'checkpoints' ? 'selected' : '' %>" href="/checkpoints"><i class="fa-solid fa-clock-rotate-left"></i><div class='caption'>Checkpoints</div></a>
|
|
45
|
+
<a class="tab <%= sidebarSelected === 'tools' ? 'selected' : '' %>" href="/tools"><i class="fa-solid fa-toolbox"></i><div class='caption'>Tools</div></a>
|
|
46
|
+
<a class="tab <%= sidebarSelected === 'plugins' ? 'selected' : '' %>" href="/plugins"><i class="fa-solid fa-plug-circle-bolt"></i><div class='caption'>Plugins</div></a>
|
|
47
|
+
<a class="tab <%= sidebarSelected === 'tasks' ? 'selected' : '' %>" href="/tasks"><i class="fa-solid fa-list-check"></i><div class='caption'>Tasks</div></a>
|
|
48
|
+
<a class="tab <%= sidebarSelected === 'skills' ? 'selected' : '' %>" href="/skills"><i class="fa-solid fa-wand-magic-sparkles"></i><div class='caption'>Skills</div></a>
|
|
49
|
+
<a class="tab <%= sidebarSelected === 'logs' ? 'selected' : '' %>" id='genlog' href="/logs"><i class="fa-solid fa-laptop-code"></i><div class='caption'>Logs</div></a>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
<div class='main-sidebar-section' aria-label="Configure">
|
|
53
53
|
<div class="main-sidebar-section-title">Configure</div>
|
|
54
|
-
<a class="tab <%= sidebarSelected === 'autolaunch' ? 'selected' : '' %>" href="/autolaunch"
|
|
55
|
-
<a href="/connect" class="tab <%= sidebarSelected === 'connect' ? 'selected' : '' %>"
|
|
56
|
-
<a class="tab <%= sidebarSelected === 'settings' ? 'selected' : '' %>" href="/home?mode=settings"
|
|
54
|
+
<a class="tab <%= sidebarSelected === 'autolaunch' ? 'selected' : '' %>" href="/autolaunch"><i class="fa-solid fa-power-off"></i><div class='caption'>Autolaunch</div></a>
|
|
55
|
+
<a href="/connect" class="tab <%= sidebarSelected === 'connect' ? 'selected' : '' %>"><i class="fa-solid fa-plug"></i><div class='caption'>Login</div></a>
|
|
56
|
+
<a class="tab <%= sidebarSelected === 'settings' ? 'selected' : '' %>" href="/home?mode=settings"><i class="fa-solid fa-gear"></i><div class='caption'>Settings</div></a>
|
|
57
57
|
</div>
|
|
58
58
|
</nav>
|
|
59
59
|
|