@dahawa/hawa-code 2.3.4 → 2.4.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/cli.js +746 -642
- package/hands.js +648 -544
- package/package.json +1 -1
- package/webServer/app.js +44 -42
- package/webServer/style.css +175 -40
package/webServer/style.css
CHANGED
|
@@ -312,6 +312,122 @@ html, body {
|
|
|
312
312
|
border-radius: 3px;
|
|
313
313
|
}
|
|
314
314
|
|
|
315
|
+
/* 通用自定义滚动条:默认隐藏,hover 时显示 */
|
|
316
|
+
.custom-scrollbar,
|
|
317
|
+
.result-content,
|
|
318
|
+
.code-block,
|
|
319
|
+
.file-list,
|
|
320
|
+
.diff-view,
|
|
321
|
+
.agent-prompt-detail,
|
|
322
|
+
.memo-content-detail,
|
|
323
|
+
.memo-content,
|
|
324
|
+
.tool-input,
|
|
325
|
+
.settings-sidebar,
|
|
326
|
+
.settings-content,
|
|
327
|
+
.model-config-json-editor .setting-json-textarea,
|
|
328
|
+
.setting-json-textarea {
|
|
329
|
+
scrollbar-width: thin;
|
|
330
|
+
scrollbar-color: transparent transparent;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.custom-scrollbar:hover,
|
|
334
|
+
.result-content:hover,
|
|
335
|
+
.code-block:hover,
|
|
336
|
+
.file-list:hover,
|
|
337
|
+
.diff-view:hover,
|
|
338
|
+
.agent-prompt-detail:hover,
|
|
339
|
+
.memo-content-detail:hover,
|
|
340
|
+
.memo-content:hover,
|
|
341
|
+
.tool-input:hover,
|
|
342
|
+
.settings-sidebar:hover,
|
|
343
|
+
.settings-content:hover,
|
|
344
|
+
.model-config-json-editor .setting-json-textarea:hover,
|
|
345
|
+
.setting-json-textarea:hover {
|
|
346
|
+
scrollbar-color: var(--border-color) transparent;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.custom-scrollbar::-webkit-scrollbar,
|
|
350
|
+
.result-content::-webkit-scrollbar,
|
|
351
|
+
.code-block::-webkit-scrollbar,
|
|
352
|
+
.file-list::-webkit-scrollbar,
|
|
353
|
+
.diff-view::-webkit-scrollbar,
|
|
354
|
+
.agent-prompt-detail::-webkit-scrollbar,
|
|
355
|
+
.memo-content-detail::-webkit-scrollbar,
|
|
356
|
+
.memo-content::-webkit-scrollbar,
|
|
357
|
+
.tool-input::-webkit-scrollbar,
|
|
358
|
+
.settings-sidebar::-webkit-scrollbar,
|
|
359
|
+
.settings-content::-webkit-scrollbar,
|
|
360
|
+
.model-config-json-editor .setting-json-textarea::-webkit-scrollbar,
|
|
361
|
+
.setting-json-textarea::-webkit-scrollbar {
|
|
362
|
+
width: 6px;
|
|
363
|
+
height: 6px;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.custom-scrollbar::-webkit-scrollbar-track,
|
|
367
|
+
.result-content::-webkit-scrollbar-track,
|
|
368
|
+
.code-block::-webkit-scrollbar-track,
|
|
369
|
+
.file-list::-webkit-scrollbar-track,
|
|
370
|
+
.diff-view::-webkit-scrollbar-track,
|
|
371
|
+
.agent-prompt-detail::-webkit-scrollbar-track,
|
|
372
|
+
.memo-content-detail::-webkit-scrollbar-track,
|
|
373
|
+
.memo-content::-webkit-scrollbar-track,
|
|
374
|
+
.tool-input::-webkit-scrollbar-track,
|
|
375
|
+
.settings-sidebar::-webkit-scrollbar-track,
|
|
376
|
+
.settings-content::-webkit-scrollbar-track,
|
|
377
|
+
.model-config-json-editor .setting-json-textarea::-webkit-scrollbar-track,
|
|
378
|
+
.setting-json-textarea::-webkit-scrollbar-track {
|
|
379
|
+
background: transparent;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
.custom-scrollbar::-webkit-scrollbar-thumb,
|
|
383
|
+
.result-content::-webkit-scrollbar-thumb,
|
|
384
|
+
.code-block::-webkit-scrollbar-thumb,
|
|
385
|
+
.file-list::-webkit-scrollbar-thumb,
|
|
386
|
+
.diff-view::-webkit-scrollbar-thumb,
|
|
387
|
+
.agent-prompt-detail::-webkit-scrollbar-thumb,
|
|
388
|
+
.memo-content-detail::-webkit-scrollbar-thumb,
|
|
389
|
+
.memo-content::-webkit-scrollbar-thumb,
|
|
390
|
+
.tool-input::-webkit-scrollbar-thumb,
|
|
391
|
+
.settings-sidebar::-webkit-scrollbar-thumb,
|
|
392
|
+
.settings-content::-webkit-scrollbar-thumb,
|
|
393
|
+
.model-config-json-editor .setting-json-textarea::-webkit-scrollbar-thumb,
|
|
394
|
+
.setting-json-textarea::-webkit-scrollbar-thumb {
|
|
395
|
+
background: transparent;
|
|
396
|
+
border-radius: 3px;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.custom-scrollbar:hover::-webkit-scrollbar-thumb,
|
|
400
|
+
.result-content:hover::-webkit-scrollbar-thumb,
|
|
401
|
+
.code-block:hover::-webkit-scrollbar-thumb,
|
|
402
|
+
.file-list:hover::-webkit-scrollbar-thumb,
|
|
403
|
+
.diff-view:hover::-webkit-scrollbar-thumb,
|
|
404
|
+
.agent-prompt-detail:hover::-webkit-scrollbar-thumb,
|
|
405
|
+
.memo-content-detail:hover::-webkit-scrollbar-thumb,
|
|
406
|
+
.memo-content:hover::-webkit-scrollbar-thumb,
|
|
407
|
+
.tool-input:hover::-webkit-scrollbar-thumb,
|
|
408
|
+
.settings-sidebar:hover::-webkit-scrollbar-thumb,
|
|
409
|
+
.settings-content:hover::-webkit-scrollbar-thumb,
|
|
410
|
+
.model-config-json-editor .setting-json-textarea:hover::-webkit-scrollbar-thumb,
|
|
411
|
+
.setting-json-textarea:hover::-webkit-scrollbar-thumb {
|
|
412
|
+
background: var(--border-color);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.custom-scrollbar::-webkit-scrollbar-thumb:hover,
|
|
416
|
+
.result-content::-webkit-scrollbar-thumb:hover,
|
|
417
|
+
.code-block::-webkit-scrollbar-thumb:hover,
|
|
418
|
+
.file-list::-webkit-scrollbar-thumb:hover,
|
|
419
|
+
.diff-view::-webkit-scrollbar-thumb:hover,
|
|
420
|
+
.agent-prompt-detail::-webkit-scrollbar-thumb:hover,
|
|
421
|
+
.memo-content-detail::-webkit-scrollbar-thumb:hover,
|
|
422
|
+
.memo-content::-webkit-scrollbar-thumb:hover,
|
|
423
|
+
.tool-input::-webkit-scrollbar-thumb:hover,
|
|
424
|
+
.settings-sidebar:hover::-webkit-scrollbar-thumb:hover,
|
|
425
|
+
.settings-content:hover::-webkit-scrollbar-thumb:hover,
|
|
426
|
+
.model-config-json-editor .setting-json-textarea::-webkit-scrollbar-thumb:hover,
|
|
427
|
+
.setting-json-textarea::-webkit-scrollbar-thumb:hover {
|
|
428
|
+
background: var(--text-dimmed);
|
|
429
|
+
}
|
|
430
|
+
|
|
315
431
|
/* 消息项 */
|
|
316
432
|
.message-item {
|
|
317
433
|
margin-bottom: 8px;
|
|
@@ -319,15 +435,13 @@ html, body {
|
|
|
319
435
|
}
|
|
320
436
|
|
|
321
437
|
.message-user {
|
|
438
|
+
padding-left: 12px;
|
|
439
|
+
border-left: 2px solid var(--accent-green);
|
|
440
|
+
margin-left: 4px;
|
|
322
441
|
color: var(--accent-green);
|
|
323
442
|
font-weight: 600;
|
|
324
443
|
}
|
|
325
444
|
|
|
326
|
-
.message-user::before {
|
|
327
|
-
content: '> ';
|
|
328
|
-
color: var(--accent-green);
|
|
329
|
-
}
|
|
330
|
-
|
|
331
445
|
.message-assistant {
|
|
332
446
|
padding-left: 12px;
|
|
333
447
|
border-left: 2px solid var(--accent-blue);
|
|
@@ -355,13 +469,13 @@ html, body {
|
|
|
355
469
|
|
|
356
470
|
.message-tool-use {
|
|
357
471
|
padding-left: 24px;
|
|
358
|
-
border-left: 2px solid var(--
|
|
472
|
+
border-left: 2px solid var(--text-dimmed);
|
|
359
473
|
margin-left: 4px;
|
|
360
474
|
color: var(--text-secondary);
|
|
361
475
|
}
|
|
362
476
|
|
|
363
477
|
.message-tool-use .tool-name {
|
|
364
|
-
color: var(--
|
|
478
|
+
color: var(--text-secondary);
|
|
365
479
|
font-weight: 600;
|
|
366
480
|
}
|
|
367
481
|
|
|
@@ -388,11 +502,14 @@ html, body {
|
|
|
388
502
|
}
|
|
389
503
|
|
|
390
504
|
.message-tool-result {
|
|
391
|
-
padding
|
|
505
|
+
padding: 6px 8px 6px 24px;
|
|
392
506
|
border-left: 2px solid var(--accent-green);
|
|
393
507
|
margin-left: 4px;
|
|
394
508
|
color: var(--text-secondary);
|
|
395
509
|
font-size: 12px;
|
|
510
|
+
background: rgba(0, 0, 0, 0.2);
|
|
511
|
+
border-radius: 4px;
|
|
512
|
+
margin-top: 4px;
|
|
396
513
|
}
|
|
397
514
|
|
|
398
515
|
.message-tool-result .result-content {
|
|
@@ -638,8 +755,8 @@ html, body {
|
|
|
638
755
|
border-radius: 3px;
|
|
639
756
|
font-size: 11px;
|
|
640
757
|
font-weight: 600;
|
|
641
|
-
color:
|
|
642
|
-
background: var(--
|
|
758
|
+
color: var(--text-primary);
|
|
759
|
+
background: var(--text-dimmed);
|
|
643
760
|
}
|
|
644
761
|
|
|
645
762
|
.file-path {
|
|
@@ -766,6 +883,15 @@ html, body {
|
|
|
766
883
|
content: ' ';
|
|
767
884
|
}
|
|
768
885
|
|
|
886
|
+
/* LS 工具结果树形展示 */
|
|
887
|
+
.tool-result-ls .ls-tree {
|
|
888
|
+
line-height: 1.6;
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
.tool-result-ls .ls-tree code {
|
|
892
|
+
color: var(--text-secondary);
|
|
893
|
+
}
|
|
894
|
+
|
|
769
895
|
/* 展开/收起 */
|
|
770
896
|
.expand-toggle {
|
|
771
897
|
color: var(--text-dimmed);
|
|
@@ -1869,6 +1995,41 @@ html, body {
|
|
|
1869
1995
|
background: rgba(239, 83, 80, 0.1);
|
|
1870
1996
|
}
|
|
1871
1997
|
|
|
1998
|
+
.tool-confirm-notification-banner {
|
|
1999
|
+
display: flex;
|
|
2000
|
+
align-items: center;
|
|
2001
|
+
justify-content: space-between;
|
|
2002
|
+
gap: 12px;
|
|
2003
|
+
padding: 10px 16px;
|
|
2004
|
+
background: rgba(255, 193, 7, 0.08);
|
|
2005
|
+
border-top: 1px solid var(--border-color);
|
|
2006
|
+
font-size: 11px;
|
|
2007
|
+
color: var(--text-secondary);
|
|
2008
|
+
flex-shrink: 0;
|
|
2009
|
+
}
|
|
2010
|
+
|
|
2011
|
+
.tool-confirm-notification-banner.tool-confirm-notification-denied {
|
|
2012
|
+
background: rgba(244, 67, 54, 0.08);
|
|
2013
|
+
color: var(--accent-red);
|
|
2014
|
+
}
|
|
2015
|
+
|
|
2016
|
+
.tool-confirm-notification-banner button {
|
|
2017
|
+
flex-shrink: 0;
|
|
2018
|
+
background: transparent;
|
|
2019
|
+
border: 1px solid var(--accent-yellow);
|
|
2020
|
+
color: var(--accent-yellow);
|
|
2021
|
+
padding: 4px 10px;
|
|
2022
|
+
border-radius: 4px;
|
|
2023
|
+
cursor: pointer;
|
|
2024
|
+
font-family: var(--font-mono);
|
|
2025
|
+
font-size: 11px;
|
|
2026
|
+
transition: all 0.15s ease;
|
|
2027
|
+
}
|
|
2028
|
+
|
|
2029
|
+
.tool-confirm-notification-banner button:hover {
|
|
2030
|
+
background: rgba(255, 193, 7, 0.1);
|
|
2031
|
+
}
|
|
2032
|
+
|
|
1872
2033
|
/* ============================================
|
|
1873
2034
|
Prompt Input Bar
|
|
1874
2035
|
============================================ */
|
|
@@ -1876,11 +2037,11 @@ html, body {
|
|
|
1876
2037
|
.prompt-input-bar {
|
|
1877
2038
|
display: flex;
|
|
1878
2039
|
flex-direction: column;
|
|
2040
|
+
justify-content: center;
|
|
1879
2041
|
padding: 8px 16px;
|
|
1880
2042
|
background: var(--bg-secondary);
|
|
1881
2043
|
border-top: 1px solid var(--border-color);
|
|
1882
2044
|
flex-shrink: 0;
|
|
1883
|
-
gap: 4px;
|
|
1884
2045
|
}
|
|
1885
2046
|
|
|
1886
2047
|
.prompt-input-inner {
|
|
@@ -2017,32 +2178,6 @@ html, body {
|
|
|
2017
2178
|
mask-position: center;
|
|
2018
2179
|
}
|
|
2019
2180
|
|
|
2020
|
-
.prompt-input-status {
|
|
2021
|
-
font-size: 11px;
|
|
2022
|
-
padding-left: 32px;
|
|
2023
|
-
color: var(--text-dimmed);
|
|
2024
|
-
}
|
|
2025
|
-
|
|
2026
|
-
.prompt-input-status.received {
|
|
2027
|
-
color: var(--accent-blue);
|
|
2028
|
-
}
|
|
2029
|
-
|
|
2030
|
-
.prompt-input-status.queued {
|
|
2031
|
-
color: var(--accent-yellow);
|
|
2032
|
-
}
|
|
2033
|
-
|
|
2034
|
-
.prompt-input-status.executing {
|
|
2035
|
-
color: var(--accent-green);
|
|
2036
|
-
}
|
|
2037
|
-
|
|
2038
|
-
.prompt-input-status.rejected {
|
|
2039
|
-
color: var(--accent-red);
|
|
2040
|
-
}
|
|
2041
|
-
|
|
2042
|
-
.prompt-input-status.completed {
|
|
2043
|
-
color: var(--text-secondary);
|
|
2044
|
-
}
|
|
2045
|
-
|
|
2046
2181
|
/* ============================================
|
|
2047
2182
|
Ask User Question Inline Form
|
|
2048
2183
|
============================================ */
|
|
@@ -2050,7 +2185,7 @@ html, body {
|
|
|
2050
2185
|
.ask-user-question-form {
|
|
2051
2186
|
background: var(--bg-secondary);
|
|
2052
2187
|
border: 1px solid var(--border-color);
|
|
2053
|
-
border-left: 3px solid var(--
|
|
2188
|
+
border-left: 3px solid var(--text-dimmed);
|
|
2054
2189
|
border-radius: 4px;
|
|
2055
2190
|
padding: 12px 16px;
|
|
2056
2191
|
margin-top: 4px;
|
|
@@ -2082,8 +2217,8 @@ html, body {
|
|
|
2082
2217
|
}
|
|
2083
2218
|
|
|
2084
2219
|
.ask-user-question-step.active {
|
|
2085
|
-
border-color: var(--
|
|
2086
|
-
color: var(--
|
|
2220
|
+
border-color: var(--text-dimmed);
|
|
2221
|
+
color: var(--text-dimmed);
|
|
2087
2222
|
font-weight: 600;
|
|
2088
2223
|
}
|
|
2089
2224
|
|