@adcp/client 0.2.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/LICENSE +21 -0
- package/README.md +166 -0
- package/dist/lib/agents/index.generated.d.ts +147 -0
- package/dist/lib/agents/index.generated.d.ts.map +1 -0
- package/dist/lib/agents/index.generated.js +218 -0
- package/dist/lib/agents/index.generated.js.map +1 -0
- package/dist/lib/auth/index.d.ts +22 -0
- package/dist/lib/auth/index.d.ts.map +1 -0
- package/dist/lib/auth/index.js +73 -0
- package/dist/lib/auth/index.js.map +1 -0
- package/dist/lib/core/ADCPClient.d.ts +233 -0
- package/dist/lib/core/ADCPClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPClient.js +287 -0
- package/dist/lib/core/ADCPClient.js.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts +308 -0
- package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -0
- package/dist/lib/core/ADCPMultiAgentClient.js +468 -0
- package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -0
- package/dist/lib/core/AgentClient.d.ts +124 -0
- package/dist/lib/core/AgentClient.d.ts.map +1 -0
- package/dist/lib/core/AgentClient.js +242 -0
- package/dist/lib/core/AgentClient.js.map +1 -0
- package/dist/lib/core/ConfigurationManager.d.ts +79 -0
- package/dist/lib/core/ConfigurationManager.d.ts.map +1 -0
- package/dist/lib/core/ConfigurationManager.js +254 -0
- package/dist/lib/core/ConfigurationManager.js.map +1 -0
- package/dist/lib/core/ConversationTypes.d.ts +242 -0
- package/dist/lib/core/ConversationTypes.d.ts.map +1 -0
- package/dist/lib/core/ConversationTypes.js +5 -0
- package/dist/lib/core/ConversationTypes.js.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts +45 -0
- package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -0
- package/dist/lib/core/ProtocolResponseParser.js +82 -0
- package/dist/lib/core/ProtocolResponseParser.js.map +1 -0
- package/dist/lib/core/TaskExecutor.d.ts +108 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -0
- package/dist/lib/core/TaskExecutor.js +422 -0
- package/dist/lib/core/TaskExecutor.js.map +1 -0
- package/dist/lib/errors/index.d.ts +125 -0
- package/dist/lib/errors/index.d.ts.map +1 -0
- package/dist/lib/errors/index.js +211 -0
- package/dist/lib/errors/index.js.map +1 -0
- package/dist/lib/handlers/types.d.ts +119 -0
- package/dist/lib/handlers/types.d.ts.map +1 -0
- package/dist/lib/handlers/types.js +239 -0
- package/dist/lib/handlers/types.js.map +1 -0
- package/dist/lib/index.d.ts +51 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +122 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/protocols/a2a.d.ts +2 -0
- package/dist/lib/protocols/a2a.d.ts.map +1 -0
- package/dist/lib/protocols/a2a.js +70 -0
- package/dist/lib/protocols/a2a.js.map +1 -0
- package/dist/lib/protocols/index.d.ts +22 -0
- package/dist/lib/protocols/index.d.ts.map +1 -0
- package/dist/lib/protocols/index.js +47 -0
- package/dist/lib/protocols/index.js.map +1 -0
- package/dist/lib/protocols/mcp.d.ts +2 -0
- package/dist/lib/protocols/mcp.d.ts.map +1 -0
- package/dist/lib/protocols/mcp.js +127 -0
- package/dist/lib/protocols/mcp.js.map +1 -0
- package/dist/lib/storage/MemoryStorage.d.ts +93 -0
- package/dist/lib/storage/MemoryStorage.d.ts.map +1 -0
- package/dist/lib/storage/MemoryStorage.js +219 -0
- package/dist/lib/storage/MemoryStorage.js.map +1 -0
- package/dist/lib/storage/interfaces.d.ts +195 -0
- package/dist/lib/storage/interfaces.d.ts.map +1 -0
- package/dist/lib/storage/interfaces.js +5 -0
- package/dist/lib/storage/interfaces.js.map +1 -0
- package/dist/lib/types/adcp.d.ts +407 -0
- package/dist/lib/types/adcp.d.ts.map +1 -0
- package/dist/lib/types/adcp.js +5 -0
- package/dist/lib/types/adcp.js.map +1 -0
- package/dist/lib/types/core.generated.d.ts +469 -0
- package/dist/lib/types/core.generated.d.ts.map +1 -0
- package/dist/lib/types/core.generated.js +5 -0
- package/dist/lib/types/core.generated.js.map +1 -0
- package/dist/lib/types/index.d.ts +3 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/types/index.js +19 -0
- package/dist/lib/types/index.js.map +1 -0
- package/dist/lib/types/tools.generated.d.ts +1674 -0
- package/dist/lib/types/tools.generated.d.ts.map +1 -0
- package/dist/lib/types/tools.generated.js +8 -0
- package/dist/lib/types/tools.generated.js.map +1 -0
- package/dist/lib/utils/index.d.ts +25 -0
- package/dist/lib/utils/index.d.ts.map +1 -0
- package/dist/lib/utils/index.js +109 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/validation/index.d.ts +29 -0
- package/dist/lib/validation/index.d.ts.map +1 -0
- package/dist/lib/validation/index.js +186 -0
- package/dist/lib/validation/index.js.map +1 -0
- package/dist/lib/version.d.ts +22 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/version.js +32 -0
- package/dist/lib/version.js.map +1 -0
- package/package.json +108 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents a single message in a conversation with an agent
|
|
3
|
+
*/
|
|
4
|
+
export interface Message {
|
|
5
|
+
/** Unique identifier for this message */
|
|
6
|
+
id: string;
|
|
7
|
+
/** Role of the message sender */
|
|
8
|
+
role: 'user' | 'agent' | 'system';
|
|
9
|
+
/** Message content - can be structured or text */
|
|
10
|
+
content: any;
|
|
11
|
+
/** Timestamp when message was created */
|
|
12
|
+
timestamp: string;
|
|
13
|
+
/** Optional metadata about the message */
|
|
14
|
+
metadata?: {
|
|
15
|
+
/** Tool/task name if this message is tool-related */
|
|
16
|
+
toolName?: string;
|
|
17
|
+
/** Message type (request, response, clarification, etc.) */
|
|
18
|
+
type?: string;
|
|
19
|
+
/** Additional context data */
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Request for input from the agent - sent when clarification is needed
|
|
25
|
+
*/
|
|
26
|
+
export interface InputRequest {
|
|
27
|
+
/** Human-readable question or prompt */
|
|
28
|
+
question: string;
|
|
29
|
+
/** Specific field being requested (if applicable) */
|
|
30
|
+
field?: string;
|
|
31
|
+
/** Expected type of response */
|
|
32
|
+
expectedType?: 'string' | 'number' | 'boolean' | 'object' | 'array';
|
|
33
|
+
/** Suggested values or options */
|
|
34
|
+
suggestions?: any[];
|
|
35
|
+
/** Whether this input is required */
|
|
36
|
+
required?: boolean;
|
|
37
|
+
/** Validation rules for the input */
|
|
38
|
+
validation?: {
|
|
39
|
+
min?: number;
|
|
40
|
+
max?: number;
|
|
41
|
+
pattern?: string;
|
|
42
|
+
enum?: any[];
|
|
43
|
+
};
|
|
44
|
+
/** Additional context about why this input is needed */
|
|
45
|
+
context?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Different types of responses an input handler can provide
|
|
49
|
+
*/
|
|
50
|
+
export type InputHandlerResponse = any | Promise<any> | {
|
|
51
|
+
defer: true;
|
|
52
|
+
token: string;
|
|
53
|
+
} | {
|
|
54
|
+
abort: true;
|
|
55
|
+
reason?: string;
|
|
56
|
+
} | never;
|
|
57
|
+
/**
|
|
58
|
+
* Function signature for input handlers
|
|
59
|
+
*/
|
|
60
|
+
export type InputHandler = (context: ConversationContext) => InputHandlerResponse;
|
|
61
|
+
/**
|
|
62
|
+
* Complete conversation context provided to input handlers
|
|
63
|
+
*/
|
|
64
|
+
export interface ConversationContext {
|
|
65
|
+
/** Full conversation history for this task */
|
|
66
|
+
messages: Message[];
|
|
67
|
+
/** Current input request from the agent */
|
|
68
|
+
inputRequest: InputRequest;
|
|
69
|
+
/** Unique task identifier */
|
|
70
|
+
taskId: string;
|
|
71
|
+
/** Agent configuration */
|
|
72
|
+
agent: {
|
|
73
|
+
id: string;
|
|
74
|
+
name: string;
|
|
75
|
+
protocol: 'mcp' | 'a2a';
|
|
76
|
+
};
|
|
77
|
+
/** Current clarification attempt number (1-based) */
|
|
78
|
+
attempt: number;
|
|
79
|
+
/** Maximum allowed clarification attempts */
|
|
80
|
+
maxAttempts: number;
|
|
81
|
+
/** Helper method to defer task to human */
|
|
82
|
+
deferToHuman(): Promise<{
|
|
83
|
+
defer: true;
|
|
84
|
+
token: string;
|
|
85
|
+
}>;
|
|
86
|
+
/** Helper method to abort the task */
|
|
87
|
+
abort(reason?: string): never;
|
|
88
|
+
/** Get conversation summary for context */
|
|
89
|
+
getSummary(): string;
|
|
90
|
+
/** Check if a field was previously discussed */
|
|
91
|
+
wasFieldDiscussed(field: string): boolean;
|
|
92
|
+
/** Get previous response for a field */
|
|
93
|
+
getPreviousResponse(field: string): any;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Status of a task execution
|
|
97
|
+
*/
|
|
98
|
+
export type TaskStatus = 'pending' | 'running' | 'needs_input' | 'completed' | 'failed' | 'deferred' | 'aborted' | 'submitted';
|
|
99
|
+
/**
|
|
100
|
+
* Options for task execution
|
|
101
|
+
*/
|
|
102
|
+
export interface TaskOptions {
|
|
103
|
+
/** Timeout for entire task (ms) */
|
|
104
|
+
timeout?: number;
|
|
105
|
+
/** Maximum clarification rounds before failing */
|
|
106
|
+
maxClarifications?: number;
|
|
107
|
+
/** Context ID to continue existing conversation */
|
|
108
|
+
contextId?: string;
|
|
109
|
+
/** Enable debug logging for this task */
|
|
110
|
+
debug?: boolean;
|
|
111
|
+
/** Additional metadata to include */
|
|
112
|
+
metadata?: Record<string, any>;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Internal task state for tracking execution
|
|
116
|
+
*/
|
|
117
|
+
export interface TaskState {
|
|
118
|
+
/** Unique task identifier */
|
|
119
|
+
taskId: string;
|
|
120
|
+
/** Task name (tool name) */
|
|
121
|
+
taskName: string;
|
|
122
|
+
/** Original parameters */
|
|
123
|
+
params: any;
|
|
124
|
+
/** Current status */
|
|
125
|
+
status: TaskStatus;
|
|
126
|
+
/** Message history */
|
|
127
|
+
messages: Message[];
|
|
128
|
+
/** Current input request (if waiting for input) */
|
|
129
|
+
pendingInput?: InputRequest;
|
|
130
|
+
/** Start time */
|
|
131
|
+
startTime: number;
|
|
132
|
+
/** Current attempt number */
|
|
133
|
+
attempt: number;
|
|
134
|
+
/** Maximum attempts allowed */
|
|
135
|
+
maxAttempts: number;
|
|
136
|
+
/** Task options */
|
|
137
|
+
options: TaskOptions;
|
|
138
|
+
/** Agent configuration */
|
|
139
|
+
agent: {
|
|
140
|
+
id: string;
|
|
141
|
+
name: string;
|
|
142
|
+
protocol: 'mcp' | 'a2a';
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Task tracking information from tasks/get endpoint (PR #78)
|
|
147
|
+
*/
|
|
148
|
+
export interface TaskInfo {
|
|
149
|
+
/** Task ID */
|
|
150
|
+
taskId: string;
|
|
151
|
+
/** Current status */
|
|
152
|
+
status: string;
|
|
153
|
+
/** Task type/name */
|
|
154
|
+
taskType: string;
|
|
155
|
+
/** Creation timestamp */
|
|
156
|
+
createdAt: number;
|
|
157
|
+
/** Last update timestamp */
|
|
158
|
+
updatedAt: number;
|
|
159
|
+
/** Task result (if completed) */
|
|
160
|
+
result?: any;
|
|
161
|
+
/** Error message (if failed) */
|
|
162
|
+
error?: string;
|
|
163
|
+
/** Webhook URL (if applicable) */
|
|
164
|
+
webhookUrl?: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Continuation for deferred client tasks (client needs time)
|
|
168
|
+
*/
|
|
169
|
+
export interface DeferredContinuation<T> {
|
|
170
|
+
/** Token for resuming the task */
|
|
171
|
+
token: string;
|
|
172
|
+
/** Question that triggered the deferral */
|
|
173
|
+
question?: string;
|
|
174
|
+
/** Resume the task with user input */
|
|
175
|
+
resume: (input: any) => Promise<TaskResult<T>>;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Continuation for submitted server tasks (server needs time)
|
|
179
|
+
*/
|
|
180
|
+
export interface SubmittedContinuation<T> {
|
|
181
|
+
/** Task ID for tracking */
|
|
182
|
+
taskId: string;
|
|
183
|
+
/** Webhook URL where server will notify completion */
|
|
184
|
+
webhookUrl?: string;
|
|
185
|
+
/** Get current task status */
|
|
186
|
+
track: () => Promise<TaskInfo>;
|
|
187
|
+
/** Wait for completion with polling */
|
|
188
|
+
waitForCompletion: (pollInterval?: number) => Promise<TaskResult<T>>;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Result of a task execution
|
|
192
|
+
*/
|
|
193
|
+
export interface TaskResult<T = any> {
|
|
194
|
+
/** Whether the task completed successfully */
|
|
195
|
+
success: boolean;
|
|
196
|
+
/** Task execution status */
|
|
197
|
+
status: 'completed' | 'deferred' | 'submitted';
|
|
198
|
+
/** Task result data (if successful) */
|
|
199
|
+
data?: T;
|
|
200
|
+
/** Error message (if failed) */
|
|
201
|
+
error?: string;
|
|
202
|
+
/** Deferred continuation (client needs time for input) */
|
|
203
|
+
deferred?: DeferredContinuation<T>;
|
|
204
|
+
/** Submitted continuation (server needs time for processing) */
|
|
205
|
+
submitted?: SubmittedContinuation<T>;
|
|
206
|
+
/** Task execution metadata */
|
|
207
|
+
metadata: {
|
|
208
|
+
taskId: string;
|
|
209
|
+
taskName: string;
|
|
210
|
+
agent: {
|
|
211
|
+
id: string;
|
|
212
|
+
name: string;
|
|
213
|
+
protocol: 'mcp' | 'a2a';
|
|
214
|
+
};
|
|
215
|
+
/** Total execution time in milliseconds */
|
|
216
|
+
responseTimeMs: number;
|
|
217
|
+
/** ISO timestamp of completion */
|
|
218
|
+
timestamp: string;
|
|
219
|
+
/** Number of clarification rounds */
|
|
220
|
+
clarificationRounds: number;
|
|
221
|
+
/** Final status */
|
|
222
|
+
status: TaskStatus;
|
|
223
|
+
};
|
|
224
|
+
/** Full conversation history */
|
|
225
|
+
conversation?: Message[];
|
|
226
|
+
/** Debug logs (if debug enabled) */
|
|
227
|
+
debugLogs?: any[];
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Configuration for conversation management
|
|
231
|
+
*/
|
|
232
|
+
export interface ConversationConfig {
|
|
233
|
+
/** Maximum messages to keep in history */
|
|
234
|
+
maxHistorySize?: number;
|
|
235
|
+
/** Whether to persist conversations */
|
|
236
|
+
persistConversations?: boolean;
|
|
237
|
+
/** Timeout for 'working' status (max 120s per PR #78) */
|
|
238
|
+
workingTimeout?: number;
|
|
239
|
+
/** Default max clarifications */
|
|
240
|
+
defaultMaxClarifications?: number;
|
|
241
|
+
}
|
|
242
|
+
//# sourceMappingURL=ConversationTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConversationTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ConversationTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConversationTypes.js","sourceRoot":"","sources":["../../../src/lib/core/ConversationTypes.ts"],"names":[],"mappings":";AAAA,kDAAkD;AAClD,iEAAiE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple ADCP-compliant response parser
|
|
3
|
+
* Implements ADCP spec PR #77 for standardized status field
|
|
4
|
+
*/
|
|
5
|
+
import type { InputRequest } from './ConversationTypes';
|
|
6
|
+
/**
|
|
7
|
+
* ADCP standardized status values as per spec PR #78
|
|
8
|
+
* Clear semantics for async task management:
|
|
9
|
+
* - submitted: Long-running tasks (hours to days) - webhook required
|
|
10
|
+
* - working: Processing tasks (<120 seconds) - keep connection open
|
|
11
|
+
* - input-required: Tasks needing user interaction via handler
|
|
12
|
+
* - completed: Successful task completion
|
|
13
|
+
*/
|
|
14
|
+
export declare const ADCP_STATUS: {
|
|
15
|
+
readonly SUBMITTED: "submitted";
|
|
16
|
+
readonly WORKING: "working";
|
|
17
|
+
readonly INPUT_REQUIRED: "input-required";
|
|
18
|
+
readonly COMPLETED: "completed";
|
|
19
|
+
readonly FAILED: "failed";
|
|
20
|
+
readonly CANCELED: "canceled";
|
|
21
|
+
readonly REJECTED: "rejected";
|
|
22
|
+
readonly AUTH_REQUIRED: "auth-required";
|
|
23
|
+
readonly UNKNOWN: "unknown";
|
|
24
|
+
};
|
|
25
|
+
export type ADCPStatus = typeof ADCP_STATUS[keyof typeof ADCP_STATUS];
|
|
26
|
+
/**
|
|
27
|
+
* Simple parser that follows ADCP spec exactly
|
|
28
|
+
*/
|
|
29
|
+
export declare class ProtocolResponseParser {
|
|
30
|
+
/**
|
|
31
|
+
* Check if response indicates input is needed per ADCP spec
|
|
32
|
+
*/
|
|
33
|
+
isInputRequest(response: any): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Parse input request from response
|
|
36
|
+
*/
|
|
37
|
+
parseInputRequest(response: any): InputRequest;
|
|
38
|
+
/**
|
|
39
|
+
* Get ADCP status from response
|
|
40
|
+
*/
|
|
41
|
+
getStatus(response: any): ADCPStatus | null;
|
|
42
|
+
private parseExpectedType;
|
|
43
|
+
}
|
|
44
|
+
export declare const responseParser: ProtocolResponseParser;
|
|
45
|
+
//# sourceMappingURL=ProtocolResponseParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtocolResponseParser.d.ts","sourceRoot":"","sources":["../../../src/lib/core/ProtocolResponseParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAUd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEtE;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO;IAetC;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,YAAY;IAgB9C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,GAAG,GAAG,UAAU,GAAG,IAAI;IAO3C,OAAO,CAAC,iBAAiB;CAO1B;AAGD,eAAO,MAAM,cAAc,wBAA+B,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Simple ADCP-compliant response parser
|
|
4
|
+
* Implements ADCP spec PR #77 for standardized status field
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.responseParser = exports.ProtocolResponseParser = exports.ADCP_STATUS = void 0;
|
|
8
|
+
/**
|
|
9
|
+
* ADCP standardized status values as per spec PR #78
|
|
10
|
+
* Clear semantics for async task management:
|
|
11
|
+
* - submitted: Long-running tasks (hours to days) - webhook required
|
|
12
|
+
* - working: Processing tasks (<120 seconds) - keep connection open
|
|
13
|
+
* - input-required: Tasks needing user interaction via handler
|
|
14
|
+
* - completed: Successful task completion
|
|
15
|
+
*/
|
|
16
|
+
exports.ADCP_STATUS = {
|
|
17
|
+
SUBMITTED: 'submitted', // Long-running (hours/days) - webhook required
|
|
18
|
+
WORKING: 'working', // Processing (<120s) - keep connection open
|
|
19
|
+
INPUT_REQUIRED: 'input-required', // Needs user input via handler
|
|
20
|
+
COMPLETED: 'completed', // Task completed successfully
|
|
21
|
+
FAILED: 'failed', // Task failed
|
|
22
|
+
CANCELED: 'canceled', // Task was canceled
|
|
23
|
+
REJECTED: 'rejected', // Task was rejected
|
|
24
|
+
AUTH_REQUIRED: 'auth-required', // Authentication required
|
|
25
|
+
UNKNOWN: 'unknown' // Unknown status
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Simple parser that follows ADCP spec exactly
|
|
29
|
+
*/
|
|
30
|
+
class ProtocolResponseParser {
|
|
31
|
+
/**
|
|
32
|
+
* Check if response indicates input is needed per ADCP spec
|
|
33
|
+
*/
|
|
34
|
+
isInputRequest(response) {
|
|
35
|
+
// ADCP spec: check status field first
|
|
36
|
+
if (response?.status === exports.ADCP_STATUS.INPUT_REQUIRED) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
// Legacy fallback for backward compatibility
|
|
40
|
+
return (response?.type === 'input_request' ||
|
|
41
|
+
response?.question !== undefined ||
|
|
42
|
+
response?.input_required === true ||
|
|
43
|
+
response?.needs_clarification === true);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Parse input request from response
|
|
47
|
+
*/
|
|
48
|
+
parseInputRequest(response) {
|
|
49
|
+
const question = response.message || response.question || response.prompt || 'Please provide input';
|
|
50
|
+
const field = response.field || response.parameter;
|
|
51
|
+
const suggestions = response.options || response.choices || response.suggestions;
|
|
52
|
+
return {
|
|
53
|
+
question,
|
|
54
|
+
field,
|
|
55
|
+
expectedType: this.parseExpectedType(response.expected_type || response.type),
|
|
56
|
+
suggestions,
|
|
57
|
+
required: response.required !== false,
|
|
58
|
+
validation: response.validation,
|
|
59
|
+
context: response.context || response.description
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get ADCP status from response
|
|
64
|
+
*/
|
|
65
|
+
getStatus(response) {
|
|
66
|
+
if (response?.status && Object.values(exports.ADCP_STATUS).includes(response.status)) {
|
|
67
|
+
return response.status;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
parseExpectedType(rawType) {
|
|
72
|
+
if (typeof rawType === 'string') {
|
|
73
|
+
const allowedTypes = ["string", "number", "boolean", "object", "array"];
|
|
74
|
+
return allowedTypes.includes(rawType) ? rawType : undefined;
|
|
75
|
+
}
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.ProtocolResponseParser = ProtocolResponseParser;
|
|
80
|
+
// Export singleton instance
|
|
81
|
+
exports.responseParser = new ProtocolResponseParser();
|
|
82
|
+
//# sourceMappingURL=ProtocolResponseParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProtocolResponseParser.js","sourceRoot":"","sources":["../../../src/lib/core/ProtocolResponseParser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;;;;;;GAOG;AACU,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,WAAW,EAAO,+CAA+C;IAC5E,OAAO,EAAE,SAAS,EAAW,8CAA8C;IAC3E,cAAc,EAAE,gBAAgB,EAAG,+BAA+B;IAClE,SAAS,EAAE,WAAW,EAAO,8BAA8B;IAC3D,MAAM,EAAE,QAAQ,EAAY,cAAc;IAC1C,QAAQ,EAAE,UAAU,EAAQ,oBAAoB;IAChD,QAAQ,EAAE,UAAU,EAAQ,oBAAoB;IAChD,aAAa,EAAE,eAAe,EAAG,0BAA0B;IAC3D,OAAO,EAAE,SAAS,CAAU,iBAAiB;CACrC,CAAC;AAIX;;GAEG;AACH,MAAa,sBAAsB;IACjC;;OAEG;IACH,cAAc,CAAC,QAAa;QAC1B,sCAAsC;QACtC,IAAI,QAAQ,EAAE,MAAM,KAAK,mBAAW,CAAC,cAAc,EAAE,CAAC;YACpD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,6CAA6C;QAC7C,OAAO,CACL,QAAQ,EAAE,IAAI,KAAK,eAAe;YAClC,QAAQ,EAAE,QAAQ,KAAK,SAAS;YAChC,QAAQ,EAAE,cAAc,KAAK,IAAI;YACjC,QAAQ,EAAE,mBAAmB,KAAK,IAAI,CACvC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAa;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,sBAAsB,CAAC;QACpG,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,SAAS,CAAC;QACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW,CAAC;QAEjF,OAAO;YACL,QAAQ;YACR,KAAK;YACL,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC;YAC7E,WAAW;YACX,QAAQ,EAAE,QAAQ,CAAC,QAAQ,KAAK,KAAK;YACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,WAAW;SAClD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,QAAa;QACrB,IAAI,QAAQ,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,mBAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7E,OAAO,QAAQ,CAAC,MAAoB,CAAC;QACvC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,iBAAiB,CAAC,OAAY;QACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;YACxE,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAvDD,wDAuDC;AAED,4BAA4B;AACf,QAAA,cAAc,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { AgentConfig } from '../types';
|
|
2
|
+
import type { Storage } from '../storage/interfaces';
|
|
3
|
+
import type { Message, InputHandler, TaskOptions, TaskResult, TaskState, TaskInfo } from './ConversationTypes';
|
|
4
|
+
/**
|
|
5
|
+
* Custom errors for task execution
|
|
6
|
+
*/
|
|
7
|
+
export declare class TaskTimeoutError extends Error {
|
|
8
|
+
constructor(taskId: string, timeout: number);
|
|
9
|
+
}
|
|
10
|
+
export declare class MaxClarificationError extends Error {
|
|
11
|
+
constructor(taskId: string, maxAttempts: number);
|
|
12
|
+
}
|
|
13
|
+
export declare class DeferredTaskError extends Error {
|
|
14
|
+
token: string;
|
|
15
|
+
constructor(token: string);
|
|
16
|
+
}
|
|
17
|
+
export declare class InputRequiredError extends Error {
|
|
18
|
+
constructor(question: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Webhook manager for submitted tasks
|
|
22
|
+
*/
|
|
23
|
+
interface WebhookManager {
|
|
24
|
+
generateUrl(taskId: string): string;
|
|
25
|
+
registerWebhook(agent: AgentConfig, taskId: string, webhookUrl: string): Promise<void>;
|
|
26
|
+
processWebhook(token: string, body: any): Promise<void>;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Deferred task storage for client deferrals
|
|
30
|
+
*/
|
|
31
|
+
interface DeferredTaskState {
|
|
32
|
+
taskId: string;
|
|
33
|
+
contextId: string;
|
|
34
|
+
agent: AgentConfig;
|
|
35
|
+
taskName: string;
|
|
36
|
+
params: any;
|
|
37
|
+
messages: Message[];
|
|
38
|
+
createdAt: number;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Core task execution engine that handles the conversation loop with agents
|
|
42
|
+
*/
|
|
43
|
+
export declare class TaskExecutor {
|
|
44
|
+
private config;
|
|
45
|
+
private responseParser;
|
|
46
|
+
private activeTasks;
|
|
47
|
+
private conversationStorage?;
|
|
48
|
+
constructor(config?: {
|
|
49
|
+
/** Default timeout for 'working' status (max 120s per PR #78) */
|
|
50
|
+
workingTimeout?: number;
|
|
51
|
+
/** Default max clarification attempts */
|
|
52
|
+
defaultMaxClarifications?: number;
|
|
53
|
+
/** Enable conversation storage */
|
|
54
|
+
enableConversationStorage?: boolean;
|
|
55
|
+
/** Webhook manager for submitted tasks */
|
|
56
|
+
webhookManager?: WebhookManager;
|
|
57
|
+
/** Storage for deferred task state */
|
|
58
|
+
deferredStorage?: Storage<DeferredTaskState>;
|
|
59
|
+
});
|
|
60
|
+
/**
|
|
61
|
+
* Execute a task with an agent using PR #78 async patterns
|
|
62
|
+
* Handles: working (keep SSE open), submitted (webhook), input-required (handler), completed
|
|
63
|
+
*/
|
|
64
|
+
executeTask<T = any>(agent: AgentConfig, taskName: string, params: any, inputHandler?: InputHandler, options?: TaskOptions): Promise<TaskResult<T>>;
|
|
65
|
+
/**
|
|
66
|
+
* Handle agent response based on ADCP status (PR #78)
|
|
67
|
+
*/
|
|
68
|
+
private handleAsyncResponse;
|
|
69
|
+
/**
|
|
70
|
+
* Wait for 'working' status completion (max 120s per PR #78)
|
|
71
|
+
*/
|
|
72
|
+
private waitForWorkingCompletion;
|
|
73
|
+
/**
|
|
74
|
+
* Set up submitted task with webhook
|
|
75
|
+
*/
|
|
76
|
+
private setupSubmittedTask;
|
|
77
|
+
/**
|
|
78
|
+
* Handle input-required status (handler mandatory)
|
|
79
|
+
*/
|
|
80
|
+
private handleInputRequired;
|
|
81
|
+
/**
|
|
82
|
+
* Task tracking methods (PR #78)
|
|
83
|
+
*/
|
|
84
|
+
listTasks(agent: AgentConfig): Promise<TaskInfo[]>;
|
|
85
|
+
getTaskStatus(agent: AgentConfig, taskId: string): Promise<TaskInfo>;
|
|
86
|
+
pollTaskCompletion<T>(agent: AgentConfig, taskId: string, pollInterval?: number): Promise<TaskResult<T>>;
|
|
87
|
+
/**
|
|
88
|
+
* Resume a deferred task (client deferral)
|
|
89
|
+
*/
|
|
90
|
+
resumeDeferredTask<T>(token: string, input: any): Promise<TaskResult<T>>;
|
|
91
|
+
/**
|
|
92
|
+
* Continue a task after receiving input
|
|
93
|
+
*/
|
|
94
|
+
private continueTaskWithInput;
|
|
95
|
+
/**
|
|
96
|
+
* Utility methods
|
|
97
|
+
*/
|
|
98
|
+
private sleep;
|
|
99
|
+
private createErrorResult;
|
|
100
|
+
/**
|
|
101
|
+
* Legacy methods for backward compatibility
|
|
102
|
+
*/
|
|
103
|
+
getConversationHistory(taskId: string): Message[] | undefined;
|
|
104
|
+
clearConversationHistory(taskId: string): void;
|
|
105
|
+
getActiveTasks(): TaskState[];
|
|
106
|
+
}
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=TaskExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskExecutor.d.ts","sourceRoot":"","sources":["../../../src/lib/core/TaskExecutor.ts"],"names":[],"mappings":"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"}
|