illuma-agents 1.0.10 → 1.0.11
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 +1 -1
- package/dist/cjs/agents/AgentContext.cjs +228 -27
- package/dist/cjs/agents/AgentContext.cjs.map +1 -1
- package/dist/cjs/common/enum.cjs +2 -0
- package/dist/cjs/common/enum.cjs.map +1 -1
- package/dist/cjs/events.cjs +3 -11
- package/dist/cjs/events.cjs.map +1 -1
- package/dist/cjs/graphs/Graph.cjs +27 -18
- package/dist/cjs/graphs/Graph.cjs.map +1 -1
- package/dist/cjs/instrumentation.cjs +1 -3
- package/dist/cjs/instrumentation.cjs.map +1 -1
- package/dist/cjs/llm/anthropic/index.cjs +1 -1
- package/dist/cjs/llm/anthropic/index.cjs.map +1 -1
- package/dist/cjs/llm/bedrock/index.cjs +122 -7
- package/dist/cjs/llm/bedrock/index.cjs.map +1 -1
- package/dist/cjs/llm/google/index.cjs +1 -1
- package/dist/cjs/llm/google/index.cjs.map +1 -1
- package/dist/cjs/llm/openai/index.cjs +6 -6
- package/dist/cjs/llm/openai/index.cjs.map +1 -1
- package/dist/cjs/llm/openrouter/index.cjs +1 -1
- package/dist/cjs/llm/openrouter/index.cjs.map +1 -1
- package/dist/cjs/main.cjs +18 -0
- package/dist/cjs/main.cjs.map +1 -1
- package/dist/cjs/messages/cache.cjs +149 -54
- package/dist/cjs/messages/cache.cjs.map +1 -1
- package/dist/cjs/messages/tools.cjs +85 -0
- package/dist/cjs/messages/tools.cjs.map +1 -0
- package/dist/cjs/run.cjs +0 -8
- package/dist/cjs/run.cjs.map +1 -1
- package/dist/cjs/tools/CodeExecutor.cjs +4 -0
- package/dist/cjs/tools/CodeExecutor.cjs.map +1 -1
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs +438 -0
- package/dist/cjs/tools/ProgrammaticToolCalling.cjs.map +1 -0
- package/dist/cjs/tools/ToolNode.cjs +53 -15
- package/dist/cjs/tools/ToolNode.cjs.map +1 -1
- package/dist/cjs/tools/ToolSearchRegex.cjs +455 -0
- package/dist/cjs/tools/ToolSearchRegex.cjs.map +1 -0
- package/dist/cjs/tools/search/schema.cjs +7 -9
- package/dist/cjs/tools/search/schema.cjs.map +1 -1
- package/dist/cjs/utils/run.cjs +5 -1
- package/dist/cjs/utils/run.cjs.map +1 -1
- package/dist/esm/agents/AgentContext.mjs +228 -27
- package/dist/esm/agents/AgentContext.mjs.map +1 -1
- package/dist/esm/common/enum.mjs +2 -0
- package/dist/esm/common/enum.mjs.map +1 -1
- package/dist/esm/events.mjs +4 -12
- package/dist/esm/events.mjs.map +1 -1
- package/dist/esm/graphs/Graph.mjs +27 -18
- package/dist/esm/graphs/Graph.mjs.map +1 -1
- package/dist/esm/instrumentation.mjs +1 -3
- package/dist/esm/instrumentation.mjs.map +1 -1
- package/dist/esm/llm/anthropic/index.mjs +1 -1
- package/dist/esm/llm/anthropic/index.mjs.map +1 -1
- package/dist/esm/llm/bedrock/index.mjs +122 -7
- package/dist/esm/llm/bedrock/index.mjs.map +1 -1
- package/dist/esm/llm/google/index.mjs +1 -1
- package/dist/esm/llm/google/index.mjs.map +1 -1
- package/dist/esm/llm/openai/index.mjs +6 -6
- package/dist/esm/llm/openai/index.mjs.map +1 -1
- package/dist/esm/llm/openrouter/index.mjs +1 -1
- package/dist/esm/llm/openrouter/index.mjs.map +1 -1
- package/dist/esm/main.mjs +3 -0
- package/dist/esm/main.mjs.map +1 -1
- package/dist/esm/messages/cache.mjs +149 -54
- package/dist/esm/messages/cache.mjs.map +1 -1
- package/dist/esm/messages/tools.mjs +82 -0
- package/dist/esm/messages/tools.mjs.map +1 -0
- package/dist/esm/run.mjs +0 -8
- package/dist/esm/run.mjs.map +1 -1
- package/dist/esm/tools/CodeExecutor.mjs +4 -0
- package/dist/esm/tools/CodeExecutor.mjs.map +1 -1
- package/dist/esm/tools/ProgrammaticToolCalling.mjs +430 -0
- package/dist/esm/tools/ProgrammaticToolCalling.mjs.map +1 -0
- package/dist/esm/tools/ToolNode.mjs +53 -15
- package/dist/esm/tools/ToolNode.mjs.map +1 -1
- package/dist/esm/tools/ToolSearchRegex.mjs +448 -0
- package/dist/esm/tools/ToolSearchRegex.mjs.map +1 -0
- package/dist/esm/tools/search/schema.mjs +7 -9
- package/dist/esm/tools/search/schema.mjs.map +1 -1
- package/dist/esm/utils/run.mjs +5 -1
- package/dist/esm/utils/run.mjs.map +1 -1
- package/dist/types/agents/AgentContext.d.ts +65 -5
- package/dist/types/common/enum.d.ts +2 -0
- package/dist/types/graphs/Graph.d.ts +3 -2
- package/dist/types/index.d.ts +2 -0
- package/dist/types/llm/anthropic/index.d.ts +1 -1
- package/dist/types/llm/bedrock/index.d.ts +31 -4
- package/dist/types/llm/google/index.d.ts +1 -1
- package/dist/types/llm/openai/index.d.ts +3 -3
- package/dist/types/llm/openrouter/index.d.ts +1 -1
- package/dist/types/messages/cache.d.ts +23 -8
- package/dist/types/messages/index.d.ts +1 -0
- package/dist/types/messages/tools.d.ts +17 -0
- package/dist/types/test/mockTools.d.ts +28 -0
- package/dist/types/tools/ProgrammaticToolCalling.d.ts +91 -0
- package/dist/types/tools/ToolNode.d.ts +10 -2
- package/dist/types/tools/ToolSearchRegex.d.ts +80 -0
- package/dist/types/types/graph.d.ts +7 -1
- package/dist/types/types/tools.d.ts +138 -0
- package/package.json +7 -2
- package/src/agents/AgentContext.ts +267 -27
- package/src/agents/__tests__/AgentContext.test.ts +805 -0
- package/src/common/enum.ts +2 -0
- package/src/events.ts +5 -12
- package/src/graphs/Graph.ts +33 -19
- package/src/index.ts +2 -0
- package/src/instrumentation.ts +1 -4
- package/src/llm/anthropic/index.ts +2 -2
- package/src/llm/bedrock/__tests__/bedrock-caching.test.ts +473 -0
- package/src/llm/bedrock/index.ts +150 -13
- package/src/llm/google/index.ts +2 -2
- package/src/llm/openai/index.ts +9 -9
- package/src/llm/openrouter/index.ts +2 -2
- package/src/messages/__tests__/tools.test.ts +473 -0
- package/src/messages/cache.ts +163 -61
- package/src/messages/index.ts +1 -0
- package/src/messages/tools.ts +99 -0
- package/src/run.ts +0 -9
- package/src/scripts/code_exec_ptc.ts +334 -0
- package/src/scripts/image.ts +178 -0
- package/src/scripts/programmatic_exec.ts +396 -0
- package/src/scripts/programmatic_exec_agent.ts +231 -0
- package/src/scripts/test-tools-before-handoff.ts +5 -1
- package/src/scripts/tool_search_regex.ts +162 -0
- package/src/scripts/tools.ts +4 -1
- package/src/specs/thinking-prune.test.ts +52 -118
- package/src/test/mockTools.ts +366 -0
- package/src/tools/CodeExecutor.ts +4 -0
- package/src/tools/ProgrammaticToolCalling.ts +558 -0
- package/src/tools/ToolNode.ts +59 -18
- package/src/tools/ToolSearchRegex.ts +535 -0
- package/src/tools/__tests__/ProgrammaticToolCalling.integration.test.ts +318 -0
- package/src/tools/__tests__/ProgrammaticToolCalling.test.ts +853 -0
- package/src/tools/__tests__/ToolSearchRegex.integration.test.ts +161 -0
- package/src/tools/__tests__/ToolSearchRegex.test.ts +232 -0
- package/src/tools/search/jina-reranker.test.ts +16 -16
- package/src/tools/search/schema.ts +7 -9
- package/src/types/graph.ts +7 -1
- package/src/types/tools.ts +166 -0
- package/src/utils/run.ts +5 -1
- package/src/tools/search/direct-url.test.ts +0 -530
package/src/types/tools.ts
CHANGED
|
@@ -35,6 +35,8 @@ export type ToolNodeOptions = {
|
|
|
35
35
|
data: ToolErrorData,
|
|
36
36
|
metadata?: Record<string, unknown>
|
|
37
37
|
) => Promise<void>;
|
|
38
|
+
/** Tool registry for lazy computation of programmatic tools and tool search */
|
|
39
|
+
toolRegistry?: LCToolRegistry;
|
|
38
40
|
};
|
|
39
41
|
|
|
40
42
|
export type ToolNodeConstructorParams = ToolRefs & ToolNodeOptions;
|
|
@@ -78,3 +80,167 @@ export type ExecuteResult = {
|
|
|
78
80
|
stderr: string;
|
|
79
81
|
files?: FileRefs;
|
|
80
82
|
};
|
|
83
|
+
|
|
84
|
+
/** JSON Schema type definition for tool parameters */
|
|
85
|
+
export type JsonSchemaType = {
|
|
86
|
+
type:
|
|
87
|
+
| 'string'
|
|
88
|
+
| 'number'
|
|
89
|
+
| 'integer'
|
|
90
|
+
| 'float'
|
|
91
|
+
| 'boolean'
|
|
92
|
+
| 'array'
|
|
93
|
+
| 'object';
|
|
94
|
+
enum?: string[];
|
|
95
|
+
items?: JsonSchemaType;
|
|
96
|
+
properties?: Record<string, JsonSchemaType>;
|
|
97
|
+
required?: string[];
|
|
98
|
+
description?: string;
|
|
99
|
+
additionalProperties?: boolean | JsonSchemaType;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Specifies which contexts can invoke a tool (inspired by Anthropic's allowed_callers)
|
|
104
|
+
* - 'direct': Only callable directly by the LLM (default if omitted)
|
|
105
|
+
* - 'code_execution': Only callable from within programmatic code execution
|
|
106
|
+
*/
|
|
107
|
+
export type AllowedCaller = 'direct' | 'code_execution';
|
|
108
|
+
|
|
109
|
+
/** Tool definition with optional deferred loading and caller restrictions */
|
|
110
|
+
export type LCTool = {
|
|
111
|
+
name: string;
|
|
112
|
+
description?: string;
|
|
113
|
+
parameters?: JsonSchemaType;
|
|
114
|
+
/** When true, tool is not loaded into context initially (for tool search) */
|
|
115
|
+
defer_loading?: boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Which contexts can invoke this tool.
|
|
118
|
+
* Default: ['direct'] (only callable directly by LLM)
|
|
119
|
+
* Options: 'direct', 'code_execution'
|
|
120
|
+
*/
|
|
121
|
+
allowed_callers?: AllowedCaller[];
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
/** Map of tool names to tool definitions */
|
|
125
|
+
export type LCToolRegistry = Map<string, LCTool>;
|
|
126
|
+
|
|
127
|
+
export type ProgrammaticCache = { toolMap: ToolMap; toolDefs: LCTool[] };
|
|
128
|
+
|
|
129
|
+
/** Parameters for creating a Tool Search Regex tool */
|
|
130
|
+
export type ToolSearchRegexParams = {
|
|
131
|
+
apiKey?: string;
|
|
132
|
+
toolRegistry?: LCToolRegistry;
|
|
133
|
+
onlyDeferred?: boolean;
|
|
134
|
+
baseUrl?: string;
|
|
135
|
+
[key: string]: unknown;
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/** Simplified tool metadata for search purposes */
|
|
139
|
+
export type ToolMetadata = {
|
|
140
|
+
name: string;
|
|
141
|
+
description: string;
|
|
142
|
+
parameters?: JsonSchemaType;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
/** Individual search result for a matching tool */
|
|
146
|
+
export type ToolSearchResult = {
|
|
147
|
+
tool_name: string;
|
|
148
|
+
match_score: number;
|
|
149
|
+
matched_field: string;
|
|
150
|
+
snippet: string;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/** Response from the tool search operation */
|
|
154
|
+
export type ToolSearchResponse = {
|
|
155
|
+
tool_references: ToolSearchResult[];
|
|
156
|
+
total_tools_searched: number;
|
|
157
|
+
pattern_used: string;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/** Artifact returned alongside the formatted search results */
|
|
161
|
+
export type ToolSearchArtifact = {
|
|
162
|
+
tool_references: ToolSearchResult[];
|
|
163
|
+
metadata: {
|
|
164
|
+
total_searched: number;
|
|
165
|
+
pattern: string;
|
|
166
|
+
error?: string;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// ============================================================================
|
|
171
|
+
// Programmatic Tool Calling Types
|
|
172
|
+
// ============================================================================
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Tool call requested by the Code API during programmatic execution
|
|
176
|
+
*/
|
|
177
|
+
export type PTCToolCall = {
|
|
178
|
+
/** Unique ID like "call_001" */
|
|
179
|
+
id: string;
|
|
180
|
+
/** Tool name */
|
|
181
|
+
name: string;
|
|
182
|
+
/** Input parameters */
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
184
|
+
input: Record<string, any>;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Tool result sent back to the Code API
|
|
189
|
+
*/
|
|
190
|
+
export type PTCToolResult = {
|
|
191
|
+
/** Matches PTCToolCall.id */
|
|
192
|
+
call_id: string;
|
|
193
|
+
/** Tool execution result (any JSON-serializable value) */
|
|
194
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
195
|
+
result: any;
|
|
196
|
+
/** Whether tool execution failed */
|
|
197
|
+
is_error: boolean;
|
|
198
|
+
/** Error details if is_error=true */
|
|
199
|
+
error_message?: string;
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* Response from the Code API for programmatic execution
|
|
204
|
+
*/
|
|
205
|
+
export type ProgrammaticExecutionResponse = {
|
|
206
|
+
status: 'tool_call_required' | 'completed' | 'error' | unknown;
|
|
207
|
+
session_id?: string;
|
|
208
|
+
|
|
209
|
+
/** Present when status='tool_call_required' */
|
|
210
|
+
continuation_token?: string;
|
|
211
|
+
tool_calls?: PTCToolCall[];
|
|
212
|
+
|
|
213
|
+
/** Present when status='completed' */
|
|
214
|
+
stdout?: string;
|
|
215
|
+
stderr?: string;
|
|
216
|
+
files?: FileRefs;
|
|
217
|
+
|
|
218
|
+
/** Present when status='error' */
|
|
219
|
+
error?: string;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Artifact returned by the PTC tool
|
|
224
|
+
*/
|
|
225
|
+
export type ProgrammaticExecutionArtifact = {
|
|
226
|
+
session_id?: string;
|
|
227
|
+
files?: FileRefs;
|
|
228
|
+
};
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* Initialization parameters for the PTC tool
|
|
232
|
+
*/
|
|
233
|
+
export type ProgrammaticToolCallingParams = {
|
|
234
|
+
/** Code API key (or use CODE_API_KEY env var) */
|
|
235
|
+
apiKey?: string;
|
|
236
|
+
/** Code API base URL (or use CODE_BASEURL env var) */
|
|
237
|
+
baseUrl?: string;
|
|
238
|
+
/** Safety limit for round-trips (default: 20) */
|
|
239
|
+
maxRoundTrips?: number;
|
|
240
|
+
/** HTTP proxy URL */
|
|
241
|
+
proxy?: string;
|
|
242
|
+
/** Enable debug logging (or set PTC_DEBUG=true env var) */
|
|
243
|
+
debug?: boolean;
|
|
244
|
+
/** Environment variable key for API key */
|
|
245
|
+
[key: string]: unknown;
|
|
246
|
+
};
|
package/src/utils/run.ts
CHANGED
|
@@ -56,8 +56,12 @@ export class RunnableCallable<I = unknown, O = unknown> extends Runnable<I, O> {
|
|
|
56
56
|
runManager?: CallbackManagerForChainRun
|
|
57
57
|
): Promise<O> {
|
|
58
58
|
return new Promise<O>((resolve, reject) => {
|
|
59
|
+
// Defensive check: ensure runManager has getChild method before calling
|
|
60
|
+
const childCallbacks = typeof runManager?.getChild === 'function'
|
|
61
|
+
? runManager.getChild()
|
|
62
|
+
: undefined;
|
|
59
63
|
const childConfig = patchConfig(config, {
|
|
60
|
-
callbacks:
|
|
64
|
+
callbacks: childCallbacks,
|
|
61
65
|
});
|
|
62
66
|
void AsyncLocalStorageProviderSingleton.runWithConfig(
|
|
63
67
|
childConfig,
|