feat(ipuaro): add error handling matrix and ErrorHandler service

Implemented comprehensive error handling system according to v0.16.0 roadmap:

- ERROR_MATRIX with 9 error types (redis, parse, llm, file, command, conflict, validation, timeout, unknown)
- Enhanced IpuaroError with options, defaultOption, context properties
- New methods: getMeta(), hasOption(), toDisplayString()
- ErrorHandler service with handle(), wrap(), withRetry() methods
- Utility functions: getErrorOptions(), isRecoverableError(), toIpuaroError()
- 59 new tests (27 for IpuaroError, 32 for ErrorHandler)
- Coverage maintained at 97.59%

Breaking changes:
- IpuaroError constructor signature changed to (type, message, options?)
- ErrorChoice deprecated in favor of ErrorOption
This commit is contained in:
imfozilbek
2025-12-01 15:50:30 +05:00
parent f947c6d157
commit 8f995fc596
11 changed files with 1089 additions and 70 deletions

View File

@@ -16,12 +16,7 @@ export class ToolRegistry implements IToolRegistry {
*/
register(tool: ITool): void {
if (this.tools.has(tool.name)) {
throw new IpuaroError(
"validation",
`Tool "${tool.name}" is already registered`,
true,
"Use a different tool name or unregister the existing tool first",
)
throw IpuaroError.validation(`Tool "${tool.name}" is already registered`)
}
this.tools.set(tool.name, tool)
}