- update_task 卡片后端补返 title + 前端 title 优先 + i18n 文案对齐(UX-260619-04,防裸 UUID id 辨识度低) - anthropic_compat 合并连续 user 块,修 GLM 1214 协议交替违规(B-260619-03)
167 lines
7.1 KiB
TypeScript
167 lines
7.1 KiB
TypeScript
export default {
|
|
aiTool: {
|
|
running: 'Running…',
|
|
approve: 'Approve',
|
|
reject: 'Reject',
|
|
approveAll: 'Approve All ({n})',
|
|
rejectAll: 'Reject All',
|
|
rejectedHint: 'User rejected this action',
|
|
// B-260616-12: tool execution slow hint (frontend fallback, no backend cancel IPC)
|
|
executionSlow: 'Tool "{name}" is taking longer than expected, please wait…',
|
|
// UX-260616-01: tool execution failure marker (AR-6 keeps status=completed, red to distinguish from success)
|
|
executionFailed: 'Failed',
|
|
executionFailedHint: 'Tool execution failed, see details below',
|
|
// Singular expand/collapse (ToolCard single-card content, command output toggle; expandAll/collapseAll are for ToolCardList global multi-group)
|
|
expand: 'Expand',
|
|
collapse: 'Collapse',
|
|
expandAll: 'Expand all',
|
|
collapseAll: 'Collapse all',
|
|
written: 'written',
|
|
items: 'items',
|
|
lines: 'lines',
|
|
// UX-260618-08/11: truncation hints (read_file paged truncation / list_directory 1000-entry cap)
|
|
linesTruncated: '{shown}/{total} lines, truncated',
|
|
dirTruncated: 'Truncated, first {n} items only',
|
|
|
|
readPrefix: 'Read',
|
|
readFallback: 'Read File',
|
|
dirPrefix: 'Dir',
|
|
dirFallback: 'List Directory',
|
|
writePrefix: 'Write',
|
|
writeFallback: 'Write File',
|
|
// CRUD tool display names (delete/restore/purge/update_project resolve project name by id; fallback when no id or unresolved)
|
|
deletePrefix: 'Delete Project',
|
|
deleteFallback: 'Delete Project',
|
|
restorePrefix: 'Restore Project',
|
|
restoreFallback: 'Restore Project from Trash',
|
|
purgePrefix: 'Purge Project',
|
|
purgeFallback: 'Purge Project',
|
|
updatePrefix: 'Update Project',
|
|
updateFallback: 'Update Project',
|
|
createTask: 'Create Task',
|
|
createProject: 'Create Project',
|
|
|
|
taskCount: '{n} tasks',
|
|
projectCount: '{n} projects',
|
|
ideaCount: '{n} ideas',
|
|
// UX-260618-10/12: list_trash collapsed header count + paged has_more hint (backend returns {items,total,has_more} object)
|
|
trashCount: '{n} in trash',
|
|
listHasMore: '({n} shown, more available)',
|
|
createdWithName: 'Created: {name}',
|
|
created: 'Created',
|
|
updatedField: 'Updated {field}',
|
|
updated: 'Updated',
|
|
deleted: 'Deleted',
|
|
deleteIneffective: 'Delete ineffective',
|
|
restored: 'Restored',
|
|
restoreIneffective: 'Restore ineffective (not in trash)',
|
|
purged: 'Purged',
|
|
purgeIneffective: 'Purge ineffective',
|
|
workflowHint: 'Run it on the workflow page',
|
|
// UX-260618-05: run_workflow tool_result shows execution_id (workflowHint misleading — workflow already triggered; old key kept for other refs)
|
|
workflowTriggered: 'Task {id} triggered workflow (advancing to {status}, execution {exec})',
|
|
workflowTriggeredShort: 'Execution {exec}',
|
|
|
|
// UX-260616-04: formatToolResult covers all tools with human-readable summaries (missing keys)
|
|
updatedTaskField: 'Task「{title}」 updated field {field}',
|
|
advancedTask: 'Task「{title}」 advanced to {status}',
|
|
// UX-260618-09: advance_task return-round accumulation (shown only when >0); UX-260618-14: {title} = task name (TaskRecord), fallback id
|
|
advancedTaskWithRounds: 'Task「{title}」 advanced to {status} (returned {n} times)',
|
|
commandOk: 'Command succeeded ({ms} ms)',
|
|
commandFailed: 'Command failed (exit code {code})',
|
|
commandOutputLines: '{n} lines of output',
|
|
patchedFile: 'Patched {path} ({diff} bytes)',
|
|
// UX-260618-06: patch_file multi-match hint + size_diff unit
|
|
patchedMatches: 'matched {n} places',
|
|
bytesUnit: 'bytes',
|
|
patchedNoChange: '{path} no change',
|
|
appendedTo: 'Appended {bytes} to {path}',
|
|
renamedFile: 'Renamed {from} → {to}',
|
|
// UX-260618-12: rename_file bytes/cross-volume + write_file overwrite/encoding hints
|
|
renamedWithBytes: 'Renamed {from} → {to} ({bytes})',
|
|
renamedCrossVolume: 'Moved {from} → {to} (cross-volume, {bytes})',
|
|
writeOverwrite: 'overwrote {old} → {neww}',
|
|
encodingLabel: 'encoding: {enc}',
|
|
// http_request result summary (method + status + elapsed; body in expanded view)
|
|
httpOk: '{method} {status} OK ({ms} ms)',
|
|
httpFailed: '{method} {status} failed',
|
|
httpTruncated: 'Response truncated ({bytes}), see details',
|
|
httpRequestFallback: 'HTTP Request',
|
|
foundN: 'Found {n}',
|
|
boundDir: 'Bound directory "{path}" stack: {stack}',
|
|
deleteFilePermanent: 'Permanently deleted {path}',
|
|
// UX-260618-07: soft-delete adds backup_path (trash filename so user knows where to recover from)
|
|
deleteFileSoft: 'Soft-deleted {path} (backed up, recover from: {backup_path})',
|
|
fileInfoSize: '{path} {size}',
|
|
// UX-260618-12: file_info modified time (epoch_ms → client toLocaleString)
|
|
fileInfoModified: ' · modified {time}',
|
|
fileInfoLines: ' · {n} lines',
|
|
fileInfoBinary: ' · binary',
|
|
fileInfoDir: ' · directory',
|
|
fileInfoMissing: '{path} does not exist',
|
|
|
|
projectLabel: '"{name}"',
|
|
projectIdNotFound: '(project not found, id={id})',
|
|
// UX-260618-14: advance_task/run_workflow task_id → task title (store.tasks lookup; fallback id)
|
|
taskLabel: '"{name}"',
|
|
taskIdNotFound: '(task not in current list, id={id})',
|
|
|
|
// AE-2025-05: High-risk approval second confirm (ask once more before approve; misclick cancellable)
|
|
confirmHighDelete: 'Permanently delete? This action cannot be undone',
|
|
confirmHighExec: 'Run this command?',
|
|
confirmHighGeneric: 'Proceed with this high-risk action?',
|
|
|
|
// Tool result detail format (plain-text result + approval placeholder appends arg summary)
|
|
resultDetail: '{raw} ({detail})',
|
|
|
|
// UX-260617-17: ToolCardList group header (shown when 2+ same-name tools; was hardcoded zh)
|
|
toolGroup: {
|
|
readFile: 'Read File',
|
|
writeFile: 'Write File',
|
|
listDirectory: 'List Directory',
|
|
createTask: 'Create Task',
|
|
createProject: 'Create Project',
|
|
createIdea: 'Create Idea',
|
|
listTasks: 'List Tasks',
|
|
listProjects: 'List Projects',
|
|
listIdeas: 'List Ideas',
|
|
deleteProject: 'Delete Project',
|
|
restoreProject: 'Restore Project',
|
|
purgeProject: 'Purge Project',
|
|
updateProject: 'Update Project',
|
|
runWorkflow: 'Run Workflow',
|
|
httpRequest: 'HTTP Request',
|
|
},
|
|
|
|
// UX-260617-14: approval loading fallback timeout notice (no backend ack, card still pending_approval → reset + prompt)
|
|
approveLoadingTimeout: 'Approval response timed out, please retry or check the backend',
|
|
|
|
// UX-260617-18: tool failure detection copy (regex narrowed to line-anchored err_msg prefix)
|
|
// (reuse executionFailed/executionFailedHint, no new key)
|
|
|
|
// http_request High-risk confirm: external network call, data may leak via URL/body
|
|
confirmHighHttp: 'Send this HTTP request to an external server?',
|
|
|
|
// Approval argument key labels
|
|
argLabel: {
|
|
id: 'ID',
|
|
projectId: 'Project ID',
|
|
name: 'Name',
|
|
title: 'Title',
|
|
description: 'Description',
|
|
field: 'Field',
|
|
value: 'Value',
|
|
path: 'Path',
|
|
priority: 'Priority',
|
|
tags: 'Tags',
|
|
source: 'Source',
|
|
method: 'Method',
|
|
url: 'URL',
|
|
body: 'Body',
|
|
headers: 'Headers',
|
|
timeout_secs: 'Timeout (s)',
|
|
parse: 'Parse',
|
|
},
|
|
},
|
|
}
|