@codebolt/agent 1.1.0 → 2.2.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 +157 -66
- package/dist/builderpattern/agent.d.ts +86 -0
- package/dist/builderpattern/agent.js +324 -0
- package/dist/builderpattern/followupquestionbuilder.d.ts +75 -0
- package/dist/builderpattern/followupquestionbuilder.js +197 -0
- package/dist/builderpattern/index.d.ts +14 -0
- package/dist/builderpattern/index.js +23 -0
- package/dist/builderpattern/llmoutputhandler.d.ts +102 -0
- package/dist/builderpattern/llmoutputhandler.js +452 -0
- package/dist/builderpattern/promptbuilder.d.ts +382 -0
- package/dist/builderpattern/promptbuilder.js +805 -0
- package/dist/builderpattern/systemprompt.d.ts +20 -0
- package/dist/builderpattern/systemprompt.js +48 -0
- package/dist/builderpattern/taskInstruction.d.ts +37 -0
- package/dist/builderpattern/taskInstruction.js +57 -0
- package/dist/builderpattern/usermessage.d.ts +70 -0
- package/dist/builderpattern/usermessage.js +123 -0
- package/dist/composablepattern/agent.d.ts +169 -0
- package/dist/composablepattern/agent.js +598 -0
- package/dist/composablepattern/codebolt-storage.d.ts +67 -0
- package/dist/composablepattern/codebolt-storage.js +320 -0
- package/dist/composablepattern/document.d.ts +149 -0
- package/dist/composablepattern/document.js +405 -0
- package/dist/composablepattern/examples/codebolt-integration-example.d.ts +12 -0
- package/dist/composablepattern/examples/codebolt-integration-example.js +218 -0
- package/dist/composablepattern/examples/codebolt-storage-example.d.ts +40 -0
- package/dist/composablepattern/examples/codebolt-storage-example.js +223 -0
- package/dist/composablepattern/examples/custom-steps-example.d.ts +20 -0
- package/dist/composablepattern/examples/custom-steps-example.js +455 -0
- package/dist/composablepattern/examples/document-agent.d.ts +17 -0
- package/dist/composablepattern/examples/document-agent.js +107 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.d.ts +8 -0
- package/dist/composablepattern/examples/simple-codebolt-integration.js +164 -0
- package/dist/composablepattern/examples/weather-agent.d.ts +18 -0
- package/dist/composablepattern/examples/weather-agent.js +86 -0
- package/dist/composablepattern/examples/workflow-example.d.ts +12 -0
- package/dist/composablepattern/examples/workflow-example.js +463 -0
- package/dist/composablepattern/index.d.ts +63 -0
- package/dist/composablepattern/index.js +115 -0
- package/dist/composablepattern/memory.d.ts +89 -0
- package/dist/composablepattern/memory.js +141 -0
- package/dist/composablepattern/tool.d.ts +84 -0
- package/dist/composablepattern/tool.js +260 -0
- package/dist/composablepattern/types.d.ts +194 -0
- package/dist/composablepattern/types.js +6 -0
- package/dist/composablepattern/user-context.d.ts +214 -0
- package/dist/composablepattern/user-context.js +275 -0
- package/dist/composablepattern/workflow.d.ts +388 -0
- package/dist/composablepattern/workflow.js +562 -0
- package/dist/processor/agent/agentStep.d.ts +49 -0
- package/dist/processor/agent/agentStep.js +241 -0
- package/dist/processor/agent/toolExecutor.d.ts +19 -0
- package/dist/processor/agent/toolExecutor.js +90 -0
- package/dist/processor/index.d.ts +7 -0
- package/dist/processor/index.js +36 -0
- package/dist/processor/messageModifiers/baseMessageModifier.d.ts +20 -0
- package/dist/processor/messageModifiers/baseMessageModifier.js +55 -0
- package/dist/processor/processors/baseProcessor.d.ts +14 -0
- package/dist/processor/processors/baseProcessor.js +29 -0
- package/dist/processor/tools/baseTool.d.ts +10 -0
- package/dist/processor/tools/baseTool.js +20 -0
- package/dist/processor/tools/toolList.d.ts +9 -0
- package/dist/processor/tools/toolList.js +22 -0
- package/dist/processor/types/interfaces.d.ts +94 -0
- package/dist/processor/types/interfaces.js +2 -0
- package/dist/processor-pieces/base/baseMessageModifier.d.ts +12 -0
- package/dist/processor-pieces/base/baseMessageModifier.js +15 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.d.ts +13 -0
- package/dist/processor-pieces/base/basePostInferenceProcessor.js +18 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.d.ts +15 -0
- package/dist/processor-pieces/base/basePostToolCallProcessor.js +25 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.d.ts +12 -0
- package/dist/processor-pieces/base/basePreInferenceProcessor.js +17 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.d.ts +18 -0
- package/dist/processor-pieces/base/basePreToolCallProcessor.js +66 -0
- package/dist/processor-pieces/base/index.d.ts +9 -0
- package/dist/processor-pieces/base/index.js +18 -0
- package/dist/processor-pieces/index.d.ts +1 -0
- package/dist/processor-pieces/index.js +59 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.d.ts +22 -0
- package/dist/processor-pieces/messageModifiers/addToolsListMessageModifier.js +144 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.d.ts +13 -0
- package/dist/processor-pieces/messageModifiers/argumentProcessorModifier.js +68 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/messageModifiers/atFileProcessorModifier.js +453 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.d.ts +15 -0
- package/dist/processor-pieces/messageModifiers/baseContextMessageModifier.js +75 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.d.ts +11 -0
- package/dist/processor-pieces/messageModifiers/baseSystemInstructionMessageModifier.js +46 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.d.ts +18 -0
- package/dist/processor-pieces/messageModifiers/chatHistoryMessageModifier.js +104 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.d.ts +23 -0
- package/dist/processor-pieces/messageModifiers/chatRecordingModifier.js +173 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.d.ts +14 -0
- package/dist/processor-pieces/messageModifiers/coreSystemPromptModifier.js +130 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.d.ts +36 -0
- package/dist/processor-pieces/messageModifiers/directoryContextModifier.js +418 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.d.ts +26 -0
- package/dist/processor-pieces/messageModifiers/environmentContextModifier.js +260 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.d.ts +12 -0
- package/dist/processor-pieces/messageModifiers/handleUrlMessageModifier.js +60 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.d.ts +34 -0
- package/dist/processor-pieces/messageModifiers/ideContextModifier.js +157 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.d.ts +18 -0
- package/dist/processor-pieces/messageModifiers/imageAttachmentMessageModifier.js +222 -0
- package/dist/processor-pieces/messageModifiers/index.d.ts +11 -0
- package/dist/processor-pieces/messageModifiers/index.js +26 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.d.ts +15 -0
- package/dist/processor-pieces/messageModifiers/memoryImportModifier.js +129 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.d.ts +20 -0
- package/dist/processor-pieces/messageModifiers/toolInjectionModifier.js +152 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.d.ts +22 -0
- package/dist/processor-pieces/messageModifiers/workingDirectoryMessageModifier.js +194 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.d.ts +29 -0
- package/dist/processor-pieces/postInferenceProcessors/loopDetectionModifier.js +174 -0
- package/dist/processor-pieces/postToolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/postToolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.d.ts +25 -0
- package/dist/processor-pieces/postToolCallProcessors/shellProcessorModifier.js +225 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.d.ts +35 -0
- package/dist/processor-pieces/preInferenceProcessors/chatCompressionModifier.js +255 -0
- package/dist/processor-pieces/preInferenceProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/preInferenceProcessors/index.js +2 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.d.ts +1 -0
- package/dist/processor-pieces/pretoolCallProcessors/index.js +2 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.d.ts +41 -0
- package/dist/processor-pieces/processors/advancedLoopDetectionProcessor.js +197 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.d.ts +26 -0
- package/dist/processor-pieces/processors/chatCompressionProcessor.js +90 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.d.ts +81 -0
- package/dist/processor-pieces/processors/chatRecordingProcessor.js +329 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.d.ts +40 -0
- package/dist/processor-pieces/processors/contextManagementProcessor.js +305 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/loopDetectionProcessor.js +137 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.d.ts +30 -0
- package/dist/processor-pieces/processors/responseValidationProcessor.js +228 -0
- package/dist/processor-pieces/processors/telemetryProcessor.d.ts +99 -0
- package/dist/processor-pieces/processors/telemetryProcessor.js +311 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.d.ts +37 -0
- package/dist/processor-pieces/processors/tokenManagementProcessor.js +178 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.d.ts +43 -0
- package/dist/processor-pieces/processors/toolExecutionProcessor.js +207 -0
- package/dist/processor-pieces/tools/fileTools.d.ts +26 -0
- package/dist/processor-pieces/tools/fileTools.js +162 -0
- package/dist/processor-pieces/utils/messageModifierHelper.d.ts +4 -0
- package/dist/processor-pieces/utils/messageModifierHelper.js +58 -0
- package/dist/types/commonTypes.d.ts +4 -0
- package/dist/types/processorTypes.d.ts +67 -0
- package/dist/types/processorTypes.js +58 -0
- package/dist/unified/agent/agent.d.ts +17 -0
- package/dist/unified/agent/agent.js +79 -0
- package/dist/unified/agent/team.d.ts +2 -0
- package/dist/unified/agent/team.js +6 -0
- package/dist/unified/agent/tools.d.ts +44 -0
- package/dist/unified/agent/tools.js +487 -0
- package/dist/unified/agent/workflow.d.ts +24 -0
- package/dist/unified/agent/workflow.js +275 -0
- package/dist/unified/agent/workflowControls.d.ts +11 -0
- package/dist/unified/agent/workflowControls.js +20 -0
- package/dist/unified/agent/workflowSteps.d.ts +63 -0
- package/dist/unified/agent/workflowSteps.js +284 -0
- package/dist/unified/base/agentStep.d.ts +32 -0
- package/dist/unified/base/agentStep.js +96 -0
- package/dist/unified/base/create/createInitialPromptGenerators.d.ts +5 -0
- package/dist/unified/base/create/createInitialPromptGenerators.js +17 -0
- package/dist/unified/base/index.d.ts +5 -0
- package/dist/unified/base/index.js +13 -0
- package/dist/unified/base/initialPromptGenerator.d.ts +48 -0
- package/dist/unified/base/initialPromptGenerator.js +118 -0
- package/dist/unified/base/responseExecutor.d.ts +36 -0
- package/dist/unified/base/responseExecutor.js +283 -0
- package/dist/unified/index.d.ts +18 -0
- package/dist/unified/index.js +42 -0
- package/dist/unified/team/team.d.ts +1 -0
- package/dist/unified/team/team.js +2 -0
- package/dist/unified/types/libTypes.d.ts +378 -0
- package/dist/unified/types/libTypes.js +6 -0
- package/dist/unified/types/types.d.ts +212 -0
- package/dist/unified/types/types.js +43 -0
- package/dist/unified/utils/utils.d.ts +40 -0
- package/dist/unified/utils/utils.js +219 -0
- package/package.json +29 -7
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Type definitions for the Composable Agent Pattern
|
|
3
|
+
* @description Re-exports types from @codebolt/types and adds additional types
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export interface Message {
|
|
7
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
8
|
+
content: string | MessageContent[];
|
|
9
|
+
tool_calls?: ToolCall[];
|
|
10
|
+
tool_call_id?: string;
|
|
11
|
+
timestamp?: string;
|
|
12
|
+
metadata?: Record<string, any>;
|
|
13
|
+
}
|
|
14
|
+
export interface MessageContent {
|
|
15
|
+
type: 'text' | 'image' | 'file';
|
|
16
|
+
text?: string;
|
|
17
|
+
image_url?: string;
|
|
18
|
+
file?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ToolCall {
|
|
21
|
+
id: string;
|
|
22
|
+
type: 'function';
|
|
23
|
+
function: {
|
|
24
|
+
name: string;
|
|
25
|
+
arguments: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface ToolConfig<TInput = any, TOutput = any> {
|
|
29
|
+
id: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: z.ZodType<TInput>;
|
|
32
|
+
outputSchema: z.ZodType<TOutput>;
|
|
33
|
+
execute: (params: {
|
|
34
|
+
context: TInput;
|
|
35
|
+
agent?: ComposableAgent;
|
|
36
|
+
}) => Promise<TOutput>;
|
|
37
|
+
}
|
|
38
|
+
export interface Tool<TInput = any, TOutput = any> extends ToolConfig<TInput, TOutput> {
|
|
39
|
+
validateInput: (input: unknown) => TInput;
|
|
40
|
+
validateOutput: (output: unknown) => TOutput;
|
|
41
|
+
}
|
|
42
|
+
export interface StorageProvider {
|
|
43
|
+
get(key: string): Promise<any>;
|
|
44
|
+
set(key: string, value: any): Promise<void>;
|
|
45
|
+
delete(key: string): Promise<void>;
|
|
46
|
+
keys(): Promise<string[]>;
|
|
47
|
+
clear(): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
export interface LibSQLStoreConfig {
|
|
50
|
+
url: string;
|
|
51
|
+
authToken?: string;
|
|
52
|
+
tableName?: string;
|
|
53
|
+
}
|
|
54
|
+
export interface MemoryConfig {
|
|
55
|
+
storage: StorageProvider;
|
|
56
|
+
maxMessages?: number;
|
|
57
|
+
autoSave?: boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface AgentProcessingConfig {
|
|
60
|
+
processMentionedMCPs?: boolean;
|
|
61
|
+
processRemixPrompt?: boolean;
|
|
62
|
+
processMentionedFiles?: boolean;
|
|
63
|
+
processMentionedAgents?: boolean;
|
|
64
|
+
fileContentProcessor?: (filePath: string) => Promise<string>;
|
|
65
|
+
mcpToolProcessor?: (toolbox: string, toolName: string) => Promise<Tool | null>;
|
|
66
|
+
}
|
|
67
|
+
export interface ComposableAgentConfig {
|
|
68
|
+
name: string;
|
|
69
|
+
instructions: string;
|
|
70
|
+
model: string;
|
|
71
|
+
tools?: Record<string, Tool>;
|
|
72
|
+
memory?: any;
|
|
73
|
+
maxTurns?: number;
|
|
74
|
+
processing?: AgentProcessingConfig;
|
|
75
|
+
metadata?: Record<string, any>;
|
|
76
|
+
}
|
|
77
|
+
export interface ExecutionResult {
|
|
78
|
+
success: boolean;
|
|
79
|
+
message?: string;
|
|
80
|
+
error?: string;
|
|
81
|
+
conversation: Message[];
|
|
82
|
+
metadata?: Record<string, any>;
|
|
83
|
+
}
|
|
84
|
+
export interface StreamChunk {
|
|
85
|
+
type: 'text' | 'tool_call' | 'tool_result' | 'error';
|
|
86
|
+
content: string;
|
|
87
|
+
tool_call?: ToolCall;
|
|
88
|
+
metadata?: Record<string, any>;
|
|
89
|
+
}
|
|
90
|
+
export type StreamCallback = (chunk: StreamChunk) => void | Promise<void>;
|
|
91
|
+
export interface ComposableAgent {
|
|
92
|
+
readonly config: ComposableAgentConfig;
|
|
93
|
+
execute(message: string, options?: {
|
|
94
|
+
stream?: boolean;
|
|
95
|
+
callback?: StreamCallback;
|
|
96
|
+
}): Promise<ExecutionResult>;
|
|
97
|
+
executeMessage(message: CodeBoltMessage, options?: {
|
|
98
|
+
stream?: boolean;
|
|
99
|
+
callback?: StreamCallback;
|
|
100
|
+
}): Promise<ExecutionResult>;
|
|
101
|
+
run(options?: {
|
|
102
|
+
stream?: boolean;
|
|
103
|
+
callback?: StreamCallback;
|
|
104
|
+
}): Promise<ExecutionResult>;
|
|
105
|
+
addMessage(message: Message): void;
|
|
106
|
+
getConversation(): Message[];
|
|
107
|
+
clearConversation(): void;
|
|
108
|
+
saveConversation(): Promise<void>;
|
|
109
|
+
loadConversation(): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
export interface CodeBoltMessage {
|
|
112
|
+
userMessage: string;
|
|
113
|
+
mentionedFiles?: string[];
|
|
114
|
+
mentionedMCPs: {
|
|
115
|
+
toolbox: string;
|
|
116
|
+
toolName: string;
|
|
117
|
+
}[];
|
|
118
|
+
mentionedAgents: any[];
|
|
119
|
+
remixPrompt?: string;
|
|
120
|
+
}
|
|
121
|
+
export interface DocumentConfig {
|
|
122
|
+
content: string;
|
|
123
|
+
type?: 'text' | 'markdown' | 'json' | 'xml';
|
|
124
|
+
metadata?: Record<string, any>;
|
|
125
|
+
}
|
|
126
|
+
export interface ProcessedDocument {
|
|
127
|
+
content: string;
|
|
128
|
+
chunks?: string[];
|
|
129
|
+
metadata: Record<string, any>;
|
|
130
|
+
embeddings?: number[][];
|
|
131
|
+
}
|
|
132
|
+
export interface WorkflowContext {
|
|
133
|
+
data: Record<string, any>;
|
|
134
|
+
history: WorkflowStepResult[];
|
|
135
|
+
currentStep: number;
|
|
136
|
+
metadata: Record<string, any>;
|
|
137
|
+
}
|
|
138
|
+
export interface WorkflowStepResult {
|
|
139
|
+
stepId: string;
|
|
140
|
+
success: boolean;
|
|
141
|
+
output?: any;
|
|
142
|
+
error?: string;
|
|
143
|
+
executionTime: number;
|
|
144
|
+
metadata?: Record<string, any>;
|
|
145
|
+
}
|
|
146
|
+
export interface WorkflowStep {
|
|
147
|
+
id: string;
|
|
148
|
+
name: string;
|
|
149
|
+
description?: string;
|
|
150
|
+
inputSchema?: any;
|
|
151
|
+
outputSchema?: any;
|
|
152
|
+
execute: (context: WorkflowContext) => Promise<WorkflowStepResult>;
|
|
153
|
+
condition?: (context: WorkflowContext) => boolean | Promise<boolean>;
|
|
154
|
+
dependencies?: string[];
|
|
155
|
+
parallel?: boolean;
|
|
156
|
+
retry?: {
|
|
157
|
+
maxAttempts: number;
|
|
158
|
+
delay: number;
|
|
159
|
+
backoff?: 'linear' | 'exponential';
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
export interface WorkflowConfig {
|
|
163
|
+
name: string;
|
|
164
|
+
description?: string;
|
|
165
|
+
steps: WorkflowStep[];
|
|
166
|
+
initialData?: Record<string, any>;
|
|
167
|
+
timeout?: number;
|
|
168
|
+
continueOnError?: boolean;
|
|
169
|
+
maxParallelSteps?: number;
|
|
170
|
+
}
|
|
171
|
+
export interface WorkflowResult {
|
|
172
|
+
success: boolean;
|
|
173
|
+
data: Record<string, any>;
|
|
174
|
+
stepResults: WorkflowStepResult[];
|
|
175
|
+
executionTime: number;
|
|
176
|
+
error?: string;
|
|
177
|
+
metadata: Record<string, any>;
|
|
178
|
+
}
|
|
179
|
+
export interface AgentStepConfig {
|
|
180
|
+
agent: ComposableAgent;
|
|
181
|
+
messageTemplate: string;
|
|
182
|
+
inputMapping?: Record<string, string>;
|
|
183
|
+
outputMapping?: Record<string, string>;
|
|
184
|
+
}
|
|
185
|
+
export interface ExecutionContext {
|
|
186
|
+
/** Current conversation history */
|
|
187
|
+
messages: Message[];
|
|
188
|
+
/** Available tools */
|
|
189
|
+
tools: Record<string, Tool>;
|
|
190
|
+
/** Agent configuration */
|
|
191
|
+
config: ComposableAgentConfig;
|
|
192
|
+
/** Execution metadata */
|
|
193
|
+
metadata?: Record<string, any>;
|
|
194
|
+
}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview User Context Management for CodeBolt Integration
|
|
3
|
+
* @description Manages user message state and configuration for ComposableAgent
|
|
4
|
+
*/
|
|
5
|
+
import type { CodeBoltMessage } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Global user context state
|
|
8
|
+
*/
|
|
9
|
+
interface UserContextState {
|
|
10
|
+
/** Current user message */
|
|
11
|
+
currentMessage?: CodeBoltMessage;
|
|
12
|
+
/** User configuration for processing */
|
|
13
|
+
userConfig?: {
|
|
14
|
+
processMentionedMCPs?: boolean;
|
|
15
|
+
processRemixPrompt?: boolean;
|
|
16
|
+
processMentionedFiles?: boolean;
|
|
17
|
+
processMentionedAgents?: boolean;
|
|
18
|
+
};
|
|
19
|
+
/** Session data */
|
|
20
|
+
sessionData?: Record<string, any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Global user context manager
|
|
24
|
+
*/
|
|
25
|
+
declare class UserContextManager {
|
|
26
|
+
private state;
|
|
27
|
+
/**
|
|
28
|
+
* Save user message and extract configuration
|
|
29
|
+
*
|
|
30
|
+
* @param message - CodeBolt message from onMessage
|
|
31
|
+
* @param config - Optional user configuration override
|
|
32
|
+
*/
|
|
33
|
+
saveUserMessage(message: CodeBoltMessage, config?: UserContextState['userConfig']): void;
|
|
34
|
+
/**
|
|
35
|
+
* Get current user message
|
|
36
|
+
*
|
|
37
|
+
* @returns Current CodeBolt message or undefined
|
|
38
|
+
*/
|
|
39
|
+
getUserMessage(): CodeBoltMessage | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Get user configuration
|
|
42
|
+
*
|
|
43
|
+
* @returns User processing configuration
|
|
44
|
+
*/
|
|
45
|
+
getUserConfig(): UserContextState['userConfig'];
|
|
46
|
+
/**
|
|
47
|
+
* Get mentioned MCPs from current message
|
|
48
|
+
*
|
|
49
|
+
* @returns Array of mentioned MCP tools
|
|
50
|
+
*/
|
|
51
|
+
getMentionedMCPs(): {
|
|
52
|
+
toolbox: string;
|
|
53
|
+
toolName: string;
|
|
54
|
+
}[];
|
|
55
|
+
/**
|
|
56
|
+
* Get mentioned files from current message
|
|
57
|
+
*
|
|
58
|
+
* @returns Array of mentioned file paths
|
|
59
|
+
*/
|
|
60
|
+
getMentionedFiles(): string[];
|
|
61
|
+
/**
|
|
62
|
+
* Get mentioned agents from current message
|
|
63
|
+
*
|
|
64
|
+
* @returns Array of mentioned agents
|
|
65
|
+
*/
|
|
66
|
+
getMentionedAgents(): any[];
|
|
67
|
+
/**
|
|
68
|
+
* Get remix prompt from current message
|
|
69
|
+
*
|
|
70
|
+
* @returns Remix prompt string or undefined
|
|
71
|
+
*/
|
|
72
|
+
getRemixPrompt(): string | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* Check if a specific processing type is enabled
|
|
75
|
+
*
|
|
76
|
+
* @param type - Processing type to check
|
|
77
|
+
* @returns Whether the processing type is enabled
|
|
78
|
+
*/
|
|
79
|
+
isProcessingEnabled(type: keyof NonNullable<UserContextState['userConfig']>): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Set session data
|
|
82
|
+
*
|
|
83
|
+
* @param key - Session data key
|
|
84
|
+
* @param value - Session data value
|
|
85
|
+
*/
|
|
86
|
+
setSessionData(key: string, value: any): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get session data
|
|
89
|
+
*
|
|
90
|
+
* @param key - Session data key
|
|
91
|
+
* @returns Session data value
|
|
92
|
+
*/
|
|
93
|
+
getSessionData(key: string): any;
|
|
94
|
+
/**
|
|
95
|
+
* Clear all user context (typically called at start of new message)
|
|
96
|
+
*/
|
|
97
|
+
clear(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Get current message text content
|
|
100
|
+
*
|
|
101
|
+
* @returns User message text
|
|
102
|
+
*/
|
|
103
|
+
getMessageText(): string;
|
|
104
|
+
/**
|
|
105
|
+
* Create a simplified message object for agent execution
|
|
106
|
+
*
|
|
107
|
+
* @returns Simple message object with just text content
|
|
108
|
+
*/
|
|
109
|
+
getSimpleMessage(): {
|
|
110
|
+
text: string;
|
|
111
|
+
hasContext: boolean;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
declare const userContextManager: UserContextManager;
|
|
115
|
+
/**
|
|
116
|
+
* Save user message and configuration globally
|
|
117
|
+
* This should be called in codebolt.onMessage() before creating agents
|
|
118
|
+
*
|
|
119
|
+
* @param message - CodeBolt message from onMessage
|
|
120
|
+
* @param config - Optional configuration override
|
|
121
|
+
*/
|
|
122
|
+
export declare function saveUserMessage(message: CodeBoltMessage, config?: {
|
|
123
|
+
processMentionedMCPs?: boolean;
|
|
124
|
+
processRemixPrompt?: boolean;
|
|
125
|
+
processMentionedFiles?: boolean;
|
|
126
|
+
processMentionedAgents?: boolean;
|
|
127
|
+
}): void;
|
|
128
|
+
/**
|
|
129
|
+
* Get current user message
|
|
130
|
+
* Can be called from anywhere in the agent execution
|
|
131
|
+
*
|
|
132
|
+
* @returns Current CodeBolt message or undefined
|
|
133
|
+
*/
|
|
134
|
+
export declare function getUserMessage(): CodeBoltMessage | undefined;
|
|
135
|
+
/**
|
|
136
|
+
* Get user processing configuration
|
|
137
|
+
*
|
|
138
|
+
* @returns User configuration object
|
|
139
|
+
*/
|
|
140
|
+
export declare function getUserConfig(): {
|
|
141
|
+
processMentionedMCPs?: boolean;
|
|
142
|
+
processRemixPrompt?: boolean;
|
|
143
|
+
processMentionedFiles?: boolean;
|
|
144
|
+
processMentionedAgents?: boolean;
|
|
145
|
+
} | undefined;
|
|
146
|
+
/**
|
|
147
|
+
* Get mentioned MCPs from current message
|
|
148
|
+
*
|
|
149
|
+
* @returns Array of mentioned MCP tools
|
|
150
|
+
*/
|
|
151
|
+
export declare function getMentionedMCPs(): {
|
|
152
|
+
toolbox: string;
|
|
153
|
+
toolName: string;
|
|
154
|
+
}[];
|
|
155
|
+
/**
|
|
156
|
+
* Get mentioned files from current message
|
|
157
|
+
*
|
|
158
|
+
* @returns Array of mentioned file paths
|
|
159
|
+
*/
|
|
160
|
+
export declare function getMentionedFiles(): string[];
|
|
161
|
+
/**
|
|
162
|
+
* Get mentioned agents from current message
|
|
163
|
+
*
|
|
164
|
+
* @returns Array of mentioned agents
|
|
165
|
+
*/
|
|
166
|
+
export declare function getMentionedAgents(): any[];
|
|
167
|
+
/**
|
|
168
|
+
* Get remix prompt from current message
|
|
169
|
+
*
|
|
170
|
+
* @returns Remix prompt string or undefined
|
|
171
|
+
*/
|
|
172
|
+
export declare function getRemixPrompt(): string | undefined;
|
|
173
|
+
/**
|
|
174
|
+
* Check if a specific processing type is enabled
|
|
175
|
+
*
|
|
176
|
+
* @param type - Processing type to check
|
|
177
|
+
* @returns Whether the processing type is enabled
|
|
178
|
+
*/
|
|
179
|
+
export declare function isProcessingEnabled(type: 'processMentionedMCPs' | 'processRemixPrompt' | 'processMentionedFiles' | 'processMentionedAgents'): boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Get simple message text for agent execution
|
|
182
|
+
*
|
|
183
|
+
* @returns Message text content
|
|
184
|
+
*/
|
|
185
|
+
export declare function getMessageText(): string;
|
|
186
|
+
/**
|
|
187
|
+
* Get simplified message object
|
|
188
|
+
*
|
|
189
|
+
* @returns Simple message with text and context flag
|
|
190
|
+
*/
|
|
191
|
+
export declare function getSimpleMessage(): {
|
|
192
|
+
text: string;
|
|
193
|
+
hasContext: boolean;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Set session data
|
|
197
|
+
*
|
|
198
|
+
* @param key - Session data key
|
|
199
|
+
* @param value - Session data value
|
|
200
|
+
*/
|
|
201
|
+
export declare function setSessionData(key: string, value: any): void;
|
|
202
|
+
/**
|
|
203
|
+
* Get session data
|
|
204
|
+
*
|
|
205
|
+
* @param key - Session data key
|
|
206
|
+
* @returns Session data value
|
|
207
|
+
*/
|
|
208
|
+
export declare function getSessionData(key: string): any;
|
|
209
|
+
/**
|
|
210
|
+
* Clear user context (call at start of new message)
|
|
211
|
+
*/
|
|
212
|
+
export declare function clearUserContext(): void;
|
|
213
|
+
export { userContextManager };
|
|
214
|
+
export type { UserContextState };
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview User Context Management for CodeBolt Integration
|
|
4
|
+
* @description Manages user message state and configuration for ComposableAgent
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.userContextManager = void 0;
|
|
8
|
+
exports.saveUserMessage = saveUserMessage;
|
|
9
|
+
exports.getUserMessage = getUserMessage;
|
|
10
|
+
exports.getUserConfig = getUserConfig;
|
|
11
|
+
exports.getMentionedMCPs = getMentionedMCPs;
|
|
12
|
+
exports.getMentionedFiles = getMentionedFiles;
|
|
13
|
+
exports.getMentionedAgents = getMentionedAgents;
|
|
14
|
+
exports.getRemixPrompt = getRemixPrompt;
|
|
15
|
+
exports.isProcessingEnabled = isProcessingEnabled;
|
|
16
|
+
exports.getMessageText = getMessageText;
|
|
17
|
+
exports.getSimpleMessage = getSimpleMessage;
|
|
18
|
+
exports.setSessionData = setSessionData;
|
|
19
|
+
exports.getSessionData = getSessionData;
|
|
20
|
+
exports.clearUserContext = clearUserContext;
|
|
21
|
+
/**
|
|
22
|
+
* Global user context manager
|
|
23
|
+
*/
|
|
24
|
+
class UserContextManager {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.state = {};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Save user message and extract configuration
|
|
30
|
+
*
|
|
31
|
+
* @param message - CodeBolt message from onMessage
|
|
32
|
+
* @param config - Optional user configuration override
|
|
33
|
+
*/
|
|
34
|
+
saveUserMessage(message, config) {
|
|
35
|
+
var _a, _b, _c, _d;
|
|
36
|
+
this.state.currentMessage = message;
|
|
37
|
+
// Auto-detect configuration from message if not explicitly provided
|
|
38
|
+
if (config) {
|
|
39
|
+
this.state.userConfig = { ...config };
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
this.state.userConfig = {
|
|
43
|
+
processMentionedMCPs: ((_a = message.mentionedMCPs) === null || _a === void 0 ? void 0 : _a.length) > 0,
|
|
44
|
+
processRemixPrompt: !!message.remixPrompt,
|
|
45
|
+
processMentionedFiles: ((_c = (_b = message.mentionedFiles) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0) > 0,
|
|
46
|
+
processMentionedAgents: ((_d = message.mentionedAgents) === null || _d === void 0 ? void 0 : _d.length) > 0
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Get current user message
|
|
52
|
+
*
|
|
53
|
+
* @returns Current CodeBolt message or undefined
|
|
54
|
+
*/
|
|
55
|
+
getUserMessage() {
|
|
56
|
+
return this.state.currentMessage;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get user configuration
|
|
60
|
+
*
|
|
61
|
+
* @returns User processing configuration
|
|
62
|
+
*/
|
|
63
|
+
getUserConfig() {
|
|
64
|
+
return this.state.userConfig || {};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get mentioned MCPs from current message
|
|
68
|
+
*
|
|
69
|
+
* @returns Array of mentioned MCP tools
|
|
70
|
+
*/
|
|
71
|
+
getMentionedMCPs() {
|
|
72
|
+
var _a;
|
|
73
|
+
return ((_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.mentionedMCPs) || [];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get mentioned files from current message
|
|
77
|
+
*
|
|
78
|
+
* @returns Array of mentioned file paths
|
|
79
|
+
*/
|
|
80
|
+
getMentionedFiles() {
|
|
81
|
+
var _a;
|
|
82
|
+
return ((_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.mentionedFiles) || [];
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get mentioned agents from current message
|
|
86
|
+
*
|
|
87
|
+
* @returns Array of mentioned agents
|
|
88
|
+
*/
|
|
89
|
+
getMentionedAgents() {
|
|
90
|
+
var _a;
|
|
91
|
+
return ((_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.mentionedAgents) || [];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get remix prompt from current message
|
|
95
|
+
*
|
|
96
|
+
* @returns Remix prompt string or undefined
|
|
97
|
+
*/
|
|
98
|
+
getRemixPrompt() {
|
|
99
|
+
var _a;
|
|
100
|
+
return (_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.remixPrompt;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check if a specific processing type is enabled
|
|
104
|
+
*
|
|
105
|
+
* @param type - Processing type to check
|
|
106
|
+
* @returns Whether the processing type is enabled
|
|
107
|
+
*/
|
|
108
|
+
isProcessingEnabled(type) {
|
|
109
|
+
var _a, _b;
|
|
110
|
+
return (_b = (_a = this.state.userConfig) === null || _a === void 0 ? void 0 : _a[type]) !== null && _b !== void 0 ? _b : false;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set session data
|
|
114
|
+
*
|
|
115
|
+
* @param key - Session data key
|
|
116
|
+
* @param value - Session data value
|
|
117
|
+
*/
|
|
118
|
+
setSessionData(key, value) {
|
|
119
|
+
if (!this.state.sessionData) {
|
|
120
|
+
this.state.sessionData = {};
|
|
121
|
+
}
|
|
122
|
+
this.state.sessionData[key] = value;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get session data
|
|
126
|
+
*
|
|
127
|
+
* @param key - Session data key
|
|
128
|
+
* @returns Session data value
|
|
129
|
+
*/
|
|
130
|
+
getSessionData(key) {
|
|
131
|
+
var _a;
|
|
132
|
+
return (_a = this.state.sessionData) === null || _a === void 0 ? void 0 : _a[key];
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Clear all user context (typically called at start of new message)
|
|
136
|
+
*/
|
|
137
|
+
clear() {
|
|
138
|
+
this.state = {};
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get current message text content
|
|
142
|
+
*
|
|
143
|
+
* @returns User message text
|
|
144
|
+
*/
|
|
145
|
+
getMessageText() {
|
|
146
|
+
var _a;
|
|
147
|
+
return ((_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.userMessage) || '';
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create a simplified message object for agent execution
|
|
151
|
+
*
|
|
152
|
+
* @returns Simple message object with just text content
|
|
153
|
+
*/
|
|
154
|
+
getSimpleMessage() {
|
|
155
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
156
|
+
return {
|
|
157
|
+
text: this.getMessageText(),
|
|
158
|
+
hasContext: !!(((_b = (_a = this.state.currentMessage) === null || _a === void 0 ? void 0 : _a.mentionedFiles) === null || _b === void 0 ? void 0 : _b.length) ||
|
|
159
|
+
((_d = (_c = this.state.currentMessage) === null || _c === void 0 ? void 0 : _c.mentionedMCPs) === null || _d === void 0 ? void 0 : _d.length) ||
|
|
160
|
+
((_f = (_e = this.state.currentMessage) === null || _e === void 0 ? void 0 : _e.mentionedAgents) === null || _f === void 0 ? void 0 : _f.length) ||
|
|
161
|
+
((_g = this.state.currentMessage) === null || _g === void 0 ? void 0 : _g.remixPrompt))
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// Global singleton instance
|
|
166
|
+
const userContextManager = new UserContextManager();
|
|
167
|
+
exports.userContextManager = userContextManager;
|
|
168
|
+
/**
|
|
169
|
+
* Save user message and configuration globally
|
|
170
|
+
* This should be called in codebolt.onMessage() before creating agents
|
|
171
|
+
*
|
|
172
|
+
* @param message - CodeBolt message from onMessage
|
|
173
|
+
* @param config - Optional configuration override
|
|
174
|
+
*/
|
|
175
|
+
function saveUserMessage(message, config) {
|
|
176
|
+
userContextManager.saveUserMessage(message, config);
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Get current user message
|
|
180
|
+
* Can be called from anywhere in the agent execution
|
|
181
|
+
*
|
|
182
|
+
* @returns Current CodeBolt message or undefined
|
|
183
|
+
*/
|
|
184
|
+
function getUserMessage() {
|
|
185
|
+
return userContextManager.getUserMessage();
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Get user processing configuration
|
|
189
|
+
*
|
|
190
|
+
* @returns User configuration object
|
|
191
|
+
*/
|
|
192
|
+
function getUserConfig() {
|
|
193
|
+
return userContextManager.getUserConfig();
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Get mentioned MCPs from current message
|
|
197
|
+
*
|
|
198
|
+
* @returns Array of mentioned MCP tools
|
|
199
|
+
*/
|
|
200
|
+
function getMentionedMCPs() {
|
|
201
|
+
return userContextManager.getMentionedMCPs();
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get mentioned files from current message
|
|
205
|
+
*
|
|
206
|
+
* @returns Array of mentioned file paths
|
|
207
|
+
*/
|
|
208
|
+
function getMentionedFiles() {
|
|
209
|
+
return userContextManager.getMentionedFiles();
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Get mentioned agents from current message
|
|
213
|
+
*
|
|
214
|
+
* @returns Array of mentioned agents
|
|
215
|
+
*/
|
|
216
|
+
function getMentionedAgents() {
|
|
217
|
+
return userContextManager.getMentionedAgents();
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Get remix prompt from current message
|
|
221
|
+
*
|
|
222
|
+
* @returns Remix prompt string or undefined
|
|
223
|
+
*/
|
|
224
|
+
function getRemixPrompt() {
|
|
225
|
+
return userContextManager.getRemixPrompt();
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Check if a specific processing type is enabled
|
|
229
|
+
*
|
|
230
|
+
* @param type - Processing type to check
|
|
231
|
+
* @returns Whether the processing type is enabled
|
|
232
|
+
*/
|
|
233
|
+
function isProcessingEnabled(type) {
|
|
234
|
+
return userContextManager.isProcessingEnabled(type);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get simple message text for agent execution
|
|
238
|
+
*
|
|
239
|
+
* @returns Message text content
|
|
240
|
+
*/
|
|
241
|
+
function getMessageText() {
|
|
242
|
+
return userContextManager.getMessageText();
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Get simplified message object
|
|
246
|
+
*
|
|
247
|
+
* @returns Simple message with text and context flag
|
|
248
|
+
*/
|
|
249
|
+
function getSimpleMessage() {
|
|
250
|
+
return userContextManager.getSimpleMessage();
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Set session data
|
|
254
|
+
*
|
|
255
|
+
* @param key - Session data key
|
|
256
|
+
* @param value - Session data value
|
|
257
|
+
*/
|
|
258
|
+
function setSessionData(key, value) {
|
|
259
|
+
userContextManager.setSessionData(key, value);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Get session data
|
|
263
|
+
*
|
|
264
|
+
* @param key - Session data key
|
|
265
|
+
* @returns Session data value
|
|
266
|
+
*/
|
|
267
|
+
function getSessionData(key) {
|
|
268
|
+
return userContextManager.getSessionData(key);
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Clear user context (call at start of new message)
|
|
272
|
+
*/
|
|
273
|
+
function clearUserContext() {
|
|
274
|
+
userContextManager.clear();
|
|
275
|
+
}
|