rossum-agent 1.0.0rc0__py3-none-any.whl → 1.0.0rc1__py3-none-any.whl
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.
- rossum_agent/__init__.py +1 -1
- rossum_agent/agent/core.py +3 -1
- rossum_agent/api/services/agent_service.py +1 -1
- rossum_agent/streamlit_app/app.py +1 -1
- rossum_agent/tools/__init__.py +6 -2
- rossum_agent/tools/core.py +17 -1
- rossum_agent/tools/dynamic_tools.py +26 -51
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/METADATA +6 -5
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/RECORD +13 -13
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/WHEEL +0 -0
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/entry_points.txt +0 -0
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/licenses/LICENSE +0 -0
- {rossum_agent-1.0.0rc0.dist-info → rossum_agent-1.0.0rc1.dist-info}/top_level.txt +0 -0
rossum_agent/__init__.py
CHANGED
rossum_agent/agent/core.py
CHANGED
|
@@ -91,6 +91,7 @@ from rossum_agent.tools import (
|
|
|
91
91
|
get_dynamic_tools,
|
|
92
92
|
get_internal_tool_names,
|
|
93
93
|
get_internal_tools,
|
|
94
|
+
get_mcp_mode,
|
|
94
95
|
preload_categories_for_request,
|
|
95
96
|
reset_dynamic_tools,
|
|
96
97
|
set_mcp_connection,
|
|
@@ -824,7 +825,8 @@ class RossumAgent:
|
|
|
824
825
|
return
|
|
825
826
|
|
|
826
827
|
loop = asyncio.get_event_loop()
|
|
827
|
-
|
|
828
|
+
mcp_mode = get_mcp_mode()
|
|
829
|
+
set_mcp_connection(self.mcp_connection, loop, mcp_mode)
|
|
828
830
|
|
|
829
831
|
# Pre-load tool categories based on keywords in the user's request
|
|
830
832
|
# Run in thread pool to avoid blocking the event loop (preload uses sync MCP calls)
|
|
@@ -225,7 +225,7 @@ class AgentService:
|
|
|
225
225
|
mcp_connection=mcp_connection, system_prompt=system_prompt, config=AgentConfig()
|
|
226
226
|
)
|
|
227
227
|
|
|
228
|
-
set_mcp_connection(mcp_connection, asyncio.get_event_loop())
|
|
228
|
+
set_mcp_connection(mcp_connection, asyncio.get_event_loop(), mcp_mode)
|
|
229
229
|
|
|
230
230
|
self._restore_conversation_history(agent, conversation_history)
|
|
231
231
|
|
|
@@ -100,7 +100,7 @@ async def run_agent_turn(
|
|
|
100
100
|
async with connect_mcp_server(
|
|
101
101
|
rossum_api_token=rossum_api_token, rossum_api_base_url=rossum_api_base_url, mcp_mode=mcp_mode
|
|
102
102
|
) as mcp_connection:
|
|
103
|
-
set_mcp_connection(mcp_connection, asyncio.get_event_loop())
|
|
103
|
+
set_mcp_connection(mcp_connection, asyncio.get_event_loop(), mcp_mode)
|
|
104
104
|
|
|
105
105
|
agent = await create_agent(mcp_connection=mcp_connection, system_prompt=system_prompt, config=AgentConfig())
|
|
106
106
|
|
rossum_agent/tools/__init__.py
CHANGED
|
@@ -16,8 +16,10 @@ from rossum_agent.tools.core import (
|
|
|
16
16
|
SubAgentTokenUsage,
|
|
17
17
|
get_mcp_connection,
|
|
18
18
|
get_mcp_event_loop,
|
|
19
|
+
get_mcp_mode,
|
|
19
20
|
get_output_dir,
|
|
20
21
|
get_rossum_credentials,
|
|
22
|
+
is_read_only_mode,
|
|
21
23
|
report_progress,
|
|
22
24
|
report_text,
|
|
23
25
|
report_token_usage,
|
|
@@ -46,11 +48,11 @@ from rossum_agent.tools.dynamic_tools import (
|
|
|
46
48
|
DISCOVERY_TOOL_NAME,
|
|
47
49
|
CatalogData,
|
|
48
50
|
DynamicToolsState,
|
|
49
|
-
get_destructive_tools,
|
|
50
51
|
get_dynamic_tools,
|
|
51
52
|
get_load_tool_category_definition,
|
|
52
53
|
get_load_tool_definition,
|
|
53
54
|
get_loaded_categories,
|
|
55
|
+
get_write_tools,
|
|
54
56
|
load_tool,
|
|
55
57
|
load_tool_category,
|
|
56
58
|
preload_categories_for_request,
|
|
@@ -179,7 +181,6 @@ __all__ = [
|
|
|
179
181
|
"execute_tool",
|
|
180
182
|
"get_deploy_tool_names",
|
|
181
183
|
"get_deploy_tools",
|
|
182
|
-
"get_destructive_tools",
|
|
183
184
|
"get_dynamic_tools",
|
|
184
185
|
"get_internal_tool_names",
|
|
185
186
|
"get_internal_tools",
|
|
@@ -188,8 +189,11 @@ __all__ = [
|
|
|
188
189
|
"get_loaded_categories",
|
|
189
190
|
"get_mcp_connection",
|
|
190
191
|
"get_mcp_event_loop",
|
|
192
|
+
"get_mcp_mode",
|
|
191
193
|
"get_output_dir",
|
|
192
194
|
"get_rossum_credentials",
|
|
195
|
+
"get_write_tools",
|
|
196
|
+
"is_read_only_mode",
|
|
193
197
|
"load_skill",
|
|
194
198
|
"load_tool",
|
|
195
199
|
"load_tool_category",
|
rossum_agent/tools/core.py
CHANGED
|
@@ -60,6 +60,7 @@ _text_callback: ContextVar[SubAgentTextCallback | None] = ContextVar("text_callb
|
|
|
60
60
|
_token_callback: ContextVar[SubAgentTokenCallback | None] = ContextVar("token_callback", default=None)
|
|
61
61
|
_mcp_connection: ContextVar[MCPConnection | None] = ContextVar("mcp_connection", default=None)
|
|
62
62
|
_mcp_event_loop: ContextVar[asyncio.AbstractEventLoop | None] = ContextVar("mcp_event_loop", default=None)
|
|
63
|
+
_mcp_mode: ContextVar[str] = ContextVar("mcp_mode", default="read-only")
|
|
63
64
|
_output_dir: ContextVar[Path | None] = ContextVar("output_dir", default=None)
|
|
64
65
|
_rossum_credentials: ContextVar[tuple[str, str] | None] = ContextVar("rossum_credentials", default=None)
|
|
65
66
|
|
|
@@ -111,10 +112,15 @@ def get_output_dir() -> Path:
|
|
|
111
112
|
return fallback
|
|
112
113
|
|
|
113
114
|
|
|
114
|
-
def set_mcp_connection(
|
|
115
|
+
def set_mcp_connection(
|
|
116
|
+
connection: MCPConnection | None,
|
|
117
|
+
loop: asyncio.AbstractEventLoop | None,
|
|
118
|
+
mcp_mode: str = "read-only",
|
|
119
|
+
) -> None:
|
|
115
120
|
"""Set the MCP connection for use by internal tools (pass None to clear)."""
|
|
116
121
|
_mcp_connection.set(connection)
|
|
117
122
|
_mcp_event_loop.set(loop)
|
|
123
|
+
_mcp_mode.set(mcp_mode)
|
|
118
124
|
|
|
119
125
|
|
|
120
126
|
def get_mcp_connection() -> MCPConnection | None:
|
|
@@ -127,6 +133,16 @@ def get_mcp_event_loop() -> asyncio.AbstractEventLoop | None:
|
|
|
127
133
|
return _mcp_event_loop.get()
|
|
128
134
|
|
|
129
135
|
|
|
136
|
+
def get_mcp_mode() -> str:
|
|
137
|
+
"""Get the current MCP mode ('read-only' or 'read-write')."""
|
|
138
|
+
return _mcp_mode.get()
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def is_read_only_mode() -> bool:
|
|
142
|
+
"""Check if MCP is in read-only mode."""
|
|
143
|
+
return _mcp_mode.get() != "read-write"
|
|
144
|
+
|
|
145
|
+
|
|
130
146
|
def set_rossum_credentials(api_base_url: str | None, token: str | None) -> None:
|
|
131
147
|
"""Set Rossum API credentials for internal tools.
|
|
132
148
|
|
|
@@ -14,7 +14,7 @@ from dataclasses import dataclass, field
|
|
|
14
14
|
from typing import TYPE_CHECKING
|
|
15
15
|
|
|
16
16
|
from rossum_agent.rossum_mcp_integration import mcp_tools_to_anthropic_format
|
|
17
|
-
from rossum_agent.tools.core import get_mcp_connection, get_mcp_event_loop
|
|
17
|
+
from rossum_agent.tools.core import get_mcp_connection, get_mcp_event_loop, is_read_only_mode
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
20
|
from anthropic.types import ToolParam
|
|
@@ -29,7 +29,7 @@ class CatalogData:
|
|
|
29
29
|
|
|
30
30
|
catalog: dict[str, set[str]] = field(default_factory=dict)
|
|
31
31
|
keywords: dict[str, list[str]] = field(default_factory=dict)
|
|
32
|
-
|
|
32
|
+
write_tools: set[str] = field(default_factory=set)
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
# Cached catalog from MCP (fetched once per process)
|
|
@@ -119,17 +119,17 @@ def _fetch_catalog_from_mcp() -> CatalogData:
|
|
|
119
119
|
|
|
120
120
|
catalog: dict[str, set[str]] = {}
|
|
121
121
|
keywords: dict[str, list[str]] = {}
|
|
122
|
-
|
|
122
|
+
write_tools: set[str] = set()
|
|
123
123
|
|
|
124
124
|
for category in result:
|
|
125
125
|
name = category["name"]
|
|
126
126
|
catalog[name] = {tool["name"] for tool in category["tools"]}
|
|
127
127
|
keywords[name] = category.get("keywords", [])
|
|
128
128
|
for tool in category["tools"]:
|
|
129
|
-
if tool.get("
|
|
130
|
-
|
|
129
|
+
if not tool.get("read_only", True):
|
|
130
|
+
write_tools.add(tool["name"])
|
|
131
131
|
|
|
132
|
-
_catalog_cache = CatalogData(catalog=catalog, keywords=keywords,
|
|
132
|
+
_catalog_cache = CatalogData(catalog=catalog, keywords=keywords, write_tools=write_tools)
|
|
133
133
|
logger.info(f"Fetched catalog with {len(catalog)} categories from MCP")
|
|
134
134
|
return _catalog_cache
|
|
135
135
|
|
|
@@ -148,9 +148,9 @@ def get_category_keywords() -> dict[str, list[str]]:
|
|
|
148
148
|
return _fetch_catalog_from_mcp().keywords
|
|
149
149
|
|
|
150
150
|
|
|
151
|
-
def
|
|
152
|
-
"""Get set of
|
|
153
|
-
return _fetch_catalog_from_mcp().
|
|
151
|
+
def get_write_tools() -> set[str]:
|
|
152
|
+
"""Get set of write tool names (read_only=False) from MCP catalog."""
|
|
153
|
+
return _fetch_catalog_from_mcp().write_tools
|
|
154
154
|
|
|
155
155
|
|
|
156
156
|
def suggest_categories_for_request(request_text: str) -> list[str]:
|
|
@@ -188,18 +188,10 @@ def _filter_discovery_tools(mcp_tools: list[MCPTool]) -> list[MCPTool]:
|
|
|
188
188
|
def _load_categories_impl(
|
|
189
189
|
categories: list[str],
|
|
190
190
|
state: DynamicToolsState | None = None,
|
|
191
|
-
exclude_destructive: bool = True,
|
|
192
191
|
) -> str:
|
|
193
192
|
"""Load multiple tool categories at once.
|
|
194
193
|
|
|
195
|
-
|
|
196
|
-
categories: List of category names to load
|
|
197
|
-
state: Optional state container. Uses global state if not provided.
|
|
198
|
-
exclude_destructive: If True (default), skip destructive tools (delete operations).
|
|
199
|
-
Destructive tools can only be loaded via explicit load_tool call.
|
|
200
|
-
|
|
201
|
-
Returns:
|
|
202
|
-
Message indicating which tools were loaded or an error message.
|
|
194
|
+
In read-only mode, write tools (read_only=False) are excluded.
|
|
203
195
|
"""
|
|
204
196
|
if state is None:
|
|
205
197
|
state = get_global_state()
|
|
@@ -222,47 +214,35 @@ def _load_categories_impl(
|
|
|
222
214
|
if mcp_connection is None or loop is None:
|
|
223
215
|
return "Error: MCP connection not available"
|
|
224
216
|
|
|
225
|
-
# Collect all tool names to load
|
|
226
217
|
tool_names_to_load: set[str] = set()
|
|
227
218
|
for category in to_load:
|
|
228
219
|
tool_names_to_load.update(catalog[category])
|
|
229
220
|
|
|
230
|
-
|
|
231
|
-
if
|
|
232
|
-
|
|
233
|
-
tool_names_to_load -= destructive_tools
|
|
221
|
+
read_only = is_read_only_mode()
|
|
222
|
+
if read_only:
|
|
223
|
+
tool_names_to_load -= get_write_tools()
|
|
234
224
|
|
|
235
|
-
# Get all MCP tools and filter
|
|
236
225
|
mcp_tools = asyncio.run_coroutine_threadsafe(mcp_connection.get_tools(), loop).result()
|
|
237
226
|
tools_to_add = _filter_mcp_tools_by_names(mcp_tools, tool_names_to_load)
|
|
238
227
|
|
|
239
228
|
if not tools_to_add:
|
|
240
229
|
return f"No tools found for categories: {to_load}"
|
|
241
230
|
|
|
242
|
-
# Convert to Anthropic format and add to dynamic tools
|
|
243
231
|
anthropic_tools = mcp_tools_to_anthropic_format(tools_to_add)
|
|
244
232
|
state.tools.extend(anthropic_tools)
|
|
245
233
|
|
|
246
|
-
# Mark categories as loaded
|
|
247
234
|
for category in to_load:
|
|
248
235
|
state.loaded_categories.add(category)
|
|
249
236
|
|
|
250
237
|
tool_names = [t.name for t in tools_to_add]
|
|
251
238
|
logger.info(f"Loaded {len(tool_names)} tools from categories {to_load}: {tool_names}")
|
|
252
239
|
|
|
253
|
-
|
|
240
|
+
mode_suffix = " (read-only mode)" if read_only else ""
|
|
241
|
+
return f"Loaded {len(tool_names)} tools from {to_load}{mode_suffix}: {', '.join(sorted(tool_names))}"
|
|
254
242
|
|
|
255
243
|
|
|
256
244
|
def preload_categories_for_request(request_text: str) -> str | None:
|
|
257
|
-
"""Pre-load tool categories based on keywords in the user's request.
|
|
258
|
-
|
|
259
|
-
Called automatically on first user message to reduce tool discovery friction.
|
|
260
|
-
Destructive tools (delete operations) are excluded - they can only be loaded
|
|
261
|
-
via explicit load_tool call.
|
|
262
|
-
|
|
263
|
-
Returns:
|
|
264
|
-
Message about loaded categories, or None if nothing was loaded.
|
|
265
|
-
"""
|
|
245
|
+
"""Pre-load tool categories based on keywords in the user's request."""
|
|
266
246
|
suggestions = suggest_categories_for_request(request_text)
|
|
267
247
|
if not suggestions:
|
|
268
248
|
return None
|
|
@@ -308,18 +288,14 @@ def get_load_tool_definition() -> ToolParam:
|
|
|
308
288
|
"""Get the tool definition for load_tool."""
|
|
309
289
|
return {
|
|
310
290
|
"name": "load_tool",
|
|
311
|
-
"description":
|
|
312
|
-
"Load specific MCP tools by name. Use this to load destructive tools "
|
|
313
|
-
"(delete operations) which are excluded from load_tool_category. "
|
|
314
|
-
"Example: load_tool(['delete_hook']) to enable hook deletion."
|
|
315
|
-
),
|
|
291
|
+
"description": "Load specific MCP tools by name.",
|
|
316
292
|
"input_schema": {
|
|
317
293
|
"type": "object",
|
|
318
294
|
"properties": {
|
|
319
295
|
"tool_names": {
|
|
320
296
|
"type": "array",
|
|
321
297
|
"items": {"type": "string"},
|
|
322
|
-
"description": "Tool names to load
|
|
298
|
+
"description": "Tool names to load",
|
|
323
299
|
}
|
|
324
300
|
},
|
|
325
301
|
"required": ["tool_names"],
|
|
@@ -328,11 +304,7 @@ def get_load_tool_definition() -> ToolParam:
|
|
|
328
304
|
|
|
329
305
|
|
|
330
306
|
def load_tool(tool_names: list[str], state: DynamicToolsState | None = None) -> str:
|
|
331
|
-
"""Load specific MCP tools by name.
|
|
332
|
-
|
|
333
|
-
Use this to load destructive tools (delete operations) that are excluded
|
|
334
|
-
from category loading for safety.
|
|
335
|
-
"""
|
|
307
|
+
"""Load specific MCP tools by name. In read-only mode, write tools are excluded."""
|
|
336
308
|
if state is None:
|
|
337
309
|
state = get_global_state()
|
|
338
310
|
|
|
@@ -340,23 +312,26 @@ def load_tool(tool_names: list[str], state: DynamicToolsState | None = None) ->
|
|
|
340
312
|
if mcp_connection is None or loop is None:
|
|
341
313
|
return "Error: MCP connection not available"
|
|
342
314
|
|
|
343
|
-
# Get all MCP tools
|
|
344
315
|
mcp_tools = asyncio.run_coroutine_threadsafe(mcp_connection.get_tools(), loop).result()
|
|
345
316
|
available_tool_names = {t.name for t in mcp_tools}
|
|
346
317
|
|
|
347
|
-
# Validate requested tool names
|
|
348
318
|
invalid = [name for name in tool_names if name not in available_tool_names]
|
|
349
319
|
if invalid:
|
|
350
320
|
return f"Error: Unknown tools {invalid}"
|
|
351
321
|
|
|
352
|
-
|
|
322
|
+
read_only = is_read_only_mode()
|
|
323
|
+
if read_only:
|
|
324
|
+
write_tools = get_write_tools()
|
|
325
|
+
blocked = [name for name in tool_names if name in write_tools]
|
|
326
|
+
if blocked:
|
|
327
|
+
return f"Error: Write tools not available in read-only mode: {blocked}"
|
|
328
|
+
|
|
353
329
|
already_loaded = {t["name"] for t in state.tools}
|
|
354
330
|
to_load = [name for name in tool_names if name not in already_loaded]
|
|
355
331
|
|
|
356
332
|
if not to_load:
|
|
357
333
|
return f"Tools already loaded: {tool_names}"
|
|
358
334
|
|
|
359
|
-
# Filter MCP tools and convert to Anthropic format
|
|
360
335
|
tools_to_add = _filter_mcp_tools_by_names(mcp_tools, set(to_load))
|
|
361
336
|
anthropic_tools = mcp_tools_to_anthropic_format(tools_to_add)
|
|
362
337
|
state.tools.extend(anthropic_tools)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rossum-agent
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0rc1
|
|
4
4
|
Summary: AI agent toolkit for Rossum: document workflows conversationally, debug pipelines automatically, and enable agentic configuration of intelligent document processing.
|
|
5
5
|
Author-email: "Dan Stancl (Rossum AI)" <daniel.stancl@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -30,7 +30,7 @@ Requires-Dist: python-dotenv
|
|
|
30
30
|
Requires-Dist: requests>=2.32
|
|
31
31
|
Requires-Dist: rossum-api>=3.8.0
|
|
32
32
|
Requires-Dist: rossum-deploy>=0.1.0
|
|
33
|
-
Requires-Dist: rossum-mcp>=1.0.
|
|
33
|
+
Requires-Dist: rossum-mcp>=1.0.1
|
|
34
34
|
Provides-Extra: api
|
|
35
35
|
Requires-Dist: fastapi>=0.115.0; extra == "api"
|
|
36
36
|
Requires-Dist: pydantic>2.0.0; extra == "api"
|
|
@@ -86,7 +86,7 @@ Dynamic: license-file
|
|
|
86
86
|
**AI agent for Rossum document processing. Debug hooks, deploy configs, and automate workflows conversationally.**
|
|
87
87
|
|
|
88
88
|
[](https://stancld.github.io/rossum-agents/)
|
|
89
|
-
[](https://pypi.org/project/rossum-agent/)
|
|
90
90
|
[](https://opensource.org/licenses/MIT)
|
|
91
91
|
[](https://pypi.org/project/rossum-agent/)
|
|
92
92
|
[](https://codecov.io/gh/stancld/rossum-agents)
|
|
@@ -101,7 +101,7 @@ Dynamic: license-file
|
|
|
101
101
|
</div>
|
|
102
102
|
|
|
103
103
|
> [!NOTE]
|
|
104
|
-
> Community-developed integration (not official Rossum).
|
|
104
|
+
> Community-developed integration (not official Rossum). Follows semantic versioning from 1.0.0.
|
|
105
105
|
|
|
106
106
|
## Features
|
|
107
107
|
|
|
@@ -125,7 +125,8 @@ export ROSSUM_API_BASE_URL="https://api.elis.rossum.ai/v1"
|
|
|
125
125
|
export AWS_PROFILE="default" # For Bedrock
|
|
126
126
|
|
|
127
127
|
# Run the agent
|
|
128
|
-
uv pip install rossum-agent
|
|
128
|
+
uv pip install rossum-agent[streamlit]
|
|
129
|
+
uv cache clean rossum-agent # Re-init if upgrading
|
|
129
130
|
rossum-agent
|
|
130
131
|
```
|
|
131
132
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
rossum_agent/__init__.py,sha256=
|
|
1
|
+
rossum_agent/__init__.py,sha256=Jrd14J7pY1KGl0J3Wipi0y7WV9raTz8v85FnFFLUIH0,235
|
|
2
2
|
rossum_agent/agent_logging.py,sha256=d6V-VxFEiSgaiMV7JZnUA1Chg34SLU_e3ZF42gKmoZU,1848
|
|
3
3
|
rossum_agent/bedrock_client.py,sha256=Ri3CmeC3DAazT8TnRf0m8rbyd0chSU0p9nI3an04n2E,2423
|
|
4
4
|
rossum_agent/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -8,7 +8,7 @@ rossum_agent/url_context.py,sha256=u8j9_AFSHnZSkmcMVe6lypKKZ5qL148wKDgPmQA-MBc,5
|
|
|
8
8
|
rossum_agent/user_detection.py,sha256=An-B7frKwXg3V0N7tTrbP5YWrsHX2VAk8K7i0JS2JZg,2845
|
|
9
9
|
rossum_agent/utils.py,sha256=UCQEAKBsvGt7OdU1JG30DykPaGwyVb63ciFc-j09F0U,3709
|
|
10
10
|
rossum_agent/agent/__init__.py,sha256=QpdTIYGE5MouIf73gIwXL2hvMTrdeJIMT1aCxwVI04k,753
|
|
11
|
-
rossum_agent/agent/core.py,sha256=
|
|
11
|
+
rossum_agent/agent/core.py,sha256=2yKp5WAolp6O51j9raUuOB_wA46EGqx3xWN9dJebeaA,38299
|
|
12
12
|
rossum_agent/agent/memory.py,sha256=lfRyFf1coM0JQ5dMFE3x6SjxnQXJhwj3oa_1Vn5Nj5Y,6194
|
|
13
13
|
rossum_agent/agent/models.py,sha256=fdPZpNfrwxNu3dMz_uiWyyo5j9qnsj8UlppoBZtsz8g,4820
|
|
14
14
|
rossum_agent/agent/request_classifier.py,sha256=ni0Aq5c6fFhDFv8NyBhJeYe5f2lmFoubN8GOZwa5fLs,5616
|
|
@@ -26,7 +26,7 @@ rossum_agent/api/routes/files.py,sha256=7SvZ1miOC2fwaFsd5ko9rLCvntgc1YbXK8FchB1a
|
|
|
26
26
|
rossum_agent/api/routes/health.py,sha256=Sjis2KqfgFkfJAsGFjg5d8BhIswUFhNUfOf56o0MRI4,1435
|
|
27
27
|
rossum_agent/api/routes/messages.py,sha256=2P7b6hZK_ZL6oqeqZtldAdwT8QCK6Vo9TvEWkb7rc6c,8164
|
|
28
28
|
rossum_agent/api/services/__init__.py,sha256=oLA7_0cvWSde2ZDAG2lW-KrAj1E2mZDHhgAugftwnNc,40
|
|
29
|
-
rossum_agent/api/services/agent_service.py,sha256=
|
|
29
|
+
rossum_agent/api/services/agent_service.py,sha256=MDeY9UR1GrncC_pGS0UiCPPk9xKrH0PqMyKgfv98isQ,18401
|
|
30
30
|
rossum_agent/api/services/chat_service.py,sha256=sJMRiYmVeIWMVIDFniMC99e03fdIO0IlZnnheh9c180,6745
|
|
31
31
|
rossum_agent/api/services/file_service.py,sha256=9hw5n47ZezRKxD0o9d8dgX4mLDILmP7eCJpsXKtSAOM,1992
|
|
32
32
|
rossum_agent/assets/Primary_light_logo.png,sha256=kKdNl4vB7N2HWjd2WxAe_Hap_PF0LrVHs4rNz066dGA,10441
|
|
@@ -40,15 +40,15 @@ rossum_agent/skills/schema-patching.md,sha256=CUUwa-cvgSTHugb1VhgP-MtlcVYyHURLTd
|
|
|
40
40
|
rossum_agent/skills/schema-pruning.md,sha256=3lJzT4gUElEoq97uwL0fds78MG8klq-ZJFnNeqVOCnw,681
|
|
41
41
|
rossum_agent/skills/ui-settings.md,sha256=OVYjUhsaE41kOMVg-e5_6wI0p-g1iikkeEElRx6xURE,1782
|
|
42
42
|
rossum_agent/streamlit_app/__init__.py,sha256=X_0wth23f5ZE320MxeXY_zl2d7K9EfdWIqdTA-rABVg,59
|
|
43
|
-
rossum_agent/streamlit_app/app.py,sha256=
|
|
43
|
+
rossum_agent/streamlit_app/app.py,sha256=j_c2FN8fP-LAmfN8D-tQrtXwjgnHidG3jjS1ap02bZs,26143
|
|
44
44
|
rossum_agent/streamlit_app/beep_sound.py,sha256=uafjXOjM65w6D08aq1KIXAd9aomspOP7FAdmihEFEEI,1016
|
|
45
45
|
rossum_agent/streamlit_app/cli.py,sha256=5j9LTv8Qz0xX5Y2TXmZFagylSZqZHOmEJJTvJfT6SJ8,424
|
|
46
46
|
rossum_agent/streamlit_app/render_modules.py,sha256=djB7bdjj9Rea-IifD4vInAwyu2uaQ7yobOdFvbDE5L8,4510
|
|
47
47
|
rossum_agent/streamlit_app/response_formatting.py,sha256=_FXBIJXQ7iV4Y0oNLbeLGej1Yw4PRjJkjer8vh0BMgM,12066
|
|
48
|
-
rossum_agent/tools/__init__.py,sha256=
|
|
49
|
-
rossum_agent/tools/core.py,sha256=
|
|
48
|
+
rossum_agent/tools/__init__.py,sha256=XtEyO2AiuObkqXzgoJmRQsF_BY4hmoHelIn_fowkNGY,5945
|
|
49
|
+
rossum_agent/tools/core.py,sha256=dHQPXIEjmdam2Hz8q546vdvtCeRAXpq8j_Cw5OV5LGc,5894
|
|
50
50
|
rossum_agent/tools/deploy.py,sha256=yS7PxnIsIdhdfQ3i9cSMmozDF1eeoBQjE002N1x4Mpc,14738
|
|
51
|
-
rossum_agent/tools/dynamic_tools.py,sha256=
|
|
51
|
+
rossum_agent/tools/dynamic_tools.py,sha256=m3DwfdxyiBQd6yTHdodCXLbLNGiSj8d-1qX2_sq7LXY,11620
|
|
52
52
|
rossum_agent/tools/file_tools.py,sha256=egsWfYa3SFCXL1UySYPmVABuRG04G1sAI5Sf6DQpOKs,1999
|
|
53
53
|
rossum_agent/tools/formula.py,sha256=nL87iU1EqiPZF_riEQ05bpSnady5TvKmTFmCVVg8Yx4,6785
|
|
54
54
|
rossum_agent/tools/skills.py,sha256=Oy_OKaMoCIecrbJcVR6-KhDBR3uKDW8yTO-cTWBzydI,1155
|
|
@@ -59,9 +59,9 @@ rossum_agent/tools/subagents/hook_debug.py,sha256=5lJiIQAh1nf6uOF05KB4AAjD72cZUw
|
|
|
59
59
|
rossum_agent/tools/subagents/knowledge_base.py,sha256=Xr1I6uscK8ETSwx_bS7ZylgtBI5Cj_p1Pmtd08655BI,10580
|
|
60
60
|
rossum_agent/tools/subagents/mcp_helpers.py,sha256=1yR1gvoWJ1gfzXDcXRwO94viUrRRz7QuRUtCy0dc518,1452
|
|
61
61
|
rossum_agent/tools/subagents/schema_patching.py,sha256=eJWK3HLdZ15EHr7S8myFo8AbX3N8MTN2r1-tAMb4-K4,17377
|
|
62
|
-
rossum_agent-1.0.
|
|
63
|
-
rossum_agent-1.0.
|
|
64
|
-
rossum_agent-1.0.
|
|
65
|
-
rossum_agent-1.0.
|
|
66
|
-
rossum_agent-1.0.
|
|
67
|
-
rossum_agent-1.0.
|
|
62
|
+
rossum_agent-1.0.0rc1.dist-info/licenses/LICENSE,sha256=5nqARgtmPvoIU-1o1az3i8Qi2WOHYIn03vD6haewvEI,1087
|
|
63
|
+
rossum_agent-1.0.0rc1.dist-info/METADATA,sha256=O5Z7kEQ9yUoMCEL4Yxz2YpwVv-qJUut8Dz2JKXBMcHw,10964
|
|
64
|
+
rossum_agent-1.0.0rc1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
65
|
+
rossum_agent-1.0.0rc1.dist-info/entry_points.txt,sha256=1bbSeeptoKqT5-cWG4BuoMOGh_Crhu1sLL8AHXhbAJ0,115
|
|
66
|
+
rossum_agent-1.0.0rc1.dist-info/top_level.txt,sha256=jQm_Tm7Yq8oB68I8Y1BEhGqMGrusIgqfvfzeO1PGQso,13
|
|
67
|
+
rossum_agent-1.0.0rc1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|