@rightkit/agent-ui-settings 0.1.0 → 0.1.1
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 +5 -0
- package/dist/appName.d.ts +1 -2
- package/dist/appName.js +1 -8
- package/dist/components/settings/tabs/AppearanceTab.js +5 -3
- package/dist/components/settings/tabs/RepairTab.js +1 -1
- package/dist/components/settings/tabs/RootModelPicker.d.ts +1 -1
- package/dist/components/settings/tabs/RootModelPicker.js +4 -1
- package/dist/components/settings/tabs/execution/CoreSandboxTierPanel.js +2 -1
- package/package.json +9 -15
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.1
|
|
4
|
+
|
|
5
|
+
- Appearance tab reads the palette list from `listPalettes()` and falls back to the `defaultPaletteLabel` host option (default "Default"). The sandbox tier panel names the `sandboxTierEnv` host option (default `RIGHTKIT_SANDBOX_TIER`). The root model picker lists only `direct` catalog groups.
|
|
6
|
+
- `appName` re-exports `@rightkit/agent-ui-core/appName`; `invoke` goes through `@rightkit/agent-ui-core/host/tauriHost`.
|
|
7
|
+
|
|
3
8
|
## 0.1.0
|
|
4
9
|
|
|
5
10
|
- First release. Settings panes for coding-agent UIs.
|
package/dist/appName.d.ts
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
export declare function hostAppName(): string;
|
|
1
|
+
export * from "@rightkit/agent-ui-core/appName";
|
package/dist/appName.js
CHANGED
|
@@ -1,8 +1 @@
|
|
|
1
|
-
|
|
2
|
-
let current = "App";
|
|
3
|
-
export function setHostAppName(name) {
|
|
4
|
-
current = name;
|
|
5
|
-
}
|
|
6
|
-
export function hostAppName() {
|
|
7
|
-
return current;
|
|
8
|
-
}
|
|
1
|
+
export * from "@rightkit/agent-ui-core/appName";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Select, useTheme } from "@rightkit/react-shell/react";
|
|
3
|
-
import {
|
|
3
|
+
import { listPalettes, useThemeStore } from "@rightkit/agent-ui-core/state/themeStore";
|
|
4
|
+
import { hostOption } from "../../../appName.js";
|
|
4
5
|
import AnalyticsConsentCard from "../analytics/AnalyticsConsentCard.js";
|
|
5
6
|
// Dark base names per Right Suite brand.md ("Dark bases (shared): slate
|
|
6
7
|
// (View/Code) · charcoal (Mail) · coffee (Heard/Voice) · espresso (Scrape)").
|
|
@@ -24,6 +25,7 @@ export default function AppearanceTab() {
|
|
|
24
25
|
const paletteId = useThemeStore((state) => state.palette);
|
|
25
26
|
const setPalette = useThemeStore((state) => state.setPalette);
|
|
26
27
|
const baseLabel = resolved === "dark" ? DARK_BASE_LABEL[paletteId] : "off-white";
|
|
27
|
-
const
|
|
28
|
-
|
|
28
|
+
const palettes = listPalettes();
|
|
29
|
+
const activePalette = palettes.find((p) => p.id === paletteId);
|
|
30
|
+
return (_jsxs("section", { className: "flex max-w-[720px] flex-col gap-4 p-6", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h3", { className: "text-[16px] font-bold text-text", children: "Appearance" }), _jsx("p", { className: "text-[13px] text-text-2", children: "Keep the work surface calm while preserving the Right Suite identities." })] }), _jsxs("div", { className: "grid gap-3 rounded-lg border border-line bg-panel p-4", children: [_jsxs("label", { className: "flex flex-col gap-1 text-[13px] text-text-2", children: ["Palette", _jsx(Select, { value: paletteId, options: [...palettes.map((palette) => ({ value: palette.id, label: palette.label }))], onChange: (value) => setPalette(value), label: "Palette", className: "h-9 rounded-lg border border-line bg-bg px-3 text-[13px] text-text outline-none" })] }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-semibold text-text", children: "Base" }), _jsx("div", { className: "text-[12px] text-text-3", children: resolved === "dark" ? `Dark ${baseLabel}` : `Light ${baseLabel}` })] })] }), _jsxs("div", { className: "rounded-lg border border-line bg-panel p-4", children: [_jsx("div", { className: "flex items-center justify-between gap-3", children: _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-[13px] font-semibold text-text", children: "Palette preview" }), _jsxs("div", { className: "text-[12px] text-text-3", children: [activePalette?.label ?? hostOption("defaultPaletteLabel"), " \u00B7 ", resolved === "dark" ? "dark" : "light", " ", "tokens"] })] }) }), _jsx("div", { className: "mt-3 grid grid-cols-5 gap-3", children: PALETTE_SWATCHES.map((swatch) => (_jsxs("div", { className: "flex flex-col items-center gap-1.5 min-w-0", children: [_jsx("span", { className: `h-10 w-10 rounded-lg border border-line ${swatch.className}` }), _jsx("span", { className: "text-[11px] text-text-3 truncate", children: swatch.label })] }, swatch.label))) })] }), _jsx(AnalyticsConsentCard, {}), _jsxs("div", { className: "rounded-lg border border-line bg-panel p-4", children: [_jsx("div", { className: "text-[13px] font-semibold text-text", children: "Typography" }), _jsxs("div", { className: "mt-2 flex flex-col gap-2", children: [_jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsx("span", { className: "font-display text-[15px] text-text", children: "Tanker" }), _jsx("span", { className: "text-[12px] text-text-3", children: "Display \u00B7 panel titles" })] }), _jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsx("span", { className: "text-[15px] text-text", children: "General Sans" }), _jsx("span", { className: "text-[12px] text-text-3", children: "Body \u00B7 UI" })] }), _jsxs("div", { className: "flex items-baseline justify-between gap-3", children: [_jsx("span", { className: "font-mono text-[15px] text-text", children: "JetBrains Mono" }), _jsx("span", { className: "text-[12px] text-text-3", children: "Code \u00B7 paths \u00B7 ids" })] })] })] })] }));
|
|
29
31
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import { invoke } from "@
|
|
3
|
+
import { invoke } from "@rightkit/agent-ui-core/host/tauriHost";
|
|
4
4
|
import { CLI_PROVIDER_IDS, getProviderDisplay, } from "@rightkit/agent-ui-core/lib/cliProviders";
|
|
5
5
|
const ACTIONS = [
|
|
6
6
|
{
|
|
@@ -7,4 +7,4 @@ export interface RootModelPickerProps {
|
|
|
7
7
|
compact?: boolean;
|
|
8
8
|
}
|
|
9
9
|
/** Authority-first selector shared by Settings & composer. */
|
|
10
|
-
export default function RootModelPicker({ catalogGroups, value, onSelect, error, compact, }: RootModelPickerProps): import("react").JSX.Element;
|
|
10
|
+
export default function RootModelPicker({ catalogGroups: allCatalogGroups, value, onSelect, error, compact, }: RootModelPickerProps): import("react").JSX.Element;
|
|
@@ -22,7 +22,10 @@ function modelSubtitle(group, model) {
|
|
|
22
22
|
.join(" · ") || "Direct catalog");
|
|
23
23
|
}
|
|
24
24
|
/** Authority-first selector shared by Settings & composer. */
|
|
25
|
-
export default function RootModelPicker({ catalogGroups, value, onSelect, error, compact = false, }) {
|
|
25
|
+
export default function RootModelPicker({ catalogGroups: allCatalogGroups, value, onSelect, error, compact = false, }) {
|
|
26
|
+
// Settings saves an inference selection, which names an in-app connection; a config-route
|
|
27
|
+
// group (authority "config") is chosen on the session instead.
|
|
28
|
+
const catalogGroups = allCatalogGroups.filter((group) => group.authority !== "config");
|
|
26
29
|
const current = inferenceSelectionKey(value);
|
|
27
30
|
const valid = catalogGroups.some((group) => group.models.some((model) => inferenceSelectionKey(selectionForCatalogModel(group, model.id)) === current));
|
|
28
31
|
return (_jsxs("div", { className: "flex flex-col gap-3", "data-testid": "inference-picker", children: [error ? (_jsx("p", { className: "rounded-md border border-danger/40 bg-danger/10 p-2 text-[12px] text-danger", children: error })) : null, value && !valid ? (_jsx("p", { className: "rounded-md border border-warning/40 bg-warning/10 p-2 text-[12px] text-warning", "aria-live": "polite", children: "Saved selection is unavailable. Probe or repair its connection before choosing a replacement." })) : null, catalogGroups.map((group) => {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Select } from "@rightkit/react-shell/react";
|
|
3
3
|
import { useEffect, useState } from "react";
|
|
4
|
+
import { hostOption } from "../../../../appName.js";
|
|
4
5
|
import Icon from "@rightkit/agent-ui-core/components/Icon";
|
|
5
6
|
import { diagnosticsLabel, diagnosticsStatusClass } from "../shared.js";
|
|
6
7
|
import { RemoteStatusCard } from "./RemoteStatusCard.js";
|
|
@@ -33,7 +34,7 @@ export function CoreSandboxTierPanel({ report, settings, pending, onSaveTier, })
|
|
|
33
34
|
const selectedTier = CORE_SANDBOX_TIERS.find((option) => option.value === draftTier);
|
|
34
35
|
const savedWorkspaceTier = persistedWorkspaceTier;
|
|
35
36
|
const tierDirty = settings ? draftTier !== savedWorkspaceTier : draftTier !== "landlock-seccomp";
|
|
36
|
-
return (_jsxs("section", { className: "grid grid-cols-1 gap-3 rounded-xl border border-line bg-panel p-4 max-w-[980px]", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h4", { className: "text-[13px] font-semibold text-text", children: "Core tool sandbox" }),
|
|
37
|
+
return (_jsxs("section", { className: "grid grid-cols-1 gap-3 rounded-xl border border-line bg-panel p-4 max-w-[980px]", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsx("h4", { className: "text-[13px] font-semibold text-text", children: "Core tool sandbox" }), _jsxs("p", { className: "mt-1 text-[12px] text-text-3", children: [hostOption("sandboxTierEnv"), " is the operator minimum; a workspace may only tighten it."] })] }), sandboxCheck ? (_jsx("span", { className: `shrink-0 px-2 py-0.5 rounded-full border text-[11px] ${diagnosticsStatusClass(sandboxCheck.status)}`, children: diagnosticsLabel(sandboxCheck.status) })) : (_jsx("span", { className: "shrink-0 px-2 py-0.5 rounded-full border border-line text-[11px] text-text-3", children: "Not loaded" }))] }), _jsxs("div", { className: "grid gap-3 md:grid-cols-[minmax(0,1fr)_auto] items-end", children: [_jsxs("label", { className: "flex flex-col gap-1 min-w-0", children: [_jsx("span", { className: "text-[10px] uppercase tracking-[0.08em] text-text-3", children: "Sandbox tier" }), _jsx(Select, { value: draftTier, options: [...CORE_SANDBOX_TIERS.map((option) => ({ value: option.value, label: option.label }))], onChange: (value) => setDraftTier(value), label: "Sandbox tier", className: "h-9 min-w-0 rounded-lg border border-line bg-panel-2 px-2 text-[13px] text-text outline-none focus:border-accent/60" }), _jsx("span", { className: "text-[11px] text-text-3", children: selectedTier?.detail ?? "Choose how local shell commands request isolation." })] }), _jsxs("button", { type: "button", className: "inline-flex items-center justify-center gap-2 h-9 px-4 rounded-lg border border-line bg-transparent text-text-2 text-[13px] cursor-pointer hover:bg-panel-2 hover:text-text disabled:opacity-40 whitespace-nowrap", disabled: pending || !tierDirty, onClick: () => onSaveTier(draftTier), children: [_jsx(Icon, { name: "check" }), pending ? "Saving tier" : "Save tier"] })] }), _jsxs("div", { className: "grid gap-2 md:grid-cols-4", children: [_jsx(RemoteStatusCard, { title: "Saved tier", value: sandboxTierLabel(savedWorkspaceTier), status: sandboxCheck?.status ?? "warn", detail: settings
|
|
37
38
|
? `effective ${sandboxTierLabel(settings.tier)} · ${settings.source} · ${settings.storePath}`
|
|
38
39
|
: "Load execution settings to inspect the saved workspace tier." }), _jsx(RemoteStatusCard, { title: "Mode", value: "Local OS", status: sandboxCheck?.status ?? "warn", detail: "Linux hosts use Landlock/seccomp where available; non-Linux hosts report an honest warning." }), _jsx(RemoteStatusCard, { title: "Current", value: sandboxCheck ? diagnosticsLabel(sandboxCheck.status) : "Not loaded", status: sandboxCheck?.status ?? "warn", detail: sandboxCheck?.detail ?? "Refresh diagnostics to inspect core sandbox posture." }), _jsx(RemoteStatusCard, { title: "Fix", value: sandboxCheck?.fix ? "Action available" : "No action", status: sandboxCheck?.status ?? "pass", detail: sandboxCheck?.fix || "Sandbox posture is explicit for this daemon." })] })] }));
|
|
39
40
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rightkit/agent-ui-settings",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Settings panes for coding-agent UIs.",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -132,30 +132,25 @@
|
|
|
132
132
|
"*.css"
|
|
133
133
|
],
|
|
134
134
|
"dependencies": {
|
|
135
|
-
"@rightkit/agent-ui-core": "^0.1.
|
|
136
|
-
"@rightkit/agent-ui-hooks": "^0.1.
|
|
137
|
-
"@rightkit/app-update": "^0.4.
|
|
138
|
-
"@rightkit/doc-render": "^0.2.
|
|
139
|
-
"@rightkit/react-shell": "^0.7.
|
|
140
|
-
"@rightkit/settings-ui": "^0.7.
|
|
135
|
+
"@rightkit/agent-ui-core": "^0.1.4",
|
|
136
|
+
"@rightkit/agent-ui-hooks": "^0.1.1",
|
|
137
|
+
"@rightkit/app-update": "^0.4.4",
|
|
138
|
+
"@rightkit/doc-render": "^0.2.2",
|
|
139
|
+
"@rightkit/react-shell": "^0.7.4",
|
|
140
|
+
"@rightkit/settings-ui": "^0.7.3",
|
|
141
141
|
"@tauri-apps/api": "^2.12.4"
|
|
142
142
|
},
|
|
143
143
|
"peerDependencies": {
|
|
144
144
|
"react": ">=18 <21"
|
|
145
145
|
},
|
|
146
146
|
"devDependencies": {
|
|
147
|
-
"@testing-library/dom": "^10.4.2",
|
|
148
|
-
"@testing-library/jest-dom": "^7.0.1",
|
|
149
|
-
"@testing-library/react": "^16.3.3",
|
|
150
147
|
"@types/node": "^26.6.6",
|
|
151
148
|
"@types/react": "^19.3.0",
|
|
152
149
|
"@types/react-dom": "^19.3.0",
|
|
153
|
-
"happy-dom": "^21.0.3",
|
|
154
150
|
"react": "^19.3.1",
|
|
155
151
|
"react-dom": "^19.3.1",
|
|
156
152
|
"typescript": "^7.0.2",
|
|
157
|
-
"vite": "^8.3.4"
|
|
158
|
-
"vitest": "^5.0.5"
|
|
153
|
+
"vite": "^8.3.4"
|
|
159
154
|
},
|
|
160
155
|
"publishConfig": {
|
|
161
156
|
"registry": "https://registry.npmjs.org",
|
|
@@ -168,7 +163,6 @@
|
|
|
168
163
|
},
|
|
169
164
|
"scripts": {
|
|
170
165
|
"build": "tsc -p tsconfig.json && node scripts/copy-assets.mjs",
|
|
171
|
-
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
172
|
-
"test": "pnpm --filter \"@rightkit/agent-ui-settings^...\" run build && vitest run"
|
|
166
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
173
167
|
}
|
|
174
168
|
}
|