illuma-agents 1.0.47 → 1.0.49

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.
Files changed (40) hide show
  1. package/dist/cjs/common/enum.cjs +0 -1
  2. package/dist/cjs/common/enum.cjs.map +1 -1
  3. package/dist/cjs/deepagents/DeepAgentBackend.cjs +170 -0
  4. package/dist/cjs/deepagents/DeepAgentBackend.cjs.map +1 -0
  5. package/dist/cjs/deepagents/DeepAgentRuntime.cjs +135 -0
  6. package/dist/cjs/deepagents/DeepAgentRuntime.cjs.map +1 -0
  7. package/dist/cjs/deepagents/types.cjs +29 -0
  8. package/dist/cjs/deepagents/types.cjs.map +1 -0
  9. package/dist/cjs/main.cjs +17 -3
  10. package/dist/cjs/main.cjs.map +1 -1
  11. package/dist/esm/common/enum.mjs +0 -1
  12. package/dist/esm/common/enum.mjs.map +1 -1
  13. package/dist/esm/deepagents/DeepAgentBackend.mjs +168 -0
  14. package/dist/esm/deepagents/DeepAgentBackend.mjs.map +1 -0
  15. package/dist/esm/deepagents/DeepAgentRuntime.mjs +132 -0
  16. package/dist/esm/deepagents/DeepAgentRuntime.mjs.map +1 -0
  17. package/dist/esm/deepagents/types.mjs +26 -0
  18. package/dist/esm/deepagents/types.mjs.map +1 -0
  19. package/dist/esm/main.mjs +4 -1
  20. package/dist/esm/main.mjs.map +1 -1
  21. package/dist/types/common/enum.d.ts +0 -1
  22. package/dist/types/deepagents/DeepAgentBackend.d.ts +82 -0
  23. package/dist/types/deepagents/DeepAgentRuntime.d.ts +46 -0
  24. package/dist/types/deepagents/index.d.ts +16 -0
  25. package/dist/types/deepagents/types.d.ts +105 -0
  26. package/dist/types/index.d.ts +1 -1
  27. package/package.json +2 -1
  28. package/src/common/enum.ts +0 -1
  29. package/src/deepagents/DeepAgentBackend.ts +214 -0
  30. package/src/deepagents/DeepAgentRuntime.ts +187 -0
  31. package/src/deepagents/index.ts +25 -0
  32. package/src/deepagents/types.ts +118 -0
  33. package/src/index.ts +3 -1
  34. package/src/specs/deepagents.test.ts +286 -0
  35. package/dist/cjs/tools/PresentationTool.cjs +0 -291
  36. package/dist/cjs/tools/PresentationTool.cjs.map +0 -1
  37. package/dist/esm/tools/PresentationTool.mjs +0 -288
  38. package/dist/esm/tools/PresentationTool.mjs.map +0 -1
  39. package/dist/types/tools/PresentationTool.d.ts +0 -2358
  40. package/src/tools/PresentationTool.ts +0 -356
@@ -149,7 +149,6 @@ exports.Constants = void 0;
149
149
  (function (Constants) {
150
150
  Constants["OFFICIAL_CODE_BASEURL"] = "https://api.illuma.ai/v1";
151
151
  Constants["EXECUTE_CODE"] = "execute_code";
152
- Constants["CREATE_PRESENTATION"] = "create_presentation";
153
152
  Constants["TOOL_SEARCH"] = "tool_search";
154
153
  Constants["PROGRAMMATIC_TOOL_CALLING"] = "run_tools_with_code";
155
154
  Constants["WEB_SEARCH"] = "web_search";
@@ -1 +1 @@
1
- {"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Context analytics event for traces */\n ON_CONTEXT_ANALYTICS = 'on_context_analytics',\n /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n CREATE_PRESENTATION = 'create_presentation',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n\n/**\n * Message type identifiers used by LangChain's BaseMessage.getType().\n * Use these constants instead of instanceof checks to avoid module mismatch issues\n * when different copies of @langchain/core/messages are loaded.\n */\nexport enum MessageTypes {\n HUMAN = 'human',\n AI = 'ai',\n SYSTEM = 'system',\n TOOL = 'tool',\n FUNCTION = 'function',\n GENERIC = 'generic',\n DEVELOPER = 'developer',\n REMOVE = 'remove',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar","MessageTypes"],"mappings":"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"}
1
+ {"version":3,"file":"enum.cjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Context analytics event for traces */\n ON_CONTEXT_ANALYTICS = 'on_context_analytics',\n /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n\n/**\n * Message type identifiers used by LangChain's BaseMessage.getType().\n * Use these constants instead of instanceof checks to avoid module mismatch issues\n * when different copies of @langchain/core/messages are loaded.\n */\nexport enum MessageTypes {\n HUMAN = 'human',\n AI = 'ai',\n SYSTEM = 'system',\n TOOL = 'tool',\n FUNCTION = 'function',\n GENERIC = 'generic',\n DEVELOPER = 'developer',\n REMOVE = 'remove',\n}\n"],"names":["GraphEvents","Providers","GraphNodeKeys","GraphNodeActions","CommonEvents","StepTypes","ContentTypes","ToolCallTypes","Callback","Constants","TitleMethod","EnvVar","MessageTypes"],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ 'use strict';
2
+
3
+ var deepagents = require('deepagents');
4
+
5
+ /**
6
+ * Deep Agent Backend
7
+ *
8
+ * A backend implementation that extends deepagents' FilesystemBackend
9
+ * with SSE streaming for real-time updates and integration with
10
+ * external code execution services.
11
+ */
12
+ /**
13
+ * Deep Agent Backend
14
+ *
15
+ * Extends FilesystemBackend with:
16
+ * - SSE streaming for real-time updates
17
+ * - Integration with external code executor services
18
+ * - Event emission for todos and subagents
19
+ */
20
+ class DeepAgentBackend extends deepagents.FilesystemBackend {
21
+ id;
22
+ timeout;
23
+ maxOutputBytes;
24
+ conversationId;
25
+ sseResponse;
26
+ codeExecutorUrl;
27
+ onTodoUpdate;
28
+ onSubagentUpdate;
29
+ constructor(options = {}) {
30
+ super({
31
+ rootDir: options.rootDir ?? process.cwd(),
32
+ virtualMode: options.virtualMode ?? true,
33
+ maxFileSizeMb: 10,
34
+ });
35
+ this.id = `deep-agent-backend-${Date.now().toString(36)}`;
36
+ this.timeout = options.timeout ?? 120_000;
37
+ this.maxOutputBytes = options.maxOutputBytes ?? 100_000;
38
+ this.conversationId = options.conversationId;
39
+ this.sseResponse = options.sseResponse;
40
+ this.codeExecutorUrl = options.codeExecutorUrl;
41
+ this.onTodoUpdate = options.onTodoUpdate;
42
+ this.onSubagentUpdate = options.onSubagentUpdate;
43
+ }
44
+ /**
45
+ * Execute a command
46
+ *
47
+ * If codeExecutorUrl is configured, uses the external sandboxed executor.
48
+ * Otherwise, logs a warning (shell execution may not be available).
49
+ */
50
+ async execute(command) {
51
+ if (!command || typeof command !== 'string') {
52
+ return {
53
+ output: 'Error: Command must be a non-empty string.',
54
+ exitCode: 1,
55
+ truncated: false,
56
+ };
57
+ }
58
+ // If we have a code executor URL, use that for sandboxed execution
59
+ if (this.codeExecutorUrl) {
60
+ return this.executeViaCodeExecutor(command);
61
+ }
62
+ // Log warning - direct shell execution may not be available
63
+ console.warn('[DeepAgentBackend] Shell execution requested but no code executor configured');
64
+ return {
65
+ output: 'Shell execution is not available in this environment. Consider using the code executor tool instead.',
66
+ exitCode: 1,
67
+ truncated: false,
68
+ };
69
+ }
70
+ /**
71
+ * Execute command via external code executor service
72
+ */
73
+ async executeViaCodeExecutor(command) {
74
+ try {
75
+ const response = await fetch(`${this.codeExecutorUrl}/execute`, {
76
+ method: 'POST',
77
+ headers: { 'Content-Type': 'application/json' },
78
+ body: JSON.stringify({
79
+ code: command,
80
+ language: 'shell',
81
+ timeout: this.timeout,
82
+ }),
83
+ signal: AbortSignal.timeout(this.timeout + 5000),
84
+ });
85
+ if (!response.ok) {
86
+ return {
87
+ output: `Execution error: ${response.statusText}`,
88
+ exitCode: 1,
89
+ truncated: false,
90
+ };
91
+ }
92
+ const result = await response.json();
93
+ let output = result.output ?? result.error ?? '';
94
+ let truncated = false;
95
+ if (output.length > this.maxOutputBytes) {
96
+ output = output.slice(0, this.maxOutputBytes) + '\n... (output truncated)';
97
+ truncated = true;
98
+ }
99
+ return {
100
+ output,
101
+ exitCode: result.exitCode ?? (result.error ? 1 : 0),
102
+ truncated,
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ output: `Execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
108
+ exitCode: 1,
109
+ truncated: false,
110
+ };
111
+ }
112
+ }
113
+ /**
114
+ * Send an SSE event to the client
115
+ */
116
+ sendEvent(event, data) {
117
+ if (this.sseResponse && !this.sseResponse.headersSent) {
118
+ try {
119
+ this.sseResponse.write(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`);
120
+ }
121
+ catch (e) {
122
+ console.warn('[DeepAgentBackend] Failed to send SSE event:', e);
123
+ }
124
+ }
125
+ }
126
+ /**
127
+ * Emit todo update event
128
+ */
129
+ emitTodoUpdate(todos) {
130
+ // Call callback if provided
131
+ if (this.onTodoUpdate) {
132
+ this.onTodoUpdate(todos);
133
+ }
134
+ // Send SSE event
135
+ this.sendEvent('deep_research', {
136
+ type: 'todo_update',
137
+ conversationId: this.conversationId,
138
+ todos,
139
+ progress: this.calculateProgress(todos),
140
+ isRunning: todos.some(t => t.status === 'in_progress'),
141
+ });
142
+ }
143
+ /**
144
+ * Emit subagent update event
145
+ */
146
+ emitSubagentUpdate(subagents) {
147
+ // Call callback if provided
148
+ if (this.onSubagentUpdate) {
149
+ this.onSubagentUpdate(subagents);
150
+ }
151
+ // Send SSE event
152
+ this.sendEvent('deep_research', {
153
+ type: 'subagent_update',
154
+ conversationId: this.conversationId,
155
+ subagents,
156
+ });
157
+ }
158
+ /**
159
+ * Calculate progress from todos
160
+ */
161
+ calculateProgress(todos) {
162
+ if (todos.length === 0)
163
+ return 0;
164
+ const completed = todos.filter(t => t.status === 'completed').length;
165
+ return Math.round((completed / todos.length) * 100);
166
+ }
167
+ }
168
+
169
+ exports.DeepAgentBackend = DeepAgentBackend;
170
+ //# sourceMappingURL=DeepAgentBackend.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepAgentBackend.cjs","sources":["../../../src/deepagents/DeepAgentBackend.ts"],"sourcesContent":["/**\r\n * Deep Agent Backend\r\n * \r\n * A backend implementation that extends deepagents' FilesystemBackend\r\n * with SSE streaming for real-time updates and integration with\r\n * external code execution services.\r\n */\r\n\r\nimport { FilesystemBackend } from 'deepagents';\r\nimport type { ExecuteResponse, SandboxBackendProtocol } from 'deepagents';\r\nimport type { DeepAgentTodo, DeepAgentSubagent } from './types';\r\n\r\n/** SSE Response interface for streaming */\r\nexport interface SSEResponse {\r\n write: (data: string) => void;\r\n headersSent?: boolean;\r\n}\r\n\r\n/** Options for Deep Agent Backend */\r\nexport interface DeepAgentBackendOptions {\r\n /** Root directory for file operations (default: process.cwd()) */\r\n rootDir?: string;\r\n /** Whether to use virtual paths (default: true) */\r\n virtualMode?: boolean;\r\n /** Timeout for command execution in ms (default: 120000) */\r\n timeout?: number;\r\n /** Max output size in bytes (default: 100000) */\r\n maxOutputBytes?: number;\r\n /** SSE response for streaming updates */\r\n sseResponse?: SSEResponse;\r\n /** Conversation ID for event tracking */\r\n conversationId?: string;\r\n /** Code executor API URL (optional - for sandboxed execution) */\r\n codeExecutorUrl?: string;\r\n /** Callback for todo changes */\r\n onTodoUpdate?: (todos: DeepAgentTodo[]) => void;\r\n /** Callback for subagent changes */\r\n onSubagentUpdate?: (subagents: DeepAgentSubagent[]) => void;\r\n}\r\n\r\n/**\r\n * Deep Agent Backend\r\n * \r\n * Extends FilesystemBackend with:\r\n * - SSE streaming for real-time updates\r\n * - Integration with external code executor services\r\n * - Event emission for todos and subagents\r\n */\r\nexport class DeepAgentBackend extends FilesystemBackend implements SandboxBackendProtocol {\r\n readonly id: string;\r\n private readonly timeout: number;\r\n private readonly maxOutputBytes: number;\r\n private readonly conversationId?: string;\r\n private readonly sseResponse?: SSEResponse;\r\n private readonly codeExecutorUrl?: string;\r\n private readonly onTodoUpdate?: (todos: DeepAgentTodo[]) => void;\r\n private readonly onSubagentUpdate?: (subagents: DeepAgentSubagent[]) => void;\r\n\r\n constructor(options: DeepAgentBackendOptions = {}) {\r\n super({\r\n rootDir: options.rootDir ?? process.cwd(),\r\n virtualMode: options.virtualMode ?? true,\r\n maxFileSizeMb: 10,\r\n });\r\n\r\n this.id = `deep-agent-backend-${Date.now().toString(36)}`;\r\n this.timeout = options.timeout ?? 120_000;\r\n this.maxOutputBytes = options.maxOutputBytes ?? 100_000;\r\n this.conversationId = options.conversationId;\r\n this.sseResponse = options.sseResponse;\r\n this.codeExecutorUrl = options.codeExecutorUrl;\r\n this.onTodoUpdate = options.onTodoUpdate;\r\n this.onSubagentUpdate = options.onSubagentUpdate;\r\n }\r\n\r\n /**\r\n * Execute a command\r\n * \r\n * If codeExecutorUrl is configured, uses the external sandboxed executor.\r\n * Otherwise, logs a warning (shell execution may not be available).\r\n */\r\n async execute(command: string): Promise<ExecuteResponse> {\r\n if (!command || typeof command !== 'string') {\r\n return {\r\n output: 'Error: Command must be a non-empty string.',\r\n exitCode: 1,\r\n truncated: false,\r\n };\r\n }\r\n\r\n // If we have a code executor URL, use that for sandboxed execution\r\n if (this.codeExecutorUrl) {\r\n return this.executeViaCodeExecutor(command);\r\n }\r\n\r\n // Log warning - direct shell execution may not be available\r\n console.warn('[DeepAgentBackend] Shell execution requested but no code executor configured');\r\n return {\r\n output: 'Shell execution is not available in this environment. Consider using the code executor tool instead.',\r\n exitCode: 1,\r\n truncated: false,\r\n };\r\n }\r\n\r\n /**\r\n * Execute command via external code executor service\r\n */\r\n private async executeViaCodeExecutor(command: string): Promise<ExecuteResponse> {\r\n try {\r\n const response = await fetch(`${this.codeExecutorUrl}/execute`, {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify({\r\n code: command,\r\n language: 'shell',\r\n timeout: this.timeout,\r\n }),\r\n signal: AbortSignal.timeout(this.timeout + 5000),\r\n });\r\n\r\n if (!response.ok) {\r\n return {\r\n output: `Execution error: ${response.statusText}`,\r\n exitCode: 1,\r\n truncated: false,\r\n };\r\n }\r\n\r\n const result = await response.json() as {\r\n output?: string;\r\n exitCode?: number;\r\n error?: string;\r\n };\r\n\r\n let output = result.output ?? result.error ?? '';\r\n let truncated = false;\r\n\r\n if (output.length > this.maxOutputBytes) {\r\n output = output.slice(0, this.maxOutputBytes) + '\\n... (output truncated)';\r\n truncated = true;\r\n }\r\n\r\n return {\r\n output,\r\n exitCode: result.exitCode ?? (result.error ? 1 : 0),\r\n truncated,\r\n };\r\n } catch (error) {\r\n return {\r\n output: `Execution failed: ${error instanceof Error ? error.message : 'Unknown error'}`,\r\n exitCode: 1,\r\n truncated: false,\r\n };\r\n }\r\n }\r\n\r\n /**\r\n * Send an SSE event to the client\r\n */\r\n sendEvent(event: string, data: unknown): void {\r\n if (this.sseResponse && !this.sseResponse.headersSent) {\r\n try {\r\n this.sseResponse.write(`event: ${event}\\ndata: ${JSON.stringify(data)}\\n\\n`);\r\n } catch (e) {\r\n console.warn('[DeepAgentBackend] Failed to send SSE event:', e);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Emit todo update event\r\n */\r\n emitTodoUpdate(todos: DeepAgentTodo[]): void {\r\n // Call callback if provided\r\n if (this.onTodoUpdate) {\r\n this.onTodoUpdate(todos);\r\n }\r\n\r\n // Send SSE event\r\n this.sendEvent('deep_research', {\r\n type: 'todo_update',\r\n conversationId: this.conversationId,\r\n todos,\r\n progress: this.calculateProgress(todos),\r\n isRunning: todos.some(t => t.status === 'in_progress'),\r\n });\r\n }\r\n\r\n /**\r\n * Emit subagent update event\r\n */\r\n emitSubagentUpdate(subagents: DeepAgentSubagent[]): void {\r\n // Call callback if provided\r\n if (this.onSubagentUpdate) {\r\n this.onSubagentUpdate(subagents);\r\n }\r\n\r\n // Send SSE event\r\n this.sendEvent('deep_research', {\r\n type: 'subagent_update',\r\n conversationId: this.conversationId,\r\n subagents,\r\n });\r\n }\r\n\r\n /**\r\n * Calculate progress from todos\r\n */\r\n private calculateProgress(todos: DeepAgentTodo[]): number {\r\n if (todos.length === 0) return 0;\r\n const completed = todos.filter(t => t.status === 'completed').length;\r\n return Math.round((completed / todos.length) * 100);\r\n }\r\n}\r\n"],"names":["FilesystemBackend"],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ var deepagents = require('deepagents');
4
+ var DeepAgentBackend = require('./DeepAgentBackend.cjs');
5
+
6
+ /**
7
+ * Deep Agent Runtime
8
+ *
9
+ * Factory for creating and managing deep agent instances with
10
+ * illuma-agents integration.
11
+ *
12
+ * Uses explicit any types to avoid version conflicts between
13
+ * langchain dependencies in deepagents vs illuma-agents.
14
+ */
15
+ /** Default system prompt for deep research mode */
16
+ const DEFAULT_DEEP_RESEARCH_PROMPT = `You are a deep research agent capable of breaking down complex tasks into manageable steps.
17
+
18
+ ## Todo Management
19
+
20
+ You have a todo tool to track your progress. Use it to:
21
+ 1. Create a plan at the START with all tasks as "pending"
22
+ 2. Mark ONE task as "in_progress" before working on it
23
+ 3. Mark it "completed" IMMEDIATELY after finishing
24
+ 4. Update the FULL list each time (include all todos)
25
+
26
+ ## Best Practices
27
+
28
+ - Break complex tasks into 3-7 discrete steps
29
+ - Work through tasks sequentially
30
+ - Keep the user informed of progress
31
+ - If a task is blocked, mark it and move to the next
32
+ - Summarize findings after completing all tasks
33
+ `;
34
+ /**
35
+ * Create a deep agent runtime with the provided options
36
+ *
37
+ * @param options - Configuration for the deep agent
38
+ * @returns The configured deep agent instance
39
+ */
40
+ async function createDeepAgentRuntime(options) {
41
+ const { model, threadId, conversationId, workspacePath, systemPrompt, checkpointer, sseResponse, onTodoUpdate, onSubagentUpdate, requireApproval = false, codeExecutorUrl, } = options;
42
+ if (!threadId) {
43
+ throw new Error('Thread ID is required for deep agent checkpointing');
44
+ }
45
+ // Create the backend with SSE streaming
46
+ const backend = new DeepAgentBackend.DeepAgentBackend({
47
+ rootDir: workspacePath,
48
+ virtualMode: !workspacePath, // Use virtual mode if no workspace path
49
+ conversationId,
50
+ sseResponse,
51
+ codeExecutorUrl,
52
+ onTodoUpdate,
53
+ onSubagentUpdate,
54
+ });
55
+ // Build the full system prompt
56
+ const fullSystemPrompt = systemPrompt
57
+ ? `${systemPrompt}\n\n${DEFAULT_DEEP_RESEARCH_PROMPT}`
58
+ : DEFAULT_DEEP_RESEARCH_PROMPT;
59
+ // Create the deep agent with explicit any casts to avoid version conflicts
60
+ // between langchain types in deepagents vs illuma-agents
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ const agent = deepagents.createDeepAgent({
63
+ model: model,
64
+ checkpointer: checkpointer,
65
+ backend,
66
+ systemPrompt: fullSystemPrompt,
67
+ // Require approval for shell commands if configured
68
+ interruptOn: requireApproval ? { execute: true } : undefined,
69
+ });
70
+ return {
71
+ agent,
72
+ backend,
73
+ threadId,
74
+ conversationId,
75
+ };
76
+ }
77
+ /**
78
+ * Run a deep agent with the given input
79
+ *
80
+ * @param runtime - The deep agent runtime
81
+ * @param input - User input message
82
+ * @param config - Optional run configuration
83
+ */
84
+ async function runDeepAgent(runtime, input, config) {
85
+ const { agent, threadId, backend } = runtime;
86
+ // Stream the agent response
87
+ const stream = await agent.stream({ messages: [{ role: 'human', content: input }] }, {
88
+ configurable: { thread_id: threadId },
89
+ signal: config?.signal,
90
+ });
91
+ let fullResponse = '';
92
+ const todos = [];
93
+ const subagents = [];
94
+ for await (const event of stream) {
95
+ // Handle different event types
96
+ if ('messages' in event && Array.isArray(event.messages)) {
97
+ // Extract the latest AI message content
98
+ const lastMessage = event.messages[event.messages.length - 1];
99
+ if (lastMessage?.role === 'ai' && typeof lastMessage.content === 'string') {
100
+ const newContent = lastMessage.content.slice(fullResponse.length);
101
+ if (newContent && config?.onToken) {
102
+ config.onToken(newContent);
103
+ }
104
+ fullResponse = lastMessage.content;
105
+ }
106
+ }
107
+ // Handle todo updates
108
+ if ('todos' in event && Array.isArray(event.todos)) {
109
+ todos.length = 0;
110
+ todos.push(...event.todos);
111
+ if (config?.onTodoUpdate) {
112
+ config.onTodoUpdate(todos);
113
+ }
114
+ backend.emitTodoUpdate(todos);
115
+ }
116
+ // Handle subagent updates
117
+ if ('subagents' in event && Array.isArray(event.subagents)) {
118
+ subagents.length = 0;
119
+ subagents.push(...event.subagents);
120
+ if (config?.onSubagentUpdate) {
121
+ config.onSubagentUpdate(subagents);
122
+ }
123
+ backend.emitSubagentUpdate(subagents);
124
+ }
125
+ }
126
+ return {
127
+ response: fullResponse,
128
+ todos,
129
+ subagents,
130
+ };
131
+ }
132
+
133
+ exports.createDeepAgentRuntime = createDeepAgentRuntime;
134
+ exports.runDeepAgent = runDeepAgent;
135
+ //# sourceMappingURL=DeepAgentRuntime.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepAgentRuntime.cjs","sources":["../../../src/deepagents/DeepAgentRuntime.ts"],"sourcesContent":["/**\r\n * Deep Agent Runtime\r\n * \r\n * Factory for creating and managing deep agent instances with\r\n * illuma-agents integration.\r\n * \r\n * Uses explicit any types to avoid version conflicts between\r\n * langchain dependencies in deepagents vs illuma-agents.\r\n */\r\n\r\nimport { createDeepAgent } from 'deepagents';\r\nimport { DeepAgentBackend } from './DeepAgentBackend';\r\nimport type { DeepAgentRuntimeOptions, DeepAgentTodo, DeepAgentSubagent } from './types';\r\n\r\n/** Default system prompt for deep research mode */\r\nconst DEFAULT_DEEP_RESEARCH_PROMPT = `You are a deep research agent capable of breaking down complex tasks into manageable steps.\r\n\r\n## Todo Management\r\n\r\nYou have a todo tool to track your progress. Use it to:\r\n1. Create a plan at the START with all tasks as \"pending\"\r\n2. Mark ONE task as \"in_progress\" before working on it\r\n3. Mark it \"completed\" IMMEDIATELY after finishing\r\n4. Update the FULL list each time (include all todos)\r\n\r\n## Best Practices\r\n\r\n- Break complex tasks into 3-7 discrete steps\r\n- Work through tasks sequentially\r\n- Keep the user informed of progress\r\n- If a task is blocked, mark it and move to the next\r\n- Summarize findings after completing all tasks\r\n`;\r\n\r\n/** Return type for createDeepAgentRuntime */\r\nexport interface DeepAgentRuntimeResult {\r\n /** The deep agent instance */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n agent: any;\r\n /** The backend for execution */\r\n backend: DeepAgentBackend;\r\n /** Thread ID for checkpointing */\r\n threadId: string;\r\n /** Conversation ID for tracking */\r\n conversationId: string;\r\n}\r\n\r\n/**\r\n * Create a deep agent runtime with the provided options\r\n * \r\n * @param options - Configuration for the deep agent\r\n * @returns The configured deep agent instance\r\n */\r\nexport async function createDeepAgentRuntime(\r\n options: DeepAgentRuntimeOptions\r\n): Promise<DeepAgentRuntimeResult> {\r\n const {\r\n model,\r\n threadId,\r\n conversationId,\r\n workspacePath,\r\n systemPrompt,\r\n checkpointer,\r\n sseResponse,\r\n onTodoUpdate,\r\n onSubagentUpdate,\r\n requireApproval = false,\r\n codeExecutorUrl,\r\n } = options;\r\n\r\n if (!threadId) {\r\n throw new Error('Thread ID is required for deep agent checkpointing');\r\n }\r\n\r\n // Create the backend with SSE streaming\r\n const backend = new DeepAgentBackend({\r\n rootDir: workspacePath,\r\n virtualMode: !workspacePath, // Use virtual mode if no workspace path\r\n conversationId,\r\n sseResponse,\r\n codeExecutorUrl,\r\n onTodoUpdate,\r\n onSubagentUpdate,\r\n });\r\n\r\n // Build the full system prompt\r\n const fullSystemPrompt = systemPrompt \r\n ? `${systemPrompt}\\n\\n${DEFAULT_DEEP_RESEARCH_PROMPT}`\r\n : DEFAULT_DEEP_RESEARCH_PROMPT;\r\n\r\n // Create the deep agent with explicit any casts to avoid version conflicts\r\n // between langchain types in deepagents vs illuma-agents\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const agent = createDeepAgent({\r\n model: model as any,\r\n checkpointer: checkpointer as any,\r\n backend,\r\n systemPrompt: fullSystemPrompt,\r\n // Require approval for shell commands if configured\r\n interruptOn: requireApproval ? { execute: true } : undefined,\r\n } as any);\r\n\r\n return {\r\n agent,\r\n backend,\r\n threadId,\r\n conversationId,\r\n };\r\n}\r\n\r\n/**\r\n * Run a deep agent with the given input\r\n * \r\n * @param runtime - The deep agent runtime\r\n * @param input - User input message\r\n * @param config - Optional run configuration\r\n */\r\nexport async function runDeepAgent(\r\n runtime: DeepAgentRuntimeResult,\r\n input: string,\r\n config?: {\r\n signal?: AbortSignal;\r\n onToken?: (token: string) => void;\r\n onTodoUpdate?: (todos: DeepAgentTodo[]) => void;\r\n onSubagentUpdate?: (subagents: DeepAgentSubagent[]) => void;\r\n }\r\n): Promise<{\r\n response: string;\r\n todos: DeepAgentTodo[];\r\n subagents: DeepAgentSubagent[];\r\n}> {\r\n const { agent, threadId, backend } = runtime;\r\n\r\n // Stream the agent response\r\n const stream = await agent.stream(\r\n { messages: [{ role: 'human', content: input }] },\r\n { \r\n configurable: { thread_id: threadId },\r\n signal: config?.signal,\r\n }\r\n );\r\n\r\n let fullResponse = '';\r\n const todos: DeepAgentTodo[] = [];\r\n const subagents: DeepAgentSubagent[] = [];\r\n\r\n for await (const event of stream) {\r\n // Handle different event types\r\n if ('messages' in event && Array.isArray(event.messages)) {\r\n // Extract the latest AI message content\r\n const lastMessage = event.messages[event.messages.length - 1];\r\n if (lastMessage?.role === 'ai' && typeof lastMessage.content === 'string') {\r\n const newContent = lastMessage.content.slice(fullResponse.length);\r\n if (newContent && config?.onToken) {\r\n config.onToken(newContent);\r\n }\r\n fullResponse = lastMessage.content;\r\n }\r\n }\r\n\r\n // Handle todo updates\r\n if ('todos' in event && Array.isArray(event.todos)) {\r\n todos.length = 0;\r\n todos.push(...(event.todos as DeepAgentTodo[]));\r\n if (config?.onTodoUpdate) {\r\n config.onTodoUpdate(todos);\r\n }\r\n backend.emitTodoUpdate(todos);\r\n }\r\n\r\n // Handle subagent updates\r\n if ('subagents' in event && Array.isArray(event.subagents)) {\r\n subagents.length = 0;\r\n subagents.push(...(event.subagents as DeepAgentSubagent[]));\r\n if (config?.onSubagentUpdate) {\r\n config.onSubagentUpdate(subagents);\r\n }\r\n backend.emitSubagentUpdate(subagents);\r\n }\r\n }\r\n\r\n return {\r\n response: fullResponse,\r\n todos,\r\n subagents,\r\n };\r\n}"],"names":["DeepAgentBackend","createDeepAgent"],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * Deep Agents Types
5
+ *
6
+ * Type definitions for deep agent integration
7
+ *
8
+ * Uses generic/unknown types to avoid version conflicts between
9
+ * langchain dependencies in deepagents vs illuma-agents.
10
+ */
11
+ /** Calculate progress from todos */
12
+ function calculateTodoProgress(todos) {
13
+ if (todos.length === 0)
14
+ return 0;
15
+ const completed = todos.filter(t => t.status === 'completed').length;
16
+ return Math.round((completed / todos.length) * 100);
17
+ }
18
+ /** Default state for deep agent */
19
+ const defaultDeepAgentState = {
20
+ enabled: false,
21
+ todos: [],
22
+ subagents: [],
23
+ progress: 0,
24
+ isRunning: false,
25
+ };
26
+
27
+ exports.calculateTodoProgress = calculateTodoProgress;
28
+ exports.defaultDeepAgentState = defaultDeepAgentState;
29
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":["../../../src/deepagents/types.ts"],"sourcesContent":["/**\r\n * Deep Agents Types\r\n * \r\n * Type definitions for deep agent integration\r\n * \r\n * Uses generic/unknown types to avoid version conflicts between\r\n * langchain dependencies in deepagents vs illuma-agents.\r\n */\r\n\r\n/** Status of a todo item */\r\nexport type TodoStatus = 'pending' | 'in_progress' | 'completed' | 'cancelled';\r\n\r\n/** A todo item tracked by the deep agent */\r\nexport interface DeepAgentTodo {\r\n /** Unique identifier */\r\n id: string;\r\n /** Task description */\r\n content: string;\r\n /** Current status */\r\n status: TodoStatus;\r\n /** Order index */\r\n order?: number;\r\n /** When created */\r\n createdAt?: string;\r\n /** When last updated */\r\n updatedAt?: string;\r\n}\r\n\r\n/** A subagent spawned by the deep agent */\r\nexport interface DeepAgentSubagent {\r\n /** Unique identifier */\r\n id: string;\r\n /** Subagent name/purpose */\r\n name: string;\r\n /** Description of what it's doing */\r\n description?: string;\r\n /** Current status */\r\n status: 'pending' | 'running' | 'completed' | 'failed';\r\n /** When started */\r\n startedAt?: string;\r\n /** When completed */\r\n completedAt?: string;\r\n}\r\n\r\n/** State of a deep agent session */\r\nexport interface DeepAgentState {\r\n /** Whether deep research mode is active */\r\n enabled: boolean;\r\n /** Current todos */\r\n todos: DeepAgentTodo[];\r\n /** Active subagents */\r\n subagents: DeepAgentSubagent[];\r\n /** Overall progress (0-100) */\r\n progress: number;\r\n /** Whether currently executing */\r\n isRunning: boolean;\r\n /** Workspace path for file operations */\r\n workspacePath?: string;\r\n}\r\n\r\n/** Options for creating a deep agent runtime */\r\nexport interface DeepAgentRuntimeOptions {\r\n /** The LLM model to use (BaseChatModel or model name string) */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n model: any;\r\n /** Thread ID for checkpointing */\r\n threadId: string;\r\n /** Conversation ID for event tracking */\r\n conversationId: string;\r\n /** Workspace path for file operations (optional) */\r\n workspacePath?: string;\r\n /** Custom system prompt to prepend */\r\n systemPrompt?: string;\r\n /** Checkpointer for state persistence (BaseCheckpointSaver) */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n checkpointer?: any;\r\n /** SSE response object for streaming updates */\r\n sseResponse?: {\r\n write: (data: string) => void;\r\n headersSent?: boolean;\r\n };\r\n /** Callback for todo updates */\r\n onTodoUpdate?: (todos: DeepAgentTodo[]) => void;\r\n /** Callback for subagent updates */\r\n onSubagentUpdate?: (subagents: DeepAgentSubagent[]) => void;\r\n /** Whether to require human approval for shell commands */\r\n requireApproval?: boolean;\r\n /** Code executor URL for sandboxed execution */\r\n codeExecutorUrl?: string;\r\n}\r\n\r\n/** Events emitted by the deep agent */\r\nexport interface DeepAgentEvent {\r\n type: 'todo_update' | 'subagent_update' | 'file_change' | 'execution';\r\n conversationId: string;\r\n data: {\r\n todos?: DeepAgentTodo[];\r\n subagents?: DeepAgentSubagent[];\r\n files?: Array<{ path: string; action: 'read' | 'write' | 'delete' }>;\r\n execution?: { command: string; output: string; exitCode: number | null };\r\n };\r\n}\r\n\r\n/** Calculate progress from todos */\r\nexport function calculateTodoProgress(todos: DeepAgentTodo[]): number {\r\n if (todos.length === 0) return 0;\r\n const completed = todos.filter(t => t.status === 'completed').length;\r\n return Math.round((completed / todos.length) * 100);\r\n}\r\n\r\n/** Default state for deep agent */\r\nexport const defaultDeepAgentState: DeepAgentState = {\r\n enabled: false,\r\n todos: [],\r\n subagents: [],\r\n progress: 0,\r\n isRunning: false,\r\n};\r\n"],"names":[],"mappings":";;AAAA;;;;;;;AAOG;AAgGH;AACM,SAAU,qBAAqB,CAAC,KAAsB,EAAA;AAC1D,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,OAAO,CAAC;AAChC,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,MAAM;AACpE,IAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC;AACrD;AAEA;AACa,MAAA,qBAAqB,GAAmB;AACnD,IAAA,OAAO,EAAE,KAAK;AACd,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,SAAS,EAAE,EAAE;AACb,IAAA,QAAQ,EAAE,CAAC;AACX,IAAA,SAAS,EAAE,KAAK;;;;;;"}
package/dist/cjs/main.cjs CHANGED
@@ -13,9 +13,12 @@ var content = require('./messages/content.cjs');
13
13
  var tools = require('./messages/tools.cjs');
14
14
  var Graph = require('./graphs/Graph.cjs');
15
15
  var MultiAgentGraph = require('./graphs/MultiAgentGraph.cjs');
16
+ var deepagents = require('deepagents');
17
+ var types = require('./deepagents/types.cjs');
18
+ var DeepAgentRuntime = require('./deepagents/DeepAgentRuntime.cjs');
19
+ var DeepAgentBackend = require('./deepagents/DeepAgentBackend.cjs');
16
20
  var Calculator = require('./tools/Calculator.cjs');
17
21
  var CodeExecutor = require('./tools/CodeExecutor.cjs');
18
- var PresentationTool = require('./tools/PresentationTool.cjs');
19
22
  var BrowserTools = require('./tools/BrowserTools.cjs');
20
23
  var ProgrammaticToolCalling = require('./tools/ProgrammaticToolCalling.cjs');
21
24
  var ToolSearch = require('./tools/ToolSearch.cjs');
@@ -79,12 +82,23 @@ exports.hasToolSearchInCurrentTurn = tools.hasToolSearchInCurrentTurn;
79
82
  exports.Graph = Graph.Graph;
80
83
  exports.StandardGraph = Graph.StandardGraph;
81
84
  exports.MultiAgentGraph = MultiAgentGraph.MultiAgentGraph;
85
+ Object.defineProperty(exports, "FilesystemBackend", {
86
+ enumerable: true,
87
+ get: function () { return deepagents.FilesystemBackend; }
88
+ });
89
+ Object.defineProperty(exports, "createDeepAgent", {
90
+ enumerable: true,
91
+ get: function () { return deepagents.createDeepAgent; }
92
+ });
93
+ exports.calculateTodoProgress = types.calculateTodoProgress;
94
+ exports.defaultDeepAgentState = types.defaultDeepAgentState;
95
+ exports.createDeepAgentRuntime = DeepAgentRuntime.createDeepAgentRuntime;
96
+ exports.runDeepAgent = DeepAgentRuntime.runDeepAgent;
97
+ exports.DeepAgentBackend = DeepAgentBackend.DeepAgentBackend;
82
98
  exports.Calculator = Calculator.Calculator;
83
99
  exports.createCodeExecutionTool = CodeExecutor.createCodeExecutionTool;
84
100
  exports.getCodeBaseURL = CodeExecutor.getCodeBaseURL;
85
101
  exports.imageExtRegex = CodeExecutor.imageExtRegex;
86
- exports.CreatePresentationToolSchema = PresentationTool.CreatePresentationToolSchema;
87
- exports.createPresentationTool = PresentationTool.createPresentationTool;
88
102
  exports.EBrowserTools = BrowserTools.EBrowserTools;
89
103
  exports.createBrowserTools = BrowserTools.createBrowserTools;
90
104
  exports.hasBrowserCapability = BrowserTools.hasBrowserCapability;
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"main.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -147,7 +147,6 @@ var Constants;
147
147
  (function (Constants) {
148
148
  Constants["OFFICIAL_CODE_BASEURL"] = "https://api.illuma.ai/v1";
149
149
  Constants["EXECUTE_CODE"] = "execute_code";
150
- Constants["CREATE_PRESENTATION"] = "create_presentation";
151
150
  Constants["TOOL_SEARCH"] = "tool_search";
152
151
  Constants["PROGRAMMATIC_TOOL_CALLING"] = "run_tools_with_code";
153
152
  Constants["WEB_SEARCH"] = "web_search";
@@ -1 +1 @@
1
- {"version":3,"file":"enum.mjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Context analytics event for traces */\n ON_CONTEXT_ANALYTICS = 'on_context_analytics',\n /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n CREATE_PRESENTATION = 'create_presentation',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n\n/**\n * Message type identifiers used by LangChain's BaseMessage.getType().\n * Use these constants instead of instanceof checks to avoid module mismatch issues\n * when different copies of @langchain/core/messages are loaded.\n */\nexport enum MessageTypes {\n HUMAN = 'human',\n AI = 'ai',\n SYSTEM = 'system',\n TOOL = 'tool',\n FUNCTION = 'function',\n GENERIC = 'generic',\n DEVELOPER = 'developer',\n REMOVE = 'remove',\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enum.mjs","sources":["../../../src/common/enum.ts"],"sourcesContent":["/**\n * Enum representing the various event types emitted during the execution of runnables.\n * These events provide real-time information about the progress and state of different components.\n *\n * @enum {string}\n */\nexport enum GraphEvents {\n /* Custom Events */\n\n /** [Custom] Agent update event in multi-agent graph/workflow */\n ON_AGENT_UPDATE = 'on_agent_update',\n /** [Custom] Delta event for run steps (message creation and tool calls) */\n ON_RUN_STEP = 'on_run_step',\n /** [Custom] Delta event for run steps (tool calls) */\n ON_RUN_STEP_DELTA = 'on_run_step_delta',\n /** [Custom] Completed event for run steps (tool calls) */\n ON_RUN_STEP_COMPLETED = 'on_run_step_completed',\n /** [Custom] Delta events for messages */\n ON_MESSAGE_DELTA = 'on_message_delta',\n /** [Custom] Reasoning Delta events for messages */\n ON_REASONING_DELTA = 'on_reasoning_delta',\n /** [Custom] Context analytics event for traces */\n ON_CONTEXT_ANALYTICS = 'on_context_analytics',\n /** [Custom] Structured output event - emitted when agent returns structured JSON */\n ON_STRUCTURED_OUTPUT = 'on_structured_output',\n\n /* Official Events */\n\n /** Custom event, emitted by system */\n ON_CUSTOM_EVENT = 'on_custom_event',\n /** Emitted when a chat model starts processing. */\n CHAT_MODEL_START = 'on_chat_model_start',\n\n /** Emitted when a chat model streams a chunk of its response. */\n CHAT_MODEL_STREAM = 'on_chat_model_stream',\n\n /** Emitted when a chat model completes its processing. */\n CHAT_MODEL_END = 'on_chat_model_end',\n\n /** Emitted when a language model starts processing. */\n LLM_START = 'on_llm_start',\n\n /** Emitted when a language model streams a chunk of its response. */\n LLM_STREAM = 'on_llm_stream',\n\n /** Emitted when a language model completes its processing. */\n LLM_END = 'on_llm_end',\n\n /** Emitted when a chain starts processing. */\n CHAIN_START = 'on_chain_start',\n\n /** Emitted when a chain streams a chunk of its output. */\n CHAIN_STREAM = 'on_chain_stream',\n\n /** Emitted when a chain completes its processing. */\n CHAIN_END = 'on_chain_end',\n\n /** Emitted when a tool starts its operation. */\n TOOL_START = 'on_tool_start',\n\n /** Emitted when a tool completes its operation. */\n TOOL_END = 'on_tool_end',\n\n /** Emitted when a retriever starts its operation. */\n RETRIEVER_START = 'on_retriever_start',\n\n /** Emitted when a retriever completes its operation. */\n RETRIEVER_END = 'on_retriever_end',\n\n /** Emitted when a prompt starts processing. */\n PROMPT_START = 'on_prompt_start',\n\n /** Emitted when a prompt completes its processing. */\n PROMPT_END = 'on_prompt_end',\n}\n\nexport enum Providers {\n OPENAI = 'openAI',\n VERTEXAI = 'vertexai',\n BEDROCK = 'bedrock',\n ANTHROPIC = 'anthropic',\n MISTRALAI = 'mistralai',\n MISTRAL = 'mistral',\n GOOGLE = 'google',\n AZURE = 'azureOpenAI',\n DEEPSEEK = 'deepseek',\n OPENROUTER = 'openrouter',\n XAI = 'xai',\n}\n\nexport enum GraphNodeKeys {\n TOOLS = 'tools=',\n AGENT = 'agent=',\n ROUTER = 'router',\n PRE_TOOLS = 'pre_tools',\n POST_TOOLS = 'post_tools',\n}\n\nexport enum GraphNodeActions {\n TOOL_NODE = 'tool_node',\n CALL_MODEL = 'call_model',\n ROUTE_MESSAGE = 'route_message',\n}\n\nexport enum CommonEvents {\n LANGGRAPH = 'LangGraph',\n}\n\nexport enum StepTypes {\n TOOL_CALLS = 'tool_calls',\n MESSAGE_CREATION = 'message_creation',\n}\n\nexport enum ContentTypes {\n TEXT = 'text',\n ERROR = 'error',\n THINK = 'think',\n TOOL_CALL = 'tool_call',\n IMAGE_URL = 'image_url',\n IMAGE_FILE = 'image_file',\n /** Anthropic */\n THINKING = 'thinking',\n /** Vertex AI / Google Common */\n REASONING = 'reasoning',\n /** Multi-Agent Switch */\n AGENT_UPDATE = 'agent_update',\n /** Bedrock */\n REASONING_CONTENT = 'reasoning_content',\n}\n\nexport enum ToolCallTypes {\n FUNCTION = 'function',\n RETRIEVAL = 'retrieval',\n FILE_SEARCH = 'file_search',\n CODE_INTERPRETER = 'code_interpreter',\n /* Agents Tool Call */\n TOOL_CALL = 'tool_call',\n}\n\nexport enum Callback {\n TOOL_ERROR = 'handleToolError',\n TOOL_START = 'handleToolStart',\n TOOL_END = 'handleToolEnd',\n CUSTOM_EVENT = 'handleCustomEvent',\n /*\n LLM_START = 'handleLLMStart',\n LLM_NEW_TOKEN = 'handleLLMNewToken',\n LLM_ERROR = 'handleLLMError',\n LLM_END = 'handleLLMEnd',\n CHAT_MODEL_START = 'handleChatModelStart',\n CHAIN_START = 'handleChainStart',\n CHAIN_ERROR = 'handleChainError',\n CHAIN_END = 'handleChainEnd',\n TEXT = 'handleText',\n AGENT_ACTION = 'handleAgentAction',\n AGENT_END = 'handleAgentEnd',\n RETRIEVER_START = 'handleRetrieverStart',\n RETRIEVER_END = 'handleRetrieverEnd',\n RETRIEVER_ERROR = 'handleRetrieverError',\n */\n}\n\nexport enum Constants {\n OFFICIAL_CODE_BASEURL = 'https://api.illuma.ai/v1',\n EXECUTE_CODE = 'execute_code',\n TOOL_SEARCH = 'tool_search',\n PROGRAMMATIC_TOOL_CALLING = 'run_tools_with_code',\n WEB_SEARCH = 'web_search',\n CONTENT_AND_ARTIFACT = 'content_and_artifact',\n LC_TRANSFER_TO_ = 'lc_transfer_to_',\n /** Delimiter for MCP tools: toolName_mcp_serverName */\n MCP_DELIMITER = '_mcp_',\n}\n\nexport enum TitleMethod {\n STRUCTURED = 'structured',\n FUNCTIONS = 'functions',\n COMPLETION = 'completion',\n}\n\nexport enum EnvVar {\n CODE_API_KEY = 'CODE_EXECUTOR_API_KEY',\n CODE_BASEURL = 'CODE_EXECUTOR_BASEURL',\n}\n\n/**\n * Message type identifiers used by LangChain's BaseMessage.getType().\n * Use these constants instead of instanceof checks to avoid module mismatch issues\n * when different copies of @langchain/core/messages are loaded.\n */\nexport enum MessageTypes {\n HUMAN = 'human',\n AI = 'ai',\n SYSTEM = 'system',\n TOOL = 'tool',\n FUNCTION = 'function',\n GENERIC = 'generic',\n DEVELOPER = 'developer',\n REMOVE = 'remove',\n}\n"],"names":[],"mappings":"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"}