mirror of
https://github.com/stablyai/orca.git
synced 2026-10-18 08:03:22 +00:00
Refine Linear setup prompt copy
This commit is contained in:
@@ -53,6 +53,18 @@ describe('AgentSkillSetupPanel', () => {
|
||||
expect(buttonLabels(html)).not.toContain('Re-check')
|
||||
})
|
||||
|
||||
it('uses the install copy when the skill is installed but the CLI prerequisite is missing', () => {
|
||||
const html = renderPanel({
|
||||
installed: true,
|
||||
installLabel: 'Install CLI & Skill',
|
||||
preInstallNotice: 'Install the Orca CLI before running agent skill setup.'
|
||||
})
|
||||
|
||||
expect(html).toContain('Installed')
|
||||
expect(buttonLabels(html)).toContain('Install CLI & Skill')
|
||||
expect(buttonLabels(html)).not.toContain('Update')
|
||||
})
|
||||
|
||||
it('can hide install after the skill is detected', () => {
|
||||
const html = renderPanel({ installed: true, showInstallWhenInstalled: false })
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ export function AgentSkillSetupPanel({
|
||||
() => (getPrerequisiteStatus ?? window.api.cli.getInstallStatus)(),
|
||||
[getPrerequisiteStatus]
|
||||
)
|
||||
const actionLabel = installed && preInstallNoticeVisible ? installLabel : installedInstallLabel
|
||||
|
||||
useEffect(() => {
|
||||
if (!preInstallNotice) {
|
||||
@@ -172,7 +173,7 @@ export function AgentSkillSetupPanel({
|
||||
disabled={terminalOpen || installDisabled}
|
||||
>
|
||||
<Terminal className="size-3.5" />
|
||||
{installed ? installedInstallLabel : installLabel}
|
||||
{installed ? actionLabel : installLabel}
|
||||
</Button>
|
||||
) : null}
|
||||
{!installed || showRecheckWhenInstalled ? (
|
||||
|
||||
@@ -412,13 +412,13 @@ describe('LinearAgentSkillSetupPrompt', () => {
|
||||
'Enable agents to read and edit the attached Linear ticket.'
|
||||
)
|
||||
expect(toast.warning).toHaveBeenCalledWith(
|
||||
'Orca CLI and Linear agent skill are missing',
|
||||
'Orca CLI and Linear skill are missing',
|
||||
expect.objectContaining({
|
||||
id: 'linear-agent-skill-setup-orca.linearTicketsSkill.setupDismissed.host',
|
||||
description:
|
||||
'Install them so agents started from linked Linear tickets can read and update the ticket context.',
|
||||
'Install the Orca CLI and the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.',
|
||||
action: {
|
||||
label: 'Open setup',
|
||||
label: 'Set up Linear access',
|
||||
onClick: expect.any(Function)
|
||||
}
|
||||
})
|
||||
@@ -439,11 +439,11 @@ describe('LinearAgentSkillSetupPrompt', () => {
|
||||
await renderPrompt({ linked: true, remote: false, surface: 'modal' })
|
||||
|
||||
expect(toast.warning).toHaveBeenCalledWith(
|
||||
'Orca CLI and Linear agent skill are missing',
|
||||
'Orca CLI and Linear skill are missing',
|
||||
expect.objectContaining({
|
||||
id: 'linear-agent-skill-setup-orca.linearTicketsSkill.setupDismissed.host',
|
||||
description:
|
||||
'Install them so agents started from linked Linear tickets can read and update the ticket context.'
|
||||
'Install the Orca CLI and the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.'
|
||||
})
|
||||
)
|
||||
})
|
||||
@@ -567,11 +567,11 @@ describe('LinearAgentSkillSetupPrompt', () => {
|
||||
|
||||
expect(toast.warning).toHaveBeenCalledTimes(1)
|
||||
expect(toast.warning).toHaveBeenCalledWith(
|
||||
'Orca CLI and Linear agent skill are missing',
|
||||
'Orca CLI and Linear skill are missing',
|
||||
expect.objectContaining({
|
||||
id: 'linear-agent-skill-setup-orca.linearTicketsSkill.setupDismissed.host',
|
||||
description:
|
||||
'Install them so agents started from linked Linear tickets can read and update the ticket context.'
|
||||
'Install the Orca CLI and the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.'
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
@@ -183,7 +183,7 @@ export function LinearAgentSkillSetupPrompt({
|
||||
|
||||
const toastTitle = getLinearAgentSkillSetupToastTitle(cliAvailable, skill.installed)
|
||||
|
||||
const toastDescription = getLinearAgentSkillSetupToastDescription(remote, agentRuntime)
|
||||
const toastDescription = getLinearAgentSkillSetupToastDescription(cliAvailable, skill.installed)
|
||||
|
||||
useEffect(() => {
|
||||
if (surface !== 'modal' || !missingSetup || setupDialogOpen) {
|
||||
@@ -207,7 +207,7 @@ export function LinearAgentSkillSetupPrompt({
|
||||
action: {
|
||||
label: translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.openSetup',
|
||||
'Open setup'
|
||||
'Set up Linear access'
|
||||
),
|
||||
onClick: () => setSetupDialogOpen(true)
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ export function getLinearAgentSkillSetupToastTitle(
|
||||
if (!cliAvailable && !skillInstalled) {
|
||||
return translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.toastMissingCliAndSkill',
|
||||
'Orca CLI and Linear agent skill are missing'
|
||||
'Orca CLI and Linear skill are missing'
|
||||
)
|
||||
}
|
||||
if (!cliAvailable) {
|
||||
@@ -41,29 +41,29 @@ export function getLinearAgentSkillSetupToastTitle(
|
||||
}
|
||||
return translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.toastMissingSkill',
|
||||
'Linear agent skill is missing'
|
||||
'Linear skill is missing'
|
||||
)
|
||||
}
|
||||
|
||||
export function getLinearAgentSkillSetupToastDescription(
|
||||
remote: boolean,
|
||||
agentRuntime: LocalAgentRuntime
|
||||
cliAvailable: boolean,
|
||||
skillInstalled: boolean
|
||||
): string {
|
||||
if (remote) {
|
||||
if (!cliAvailable && !skillInstalled) {
|
||||
return translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.remoteToastDescription',
|
||||
'Install local setup for host handoffs; remote agent environments may still need their own setup.'
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.toastInstallCliAndSkillDescription',
|
||||
'Install the Orca CLI and the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.'
|
||||
)
|
||||
}
|
||||
if (agentRuntime.runtime === 'wsl') {
|
||||
if (!cliAvailable) {
|
||||
return translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.wslToastDescription',
|
||||
'Install them for the selected WSL agent runtime so linked Linear ticket handoffs include ticket context.'
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.toastInstallCliDescription',
|
||||
'Install the Orca CLI to enable your agents to read and edit Linear tasks through the Orca CLI.'
|
||||
)
|
||||
}
|
||||
return translate(
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.hostToastDescription',
|
||||
'Install them so agents started from linked Linear tickets can read and update the ticket context.'
|
||||
'auto.components.sidebar.LinearAgentSkillSetupPrompt.toastInstallSkillDescription',
|
||||
'Install the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.'
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -3958,13 +3958,13 @@
|
||||
"install": "Install CLI & Skill",
|
||||
"wslCopy": "Install it for WSL agent handoffs from linked Linear work.",
|
||||
"wslLabel": "WSL default",
|
||||
"openSetup": "Open setup",
|
||||
"toastMissingCliAndSkill": "Orca CLI and Linear agent skill are missing",
|
||||
"openSetup": "Set up Linear access",
|
||||
"toastMissingCliAndSkill": "Orca CLI and Linear skill are missing",
|
||||
"toastMissingCli": "Orca CLI is missing",
|
||||
"toastMissingSkill": "Linear agent skill is missing",
|
||||
"remoteToastDescription": "Install local setup for host handoffs; remote agent environments may still need their own setup.",
|
||||
"wslToastDescription": "Install them for the selected WSL agent runtime so linked Linear ticket handoffs include ticket context.",
|
||||
"hostToastDescription": "Install them so agents started from linked Linear tickets can read and update the ticket context."
|
||||
"toastMissingSkill": "Linear skill is missing",
|
||||
"toastInstallCliAndSkillDescription": "Install the Orca CLI and the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI.",
|
||||
"toastInstallCliDescription": "Install the Orca CLI to enable your agents to read and edit Linear tasks through the Orca CLI.",
|
||||
"toastInstallSkillDescription": "Install the Linear skill to enable your agents to read and edit Linear tasks through the Orca CLI."
|
||||
},
|
||||
"FolderWorkspaceComposerDialog": {
|
||||
"connectFailed": "Failed to connect to project.",
|
||||
|
||||
@@ -3958,13 +3958,13 @@
|
||||
"install": "Instalar CLI y habilidad",
|
||||
"wslCopy": "Instálala para traspasos de Agent en WSL desde trabajo Linear enlazado.",
|
||||
"wslLabel": "WSL predeterminado",
|
||||
"openSetup": "Abrir configuración",
|
||||
"toastMissingCliAndSkill": "Faltan la CLI de Orca y la habilidad de Agent de Linear",
|
||||
"openSetup": "Configurar acceso a Linear",
|
||||
"toastMissingCliAndSkill": "Faltan la CLI de Orca y la habilidad de Linear",
|
||||
"toastMissingCli": "Falta la CLI de Orca",
|
||||
"toastMissingSkill": "Falta la habilidad de Agent de Linear",
|
||||
"remoteToastDescription": "Instala la configuración local para traspasos del host; los entornos de Agent remotos pueden necesitar su propia configuración.",
|
||||
"wslToastDescription": "Instálalas para el runtime de Agent WSL seleccionado, de modo que los traspasos de tickets Linear enlazados incluyan contexto del ticket.",
|
||||
"hostToastDescription": "Instálalas para que los Agents iniciados desde tickets Linear enlazados puedan leer y actualizar el contexto del ticket."
|
||||
"toastMissingSkill": "Falta la habilidad de Linear",
|
||||
"toastInstallCliAndSkillDescription": "Instala la CLI de Orca y la habilidad de Linear para permitir que tus Agents lean y editen tareas de Linear a través de la CLI de Orca.",
|
||||
"toastInstallCliDescription": "Instala la CLI de Orca para permitir que tus Agents lean y editen tareas de Linear a través de la CLI de Orca.",
|
||||
"toastInstallSkillDescription": "Instala la habilidad de Linear para permitir que tus Agents lean y editen tareas de Linear a través de la CLI de Orca."
|
||||
},
|
||||
"FolderWorkspaceComposerDialog": {
|
||||
"connectFailed": "No se pudo conectar al proyecto.",
|
||||
|
||||
@@ -3958,13 +3958,13 @@
|
||||
"install": "CLI とスキルをインストール",
|
||||
"wslCopy": "リンクされた Linear 作業からの WSL agent 引き継ぎ用にインストールします。",
|
||||
"wslLabel": "WSL 既定",
|
||||
"openSetup": "設定を開く",
|
||||
"toastMissingCliAndSkill": "Orca CLI と Linear agent スキルがありません",
|
||||
"openSetup": "Linear アクセスを設定",
|
||||
"toastMissingCliAndSkill": "Orca CLI と Linear スキルがありません",
|
||||
"toastMissingCli": "Orca CLI がありません",
|
||||
"toastMissingSkill": "Linear agent スキルがありません",
|
||||
"remoteToastDescription": "ホスト引き継ぎ用にローカル設定をインストールします。リモート agent 環境では独自の設定が必要な場合があります。",
|
||||
"wslToastDescription": "リンクされた Linear チケットの引き継ぎにチケットコンテキストが含まれるよう、選択した WSL agent ランタイムにインストールします。",
|
||||
"hostToastDescription": "リンクされた Linear チケットから開始した Agents がチケットコンテキストを読み取り、更新できるようにインストールします。"
|
||||
"toastMissingSkill": "Linear スキルがありません",
|
||||
"toastInstallCliAndSkillDescription": "Orca CLI と Linear スキルをインストールして、agents が Orca CLI を通じて Linear タスクを読み書きできるようにします。",
|
||||
"toastInstallCliDescription": "Orca CLI をインストールして、agents が Orca CLI を通じて Linear タスクを読み書きできるようにします。",
|
||||
"toastInstallSkillDescription": "Linear スキルをインストールして、agents が Orca CLI を通じて Linear タスクを読み書きできるようにします。"
|
||||
},
|
||||
"FolderWorkspaceComposerDialog": {
|
||||
"connectFailed": "プロジェクトに接続できませんでした。",
|
||||
|
||||
@@ -3958,13 +3958,13 @@
|
||||
"install": "CLI 및 스킬 설치",
|
||||
"wslCopy": "연결된 Linear 작업에서 WSL agent 인계를 위해 설치합니다.",
|
||||
"wslLabel": "WSL 기본값",
|
||||
"openSetup": "설정 열기",
|
||||
"toastMissingCliAndSkill": "Orca CLI와 Linear agent 스킬이 없습니다",
|
||||
"openSetup": "Linear 액세스 설정",
|
||||
"toastMissingCliAndSkill": "Orca CLI와 Linear 스킬이 없습니다",
|
||||
"toastMissingCli": "Orca CLI가 없습니다",
|
||||
"toastMissingSkill": "Linear agent 스킬이 없습니다",
|
||||
"remoteToastDescription": "호스트 인계를 위해 로컬 설정을 설치하세요. 원격 agent 환경에는 자체 설정이 필요할 수 있습니다.",
|
||||
"wslToastDescription": "연결된 Linear 티켓 인계에 티켓 컨텍스트가 포함되도록 선택한 WSL agent 런타임에 설치하세요.",
|
||||
"hostToastDescription": "연결된 Linear 티켓에서 시작한 Agents가 티켓 컨텍스트를 읽고 업데이트할 수 있도록 설치하세요."
|
||||
"toastMissingSkill": "Linear 스킬이 없습니다",
|
||||
"toastInstallCliAndSkillDescription": "Orca CLI와 Linear 스킬을 설치하여 agents가 Orca CLI를 통해 Linear 작업을 읽고 편집할 수 있게 하세요.",
|
||||
"toastInstallCliDescription": "Orca CLI를 설치하여 agents가 Orca CLI를 통해 Linear 작업을 읽고 편집할 수 있게 하세요.",
|
||||
"toastInstallSkillDescription": "Linear 스킬을 설치하여 agents가 Orca CLI를 통해 Linear 작업을 읽고 편집할 수 있게 하세요."
|
||||
},
|
||||
"FolderWorkspaceComposerDialog": {
|
||||
"connectFailed": "프로젝트에 연결하지 못했습니다.",
|
||||
|
||||
@@ -3958,13 +3958,13 @@
|
||||
"install": "安装 CLI 和技能",
|
||||
"wslCopy": "为已链接 Linear 工作的 WSL agent 交接安装此项。",
|
||||
"wslLabel": "WSL 默认值",
|
||||
"openSetup": "打开设置",
|
||||
"toastMissingCliAndSkill": "缺少 Orca CLI 和 Linear agent 技能",
|
||||
"openSetup": "设置 Linear 访问权限",
|
||||
"toastMissingCliAndSkill": "缺少 Orca CLI 和 Linear 技能",
|
||||
"toastMissingCli": "缺少 Orca CLI",
|
||||
"toastMissingSkill": "缺少 Linear agent 技能",
|
||||
"remoteToastDescription": "为主机交接安装本地设置;远程 agent 环境可能仍需要自己的设置。",
|
||||
"wslToastDescription": "为所选 WSL agent 运行时安装它们,以便已链接 Linear ticket 的交接包含 ticket 上下文。",
|
||||
"hostToastDescription": "安装它们后,从已链接 Linear ticket 启动的 Agents 可以读取并更新 ticket 上下文。"
|
||||
"toastMissingSkill": "缺少 Linear 技能",
|
||||
"toastInstallCliAndSkillDescription": "安装 Orca CLI 和 Linear 技能,让 Agents 可以通过 Orca CLI 读取并编辑 Linear 任务。",
|
||||
"toastInstallCliDescription": "安装 Orca CLI,让 Agents 可以通过 Orca CLI 读取并编辑 Linear 任务。",
|
||||
"toastInstallSkillDescription": "安装 Linear 技能,让 Agents 可以通过 Orca CLI 读取并编辑 Linear 任务。"
|
||||
},
|
||||
"FolderWorkspaceComposerDialog": {
|
||||
"connectFailed": "无法连接到项目。",
|
||||
|
||||
Reference in New Issue
Block a user