sync: update from private repo (fd190dc)
CI / build-and-test (push) Has been cancelled

This commit is contained in:
oss-sync
2026-06-06 00:39:26 +00:00
parent afae52873b
commit caa0d03900
70 changed files with 294 additions and 208 deletions
@@ -78,7 +78,7 @@ export function AgentsMdPanel({ onDirtyChange }: AgentsMdPanelProps) {
{data?.exists && (
<button
type="button"
className="text-2xs text-red-600 hover:text-red-800 underline"
className="text-2xs text-red-600 hover:text-red-800 dark:hover:text-red-300 underline"
onClick={() => {
if (window.confirm('AGENTS.md を削除しますか?')) del.mutate();
}}
@@ -9,10 +9,10 @@ import { AddBrowserSessionDialog } from './AddBrowserSessionDialog';
function StatusPill({ status }: { status: BrowserSessionProfile['status'] }) {
const map: Record<BrowserSessionProfile['status'], string> = {
pending: 'bg-slate-200 text-slate-700',
active: 'bg-emerald-100 text-emerald-700',
expired: 'bg-amber-100 text-amber-800',
active: 'bg-emerald-100 dark:bg-emerald-500/15 text-emerald-700 dark:text-emerald-300',
expired: 'bg-amber-100 dark:bg-amber-500/15 text-amber-800 dark:text-amber-300',
revoked: 'bg-slate-200 text-slate-500',
error: 'bg-rose-100 text-rose-700',
error: 'bg-rose-100 dark:bg-rose-500/15 text-rose-700 dark:text-rose-300',
};
const labels: Record<BrowserSessionProfile['status'], string> = {
pending: '保留中',
@@ -87,7 +87,7 @@ export function BrowserSessionsPanel() {
<button onClick={() => { setReLoginProfileId(p.id); setAdding(true); }}
className="text-xs text-slate-700 hover:text-slate-900 px-2 py-1 rounded hover:bg-surface"></button>
<button onClick={() => { if (confirm(`${p.label} を削除しますか?`)) del.mutate(p.id); }}
className="text-xs text-rose-600 hover:text-rose-800 px-2 py-1 rounded hover:bg-rose-50"></button>
className="text-xs text-rose-600 hover:text-rose-800 dark:hover:text-rose-300 px-2 py-1 rounded hover:bg-rose-50 dark:hover:bg-rose-500/15"></button>
</div>
</div>
))}
+1 -1
View File
@@ -132,7 +132,7 @@ export function FileTree({
e.stopPropagation();
onDeleteFile(subdir, file.name);
}}
className={`flex-shrink-0 w-4 h-4 flex items-center justify-center rounded hover:bg-red-100 hover:text-red-600 transition-colors ${
className={`flex-shrink-0 w-4 h-4 flex items-center justify-center rounded hover:bg-red-100 dark:hover:bg-red-500/15 hover:text-red-600 transition-colors ${
isSelected ? 'text-accent-fg/70' : 'text-slate-400'
}`}
>
@@ -36,7 +36,7 @@ function OwnerBadge({ ownerId }: { ownerId: string | null }) {
);
}
return (
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 text-blue-600 leading-none">
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-300 leading-none">
personal
</span>
);
+4 -4
View File
@@ -233,7 +233,7 @@ function ScopeBadge({ ownerId }: { ownerId: string | null }) {
return ownerId === null ? (
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-slate-100 text-slate-500 leading-none">global</span>
) : (
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 text-blue-600 leading-none">personal</span>
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-300 leading-none">personal</span>
);
}
@@ -341,10 +341,10 @@ export function McpPanel({ showToast }: { showToast?: ShowToast }) {
<span className="text-[13px] font-medium text-slate-900">{s.name}</span>
<ScopeBadge ownerId={s.ownerId} />
<span className={`inline-block px-1.5 py-0.5 rounded text-[10px] font-medium leading-none ${
s.authKind === 'oauth' ? 'bg-purple-50 text-purple-600' : 'bg-amber-50 text-amber-600'
s.authKind === 'oauth' ? 'bg-purple-50 dark:bg-purple-500/15 text-purple-600 dark:text-purple-300' : 'bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-300'
}`}>{s.authKind === 'oauth' ? 'OAuth' : 'API key'}</span>
{s.toolCount != null && s.toolCount > 0 && (
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-green-50 text-green-700 leading-none">
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-green-50 dark:bg-green-500/15 text-green-700 dark:text-green-300 leading-none">
{s.toolCount}
</span>
)}
@@ -372,7 +372,7 @@ export function McpPanel({ showToast }: { showToast?: ShowToast }) {
onClick={() => setEditingId(s.id)}>
</button>
<button type="button" className="text-2xs text-red-600 hover:text-red-800 underline"
<button type="button" className="text-2xs text-red-600 hover:text-red-800 dark:hover:text-red-300 underline"
onClick={() => handleDelete(s.id, s.name, isGlobal)}
disabled={delMut.isPending}>
@@ -311,8 +311,8 @@ function ServerTable({
<td className="py-2 pr-2">
<span className={`inline-block px-1.5 py-0.5 rounded text-[10px] font-medium leading-none ${
s.authKind === 'oauth'
? 'bg-purple-50 text-purple-600'
: 'bg-amber-50 text-amber-600'
? 'bg-purple-50 dark:bg-purple-500/15 text-purple-600 dark:text-purple-300'
: 'bg-amber-50 dark:bg-amber-500/15 text-amber-600 dark:text-amber-300'
}`}>
{s.authKind === 'oauth' ? 'OAuth' : 'API key'}
</span>
@@ -322,7 +322,7 @@ function ServerTable({
{s.toolCount == null || s.toolCount === 0 ? (
<span className="text-[10px] text-slate-400 italic"> </span>
) : (
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-green-50 text-green-700 leading-none">
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-green-50 dark:bg-green-500/15 text-green-700 dark:text-green-300 leading-none">
{s.toolCount}
</span>
)}
@@ -337,7 +337,7 @@ function ServerTable({
{canDelete && (
<button
type="button"
className="text-2xs text-red-600 hover:text-red-800 underline"
className="text-2xs text-red-600 hover:text-red-800 dark:hover:text-red-300 underline"
onClick={() => onDelete(s.id, s.name, isGlobal)}
disabled={deletePending}
></button>
@@ -484,7 +484,7 @@ export function McpServersPanel({ showToast }: McpServersPanelProps = {}) {
<section className="space-y-4">
<div className="flex items-center gap-2">
<h3 className="text-[13px] font-semibold text-slate-900"></h3>
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 text-blue-600 leading-none">
<span className="inline-block px-1.5 py-0.5 rounded text-[10px] font-medium bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-300 leading-none">
personal
</span>
</div>
@@ -104,7 +104,7 @@ export function MonacoFileEditor({ subdir, filename, content, mtime, size, onSav
{filename}
</span>
{dirty && (
<span className="text-[10px] font-medium text-amber-600 bg-amber-50 border border-amber-200 rounded px-1.5 py-0.5">
<span className="text-[10px] font-medium text-amber-600 dark:text-amber-300 bg-amber-50 dark:bg-amber-500/15 border border-amber-200 dark:border-amber-500/30 rounded px-1.5 py-0.5">
unsaved
</span>
)}
+2 -2
View File
@@ -393,7 +393,7 @@ export function PetsPanel({ showToast }: { showToast?: ShowToast }) {
<span className="inline-block w-3 text-slate-400">{collapsed ? '▶' : '▼'}</span>
{' '}
{worker.id}
<span className="ml-2 px-1.5 py-0.5 rounded text-[10px] font-medium bg-violet-50 text-violet-700">
<span className="ml-2 px-1.5 py-0.5 rounded text-[10px] font-medium bg-violet-50 dark:bg-violet-500/15 text-violet-700 dark:text-violet-300">
proxy
</span>
</div>
@@ -461,7 +461,7 @@ export function PetsPanel({ showToast }: { showToast?: ShowToast }) {
<div className="flex items-center gap-2">
<span className="text-[13px] font-semibold text-slate-900 truncate">{pet.name}</span>
{active && (
<span className="px-1.5 py-0.5 rounded text-[10px] font-medium bg-emerald-50 text-emerald-700">
<span className="px-1.5 py-0.5 rounded text-[10px] font-medium bg-emerald-50 dark:bg-emerald-500/15 text-emerald-700 dark:text-emerald-300">
default
</span>
)}
@@ -274,7 +274,7 @@ export function SaveAsScriptDialog({ recordingName, onClose, onSuccess }: SaveAs
type="button"
onClick={() => removeHint(idx)}
aria-label="Remove hint"
className="mt-1 w-5 h-5 flex-shrink-0 flex items-center justify-center rounded hover:bg-red-100 hover:text-red-600 text-slate-400 transition-colors"
className="mt-1 w-5 h-5 flex-shrink-0 flex items-center justify-center rounded hover:bg-red-100 dark:hover:bg-red-500/15 hover:text-red-600 text-slate-400 transition-colors"
>
<svg viewBox="0 0 16 16" className="w-3 h-3" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round">
<path d="M4 4l8 8M12 4l-8 8" />
@@ -297,7 +297,7 @@ export function SaveAsScriptDialog({ recordingName, onClose, onSuccess }: SaveAs
{/* Errors */}
{(validationError || conflictError || submitError) && (
<div className="px-3 py-2 rounded-md bg-red-50 border border-red-200 text-xs text-red-700">
<div className="px-3 py-2 rounded-md bg-red-50 dark:bg-red-500/15 border border-red-200 dark:border-red-500/30 text-xs text-red-700 dark:text-red-300">
{validationError ?? conflictError ?? submitError}
</div>
)}
@@ -324,8 +324,8 @@ export function SshConnectionForm({ existing, adminContext, onSubmit, onCancel }
</div>
{adminContext && (
<fieldset className="rounded border border-amber-200 bg-amber-50/50 p-3">
<legend className="px-1 text-2xs font-semibold text-amber-800 uppercase tracking-wide">
<fieldset className="rounded border border-amber-200 dark:border-amber-500/30 bg-amber-50/50 dark:bg-amber-500/15 p-3">
<legend className="px-1 text-2xs font-semibold text-amber-800 dark:text-amber-300 uppercase tracking-wide">
Admin-only flags
</legend>
<label className="flex items-start gap-2 text-xs cursor-pointer">
@@ -408,7 +408,7 @@ function ConnectionRow(props: ConnectionRowProps) {
)}
</div>
{c.disabledByAdminReason && (
<div className="text-2xs text-red-700 mt-0.5">: {c.disabledByAdminReason}</div>
<div className="text-2xs text-red-700 dark:text-red-300 mt-0.5">: {c.disabledByAdminReason}</div>
)}
</div>
<div className="flex items-center gap-1 flex-shrink-0 flex-wrap justify-end">
@@ -442,7 +442,7 @@ function ConnectionRow(props: ConnectionRowProps) {
<button
type="button"
onClick={onDelete}
className="px-2 h-7 text-2xs text-red-600 border border-hairline rounded hover:bg-red-50"
className="px-2 h-7 text-2xs text-red-600 border border-hairline rounded hover:bg-red-50 dark:hover:bg-red-500/15"
>
</button>
@@ -508,10 +508,10 @@ function HostKeyBadge({ verified, pending }: { verified: boolean; pending: boole
function Badge({ color, children }: { color: 'slate' | 'blue' | 'emerald' | 'amber' | 'red'; children: React.ReactNode }) {
const cls: Record<typeof color, string> = {
slate: 'bg-slate-100 text-slate-600',
blue: 'bg-blue-50 text-blue-600',
emerald: 'bg-emerald-50 text-emerald-700',
amber: 'bg-amber-50 text-amber-700',
red: 'bg-red-50 text-red-700',
blue: 'bg-blue-50 dark:bg-blue-500/15 text-blue-600 dark:text-blue-300',
emerald: 'bg-emerald-50 dark:bg-emerald-500/15 text-emerald-700 dark:text-emerald-300',
amber: 'bg-amber-50 dark:bg-amber-500/15 text-amber-700 dark:text-amber-300',
red: 'bg-red-50 dark:bg-red-500/15 text-red-700 dark:text-red-300',
};
return (
<span className={`inline-block px-1.5 py-0.5 rounded text-[10px] font-medium leading-none ${cls[color]}`}>
@@ -39,7 +39,7 @@ export function SshPublicKeyDialog({ publicKey, label, freshlyGenerated, onClose
{label && <span className="font-normal text-slate-500"> {label}</span>}
</h3>
{freshlyGenerated && (
<p className="text-2xs text-emerald-700 mt-1">
<p className="text-2xs text-emerald-700 dark:text-emerald-300 mt-1">
Orchestrator
<code className="font-mono"> ~/.ssh/authorized_keys</code>
</p>
@@ -381,7 +381,7 @@ export function SubscriptionsPanel({ currentUserId }: { currentUserId: string })
/>
<button
type="button"
className="text-2xs text-red-600 hover:text-red-800 font-medium px-2 py-0.5 rounded hover:bg-red-50 transition-colors"
className="text-2xs text-red-600 hover:text-red-800 dark:hover:text-red-300 font-medium px-2 py-0.5 rounded hover:bg-red-50 dark:hover:bg-red-500/15 transition-colors"
onClick={() =>
unsubscribe.mutate({ publisher: s.publisher_user_id, folder: s.folder })
}