farming-code 2.2.8 → 2.2.12
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/README.md +42 -28
- package/README.zh_cn.md +42 -28
- package/THIRD_PARTY_NOTICES.md +11 -2
- package/backend/acp-checkpoint-store.js +198 -0
- package/backend/acp-runtime.js +306 -83
- package/backend/acp-session-state.js +202 -6
- package/backend/acp-transcript.js +112 -0
- package/backend/agent-activity.js +6 -157
- package/backend/agent-manager.js +1592 -741
- package/backend/agent-provider-session.js +17 -242
- package/backend/agent-runtime-binding.js +219 -0
- package/backend/agent-session-history.js +66 -1
- package/backend/auth.js +79 -6
- package/backend/codex-models.js +81 -84
- package/backend/codex-session-archive.js +54 -0
- package/backend/codex-terminal-profile.js +500 -0
- package/backend/codex-transcript-sanitizer.js +12 -0
- package/backend/codex-transcript.js +230 -8
- package/backend/config-manager.js +35 -0
- package/backend/control-api.js +192 -17
- package/backend/executable-discovery.js +2 -0
- package/backend/farming-net-pass.js +285 -0
- package/backend/farming-net-registry.js +112 -0
- package/backend/farming-net-server.js +298 -0
- package/backend/farming-session-store.js +5 -13
- package/backend/git-worktree-info.js +181 -0
- package/backend/local-session-engine.js +411 -186
- package/backend/main-page-session.js +5 -2
- package/backend/native-pty-controller-generation.js +106 -0
- package/backend/native-pty-host-client.js +275 -7
- package/backend/native-pty-host-identity.js +86 -0
- package/backend/native-pty-host.js +813 -114
- package/backend/native-session-engine.js +100 -28
- package/backend/packaged-node-pty.js +22 -2
- package/backend/provider-adapters.js +253 -0
- package/backend/provider-session-service.js +241 -0
- package/backend/runtime-observation.js +81 -0
- package/backend/server.js +354 -84
- package/backend/session-engine-bridge.js +21 -2
- package/backend/session-engine-router.js +1 -1
- package/backend/session-engine.js +1 -1
- package/backend/session-stream-protocol.js +185 -0
- package/backend/storage-layout.js +55 -0
- package/backend/terminal-attach-checkpoint.js +74 -0
- package/backend/terminal-exit-quiescence.js +39 -0
- package/backend/terminal-reducer-flow-control.js +97 -0
- package/backend/terminal-screen-state.js +11 -2
- package/backend/terminal-screen-worker-pool.js +59 -6
- package/backend/terminal-screen-worker-thread.js +97 -57
- package/backend/terminal-screen-worker.js +133 -51
- package/backend/terminal-state-serialization.js +127 -0
- package/backend/terminal-status.js +23 -4
- package/backend/usage-monitor.js +176 -17
- package/backend/workspace-directory.js +232 -0
- package/backend/workspace-file-router.js +182 -76
- package/backend/workspace-file-service.js +319 -4
- package/backend/workspace-root-registry.js +164 -0
- package/dist/assets/App-DWsa7DXG.js +206 -0
- package/dist/assets/{FileEditorMarkdownPreview-elKWc8Im.js → FileEditorMarkdownPreview-UlVd0O4D.js} +92 -92
- package/dist/assets/FileEditorPane-Dxx4rKOg.js +2 -0
- package/dist/assets/IconGlyphs-AU22gPDY.js +1 -0
- package/dist/assets/ProjectFilesSection-DE7Nb9Jk.js +12 -0
- package/dist/assets/ReviewPage-CeDKDyZh.js +3 -0
- package/dist/assets/code-dark-DPiuyeSp.css +1 -0
- package/dist/assets/file-icons-Bw2qd5iT.js +1 -0
- package/dist/assets/{index-BrbljRqn.js → index-CUFPJoa5.js} +3 -3
- package/dist/assets/main-Bqtb5kuz.css +1 -0
- package/dist/assets/{monaco.contribution-CyLosfZI.js → monaco.contribution-BXz-lfFB.js} +2 -2
- package/dist/assets/{tsMode-DGZTlTj8.js → tsMode-B0oUTcXQ.js} +1 -1
- package/dist/assets/workspace-editor-model-BQol4qbA.js +1 -0
- package/dist/assets/workspace-editor-monaco-BICJESG0.js +4 -0
- package/dist/assets/workspace-editor-monaco-DRJ7IaXk.js +1 -0
- package/dist/assets/workspace-view-state-DvYG_9PH.js +7 -0
- package/dist/assets/workspace-working-copy-D8-s_Sgh.js +1 -0
- package/dist/farming-2/site.webmanifest +2 -0
- package/dist/index.html +1 -1
- package/frontend/farming-net/app.css +625 -0
- package/frontend/farming-net/app.js +268 -0
- package/frontend/farming-net/index.html +86 -0
- package/frontend/reading-anchor.js +198 -0
- package/frontend/session-bridge.js +12 -3
- package/frontend/session-modal-bridge.js +5 -12
- package/frontend/skins/crt/app.js +1978 -793
- package/frontend/skins/crt/index.html +313 -23
- package/frontend/skins/crt/styles/billing.css +294 -223
- package/frontend/skins/crt/styles/monochrome-green.css +7 -2
- package/frontend/terminal-replay.js +372 -0
- package/package.json +10 -3
- package/shared/browser-protocol.d.ts +5 -0
- package/shared/browser-protocol.js +130 -0
- package/dist/assets/App-8dYAM6ql.js +0 -124
- package/dist/assets/FileEditorPane-RWiFD2cq.js +0 -5
- package/dist/assets/IconGlyphs-DfL0EBnj.js +0 -1
- package/dist/assets/ProjectFilesSection-Q4PDsWmM.js +0 -12
- package/dist/assets/ReviewPage-BaXu1ZdX.js +0 -3
- package/dist/assets/code-dark-CDkOQAtK.css +0 -1
- package/dist/assets/file-icons-EFUGSSwf.js +0 -1
- package/dist/assets/main-D073SnW4.css +0 -1
- package/dist/assets/qoder-C9LmmOSf.svg +0 -1
- package/dist/assets/qoder-Cf9gl0Y5.svg +0 -1
- package/dist/assets/qoder-gHCinseV.svg +0 -1
- package/dist/assets/workspace-view-state-CTyDzk2D.js +0 -1
- package/dist/assets/zsh-CLpveKlF.svg +0 -1
- package/dist/assets/zsh-FxSpMPbz.svg +0 -1
- /package/dist/assets/{api-D1lyBYIQ.js → api-D8nyOEbz.js} +0 -0
- /package/dist/assets/{core-ZlAPicox.js → core-D0LFJkDt.js} +0 -0
- /package/dist/assets/{useWorkspaceMenuKeyboard-CneKAZUJ.js → useWorkspaceMenuKeyboard-Brws6Ar9.js} +0 -0
|
@@ -68,6 +68,12 @@
|
|
|
68
68
|
z-index: 1;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
.map-area.empty {
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
justify-content: center;
|
|
75
|
+
}
|
|
76
|
+
|
|
71
77
|
.map-area.hidden {
|
|
72
78
|
display: none;
|
|
73
79
|
}
|
|
@@ -157,10 +163,150 @@
|
|
|
157
163
|
white-space: pre;
|
|
158
164
|
}
|
|
159
165
|
|
|
160
|
-
.agent-
|
|
166
|
+
.agent-output.structured-preview {
|
|
167
|
+
color: inherit;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.agent-chat-preview {
|
|
171
|
+
position: absolute;
|
|
172
|
+
inset: 3px 0 0;
|
|
173
|
+
display: flex;
|
|
174
|
+
flex-direction: column;
|
|
175
|
+
justify-content: flex-end;
|
|
176
|
+
gap: 5px;
|
|
177
|
+
min-height: 0;
|
|
178
|
+
padding: 0 4px 2px 12px;
|
|
179
|
+
overflow: hidden;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.agent-chat-preview::before {
|
|
183
|
+
content: '';
|
|
184
|
+
position: absolute;
|
|
185
|
+
top: 18px;
|
|
186
|
+
bottom: 5px;
|
|
187
|
+
left: 4px;
|
|
188
|
+
width: 1px;
|
|
189
|
+
background: linear-gradient(to bottom, transparent, currentColor 18%, currentColor 82%, transparent);
|
|
190
|
+
opacity: 0.32;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.agent-chat-preview-meta {
|
|
194
|
+
display: flex;
|
|
195
|
+
align-items: center;
|
|
196
|
+
justify-content: space-between;
|
|
197
|
+
gap: 8px;
|
|
198
|
+
min-height: 11px;
|
|
199
|
+
font-size: 9px;
|
|
200
|
+
line-height: 1;
|
|
201
|
+
letter-spacing: 0.12em;
|
|
202
|
+
opacity: 0.62;
|
|
203
|
+
white-space: nowrap;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.agent-chat-preview-trail {
|
|
207
|
+
display: flex;
|
|
208
|
+
flex: 0 1 auto;
|
|
209
|
+
flex-direction: column;
|
|
210
|
+
justify-content: flex-end;
|
|
211
|
+
gap: 5px;
|
|
212
|
+
min-height: 0;
|
|
213
|
+
overflow: hidden;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.agent-chat-preview-state {
|
|
217
|
+
display: inline-flex;
|
|
218
|
+
align-items: center;
|
|
219
|
+
gap: 5px;
|
|
220
|
+
min-width: 0;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.agent-chat-preview-state i {
|
|
224
|
+
display: block;
|
|
225
|
+
width: 5px;
|
|
226
|
+
height: 5px;
|
|
227
|
+
flex: 0 0 auto;
|
|
228
|
+
border: 1px solid currentColor;
|
|
229
|
+
border-radius: 50%;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.agent-chat-preview.active .agent-chat-preview-state i {
|
|
233
|
+
background: currentColor;
|
|
234
|
+
box-shadow: 0 0 5px currentColor;
|
|
235
|
+
animation: crt-chat-signal 1.6s ease-in-out infinite;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.agent-chat-preview-line {
|
|
239
|
+
position: relative;
|
|
240
|
+
display: grid;
|
|
241
|
+
grid-template-columns: 40px minmax(0, 1fr);
|
|
242
|
+
gap: 6px;
|
|
243
|
+
flex: 0 0 auto;
|
|
244
|
+
min-width: 0;
|
|
245
|
+
font-size: 11px;
|
|
246
|
+
line-height: 1.28;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.agent-chat-preview-line::before {
|
|
250
|
+
content: '';
|
|
251
|
+
position: absolute;
|
|
252
|
+
top: 0.45em;
|
|
253
|
+
left: -10px;
|
|
254
|
+
width: 4px;
|
|
255
|
+
height: 4px;
|
|
256
|
+
border: 1px solid currentColor;
|
|
257
|
+
border-radius: 50%;
|
|
258
|
+
background: #0a0a0a;
|
|
259
|
+
box-shadow: 0 0 4px currentColor;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.agent-chat-preview-role {
|
|
263
|
+
padding-top: 1px;
|
|
264
|
+
font-size: 9px;
|
|
265
|
+
letter-spacing: 0.08em;
|
|
266
|
+
opacity: 0.56;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
.agent-chat-preview-text {
|
|
270
|
+
min-width: 0;
|
|
271
|
+
overflow: hidden;
|
|
272
|
+
overflow-wrap: anywhere;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
.agent-chat-preview-line.user .agent-chat-preview-text {
|
|
276
|
+
opacity: 0.74;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.agent-chat-preview-line.assistant .agent-chat-preview-text {
|
|
280
|
+
text-shadow: 0 0 6px currentColor;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.agent-chat-preview-line.activity {
|
|
284
|
+
opacity: 0.72;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.agent-chat-preview-line.activity .agent-chat-preview-text {
|
|
288
|
+
display: -webkit-box;
|
|
289
|
+
-webkit-box-orient: vertical;
|
|
290
|
+
-webkit-line-clamp: 1;
|
|
291
|
+
font-style: italic;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.agent-chat-preview-empty {
|
|
295
|
+
padding: 7px 0 3px;
|
|
296
|
+
font-size: 10px;
|
|
297
|
+
letter-spacing: 0.08em;
|
|
298
|
+
opacity: 0.58;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.agent-block.working .agent-output:not(.structured-preview) {
|
|
161
302
|
animation: blink 0.5s infinite;
|
|
162
303
|
}
|
|
163
304
|
|
|
305
|
+
@keyframes crt-chat-signal {
|
|
306
|
+
0%, 100% { opacity: 0.45; transform: scale(0.82); }
|
|
307
|
+
50% { opacity: 1; transform: scale(1); }
|
|
308
|
+
}
|
|
309
|
+
|
|
164
310
|
@keyframes blink {
|
|
165
311
|
0%, 100% { opacity: 1; }
|
|
166
312
|
50% { opacity: 0.8; }
|
|
@@ -825,6 +971,24 @@
|
|
|
825
971
|
margin-bottom: 20px;
|
|
826
972
|
}
|
|
827
973
|
|
|
974
|
+
.empty-state p {
|
|
975
|
+
margin-bottom: 16px;
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
.empty-start-agent {
|
|
979
|
+
padding: 8px 20px;
|
|
980
|
+
border: 1px solid #00ff00;
|
|
981
|
+
background: #1a1a1a;
|
|
982
|
+
color: #00ff00;
|
|
983
|
+
cursor: pointer;
|
|
984
|
+
font: inherit;
|
|
985
|
+
}
|
|
986
|
+
|
|
987
|
+
.empty-start-agent:hover,
|
|
988
|
+
.empty-start-agent:focus-visible {
|
|
989
|
+
background: #3a3a3a;
|
|
990
|
+
}
|
|
991
|
+
|
|
828
992
|
.modal.active {
|
|
829
993
|
z-index: 10001;
|
|
830
994
|
}
|
|
@@ -1104,6 +1268,105 @@
|
|
|
1104
1268
|
font-family: 'Courier New', monospace;
|
|
1105
1269
|
}
|
|
1106
1270
|
|
|
1271
|
+
.workspace-input:disabled {
|
|
1272
|
+
color: #7eaa7e;
|
|
1273
|
+
border-color: #316831;
|
|
1274
|
+
cursor: not-allowed;
|
|
1275
|
+
}
|
|
1276
|
+
|
|
1277
|
+
.workspace-directory-prompt {
|
|
1278
|
+
display: grid;
|
|
1279
|
+
grid-template-columns: 36px minmax(0, 1fr);
|
|
1280
|
+
gap: 10px 12px;
|
|
1281
|
+
margin-top: 12px;
|
|
1282
|
+
padding: 14px;
|
|
1283
|
+
border: 1px solid #2fdc2f;
|
|
1284
|
+
background: rgba(8, 16, 8, 0.96);
|
|
1285
|
+
box-shadow: inset 0 0 14px rgba(0, 255, 0, 0.04);
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
.workspace-directory-prompt[hidden] {
|
|
1289
|
+
display: none;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
.workspace-directory-prompt.error {
|
|
1293
|
+
border-color: #ff4d4d;
|
|
1294
|
+
background: rgba(35, 8, 8, 0.96);
|
|
1295
|
+
box-shadow: inset 0 0 14px rgba(255, 77, 77, 0.05);
|
|
1296
|
+
}
|
|
1297
|
+
|
|
1298
|
+
.workspace-directory-prompt-icon {
|
|
1299
|
+
color: #00ffff;
|
|
1300
|
+
font-size: 13px;
|
|
1301
|
+
font-weight: bold;
|
|
1302
|
+
line-height: 1.4;
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
.workspace-directory-prompt.error .workspace-directory-prompt-icon {
|
|
1306
|
+
color: #ff6b6b;
|
|
1307
|
+
}
|
|
1308
|
+
|
|
1309
|
+
.workspace-directory-prompt-copy {
|
|
1310
|
+
min-width: 0;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
.workspace-directory-prompt h4 {
|
|
1314
|
+
margin: 0 0 6px;
|
|
1315
|
+
color: #9dff97;
|
|
1316
|
+
font-size: 14px;
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
.workspace-directory-prompt.error h4 {
|
|
1320
|
+
color: #ff8585;
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
.workspace-directory-prompt p {
|
|
1324
|
+
margin: 0 0 10px;
|
|
1325
|
+
color: #9aaa9a;
|
|
1326
|
+
font-size: 12px;
|
|
1327
|
+
line-height: 1.45;
|
|
1328
|
+
}
|
|
1329
|
+
|
|
1330
|
+
.workspace-directory-prompt code {
|
|
1331
|
+
display: block;
|
|
1332
|
+
overflow: hidden;
|
|
1333
|
+
padding: 7px 9px;
|
|
1334
|
+
border: 1px solid #184d18;
|
|
1335
|
+
background: #050905;
|
|
1336
|
+
color: #87ff87;
|
|
1337
|
+
font-family: 'Courier New', monospace;
|
|
1338
|
+
font-size: 12px;
|
|
1339
|
+
text-overflow: ellipsis;
|
|
1340
|
+
white-space: nowrap;
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
.workspace-directory-prompt.error code {
|
|
1344
|
+
border-color: #673232;
|
|
1345
|
+
color: #ffaaaa;
|
|
1346
|
+
}
|
|
1347
|
+
|
|
1348
|
+
.workspace-directory-prompt-actions {
|
|
1349
|
+
grid-column: 2;
|
|
1350
|
+
display: flex;
|
|
1351
|
+
gap: 8px;
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
.input-dialog-content .workspace-directory-prompt-actions button {
|
|
1355
|
+
margin-right: 0;
|
|
1356
|
+
padding: 8px 12px;
|
|
1357
|
+
font-size: 12px;
|
|
1358
|
+
}
|
|
1359
|
+
|
|
1360
|
+
.input-dialog-content .workspace-directory-prompt-actions button.secondary {
|
|
1361
|
+
border: 1px solid #2d6b2d;
|
|
1362
|
+
background: transparent;
|
|
1363
|
+
color: #87ff87;
|
|
1364
|
+
}
|
|
1365
|
+
|
|
1366
|
+
.input-dialog-content .workspace-directory-prompt-actions button.secondary:hover {
|
|
1367
|
+
background: rgba(0, 255, 0, 0.08);
|
|
1368
|
+
}
|
|
1369
|
+
|
|
1107
1370
|
.workspace-history {
|
|
1108
1371
|
margin-top: 12px;
|
|
1109
1372
|
border: 1px solid #184d18;
|
|
@@ -1227,6 +1490,14 @@
|
|
|
1227
1490
|
<div class="empty-state" id="empty-state">
|
|
1228
1491
|
<h2>No Agents Running</h2>
|
|
1229
1492
|
<p>Press <strong>N</strong> to start a new agent</p>
|
|
1493
|
+
<button
|
|
1494
|
+
type="button"
|
|
1495
|
+
class="empty-start-agent"
|
|
1496
|
+
data-crt-nav-key="empty:new-agent"
|
|
1497
|
+
data-crt-nav-default="true"
|
|
1498
|
+
tabindex="-1"
|
|
1499
|
+
onclick="showInputDialog()"
|
|
1500
|
+
>[N] New Agent</button>
|
|
1230
1501
|
</div>
|
|
1231
1502
|
</div>
|
|
1232
1503
|
|
|
@@ -1299,31 +1570,27 @@
|
|
|
1299
1570
|
|
|
1300
1571
|
<section class="billing-panel billing-daily-chart-panel" aria-label="Daily processed token history">
|
|
1301
1572
|
<div class="billing-panel-heading">
|
|
1302
|
-
<h3>
|
|
1573
|
+
<h3>TOKEN ACTIVITY // 52 WEEKS</h3>
|
|
1303
1574
|
<span id="billing-peak-day">PEAK --</span>
|
|
1304
1575
|
</div>
|
|
1305
1576
|
<div class="billing-daily-legend" aria-hidden="true">
|
|
1306
|
-
<span
|
|
1307
|
-
<span><i
|
|
1308
|
-
<span
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
<span>Y: TOKENS / DAY [LOG10]</span>
|
|
1312
|
-
<span>X: LOCAL DATE</span>
|
|
1577
|
+
<span>RELATIVE</span>
|
|
1578
|
+
<span class="billing-heat-scale"><i data-level="0"></i><i data-level="1"></i><i data-level="2"></i><i data-level="3"></i><i data-level="4"></i><i data-level="5"></i></span>
|
|
1579
|
+
<span>HOT</span>
|
|
1580
|
+
<span>OVERRANGE</span>
|
|
1581
|
+
<span class="billing-overrange-scale"><i data-overrange="1"></i><em>1B</em><i data-overrange="2"></i><em>2B</em><i data-overrange="3"></i><em>4B</em><i data-overrange="4"></i><em>8B+</em></span>
|
|
1313
1582
|
</div>
|
|
1314
|
-
<div class="billing-
|
|
1315
|
-
<div class="billing-
|
|
1583
|
+
<div class="billing-calendar-frame">
|
|
1584
|
+
<div class="billing-calendar-weekdays" aria-hidden="true">
|
|
1585
|
+
<span>MON</span><span></span><span>WED</span><span></span><span>FRI</span><span></span><span>SUN</span>
|
|
1586
|
+
</div>
|
|
1316
1587
|
<div class="billing-daily-scroll" id="billing-daily-scroll">
|
|
1317
|
-
<div class="billing-
|
|
1318
|
-
|
|
1319
|
-
<div class="billing-daily-bars" id="billing-daily-bars" role="grid" aria-label="Daily token totals for the last 120 days on a logarithmic scale"></div>
|
|
1320
|
-
</div>
|
|
1321
|
-
<div class="billing-daily-x-axis" id="billing-daily-x-axis" aria-hidden="true"></div>
|
|
1588
|
+
<div class="billing-calendar-months" id="billing-calendar-months" aria-hidden="true"></div>
|
|
1589
|
+
<div class="billing-calendar-grid" id="billing-calendar-grid" role="grid" aria-label="Daily token activity for the last 52 weeks"></div>
|
|
1322
1590
|
</div>
|
|
1323
1591
|
</div>
|
|
1324
|
-
<div class="billing-
|
|
1325
|
-
<span>
|
|
1326
|
-
<div class="billing-activity-strip" id="billing-activity-strip" role="img" aria-label="52-week daily activity continuity"></div>
|
|
1592
|
+
<div class="billing-calendar-footer">
|
|
1593
|
+
<span>[ARROWS] SELECT DAY</span>
|
|
1327
1594
|
<span id="billing-daily-range">LOCAL TIME</span>
|
|
1328
1595
|
</div>
|
|
1329
1596
|
</section>
|
|
@@ -1334,7 +1601,13 @@
|
|
|
1334
1601
|
<span id="billing-day-state">LOCAL HISTORY</span>
|
|
1335
1602
|
</div>
|
|
1336
1603
|
<div class="billing-day-details">
|
|
1337
|
-
<div class="billing-day-total"
|
|
1604
|
+
<div class="billing-day-total" id="billing-day-total-meter">
|
|
1605
|
+
<small>TOTAL</small>
|
|
1606
|
+
<div class="billing-day-total-values">
|
|
1607
|
+
<strong id="billing-day-total">--</strong>
|
|
1608
|
+
<span class="billing-day-total-compact-wrap"><span class="billing-day-total-compact" id="billing-day-total-compact">--</span><em>TOKENS</em></span>
|
|
1609
|
+
</div>
|
|
1610
|
+
</div>
|
|
1338
1611
|
<div class="billing-day-breakdown"><small>INPUT</small><strong id="billing-day-input">--</strong></div>
|
|
1339
1612
|
<div class="billing-day-breakdown"><small>OUTPUT</small><strong id="billing-day-output">--</strong></div>
|
|
1340
1613
|
<div class="billing-day-breakdown"><small>CACHE READ</small><strong id="billing-day-cache-read">--</strong></div>
|
|
@@ -1368,9 +1641,11 @@
|
|
|
1368
1641
|
<path id="billing-day-total-path" class="billing-day-curve-total"></path>
|
|
1369
1642
|
</svg>
|
|
1370
1643
|
</div>
|
|
1371
|
-
<div class="billing-day-
|
|
1372
|
-
|
|
1644
|
+
<div class="billing-day-hour-strip" id="billing-day-hour-strip" role="grid" aria-label="Selected day token usage by local hour"></div>
|
|
1645
|
+
<div class="billing-day-hour-axis" aria-hidden="true">
|
|
1646
|
+
<span>00:00</span><span>03:00</span><span>06:00</span><span>09:00</span><span>12:00</span><span>15:00</span><span>18:00</span><span>21:00</span><span>24:00</span>
|
|
1373
1647
|
</div>
|
|
1648
|
+
<div class="billing-day-hour-readout" id="billing-day-hour-readout">SELECT AN HOUR</div>
|
|
1374
1649
|
<div class="billing-day-curve-footer">
|
|
1375
1650
|
<span id="billing-day-insight-state">SELECTED DAY DETAIL</span>
|
|
1376
1651
|
<span class="billing-day-curve-legend"><i class="is-total"></i>TOTAL <i class="is-cache"></i>CACHE</span>
|
|
@@ -1575,6 +1850,19 @@
|
|
|
1575
1850
|
aria-autocomplete="none"
|
|
1576
1851
|
data-form-type="other"
|
|
1577
1852
|
>
|
|
1853
|
+
<div class="workspace-directory-prompt" id="workspace-directory-prompt" role="alertdialog" aria-labelledby="workspace-directory-prompt-title" aria-describedby="workspace-directory-prompt-description" hidden>
|
|
1854
|
+
<div class="workspace-directory-prompt-icon" id="workspace-directory-prompt-icon" aria-hidden="true">[+]</div>
|
|
1855
|
+
<div class="workspace-directory-prompt-copy">
|
|
1856
|
+
<h4 id="workspace-directory-prompt-title">Create this workspace?</h4>
|
|
1857
|
+
<p id="workspace-directory-prompt-description">This directory does not exist yet. Farming can create it and start the Agent there.</p>
|
|
1858
|
+
<code id="workspace-directory-prompt-path"></code>
|
|
1859
|
+
</div>
|
|
1860
|
+
<div class="workspace-directory-prompt-actions">
|
|
1861
|
+
<button id="workspace-directory-create" data-crt-nav-key="new-agent:workspace-create" onclick="createCrtWorkspaceAndStart()">Create & Start [Enter]</button>
|
|
1862
|
+
<button class="secondary" id="workspace-directory-cancel" data-crt-nav-key="new-agent:workspace-cancel" onclick="hideWorkspaceDirectoryPrompt()">Back [Esc]</button>
|
|
1863
|
+
<button id="workspace-directory-error-back" data-crt-nav-key="new-agent:workspace-error-back" onclick="hideWorkspaceDirectoryPrompt()" hidden>Change Path [Enter]</button>
|
|
1864
|
+
</div>
|
|
1865
|
+
</div>
|
|
1578
1866
|
<div class="workspace-history" id="workspace-history" style="display: none;">
|
|
1579
1867
|
<div class="workspace-history-header">
|
|
1580
1868
|
<span>recent workspaces</span>
|
|
@@ -1582,7 +1870,7 @@
|
|
|
1582
1870
|
</div>
|
|
1583
1871
|
<div class="workspace-history-list" id="workspace-history-list"></div>
|
|
1584
1872
|
</div>
|
|
1585
|
-
<div style="margin-top: 10px;">
|
|
1873
|
+
<div id="workspace-start-actions" style="margin-top: 10px;">
|
|
1586
1874
|
<button data-crt-nav-key="new-agent:start" onclick="confirmStartAgent()">Start [Enter]</button>
|
|
1587
1875
|
<button data-crt-nav-key="new-agent:back" onclick="backToAgentList()">Back [Esc]</button>
|
|
1588
1876
|
</div>
|
|
@@ -1698,6 +1986,8 @@
|
|
|
1698
1986
|
</div>
|
|
1699
1987
|
|
|
1700
1988
|
<script src="shared/runtime-paths.js"></script>
|
|
1989
|
+
<script src="shared/reading-anchor.js"></script>
|
|
1990
|
+
<script src="shared/terminal-replay.js"></script>
|
|
1701
1991
|
<script src="../vendor/xterm/xterm.js"></script>
|
|
1702
1992
|
<script src="../vendor/xterm/addon-fit.js"></script>
|
|
1703
1993
|
<script src="../vendor/xterm/addon-webgl.js"></script>
|