refactor: clean CLI taxonomy — canonical subcommands, merged memory.update, no aliases

- calendar: split write → create/read/update/delete/share
- contacts: rename lookup → read
- memory: merge write+forget → update (unified action field in operations)
- Remove all alias/normalization logic from adapter and handlers
- Update tool_postprocessor ui_hints builders to canonical keys
- Remove frontend legacy TOOL_CALL_START/ARGS/END events and ToolCallItem
- Update SKILL.md files and protocol docs
- Update tests and settings screens
This commit is contained in:
qzl
2026-04-23 12:12:41 +08:00
parent 91077a933d
commit 19e273a9e6
48 changed files with 1578 additions and 811 deletions
+13 -20
View File
@@ -1,21 +1,13 @@
import '../l10n/l10n.dart';
const Map<String, String> _toolNameAliases = {
'calendar_read': 'calendar.read',
'calendar_write': 'calendar.write',
'calendar_share': 'calendar.share',
'user_lookup': 'user.lookup',
'memory_write': 'memory.write',
'memory_forget': 'memory.forget',
};
const List<String> automationToolOptions = [
'calendar.create',
'calendar.read',
'calendar.write',
'calendar.update',
'calendar.delete',
'calendar.share',
'user.lookup',
'memory.write',
'memory.forget',
'contacts.read',
'memory.update',
];
String localizeToolName(String rawName) {
@@ -23,20 +15,21 @@ String localizeToolName(String rawName) {
if (normalized.isEmpty) {
return rawName;
}
final canonical = _toolNameAliases[normalized] ?? normalized;
switch (canonical) {
switch (normalized) {
case 'calendar.create':
return L10n.current.toolCalendarWrite;
case 'calendar.read':
return L10n.current.toolCalendarRead;
case 'calendar.write':
case 'calendar.update':
return L10n.current.toolCalendarWrite;
case 'calendar.delete':
return L10n.current.toolCalendarWrite;
case 'calendar.share':
return L10n.current.toolCalendarShare;
case 'user.lookup':
case 'contacts.read':
return L10n.current.toolUserLookup;
case 'memory.write':
case 'memory.update':
return L10n.current.toolMemoryWrite;
case 'memory.forget':
return L10n.current.toolMemoryForget;
default:
return rawName;
}