pi-web-ui 0.94.1 → 0.96.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.
Files changed (100) hide show
  1. package/CHANGELOG.md +91 -2
  2. package/README.md +5 -6
  3. package/README.zh-CN.md +4 -5
  4. package/bin/pi-web-ui.mjs +910 -237
  5. package/dist/server/agent-service.js +2655 -231
  6. package/dist/server/approval-rules.js +596 -0
  7. package/dist/server/attachment-store.js +129 -0
  8. package/dist/server/attachments.js +92 -174
  9. package/dist/server/bg-servers.js +45 -7
  10. package/dist/server/claim-files-tool.js +4 -8
  11. package/dist/server/claim-store.js +4 -2
  12. package/dist/server/client-state.js +67 -14
  13. package/dist/server/compact-context-tool.js +126 -0
  14. package/dist/server/composer-drafts.js +9 -0
  15. package/dist/server/context-budget.js +317 -0
  16. package/dist/server/control-socket.js +57 -28
  17. package/dist/server/conversation-read-tool.js +7 -17
  18. package/dist/server/dangling-tools.js +229 -0
  19. package/dist/server/delegate-task.js +25 -28
  20. package/dist/server/dsh/dsh-agent-service.js +69 -66
  21. package/dist/server/edit-soft-tool.js +84 -16
  22. package/dist/server/eval-tool.js +588 -0
  23. package/dist/server/file-archives.js +16 -5
  24. package/dist/server/files-service.js +65 -18
  25. package/dist/server/goal-service.js +371 -77
  26. package/dist/server/hashline-engine.js +703 -0
  27. package/dist/server/host-guard.js +94 -0
  28. package/dist/server/host-metrics.js +26 -2
  29. package/dist/server/i18n.js +3 -3
  30. package/dist/server/index.js +456 -80
  31. package/dist/server/lsp-tool.js +1371 -0
  32. package/dist/server/mcp-bridge.js +47 -3
  33. package/dist/server/model-admin.js +112 -32
  34. package/dist/server/office-parse.js +375 -0
  35. package/dist/server/patch-tool.js +85 -0
  36. package/dist/server/permission-preset.js +25 -0
  37. package/dist/server/plan-manager.js +114 -0
  38. package/dist/server/plugin-api-catalog.js +296 -0
  39. package/dist/server/plugin-catalog-sync.js +36 -19
  40. package/dist/server/plugin-catalog.js +11 -4
  41. package/dist/server/plugin-facilities.js +92 -21
  42. package/dist/server/plugin-install-spec.js +196 -0
  43. package/dist/server/plugin-installer.js +73 -0
  44. package/dist/server/plugin-llm.js +71 -65
  45. package/dist/server/plugin-manifest-validate.js +305 -0
  46. package/dist/server/plugin-project.js +117 -13
  47. package/dist/server/plugin-tool-guard.js +120 -0
  48. package/dist/server/plugin-updater.js +115 -12
  49. package/dist/server/plugins.js +950 -205
  50. package/dist/server/present-files-tool.js +9 -12
  51. package/dist/server/process-utils.js +16 -6
  52. package/dist/server/prompt-composer.js +9 -0
  53. package/dist/server/protocol-version.js +1 -1
  54. package/dist/server/read-tool.js +69 -30
  55. package/dist/server/resolve-global-sdk.js +30 -16
  56. package/dist/server/schedule-agent-tool.js +12 -15
  57. package/dist/server/scheduler-tasks.js +6 -0
  58. package/dist/server/sdk-origin.js +18 -2
  59. package/dist/server/serialize.js +111 -14
  60. package/dist/server/settings-service.js +112 -3
  61. package/dist/server/skill-tool.js +5 -7
  62. package/dist/server/subagent-templates.js +51 -0
  63. package/dist/server/subagents.js +83 -66
  64. package/dist/server/terminals.js +248 -81
  65. package/dist/server/tool-approval.js +84 -0
  66. package/dist/server/tool-manager.js +237 -12
  67. package/dist/server/tool-overrides.js +59 -0
  68. package/dist/server/update-check.js +28 -1
  69. package/dist/server/uploads.js +17 -2
  70. package/dist/server/wait-subscription-scan.js +18 -21
  71. package/dist/server/workspace-snapshot.js +113 -0
  72. package/dist/server/ws-client-id.js +29 -0
  73. package/dist/server/ws-pending-queue.js +60 -0
  74. package/extensions/webui.ts +60 -2
  75. package/package.json +5 -3
  76. package/plugin-sdk/README.md +25 -0
  77. package/plugin-sdk/index.d.ts +31 -38
  78. package/plugin-sdk/index.mjs +35 -19
  79. package/plugins/catalog.json +40 -0
  80. package/themes/aetheris.css +457 -0
  81. package/themes/ayu-light.css +6 -6
  82. package/themes/catppuccin-latte.css +6 -6
  83. package/themes/claude-code-dark.css +144 -0
  84. package/themes/codex.css +6 -6
  85. package/themes/everforest-light.css +6 -6
  86. package/themes/geist.css +6 -6
  87. package/themes/gruvbox-light.css +6 -6
  88. package/themes/kanagawa-lotus.css +6 -6
  89. package/themes/rose-pine-dawn.css +6 -6
  90. package/themes/solarized-light.css +6 -6
  91. package/themes/vs-code-dark.css +146 -0
  92. package/themes/zhupi-dark.css +658 -0
  93. package/themes/zhupi.css +711 -0
  94. package/web/dist/assets/{TerminalPanel-MVoxpJOA.js → TerminalPanel-DDChcYOh.js} +1 -1
  95. package/web/dist/assets/index-Do9RgJC3.js +366 -0
  96. package/web/dist/assets/index-DryOsILO.css +1 -0
  97. package/web/dist/assets/{markdown-eUQn_o9D.js → markdown-DXwnfD9T.js} +1 -1
  98. package/web/dist/index.html +3 -3
  99. package/web/dist/assets/index-B3S9MxnN.css +0 -1
  100. package/web/dist/assets/index-DVLrHI2E.js +0 -364
@@ -62,12 +62,12 @@
62
62
  --auth-green: #79740e;
63
63
  --scroll-thumb: #d5c4a1;
64
64
  --scroll-thumb-hover: #bdae93;
65
- --notice-err-bg: #401d23;
66
- --notice-warn-bg: #38251f;
67
- --notice-info-bg: #1b2544;
68
- --notice-err-border: #ef4444;
69
- --notice-warn-border: #f59e0b;
70
- --notice-info-border: #3b82f6;
65
+ --notice-err-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--red));
66
+ --notice-warn-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--amber));
67
+ --notice-info-bg: color-mix(in srgb, var(--bg) 95%, var(--info-blue));
68
+ --notice-err-border: var(--red);
69
+ --notice-warn-border: var(--amber);
70
+ --notice-info-border: var(--info-blue);
71
71
  --send-blue: #9d0006;
72
72
  --send-blue-hover: #af3a03;
73
73
  --stop-red: #ef4444;
@@ -62,12 +62,12 @@
62
62
  --auth-green: #6f894e;
63
63
  --scroll-thumb: #d5cea3;
64
64
  --scroll-thumb-hover: #bfb586;
65
- --notice-err-bg: #401d23;
66
- --notice-warn-bg: #38251f;
67
- --notice-info-bg: #1b2544;
68
- --notice-err-border: #ef4444;
69
- --notice-warn-border: #f59e0b;
70
- --notice-info-border: #3b82f6;
65
+ --notice-err-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--red));
66
+ --notice-warn-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--amber));
67
+ --notice-info-bg: color-mix(in srgb, var(--bg) 95%, var(--info-blue));
68
+ --notice-err-border: var(--red);
69
+ --notice-warn-border: var(--amber);
70
+ --notice-info-border: var(--info-blue);
71
71
  --send-blue: #4d699b;
72
72
  --send-blue-hover: #3d5680;
73
73
  --stop-red: #ef4444;
@@ -62,12 +62,12 @@
62
62
  --auth-green: #56949f;
63
63
  --scroll-thumb: #e0d8ce;
64
64
  --scroll-thumb-hover: #c9bfb2;
65
- --notice-err-bg: #401d23;
66
- --notice-warn-bg: #38251f;
67
- --notice-info-bg: #1b2544;
68
- --notice-err-border: #ef4444;
69
- --notice-warn-border: #f59e0b;
70
- --notice-info-border: #3b82f6;
65
+ --notice-err-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--red));
66
+ --notice-warn-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--amber));
67
+ --notice-info-bg: color-mix(in srgb, var(--bg) 95%, var(--info-blue));
68
+ --notice-err-border: var(--red);
69
+ --notice-warn-border: var(--amber);
70
+ --notice-info-border: var(--info-blue);
71
71
  --send-blue: #907aa9;
72
72
  --send-blue-hover: #79759c;
73
73
  --stop-red: #ef4444;
@@ -62,12 +62,12 @@
62
62
  --auth-green: #859900;
63
63
  --scroll-thumb: #d5cbab;
64
64
  --scroll-thumb-hover: #b7a982;
65
- --notice-err-bg: #401d23;
66
- --notice-warn-bg: #38251f;
67
- --notice-info-bg: #1b2544;
68
- --notice-err-border: #ef4444;
69
- --notice-warn-border: #f59e0b;
70
- --notice-info-border: #3b82f6;
65
+ --notice-err-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--red));
66
+ --notice-warn-bg: color-mix(in srgb, var(--bg-elev) 90%, var(--amber));
67
+ --notice-info-bg: color-mix(in srgb, var(--bg) 95%, var(--info-blue));
68
+ --notice-err-border: var(--red);
69
+ --notice-warn-border: var(--amber);
70
+ --notice-info-border: var(--info-blue);
71
71
  --send-blue: #268bd2;
72
72
  --send-blue-hover: #2aa198;
73
73
  --stop-red: #ef4444;
@@ -0,0 +1,146 @@
1
+ /* theme-name: VS Code 暗色 */
2
+ /* theme-name-en: VS Code Dark */
3
+ /* theme-group: classic */
4
+ :root {
5
+ color-scheme: dark;
6
+ --bg: #1e1e1e;
7
+ --bg-elev: #252526;
8
+ --bg-elev2: #2d2d2d;
9
+ --border: #3c3c3c;
10
+ --border-soft: #333333;
11
+ --text: #d4d4d4;
12
+ --text-dim: #9d9d9d;
13
+ --text-faint: #6a6a6a;
14
+ --accent: #297aa0;
15
+ --accent-soft: rgba(41, 122, 160, 0.16);
16
+ --green: #4ec9b0;
17
+ --green-soft: rgba(78, 201, 176, 0.12);
18
+ --red: #f48771;
19
+ --red-soft: rgba(244, 135, 113, 0.12);
20
+ --amber: #dcdcaa;
21
+ --blue: #569cd6;
22
+ --blue-soft: rgba(86, 156, 214, 0.12);
23
+ --term-bg: #1e1e1e;
24
+ --term-fg: #d4d4d4;
25
+ --term-cursor: #297aa0;
26
+ --term-cursor-accent: #1e1e1e;
27
+ --term-selection: rgba(41, 122, 160, 0.3);
28
+ --term-black: #2d2d2d;
29
+ --term-red: #f44747;
30
+ --term-green: #6a9955;
31
+ --term-yellow: #d7ba7d;
32
+ --term-blue: #569cd6;
33
+ --term-magenta: #c586c0;
34
+ --term-cyan: #4ec9b0;
35
+ --term-white: #e5e5e5;
36
+ --term-bright-black: #6a6a6a;
37
+ --term-bright-red: #f44747;
38
+ --term-bright-green: #6a9955;
39
+ --term-bright-yellow: #d7ba7d;
40
+ --term-bright-blue: #569cd6;
41
+ --term-bright-magenta: #c586c0;
42
+ --term-bright-cyan: #4ec9b0;
43
+ --term-bright-white: #ffffff;
44
+ --mono: "SF Mono", "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;
45
+ --mermaid-font-size: 12px;
46
+ --tooltip-bg: #252526;
47
+ --code-bg: #1e1e1e;
48
+ --code-text: #d4d4d4;
49
+ --code-border: var(--border-soft);
50
+ --code-pad: 8px 10px;
51
+ --card-body-pad: 4px 14px 12px;
52
+ --err-text: #f48771;
53
+ --red-text: #f99b92;
54
+ --amber-text: #e8d49a;
55
+ --info-blue: #569cd6;
56
+ --link: #3794ff;
57
+ --link-hover: #4da3ff;
58
+ --link-soft: #4da3ff;
59
+ --md-strong: #e5e5e5;
60
+ --skill-blue: #569cd6;
61
+ --plugin-purple: #c586c0;
62
+ --auth-green: #4ec9b0;
63
+ --scroll-thumb: #3f3f3f;
64
+ --scroll-thumb-hover: #555555;
65
+ --notice-err-bg: #412126;
66
+ --notice-warn-bg: #39351f;
67
+ --notice-info-bg: #1d2a3a;
68
+ --notice-err-border: #f44747;
69
+ --notice-warn-border: #cca700;
70
+ --notice-info-border: #4d9ec9;
71
+ --send-blue: #297aa0;
72
+ --send-blue-hover: #3493c4;
73
+ --stop-red: #f44747;
74
+ --stop-red-hover: #e13b3b;
75
+ --brand-grad-a: #297aa0;
76
+ --brand-grad-b: #569cd6;
77
+ --on-amber: #1a1a1a;
78
+ --search-active-fg: #1e1e1e;
79
+ --switch-knob: #ffffff;
80
+ --bg-elev3: rgba(255, 255, 255, 0.06);
81
+ --sunken-bg: rgba(0, 0, 0, 0.2);
82
+ --glow-015: rgba(255, 255, 255, 0.015);
83
+ --glow-025: rgba(255, 255, 255, 0.025);
84
+ --glow-03: rgba(255, 255, 255, 0.03);
85
+ --glow-04: rgba(255, 255, 255, 0.04);
86
+ --glow-05: rgba(255, 255, 255, 0.05);
87
+ --glow-12: rgba(255, 255, 255, 0.12);
88
+ --glow-18: rgba(255, 255, 255, 0.18);
89
+ --glow-22: rgba(255, 255, 255, 0.22);
90
+ --glow-38: rgba(255, 255, 255, 0.38);
91
+ --control-fg: #9d9d9d;
92
+ --control-bg: #252526;
93
+ --control-border: #3c3c3c;
94
+ --bg-image: none;
95
+ --bg-image-dim: 0.78;
96
+ --bg-image-blur: 0px;
97
+ --wallpaper-panel-alpha: 100%;
98
+ --topbar-bg: #252526;
99
+ --statusbar-bg: #252526;
100
+ --panel-bg: #252526;
101
+ --card-bg: #252526;
102
+ --chip-bg: #2d2d2d;
103
+ --msgs-bg: #1e1e1e;
104
+ --inputbox-bg: #252526;
105
+ --menu-bg: var(--bg-elev2);
106
+ }
107
+
108
+ /* ---- syntax highlighting (VS Code Dark+) ---- */
109
+ .hljs {
110
+ color: #d4d4d4;
111
+ background: #1e1e1e;
112
+ }
113
+ .hljs-doctag,
114
+ .hljs-keyword,
115
+ .hljs-meta .hljs-keyword {
116
+ color: #569cd6;
117
+ }
118
+ .hljs-title,
119
+ .hljs-title.class_,
120
+ .hljs-title.function_ {
121
+ color: #dcdcaa;
122
+ }
123
+ .hljs-literal,
124
+ .hljs-number {
125
+ color: #b5cea8;
126
+ }
127
+ .hljs-string,
128
+ .hljs-regexp {
129
+ color: #ce9178;
130
+ }
131
+ .hljs-built_in,
132
+ .hljs-type {
133
+ color: #4ec9b0;
134
+ }
135
+ .hljs-comment,
136
+ .hljs-code {
137
+ color: #6a9955;
138
+ }
139
+ .hljs-attr,
140
+ .hljs-attribute {
141
+ color: #9cdcfe;
142
+ }
143
+ .hljs-tag,
144
+ .hljs-name {
145
+ color: #569cd6;
146
+ }