mirror of
https://github.com/stablyai/orca.git
synced 2026-10-16 16:03:26 +00:00
Polish managed skill setup modal copy
This commit is contained in:
@@ -3,46 +3,46 @@ import type { ManagedAgentSkillFallbackReason } from '../../shared/skills'
|
||||
export function getManagedSkillFallbackMessage(reason: ManagedAgentSkillFallbackReason): string {
|
||||
switch (reason) {
|
||||
case 'target-required':
|
||||
return 'Orca could not resolve the runtime that should read this skill.'
|
||||
return "Orca couldn't tell which runtime should use this skill."
|
||||
case 'unsupported-skill':
|
||||
return 'This is not an Orca-managed agent skill.'
|
||||
return "This isn't an Orca-managed skill."
|
||||
case 'repair-required-runtime':
|
||||
return 'The selected runtime needs repair before Orca can inspect its skills.'
|
||||
return 'This runtime needs repair before Orca can inspect its skills.'
|
||||
case 'remote-runtime':
|
||||
return 'Remote runtimes are not updated in the background.'
|
||||
return 'This skill is on a remote runtime, so Orca needs you to update it there.'
|
||||
case 'wsl-runtime':
|
||||
return 'WSL skill updates are manual in this version.'
|
||||
return 'This skill is in WSL, so Orca needs you to update it there.'
|
||||
case 'missing-install':
|
||||
return 'The managed skill is not installed in the selected runtime.'
|
||||
return "This skill isn't installed for this runtime yet."
|
||||
case 'project-install':
|
||||
return 'Project-scoped skills are not updated in the background.'
|
||||
return "This skill is installed in the project, so Orca won't update it automatically."
|
||||
case 'ambiguous-install':
|
||||
return 'Orca found both global and project-scoped copies of this skill.'
|
||||
return 'Orca found more than one copy of this skill and needs you to choose the right one.'
|
||||
case 'bundled-or-plugin-install':
|
||||
return 'Bundled and plugin-cache skills are not mutated by Orca.'
|
||||
return "This skill comes from Orca or a plugin, so Orca won't modify it here."
|
||||
case 'symlinked-global-install':
|
||||
return 'Symlinked global skills are not safe for background updates yet.'
|
||||
return "This global skill is symlinked, so Orca won't change it automatically."
|
||||
case 'unsupported-cli-contract':
|
||||
return 'This build does not include the verified skills CLI update contract.'
|
||||
return "This Orca build can't verify skill updates yet."
|
||||
case 'expected-hash-missing':
|
||||
return 'This build does not include an expected hash for this managed skill.'
|
||||
return "This Orca build can't verify the expected version of this skill."
|
||||
case 'lockfile-missing':
|
||||
return 'Orca could not find the global skills lockfile.'
|
||||
return "Orca couldn't find the global skills lockfile needed to verify this update."
|
||||
case 'lockfile-malformed':
|
||||
return 'The global skills lockfile could not be parsed.'
|
||||
return "Orca couldn't read the global skills lockfile needed to verify this update."
|
||||
case 'lockfile-unsupported-schema':
|
||||
return 'The global skills lockfile uses an unsupported schema version.'
|
||||
return "The global skills lockfile uses a format Orca doesn't support yet."
|
||||
case 'lock-entry-missing':
|
||||
return 'The global skills lockfile does not track this skill.'
|
||||
return "The global skills lockfile doesn't track this skill, so Orca can't verify the update."
|
||||
case 'lock-entry-unmanaged-source':
|
||||
return 'The installed skill is not tracked as Orca-managed source.'
|
||||
return "This installed skill isn't tracked as Orca-managed, so Orca won't update it automatically."
|
||||
case 'background-update-disabled':
|
||||
return 'Automatic skill updates are turned off, so this update needs manual review.'
|
||||
return 'Automatic skill updates are off, so Orca needs you to run this update.'
|
||||
case 'cooldown':
|
||||
return 'Orca recently tried this managed-skill check and is cooling down.'
|
||||
case 'update-failed':
|
||||
return 'The managed-skill update command failed.'
|
||||
return 'Orca tried to update this skill automatically, but the command failed.'
|
||||
case 'update-timeout':
|
||||
return 'The managed-skill update command timed out.'
|
||||
return 'Orca tried to update this skill automatically, but the command timed out.'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -218,6 +218,13 @@ describe('AgentSkillSetupPanel', () => {
|
||||
expect(buttonMarkupByLabel(html, 'Install')).toContain('disabled=""')
|
||||
})
|
||||
|
||||
it('omits description copy when the enclosing surface already provides context', () => {
|
||||
const html = renderPanel({ description: undefined, hideHeader: true })
|
||||
|
||||
expect(html).not.toContain('Enables agents to use Orca workflows.')
|
||||
expect(buttonLabels(html)).toEqual(['Install', 'Re-check'])
|
||||
})
|
||||
|
||||
it('opens not-installed setup with the install command for preview, copy, and terminal', async () => {
|
||||
await renderInteractivePanel({ installedCommand: UPDATE_COMMAND })
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ type SkillPrerequisiteStatus = Awaited<ReturnType<typeof window.api.cli.getInsta
|
||||
|
||||
type AgentSkillSetupPanelProps = {
|
||||
title: string
|
||||
description: ReactNode
|
||||
description?: ReactNode
|
||||
command: string
|
||||
installedCommand?: string
|
||||
terminalTitle: string
|
||||
@@ -253,7 +253,9 @@ export function AgentSkillSetupPanel({
|
||||
</div>
|
||||
)}
|
||||
<div className={cn('max-w-none', hideHeader ? null : 'mt-3')}>
|
||||
<p className="text-[13px] leading-snug text-muted-foreground">{description}</p>
|
||||
{description ? (
|
||||
<p className="text-[13px] leading-snug text-muted-foreground">{description}</p>
|
||||
) : null}
|
||||
{actionRow}
|
||||
{actionHint ? <div className="mt-2">{actionHint}</div> : null}
|
||||
{!installed && preInstallNotice && preInstallNoticeVisible ? (
|
||||
|
||||
@@ -2,7 +2,8 @@ import { beforeEach, describe, expect, it, vi } from 'vitest'
|
||||
import type { ManagedAgentSkillFallback } from '../../../../shared/skills'
|
||||
import {
|
||||
getManagedSkillFallbackDisplayMessage,
|
||||
getManagedSkillContextCopy
|
||||
getManagedSkillContextCopy,
|
||||
getManagedSkillContextWorkspaceCopy
|
||||
} from './managed-agent-skill-dialog-copy'
|
||||
import {
|
||||
advanceManagedAgentSkillFallbackQueue,
|
||||
@@ -52,21 +53,28 @@ beforeEach(() => {
|
||||
})
|
||||
|
||||
describe('ManagedAgentSkillSetupDialogHost copy', () => {
|
||||
it('names the agent-triggered orchestration context', () => {
|
||||
expect(getManagedSkillContextCopy('agent-orchestration')).toBe(
|
||||
'An agent just tried to use Orca orchestration. Orca needs the orchestration skill before agents can coordinate reliably.'
|
||||
it('uses neutral orchestration context copy when no workspace is available', () => {
|
||||
expect(getManagedSkillContextCopy('agent-orchestration', 'Update')).toBe(
|
||||
'Orca Orchestration was used. Update the orchestration skill to enable agents to coordinate reliably.'
|
||||
)
|
||||
})
|
||||
|
||||
it('names the Linear worktree context', () => {
|
||||
expect(getManagedSkillContextCopy('linear-worktree')).toBe(
|
||||
'This Linear task workflow needs the Linear agent skill. Orca could not update it automatically.'
|
||||
expect(getManagedSkillContextCopy('linear-worktree', 'Install')).toBe(
|
||||
'A worktree was started from a Linear task. Install the Linear agent skill to enable agents to read and update Linear issues.'
|
||||
)
|
||||
})
|
||||
|
||||
it('splits workspace-aware context copy so the workspace can expose its full path', () => {
|
||||
expect(getManagedSkillContextWorkspaceCopy('agent-computer-use', 'Install')).toEqual({
|
||||
beforeWorkspace: 'Computer Use was used in ',
|
||||
afterWorkspace: '. Install the Computer Use skill to enable agents to control apps reliably.'
|
||||
})
|
||||
})
|
||||
|
||||
it('localizes fallback reason copy in the renderer', () => {
|
||||
expect(getManagedSkillFallbackDisplayMessage('remote-runtime')).toBe(
|
||||
'Remote runtimes are not updated in the background.'
|
||||
'This skill is on a remote runtime, so Orca needs you to update it there.'
|
||||
)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
} from '@/hooks/useInstalledAgentSkills'
|
||||
import {
|
||||
getManagedSkillContextCopy,
|
||||
getManagedSkillContextWorkspaceCopy,
|
||||
getManagedSkillFallbackDisplayMessage
|
||||
} from './managed-agent-skill-dialog-copy'
|
||||
import {
|
||||
@@ -32,6 +33,7 @@ import {
|
||||
AGENT_SKILL_CLI_PREREQUISITE_NOTICE,
|
||||
isOrcaCliAvailableOnPath
|
||||
} from '@/lib/agent-skill-cli-prerequisite'
|
||||
import { basename } from '@/lib/path'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
const DISMISS_STORAGE_PREFIX = 'orca:managed-agent-skill-setup-dismissed:'
|
||||
@@ -84,7 +86,11 @@ export function ManagedAgentSkillSetupDialogHost(): React.JSX.Element | null {
|
||||
}
|
||||
}, [enqueueFallback])
|
||||
|
||||
const contextCopy = active ? getManagedSkillContextCopy(active.context) : ''
|
||||
const contextActionLabel =
|
||||
active?.manualCommand?.kind === 'update'
|
||||
? translate('auto.components.skills.ManagedAgentSkillSetupDialogHost.update', 'Update')
|
||||
: translate('auto.components.skills.ManagedAgentSkillSetupDialogHost.install', 'Install')
|
||||
const contextCopy = active ? getManagedSkillContextCopy(active.context, contextActionLabel) : ''
|
||||
const installedCommand = useMemo(
|
||||
() => (active ? buildAgentFeatureSkillUpdateCommand(active.skillName) : ''),
|
||||
[active]
|
||||
@@ -134,6 +140,12 @@ export function ManagedAgentSkillSetupDialogHost(): React.JSX.Element | null {
|
||||
|
||||
const command = active.manualCommand?.command
|
||||
const loading = installedState.loading || rechecking
|
||||
const workspacePath = active.request.discoveryTarget?.projectRootPath?.trim() || null
|
||||
const workspaceName = workspacePath ? basename(workspacePath) || workspacePath : null
|
||||
const workspaceContextCopy =
|
||||
workspacePath && workspaceName
|
||||
? getManagedSkillContextWorkspaceCopy(active.context, contextActionLabel)
|
||||
: null
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
@@ -154,10 +166,22 @@ export function ManagedAgentSkillSetupDialogHost(): React.JSX.Element | null {
|
||||
'Agent skill setup needed'
|
||||
)}
|
||||
</DialogTitle>
|
||||
<DialogDescription>{contextCopy}</DialogDescription>
|
||||
<DialogDescription>
|
||||
{workspaceContextCopy && workspacePath && workspaceName ? (
|
||||
<>
|
||||
{workspaceContextCopy.beforeWorkspace}
|
||||
<span className="font-medium text-foreground" title={workspacePath}>
|
||||
{workspaceName}
|
||||
</span>
|
||||
{workspaceContextCopy.afterWorkspace}
|
||||
</>
|
||||
) : (
|
||||
contextCopy
|
||||
)}
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div className="mt-4 flex items-start gap-2 text-[13px] leading-snug text-muted-foreground">
|
||||
<Info className="mt-0.5 size-4 shrink-0" />
|
||||
<Info className="mt-px size-4 shrink-0" />
|
||||
<p>{getManagedSkillFallbackDisplayMessage(active.reason)}</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -170,7 +194,6 @@ export function ManagedAgentSkillSetupDialogHost(): React.JSX.Element | null {
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.panelTitle',
|
||||
'Set up managed agent skill'
|
||||
)}
|
||||
description={contextCopy}
|
||||
command={command}
|
||||
installedCommand={installedCommand}
|
||||
terminalTitle={translate(
|
||||
@@ -186,17 +209,7 @@ export function ManagedAgentSkillSetupDialogHost(): React.JSX.Element | null {
|
||||
installed={installedState.installed}
|
||||
loading={loading}
|
||||
error={installedState.error}
|
||||
installLabel={
|
||||
active.manualCommand?.kind === 'update'
|
||||
? translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.update',
|
||||
'Update'
|
||||
)
|
||||
: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.install',
|
||||
'Install'
|
||||
)
|
||||
}
|
||||
installLabel={contextActionLabel}
|
||||
installedInstallLabel={translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.update',
|
||||
'Update'
|
||||
|
||||
@@ -4,31 +4,99 @@ import type {
|
||||
} from '../../../../shared/skills'
|
||||
import { translate } from '@/i18n/i18n'
|
||||
|
||||
export function getManagedSkillContextCopy(context: ManagedAgentSkillContext): string {
|
||||
export type ManagedSkillContextWorkspaceCopy = {
|
||||
beforeWorkspace: string
|
||||
afterWorkspace: string
|
||||
}
|
||||
|
||||
export function getManagedSkillContextCopy(
|
||||
context: ManagedAgentSkillContext,
|
||||
actionLabel: string
|
||||
): string {
|
||||
switch (context) {
|
||||
case 'linear-worktree':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.linearWorktreeContext',
|
||||
'This Linear task workflow needs the Linear agent skill. Orca could not update it automatically.'
|
||||
'A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.',
|
||||
{ actionLabel }
|
||||
)
|
||||
case 'agent-orchestration':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrchestrationContext',
|
||||
'An agent just tried to use Orca orchestration. Orca needs the orchestration skill before agents can coordinate reliably.'
|
||||
'Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
case 'agent-computer-use':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentComputerUseContext',
|
||||
'An agent just tried to use Computer Use. Orca needs the Computer Use skill before agents can control apps reliably.'
|
||||
'Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
case 'agent-orca-cli':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrcaCliContext',
|
||||
"An agent just tried to use Orca's CLI skill for this workflow. Orca needs the CLI skill before this workflow can continue reliably."
|
||||
'The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export function getManagedSkillContextWorkspaceCopy(
|
||||
context: ManagedAgentSkillContext,
|
||||
actionLabel: string
|
||||
): ManagedSkillContextWorkspaceCopy {
|
||||
switch (context) {
|
||||
case 'linear-worktree':
|
||||
return {
|
||||
beforeWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.linearWorktreeContextBeforeWorkspace',
|
||||
'A worktree was started from a Linear task in '
|
||||
),
|
||||
afterWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.linearWorktreeContextAfterWorkspace',
|
||||
'. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.',
|
||||
{ actionLabel }
|
||||
)
|
||||
}
|
||||
case 'agent-orchestration':
|
||||
return {
|
||||
beforeWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrchestrationContextBeforeWorkspace',
|
||||
'Orca Orchestration was used in '
|
||||
),
|
||||
afterWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrchestrationContextAfterWorkspace',
|
||||
'. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
}
|
||||
case 'agent-computer-use':
|
||||
return {
|
||||
beforeWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentComputerUseContextBeforeWorkspace',
|
||||
'Computer Use was used in '
|
||||
),
|
||||
afterWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentComputerUseContextAfterWorkspace',
|
||||
'. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
}
|
||||
case 'agent-orca-cli':
|
||||
return {
|
||||
beforeWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrcaCliContextBeforeWorkspace',
|
||||
'The Orca CLI skill was used in '
|
||||
),
|
||||
afterWorkspace: translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.agentOrcaCliContextAfterWorkspace',
|
||||
'. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.',
|
||||
{ actionLabel }
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function getManagedSkillFallbackDisplayMessage(
|
||||
reason: ManagedAgentSkillFallbackReason
|
||||
): string {
|
||||
@@ -36,92 +104,92 @@ export function getManagedSkillFallbackDisplayMessage(
|
||||
case 'target-required':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.targetRequired',
|
||||
'Orca could not resolve the runtime that should read this skill.'
|
||||
"Orca couldn't tell which runtime should use this skill."
|
||||
)
|
||||
case 'unsupported-skill':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.unsupportedSkill',
|
||||
'This is not an Orca-managed agent skill.'
|
||||
"This isn't an Orca-managed skill."
|
||||
)
|
||||
case 'repair-required-runtime':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.repairRequiredRuntime',
|
||||
'The selected runtime needs repair before Orca can inspect its skills.'
|
||||
'This runtime needs repair before Orca can inspect its skills.'
|
||||
)
|
||||
case 'remote-runtime':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.remoteRuntime',
|
||||
'Remote runtimes are not updated in the background.'
|
||||
'This skill is on a remote runtime, so Orca needs you to update it there.'
|
||||
)
|
||||
case 'wsl-runtime':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.wslRuntime',
|
||||
'WSL skill updates are manual in this version.'
|
||||
'This skill is in WSL, so Orca needs you to update it there.'
|
||||
)
|
||||
case 'missing-install':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.missingInstall',
|
||||
'The managed skill is not installed in the selected runtime.'
|
||||
"This skill isn't installed for this runtime yet."
|
||||
)
|
||||
case 'project-install':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.projectInstall',
|
||||
'Project-scoped skills are not updated in the background.'
|
||||
"This skill is installed in the project, so Orca won't update it automatically."
|
||||
)
|
||||
case 'ambiguous-install':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.ambiguousInstall',
|
||||
'Orca found both global and project-scoped copies of this skill.'
|
||||
'Orca found more than one copy of this skill and needs you to choose the right one.'
|
||||
)
|
||||
case 'bundled-or-plugin-install':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.bundledOrPluginInstall',
|
||||
'Bundled and plugin-cache skills are not mutated by Orca.'
|
||||
"This skill comes from Orca or a plugin, so Orca won't modify it here."
|
||||
)
|
||||
case 'symlinked-global-install':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.symlinkedGlobalInstall',
|
||||
'Symlinked global skills are not safe for background updates yet.'
|
||||
"This global skill is symlinked, so Orca won't change it automatically."
|
||||
)
|
||||
case 'unsupported-cli-contract':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.unsupportedCliContract',
|
||||
'This build does not include the verified skills CLI update contract.'
|
||||
"This Orca build can't verify skill updates yet."
|
||||
)
|
||||
case 'expected-hash-missing':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.expectedHashMissing',
|
||||
'This build does not include an expected hash for this managed skill.'
|
||||
"This Orca build can't verify the expected version of this skill."
|
||||
)
|
||||
case 'lockfile-missing':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.lockfileMissing',
|
||||
'Orca could not find the global skills lockfile.'
|
||||
"Orca couldn't find the global skills lockfile needed to verify this update."
|
||||
)
|
||||
case 'lockfile-malformed':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.lockfileMalformed',
|
||||
'The global skills lockfile could not be parsed.'
|
||||
"Orca couldn't read the global skills lockfile needed to verify this update."
|
||||
)
|
||||
case 'lockfile-unsupported-schema':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.lockfileUnsupportedSchema',
|
||||
'The global skills lockfile uses an unsupported schema version.'
|
||||
"The global skills lockfile uses a format Orca doesn't support yet."
|
||||
)
|
||||
case 'lock-entry-missing':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.lockEntryMissing',
|
||||
'The global skills lockfile does not track this skill.'
|
||||
"The global skills lockfile doesn't track this skill, so Orca can't verify the update."
|
||||
)
|
||||
case 'lock-entry-unmanaged-source':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.lockEntryUnmanagedSource',
|
||||
'The installed skill is not tracked as Orca-managed source.'
|
||||
"This installed skill isn't tracked as Orca-managed, so Orca won't update it automatically."
|
||||
)
|
||||
case 'background-update-disabled':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.backgroundUpdateDisabled',
|
||||
'Automatic skill updates are turned off, so this update needs manual review.'
|
||||
'Automatic skill updates are off, so Orca needs you to run this update.'
|
||||
)
|
||||
case 'cooldown':
|
||||
return translate(
|
||||
@@ -131,12 +199,12 @@ export function getManagedSkillFallbackDisplayMessage(
|
||||
case 'update-failed':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.updateFailed',
|
||||
'The managed-skill update command failed.'
|
||||
'Orca tried to update this skill automatically, but the command failed.'
|
||||
)
|
||||
case 'update-timeout':
|
||||
return translate(
|
||||
'auto.components.skills.ManagedAgentSkillSetupDialogHost.updateTimeout',
|
||||
'The managed-skill update command timed out.'
|
||||
'Orca tried to update this skill automatically, but the command timed out.'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,7 +153,7 @@
|
||||
"d2e43e426a": "{{value0}} must be an object.",
|
||||
"fb290366b2": "Unavailable on web.",
|
||||
"76122208ca": "Shortcut for \"{{value0}}\" was ignored: {{value1}}",
|
||||
"remoteManagedSkillRuntime": "Remote runtimes are not updated in the background.",
|
||||
"remoteManagedSkillRuntime": "This skill is on a remote runtime, so Orca needs you to update it there.",
|
||||
"remoteManagedSkillCooldown": "Orca recently tried this managed-skill check and is cooling down."
|
||||
}
|
||||
},
|
||||
@@ -3315,31 +3315,39 @@
|
||||
"recheck": "Re-check",
|
||||
"dontShowAgain": "Don't show again",
|
||||
"notNow": "Not now",
|
||||
"linearWorktreeContext": "This Linear task workflow needs the Linear agent skill. Orca could not update it automatically.",
|
||||
"agentOrchestrationContext": "An agent just tried to use Orca orchestration. Orca needs the orchestration skill before agents can coordinate reliably.",
|
||||
"agentComputerUseContext": "An agent just tried to use Computer Use. Orca needs the Computer Use skill before agents can control apps reliably.",
|
||||
"agentOrcaCliContext": "An agent just tried to use Orca's CLI skill for this workflow. Orca needs the CLI skill before this workflow can continue reliably.",
|
||||
"targetRequired": "Orca could not resolve the runtime that should read this skill.",
|
||||
"unsupportedSkill": "This is not an Orca-managed agent skill.",
|
||||
"repairRequiredRuntime": "The selected runtime needs repair before Orca can inspect its skills.",
|
||||
"remoteRuntime": "Remote runtimes are not updated in the background.",
|
||||
"wslRuntime": "WSL skill updates are manual in this version.",
|
||||
"missingInstall": "The managed skill is not installed in the selected runtime.",
|
||||
"projectInstall": "Project-scoped skills are not updated in the background.",
|
||||
"ambiguousInstall": "Orca found both global and project-scoped copies of this skill.",
|
||||
"bundledOrPluginInstall": "Bundled and plugin-cache skills are not mutated by Orca.",
|
||||
"symlinkedGlobalInstall": "Symlinked global skills are not safe for background updates yet.",
|
||||
"unsupportedCliContract": "This build does not include the verified skills CLI update contract.",
|
||||
"expectedHashMissing": "This build does not include an expected hash for this managed skill.",
|
||||
"lockfileMissing": "Orca could not find the global skills lockfile.",
|
||||
"lockfileMalformed": "The global skills lockfile could not be parsed.",
|
||||
"lockfileUnsupportedSchema": "The global skills lockfile uses an unsupported schema version.",
|
||||
"lockEntryMissing": "The global skills lockfile does not track this skill.",
|
||||
"lockEntryUnmanagedSource": "The installed skill is not tracked as Orca-managed source.",
|
||||
"backgroundUpdateDisabled": "Automatic skill updates are turned off, so this update needs manual review.",
|
||||
"linearWorktreeContext": "A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContext": "Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContext": "Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContext": "The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"linearWorktreeContextBeforeWorkspace": "A worktree was started from a Linear task in ",
|
||||
"linearWorktreeContextAfterWorkspace": ". {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContextBeforeWorkspace": "Orca Orchestration was used in ",
|
||||
"agentOrchestrationContextAfterWorkspace": ". {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContextBeforeWorkspace": "Computer Use was used in ",
|
||||
"agentComputerUseContextAfterWorkspace": ". {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContextBeforeWorkspace": "The Orca CLI skill was used in ",
|
||||
"agentOrcaCliContextAfterWorkspace": ". {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"targetRequired": "Orca couldn't tell which runtime should use this skill.",
|
||||
"unsupportedSkill": "This isn't an Orca-managed skill.",
|
||||
"repairRequiredRuntime": "This runtime needs repair before Orca can inspect its skills.",
|
||||
"remoteRuntime": "This skill is on a remote runtime, so Orca needs you to update it there.",
|
||||
"wslRuntime": "This skill is in WSL, so Orca needs you to update it there.",
|
||||
"missingInstall": "This skill isn't installed for this runtime yet.",
|
||||
"projectInstall": "This skill is installed in the project, so Orca won't update it automatically.",
|
||||
"ambiguousInstall": "Orca found more than one copy of this skill and needs you to choose the right one.",
|
||||
"bundledOrPluginInstall": "This skill comes from Orca or a plugin, so Orca won't modify it here.",
|
||||
"symlinkedGlobalInstall": "This global skill is symlinked, so Orca won't change it automatically.",
|
||||
"unsupportedCliContract": "This Orca build can't verify skill updates yet.",
|
||||
"expectedHashMissing": "This Orca build can't verify the expected version of this skill.",
|
||||
"lockfileMissing": "Orca couldn't find the global skills lockfile needed to verify this update.",
|
||||
"lockfileMalformed": "Orca couldn't read the global skills lockfile needed to verify this update.",
|
||||
"lockfileUnsupportedSchema": "The global skills lockfile uses a format Orca doesn't support yet.",
|
||||
"lockEntryMissing": "The global skills lockfile doesn't track this skill, so Orca can't verify the update.",
|
||||
"lockEntryUnmanagedSource": "This installed skill isn't tracked as Orca-managed, so Orca won't update it automatically.",
|
||||
"backgroundUpdateDisabled": "Automatic skill updates are off, so Orca needs you to run this update.",
|
||||
"cooldown": "Orca recently tried this managed-skill check and is cooling down.",
|
||||
"updateFailed": "The managed-skill update command failed.",
|
||||
"updateTimeout": "The managed-skill update command timed out."
|
||||
"updateFailed": "Orca tried to update this skill automatically, but the command failed.",
|
||||
"updateTimeout": "Orca tried to update this skill automatically, but the command timed out."
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
|
||||
@@ -3315,10 +3315,10 @@
|
||||
"recheck": "Volver a comprobar",
|
||||
"dontShowAgain": "No volver a mostrar",
|
||||
"notNow": "Ahora no",
|
||||
"linearWorktreeContext": "Este flujo de tarea de Linear necesita la habilidad de agente de Linear. Orca no pudo actualizarla automáticamente.",
|
||||
"agentOrchestrationContext": "Un agente acaba de intentar usar la orquestación de Orca. Orca necesita la habilidad de orquestación para que los agentes puedan coordinarse de forma fiable.",
|
||||
"agentComputerUseContext": "Un agente acaba de intentar usar Computer Use. Orca necesita la habilidad Computer Use para que los agentes puedan controlar apps de forma fiable.",
|
||||
"agentOrcaCliContext": "Un agente acaba de intentar usar la habilidad de CLI de Orca para este flujo. Orca necesita la habilidad de CLI para que este flujo pueda continuar de forma fiable.",
|
||||
"linearWorktreeContext": "A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContext": "Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContext": "Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContext": "The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"targetRequired": "Orca no pudo resolver el entorno de ejecución que debe leer esta habilidad.",
|
||||
"unsupportedSkill": "Esta no es una habilidad de agente administrada por Orca.",
|
||||
"repairRequiredRuntime": "El entorno de ejecución seleccionado necesita reparación antes de que Orca pueda inspeccionar sus habilidades.",
|
||||
@@ -3339,7 +3339,15 @@
|
||||
"backgroundUpdateDisabled": "Las actualizaciones automáticas de habilidades están desactivadas, por lo que esta actualización necesita revisión manual.",
|
||||
"cooldown": "Orca intentó recientemente esta comprobación de habilidad administrada y está esperando antes de volver a intentarlo.",
|
||||
"updateFailed": "El comando de actualización de la habilidad administrada falló.",
|
||||
"updateTimeout": "El comando de actualización de la habilidad administrada agotó el tiempo de espera."
|
||||
"updateTimeout": "El comando de actualización de la habilidad administrada agotó el tiempo de espera.",
|
||||
"linearWorktreeContextBeforeWorkspace": "A worktree was started from a Linear task in ",
|
||||
"linearWorktreeContextAfterWorkspace": ". {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContextBeforeWorkspace": "Orca Orchestration was used in ",
|
||||
"agentOrchestrationContextAfterWorkspace": ". {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContextBeforeWorkspace": "Computer Use was used in ",
|
||||
"agentComputerUseContextAfterWorkspace": ". {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContextBeforeWorkspace": "The Orca CLI skill was used in ",
|
||||
"agentOrcaCliContextAfterWorkspace": ". {{actionLabel}} the CLI skill to enable this workflow to continue reliably."
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
|
||||
@@ -3315,10 +3315,10 @@
|
||||
"recheck": "再チェック",
|
||||
"dontShowAgain": "今後表示しない",
|
||||
"notNow": "今はしない",
|
||||
"linearWorktreeContext": "この Linear タスクのワークフローには Linear エージェントスキルが必要です。Orca は自動更新できませんでした。",
|
||||
"agentOrchestrationContext": "エージェントが Orca オーケストレーションを使おうとしました。エージェントが確実に連携するには、Orca にオーケストレーションスキルが必要です。",
|
||||
"agentComputerUseContext": "エージェントが Computer Use を使おうとしました。エージェントがアプリを確実に操作するには、Orca に Computer Use スキルが必要です。",
|
||||
"agentOrcaCliContext": "エージェントがこのワークフローで Orca の CLI スキルを使おうとしました。このワークフローを確実に続行するには、Orca に CLI スキルが必要です。",
|
||||
"linearWorktreeContext": "A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContext": "Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContext": "Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContext": "The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"targetRequired": "Orca はこのスキルを読み取るランタイムを解決できませんでした。",
|
||||
"unsupportedSkill": "これは Orca 管理のエージェントスキルではありません。",
|
||||
"repairRequiredRuntime": "Orca がスキルを検査する前に、選択したランタイムの修復が必要です。",
|
||||
@@ -3339,7 +3339,15 @@
|
||||
"backgroundUpdateDisabled": "スキルの自動更新がオフになっているため、この更新には手動確認が必要です。",
|
||||
"cooldown": "Orca は最近この管理対象スキルのチェックを試行したため、クールダウン中です。",
|
||||
"updateFailed": "管理対象スキルの更新コマンドに失敗しました。",
|
||||
"updateTimeout": "管理対象スキルの更新コマンドがタイムアウトしました。"
|
||||
"updateTimeout": "管理対象スキルの更新コマンドがタイムアウトしました。",
|
||||
"linearWorktreeContextBeforeWorkspace": "A worktree was started from a Linear task in ",
|
||||
"linearWorktreeContextAfterWorkspace": ". {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContextBeforeWorkspace": "Orca Orchestration was used in ",
|
||||
"agentOrchestrationContextAfterWorkspace": ". {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContextBeforeWorkspace": "Computer Use was used in ",
|
||||
"agentComputerUseContextAfterWorkspace": ". {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContextBeforeWorkspace": "The Orca CLI skill was used in ",
|
||||
"agentOrcaCliContextAfterWorkspace": ". {{actionLabel}} the CLI skill to enable this workflow to continue reliably."
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
|
||||
@@ -3315,10 +3315,10 @@
|
||||
"recheck": "다시 확인",
|
||||
"dontShowAgain": "다시 표시하지 않기",
|
||||
"notNow": "나중에",
|
||||
"linearWorktreeContext": "이 Linear 작업 흐름에는 Linear 에이전트 스킬이 필요합니다. Orca가 자동으로 업데이트할 수 없습니다.",
|
||||
"agentOrchestrationContext": "에이전트가 방금 Orca 오케스트레이션을 사용하려고 했습니다. 에이전트가 안정적으로 조율되려면 Orca에 오케스트레이션 스킬이 필요합니다.",
|
||||
"agentComputerUseContext": "에이전트가 방금 Computer Use를 사용하려고 했습니다. 에이전트가 앱을 안정적으로 제어하려면 Orca에 Computer Use 스킬이 필요합니다.",
|
||||
"agentOrcaCliContext": "에이전트가 이 흐름에서 Orca의 CLI 스킬을 사용하려고 했습니다. 이 흐름을 안정적으로 계속하려면 Orca에 CLI 스킬이 필요합니다.",
|
||||
"linearWorktreeContext": "A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContext": "Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContext": "Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContext": "The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"targetRequired": "Orca가 이 스킬을 읽어야 하는 런타임을 확인할 수 없습니다.",
|
||||
"unsupportedSkill": "Orca가 관리하는 에이전트 스킬이 아닙니다.",
|
||||
"repairRequiredRuntime": "Orca가 스킬을 검사하기 전에 선택한 런타임을 복구해야 합니다.",
|
||||
@@ -3339,7 +3339,15 @@
|
||||
"backgroundUpdateDisabled": "자동 스킬 업데이트가 꺼져 있어 이 업데이트는 수동 검토가 필요합니다.",
|
||||
"cooldown": "Orca가 최근 이 관리형 스킬 확인을 시도했으며 현재 대기 중입니다.",
|
||||
"updateFailed": "관리형 스킬 업데이트 명령이 실패했습니다.",
|
||||
"updateTimeout": "관리형 스킬 업데이트 명령 시간이 초과되었습니다."
|
||||
"updateTimeout": "관리형 스킬 업데이트 명령 시간이 초과되었습니다.",
|
||||
"linearWorktreeContextBeforeWorkspace": "A worktree was started from a Linear task in ",
|
||||
"linearWorktreeContextAfterWorkspace": ". {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContextBeforeWorkspace": "Orca Orchestration was used in ",
|
||||
"agentOrchestrationContextAfterWorkspace": ". {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContextBeforeWorkspace": "Computer Use was used in ",
|
||||
"agentComputerUseContextAfterWorkspace": ". {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContextBeforeWorkspace": "The Orca CLI skill was used in ",
|
||||
"agentOrcaCliContextAfterWorkspace": ". {{actionLabel}} the CLI skill to enable this workflow to continue reliably."
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
|
||||
@@ -3315,10 +3315,10 @@
|
||||
"recheck": "重新检查",
|
||||
"dontShowAgain": "不再显示",
|
||||
"notNow": "稍后",
|
||||
"linearWorktreeContext": "此 Linear 任务流程需要 Linear 代理技能。Orca 无法自动更新它。",
|
||||
"agentOrchestrationContext": "代理刚刚尝试使用 Orca 编排。Orca 需要编排技能,代理才能可靠地协作。",
|
||||
"agentComputerUseContext": "代理刚刚尝试使用 Computer Use。Orca 需要 Computer Use 技能,代理才能可靠地控制应用。",
|
||||
"agentOrcaCliContext": "代理刚刚尝试在此流程中使用 Orca 的 CLI 技能。Orca 需要 CLI 技能,此流程才能可靠地继续。",
|
||||
"linearWorktreeContext": "A worktree was started from a Linear task. {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContext": "Orca Orchestration was used. {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContext": "Computer Use was used. {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContext": "The Orca CLI skill was used. {{actionLabel}} the CLI skill to enable this workflow to continue reliably.",
|
||||
"targetRequired": "Orca 无法解析应读取此技能的运行时。",
|
||||
"unsupportedSkill": "这不是 Orca 托管的代理技能。",
|
||||
"repairRequiredRuntime": "所选运行时需要修复,Orca 才能检查其技能。",
|
||||
@@ -3339,7 +3339,15 @@
|
||||
"backgroundUpdateDisabled": "自动技能更新已关闭,因此此次更新需要手动审核。",
|
||||
"cooldown": "Orca 最近已尝试此托管技能检查,正在等待重试。",
|
||||
"updateFailed": "托管技能更新命令失败。",
|
||||
"updateTimeout": "托管技能更新命令超时。"
|
||||
"updateTimeout": "托管技能更新命令超时。",
|
||||
"linearWorktreeContextBeforeWorkspace": "A worktree was started from a Linear task in ",
|
||||
"linearWorktreeContextAfterWorkspace": ". {{actionLabel}} the Linear agent skill to enable agents to read and update Linear issues.",
|
||||
"agentOrchestrationContextBeforeWorkspace": "Orca Orchestration was used in ",
|
||||
"agentOrchestrationContextAfterWorkspace": ". {{actionLabel}} the orchestration skill to enable agents to coordinate reliably.",
|
||||
"agentComputerUseContextBeforeWorkspace": "Computer Use was used in ",
|
||||
"agentComputerUseContextAfterWorkspace": ". {{actionLabel}} the Computer Use skill to enable agents to control apps reliably.",
|
||||
"agentOrcaCliContextBeforeWorkspace": "The Orca CLI skill was used in ",
|
||||
"agentOrcaCliContextAfterWorkspace": ". {{actionLabel}} the CLI skill to enable this workflow to continue reliably."
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
|
||||
@@ -90,7 +90,7 @@ const mockApi = {
|
||||
scope: 'missing',
|
||||
reason: 'remote-runtime',
|
||||
uiKey: 'remote::linear-tickets:linear-worktree',
|
||||
message: 'Remote runtimes are not updated in the background.',
|
||||
message: 'This skill is on a remote runtime, so Orca needs you to update it there.',
|
||||
request: {
|
||||
skillName: 'linear-tickets',
|
||||
context: 'linear-worktree',
|
||||
|
||||
@@ -2341,7 +2341,7 @@ function createSkillsApi(): NonNullable<Partial<PreloadApi>['skills']> {
|
||||
uiKey,
|
||||
message: translate(
|
||||
'auto.web.web.preload.api.remoteManagedSkillRuntime',
|
||||
'Remote runtimes are not updated in the background.'
|
||||
'This skill is on a remote runtime, so Orca needs you to update it there.'
|
||||
),
|
||||
request
|
||||
} satisfies ManagedAgentSkillFallback
|
||||
|
||||
Reference in New Issue
Block a user