synabun 2.0.5 → 2.0.7
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/CHANGELOG.md +40 -0
- package/README.md +2 -1
- package/THIRD-PARTY-LICENSES.md +13 -0
- package/docs/whatsapp.md +151 -16
- package/hooks/claude-code/shared.mjs +6 -3
- package/lib/child-path.js +303 -0
- package/lib/claude-hooks.js +2 -1
- package/lib/data-home-migration.js +2 -0
- package/lib/desktop-app.js +265 -0
- package/lib/external-tools.js +7 -3
- package/lib/log-redact.js +102 -0
- package/lib/packaged-runtime.js +138 -11
- package/mcp-server/dist/http.d.ts +3 -1
- package/mcp-server/dist/http.d.ts.map +1 -1
- package/mcp-server/dist/http.js +15 -4
- package/mcp-server/dist/http.js.map +1 -1
- package/mcp-server/dist/index.d.ts.map +1 -1
- package/mcp-server/dist/index.js +9 -6
- package/mcp-server/dist/index.js.map +1 -1
- package/mcp-server/dist/services/budget-judgments.d.ts +108 -0
- package/mcp-server/dist/services/budget-judgments.d.ts.map +1 -0
- package/mcp-server/dist/services/budget-judgments.js +153 -0
- package/mcp-server/dist/services/budget-judgments.js.map +1 -0
- package/mcp-server/dist/services/codex-config-heal.d.ts +5 -1
- package/mcp-server/dist/services/codex-config-heal.d.ts.map +1 -1
- package/mcp-server/dist/services/codex-config-heal.js +41 -4
- package/mcp-server/dist/services/codex-config-heal.js.map +1 -1
- package/mcp-server/dist/services/identity.d.ts +11 -0
- package/mcp-server/dist/services/identity.d.ts.map +1 -1
- package/mcp-server/dist/services/identity.js +24 -0
- package/mcp-server/dist/services/identity.js.map +1 -1
- package/mcp-server/dist/services/neural-interface.d.ts +13 -0
- package/mcp-server/dist/services/neural-interface.d.ts.map +1 -1
- package/mcp-server/dist/services/neural-interface.js +34 -2
- package/mcp-server/dist/services/neural-interface.js.map +1 -1
- package/mcp-server/dist/services/typesafe-config.d.ts +1 -1
- package/mcp-server/dist/services/typesafe-config.d.ts.map +1 -1
- package/mcp-server/dist/services/typesafe-config.js +4 -1
- package/mcp-server/dist/services/typesafe-config.js.map +1 -1
- package/mcp-server/dist/tools/agents.d.ts +10 -7
- package/mcp-server/dist/tools/agents.d.ts.map +1 -1
- package/mcp-server/dist/tools/agents.js +34 -13
- package/mcp-server/dist/tools/agents.js.map +1 -1
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts +17 -0
- package/mcp-server/dist/tools/whatsapp-send-file.d.ts.map +1 -0
- package/mcp-server/dist/tools/whatsapp-send-file.js +44 -0
- package/mcp-server/dist/tools/whatsapp-send-file.js.map +1 -0
- package/mcp-server/dist/tui.js +2 -1
- package/mcp-server/dist/tui.js.map +1 -1
- package/mcp-server/dist/version.d.ts +5 -0
- package/mcp-server/dist/version.d.ts.map +1 -0
- package/mcp-server/dist/version.js +21 -0
- package/mcp-server/dist/version.js.map +1 -0
- package/mcp-server/package-lock.json +2 -2
- package/mcp-server/package.json +1 -1
- package/mcp-server/run.mjs +15 -9
- package/mcp-server/src/http.ts +18 -3
- package/mcp-server/src/index.ts +9 -6
- package/mcp-server/src/services/budget-judgments.ts +183 -0
- package/mcp-server/src/services/codex-config-heal.ts +35 -4
- package/mcp-server/src/services/identity.ts +27 -0
- package/mcp-server/src/services/neural-interface.ts +34 -2
- package/mcp-server/src/services/typesafe-config.ts +4 -1
- package/mcp-server/src/tools/agents.ts +33 -14
- package/mcp-server/src/tools/whatsapp-send-file.ts +51 -0
- package/mcp-server/src/tui.ts +2 -1
- package/mcp-server/src/version.ts +22 -0
- package/neural-interface/i18n/en.json +627 -57
- package/neural-interface/i18n/pt-BR.json +626 -56
- package/neural-interface/lib/account-usage.js +163 -0
- package/neural-interface/lib/assistant-api.js +255 -52
- package/neural-interface/lib/assistant-brains/claude.js +15 -2
- package/neural-interface/lib/assistant-brains/codex.js +3 -0
- package/neural-interface/lib/assistant-brains/opencode.js +17 -4
- package/neural-interface/lib/assistant-budget-planner.js +390 -0
- package/neural-interface/lib/assistant-budget-split.js +408 -0
- package/neural-interface/lib/assistant-budget.js +94 -95
- package/neural-interface/lib/assistant-config.js +62 -14
- package/neural-interface/lib/assistant-dispatch.js +432 -125
- package/neural-interface/lib/assistant-jev.js +26 -3
- package/neural-interface/lib/assistant-persona.js +68 -11
- package/neural-interface/lib/assistant-plan-permissions.js +8 -1
- package/neural-interface/lib/assistant-route-accounts.js +14 -0
- package/neural-interface/lib/assistant-route-gate.js +19 -3
- package/neural-interface/lib/assistant-router.js +373 -42
- package/neural-interface/lib/assistant-runtime.js +307 -47
- package/neural-interface/lib/assistant-user-writer.js +4 -2
- package/neural-interface/lib/augmented-path.js +317 -53
- package/neural-interface/lib/claude-accounts.js +342 -31
- package/neural-interface/lib/claude-agent-bridge.js +90 -3
- package/neural-interface/lib/claude-executable.js +6 -1
- package/neural-interface/lib/claude-model-catalog.js +3 -3
- package/neural-interface/lib/claude-panel-auth.js +221 -0
- package/neural-interface/lib/claude-profile-api-key.js +62 -0
- package/neural-interface/lib/cli-install-api.js +137 -0
- package/neural-interface/lib/cli-install.js +797 -0
- package/neural-interface/lib/cli-path.js +130 -0
- package/neural-interface/lib/cli-resolver.js +744 -0
- package/neural-interface/lib/cli-update-planner.js +143 -7
- package/neural-interface/lib/codex-account-auth.js +178 -0
- package/neural-interface/lib/codex-accounts.js +489 -0
- package/neural-interface/lib/codex-capabilities.js +2 -1
- package/neural-interface/lib/codex-compat-rpc.js +8 -2
- package/neural-interface/lib/codex-mcp-approvals.js +5 -1
- package/neural-interface/lib/codex-panel-auth.js +62 -0
- package/neural-interface/lib/codex-session-settings.js +1 -1
- package/neural-interface/lib/codex-settings-schema.js +120 -0
- package/neural-interface/lib/desktop/config.js +3 -0
- package/neural-interface/lib/git-bash/bzip2.js +339 -0
- package/neural-interface/lib/git-bash/claude-settings.js +73 -0
- package/neural-interface/lib/git-bash/extract-worker.js +34 -0
- package/neural-interface/lib/git-bash/install.js +529 -0
- package/neural-interface/lib/git-bash/licenses/COPYING +360 -0
- package/neural-interface/lib/git-bash/licenses/LGPL-2.1 +511 -0
- package/neural-interface/lib/git-bash/manager.js +268 -0
- package/neural-interface/lib/git-bash/pins.js +206 -0
- package/neural-interface/lib/git-bash/pins.json +34 -0
- package/neural-interface/lib/git-bash/resolver.js +194 -0
- package/neural-interface/lib/git-read.js +34 -2
- package/neural-interface/lib/install-details.js +145 -0
- package/neural-interface/lib/mcp-installer.js +14 -2
- package/neural-interface/lib/native-loop-providers.js +16 -3
- package/neural-interface/lib/native-loop-runtime.js +9 -4
- package/neural-interface/lib/os-path.js +319 -0
- package/neural-interface/lib/provider-panel-api-key-auth.js +92 -0
- package/neural-interface/lib/provider-panel-terminal-auth.js +95 -0
- package/neural-interface/lib/pty-host/core.js +2 -1
- package/neural-interface/lib/pty-host/manager.js +27 -2
- package/neural-interface/lib/remote-policy.js +20 -11
- package/neural-interface/lib/session-title-generator.js +4 -3
- package/neural-interface/lib/system-about.js +340 -0
- package/neural-interface/lib/system-activity.js +66 -0
- package/neural-interface/lib/terminal-env.js +11 -3
- package/neural-interface/lib/terminal-path.js +55 -0
- package/neural-interface/lib/virtual-socket.js +12 -1
- package/neural-interface/lib/whatsapp/baileys-adapter.js +165 -45
- package/neural-interface/lib/whatsapp/bridge.js +78 -34
- package/neural-interface/lib/whatsapp/commands.js +13 -14
- package/neural-interface/lib/whatsapp/config.js +134 -20
- package/neural-interface/lib/whatsapp/fake-baileys.js +99 -14
- package/neural-interface/lib/whatsapp/host-core.js +168 -35
- package/neural-interface/lib/whatsapp/inbound.js +5 -3
- package/neural-interface/lib/whatsapp/local-file.js +524 -0
- package/neural-interface/lib/whatsapp/manager.js +92 -32
- package/neural-interface/lib/whatsapp/paths.js +11 -1
- package/neural-interface/lib/whatsapp/protocol.js +65 -5
- package/neural-interface/lib/whatsapp/redact.js +63 -0
- package/neural-interface/lib/whatsapp/service.js +343 -91
- package/neural-interface/lib/whatsapp/transcription.js +463 -0
- package/neural-interface/package-lock.json +2 -2
- package/neural-interface/package.json +1 -1
- package/neural-interface/public/index.html +2 -0
- package/neural-interface/public/index2d.html +2 -0
- package/neural-interface/public/offline.html +16 -1
- package/neural-interface/public/onboarding.html +96 -2
- package/neural-interface/public/shared/account-i18n.js +7 -0
- package/neural-interface/public/shared/account-menu.js +539 -0
- package/neural-interface/public/shared/account-usage.js +19 -0
- package/neural-interface/public/shared/account-view.js +335 -0
- package/neural-interface/public/shared/agent-runtime-options.js +28 -8
- package/neural-interface/public/shared/assistant/asst-accounts.js +182 -184
- package/neural-interface/public/shared/assistant/asst-api.js +32 -2
- package/neural-interface/public/shared/assistant/asst-brain-picker.js +124 -25
- package/neural-interface/public/shared/assistant/asst-budget.js +259 -303
- package/neural-interface/public/shared/assistant/asst-mascot.js +126 -7
- package/neural-interface/public/shared/assistant/asst-menu.js +15 -3
- package/neural-interface/public/shared/assistant/asst-panel.js +48 -14
- package/neural-interface/public/shared/assistant/asst-render.js +38 -7
- package/neural-interface/public/shared/assistant/asst-route.js +72 -14
- package/neural-interface/public/shared/assistant/asst-routes-editor.js +45 -6
- package/neural-interface/public/shared/assistant/asst-slash.js +1 -1
- package/neural-interface/public/shared/assistant/asst-state.js +1 -1
- package/neural-interface/public/shared/assistant/asst-styles.js +99 -17
- package/neural-interface/public/shared/cdx/cdx-commands.js +4 -1
- package/neural-interface/public/shared/cdx/cdx-features.js +22 -14
- package/neural-interface/public/shared/cdx/cdx-icons.js +2 -0
- package/neural-interface/public/shared/cdx/cdx-panel.js +48 -107
- package/neural-interface/public/shared/cdx/cdx-settings.js +231 -0
- package/neural-interface/public/shared/cdx/cdx-styles.js +128 -107
- package/neural-interface/public/shared/cdx/cdx-tabs.js +261 -664
- package/neural-interface/public/shared/cdx/cdx-ws.js +2 -0
- package/neural-interface/public/shared/claude-account-view.js +3 -0
- package/neural-interface/public/shared/cli-install-view.js +392 -0
- package/neural-interface/public/shared/cli-status.js +282 -22
- package/neural-interface/public/shared/cp/cp-events.js +2 -1
- package/neural-interface/public/shared/cp/cp-styles.js +46 -0
- package/neural-interface/public/shared/desktop-bridge.js +39 -0
- package/neural-interface/public/shared/desktop-titlebar-page.js +59 -0
- package/neural-interface/public/shared/desktop-titlebar-view.js +122 -0
- package/neural-interface/public/shared/desktop-titlebar.js +153 -0
- package/neural-interface/public/shared/desktop-update-view.js +462 -0
- package/neural-interface/public/shared/editor/editor-panel.js +1 -1
- package/neural-interface/public/shared/explorer/fx-main.js +1 -1
- package/neural-interface/public/shared/git-bash-view.js +145 -0
- package/neural-interface/public/shared/html-shell.js +1 -0
- package/neural-interface/public/shared/i18n.js +19 -1
- package/neural-interface/public/shared/install-details-view.js +86 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-panel.js +32 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-send.js +17 -0
- package/neural-interface/public/shared/ocp-v2/ocp-v2-styles.js +118 -0
- package/neural-interface/public/shared/pwa-install-page.js +3 -1
- package/neural-interface/public/shared/settings/settings-about-pane.js +271 -0
- package/neural-interface/public/shared/settings/settings-about.js +254 -0
- package/neural-interface/public/shared/settings/settings-ia.js +15 -0
- package/neural-interface/public/shared/showcase-privacy.js +489 -0
- package/neural-interface/public/shared/storage.js +30 -3
- package/neural-interface/public/shared/styles.css +278 -31
- package/neural-interface/public/shared/synabun-mascot.js +48 -2
- package/neural-interface/public/shared/ui-claude-panel.js +212 -213
- package/neural-interface/public/shared/ui-cli-banner.js +355 -0
- package/neural-interface/public/shared/ui-git-bash.js +124 -0
- package/neural-interface/public/shared/ui-judgments.js +10 -1
- package/neural-interface/public/shared/ui-loading.js +30 -6
- package/neural-interface/public/shared/ui-menubar.js +13 -3
- package/neural-interface/public/shared/ui-navbar.js +3 -1
- package/neural-interface/public/shared/ui-provider-auth.js +104 -0
- package/neural-interface/public/shared/ui-provider-terminal-auth.js +223 -0
- package/neural-interface/public/shared/ui-sessions.js +9 -3
- package/neural-interface/public/shared/ui-settings.js +55 -3
- package/neural-interface/public/shared/ui-sidepanel-sessions.js +3 -1
- package/neural-interface/public/shared/ui-sync.js +6 -0
- package/neural-interface/public/shared/ui-terminal.js +17 -0
- package/neural-interface/public/shared/ui-tool-updates.js +5 -0
- package/neural-interface/public/shared/ui-update.js +594 -5
- package/neural-interface/public/shared/ui-whatsapp.js +21 -6
- package/neural-interface/public/shared/whatsapp/wa-view.js +51 -8
- package/neural-interface/public/shared/worker-end.js +2 -0
- package/neural-interface/public/sw.js +1 -1
- package/neural-interface/public/variant/2d/main.js +10 -1
- package/neural-interface/public/variant/3d/main.js +10 -1
- package/neural-interface/server.js +1219 -608
- package/package.json +4 -1
- package/setup.js +9 -8
|
@@ -10,11 +10,13 @@ export function injectStyles() {
|
|
|
10
10
|
tokens (docs/codex-sidepanel.md → Visual language). Add a value here
|
|
11
11
|
before using it anywhere else. The lightbox, the minimized pill and
|
|
12
12
|
the Context settings popover live outside the panel, so they carry the
|
|
13
|
-
tokens too.
|
|
13
|
+
tokens too, as does the header account menu (account-menu.js), whose
|
|
14
|
+
--acct-* values read them. */
|
|
14
15
|
.codex-panel,
|
|
15
16
|
.cxp-lightbox,
|
|
16
17
|
.cxp-session-pill,
|
|
17
|
-
.cxp-ctxpop
|
|
18
|
+
.cxp-ctxpop,
|
|
19
|
+
.acct-menu--codex {
|
|
18
20
|
/* Surfaces: one treatment per level */
|
|
19
21
|
--cxp-shell: rgba(16, 18, 22, 0.92);
|
|
20
22
|
--cxp-shell-border: rgba(255,255,255,0.08);
|
|
@@ -135,7 +137,7 @@ export function injectStyles() {
|
|
|
135
137
|
outline-offset: 2px;
|
|
136
138
|
}
|
|
137
139
|
/* Inside clipping containers the ring sits on the element instead of around it. */
|
|
138
|
-
.codex-panel :is(.cxp-fold-summary, .cxp-reasoning summary, .cxp-effort-menu-item, .cxp-
|
|
140
|
+
.codex-panel :is(.cxp-fold-summary, .cxp-reasoning summary, .cxp-effort-menu-item, .cxp-image-chip-remove, .cxp-sess-rename, .cxp-sess-archive-btn, .cxp-sess-unarchive-btn, .cxp-sess-search-input, .cxp-session-btn, .cxp-header-rename):focus-visible {
|
|
139
141
|
outline-offset: -2px;
|
|
140
142
|
}
|
|
141
143
|
.cxp-resize-handle {
|
|
@@ -254,6 +256,8 @@ export function injectStyles() {
|
|
|
254
256
|
margin-left: auto;
|
|
255
257
|
flex-shrink: 0;
|
|
256
258
|
}
|
|
259
|
+
/* The header account menu's trigger (account-menu.js) gives way before the session name does. */
|
|
260
|
+
.cxp-actions:has(> .acct-menu-trigger) { flex-shrink: 1; min-width: 0; }
|
|
257
261
|
.cxp-btn {
|
|
258
262
|
width: 24px;
|
|
259
263
|
height: 24px;
|
|
@@ -840,97 +844,6 @@ export function injectStyles() {
|
|
|
840
844
|
color: var(--cxp-text-3);
|
|
841
845
|
}
|
|
842
846
|
|
|
843
|
-
/* ── Account menu (under the header; opened from the Context settings popover) ── */
|
|
844
|
-
.cxp-account-menu {
|
|
845
|
-
position: absolute;
|
|
846
|
-
top: calc(100% + 6px);
|
|
847
|
-
right: 8px;
|
|
848
|
-
min-width: 230px;
|
|
849
|
-
max-width: 300px;
|
|
850
|
-
background: var(--cxp-pop);
|
|
851
|
-
border: 1px solid var(--cxp-border);
|
|
852
|
-
border-radius: var(--cxp-radius-md);
|
|
853
|
-
box-shadow: var(--cxp-shadow-pop);
|
|
854
|
-
padding: 6px;
|
|
855
|
-
z-index: 50;
|
|
856
|
-
display: none;
|
|
857
|
-
flex-direction: column;
|
|
858
|
-
gap: 2px;
|
|
859
|
-
}
|
|
860
|
-
.cxp-account-menu.open { display: flex; }
|
|
861
|
-
.cxp-account-empty {
|
|
862
|
-
padding: 8px 10px;
|
|
863
|
-
font-size: var(--cxp-fs-sm);
|
|
864
|
-
color: var(--cxp-text-3);
|
|
865
|
-
}
|
|
866
|
-
.cxp-account-row {
|
|
867
|
-
display: flex;
|
|
868
|
-
align-items: stretch;
|
|
869
|
-
gap: 2px;
|
|
870
|
-
border-radius: var(--cxp-radius-sm);
|
|
871
|
-
overflow: hidden;
|
|
872
|
-
}
|
|
873
|
-
.cxp-account-row.active { background: var(--cxp-surface-2); }
|
|
874
|
-
.cxp-account-row-main {
|
|
875
|
-
display: flex;
|
|
876
|
-
align-items: center;
|
|
877
|
-
gap: 8px;
|
|
878
|
-
flex: 1;
|
|
879
|
-
min-width: 0;
|
|
880
|
-
padding: 7px 9px;
|
|
881
|
-
background: transparent;
|
|
882
|
-
border: none;
|
|
883
|
-
cursor: pointer;
|
|
884
|
-
text-align: left;
|
|
885
|
-
font-family: var(--cxp-font);
|
|
886
|
-
color: var(--cxp-text);
|
|
887
|
-
}
|
|
888
|
-
.cxp-account-row-main:hover { background: var(--cxp-surface-1); }
|
|
889
|
-
.cxp-account-check {
|
|
890
|
-
width: 12px;
|
|
891
|
-
flex-shrink: 0;
|
|
892
|
-
color: var(--cxp-text);
|
|
893
|
-
font-size: var(--cxp-fs-sm);
|
|
894
|
-
}
|
|
895
|
-
.cxp-account-row-text { display: flex; flex-direction: column; min-width: 0; }
|
|
896
|
-
.cxp-account-row-label {
|
|
897
|
-
font-size: var(--cxp-fs-md);
|
|
898
|
-
overflow: hidden;
|
|
899
|
-
text-overflow: ellipsis;
|
|
900
|
-
white-space: nowrap;
|
|
901
|
-
}
|
|
902
|
-
.cxp-account-row-sub {
|
|
903
|
-
font-size: var(--cxp-fs-xs);
|
|
904
|
-
color: var(--cxp-text-3);
|
|
905
|
-
overflow: hidden;
|
|
906
|
-
text-overflow: ellipsis;
|
|
907
|
-
white-space: nowrap;
|
|
908
|
-
}
|
|
909
|
-
.cxp-account-row-remove {
|
|
910
|
-
flex-shrink: 0;
|
|
911
|
-
width: 26px;
|
|
912
|
-
background: transparent;
|
|
913
|
-
border: none;
|
|
914
|
-
color: var(--cxp-text-3);
|
|
915
|
-
cursor: pointer;
|
|
916
|
-
font-size: var(--cxp-fs-sm);
|
|
917
|
-
transition: color var(--cxp-dur-fast), background var(--cxp-dur-fast);
|
|
918
|
-
}
|
|
919
|
-
.cxp-account-row-remove:hover { color: var(--cxp-danger); background: var(--cxp-surface-1); }
|
|
920
|
-
.cxp-account-add {
|
|
921
|
-
margin-top: 4px;
|
|
922
|
-
padding: 8px 10px;
|
|
923
|
-
background: transparent;
|
|
924
|
-
border: 1px dashed var(--cxp-border-strong);
|
|
925
|
-
border-radius: var(--cxp-radius-sm);
|
|
926
|
-
color: var(--cxp-text-2);
|
|
927
|
-
font-size: var(--cxp-fs-sm);
|
|
928
|
-
font-family: var(--cxp-font);
|
|
929
|
-
cursor: pointer;
|
|
930
|
-
text-align: center;
|
|
931
|
-
transition: color var(--cxp-dur-fast), background var(--cxp-dur-fast);
|
|
932
|
-
}
|
|
933
|
-
.cxp-account-add:hover { background: var(--cxp-surface-1); color: var(--cxp-text); }
|
|
934
847
|
|
|
935
848
|
/* ── Context settings: the header cog and its popover (cdx-context-menu.js) ──
|
|
936
849
|
One grammar: a 28px head (title, at most one action) and 28px rows (label
|
|
@@ -1133,12 +1046,16 @@ export function injectStyles() {
|
|
|
1133
1046
|
.cxp-empty-logo svg { width: 32px; height: 32px; }
|
|
1134
1047
|
.cxp-empty-name { font-size: var(--cxp-fs-lg); font-weight: 500; color: var(--cxp-text-3); }
|
|
1135
1048
|
.cxp-empty-status { font-size: var(--cxp-fs-sm); color: var(--cxp-text-3); line-height: 1.5; min-height: 1em; }
|
|
1049
|
+
/* The CLI banner (ui-cli-banner.js): Codex not installed (with Install),
|
|
1050
|
+
being installed, failed to install, or found but failed to start. A
|
|
1051
|
+
left edge in the colour of what it says; the Install button is the
|
|
1052
|
+
panel's solid action. */
|
|
1136
1053
|
.cxp-cli-banner {
|
|
1137
1054
|
flex-shrink: 0;
|
|
1138
1055
|
display: grid;
|
|
1139
|
-
grid-template-columns: auto 1fr
|
|
1056
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
1140
1057
|
gap: 10px;
|
|
1141
|
-
align-items:
|
|
1058
|
+
align-items: start;
|
|
1142
1059
|
margin: 6px 8px 0;
|
|
1143
1060
|
padding: 10px 12px;
|
|
1144
1061
|
border: 1px solid var(--cxp-border);
|
|
@@ -1150,6 +1067,11 @@ export function injectStyles() {
|
|
|
1150
1067
|
position: relative;
|
|
1151
1068
|
z-index: 5;
|
|
1152
1069
|
}
|
|
1070
|
+
.cxp-cli-banner [hidden] { display: none !important; }
|
|
1071
|
+
.cxp-cli-banner--broken,
|
|
1072
|
+
.cxp-cli-banner--failed { box-shadow: inset 2px 0 0 var(--cxp-danger); }
|
|
1073
|
+
.cxp-cli-banner--installing { box-shadow: inset 2px 0 0 var(--cxp-running); }
|
|
1074
|
+
.cxp-cli-banner--done { box-shadow: inset 2px 0 0 var(--cxp-success); }
|
|
1153
1075
|
.cxp-cli-banner-icon {
|
|
1154
1076
|
width: 22px; height: 22px;
|
|
1155
1077
|
display: flex; align-items: center; justify-content: center;
|
|
@@ -1158,30 +1080,81 @@ export function injectStyles() {
|
|
|
1158
1080
|
color: var(--cxp-warning);
|
|
1159
1081
|
font-weight: 700;
|
|
1160
1082
|
}
|
|
1161
|
-
.cxp-cli-banner
|
|
1083
|
+
.cxp-cli-banner--broken .cxp-cli-banner-icon,
|
|
1084
|
+
.cxp-cli-banner--failed .cxp-cli-banner-icon { border-color: var(--cxp-danger); color: var(--cxp-danger); }
|
|
1085
|
+
.cxp-cli-banner--installing .cxp-cli-banner-icon { border-color: var(--cxp-running); color: var(--cxp-running); animation: cxp-working 1.2s ease-in-out infinite; }
|
|
1086
|
+
.cxp-cli-banner--done .cxp-cli-banner-icon { border-color: var(--cxp-success); color: var(--cxp-success); }
|
|
1087
|
+
.cxp-cli-banner--nudge { animation: cxp-cli-nudge 0.5s var(--cxp-ease); }
|
|
1088
|
+
@keyframes cxp-cli-nudge { 0%, 100% { transform: none; } 25% { transform: translateX(-3px); } 75% { transform: translateX(3px); } }
|
|
1089
|
+
.cxp-cli-banner-text { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
|
|
1162
1090
|
.cxp-cli-banner-title {
|
|
1163
1091
|
font-size: var(--cxp-fs-md); font-weight: 600;
|
|
1164
1092
|
color: var(--cxp-text);
|
|
1165
1093
|
}
|
|
1166
|
-
.cxp-cli-banner-body
|
|
1094
|
+
.cxp-cli-banner-body,
|
|
1095
|
+
.cxp-cli-banner-note,
|
|
1096
|
+
.cxp-cli-banner-step {
|
|
1167
1097
|
font-size: var(--cxp-fs-sm);
|
|
1168
1098
|
color: var(--cxp-text-2);
|
|
1169
|
-
|
|
1099
|
+
overflow-wrap: anywhere;
|
|
1170
1100
|
}
|
|
1171
|
-
.cxp-cli-banner-
|
|
1172
|
-
|
|
1101
|
+
.cxp-cli-banner-command { display: flex; align-items: flex-start; gap: 6px; }
|
|
1102
|
+
.cxp-cli-banner-command code,
|
|
1103
|
+
.cxp-cli-banner-error code {
|
|
1104
|
+
flex: 1;
|
|
1105
|
+
min-width: 0;
|
|
1106
|
+
padding: 3px 6px;
|
|
1173
1107
|
background: var(--cxp-surface-2);
|
|
1174
1108
|
border-radius: var(--cxp-radius-sm);
|
|
1175
1109
|
font-family: var(--cxp-mono);
|
|
1176
1110
|
font-size: var(--cxp-fs-sm);
|
|
1177
1111
|
color: var(--cxp-text);
|
|
1112
|
+
white-space: pre-wrap;
|
|
1113
|
+
word-break: break-all;
|
|
1114
|
+
user-select: text;
|
|
1178
1115
|
}
|
|
1179
|
-
.cxp-cli-banner-
|
|
1180
|
-
.cxp-cli-banner-
|
|
1181
|
-
|
|
1182
|
-
|
|
1116
|
+
.cxp-cli-banner-error code { display: block; max-height: 96px; overflow: auto; }
|
|
1117
|
+
.cxp-cli-banner-copy {
|
|
1118
|
+
flex-shrink: 0;
|
|
1119
|
+
height: 22px;
|
|
1120
|
+
padding: 0 8px;
|
|
1121
|
+
border: 1px solid var(--cxp-border-strong);
|
|
1122
|
+
border-radius: var(--cxp-radius-sm);
|
|
1123
|
+
background: transparent;
|
|
1124
|
+
color: var(--cxp-text-2);
|
|
1125
|
+
font-family: inherit;
|
|
1183
1126
|
font-size: var(--cxp-fs-sm);
|
|
1127
|
+
cursor: pointer;
|
|
1128
|
+
}
|
|
1129
|
+
.cxp-cli-banner-copy:hover { color: var(--cxp-text); background: var(--cxp-surface-2); }
|
|
1130
|
+
.cxp-cli-banner-progress { display: flex; flex-direction: column; gap: 4px; }
|
|
1131
|
+
.cxp-cli-banner-bar { height: 3px; border-radius: 2px; background: var(--cxp-surface-2); overflow: hidden; }
|
|
1132
|
+
.cxp-cli-banner-bar > span { display: block; height: 100%; width: 0; background: var(--cxp-running); transition: width var(--cxp-dur-fast) var(--cxp-ease); }
|
|
1133
|
+
.cxp-cli-banner-log {
|
|
1134
|
+
margin: 0;
|
|
1135
|
+
max-height: 84px;
|
|
1136
|
+
overflow: auto;
|
|
1137
|
+
padding: 4px 6px;
|
|
1138
|
+
background: var(--cxp-surface-1);
|
|
1139
|
+
border-radius: var(--cxp-radius-sm);
|
|
1140
|
+
font-family: var(--cxp-mono);
|
|
1141
|
+
font-size: var(--cxp-fs-xs);
|
|
1142
|
+
line-height: 1.45;
|
|
1143
|
+
color: var(--cxp-text-3);
|
|
1144
|
+
white-space: pre-wrap;
|
|
1145
|
+
word-break: break-all;
|
|
1146
|
+
}
|
|
1147
|
+
.cxp-cli-banner-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
|
|
1148
|
+
.cxp-cli-banner-install,
|
|
1149
|
+
.cxp-cli-banner-link,
|
|
1150
|
+
.cxp-cli-banner-path, .cxp-cli-banner-recheck,
|
|
1151
|
+
.cxp-cli-banner-dismiss {
|
|
1152
|
+
display: inline-flex; align-items: center; gap: 4px;
|
|
1153
|
+
height: 24px;
|
|
1154
|
+
padding: 0 10px;
|
|
1155
|
+
font-size: var(--cxp-fs-md);
|
|
1184
1156
|
font-weight: 500;
|
|
1157
|
+
line-height: 1;
|
|
1185
1158
|
border-radius: var(--cxp-radius-md);
|
|
1186
1159
|
border: 1px solid var(--cxp-border-strong);
|
|
1187
1160
|
background: transparent;
|
|
@@ -1192,10 +1165,27 @@ export function injectStyles() {
|
|
|
1192
1165
|
font-family: inherit;
|
|
1193
1166
|
transition: background var(--cxp-dur-fast);
|
|
1194
1167
|
}
|
|
1195
|
-
.cxp-cli-banner-
|
|
1168
|
+
.cxp-cli-banner-install {
|
|
1169
|
+
background: var(--cxp-solid);
|
|
1170
|
+
border-color: var(--cxp-solid);
|
|
1171
|
+
color: var(--cxp-on-solid);
|
|
1172
|
+
}
|
|
1173
|
+
.cxp-cli-banner-install:hover:not(:disabled) { background: var(--cxp-solid-hover); border-color: var(--cxp-solid-hover); }
|
|
1174
|
+
.cxp-cli-banner-link:hover,
|
|
1175
|
+
.cxp-cli-banner-path:hover:not(:disabled), .cxp-cli-banner-recheck:hover:not(:disabled),
|
|
1176
|
+
.cxp-cli-banner-dismiss:hover {
|
|
1196
1177
|
background: var(--cxp-surface-2);
|
|
1197
1178
|
}
|
|
1198
|
-
.cxp-cli-banner-
|
|
1179
|
+
.cxp-cli-banner-install:disabled,
|
|
1180
|
+
.cxp-cli-banner-path:disabled, .cxp-cli-banner-recheck:disabled { opacity: 0.5; cursor: default; }
|
|
1181
|
+
.cxp-cli-banner button:focus-visible,
|
|
1182
|
+
.cxp-cli-banner a:focus-visible { outline: 2px solid var(--cxp-focus); outline-offset: 2px; }
|
|
1183
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1184
|
+
.cxp-cli-banner--installing .cxp-cli-banner-icon,
|
|
1185
|
+
.cxp-cli-banner--nudge { animation: none; }
|
|
1186
|
+
.cxp-cli-banner--nudge { box-shadow: inset 2px 0 0 var(--cxp-warning), 0 0 0 1px var(--cxp-warning); }
|
|
1187
|
+
.cxp-cli-banner-bar > span { transition: none; }
|
|
1188
|
+
}
|
|
1199
1189
|
.codex-panel.cxp-cli-blocked .cxp-send { opacity: 0.4 !important; cursor: not-allowed !important; }
|
|
1200
1190
|
.codex-panel.cxp-cli-blocked .cxp-input { opacity: 0.7; }
|
|
1201
1191
|
|
|
@@ -2947,6 +2937,37 @@ export function injectStyles() {
|
|
|
2947
2937
|
opacity: 0.4;
|
|
2948
2938
|
cursor: default;
|
|
2949
2939
|
}
|
|
2940
|
+
/* Codex Settings: scoped compact groups and consistent native controls. */
|
|
2941
|
+
.cxp-settings-panel { display: flex; flex-direction: column; overflow: hidden; }
|
|
2942
|
+
.cxp-settings-body { overflow-y: auto; min-height: 0; }
|
|
2943
|
+
.cxp-settings-header { flex: none; font-size: var(--cxp-fs-md); padding: 12px 14px; }
|
|
2944
|
+
.cxp-settings-section { padding: 12px 0; margin: 0; }
|
|
2945
|
+
.cxp-settings-section .cxp-settings-section { border: 0; }
|
|
2946
|
+
.cxp-settings-section[hidden], .cxp-settings-features[hidden] { display: none; }
|
|
2947
|
+
.cxp-settings-section-title { font-size: var(--cxp-fs-sm); text-transform: none; letter-spacing: 0; color: var(--cxp-text-2); margin: 0 0 8px; }
|
|
2948
|
+
details.cxp-settings-section > summary, .cxp-settings-features > summary { cursor: pointer; }
|
|
2949
|
+
.cxp-settings-section:not([open]) > summary { margin-bottom: 0; }
|
|
2950
|
+
.cxp-settings-subtitle { font-size: var(--cxp-fs-xs); font-weight: 500; color: var(--cxp-text-3); margin: 10px 0 6px; }
|
|
2951
|
+
.cxp-config-row { border: 0; padding: 4px 0; min-width: 0; }
|
|
2952
|
+
.cxp-config-label { text-align: left; flex-basis: 42%; font-size: var(--cxp-fs-sm); color: var(--cxp-text-2); overflow-wrap: anywhere; }
|
|
2953
|
+
.cxp-settings-panel .cxp-config-input { min-height: 26px; padding: 3px 6px; border-radius: var(--cxp-radius-sm); background: var(--cxp-surface-1); }
|
|
2954
|
+
.cxp-settings-panel .cxp-config-input option { background: var(--cxp-pop); color: var(--cxp-text); }
|
|
2955
|
+
.cxp-settings-scope { gap: 12px; }
|
|
2956
|
+
.cxp-settings-scope-hint { margin-bottom: 8px; }
|
|
2957
|
+
.cxp-settings-footer { flex: none; border-top: 1px solid var(--cxp-border); padding: 10px 14px; background: var(--cxp-pop); }
|
|
2958
|
+
.cxp-settings-footer .cxp-config-save { margin: 0; width: 100%; text-transform: none; letter-spacing: 0; padding: 6px 10px; }
|
|
2959
|
+
.cxp-settings-result { font-size: var(--cxp-fs-xs); color: var(--cxp-text-3); overflow-wrap: anywhere; }
|
|
2960
|
+
.cxp-settings-result:not(:empty) { padding-top: 6px; }
|
|
2961
|
+
.cxp-settings-result[data-error=true] { color: var(--cxp-danger); }
|
|
2962
|
+
.cxp-settings-unit { font-size: var(--cxp-fs-xs); color: var(--cxp-text-3); }
|
|
2963
|
+
.cxp-settings-toggle { margin-left: auto; min-width: 70px; padding: 3px 8px; border: 1px solid var(--cxp-border-input); border-radius: var(--cxp-radius-sm); color: var(--cxp-text-3); background: var(--cxp-surface-1); font: inherit; cursor: pointer; }
|
|
2964
|
+
.cxp-settings-toggle[data-enabled=true] { color: var(--cxp-text); background: var(--cxp-surface-3); border-color: var(--cxp-text-3); }
|
|
2965
|
+
.cxp-settings-toggle:disabled { opacity: .45; cursor: default; }
|
|
2966
|
+
.cxp-settings-features { margin-top: 10px; }
|
|
2967
|
+
.cxp-settings-features .cxp-config-label { flex-basis: auto; }
|
|
2968
|
+
.cxp-settings-runtime { margin-top: 12px; }
|
|
2969
|
+
.cxp-settings-panel .cxp-mcp-row { flex-wrap: wrap; border: 0; padding: 4px 0; }
|
|
2970
|
+
.cxp-config-warning { padding: 8px 12px; color: var(--cxp-warning); font-size: var(--cxp-fs-xs); white-space: pre-wrap; }
|
|
2950
2971
|
.cxp-config-layer {
|
|
2951
2972
|
font-size: var(--cxp-fs-xs);
|
|
2952
2973
|
color: var(--cxp-text-3);
|