@chucky.cloud/sdk 0.1.0
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 +330 -0
- package/dist/browser.d.ts +8 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +12 -0
- package/dist/browser.js.map +1 -0
- package/dist/client/ChuckyClient.d.ts +187 -0
- package/dist/client/ChuckyClient.d.ts.map +1 -0
- package/dist/client/ChuckyClient.js +232 -0
- package/dist/client/ChuckyClient.js.map +1 -0
- package/dist/client/Session.d.ts +146 -0
- package/dist/client/Session.d.ts.map +1 -0
- package/dist/client/Session.js +405 -0
- package/dist/client/Session.js.map +1 -0
- package/dist/client/index.d.ts +10 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +8 -0
- package/dist/client/index.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/node.d.ts +8 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +11 -0
- package/dist/node.js.map +1 -0
- package/dist/tools/McpServer.d.ts +117 -0
- package/dist/tools/McpServer.d.ts.map +1 -0
- package/dist/tools/McpServer.js +142 -0
- package/dist/tools/McpServer.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/tool.d.ts +146 -0
- package/dist/tools/tool.d.ts.map +1 -0
- package/dist/tools/tool.js +232 -0
- package/dist/tools/tool.js.map +1 -0
- package/dist/transport/Transport.d.ts +82 -0
- package/dist/transport/Transport.d.ts.map +1 -0
- package/dist/transport/Transport.js +45 -0
- package/dist/transport/Transport.js.map +1 -0
- package/dist/transport/WebSocketTransport.d.ts +78 -0
- package/dist/transport/WebSocketTransport.d.ts.map +1 -0
- package/dist/transport/WebSocketTransport.js +253 -0
- package/dist/transport/WebSocketTransport.js.map +1 -0
- package/dist/transport/index.d.ts +10 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +8 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/messages.d.ts +195 -0
- package/dist/types/messages.d.ts.map +1 -0
- package/dist/types/messages.js +70 -0
- package/dist/types/messages.js.map +1 -0
- package/dist/types/options.d.ts +210 -0
- package/dist/types/options.d.ts.map +1 -0
- package/dist/types/options.js +8 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/results.d.ts +182 -0
- package/dist/types/results.d.ts.map +1 -0
- package/dist/types/results.js +7 -0
- package/dist/types/results.js.map +1 -0
- package/dist/types/token.d.ts +124 -0
- package/dist/types/token.d.ts.map +1 -0
- package/dist/types/token.js +7 -0
- package/dist/types/token.js.map +1 -0
- package/dist/types/tools.d.ts +160 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +8 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/errors.d.ts +80 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +158 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/token.d.ts +93 -0
- package/dist/utils/token.d.ts.map +1 -0
- package/dist/utils/token.js +195 -0
- package/dist/utils/token.js.map +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.d.ts","sourceRoot":"","sources":["../../src/types/results.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/types/results.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Budget Token Types
|
|
3
|
+
*
|
|
4
|
+
* Types for JWT tokens used for authentication and budget control.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Budget window types
|
|
8
|
+
*/
|
|
9
|
+
export type BudgetWindow = 'hour' | 'day' | 'week' | 'month';
|
|
10
|
+
/**
|
|
11
|
+
* Budget configuration in a token
|
|
12
|
+
*/
|
|
13
|
+
export interface TokenBudget {
|
|
14
|
+
/** AI budget in microdollars (1 USD = 1,000,000 microdollars) */
|
|
15
|
+
ai: number;
|
|
16
|
+
/** Compute budget in seconds */
|
|
17
|
+
compute: number;
|
|
18
|
+
/** Budget window period */
|
|
19
|
+
window: BudgetWindow;
|
|
20
|
+
/** When current period started (ISO 8601) */
|
|
21
|
+
windowStart: string;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Permission configuration in a token
|
|
25
|
+
*/
|
|
26
|
+
export interface TokenPermissions {
|
|
27
|
+
/** Allowed tool names */
|
|
28
|
+
tools?: string[];
|
|
29
|
+
/** Blocked tool names */
|
|
30
|
+
blockedTools?: string[];
|
|
31
|
+
/** Maximum turns per conversation */
|
|
32
|
+
maxTurns?: number;
|
|
33
|
+
/** Model restriction */
|
|
34
|
+
model?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* SDK configuration overrides in a token
|
|
38
|
+
* When present, these values SUPERSEDE options provided by the SDK client
|
|
39
|
+
*/
|
|
40
|
+
export interface TokenSdkConfig {
|
|
41
|
+
/** Model to use */
|
|
42
|
+
model?: string;
|
|
43
|
+
/** System prompt */
|
|
44
|
+
systemPrompt?: string;
|
|
45
|
+
/** Tools configuration */
|
|
46
|
+
tools?: unknown;
|
|
47
|
+
/** Allowed tools */
|
|
48
|
+
allowedTools?: string[];
|
|
49
|
+
/** Disallowed tools */
|
|
50
|
+
disallowedTools?: string[];
|
|
51
|
+
/** Maximum turns */
|
|
52
|
+
maxTurns?: number;
|
|
53
|
+
/** Maximum budget in USD */
|
|
54
|
+
maxBudgetUsd?: number;
|
|
55
|
+
/** Maximum thinking tokens */
|
|
56
|
+
maxThinkingTokens?: number;
|
|
57
|
+
/** Permission mode */
|
|
58
|
+
permissionMode?: string;
|
|
59
|
+
/** Allow dangerous skip permissions */
|
|
60
|
+
allowDangerouslySkipPermissions?: boolean;
|
|
61
|
+
/** MCP servers configuration */
|
|
62
|
+
mcpServers?: unknown[];
|
|
63
|
+
/** Agents configuration */
|
|
64
|
+
agents?: unknown;
|
|
65
|
+
/** Betas configuration */
|
|
66
|
+
betas?: string[];
|
|
67
|
+
/** Output format */
|
|
68
|
+
outputFormat?: string;
|
|
69
|
+
/** Environment variables */
|
|
70
|
+
env?: Record<string, string>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Budget token payload (JWT claims)
|
|
74
|
+
*/
|
|
75
|
+
export interface BudgetTokenPayload {
|
|
76
|
+
/** User ID - unique identifier for the end user */
|
|
77
|
+
sub: string;
|
|
78
|
+
/** Project/Issuer ID - identifies which project */
|
|
79
|
+
iss: string;
|
|
80
|
+
/** Token expiry timestamp (Unix seconds) */
|
|
81
|
+
exp: number;
|
|
82
|
+
/** Issued at timestamp (Unix seconds) */
|
|
83
|
+
iat?: number;
|
|
84
|
+
/** Budget declaration */
|
|
85
|
+
budget: TokenBudget;
|
|
86
|
+
/** Permission configuration (optional) */
|
|
87
|
+
permissions?: TokenPermissions;
|
|
88
|
+
/** SDK config overrides (optional) */
|
|
89
|
+
sdkConfig?: TokenSdkConfig;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Options for creating a budget token
|
|
93
|
+
*/
|
|
94
|
+
export interface CreateTokenOptions {
|
|
95
|
+
/** User ID */
|
|
96
|
+
userId: string;
|
|
97
|
+
/** Project/Issuer ID (UUID) */
|
|
98
|
+
projectId: string;
|
|
99
|
+
/** HMAC secret key for signing */
|
|
100
|
+
secret: string;
|
|
101
|
+
/** Token expiry duration in seconds (default: 3600 = 1 hour) */
|
|
102
|
+
expiresIn?: number;
|
|
103
|
+
/** Budget configuration */
|
|
104
|
+
budget: TokenBudget;
|
|
105
|
+
/** Permission configuration */
|
|
106
|
+
permissions?: TokenPermissions;
|
|
107
|
+
/** SDK config overrides */
|
|
108
|
+
sdkConfig?: TokenSdkConfig;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Decoded token result
|
|
112
|
+
*/
|
|
113
|
+
export interface DecodedToken {
|
|
114
|
+
/** Token header */
|
|
115
|
+
header: {
|
|
116
|
+
alg: string;
|
|
117
|
+
typ: string;
|
|
118
|
+
};
|
|
119
|
+
/** Token payload */
|
|
120
|
+
payload: BudgetTokenPayload;
|
|
121
|
+
/** Token signature (base64url) */
|
|
122
|
+
signature: string;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/types/token.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/types/token.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Definition Types
|
|
3
|
+
*
|
|
4
|
+
* Types for defining tools that can be executed by Claude.
|
|
5
|
+
* Supports both server-side and browser-side execution.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* JSON Schema property types
|
|
9
|
+
*/
|
|
10
|
+
export type JsonSchemaType = 'string' | 'number' | 'integer' | 'boolean' | 'array' | 'object' | 'null';
|
|
11
|
+
/**
|
|
12
|
+
* JSON Schema property definition
|
|
13
|
+
*/
|
|
14
|
+
export interface JsonSchemaProperty {
|
|
15
|
+
/** Property type */
|
|
16
|
+
type: JsonSchemaType;
|
|
17
|
+
/** Human-readable description */
|
|
18
|
+
description?: string;
|
|
19
|
+
/** Enumeration of allowed values */
|
|
20
|
+
enum?: string[];
|
|
21
|
+
/** Default value */
|
|
22
|
+
default?: unknown;
|
|
23
|
+
/** For arrays: schema of array items */
|
|
24
|
+
items?: JsonSchemaProperty;
|
|
25
|
+
/** For objects: nested properties */
|
|
26
|
+
properties?: Record<string, JsonSchemaProperty>;
|
|
27
|
+
/** For objects: required property names */
|
|
28
|
+
required?: string[];
|
|
29
|
+
/** Minimum value (for numbers) */
|
|
30
|
+
minimum?: number;
|
|
31
|
+
/** Maximum value (for numbers) */
|
|
32
|
+
maximum?: number;
|
|
33
|
+
/** Minimum length (for strings/arrays) */
|
|
34
|
+
minLength?: number;
|
|
35
|
+
/** Maximum length (for strings/arrays) */
|
|
36
|
+
maxLength?: number;
|
|
37
|
+
/** Pattern (for strings) */
|
|
38
|
+
pattern?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* JSON Schema for tool input
|
|
42
|
+
*/
|
|
43
|
+
export interface ToolInputSchema {
|
|
44
|
+
/** Always 'object' for tool inputs */
|
|
45
|
+
type: 'object';
|
|
46
|
+
/** Property definitions */
|
|
47
|
+
properties: Record<string, JsonSchemaProperty>;
|
|
48
|
+
/** Required property names */
|
|
49
|
+
required?: string[];
|
|
50
|
+
/** Allow additional properties */
|
|
51
|
+
additionalProperties?: boolean;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Tool content types for results
|
|
55
|
+
*/
|
|
56
|
+
export type ToolContentType = 'text' | 'image' | 'resource';
|
|
57
|
+
/**
|
|
58
|
+
* Text content in tool result
|
|
59
|
+
*/
|
|
60
|
+
export interface TextContent {
|
|
61
|
+
type: 'text';
|
|
62
|
+
text: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Image content in tool result
|
|
66
|
+
*/
|
|
67
|
+
export interface ImageContent {
|
|
68
|
+
type: 'image';
|
|
69
|
+
/** Base64-encoded image data */
|
|
70
|
+
data: string;
|
|
71
|
+
/** MIME type (e.g., 'image/png') */
|
|
72
|
+
mimeType: string;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Resource content in tool result
|
|
76
|
+
*/
|
|
77
|
+
export interface ResourceContent {
|
|
78
|
+
type: 'resource';
|
|
79
|
+
/** Resource URI */
|
|
80
|
+
uri: string;
|
|
81
|
+
/** MIME type */
|
|
82
|
+
mimeType?: string;
|
|
83
|
+
/** Resource text content */
|
|
84
|
+
text?: string;
|
|
85
|
+
/** Resource binary data (base64) */
|
|
86
|
+
blob?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Union type for all tool content
|
|
90
|
+
*/
|
|
91
|
+
export type ToolContent = TextContent | ImageContent | ResourceContent;
|
|
92
|
+
/**
|
|
93
|
+
* Tool execution result
|
|
94
|
+
*/
|
|
95
|
+
export interface ToolResult {
|
|
96
|
+
/** Result content */
|
|
97
|
+
content: ToolContent[];
|
|
98
|
+
/** Whether this is an error result */
|
|
99
|
+
isError?: boolean;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Where the tool should be executed
|
|
103
|
+
*/
|
|
104
|
+
export type ToolExecutionLocation = 'server' | 'browser';
|
|
105
|
+
/**
|
|
106
|
+
* Tool handler function type
|
|
107
|
+
*/
|
|
108
|
+
export type ToolHandler<TInput = Record<string, unknown>> = (input: TInput) => ToolResult | Promise<ToolResult>;
|
|
109
|
+
/**
|
|
110
|
+
* Tool definition
|
|
111
|
+
*/
|
|
112
|
+
export interface ToolDefinition<TInput = Record<string, unknown>> {
|
|
113
|
+
/** Unique tool name */
|
|
114
|
+
name: string;
|
|
115
|
+
/** Human-readable description of what the tool does */
|
|
116
|
+
description: string;
|
|
117
|
+
/** JSON Schema defining the input parameters */
|
|
118
|
+
inputSchema: ToolInputSchema;
|
|
119
|
+
/**
|
|
120
|
+
* Where the tool should be executed
|
|
121
|
+
* @default 'server'
|
|
122
|
+
*/
|
|
123
|
+
executeIn?: ToolExecutionLocation;
|
|
124
|
+
/**
|
|
125
|
+
* Handler function (required for browser tools, optional for server tools)
|
|
126
|
+
*/
|
|
127
|
+
handler?: ToolHandler<TInput>;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* MCP Server definition
|
|
131
|
+
*/
|
|
132
|
+
export interface McpServerDefinition {
|
|
133
|
+
/** Server name */
|
|
134
|
+
name: string;
|
|
135
|
+
/** Server version */
|
|
136
|
+
version?: string;
|
|
137
|
+
/** Tools provided by this server */
|
|
138
|
+
tools: ToolDefinition[];
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Tool call from the model
|
|
142
|
+
*/
|
|
143
|
+
export interface ToolCall {
|
|
144
|
+
/** Unique call ID */
|
|
145
|
+
callId: string;
|
|
146
|
+
/** Tool name */
|
|
147
|
+
toolName: string;
|
|
148
|
+
/** Input arguments */
|
|
149
|
+
input: Record<string, unknown>;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Tool call response
|
|
153
|
+
*/
|
|
154
|
+
export interface ToolCallResponse {
|
|
155
|
+
/** Call ID (must match the tool call) */
|
|
156
|
+
callId: string;
|
|
157
|
+
/** Tool execution result */
|
|
158
|
+
result: ToolResult;
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Custom error types for the Chucky SDK.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base error class for Chucky SDK errors
|
|
8
|
+
*/
|
|
9
|
+
export declare class ChuckyError extends Error {
|
|
10
|
+
/** Error code */
|
|
11
|
+
readonly code: string;
|
|
12
|
+
/** Additional error details */
|
|
13
|
+
readonly details?: Record<string, unknown>;
|
|
14
|
+
constructor(message: string, code: string, details?: Record<string, unknown>);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Connection error
|
|
18
|
+
*/
|
|
19
|
+
export declare class ConnectionError extends ChuckyError {
|
|
20
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Authentication error
|
|
24
|
+
*/
|
|
25
|
+
export declare class AuthenticationError extends ChuckyError {
|
|
26
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Budget exceeded error
|
|
30
|
+
*/
|
|
31
|
+
export declare class BudgetExceededError extends ChuckyError {
|
|
32
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Concurrency limit error
|
|
36
|
+
*/
|
|
37
|
+
export declare class ConcurrencyLimitError extends ChuckyError {
|
|
38
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Rate limit error
|
|
42
|
+
*/
|
|
43
|
+
export declare class RateLimitError extends ChuckyError {
|
|
44
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Session error
|
|
48
|
+
*/
|
|
49
|
+
export declare class SessionError extends ChuckyError {
|
|
50
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Tool execution error
|
|
54
|
+
*/
|
|
55
|
+
export declare class ToolExecutionError extends ChuckyError {
|
|
56
|
+
/** Tool name */
|
|
57
|
+
readonly toolName: string;
|
|
58
|
+
constructor(message: string, toolName: string, details?: Record<string, unknown>);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Timeout error
|
|
62
|
+
*/
|
|
63
|
+
export declare class TimeoutError extends ChuckyError {
|
|
64
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Validation error
|
|
68
|
+
*/
|
|
69
|
+
export declare class ValidationError extends ChuckyError {
|
|
70
|
+
constructor(message: string, details?: Record<string, unknown>);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Parse error code from error message
|
|
74
|
+
*/
|
|
75
|
+
export declare function parseErrorCode(message: string): string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Create appropriate error from message and optional code
|
|
78
|
+
*/
|
|
79
|
+
export declare function createError(message: string, code?: string): ChuckyError;
|
|
80
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE/B,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAW7E;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACtC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,WAAW;gBACxC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,gBAAgB;IAChB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBAEd,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAKjF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;gBAClC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAuBvE"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Classes
|
|
3
|
+
*
|
|
4
|
+
* Custom error types for the Chucky SDK.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base error class for Chucky SDK errors
|
|
8
|
+
*/
|
|
9
|
+
export class ChuckyError extends Error {
|
|
10
|
+
/** Error code */
|
|
11
|
+
code;
|
|
12
|
+
/** Additional error details */
|
|
13
|
+
details;
|
|
14
|
+
constructor(message, code, details) {
|
|
15
|
+
super(message);
|
|
16
|
+
this.name = 'ChuckyError';
|
|
17
|
+
this.code = code;
|
|
18
|
+
this.details = details;
|
|
19
|
+
// Maintains proper stack trace for where the error was thrown
|
|
20
|
+
if (Error.captureStackTrace) {
|
|
21
|
+
Error.captureStackTrace(this, ChuckyError);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Connection error
|
|
27
|
+
*/
|
|
28
|
+
export class ConnectionError extends ChuckyError {
|
|
29
|
+
constructor(message, details) {
|
|
30
|
+
super(message, 'CONNECTION_ERROR', details);
|
|
31
|
+
this.name = 'ConnectionError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Authentication error
|
|
36
|
+
*/
|
|
37
|
+
export class AuthenticationError extends ChuckyError {
|
|
38
|
+
constructor(message, details) {
|
|
39
|
+
super(message, 'AUTHENTICATION_ERROR', details);
|
|
40
|
+
this.name = 'AuthenticationError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Budget exceeded error
|
|
45
|
+
*/
|
|
46
|
+
export class BudgetExceededError extends ChuckyError {
|
|
47
|
+
constructor(message, details) {
|
|
48
|
+
super(message, 'BUDGET_EXCEEDED', details);
|
|
49
|
+
this.name = 'BudgetExceededError';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Concurrency limit error
|
|
54
|
+
*/
|
|
55
|
+
export class ConcurrencyLimitError extends ChuckyError {
|
|
56
|
+
constructor(message, details) {
|
|
57
|
+
super(message, 'CONCURRENCY_LIMIT', details);
|
|
58
|
+
this.name = 'ConcurrencyLimitError';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Rate limit error
|
|
63
|
+
*/
|
|
64
|
+
export class RateLimitError extends ChuckyError {
|
|
65
|
+
constructor(message, details) {
|
|
66
|
+
super(message, 'RATE_LIMIT', details);
|
|
67
|
+
this.name = 'RateLimitError';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Session error
|
|
72
|
+
*/
|
|
73
|
+
export class SessionError extends ChuckyError {
|
|
74
|
+
constructor(message, details) {
|
|
75
|
+
super(message, 'SESSION_ERROR', details);
|
|
76
|
+
this.name = 'SessionError';
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Tool execution error
|
|
81
|
+
*/
|
|
82
|
+
export class ToolExecutionError extends ChuckyError {
|
|
83
|
+
/** Tool name */
|
|
84
|
+
toolName;
|
|
85
|
+
constructor(message, toolName, details) {
|
|
86
|
+
super(message, 'TOOL_EXECUTION_ERROR', { ...details, toolName });
|
|
87
|
+
this.name = 'ToolExecutionError';
|
|
88
|
+
this.toolName = toolName;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Timeout error
|
|
93
|
+
*/
|
|
94
|
+
export class TimeoutError extends ChuckyError {
|
|
95
|
+
constructor(message, details) {
|
|
96
|
+
super(message, 'TIMEOUT', details);
|
|
97
|
+
this.name = 'TimeoutError';
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Validation error
|
|
102
|
+
*/
|
|
103
|
+
export class ValidationError extends ChuckyError {
|
|
104
|
+
constructor(message, details) {
|
|
105
|
+
super(message, 'VALIDATION_ERROR', details);
|
|
106
|
+
this.name = 'ValidationError';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Parse error code from error message
|
|
111
|
+
*/
|
|
112
|
+
export function parseErrorCode(message) {
|
|
113
|
+
// Common error patterns
|
|
114
|
+
const patterns = [
|
|
115
|
+
{ pattern: /budget.*exceed/i, code: 'BUDGET_EXCEEDED' },
|
|
116
|
+
{ pattern: /concurrency.*limit/i, code: 'CONCURRENCY_LIMIT' },
|
|
117
|
+
{ pattern: /rate.*limit/i, code: 'RATE_LIMIT' },
|
|
118
|
+
{ pattern: /auth|unauthorized|forbidden/i, code: 'AUTHENTICATION_ERROR' },
|
|
119
|
+
{ pattern: /timeout/i, code: 'TIMEOUT' },
|
|
120
|
+
{ pattern: /connect|disconnect|websocket/i, code: 'CONNECTION_ERROR' },
|
|
121
|
+
{ pattern: /session/i, code: 'SESSION_ERROR' },
|
|
122
|
+
{ pattern: /tool/i, code: 'TOOL_EXECUTION_ERROR' },
|
|
123
|
+
{ pattern: /invalid|validation/i, code: 'VALIDATION_ERROR' },
|
|
124
|
+
];
|
|
125
|
+
for (const { pattern, code } of patterns) {
|
|
126
|
+
if (pattern.test(message)) {
|
|
127
|
+
return code;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Create appropriate error from message and optional code
|
|
134
|
+
*/
|
|
135
|
+
export function createError(message, code) {
|
|
136
|
+
const errorCode = code || parseErrorCode(message) || 'UNKNOWN_ERROR';
|
|
137
|
+
switch (errorCode) {
|
|
138
|
+
case 'CONNECTION_ERROR':
|
|
139
|
+
return new ConnectionError(message);
|
|
140
|
+
case 'AUTHENTICATION_ERROR':
|
|
141
|
+
return new AuthenticationError(message);
|
|
142
|
+
case 'BUDGET_EXCEEDED':
|
|
143
|
+
return new BudgetExceededError(message);
|
|
144
|
+
case 'CONCURRENCY_LIMIT':
|
|
145
|
+
return new ConcurrencyLimitError(message);
|
|
146
|
+
case 'RATE_LIMIT':
|
|
147
|
+
return new RateLimitError(message);
|
|
148
|
+
case 'SESSION_ERROR':
|
|
149
|
+
return new SessionError(message);
|
|
150
|
+
case 'TIMEOUT':
|
|
151
|
+
return new TimeoutError(message);
|
|
152
|
+
case 'VALIDATION_ERROR':
|
|
153
|
+
return new ValidationError(message);
|
|
154
|
+
default:
|
|
155
|
+
return new ChuckyError(message, errorCode);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all utility functions.
|
|
5
|
+
*/
|
|
6
|
+
export { createToken, decodeToken, verifyToken, isTokenExpired, createBudget, } from './token.js';
|
|
7
|
+
export { ChuckyError, ConnectionError, AuthenticationError, BudgetExceededError, ConcurrencyLimitError, RateLimitError, SessionError, ToolExecutionError, TimeoutError, ValidationError, parseErrorCode, createError, } from './errors.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utils Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all utility functions.
|
|
5
|
+
*/
|
|
6
|
+
export { createToken, decodeToken, verifyToken, isTokenExpired, createBudget, } from './token.js';
|
|
7
|
+
export { ChuckyError, ConnectionError, AuthenticationError, BudgetExceededError, ConcurrencyLimitError, RateLimitError, SessionError, ToolExecutionError, TimeoutError, ValidationError, parseErrorCode, createError, } from './errors.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,WAAW,EACX,WAAW,EACX,cAAc,EACd,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC"}
|