mirror of
https://github.com/stablyai/orca.git
synced 2026-09-23 00:02:29 +00:00
refactor(onboarding): remove retired capability checklist (#13509)
This commit is contained in:
@@ -1520,9 +1520,6 @@
|
||||
"auto.components.notification.sound.options.86af8d938c": {
|
||||
"ko": "봉 소리"
|
||||
},
|
||||
"auto.components.onboarding.AgentFeatureSetupStep.97dcdc010f": {
|
||||
"ko": "기능 활성화"
|
||||
},
|
||||
"auto.components.onboarding.AgentStep.1eee1c7bd8": {
|
||||
"ko": "PATH에서 agents를 찾지 못했습니다. 나중에 설치할 항목을 선택하거나 빈 terminal로 계속 진행하세요."
|
||||
},
|
||||
@@ -1538,12 +1535,6 @@
|
||||
"auto.components.onboarding.AgentStep.yoloPermissionsTooltip": {
|
||||
"ko": "중단을 줄이기 위해 agents 권한 확인을 건너뜁니다."
|
||||
},
|
||||
"auto.components.onboarding.FeatureSetupChecklist.01426f3a23": {
|
||||
"ko": "Agents가 사이트를 탐색하고, 페이지를 검사하고, 브라우저 작업을 처리할 수 있습니다."
|
||||
},
|
||||
"auto.components.onboarding.FeatureSetupChecklist.c5292c409d": {
|
||||
"ko": "Agents는 요청 시 앱 창을 검사하고 로컬 앱을 작동할 수 있습니다."
|
||||
},
|
||||
"auto.components.onboarding.IntegrationsStep.0b4a7d23ab": {
|
||||
"ko": "로그인 중"
|
||||
},
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
import { renderToStaticMarkup } from 'react-dom/server'
|
||||
import { describe, expect, it, vi } from 'vitest'
|
||||
import { AgentFeatureSetupStep } from './AgentFeatureSetupStep'
|
||||
|
||||
describe('AgentFeatureSetupStep', () => {
|
||||
it('renders the agent feature setup checklist', () => {
|
||||
const html = renderToStaticMarkup(
|
||||
<AgentFeatureSetupStep
|
||||
featureSetup={{
|
||||
browserUse: true,
|
||||
computerUse: true,
|
||||
orchestration: true,
|
||||
linearTickets: false
|
||||
}}
|
||||
onFeatureSetupChange={vi.fn()}
|
||||
featureSetupCommand={null}
|
||||
featureSetupCommandSelection={null}
|
||||
setupBusyLabel={null}
|
||||
onStartFeatureSetup={vi.fn()}
|
||||
/>
|
||||
)
|
||||
|
||||
expect(html).toContain('Agent Browser Use')
|
||||
expect(html).toContain('Computer Use')
|
||||
expect(html).toContain('Agent Orchestration')
|
||||
expect(html).toContain('Linear agent skill')
|
||||
expect(html).toContain('Enable capabilities')
|
||||
expect(html).toContain('role="checkbox"')
|
||||
})
|
||||
})
|
||||
@@ -1,64 +0,0 @@
|
||||
import { Loader2, Terminal } from 'lucide-react'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import { FeatureSetupChecklist } from './FeatureSetupChecklist'
|
||||
import { FeatureSetupInlineTerminal } from './FeatureSetupInlineTerminal'
|
||||
import {
|
||||
hasSelectedOnboardingFeatureSetup,
|
||||
type OnboardingFeatureSetupSelection
|
||||
} from './onboarding-feature-setup'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
type AgentFeatureSetupStepProps = {
|
||||
featureSetup: OnboardingFeatureSetupSelection
|
||||
onFeatureSetupChange: (value: OnboardingFeatureSetupSelection) => void
|
||||
featureSetupCommand: string | null
|
||||
featureSetupCommandSelection: OnboardingFeatureSetupSelection | null
|
||||
setupBusyLabel: string | null
|
||||
onStartFeatureSetup: () => void
|
||||
}
|
||||
|
||||
export function AgentFeatureSetupStep({
|
||||
featureSetup,
|
||||
onFeatureSetupChange,
|
||||
featureSetupCommand,
|
||||
featureSetupCommandSelection,
|
||||
setupBusyLabel,
|
||||
onStartFeatureSetup
|
||||
}: AgentFeatureSetupStepProps): React.JSX.Element {
|
||||
const hasSelectedFeatures = hasSelectedOnboardingFeatureSetup(featureSetup)
|
||||
const showSetupAction = !featureSetupCommand
|
||||
|
||||
return (
|
||||
<>
|
||||
<FeatureSetupChecklist value={featureSetup} onChange={onFeatureSetupChange} />
|
||||
{showSetupAction ? (
|
||||
<div className="mt-4 flex items-center">
|
||||
<Button
|
||||
type="button"
|
||||
variant="default"
|
||||
className="shrink-0"
|
||||
disabled={!hasSelectedFeatures || Boolean(setupBusyLabel)}
|
||||
onClick={onStartFeatureSetup}
|
||||
>
|
||||
{setupBusyLabel ? (
|
||||
<Loader2 className="size-4 animate-spin" />
|
||||
) : (
|
||||
<Terminal className="size-4" />
|
||||
)}
|
||||
{setupBusyLabel ??
|
||||
translate(
|
||||
'auto.components.onboarding.AgentFeatureSetupStep.97dcdc010f',
|
||||
'Install CLI & Skills'
|
||||
)}
|
||||
</Button>
|
||||
</div>
|
||||
) : null}
|
||||
{featureSetupCommand ? (
|
||||
<FeatureSetupInlineTerminal
|
||||
command={featureSetupCommand}
|
||||
selection={featureSetupCommandSelection ?? featureSetup}
|
||||
/>
|
||||
) : null}
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -1,159 +0,0 @@
|
||||
import type { ReactNode } from 'react'
|
||||
import { Check, Globe2, MonitorCog, TicketCheck, Workflow } from 'lucide-react'
|
||||
import { cn } from '@/lib/utils'
|
||||
import type {
|
||||
OnboardingFeatureSetupId,
|
||||
OnboardingFeatureSetupSelection
|
||||
} from './onboarding-feature-setup'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
type FeatureSetupChecklistProps = {
|
||||
value: OnboardingFeatureSetupSelection
|
||||
onChange: (value: OnboardingFeatureSetupSelection) => void
|
||||
}
|
||||
|
||||
type FeatureSetupRow = {
|
||||
id: OnboardingFeatureSetupId
|
||||
title: string
|
||||
description: string
|
||||
setupSummary: string
|
||||
icon: ReactNode
|
||||
}
|
||||
|
||||
const FEATURE_SETUP_ROWS: readonly FeatureSetupRow[] = [
|
||||
{
|
||||
id: 'browserUse',
|
||||
get title() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.ea85d9e628',
|
||||
'Agent Browser Use'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.01426f3a23',
|
||||
'Agents can navigate sites, inspect pages, and work through browser tasks.'
|
||||
)
|
||||
},
|
||||
setupSummary: 'Enables browser use, prepares orca-cli, and leaves cookies for Settings.',
|
||||
icon: <Globe2 className="size-4" />
|
||||
},
|
||||
{
|
||||
id: 'computerUse',
|
||||
get title() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.1ecfb490ac',
|
||||
'Computer Use'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.c5292c409d',
|
||||
'Agents can inspect app windows and operate local apps when you ask.'
|
||||
)
|
||||
},
|
||||
setupSummary: 'Registers the Orca CLI, opens permissions, and prepares the skill.',
|
||||
icon: <MonitorCog className="size-4" />
|
||||
},
|
||||
{
|
||||
id: 'orchestration',
|
||||
get title() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.399cf885c0',
|
||||
'Agent Orchestration'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.77f74946f5',
|
||||
'Agents can message each other, take tasks, and coordinate handoffs.'
|
||||
)
|
||||
},
|
||||
setupSummary: 'Registers the Orca CLI, enables orchestration, and prepares the skill.',
|
||||
icon: <Workflow className="size-4" />
|
||||
},
|
||||
{
|
||||
id: 'linearTickets',
|
||||
get title() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.linearTicketsTitle',
|
||||
'Linear agent skill'
|
||||
)
|
||||
},
|
||||
get description() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.linearTicketsDescription',
|
||||
'Agents can use linked Linear tasks for richer ticket-aware handoffs.'
|
||||
)
|
||||
},
|
||||
get setupSummary() {
|
||||
return translate(
|
||||
'auto.components.onboarding.FeatureSetupChecklist.linearTicketsSetupSummary',
|
||||
'Recommended for Linear workspaces; does not affect Linear connection setup.'
|
||||
)
|
||||
},
|
||||
icon: <TicketCheck className="size-4" />
|
||||
}
|
||||
]
|
||||
|
||||
export function FeatureSetupChecklist({
|
||||
value,
|
||||
onChange
|
||||
}: FeatureSetupChecklistProps): React.JSX.Element {
|
||||
return (
|
||||
<section className="mt-6">
|
||||
<div className="grid gap-3 md:grid-cols-4">
|
||||
{FEATURE_SETUP_ROWS.map((row) => {
|
||||
const selected = value[row.id]
|
||||
return (
|
||||
<button
|
||||
key={row.id}
|
||||
type="button"
|
||||
role="checkbox"
|
||||
aria-checked={selected}
|
||||
className={cn(
|
||||
'flex min-h-40 flex-col rounded-lg border px-4 py-3 text-left transition-colors',
|
||||
'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',
|
||||
selected
|
||||
? 'border-ring bg-accent text-foreground ring-2 ring-ring/25'
|
||||
: 'border-border bg-muted/20 text-muted-foreground hover:bg-muted/40'
|
||||
)}
|
||||
onClick={() => onChange({ ...value, [row.id]: !selected })}
|
||||
>
|
||||
<span className="flex items-start justify-between gap-3">
|
||||
<span
|
||||
className={cn(
|
||||
'flex size-8 items-center justify-center rounded-lg border',
|
||||
selected
|
||||
? 'border-border bg-muted text-foreground'
|
||||
: 'border-border bg-muted/40'
|
||||
)}
|
||||
>
|
||||
{row.icon}
|
||||
</span>
|
||||
<span
|
||||
aria-hidden
|
||||
className={cn(
|
||||
'flex size-5 items-center justify-center rounded-full border transition-colors',
|
||||
selected
|
||||
? 'border-primary bg-primary text-primary-foreground'
|
||||
: 'border-border bg-background'
|
||||
)}
|
||||
>
|
||||
{selected ? <Check className="size-3" strokeWidth={3} /> : null}
|
||||
</span>
|
||||
</span>
|
||||
<span className="mt-3 text-sm font-medium text-foreground">{row.title}</span>
|
||||
<span className="mt-1 text-xs leading-relaxed text-muted-foreground">
|
||||
{row.description}
|
||||
</span>
|
||||
<span className="mt-auto pt-3 text-[11px] leading-relaxed text-muted-foreground">
|
||||
{row.setupSummary}
|
||||
</span>
|
||||
</button>
|
||||
)
|
||||
})}
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
@@ -12005,17 +12005,6 @@
|
||||
"yoloPermissionsInfo": "Agent permission info",
|
||||
"yoloPermissionsTooltip": "Skip permission checks for agents for less interruptions"
|
||||
},
|
||||
"FeatureSetupChecklist": {
|
||||
"77f74946f5": "Agents can message each other, take tasks, and coordinate handoffs.",
|
||||
"399cf885c0": "Agent Orchestration",
|
||||
"c5292c409d": "Agents can inspect app windows and operate local apps when you ask.",
|
||||
"1ecfb490ac": "Computer Use",
|
||||
"01426f3a23": "Agents can navigate sites, inspect pages, and work through browser tasks.",
|
||||
"ea85d9e628": "Agent Browser Use",
|
||||
"linearTicketsTitle": "Linear agent skill",
|
||||
"linearTicketsDescription": "Agents can use linked Linear tasks for richer ticket-aware handoffs.",
|
||||
"linearTicketsSetupSummary": "Recommended for Linear workspaces; does not affect Linear connection setup."
|
||||
},
|
||||
"FeatureSetupInlineTerminal": {
|
||||
"789b59936e": "Press Enter to run the command and confirm npx if asked. You can also set this up later in Settings.",
|
||||
"47fc6cc6dc": "Skill setup command",
|
||||
@@ -12165,9 +12154,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AgentFeatureSetupStep": {
|
||||
"97dcdc010f": "Enable capabilities"
|
||||
},
|
||||
"WindowsTerminalStep": {
|
||||
"powerShell": "PowerShell",
|
||||
"powerShellPwsh": "Uses PowerShell 7+ when available, with Windows PowerShell as fallback.",
|
||||
|
||||
@@ -11493,17 +11493,6 @@
|
||||
"yoloPermissionsInfo": "Información de permisos del agente",
|
||||
"yoloPermissionsTooltip": "Omite las comprobaciones de permisos de los agentes para reducir interrupciones"
|
||||
},
|
||||
"FeatureSetupChecklist": {
|
||||
"77f74946f5": "Los agentes pueden enviarse mensajes entre sí, tomar tareas y coordinar handoffs.",
|
||||
"399cf885c0": "Orquestación de agentes",
|
||||
"c5292c409d": "Los agentes pueden inspeccionar ventanas de apps y operar apps locales cuando se lo pidas.",
|
||||
"1ecfb490ac": "Uso de la computadora",
|
||||
"01426f3a23": "Los agentes pueden navegar por sitios, inspeccionar páginas y trabajar en tareas del navegador.",
|
||||
"ea85d9e628": "Uso del navegador por agentes",
|
||||
"linearTicketsTitle": "Skill de agente de Linear",
|
||||
"linearTicketsDescription": "Los agentes pueden usar tareas de Linear enlazadas para handoffs con más contexto de ticket.",
|
||||
"linearTicketsSetupSummary": "Recomendado para espacios de trabajo de Linear; no afecta la configuración de conexión de Linear."
|
||||
},
|
||||
"FeatureSetupInlineTerminal": {
|
||||
"789b59936e": "Pulsa Enter para ejecutar el comando y confirma npx si se te solicita. También puedes configurarlo más tarde en Configuración.",
|
||||
"47fc6cc6dc": "Comando de configuración de skills",
|
||||
@@ -11653,9 +11642,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AgentFeatureSetupStep": {
|
||||
"97dcdc010f": "Activar capacidades"
|
||||
},
|
||||
"WindowsTerminalStep": {
|
||||
"powerShell": "PowerShell",
|
||||
"powerShellPwsh": "Usa PowerShell 7+ cuando está disponible, con Windows PowerShell como alternativa.",
|
||||
|
||||
@@ -11493,17 +11493,6 @@
|
||||
"yoloPermissionsInfo": "Agent 権限情報",
|
||||
"yoloPermissionsTooltip": "Agent の権限チェックをスキップして割り込みを減らす"
|
||||
},
|
||||
"FeatureSetupChecklist": {
|
||||
"77f74946f5": "Agent は相互にメッセージを送信し、タスクを実行し、引き継ぎを調整できます。",
|
||||
"399cf885c0": "Agent オーケストレーション",
|
||||
"c5292c409d": "Agent は、要求に応じてアプリウィンドウを検査し、ローカルアプリを操作できます。",
|
||||
"1ecfb490ac": "コンピュータ操作",
|
||||
"01426f3a23": "Agent はサイトを移動し、ページを検査し、ブラウザのタスクを実行できます。",
|
||||
"ea85d9e628": "Agent ブラウザの使用",
|
||||
"linearTicketsTitle": "Linear Agent スキル",
|
||||
"linearTicketsDescription": "Agent はリンクされた Linear タスクを使って、チケットを踏まえたより詳しい引き継ぎができます。",
|
||||
"linearTicketsSetupSummary": "Linear ワークスペースに推奨。Linear 接続設定には影響しません。"
|
||||
},
|
||||
"FeatureSetupInlineTerminal": {
|
||||
"789b59936e": "Enter キーを押してコマンドを実行し、要求されたら npx を確認します。これは、後で [設定] で設定することもできます。",
|
||||
"47fc6cc6dc": "スキルセットアップコマンド",
|
||||
@@ -11653,9 +11642,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AgentFeatureSetupStep": {
|
||||
"97dcdc010f": "CLI とスキルをインストール"
|
||||
},
|
||||
"WindowsTerminalStep": {
|
||||
"powerShell": "PowerShell",
|
||||
"powerShellPwsh": "利用可能な場合は PowerShell 7+ を使い、代わりに Windows PowerShell を使用します。",
|
||||
|
||||
@@ -11493,17 +11493,6 @@
|
||||
"yoloPermissionsInfo": "Agent 권한 정보",
|
||||
"yoloPermissionsTooltip": "중단을 줄이기 위해 agents 권한 확인을 건너뜁니다."
|
||||
},
|
||||
"FeatureSetupChecklist": {
|
||||
"77f74946f5": "Agents는 서로 메시지를 보내고, 작업을 수행하고, 핸드오프를 조정할 수 있습니다.",
|
||||
"399cf885c0": "Agent 오케스트레이션",
|
||||
"c5292c409d": "Agents는 요청 시 앱 창을 검사하고 로컬 앱을 작동할 수 있습니다.",
|
||||
"1ecfb490ac": "컴퓨터 사용",
|
||||
"01426f3a23": "Agents가 사이트를 탐색하고, 페이지를 검사하고, 브라우저 작업을 처리할 수 있습니다.",
|
||||
"ea85d9e628": "Agent 브라우저 사용",
|
||||
"linearTicketsTitle": "Linear agent 스킬",
|
||||
"linearTicketsDescription": "Agents는 연결된 Linear 작업을 사용해 티켓 맥락을 반영한 더 풍부한 인계를 할 수 있습니다.",
|
||||
"linearTicketsSetupSummary": "Linear 워크스페이스에 권장됩니다. Linear 연결 설정에는 영향을 주지 않습니다."
|
||||
},
|
||||
"FeatureSetupInlineTerminal": {
|
||||
"789b59936e": "Enter를 눌러 명령을 실행하고 요청 시 npx를 확인합니다. 나중에 설정에서 설정할 수도 있습니다.",
|
||||
"47fc6cc6dc": "스킬 설정 명령어",
|
||||
@@ -11653,9 +11642,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AgentFeatureSetupStep": {
|
||||
"97dcdc010f": "기능 활성화"
|
||||
},
|
||||
"WindowsTerminalStep": {
|
||||
"powerShell": "PowerShell",
|
||||
"powerShellPwsh": "사용할 수 있으면 PowerShell 7+를 사용하고, 없으면 Windows PowerShell을 사용합니다.",
|
||||
|
||||
@@ -11513,17 +11513,6 @@
|
||||
"yoloPermissionsInfo": "智能体权限信息",
|
||||
"yoloPermissionsTooltip": "跳过智能体权限检查,减少打断"
|
||||
},
|
||||
"FeatureSetupChecklist": {
|
||||
"77f74946f5": "智能体可互相通信、领取任务并协调交接。",
|
||||
"399cf885c0": "智能体编排",
|
||||
"c5292c409d": "按你的要求,智能体可查看应用窗口并操作本地应用。",
|
||||
"1ecfb490ac": "计算机控制",
|
||||
"01426f3a23": "智能体可浏览网站、检查页面并完成浏览器任务。",
|
||||
"ea85d9e628": "智能体浏览器操控",
|
||||
"linearTicketsTitle": "Linear 智能体技能",
|
||||
"linearTicketsDescription": "智能体可使用已链接的 Linear 任务,完成更了解 ticket 背景的交接。",
|
||||
"linearTicketsSetupSummary": "推荐用于 Linear 工作区;不会影响 Linear 连接设置。"
|
||||
},
|
||||
"FeatureSetupInlineTerminal": {
|
||||
"789b59936e": "按 Enter 运行命令并在询问时确认 npx。您也可以稍后在“设置”中进行设置。",
|
||||
"47fc6cc6dc": "技能设置命令",
|
||||
@@ -11673,9 +11662,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"AgentFeatureSetupStep": {
|
||||
"97dcdc010f": "安装 CLI 和技能"
|
||||
},
|
||||
"WindowsTerminalStep": {
|
||||
"powerShell": "PowerShell",
|
||||
"powerShellPwsh": "在可用时使用 PowerShell 7+,否则回退到 Windows PowerShell。",
|
||||
|
||||
Reference in New Issue
Block a user