@ariaflowagents/core 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -2
- package/dist/hooks/helpers.d.ts +62 -0
- package/dist/hooks/helpers.d.ts.map +1 -0
- package/dist/hooks/helpers.js +250 -0
- package/dist/hooks/helpers.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/prompts/PromptBuilder.d.ts +9 -0
- package/dist/prompts/PromptBuilder.d.ts.map +1 -0
- package/dist/prompts/PromptBuilder.js +34 -0
- package/dist/prompts/PromptBuilder.js.map +1 -0
- package/dist/prompts/index.d.ts +7 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +5 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/registry.d.ts +6 -0
- package/dist/prompts/registry.d.ts.map +1 -0
- package/dist/prompts/registry.js +16 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/prompts/templates.d.ts +8 -0
- package/dist/prompts/templates.d.ts.map +1 -0
- package/dist/prompts/templates.js +256 -0
- package/dist/prompts/templates.js.map +1 -0
- package/dist/prompts/types.d.ts +93 -0
- package/dist/prompts/types.d.ts.map +1 -0
- package/dist/prompts/types.js +286 -0
- package/dist/prompts/types.js.map +1 -0
- package/dist/tools/errorHandling.d.ts +37 -0
- package/dist/tools/errorHandling.d.ts.map +1 -0
- package/dist/tools/errorHandling.js +139 -0
- package/dist/tools/errorHandling.js.map +1 -0
- package/dist/tools/errorMessages.d.ts +13 -0
- package/dist/tools/errorMessages.d.ts.map +1 -0
- package/dist/tools/errorMessages.js +81 -0
- package/dist/tools/errorMessages.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/chrono.d.ts +72 -0
- package/dist/utils/chrono.d.ts.map +1 -0
- package/dist/utils/chrono.js +106 -0
- package/dist/utils/chrono.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/prompts/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface ToolErrorConfig<T = unknown> {
|
|
2
|
+
maxRetries?: number;
|
|
3
|
+
retryDelayMs?: number;
|
|
4
|
+
fallbackValue?: T;
|
|
5
|
+
onError?: (error: Error, attempt: number) => Promise<void>;
|
|
6
|
+
shouldRetry?: (error: Error) => boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface ToolResult<T = unknown> {
|
|
9
|
+
success: boolean;
|
|
10
|
+
data?: T;
|
|
11
|
+
error?: Error;
|
|
12
|
+
attempts: number;
|
|
13
|
+
totalTimeMs: number;
|
|
14
|
+
}
|
|
15
|
+
export declare function withErrorHandling<T, Args extends unknown[], R = Awaited<T>>(fn: (...args: Args) => T, config?: ToolErrorConfig<R>): (...args: Args) => Promise<ToolResult<R>>;
|
|
16
|
+
export declare function executeWithRetry<T>(fn: () => Promise<T>, config?: {
|
|
17
|
+
maxRetries?: number;
|
|
18
|
+
delayMs?: number;
|
|
19
|
+
backoffMultiplier?: number;
|
|
20
|
+
maxDelayMs?: number;
|
|
21
|
+
onRetry?: (error: Error, attempt: number) => void;
|
|
22
|
+
}): Promise<T>;
|
|
23
|
+
export declare function createCircuitBreaker<T, Args extends unknown[]>(fn: (...args: Args) => Promise<T>, config?: {
|
|
24
|
+
failureThreshold?: number;
|
|
25
|
+
resetTimeoutMs?: number;
|
|
26
|
+
halfOpenRequests?: number;
|
|
27
|
+
}): (...args: Args) => Promise<T>;
|
|
28
|
+
export declare function isPermanentError(error: Error): boolean;
|
|
29
|
+
export declare class CircuitOpenError extends Error {
|
|
30
|
+
constructor(message: string);
|
|
31
|
+
}
|
|
32
|
+
export declare function isCircuitOpenError(error: unknown): error is CircuitOpenError;
|
|
33
|
+
export declare class ToolTimeoutError extends Error {
|
|
34
|
+
constructor(message?: string);
|
|
35
|
+
}
|
|
36
|
+
export declare function withTimeout<T>(fn: () => Promise<T>, timeoutMs: number, error?: Error): Promise<T>;
|
|
37
|
+
//# sourceMappingURL=errorHandling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandling.d.ts","sourceRoot":"","sources":["../../src/tools/errorHandling.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACzE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EACxB,MAAM,GAAE,eAAe,CAAC,CAAC,CAAM,GAC9B,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CA+C3C;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,MAAM,GAAE;IACN,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C,GACL,OAAO,CAAC,CAAC,CAAC,CAgCZ;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC5D,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACjC,MAAM,GAAE;IACN,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GACL,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CA6C/B;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CActD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,gBAAgB,CAE5E;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,OAAO,GAAE,MAAmC;CAIzD;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,CAAC,CAAC,CAUZ"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
export function withErrorHandling(fn, config = {}) {
|
|
2
|
+
const { maxRetries = 3, retryDelayMs = 1000, fallbackValue, onError, shouldRetry = (e) => !isPermanentError(e), } = config;
|
|
3
|
+
return async (...args) => {
|
|
4
|
+
const startTime = Date.now();
|
|
5
|
+
let lastError;
|
|
6
|
+
let attempts = 0;
|
|
7
|
+
while (attempts <= maxRetries) {
|
|
8
|
+
attempts++;
|
|
9
|
+
try {
|
|
10
|
+
const result = await fn(...args);
|
|
11
|
+
return {
|
|
12
|
+
success: true,
|
|
13
|
+
data: result,
|
|
14
|
+
attempts,
|
|
15
|
+
totalTimeMs: Date.now() - startTime,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
lastError = error;
|
|
20
|
+
if (onError) {
|
|
21
|
+
await onError(lastError, attempts);
|
|
22
|
+
}
|
|
23
|
+
if (attempts <= maxRetries && shouldRetry(lastError)) {
|
|
24
|
+
await sleep(retryDelayMs * attempts);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
success: false,
|
|
33
|
+
error: lastError,
|
|
34
|
+
attempts,
|
|
35
|
+
totalTimeMs: Date.now() - startTime,
|
|
36
|
+
data: fallbackValue,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export async function executeWithRetry(fn, config = {}) {
|
|
41
|
+
const { maxRetries = 3, delayMs = 1000, backoffMultiplier = 2, maxDelayMs = 10000, onRetry, } = config;
|
|
42
|
+
let lastError;
|
|
43
|
+
let currentDelay = delayMs;
|
|
44
|
+
for (let attempt = 1; attempt <= maxRetries + 1; attempt++) {
|
|
45
|
+
try {
|
|
46
|
+
return await fn();
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
lastError = error;
|
|
50
|
+
if (isPermanentError(lastError) || attempt > maxRetries) {
|
|
51
|
+
throw lastError;
|
|
52
|
+
}
|
|
53
|
+
if (onRetry) {
|
|
54
|
+
onRetry(lastError, attempt);
|
|
55
|
+
}
|
|
56
|
+
await sleep(currentDelay);
|
|
57
|
+
currentDelay = Math.min(currentDelay * backoffMultiplier, maxDelayMs);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
throw lastError;
|
|
61
|
+
}
|
|
62
|
+
export function createCircuitBreaker(fn, config = {}) {
|
|
63
|
+
const { failureThreshold = 5, resetTimeoutMs = 30000, halfOpenRequests = 3, } = config;
|
|
64
|
+
let failures = 0;
|
|
65
|
+
let lastFailureTime;
|
|
66
|
+
let halfOpenCount = 0;
|
|
67
|
+
let isOpen = false;
|
|
68
|
+
return async (...args) => {
|
|
69
|
+
const now = Date.now();
|
|
70
|
+
if (isOpen) {
|
|
71
|
+
if (lastFailureTime && now - lastFailureTime >= resetTimeoutMs) {
|
|
72
|
+
if (halfOpenCount < halfOpenRequests) {
|
|
73
|
+
halfOpenCount++;
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
failures = 0;
|
|
77
|
+
halfOpenCount = 0;
|
|
78
|
+
isOpen = false;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
throw new CircuitOpenError('Circuit breaker is open');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const result = await fn(...args);
|
|
87
|
+
failures = Math.max(0, failures - 1);
|
|
88
|
+
halfOpenCount = 0;
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
failures++;
|
|
93
|
+
lastFailureTime = now;
|
|
94
|
+
if (failures >= failureThreshold) {
|
|
95
|
+
isOpen = true;
|
|
96
|
+
}
|
|
97
|
+
throw error;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
export function isPermanentError(error) {
|
|
102
|
+
const permanentErrors = [
|
|
103
|
+
'not found',
|
|
104
|
+
'invalid',
|
|
105
|
+
'unauthorized',
|
|
106
|
+
'forbidden',
|
|
107
|
+
'not implemented',
|
|
108
|
+
'deprecated',
|
|
109
|
+
'already exists',
|
|
110
|
+
'permission denied',
|
|
111
|
+
];
|
|
112
|
+
const message = error.message.toLowerCase();
|
|
113
|
+
return permanentErrors.some((e) => message.includes(e));
|
|
114
|
+
}
|
|
115
|
+
export class CircuitOpenError extends Error {
|
|
116
|
+
constructor(message) {
|
|
117
|
+
super(message);
|
|
118
|
+
this.name = 'CircuitOpenError';
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export function isCircuitOpenError(error) {
|
|
122
|
+
return error instanceof CircuitOpenError;
|
|
123
|
+
}
|
|
124
|
+
export class ToolTimeoutError extends Error {
|
|
125
|
+
constructor(message = 'Tool execution timed out') {
|
|
126
|
+
super(message);
|
|
127
|
+
this.name = 'ToolTimeoutError';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export async function withTimeout(fn, timeoutMs, error) {
|
|
131
|
+
return Promise.race([
|
|
132
|
+
fn(),
|
|
133
|
+
new Promise((_, reject) => setTimeout(() => reject(error ?? new ToolTimeoutError()), timeoutMs)),
|
|
134
|
+
]);
|
|
135
|
+
}
|
|
136
|
+
function sleep(ms) {
|
|
137
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=errorHandling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHandling.js","sourceRoot":"","sources":["../../src/tools/errorHandling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const DEFAULT_ERROR_MESSAGES: Record<string, string>;
|
|
2
|
+
export type ErrorCategory = keyof typeof DEFAULT_ERROR_MESSAGES;
|
|
3
|
+
export declare function getUserFriendlyError(error: Error | unknown, customMessages?: Record<string, string>): string;
|
|
4
|
+
export declare function categorizeError(errorMessage: string): ErrorCategory;
|
|
5
|
+
export declare function createErrorResponse(userMessage: string, metadata?: {
|
|
6
|
+
errorCode?: string;
|
|
7
|
+
correlationId?: string;
|
|
8
|
+
suggestedActions?: string[];
|
|
9
|
+
}): {
|
|
10
|
+
error: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=errorMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMessages.d.ts","sourceRoot":"","sources":["../../src/tools/errorMessages.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAezD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,sBAAsB,CAAC;AAEhE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,GAAG,OAAO,EACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,MAAM,CAMR;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CA4CnE;AAED,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,GACA;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAavD"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
export const DEFAULT_ERROR_MESSAGES = {
|
|
2
|
+
generic: 'I encountered an issue while processing your request. Please try again.',
|
|
3
|
+
not_found: "I couldn't find the information you're looking for. Could you double-check the details?",
|
|
4
|
+
invalid_input: 'The information provided seems incorrect. Please verify and try again.',
|
|
5
|
+
unauthorized: "I'm sorry, I don't have permission to access that information.",
|
|
6
|
+
forbidden: "I'm not able to perform that action. Please contact support if you believe this is an error.",
|
|
7
|
+
timeout: 'This is taking longer than expected. Please try again.',
|
|
8
|
+
network: 'I seem to be having trouble connecting. Please check your connection and try again.',
|
|
9
|
+
rate_limit: "I'm receiving too many requests. Please wait a moment and try again.",
|
|
10
|
+
validation: 'The information provided is incomplete or incorrect. Please provide more details.',
|
|
11
|
+
concurrency: 'Another operation is in progress. Please wait and try again.',
|
|
12
|
+
not_implemented: "I'm not able to perform that action yet. Please contact support for assistance.",
|
|
13
|
+
deprecated: 'This feature is no longer available. Please use the updated version.',
|
|
14
|
+
permission_denied: "You don't have permission to perform this action.",
|
|
15
|
+
resource_exhausted: 'The system is currently overloaded. Please try again later.',
|
|
16
|
+
};
|
|
17
|
+
export function getUserFriendlyError(error, customMessages) {
|
|
18
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
19
|
+
const category = categorizeError(errorMessage);
|
|
20
|
+
const messages = { ...DEFAULT_ERROR_MESSAGES, ...customMessages };
|
|
21
|
+
return messages[category] ?? messages.generic;
|
|
22
|
+
}
|
|
23
|
+
export function categorizeError(errorMessage) {
|
|
24
|
+
const message = errorMessage.toLowerCase();
|
|
25
|
+
if (message.includes('not found') || message.includes('does not exist')) {
|
|
26
|
+
return 'not_found';
|
|
27
|
+
}
|
|
28
|
+
if (message.includes('invalid') || message.includes('malformed')) {
|
|
29
|
+
return 'invalid_input';
|
|
30
|
+
}
|
|
31
|
+
if (message.includes('unauthorized') || message.includes('not authenticated')) {
|
|
32
|
+
return 'unauthorized';
|
|
33
|
+
}
|
|
34
|
+
if (message.includes('forbidden') || message.includes('access denied')) {
|
|
35
|
+
return 'forbidden';
|
|
36
|
+
}
|
|
37
|
+
if (message.includes('timeout') || message.includes('timed out')) {
|
|
38
|
+
return 'timeout';
|
|
39
|
+
}
|
|
40
|
+
if (message.includes('network') || message.includes('connection')) {
|
|
41
|
+
return 'network';
|
|
42
|
+
}
|
|
43
|
+
if (message.includes('rate limit') || message.includes('too many requests')) {
|
|
44
|
+
return 'rate_limit';
|
|
45
|
+
}
|
|
46
|
+
if (message.includes('validation') || message.includes('required')) {
|
|
47
|
+
return 'validation';
|
|
48
|
+
}
|
|
49
|
+
if (message.includes('concurrent') || message.includes('conflict')) {
|
|
50
|
+
return 'concurrency';
|
|
51
|
+
}
|
|
52
|
+
if (message.includes('not implemented') || message.includes('unsupported')) {
|
|
53
|
+
return 'not_implemented';
|
|
54
|
+
}
|
|
55
|
+
if (message.includes('deprecated') || message.includes('obsolete')) {
|
|
56
|
+
return 'deprecated';
|
|
57
|
+
}
|
|
58
|
+
if (message.includes('permission') || message.includes('access')) {
|
|
59
|
+
return 'permission_denied';
|
|
60
|
+
}
|
|
61
|
+
if (message.includes('resource') || message.includes('quota')) {
|
|
62
|
+
return 'resource_exhausted';
|
|
63
|
+
}
|
|
64
|
+
return 'generic';
|
|
65
|
+
}
|
|
66
|
+
export function createErrorResponse(userMessage, metadata) {
|
|
67
|
+
const response = {
|
|
68
|
+
error: userMessage,
|
|
69
|
+
};
|
|
70
|
+
if (metadata) {
|
|
71
|
+
response.metadata = {};
|
|
72
|
+
if (metadata.errorCode)
|
|
73
|
+
response.metadata.errorCode = metadata.errorCode;
|
|
74
|
+
if (metadata.correlationId)
|
|
75
|
+
response.metadata.correlationId = metadata.correlationId;
|
|
76
|
+
if (metadata.suggestedActions)
|
|
77
|
+
response.metadata.suggestedActions = metadata.suggestedActions;
|
|
78
|
+
}
|
|
79
|
+
return response;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=errorMessages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorMessages.js","sourceRoot":"","sources":["../../src/tools/errorMessages.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -2,4 +2,6 @@ export type { Tool, ToolSet, ToolDefinition, ToolWithFiller } from './Tool.js';
|
|
|
2
2
|
export { createTool, createToolWithFiller } from './Tool.js';
|
|
3
3
|
export { createHandoffTool, isHandoffResult } from './handoff.js';
|
|
4
4
|
export type { HandoffResult } from './handoff.js';
|
|
5
|
+
export { withErrorHandling, executeWithRetry, createCircuitBreaker, withTimeout, isPermanentError, isCircuitOpenError, CircuitOpenError, ToolTimeoutError, type ToolErrorConfig, type ToolResult, } from './errorHandling.js';
|
|
6
|
+
export { DEFAULT_ERROR_MESSAGES, getUserFriendlyError, categorizeError, createErrorResponse, type ErrorCategory, } from './errorMessages.js';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,oBAAoB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { createTool, createToolWithFiller } from './Tool.js';
|
|
2
2
|
export { createHandoffTool, isHandoffResult } from './handoff.js';
|
|
3
|
+
export { withErrorHandling, executeWithRetry, createCircuitBreaker, withTimeout, isPermanentError, isCircuitOpenError, CircuitOpenError, ToolTimeoutError, } from './errorHandling.js';
|
|
4
|
+
export { DEFAULT_ERROR_MESSAGES, getUserFriendlyError, categorizeError, createErrorResponse, } from './errorMessages.js';
|
|
3
5
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,GAEpB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export interface DateParserOptions {
|
|
2
|
+
referenceDate?: Date;
|
|
3
|
+
forwardDate?: boolean;
|
|
4
|
+
timezones?: Record<string, number>;
|
|
5
|
+
}
|
|
6
|
+
export interface ParsedDateResult {
|
|
7
|
+
date?: Date;
|
|
8
|
+
text: string;
|
|
9
|
+
confidence: number;
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
}
|
|
13
|
+
export declare function createDateParser(options?: DateParserOptions): import("../tools/Tool.js").ToolDefinition<unknown, {
|
|
14
|
+
readonly success: true;
|
|
15
|
+
readonly input: string;
|
|
16
|
+
readonly parsed: {
|
|
17
|
+
readonly date: Date;
|
|
18
|
+
readonly text: string;
|
|
19
|
+
readonly confidence: number;
|
|
20
|
+
readonly start: number;
|
|
21
|
+
readonly end: number;
|
|
22
|
+
};
|
|
23
|
+
readonly startDate: string;
|
|
24
|
+
readonly endDate: string | undefined;
|
|
25
|
+
readonly error?: undefined;
|
|
26
|
+
readonly text?: undefined;
|
|
27
|
+
} | {
|
|
28
|
+
readonly success: false;
|
|
29
|
+
readonly error: string;
|
|
30
|
+
readonly text: string;
|
|
31
|
+
readonly input?: undefined;
|
|
32
|
+
readonly parsed?: undefined;
|
|
33
|
+
readonly startDate?: undefined;
|
|
34
|
+
readonly endDate?: undefined;
|
|
35
|
+
}>;
|
|
36
|
+
export declare function parseDate(text: string, options?: DateParserOptions): {
|
|
37
|
+
date?: Date;
|
|
38
|
+
text: string;
|
|
39
|
+
confidence: number;
|
|
40
|
+
} | null;
|
|
41
|
+
export declare function parseDateRange(text: string, options?: DateParserOptions): {
|
|
42
|
+
start?: Date;
|
|
43
|
+
end?: Date;
|
|
44
|
+
text: string;
|
|
45
|
+
} | null;
|
|
46
|
+
export declare function formatDateForSpeech(date: Date): string;
|
|
47
|
+
export declare function formatTimeForSpeech(date: Date): string;
|
|
48
|
+
export declare const commonDateExpressions: readonly ["tomorrow", "next Friday", "this weekend", "March 15th", "in 3 days", "last week", "next month", "today at 3pm", "tomorrow morning", "Friday afternoon"];
|
|
49
|
+
export declare const dateParser: import("../tools/Tool.js").ToolDefinition<unknown, {
|
|
50
|
+
readonly success: true;
|
|
51
|
+
readonly input: string;
|
|
52
|
+
readonly parsed: {
|
|
53
|
+
readonly date: Date;
|
|
54
|
+
readonly text: string;
|
|
55
|
+
readonly confidence: number;
|
|
56
|
+
readonly start: number;
|
|
57
|
+
readonly end: number;
|
|
58
|
+
};
|
|
59
|
+
readonly startDate: string;
|
|
60
|
+
readonly endDate: string | undefined;
|
|
61
|
+
readonly error?: undefined;
|
|
62
|
+
readonly text?: undefined;
|
|
63
|
+
} | {
|
|
64
|
+
readonly success: false;
|
|
65
|
+
readonly error: string;
|
|
66
|
+
readonly text: string;
|
|
67
|
+
readonly input?: undefined;
|
|
68
|
+
readonly parsed?: undefined;
|
|
69
|
+
readonly startDate?: undefined;
|
|
70
|
+
readonly endDate?: undefined;
|
|
71
|
+
}>;
|
|
72
|
+
//# sourceMappingURL=chrono.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrono.d.ts","sourceRoot":"","sources":["../../src/utils/chrono.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB;;;;;;;;;;;;;;;;;;;;;;GA0C/D;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B;IAAE,IAAI,CAAC,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgB1D;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,iBAAsB,GAC9B;IAAE,KAAK,CAAC,EAAE,IAAI,CAAC;IAAC,GAAG,CAAC,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgBnD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAOtD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAMtD;AAED,eAAO,MAAM,qBAAqB,oKAWxB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;EAA0C,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as chrono from 'chrono-node';
|
|
2
|
+
import { createTool } from '../tools/Tool.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
export function createDateParser(options = {}) {
|
|
5
|
+
return createTool({
|
|
6
|
+
description: 'Parse natural language dates into structured Date objects.',
|
|
7
|
+
inputSchema: z.object({
|
|
8
|
+
text: z.string().describe('Natural language date (e.g., "tomorrow at 3pm", "next Friday")'),
|
|
9
|
+
referenceDate: z.string().optional().describe('Reference date in ISO format'),
|
|
10
|
+
timezone: z.string().optional().describe('Timezone (e.g., "America/New_York")'),
|
|
11
|
+
}),
|
|
12
|
+
execute: async (input) => {
|
|
13
|
+
const { text, referenceDate } = input;
|
|
14
|
+
try {
|
|
15
|
+
const refDate = referenceDate ? new Date(referenceDate) : options.referenceDate || new Date();
|
|
16
|
+
const chronoOptions = { forwardDate: options.forwardDate ?? true };
|
|
17
|
+
const results = chrono.parse(text, refDate, chronoOptions);
|
|
18
|
+
if (results.length === 0) {
|
|
19
|
+
return { success: false, error: 'No dates found', text };
|
|
20
|
+
}
|
|
21
|
+
const result = results[0];
|
|
22
|
+
const confidence = result.text.length / text.trim().length;
|
|
23
|
+
return {
|
|
24
|
+
success: true,
|
|
25
|
+
input: text,
|
|
26
|
+
parsed: {
|
|
27
|
+
date: result.date(),
|
|
28
|
+
text: result.text,
|
|
29
|
+
confidence: Math.min(confidence, 1.0),
|
|
30
|
+
start: result.index,
|
|
31
|
+
end: result.index + result.text.length,
|
|
32
|
+
},
|
|
33
|
+
startDate: result.start?.date()?.toISOString(),
|
|
34
|
+
endDate: result.end?.date()?.toISOString(),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (err) {
|
|
38
|
+
const error = err;
|
|
39
|
+
return { success: false, error: error.message, text };
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export function parseDate(text, options = {}) {
|
|
45
|
+
try {
|
|
46
|
+
const refDate = options.referenceDate || new Date();
|
|
47
|
+
const results = chrono.parse(text, refDate, { forwardDate: options.forwardDate ?? true });
|
|
48
|
+
if (results.length === 0)
|
|
49
|
+
return null;
|
|
50
|
+
const result = results[0];
|
|
51
|
+
return {
|
|
52
|
+
date: result.date(),
|
|
53
|
+
text: result.text,
|
|
54
|
+
confidence: Math.min(result.text.length / text.trim().length, 1.0),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function parseDateRange(text, options = {}) {
|
|
62
|
+
try {
|
|
63
|
+
const refDate = options.referenceDate || new Date();
|
|
64
|
+
const results = chrono.parse(text, refDate, { forwardDate: options.forwardDate ?? true });
|
|
65
|
+
if (results.length === 0)
|
|
66
|
+
return null;
|
|
67
|
+
const result = results[0];
|
|
68
|
+
return {
|
|
69
|
+
start: result.start?.date(),
|
|
70
|
+
end: result.end?.date(),
|
|
71
|
+
text: result.text,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
export function formatDateForSpeech(date) {
|
|
79
|
+
return date.toLocaleDateString('en-US', {
|
|
80
|
+
weekday: 'long',
|
|
81
|
+
month: 'long',
|
|
82
|
+
day: 'numeric',
|
|
83
|
+
year: 'numeric',
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
export function formatTimeForSpeech(date) {
|
|
87
|
+
return date.toLocaleTimeString('en-US', {
|
|
88
|
+
hour: 'numeric',
|
|
89
|
+
minute: '2-digit',
|
|
90
|
+
hour12: true,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
export const commonDateExpressions = [
|
|
94
|
+
'tomorrow',
|
|
95
|
+
'next Friday',
|
|
96
|
+
'this weekend',
|
|
97
|
+
'March 15th',
|
|
98
|
+
'in 3 days',
|
|
99
|
+
'last week',
|
|
100
|
+
'next month',
|
|
101
|
+
'today at 3pm',
|
|
102
|
+
'tomorrow morning',
|
|
103
|
+
'Friday afternoon',
|
|
104
|
+
];
|
|
105
|
+
export const dateParser = createDateParser({ forwardDate: true });
|
|
106
|
+
//# sourceMappingURL=chrono.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chrono.js","sourceRoot":"","sources":["../../src/utils/chrono.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,qBAAqB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,qBAAqB,GAGtB,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ariaflowagents/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "A framework for structured conversational AI agents",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -45,6 +45,10 @@
|
|
|
45
45
|
"types": "./dist/tools/index.d.ts",
|
|
46
46
|
"default": "./dist/tools/index.js"
|
|
47
47
|
},
|
|
48
|
+
"./prompts": {
|
|
49
|
+
"types": "./dist/prompts/index.d.ts",
|
|
50
|
+
"default": "./dist/prompts/index.js"
|
|
51
|
+
},
|
|
48
52
|
"./types": {
|
|
49
53
|
"types": "./dist/types/index.d.ts",
|
|
50
54
|
"default": "./dist/types/index.js"
|
|
@@ -61,7 +65,8 @@
|
|
|
61
65
|
"dotenv": "^16.4.0",
|
|
62
66
|
"zod": "^3.23.0",
|
|
63
67
|
"tsx": "^4.7.0",
|
|
64
|
-
"typescript": "^5.3.0"
|
|
68
|
+
"typescript": "^5.3.0",
|
|
69
|
+
"chrono-node": "^2.6.0"
|
|
65
70
|
},
|
|
66
71
|
"scripts": {
|
|
67
72
|
"build": "tsc -p tsconfig.json",
|