pi-web-ui 0.63.4 → 0.64.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/LICENSE +21 -21
- package/README.md +504 -504
- package/README.zh-CN.md +427 -427
- package/bin/pi-web-ui.mjs +1809 -1809
- package/deploy/com.xingshuyin.pi-web-ui.plist +48 -48
- package/deploy/nginx-subpath.conf +88 -88
- package/deploy/pi-web-ui-task.xml +54 -54
- package/deploy/pi-web-ui.service +31 -31
- package/dist/server/agent-service.js +18 -10
- package/dist/server/attachments.js +3 -3
- package/dist/server/dsh/dsh-agent-service.js +3 -0
- package/dist/server/dsh/runtime/cordis.yml +1 -1
- package/dist/server/dsh/runtime/goal-rpc.mjs +645 -645
- package/dist/server/dsh/runtime/launcher.mjs +164 -164
- package/dist/server/dsh/runtime/override.patch.yml +71 -71
- package/dist/server/dsh/runtime/runtime-root.mjs +86 -86
- package/dist/server/files-service.js +42 -0
- package/dist/server/index.js +3 -0
- package/dist/server/marker-service.js +2 -1
- package/dist/server/markers/builtins/rename.js +1 -3
- package/dist/server/markers/builtins/services.js +6 -2
- package/dist/server/markers/builtins/todo.js +8 -4
- package/dist/server/settings-service.js +5 -1
- package/dist/server/terminals.js +4 -4
- package/dist/server/vision-bridge.js +9 -9
- package/extensions/webui.ts +190 -190
- package/package.json +1 -1
- package/themes/cyberpunk.css +81 -81
- package/themes/dazzle.css +81 -81
- package/themes/md-preview.css +98 -98
- package/themes/white.css +160 -160
- package/web/dist/assets/{TerminalPanel-BFrV6B8W.js → TerminalPanel-DNkAT34Z.js} +1 -1
- package/web/dist/assets/index-CMgDryBL.css +10 -0
- package/web/dist/assets/index-_1vyEugI.js +326 -0
- package/web/dist/favicon.svg +8 -8
- package/web/dist/index.html +21 -21
- package/web/dist/manifest.webmanifest +50 -50
- package/web/dist/sw.js +126 -126
- package/web/public/favicon.svg +8 -8
- package/web/public/manifest.webmanifest +50 -50
- package/web/public/sw.js +126 -126
- package/web/dist/assets/index-BFoSybNe.js +0 -324
- package/web/dist/assets/index-D9G_7fPE.css +0 -10
package/themes/white.css
CHANGED
|
@@ -1,160 +1,160 @@
|
|
|
1
|
-
/* theme-name: 白色 */
|
|
2
|
-
/* theme-name-en: White */
|
|
3
|
-
:root {
|
|
4
|
-
color-scheme: light;
|
|
5
|
-
--bg: #ffffff;
|
|
6
|
-
--bg-elev: #ffffff;
|
|
7
|
-
--bg-elev2: #f6f8fa;
|
|
8
|
-
--border: #d0d7de;
|
|
9
|
-
--border-soft: #d8dee4;
|
|
10
|
-
--text: #1f2328;
|
|
11
|
-
--text-dim: #59636e;
|
|
12
|
-
--text-faint: #818b98;
|
|
13
|
-
--accent: #0969da;
|
|
14
|
-
--accent-soft: rgba(9, 105, 218, 0.1);
|
|
15
|
-
--green: #059669;
|
|
16
|
-
--green-soft: rgba(5, 150, 105, 0.12);
|
|
17
|
-
--red: #dc2626;
|
|
18
|
-
--red-soft: rgba(220, 38, 38, 0.1);
|
|
19
|
-
--amber: #d97706;
|
|
20
|
-
--term-bg: #ffffff;
|
|
21
|
-
--term-fg: #1f2328;
|
|
22
|
-
--term-cursor: #0969da;
|
|
23
|
-
--term-cursor-accent: #ffffff;
|
|
24
|
-
--term-selection: rgba(9, 105, 218, 0.32);
|
|
25
|
-
--term-black: #e8eaf0;
|
|
26
|
-
--term-red: #dc2626;
|
|
27
|
-
--term-green: #059669;
|
|
28
|
-
--term-yellow: #d97706;
|
|
29
|
-
--term-blue: #2563eb;
|
|
30
|
-
--term-magenta: #9333ea;
|
|
31
|
-
--term-cyan: #0e7490;
|
|
32
|
-
--term-white: #1f2328;
|
|
33
|
-
--term-bright-black: #8a91a3;
|
|
34
|
-
--term-bright-red: #dc2626;
|
|
35
|
-
--term-bright-green: #059669;
|
|
36
|
-
--term-bright-yellow: #d97706;
|
|
37
|
-
--term-bright-blue: #2563eb;
|
|
38
|
-
--term-bright-magenta: #9333ea;
|
|
39
|
-
--term-bright-cyan: #0e7490;
|
|
40
|
-
--term-bright-white: #000000;
|
|
41
|
-
--mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
|
|
42
|
-
--tooltip-bg: #ffffff;
|
|
43
|
-
--code-bg: #f6f8fa;
|
|
44
|
-
--code-text: #1f2937;
|
|
45
|
-
--err-text: #dc2626;
|
|
46
|
-
--red-text: #dc2626;
|
|
47
|
-
--amber-text: #b45309;
|
|
48
|
-
--info-blue: #2563eb;
|
|
49
|
-
--link: #0969da;
|
|
50
|
-
--link-hover: #0550ae;
|
|
51
|
-
--link-soft: #0969da;
|
|
52
|
-
--md-strong: #111827;
|
|
53
|
-
--skill-blue: #2563eb;
|
|
54
|
-
--plugin-purple: #b58cff;
|
|
55
|
-
--auth-green: #059669;
|
|
56
|
-
--scroll-thumb: #c7ccd8;
|
|
57
|
-
--scroll-thumb-hover: #aab2c0;
|
|
58
|
-
--notice-err-bg: #eadadf;
|
|
59
|
-
--notice-warn-bg: #eae2dc;
|
|
60
|
-
--notice-info-bg: #d8e0f3;
|
|
61
|
-
--notice-err-border: #dc2626;
|
|
62
|
-
--notice-warn-border: #b45309;
|
|
63
|
-
--notice-info-border: #2563eb;
|
|
64
|
-
--send-blue: #0969da;
|
|
65
|
-
--send-blue-hover: #0550ae;
|
|
66
|
-
--brand-grad-a: #8b5cf6;
|
|
67
|
-
--brand-grad-b: #6366f1;
|
|
68
|
-
--on-amber: #1a1a1a;
|
|
69
|
-
--search-active-fg: #1a1d26;
|
|
70
|
-
--switch-knob: #ffffff;
|
|
71
|
-
--bg-elev3: rgba(0, 0, 0, 0.03);
|
|
72
|
-
--glow-015: rgba(0, 0, 0, 0.02);
|
|
73
|
-
--glow-025: rgba(0, 0, 0, 0.02);
|
|
74
|
-
--glow-03: rgba(0, 0, 0, 0.02);
|
|
75
|
-
--glow-04: rgba(0, 0, 0, 0.03);
|
|
76
|
-
--glow-05: rgba(0, 0, 0, 0.03);
|
|
77
|
-
--glow-12: rgba(0, 0, 0, 0.08);
|
|
78
|
-
--glow-18: rgba(0, 0, 0, 0.12);
|
|
79
|
-
--glow-22: rgba(0, 0, 0, 0.15);
|
|
80
|
-
--glow-38: rgba(0, 0, 0, 0.25);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/* ---- syntax highlighting (overrides static github-dark import) ---- */
|
|
84
|
-
.hljs {
|
|
85
|
-
color: #1f2328;
|
|
86
|
-
background: #f6f8fa;
|
|
87
|
-
}
|
|
88
|
-
.hljs-doctag,
|
|
89
|
-
.hljs-keyword,
|
|
90
|
-
.hljs-meta .hljs-keyword,
|
|
91
|
-
.hljs-template-tag,
|
|
92
|
-
.hljs-template-variable,
|
|
93
|
-
.hljs-type,
|
|
94
|
-
.hljs-variable.language_ {
|
|
95
|
-
color: #cf222e;
|
|
96
|
-
}
|
|
97
|
-
.hljs-title,
|
|
98
|
-
.hljs-title.class_,
|
|
99
|
-
.hljs-title.class_.inherited__,
|
|
100
|
-
.hljs-title.function_ {
|
|
101
|
-
color: #8250df;
|
|
102
|
-
}
|
|
103
|
-
.hljs-attr,
|
|
104
|
-
.hljs-attribute,
|
|
105
|
-
.hljs-literal,
|
|
106
|
-
.hljs-meta,
|
|
107
|
-
.hljs-number,
|
|
108
|
-
.hljs-operator,
|
|
109
|
-
.hljs-variable,
|
|
110
|
-
.hljs-selector-attr,
|
|
111
|
-
.hljs-selector-class,
|
|
112
|
-
.hljs-selector-id {
|
|
113
|
-
color: #0550ae;
|
|
114
|
-
}
|
|
115
|
-
.hljs-regexp,
|
|
116
|
-
.hljs-string,
|
|
117
|
-
.hljs-meta .hljs-string {
|
|
118
|
-
color: #0a3069;
|
|
119
|
-
}
|
|
120
|
-
.hljs-built_in,
|
|
121
|
-
.hljs-symbol {
|
|
122
|
-
color: #953800;
|
|
123
|
-
}
|
|
124
|
-
.hljs-comment,
|
|
125
|
-
.hljs-code,
|
|
126
|
-
.hljs-formula {
|
|
127
|
-
color: #6e7781;
|
|
128
|
-
}
|
|
129
|
-
.hljs-name,
|
|
130
|
-
.hljs-quote,
|
|
131
|
-
.hljs-selector-tag,
|
|
132
|
-
.hljs-selector-pseudo {
|
|
133
|
-
color: #116329;
|
|
134
|
-
}
|
|
135
|
-
.hljs-subst {
|
|
136
|
-
color: #24292f;
|
|
137
|
-
}
|
|
138
|
-
.hljs-section {
|
|
139
|
-
color: #0550ae;
|
|
140
|
-
font-weight: 700;
|
|
141
|
-
}
|
|
142
|
-
.hljs-bullet {
|
|
143
|
-
color: #0550ae;
|
|
144
|
-
}
|
|
145
|
-
.hljs-emphasis {
|
|
146
|
-
color: #24292f;
|
|
147
|
-
font-style: italic;
|
|
148
|
-
}
|
|
149
|
-
.hljs-strong {
|
|
150
|
-
color: #24292f;
|
|
151
|
-
font-weight: 700;
|
|
152
|
-
}
|
|
153
|
-
.hljs-addition {
|
|
154
|
-
color: #116329;
|
|
155
|
-
background: #dafbe1;
|
|
156
|
-
}
|
|
157
|
-
.hljs-deletion {
|
|
158
|
-
color: #82071e;
|
|
159
|
-
background: #ffebe9;
|
|
160
|
-
}
|
|
1
|
+
/* theme-name: 白色 */
|
|
2
|
+
/* theme-name-en: White */
|
|
3
|
+
:root {
|
|
4
|
+
color-scheme: light;
|
|
5
|
+
--bg: #ffffff;
|
|
6
|
+
--bg-elev: #ffffff;
|
|
7
|
+
--bg-elev2: #f6f8fa;
|
|
8
|
+
--border: #d0d7de;
|
|
9
|
+
--border-soft: #d8dee4;
|
|
10
|
+
--text: #1f2328;
|
|
11
|
+
--text-dim: #59636e;
|
|
12
|
+
--text-faint: #818b98;
|
|
13
|
+
--accent: #0969da;
|
|
14
|
+
--accent-soft: rgba(9, 105, 218, 0.1);
|
|
15
|
+
--green: #059669;
|
|
16
|
+
--green-soft: rgba(5, 150, 105, 0.12);
|
|
17
|
+
--red: #dc2626;
|
|
18
|
+
--red-soft: rgba(220, 38, 38, 0.1);
|
|
19
|
+
--amber: #d97706;
|
|
20
|
+
--term-bg: #ffffff;
|
|
21
|
+
--term-fg: #1f2328;
|
|
22
|
+
--term-cursor: #0969da;
|
|
23
|
+
--term-cursor-accent: #ffffff;
|
|
24
|
+
--term-selection: rgba(9, 105, 218, 0.32);
|
|
25
|
+
--term-black: #e8eaf0;
|
|
26
|
+
--term-red: #dc2626;
|
|
27
|
+
--term-green: #059669;
|
|
28
|
+
--term-yellow: #d97706;
|
|
29
|
+
--term-blue: #2563eb;
|
|
30
|
+
--term-magenta: #9333ea;
|
|
31
|
+
--term-cyan: #0e7490;
|
|
32
|
+
--term-white: #1f2328;
|
|
33
|
+
--term-bright-black: #8a91a3;
|
|
34
|
+
--term-bright-red: #dc2626;
|
|
35
|
+
--term-bright-green: #059669;
|
|
36
|
+
--term-bright-yellow: #d97706;
|
|
37
|
+
--term-bright-blue: #2563eb;
|
|
38
|
+
--term-bright-magenta: #9333ea;
|
|
39
|
+
--term-bright-cyan: #0e7490;
|
|
40
|
+
--term-bright-white: #000000;
|
|
41
|
+
--mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
|
|
42
|
+
--tooltip-bg: #ffffff;
|
|
43
|
+
--code-bg: #f6f8fa;
|
|
44
|
+
--code-text: #1f2937;
|
|
45
|
+
--err-text: #dc2626;
|
|
46
|
+
--red-text: #dc2626;
|
|
47
|
+
--amber-text: #b45309;
|
|
48
|
+
--info-blue: #2563eb;
|
|
49
|
+
--link: #0969da;
|
|
50
|
+
--link-hover: #0550ae;
|
|
51
|
+
--link-soft: #0969da;
|
|
52
|
+
--md-strong: #111827;
|
|
53
|
+
--skill-blue: #2563eb;
|
|
54
|
+
--plugin-purple: #b58cff;
|
|
55
|
+
--auth-green: #059669;
|
|
56
|
+
--scroll-thumb: #c7ccd8;
|
|
57
|
+
--scroll-thumb-hover: #aab2c0;
|
|
58
|
+
--notice-err-bg: #eadadf;
|
|
59
|
+
--notice-warn-bg: #eae2dc;
|
|
60
|
+
--notice-info-bg: #d8e0f3;
|
|
61
|
+
--notice-err-border: #dc2626;
|
|
62
|
+
--notice-warn-border: #b45309;
|
|
63
|
+
--notice-info-border: #2563eb;
|
|
64
|
+
--send-blue: #0969da;
|
|
65
|
+
--send-blue-hover: #0550ae;
|
|
66
|
+
--brand-grad-a: #8b5cf6;
|
|
67
|
+
--brand-grad-b: #6366f1;
|
|
68
|
+
--on-amber: #1a1a1a;
|
|
69
|
+
--search-active-fg: #1a1d26;
|
|
70
|
+
--switch-knob: #ffffff;
|
|
71
|
+
--bg-elev3: rgba(0, 0, 0, 0.03);
|
|
72
|
+
--glow-015: rgba(0, 0, 0, 0.02);
|
|
73
|
+
--glow-025: rgba(0, 0, 0, 0.02);
|
|
74
|
+
--glow-03: rgba(0, 0, 0, 0.02);
|
|
75
|
+
--glow-04: rgba(0, 0, 0, 0.03);
|
|
76
|
+
--glow-05: rgba(0, 0, 0, 0.03);
|
|
77
|
+
--glow-12: rgba(0, 0, 0, 0.08);
|
|
78
|
+
--glow-18: rgba(0, 0, 0, 0.12);
|
|
79
|
+
--glow-22: rgba(0, 0, 0, 0.15);
|
|
80
|
+
--glow-38: rgba(0, 0, 0, 0.25);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/* ---- syntax highlighting (overrides static github-dark import) ---- */
|
|
84
|
+
.hljs {
|
|
85
|
+
color: #1f2328;
|
|
86
|
+
background: #f6f8fa;
|
|
87
|
+
}
|
|
88
|
+
.hljs-doctag,
|
|
89
|
+
.hljs-keyword,
|
|
90
|
+
.hljs-meta .hljs-keyword,
|
|
91
|
+
.hljs-template-tag,
|
|
92
|
+
.hljs-template-variable,
|
|
93
|
+
.hljs-type,
|
|
94
|
+
.hljs-variable.language_ {
|
|
95
|
+
color: #cf222e;
|
|
96
|
+
}
|
|
97
|
+
.hljs-title,
|
|
98
|
+
.hljs-title.class_,
|
|
99
|
+
.hljs-title.class_.inherited__,
|
|
100
|
+
.hljs-title.function_ {
|
|
101
|
+
color: #8250df;
|
|
102
|
+
}
|
|
103
|
+
.hljs-attr,
|
|
104
|
+
.hljs-attribute,
|
|
105
|
+
.hljs-literal,
|
|
106
|
+
.hljs-meta,
|
|
107
|
+
.hljs-number,
|
|
108
|
+
.hljs-operator,
|
|
109
|
+
.hljs-variable,
|
|
110
|
+
.hljs-selector-attr,
|
|
111
|
+
.hljs-selector-class,
|
|
112
|
+
.hljs-selector-id {
|
|
113
|
+
color: #0550ae;
|
|
114
|
+
}
|
|
115
|
+
.hljs-regexp,
|
|
116
|
+
.hljs-string,
|
|
117
|
+
.hljs-meta .hljs-string {
|
|
118
|
+
color: #0a3069;
|
|
119
|
+
}
|
|
120
|
+
.hljs-built_in,
|
|
121
|
+
.hljs-symbol {
|
|
122
|
+
color: #953800;
|
|
123
|
+
}
|
|
124
|
+
.hljs-comment,
|
|
125
|
+
.hljs-code,
|
|
126
|
+
.hljs-formula {
|
|
127
|
+
color: #6e7781;
|
|
128
|
+
}
|
|
129
|
+
.hljs-name,
|
|
130
|
+
.hljs-quote,
|
|
131
|
+
.hljs-selector-tag,
|
|
132
|
+
.hljs-selector-pseudo {
|
|
133
|
+
color: #116329;
|
|
134
|
+
}
|
|
135
|
+
.hljs-subst {
|
|
136
|
+
color: #24292f;
|
|
137
|
+
}
|
|
138
|
+
.hljs-section {
|
|
139
|
+
color: #0550ae;
|
|
140
|
+
font-weight: 700;
|
|
141
|
+
}
|
|
142
|
+
.hljs-bullet {
|
|
143
|
+
color: #0550ae;
|
|
144
|
+
}
|
|
145
|
+
.hljs-emphasis {
|
|
146
|
+
color: #24292f;
|
|
147
|
+
font-style: italic;
|
|
148
|
+
}
|
|
149
|
+
.hljs-strong {
|
|
150
|
+
color: #24292f;
|
|
151
|
+
font-weight: 700;
|
|
152
|
+
}
|
|
153
|
+
.hljs-addition {
|
|
154
|
+
color: #116329;
|
|
155
|
+
background: #dafbe1;
|
|
156
|
+
}
|
|
157
|
+
.hljs-deletion {
|
|
158
|
+
color: #82071e;
|
|
159
|
+
background: #ffebe9;
|
|
160
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as r,j as n}from"./markdown-DRBrS2Nf.js";import{u as V,b as B,T as O,a as W,F as Y,c as P,d as Z,e as M,f as ee,g as ne,h as te,i as se,r as ae}from"./index-
|
|
1
|
+
import{a as r,j as n}from"./markdown-DRBrS2Nf.js";import{u as V,b as B,T as O,a as W,F as Y,c as P,d as Z,e as M,f as ee,g as ne,h as te,i as se,r as ae}from"./index-_1vyEugI.js";import{D as ie,o as le}from"./xterm-D1D2FVe3.js";import"./react-C9ovnpIm.js";function re({conversationId:t,terminalId:c,command:x,cwd:a,title:w,active:u,send:h,register:j}){const E=r.useRef(null),v=r.useRef(null),{locale:b}=V(),g=r.useRef(b);g.current=b;const m=x?JSON.stringify(x):"";return r.useEffect(()=>{const d=E.current;if(!d)return;const i=new ie({theme:B(),fontFamily:'"SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace',fontSize:13,cursorBlink:!0,scrollback:8e3}),y=new le;i.loadAddon(y),i.open(d),v.current={term:i,fit:y},u&&i.focus();const f=()=>{i.options.theme=B()};window.addEventListener(O,f),i.attachCustomKeyEventHandler(o=>{var T;if(o.type!=="keydown")return!0;const S=(T=o.key)==null?void 0:T.toLowerCase();if((o.ctrlKey||o.metaKey)&&S==="v")return!1;if(o.ctrlKey&&!o.shiftKey&&!o.altKey&&S==="c"&&i.hasSelection()){const k=i.textarea;return k&&(k.value=i.getSelection(),k.select()),!1}return!0});const F=j(t,c,{write:o=>i.write(o),dispose:()=>i.dispose()}),R=()=>{try{y.fit(),h({type:"terminal_resize",terminalId:c,conversationId:t,cols:i.cols,rows:i.rows})}catch{}},D=requestAnimationFrame(()=>{try{y.fit()}catch{}h(x?{type:"run_command",terminalId:c,conversationId:t,command:x,cols:i.cols,rows:i.rows}:{type:"terminal_create",terminalId:c,title:w,locale:g.current,conversationId:t,cwd:a,cols:i.cols,rows:i.rows})}),C=i.onData(o=>{h({type:"terminal_input",terminalId:c,conversationId:t,data:o})});let N=null;return typeof ResizeObserver<"u"&&(N=new ResizeObserver(()=>{d.offsetWidth>0&&d.offsetHeight>0&&R()}),N.observe(d)),()=>{cancelAnimationFrame(D),C.dispose(),window.removeEventListener(O,f),N==null||N.disconnect(),F(),i.dispose(),v.current=null}},[t,c,m,h,j]),r.useEffect(()=>{if(!u)return;const d=requestAnimationFrame(()=>{const i=v.current;if(i){try{i.fit.fit(),h({type:"terminal_resize",terminalId:c,conversationId:t,cols:i.term.cols,rows:i.term.rows})}catch{}i.term.focus()}});return()=>cancelAnimationFrame(d)},[u]),n.jsx("div",{ref:E,className:`term-xterm ${u?"":"hidden"}`})}const z={name:"",command:"",cwd:"${pwd}"};function ue({chat:t,send:c,terminal:x}){const a=W(),[w,u]=r.useState(null),[h,j]=r.useState(!1),[E,v]=r.useState(!1),[b,g]=r.useState(null),[m,d]=r.useState(z),[i,y]=r.useState(null),f=r.useRef(null),[F,R]=r.useState(!0),[D,C]=r.useState(null),[N,o]=r.useState("");r.useEffect(()=>{t.terminals.length===0?u(null):t.terminals.some(e=>e.id===w)||u(t.terminals[t.terminals.length-1].id)},[t.terminals,w]),r.useEffect(()=>{t.terminalActiveId&&(u(t.terminalActiveId),j(!1))},[t.terminalActiveId]),r.useEffect(()=>()=>{f.current&&clearTimeout(f.current)},[]);const S=t.terminals.filter(e=>!e.agentBash),T=t.terminals.filter(e=>e.agentBash),k=e=>{var p;if(!t.ready)return;const s=ae(),l=t.activeConversationId||((p=t.state)==null?void 0:p.conversationId)||"";x.create({...e,id:s,conversationId:l,cols:e.cols??80,rows:e.rows??24,running:!0,exitCode:null}),u(s),j(!1)},H=()=>{var e;return k({title:a("terminalTitle",{n:S.length+1}),cwd:((e=t.state)==null?void 0:e.cwd)??""})},I=e=>{var p;const s=e.name||e.command,l=t.terminals.find($=>$.title===s);if(l){x.restart(l.id),u(l.id),c({type:"run_command",terminalId:l.id,conversationId:l.conversationId,command:e,cols:80,rows:24});return}k({title:s,cwd:((p=t.state)==null?void 0:p.cwd)??"",command:e})},q=e=>{const s=t.terminals.find(l=>l.id===e);if(s&&c({type:"terminal_kill",terminalId:e,conversationId:s.conversationId}),x.close(e),w===e){const l=t.terminals.filter(p=>p.id!==e);u(l.length>0?l[l.length-1].id:null)}},A=e=>n.jsxs("div",{className:`term-tab ${e.id===w?"active":""}`,children:[n.jsxs("button",{type:"button",className:"term-tab-main",title:`${e.cwd}${e.command?`
|
|
2
2
|
> ${e.command.command}`:""}`,onClick:()=>{D||(u(e.id),j(!1))},children:[n.jsx("span",{className:`term-tab-dot ${e.running?"run":"exit"}`}),n.jsxs("span",{className:"term-tab-title",children:[D===e.id?n.jsx("input",{autoFocus:!0,className:"term-tab-rename-input",value:N,placeholder:e.title,onClick:s=>s.stopPropagation(),onChange:s=>o(s.target.value),onKeyDown:s=>{if(s.stopPropagation(),s.key==="Enter"&&!s.nativeEvent.isComposing){const l=N.trim();l&&c({type:"rename_terminal",terminalId:e.id,conversationId:e.conversationId,title:l}),C(null)}else s.key==="Escape"&&C(null)},onBlur:()=>C(null)}):e.title,!e.running&&n.jsx("span",{className:"term-tab-exit",children:a("exited",{code:e.exitCode===null?"":` ${e.exitCode}`})})]})]}),n.jsx("button",{type:"button",className:"term-tab-close term-tab-rename",title:a("renameTerminal"),onClick:s=>{s.stopPropagation(),o(e.title),C(e.id)},children:n.jsx(M,{})}),n.jsx("button",{type:"button",className:"term-tab-close",title:a("closeTerminal"),onClick:()=>q(e.id),children:n.jsx(se,{})})]},e.id),G=()=>{v(!0),g(null),d(z)},L=e=>{const s=t.commands[e];s&&(v(!1),g(e),d({name:s.name,command:s.command,cwd:s.cwd??""}))},K=()=>{v(!1),g(null)},_=()=>{const e=m.name.trim(),s=m.command.trim();if(!e||!s)return;const l=m.cwd.trim(),p={name:e,command:s,cwd:l||void 0},$=E?[...t.commands,p]:b!==null?t.commands.map((Q,U)=>U===b?p:Q):t.commands;c({type:"save_commands",commands:$}),K()},J=e=>{if(i===e){const s=t.commands.filter((l,p)=>p!==e);c({type:"save_commands",commands:s}),y(null),f.current&&clearTimeout(f.current)}else y(e),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>y(null),2500)},X=E||b!==null;return n.jsxs("div",{className:"terminal-view",children:[n.jsxs("aside",{className:`term-side term-commands ${h?"open":""}`,children:[n.jsxs("div",{className:"panel-header",children:[n.jsx("span",{className:"panel-title",children:a("commands")}),n.jsxs("div",{className:"panel-header-actions",children:[n.jsx("button",{type:"button",className:"panel-refresh",title:a("rerun"),onClick:()=>c({type:"list_commands"}),children:n.jsx(Y,{})}),n.jsx("button",{type:"button",className:"panel-new",title:a("newCommand"),onClick:G,children:n.jsx(P,{})})]})]}),n.jsx("div",{className:"panel-body",children:X?n.jsxs("div",{className:"cmd-form",children:[n.jsx("label",{htmlFor:"cmd-name",children:a("name")}),n.jsx("input",{id:"cmd-name",className:"cmd-input",value:m.name,placeholder:a("exampleName"),autoFocus:!0,onChange:e=>d({...m,name:e.target.value})}),n.jsx("label",{htmlFor:"cmd-command",children:a("command")}),n.jsx("input",{id:"cmd-command",className:"cmd-input",value:m.command,placeholder:a("exampleCommand"),onChange:e=>d({...m,command:e.target.value}),onKeyDown:e=>{e.key==="Enter"&&!e.nativeEvent.isComposing&&_()}}),n.jsxs("label",{htmlFor:"cmd-cwd",children:[a("directory")," ",n.jsx("span",{className:"cmd-hint",children:a("cwdHint")})]}),n.jsx("input",{id:"cmd-cwd",className:"cmd-input",value:m.cwd,placeholder:"${pwd}",onChange:e=>d({...m,cwd:e.target.value}),onKeyDown:e=>{e.key==="Enter"&&!e.nativeEvent.isComposing&&_()}}),n.jsxs("div",{className:"cmd-form-actions",children:[n.jsx("button",{type:"button",className:"btn",onClick:K,children:a("cancel")}),n.jsx("button",{type:"button",className:"btn primary",disabled:!m.name.trim()||!m.command.trim(),onClick:_,children:a("save")})]})]}):n.jsxs(n.Fragment,{children:[t.commands.length===0&&n.jsx("div",{className:"panel-empty",children:a("noCommands")}),t.commands.map((e,s)=>n.jsxs("div",{className:"cmd-item",children:[n.jsx("button",{type:"button",className:"cmd-run",title:a("clickToRun"),onClick:()=>I(e),children:n.jsx(Z,{})}),n.jsxs("button",{type:"button",className:"cmd-main",title:a("clickToRun"),onClick:()=>I(e),children:[n.jsx("span",{className:"cmd-name",children:e.name}),n.jsx("span",{className:"cmd-command",children:e.command}),e.cwd&&n.jsx("span",{className:"cmd-cwd",children:e.cwd})]}),n.jsx("button",{type:"button",className:"cmd-act",title:a("edit"),onClick:()=>L(s),children:n.jsx(M,{})}),n.jsx("button",{type:"button",className:`cmd-act del ${i===s?"confirm":""}`,title:a("delete"),onClick:()=>J(s),children:i===s?a("confirmQ"):n.jsx(ee,{})})]},s))]})}),n.jsxs("div",{className:"term-tabs-block",children:[n.jsxs("div",{className:"panel-header",children:[n.jsx("span",{className:"panel-title",children:a("terminal")}),n.jsx("button",{type:"button",className:"panel-new",title:a("newTerminal"),onClick:H,children:n.jsx(P,{})})]}),n.jsxs("div",{className:"panel-body",children:[t.terminals.length===0&&n.jsx("div",{className:"panel-empty",children:a("noTerminal")}),S.map(A),T.length>0&&n.jsxs("div",{className:"term-folder",children:[n.jsxs("button",{type:"button",className:`term-folder-header ${F?"open":""}`,title:a("aiBashGroup"),onClick:()=>R(e=>!e),children:[n.jsx("span",{className:"term-folder-caret",children:F?"▾":"▸"}),n.jsx("span",{className:"term-folder-title",children:a("aiBashGroup")}),n.jsx("span",{className:"term-folder-count",children:T.length})]}),F&&n.jsx("div",{className:"term-folder-body",children:T.map(A)})]})]})]})]}),n.jsxs("div",{className:"term-main",children:[h&&n.jsx("div",{className:"drawer-backdrop",onClick:()=>j(!1)}),n.jsx("button",{type:"button",className:"term-side-toggle",title:a("commands"),onClick:()=>j(e=>!e),children:n.jsx(ne,{})}),t.terminals.length===0?n.jsxs("div",{className:"term-empty",children:[n.jsx(te,{className:"term-empty-icon"}),n.jsx("div",{className:"term-empty-title",children:a("builtinTerminal")}),n.jsx("div",{className:"term-empty-sub",children:a("termEmptySub")})]}):t.terminals.map(e=>n.jsx(re,{conversationId:e.conversationId,terminalId:e.id,command:e.command,cwd:e.cwd,title:e.title,active:e.id===w,send:c,register:x.register},`${e.conversationId}:${e.id}`))]})]})}export{ue as TerminalPanel};
|