4b354f5b2d
CI / lint (pull_request) Successful in 50s
CI / quality (pull_request) Successful in 55s
CI / security (pull_request) Successful in 1m25s
CI / typecheck (pull_request) Successful in 1m34s
CI / build (pull_request) Successful in 1m34s
CI / integration_tests (pull_request) Successful in 5m18s
CI / unit_tests (pull_request) Successful in 6m38s
CI / benchmark (pull_request) Failing after 42m6s
CI / lint (push) Successful in 47s
CI / typecheck (push) Successful in 1m26s
CI / security (push) Successful in 1m9s
CI / quality (push) Successful in 50s
CI / build (push) Successful in 1m36s
CI / integration_tests (push) Successful in 3m45s
CI / unit_tests (push) Successful in 5m42s
CI / coverage (push) Successful in 4m44s
CI / status-check (push) Successful in 6s
CI / benchmark (push) Successful in 44m16s
CI / coverage (pull_request) Successful in 4m57s
CI / status-check (pull_request) Successful in 7s
The `shell` and `http_request` built-in tools are the only two whose execution actually honors the tool agent's `timeout` config field (ToolAgent._execute_shell_command, ToolAgent._http_request_tool), but their LLM-facing schemas (_BUILTIN_TOOL_SCHEMAS in llm_tools.py) never told the model a timeout applied, and neither tool's timeout error named the config field that controls it. - _BUILTIN_TOOL_SCHEMAS["shell"] and ["http_request"] descriptions now state that execution is bounded by the agent's configured `timeout` (seconds), matching the existing precedent of documenting `file_read`'s `max_chars` behavior in its schema. - _execute_shell_command's timeout ExecutionError now names `timeout` as the adjustable config field, in addition to the elapsed seconds it already reported. - _http_request_tool now catches asyncio.TimeoutError distinctly from the generic `except Exception`, so a request timeout produces a message naming the config field instead of the previous generic "HTTP request failed" text (which gave no indication a timeout was the cause). Non-timeout HTTP failures are unaffected — same exception handling, same message shape as before. No change to enforcement mechanics: `self.timeout` remains the sole config field (default 1s, Actor Configuration Standard §4.5). This is schema/message content only, within the extension precedent already established by ADR-2030 (D-1 schema registry, D-4/D-6 error-quality improvements) — no new ADR was needed for this change. Tests: extended features/tool_agent.feature (updated the two existing shell/http_request timeout scenarios to also assert the new config-field hint) and features/llm_tools_coverage.feature (new scenarios asserting both schema descriptions mention the timeout budget). Full suite: 141 features / 2782 scenarios / 13172 steps passed; coverage 96.8% (>=96.5% threshold). Robot integration_tests: 27/27 suites passed. ASV benchmark_regression: no significant change, as expected for a messaging-only change. ISSUES CLOSED: #82
57 lines
3.1 KiB
Plaintext
57 lines
3.1 KiB
Plaintext
*** Settings ***
|
|
Documentation Integration tests for package version and imports
|
|
Library Process
|
|
Library OperatingSystem
|
|
Library String
|
|
|
|
*** Variables ***
|
|
${EXPECTED_VERSION} 2.1.0
|
|
|
|
*** Test Cases ***
|
|
Package Version Is Correct
|
|
[Documentation] Verify __version__ matches expected value
|
|
${result}= Run Process python -c import cleveractors; print(cleveractors.__version__)
|
|
... timeout=60s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} ${EXPECTED_VERSION}
|
|
|
|
Package Can Be Imported
|
|
[Documentation] Verify all public symbols can be imported
|
|
${result}= Run Process python -c
|
|
... from cleveractors import Agent, ContextManager, ReactiveCleverAgentsApp, CleverAgentsException; print("OK")
|
|
... timeout=30s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} OK
|
|
|
|
Agent Submodules Are Importable
|
|
[Documentation] Verify all agent modules can be imported
|
|
${result}= Run Process python -c
|
|
... from cleveractors.agents.base import Agent, AgentWithMemory\; from cleveractors.agents.llm import LLMAgent\; from cleveractors.agents.tool import ToolAgent\; from cleveractors.agents.composite import CompositeAgent\; from cleveractors.agents.chain import ChainAgent\; from cleveractors.agents.factory import AgentFactory\; print("OK")
|
|
... timeout=30s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} OK
|
|
|
|
Core Modules Are Importable
|
|
[Documentation] Verify core modules import correctly
|
|
${result}= Run Process python -c
|
|
... from cleveractors.core.config import ConfigurationManager, SchemaValidator\; from cleveractors.core.exceptions import ConfigurationError, AgentCreationError, RoutingError, TemplateError, ExecutionError, ApplicationError, StreamRoutingError\; from cleveractors.core.progress import ProgressBarManager\; print("OK")
|
|
... timeout=30s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} OK
|
|
|
|
Templates Modules Are Importable
|
|
[Documentation] Verify template modules import correctly
|
|
${result}= Run Process python -c
|
|
... from cleveractors.templates.renderer import TemplateEngine, TemplateRenderer\; from cleveractors.templates.registry import TemplateRegistry\; from cleveractors.templates.enhanced_registry import EnhancedTemplateRegistry\; print("OK")
|
|
... timeout=30s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} OK
|
|
|
|
LangGraph Modules Are Importable
|
|
[Documentation] Verify LangGraph modules import correctly
|
|
${result}= Run Process python -c
|
|
... from cleveractors.langgraph.graph import LangGraph\; from cleveractors.langgraph.bridge import RxPyLangGraphBridge\; from cleveractors.langgraph.state import GraphState\; from cleveractors.langgraph.nodes import NodeConfig, NodeType\; print("OK")
|
|
... timeout=30s
|
|
Should Be Equal As Integers ${result.rc} 0
|
|
Should Contain ${result.stdout} OK
|