alcyoneus 1.0.0__tar.gz
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.
- alcyoneus-1.0.0/LICENSE +21 -0
- alcyoneus-1.0.0/MANIFEST.in +2 -0
- alcyoneus-1.0.0/PKG-INFO +427 -0
- alcyoneus-1.0.0/README.md +331 -0
- alcyoneus-1.0.0/alcyoneus/__init__.py +318 -0
- alcyoneus-1.0.0/alcyoneus/__main__.py +7 -0
- alcyoneus-1.0.0/alcyoneus/cache/__init__.py +38 -0
- alcyoneus-1.0.0/alcyoneus/cache/base.py +128 -0
- alcyoneus-1.0.0/alcyoneus/cache/memory.py +50 -0
- alcyoneus-1.0.0/alcyoneus/cache/redis.py +103 -0
- alcyoneus-1.0.0/alcyoneus/cache/sqlite.py +83 -0
- alcyoneus-1.0.0/alcyoneus/cli/__init__.py +627 -0
- alcyoneus-1.0.0/alcyoneus/core/__init__.py +188 -0
- alcyoneus-1.0.0/alcyoneus/core/audit.py +855 -0
- alcyoneus-1.0.0/alcyoneus/core/auth.py +596 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/__init__.py +38 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/graph_error.py +82 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/media_exceptions.py +114 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/node_error.py +47 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/recursion_error.py +47 -0
- alcyoneus-1.0.0/alcyoneus/core/exceptions/storage_exceptions.py +256 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/__init__.py +229 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent.py +470 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/__init__.py +23 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/circuit_breaker.py +95 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/constants.py +73 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/execution.py +828 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/google.py +498 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/memory.py +178 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/openai.py +254 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/providers.py +90 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/agent_internal/skills.py +163 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/base_agent.py +147 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/command.py +38 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/compiled_graph.py +1507 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/dynamic_prompt.py +339 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/edge.py +120 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/handoff_filter.py +52 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/interrupt.py +121 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/message_graph.py +165 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/node.py +232 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/node_execution_policy.py +309 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/remote_graph.py +831 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/run_config.py +44 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/run_error_handlers.py +58 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/send.py +122 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/state_graph.py +830 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/stream_events.py +480 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/stream_transformers.py +268 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/__init__.py +16 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/_helpers.py +58 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/base.py +716 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/constants.py +69 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/deps.py +66 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/executors.py +35 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/kwargs_resolver.py +84 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/local_exec.py +270 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/mcp_exec.py +267 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/policy.py +329 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/registry.py +72 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_node/schema.py +254 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/tool_use_behavior.py +109 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/__init__.py +0 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/handler_mixins.py +150 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/handler_utils.py +263 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/invoke_handler.py +571 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/invoke_node_handler.py +713 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/stream_handler.py +823 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/stream_node_handler.py +844 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/stream_utils.py +47 -0
- alcyoneus-1.0.0/alcyoneus/core/graph/utils/utils.py +744 -0
- alcyoneus-1.0.0/alcyoneus/core/guardrails/__init__.py +93 -0
- alcyoneus-1.0.0/alcyoneus/core/guardrails/exceptions.py +123 -0
- alcyoneus-1.0.0/alcyoneus/core/guardrails/input_guardrail.py +228 -0
- alcyoneus-1.0.0/alcyoneus/core/guardrails/output_guardrail.py +198 -0
- alcyoneus-1.0.0/alcyoneus/core/guardrails/tool_guardrails.py +436 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/__init__.py +67 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/compaction.py +339 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/context.py +74 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/interaction.py +53 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/lifecycle.py +44 -0
- alcyoneus-1.0.0/alcyoneus/core/hooks/session.py +61 -0
- alcyoneus-1.0.0/alcyoneus/core/llm/__init__.py +40 -0
- alcyoneus-1.0.0/alcyoneus/core/llm/caller.py +275 -0
- alcyoneus-1.0.0/alcyoneus/core/llm/client_factory.py +336 -0
- alcyoneus-1.0.0/alcyoneus/core/llm/model_settings.py +65 -0
- alcyoneus-1.0.0/alcyoneus/core/llm/retry.py +116 -0
- alcyoneus-1.0.0/alcyoneus/core/mcp/__init__.py +56 -0
- alcyoneus-1.0.0/alcyoneus/core/mcp/approval.py +49 -0
- alcyoneus-1.0.0/alcyoneus/core/mcp/manager.py +65 -0
- alcyoneus-1.0.0/alcyoneus/core/mcp/server.py +201 -0
- alcyoneus-1.0.0/alcyoneus/core/mcp/transport.py +362 -0
- alcyoneus-1.0.0/alcyoneus/core/multitenancy.py +412 -0
- alcyoneus-1.0.0/alcyoneus/core/policy/__init__.py +44 -0
- alcyoneus-1.0.0/alcyoneus/core/policy/engine.py +355 -0
- alcyoneus-1.0.0/alcyoneus/core/ratelimit.py +489 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/__init__.py +107 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/base.py +244 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/events.py +775 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/handoffs.py +38 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/live_agent.py +692 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/providers/__init__.py +13 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/providers/azure_realtime.py +285 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/providers/gemini_live.py +372 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/providers/local_whisper_tts.py +322 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/providers/openai_realtime.py +292 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/queue.py +109 -0
- alcyoneus-1.0.0/alcyoneus/core/realtime/tool_filtering.py +39 -0
- alcyoneus-1.0.0/alcyoneus/core/secrets.py +696 -0
- alcyoneus-1.0.0/alcyoneus/core/skills/__init__.py +46 -0
- alcyoneus-1.0.0/alcyoneus/core/skills/activation.py +110 -0
- alcyoneus-1.0.0/alcyoneus/core/skills/loader.py +275 -0
- alcyoneus-1.0.0/alcyoneus/core/skills/models.py +194 -0
- alcyoneus-1.0.0/alcyoneus/core/skills/registry.py +193 -0
- alcyoneus-1.0.0/alcyoneus/core/state/__init__.py +138 -0
- alcyoneus-1.0.0/alcyoneus/core/state/agent_state.py +138 -0
- alcyoneus-1.0.0/alcyoneus/core/state/base_context.py +54 -0
- alcyoneus-1.0.0/alcyoneus/core/state/channels.py +695 -0
- alcyoneus-1.0.0/alcyoneus/core/state/execution_state.py +195 -0
- alcyoneus-1.0.0/alcyoneus/core/state/managed_values.py +195 -0
- alcyoneus-1.0.0/alcyoneus/core/state/message.py +573 -0
- alcyoneus-1.0.0/alcyoneus/core/state/message_block.py +286 -0
- alcyoneus-1.0.0/alcyoneus/core/state/message_context_manager.py +155 -0
- alcyoneus-1.0.0/alcyoneus/core/state/primitives.py +133 -0
- alcyoneus-1.0.0/alcyoneus/core/state/reducers.py +242 -0
- alcyoneus-1.0.0/alcyoneus/core/state/remove_message.py +116 -0
- alcyoneus-1.0.0/alcyoneus/core/state/run_state.py +55 -0
- alcyoneus-1.0.0/alcyoneus/core/state/serde.py +94 -0
- alcyoneus-1.0.0/alcyoneus/core/state/stream_chunks.py +59 -0
- alcyoneus-1.0.0/alcyoneus/core/state/stream_emitter.py +148 -0
- alcyoneus-1.0.0/alcyoneus/core/state/summary_context_manager.py +266 -0
- alcyoneus-1.0.0/alcyoneus/core/state/tool_result.py +67 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/__init__.py +106 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/context.py +88 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/decorators.py +166 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/processors.py +98 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/span_data.py +303 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/spans.py +116 -0
- alcyoneus-1.0.0/alcyoneus/core/tracing/traces.py +80 -0
- alcyoneus-1.0.0/alcyoneus/core/triggers/__init__.py +60 -0
- alcyoneus-1.0.0/alcyoneus/core/triggers/event_triggers.py +207 -0
- alcyoneus-1.0.0/alcyoneus/core/triggers/helpers.py +85 -0
- alcyoneus-1.0.0/alcyoneus/core/triggers/trigger_runner.py +187 -0
- alcyoneus-1.0.0/alcyoneus/core/triggers/triggers.py +98 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/__init__.py +65 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/events.py +47 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/input.py +57 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/models.py +84 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/pipeline.py +98 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/providers/__init__.py +26 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/providers/google_stt.py +37 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/providers/openai_stt.py +48 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/providers/openai_tts.py +53 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/result.py +51 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/sip.py +101 -0
- alcyoneus-1.0.0/alcyoneus/core/voice/workflow.py +60 -0
- alcyoneus-1.0.0/alcyoneus/extensions/__init__.py +20 -0
- alcyoneus-1.0.0/alcyoneus/extensions/experimental/__init__.py +27 -0
- alcyoneus-1.0.0/alcyoneus/extensions/experimental/codex.py +102 -0
- alcyoneus-1.0.0/alcyoneus/extensions/experimental/hosted_multi_agent.py +78 -0
- alcyoneus-1.0.0/alcyoneus/func/__init__.py +25 -0
- alcyoneus-1.0.0/alcyoneus/func/decorators.py +153 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/__init__.py +74 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/__init__.py +26 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/audio.py +128 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/plan_act_reflect.py +476 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/rag.py +581 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/react.py +188 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/router.py +244 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/structured_output.py +472 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/supervisor_team.py +485 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/agent/swarm.py +417 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/__init__.py +195 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/apply_patch.py +320 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/browser.py +236 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/calculator.py +92 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/calendar.py +289 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/code_interpreter.py +94 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/command.py +169 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/computer.py +248 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/computer_backends.py +431 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/custom_tool.py +45 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/directory.py +62 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/edit.py +114 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/fetch.py +128 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/file_search.py +452 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/files.py +293 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/finish.py +25 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/handoff.py +140 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/image.py +330 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/injected.py +57 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/interaction.py +110 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/memory.py +384 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/programmatic_tool.py +37 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/pydantic_tool.py +44 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/registry.py +77 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/scheduler.py +316 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/search.py +406 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/shell_tool.py +520 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/subagent.py +102 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/tool_namespace.py +43 -0
- alcyoneus-1.0.0/alcyoneus/prebuilt/tools/tool_search.py +46 -0
- alcyoneus-1.0.0/alcyoneus/py.typed +0 -0
- alcyoneus-1.0.0/alcyoneus/qa/__init__.py +188 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/__init__.py +247 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/collectors/__init__.py +40 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/collectors/event_collector.py +50 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/collectors/publisher_callback.py +166 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/collectors/trajectory_collector.py +327 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/__init__.py +48 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/criterion_config.py +237 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/eval_config.py +202 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/presets.py +330 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/reporter_config.py +69 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/config/types.py +29 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/__init__.py +108 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/base.py +306 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/factual_accuracy.py +82 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/hallucination.py +89 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/llm_base.py +149 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/llm_judge.py +78 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/llm_utils.py +117 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/response.py +151 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/rubric.py +70 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/safety.py +96 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/simulation_goals.py +97 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/criteria/trajectory.py +247 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/dataset/__init__.py +59 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/dataset/builder.py +229 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/dataset/eval_set.py +307 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/eval_result.py +480 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/evaluator.py +816 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/execution/__init__.py +6 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/execution/result.py +118 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/quick_eval.py +347 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/__init__.py +47 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/_html_css.py +608 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/_html_js.py +227 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/_html_render.py +614 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/_html_template.py +156 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/_utils.py +80 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/base.py +51 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/console.py +458 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/html.py +133 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/json.py +360 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/reporters/manager.py +259 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/simulators/__init__.py +21 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/simulators/user_simulator.py +636 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/testing.py +417 -0
- alcyoneus-1.0.0/alcyoneus/qa/evaluation/token_usage.py +59 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/__init__.py +194 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/in_memory_store.py +327 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/mock_mcp.py +212 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/mock_tools.py +237 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/quick_test.py +308 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/test_agent.py +322 -0
- alcyoneus-1.0.0/alcyoneus/qa/testing/test_result.py +89 -0
- alcyoneus-1.0.0/alcyoneus/runtime/__init__.py +55 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/__init__.py +24 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/__init__.py +25 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/anyllm_converter.py +50 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/base_converter.py +83 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/google_genai_converter.py +514 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/litellm_converter.py +83 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/model_response_converter.py +150 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/multi_provider.py +85 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/openai_converter.py +625 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/openai_responses_converter.py +579 -0
- alcyoneus-1.0.0/alcyoneus/runtime/adapters/llm/reasoning_utils.py +85 -0
- alcyoneus-1.0.0/alcyoneus/runtime/observability.py +633 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/__init__.py +59 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/a2a/__init__.py +75 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/a2a/_optional.py +73 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/a2a/client.py +479 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/a2a/executor.py +484 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/a2a/server.py +383 -0
- alcyoneus-1.0.0/alcyoneus/runtime/protocols/acp.py +954 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/__init__.py +32 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/base_publisher.py +71 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/composite_publisher.py +40 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/console_publisher.py +100 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/events.py +253 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/kafka_publisher.py +161 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/otel_attributes.py +75 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/otel_publisher.py +731 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/publish.py +57 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/rabbitmq_publisher.py +178 -0
- alcyoneus-1.0.0/alcyoneus/runtime/publisher/redis_publisher.py +186 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/__init__.py +111 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/base.py +59 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/__init__.py +40 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/compaction.py +67 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/filesystem.py +32 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/memory.py +30 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/shell.py +32 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/skills.py +29 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/capabilities/snapshot.py +64 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/dependencies.py +36 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/docker.py +343 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/errors.py +41 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/__init__.py +34 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/blaxel.py +79 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/cloudflare.py +81 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/daytona.py +82 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/e2b.py +86 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/modal.py +65 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/runloop.py +82 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/extensions/vercel.py +82 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/firecracker_sandbox.py +114 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/k8s_sandbox.py +227 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/local.py +76 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/manifest.py +44 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/mounts.py +89 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/pty_sandbox.py +84 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/remote_file_sync.py +97 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/sinks.py +51 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/snapshot.py +210 -0
- alcyoneus-1.0.0/alcyoneus/sandbox/types.py +153 -0
- alcyoneus-1.0.0/alcyoneus/storage/__init__.py +183 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/__init__.py +37 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/base_checkpointer.py +640 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/conformance/__init__.py +30 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/conformance/base.py +202 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/conformance/capabilities.py +144 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/conformance/test_suite.py +61 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/in_memory_checkpointer.py +626 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/pg_checkpointer.py +1711 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/session_modes.py +104 -0
- alcyoneus-1.0.0/alcyoneus/storage/checkpointer/sqlite_checkpointer.py +744 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/__init__.py +43 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/capabilities.py +209 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/config.py +49 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/media_resolver.py +339 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/offload.py +101 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/processor.py +319 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/provider_media.py +209 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/resolver.py +476 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/security.py +144 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/storage/__init__.py +18 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/storage/base.py +91 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/storage/cloud_store.py +288 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/storage/local_store.py +146 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/storage/memory_store.py +58 -0
- alcyoneus-1.0.0/alcyoneus/storage/media/temp_cache.py +312 -0
- alcyoneus-1.0.0/alcyoneus/storage/persistent_dict.py +210 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/__init__.py +40 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/base.py +74 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/compaction.py +45 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/dapr_session.py +90 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/encrypted_session.py +85 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/mongodb_session.py +126 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/redis_session.py +104 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/sqlalchemy_session.py +120 -0
- alcyoneus-1.0.0/alcyoneus/storage/sessions/sqlite_session.py +79 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/__init__.py +77 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/base_store.py +301 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/embedding/__init__.py +10 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/embedding/base_embedding.py +29 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/embedding/google_embedding.py +109 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/embedding/openai_embedding.py +78 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/long_term_memory.py +683 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/mem0_store.py +440 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/memory_config.py +132 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/qdrant_store.py +700 -0
- alcyoneus-1.0.0/alcyoneus/storage/store/store_schema.py +146 -0
- alcyoneus-1.0.0/alcyoneus/utils/__init__.py +148 -0
- alcyoneus-1.0.0/alcyoneus/utils/background_task_manager.py +316 -0
- alcyoneus-1.0.0/alcyoneus/utils/callable_utils.py +65 -0
- alcyoneus-1.0.0/alcyoneus/utils/callbacks.py +1018 -0
- alcyoneus-1.0.0/alcyoneus/utils/command.py +64 -0
- alcyoneus-1.0.0/alcyoneus/utils/constants.py +52 -0
- alcyoneus-1.0.0/alcyoneus/utils/converter.py +503 -0
- alcyoneus-1.0.0/alcyoneus/utils/decorators.py +223 -0
- alcyoneus-1.0.0/alcyoneus/utils/id_generator.py +234 -0
- alcyoneus-1.0.0/alcyoneus/utils/interactive.py +145 -0
- alcyoneus-1.0.0/alcyoneus/utils/logging.py +164 -0
- alcyoneus-1.0.0/alcyoneus/utils/metrics.py +118 -0
- alcyoneus-1.0.0/alcyoneus/utils/schema.py +78 -0
- alcyoneus-1.0.0/alcyoneus/utils/shutdown.py +344 -0
- alcyoneus-1.0.0/alcyoneus/utils/thread_info.py +39 -0
- alcyoneus-1.0.0/alcyoneus/utils/validators.py +475 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/PKG-INFO +427 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/SOURCES.txt +415 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/dependency_links.txt +1 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/entry_points.txt +2 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/requires.txt +66 -0
- alcyoneus-1.0.0/alcyoneus.egg-info/top_level.txt +1 -0
- alcyoneus-1.0.0/pyproject.toml +519 -0
- alcyoneus-1.0.0/setup.cfg +4 -0
- alcyoneus-1.0.0/tests/test_all_new_features.py +219 -0
- alcyoneus-1.0.0/tests/test_background_task_manager.py +413 -0
- alcyoneus-1.0.0/tests/test_base_context.py +203 -0
- alcyoneus-1.0.0/tests/test_base_converter.py +360 -0
- alcyoneus-1.0.0/tests/test_basic.py +16 -0
- alcyoneus-1.0.0/tests/test_checkpointer_integration.py +329 -0
- alcyoneus-1.0.0/tests/test_cloud_media_store.py +260 -0
- alcyoneus-1.0.0/tests/test_converter.py +386 -0
- alcyoneus-1.0.0/tests/test_docs_imports.py +115 -0
- alcyoneus-1.0.0/tests/test_ergonomic_enhancements.py +94 -0
- alcyoneus-1.0.0/tests/test_import_order.py +66 -0
- alcyoneus-1.0.0/tests/test_langgraph_parity_features.py +140 -0
- alcyoneus-1.0.0/tests/test_memory_management.py +577 -0
- alcyoneus-1.0.0/tests/test_model_response_converter.py +547 -0
- alcyoneus-1.0.0/tests/test_multiagent.py +943 -0
- alcyoneus-1.0.0/tests/test_multimodal_e2e.py +1355 -0
- alcyoneus-1.0.0/tests/test_multimodal_sprint1.py +787 -0
- alcyoneus-1.0.0/tests/test_multimodal_sprint2.py +248 -0
- alcyoneus-1.0.0/tests/test_multimodal_sprint3.py +705 -0
- alcyoneus-1.0.0/tests/test_multimodal_sprint6.py +557 -0
- alcyoneus-1.0.0/tests/test_new_tools.py +43 -0
- alcyoneus-1.0.0/tests/test_openai_multimodal.py +596 -0
- alcyoneus-1.0.0/tests/test_policy_engine_ported.py +73 -0
- alcyoneus-1.0.0/tests/test_primitives_ported.py +38 -0
- alcyoneus-1.0.0/tests/test_skills.py +1023 -0
- alcyoneus-1.0.0/tests/test_skills_hardening.py +173 -0
- alcyoneus-1.0.0/tests/test_skills_session.py +388 -0
- alcyoneus-1.0.0/tests/test_triggers_engine_ported.py +46 -0
alcyoneus-1.0.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ravinder Singh (Alcyoneus OS) & Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
alcyoneus-1.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: alcyoneus
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Alcyoneus OS: Production-grade Python operating system & framework for building, orchestrating, and deploying multi-agent LLM systems.
|
|
5
|
+
Author-email: Alcyoneus Authors <contact@alcyoneus.ai>
|
|
6
|
+
Maintainer-email: Ravinder Singh <contact@alcyoneus.ai>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2026 Ravinder Singh (Alcyoneus OS) & Contributors
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
Project-URL: Homepage, https://alcyoneus.alcyoneus.ai
|
|
30
|
+
Project-URL: Repository, https://github.com/alcyoneus-os/alcyoneus
|
|
31
|
+
Project-URL: Issues, https://github.com/alcyoneus-os/alcyoneus/issues
|
|
32
|
+
Project-URL: Documentation, https://alcyoneus.alcyoneus.ai
|
|
33
|
+
Keywords: agent,agents,ai-agent,ai-agents,multi-agent,multi-agent-systems,agentic,agentic-ai,agentic-workflow,agent-framework,agent-orchestration,orchestration,workflow,workflow-engine,state-machine,stategraph,graph,llm,llm-agent,llm-framework,llm-orchestration,llmops,genai,generative-ai,ai,artificial-intelligence,openai,anthropic,claude,gemini,google-genai,mcp,model-context-protocol,tool-use,function-calling,rag,memory,vector-store,qdrant,mem0,alcyoneus,alcyoneus-os,alcyoneus-sdk,sandboxing,voice-pipeline,guardrails,pydantic-ai,fastapi,react-agent,reasoning,chatbot,assistant,a2a
|
|
34
|
+
Classifier: Programming Language :: Python :: 3
|
|
35
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
36
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
37
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
38
|
+
Classifier: Operating System :: OS Independent
|
|
39
|
+
Classifier: Intended Audience :: Developers
|
|
40
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
41
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
42
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
43
|
+
Requires-Python: >=3.12
|
|
44
|
+
Description-Content-Type: text/markdown
|
|
45
|
+
License-File: LICENSE
|
|
46
|
+
Requires-Dist: injectq>=0.4.0
|
|
47
|
+
Requires-Dist: pillow>=12.2.0
|
|
48
|
+
Requires-Dist: pydantic<3,>=2.0
|
|
49
|
+
Requires-Dist: PyYAML>=6.0
|
|
50
|
+
Requires-Dist: python-dotenv>=1.0
|
|
51
|
+
Provides-Extra: google-genai
|
|
52
|
+
Requires-Dist: google-genai>=1.56.0; extra == "google-genai"
|
|
53
|
+
Provides-Extra: realtime
|
|
54
|
+
Requires-Dist: google-genai>=1.56.0; extra == "realtime"
|
|
55
|
+
Provides-Extra: openai
|
|
56
|
+
Requires-Dist: openai>=1.77.0; extra == "openai"
|
|
57
|
+
Provides-Extra: pg-checkpoint
|
|
58
|
+
Requires-Dist: asyncpg>=0.29.0; extra == "pg-checkpoint"
|
|
59
|
+
Requires-Dist: redis>=4.2; extra == "pg-checkpoint"
|
|
60
|
+
Provides-Extra: mcp
|
|
61
|
+
Requires-Dist: fastmcp>=2.11.3; extra == "mcp"
|
|
62
|
+
Requires-Dist: mcp>=1.13.0; extra == "mcp"
|
|
63
|
+
Provides-Extra: images
|
|
64
|
+
Requires-Dist: Pillow>=10.0.0; extra == "images"
|
|
65
|
+
Provides-Extra: cloud-storage
|
|
66
|
+
Requires-Dist: cloud-storage-manager>=0.1.2; extra == "cloud-storage"
|
|
67
|
+
Provides-Extra: redis
|
|
68
|
+
Requires-Dist: redis>=4.2; extra == "redis"
|
|
69
|
+
Provides-Extra: kafka
|
|
70
|
+
Requires-Dist: aiokafka>=0.8.0; extra == "kafka"
|
|
71
|
+
Provides-Extra: rabbitmq
|
|
72
|
+
Requires-Dist: aio-pika>=9.0.0; extra == "rabbitmq"
|
|
73
|
+
Provides-Extra: qdrant
|
|
74
|
+
Requires-Dist: qdrant-client>=1.7.0; extra == "qdrant"
|
|
75
|
+
Provides-Extra: mem0
|
|
76
|
+
Requires-Dist: mem0ai>=0.1.117; extra == "mem0"
|
|
77
|
+
Provides-Extra: a2a-sdk
|
|
78
|
+
Requires-Dist: a2a-sdk>=0.2.7; extra == "a2a-sdk"
|
|
79
|
+
Requires-Dist: httpx>=0.27.0; extra == "a2a-sdk"
|
|
80
|
+
Requires-Dist: uvicorn>=0.30.0; extra == "a2a-sdk"
|
|
81
|
+
Requires-Dist: sse-starlette>=2.0; extra == "a2a-sdk"
|
|
82
|
+
Provides-Extra: browser
|
|
83
|
+
Requires-Dist: playwright>=1.50.0; extra == "browser"
|
|
84
|
+
Provides-Extra: otel
|
|
85
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == "otel"
|
|
86
|
+
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "otel"
|
|
87
|
+
Provides-Extra: cli
|
|
88
|
+
Requires-Dist: click>=8.1.0; extra == "cli"
|
|
89
|
+
Requires-Dist: rich>=13.0.0; extra == "cli"
|
|
90
|
+
Requires-Dist: pyyaml>=6.0; extra == "cli"
|
|
91
|
+
Provides-Extra: all-publishers
|
|
92
|
+
Requires-Dist: redis>=4.2; extra == "all-publishers"
|
|
93
|
+
Requires-Dist: aiokafka>=0.8.0; extra == "all-publishers"
|
|
94
|
+
Requires-Dist: aio-pika>=9.0.0; extra == "all-publishers"
|
|
95
|
+
Dynamic: license-file
|
|
96
|
+
|
|
97
|
+
<div align="center">
|
|
98
|
+
<img src="assets/svg/alcyoneus-logo.svg" alt="Alcyoneus OS Banner" style="width: 100%; max-width: 100%; display: block; border-radius: 12px; margin-bottom: 16px;" />
|
|
99
|
+
<p>
|
|
100
|
+
<a href="https://github.com/sainibhaowal/Alcyoneus-OS/releases/tag/v1.0.0"><img src="https://img.shields.io/badge/Release-v1.0.0-00F0FF?style=flat-square&logo=github" alt="Release" /></a>
|
|
101
|
+
<a href="https://github.com/sainibhaowal/Alcyoneus-OS"><img src="https://img.shields.io/badge/Python-3.12%20|%203.13-38BDF8?style=flat-square&logo=python" alt="Python Versions" /></a>
|
|
102
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-3B82F6?style=flat-square" alt="License: MIT" /></a>
|
|
103
|
+
<a href="https://github.com/sainibhaowal/Alcyoneus-OS/actions"><img src="https://img.shields.io/badge/CI-Passing-10B981?style=flat-square&logo=github-actions" alt="CI Status" /></a>
|
|
104
|
+
<a href="https://github.com/sainibhaowal/Alcyoneus-OS"><img src="https://img.shields.io/badge/Coverage-80%25-10B981?style=flat-square" alt="Coverage" /></a>
|
|
105
|
+
</p>
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
**Alcyoneus OS** is a production-grade Python framework for building intelligent agents and orchestrating multi-agent state-graph workflows. It provides an LLM-agnostic workflow engine with built-in persistence, streaming, human-in-the-loop, guardrails, multi-agent orchestration, sandboxing, and enterprise-grade observability.
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
import alcyoneus as alc
|
|
114
|
+
from alcyoneus.core import StateGraph, Agent, ToolNode, START, END
|
|
115
|
+
from alcyoneus.storage.checkpointer import InMemoryCheckpointer
|
|
116
|
+
from alcyoneus.prebuilt.tools import safe_calculator, google_web_search
|
|
117
|
+
|
|
118
|
+
# 1. Define a tool
|
|
119
|
+
def get_weather(location: str) -> str:
|
|
120
|
+
return f"It's sunny in {location}"
|
|
121
|
+
|
|
122
|
+
# 2. Build graph with Agent + tools
|
|
123
|
+
graph = StateGraph()
|
|
124
|
+
graph.add_node("agent", Agent(model="gemini/gemini-2.5-flash", tool_node="tools"))
|
|
125
|
+
graph.add_node("tools", ToolNode([get_weather]))
|
|
126
|
+
graph.add_edge("agent", "tools")
|
|
127
|
+
graph.add_edge("tools", "agent")
|
|
128
|
+
graph.set_entry_point("agent")
|
|
129
|
+
|
|
130
|
+
# 3. Run with persistence
|
|
131
|
+
compiled = graph.compile(checkpointer=InMemoryCheckpointer())
|
|
132
|
+
result = compiled.invoke(
|
|
133
|
+
{"messages": [{"role": "user", "content": "Weather in NYC?"}]},
|
|
134
|
+
config={"thread_id": "demo"}
|
|
135
|
+
)
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## ✨ Key Features (100+ Production-Grade Capabilities)
|
|
141
|
+
|
|
142
|
+
### 🤖 Agent Engine & Orchestration
|
|
143
|
+
| Feature | Description |
|
|
144
|
+
|---------|-------------|
|
|
145
|
+
| **Agent Class** | Build complete agents in 10-30 lines |
|
|
146
|
+
| **StateGraph** | LangGraph-inspired engine with nodes, edges, conditional routing |
|
|
147
|
+
| **ReactAgent** | Reasoning + tool-use loops with ReAct pattern |
|
|
148
|
+
| **RAGAgent** | Retrieval-augmented generation with vector stores |
|
|
149
|
+
| **SwarmAgent** | Dynamic multi-agent collaboration |
|
|
150
|
+
| **SupervisorTeamAgent** | Hierarchical agent coordination |
|
|
151
|
+
| **PlanActReflectAgent** | Plan → Execute → Reflect cycles |
|
|
152
|
+
| **StructuredOutputAgent** | Guaranteed JSON schema output |
|
|
153
|
+
| **AudioAgent** | Real-time audio-to-audio (Gemini Live, OpenAI Realtime) |
|
|
154
|
+
|
|
155
|
+
### 🔄 Orchestration & Control Flow
|
|
156
|
+
| Feature | Description |
|
|
157
|
+
|---------|-------------|
|
|
158
|
+
| **StateGraph** | Nodes, edges, conditional routing, subgraphs |
|
|
159
|
+
| **Dynamic Routing** | `Command(goto=..., update=...)` for inline routing |
|
|
160
|
+
| **Subgraph Streaming** | Nested graph execution with `CompiledGraph` returns |
|
|
161
|
+
| **MessageGraph** | High-level message-only graph wrapper |
|
|
162
|
+
| **RemoteGraph/GraphServer** | HTTP/gRPC graph execution & serving |
|
|
163
|
+
| **Dynamic Inline Routing** | `Command(goto=..., update=...)` |
|
|
164
|
+
| **MessageGraph** | High-level message-only wrapper |
|
|
165
|
+
| **All/ALL Selector** | Catch-all edge routing (`*`, `All`, `ALL`) |
|
|
166
|
+
|
|
167
|
+
### 🤖 LLM Providers (100+ Models)
|
|
168
|
+
| Provider | Models |
|
|
169
|
+
|----------|--------|
|
|
170
|
+
| **OpenAI** | GPT-4o, GPT-4o-mini, o1, o3-mini, Responses API |
|
|
171
|
+
| **Google** | Gemini 2.5 Flash/Pro, Gemini Live, Vertex AI |
|
|
172
|
+
| **Anthropic** | Claude 3.5 Sonnet, Haiku, Opus |
|
|
173
|
+
| **LiteLLM** | 100+ models (Ollama, Together, Bedrock, etc.) |
|
|
174
|
+
| **MultiProvider** | Prefix routing: `openai/`, `gemini/`, `ollama/`, `anthropic/` |
|
|
175
|
+
| **Fallbacks** | Exponential backoff, multi-provider retry |
|
|
176
|
+
|
|
177
|
+
### 🛠️ 50+ Built-in Tools
|
|
178
|
+
| Category | Tools |
|
|
179
|
+
|----------|-------|
|
|
180
|
+
| **Search** | `google_web_search`, `bing_search`, `brave_search`, `duckduckgo_search`, `serpapi_search`, `tavily_search`, `exa_search`, `multi_search` (7 providers + dedup) |
|
|
181
|
+
| **Browser** | `browser_navigate`, `browser_click`, `browser_fill`, `browser_extract`, `browser_screenshot`, `browser_close` |
|
|
182
|
+
| **Shell** | `shell_command` (safe, policy-guarded) |
|
|
183
|
+
| **Code** | `code_interpreter`, `CodeInterpreterTool` (sandboxed Python) |
|
|
184
|
+
| **Files** | `file_read`, `file_write`, `list_directory`, `edit_file`, `file_search` (semantic + incremental) |
|
|
185
|
+
| **Search** | `google_web_search`, `vertex_ai_search` |
|
|
186
|
+
| **Image** | `generate_image`, `dalle_generate`, `imagen_generate`, `sdxl_generate`, `midjourney_generate` |
|
|
187
|
+
| **Code** | `code_interpreter`, `CodeInterpreterTool` |
|
|
188
|
+
| **Shell** | `shell_command` (policy-guarded), `ShellTool` |
|
|
189
|
+
| **Files** | `file_read`, `file_write`, `list_directory`, `edit_file` (unified diff), `file_search` |
|
|
190
|
+
| **Calendar** | `calendar_create_event`, `calendar_update_event`, `calendar_delete_event`, `calendar_list_events` |
|
|
191
|
+
| **Scheduler** | `Scheduler`, `schedule_job`, `cancel_scheduled_job`, `list_scheduled_jobs` |
|
|
192
|
+
| **Subagents** | `start_subagent`, `SubagentManager`, `create_handoff_tool` |
|
|
193
|
+
| **Browser** | `browser_navigate`, `click`, `fill`, `extract`, `screenshot`, `close` |
|
|
194
|
+
| **Memory** | `memory_tool`, `create_memory_preload_node`, `make_agent_memory_tool` |
|
|
195
|
+
| **Image Gen** | `generate_image`, `dalle_generate`, `imagen_generate`, `sdxl_generate`, `midjourney_generate` |
|
|
196
|
+
| **Code** | `code_interpreter`, `CodeInterpreterTool` (sandboxed Python) |
|
|
197
|
+
| **Shell** | `shell_command` (policy-guarded), `ShellTool` (Docker/Local) |
|
|
198
|
+
| **Files** | `file_read`, `file_write`, `list_directory`, `edit_file` (unified diff), `file_search` |
|
|
199
|
+
| **Search** | 7 providers: Google, Bing, Brave, DuckDuckGo, SerpAPI, Tavily, Exa + `multi_search` |
|
|
200
|
+
| **Image Gen** | `generate_image` (unified), `dalle`, `imagen`, `sdxl`, `midjourney` |
|
|
201
|
+
| **Calendar** | `calendar_create_event`, `calendar_update_event`, `calendar_delete_event`, `calendar_list_events` |
|
|
202
|
+
| **Scheduler** | `Scheduler`, `schedule_job`, `cancel_scheduled_job`, `list_scheduled_jobs` |
|
|
203
|
+
| **Subagents** | `start_subagent`, `SubagentManager`, `create_handoff_tool` |
|
|
204
|
+
| **Browser** | `browser_navigate`, `click`, `fill`, `extract`, `screenshot`, `close` |
|
|
205
|
+
| **Memory** | `memory_tool`, `create_memory_preload_node`, `make_agent_memory_tool` |
|
|
206
|
+
|
|
207
|
+
### 💾 Persistence & Memory (3-Layer Architecture)
|
|
208
|
+
| Layer | Implementation |
|
|
209
|
+
|-------|----------------|
|
|
210
|
+
| **Working State** | `AgentState` (Pydantic, in-memory) |
|
|
211
|
+
| **Checkpointer** | `InMemoryCheckpointer`, `PgCheckpointer` (PostgreSQL + Redis), `SqliteCheckpointer` |
|
|
212
|
+
| **Vector Store** | `QdrantStore`, `Mem0Store`, `MemoryConfig`, `AgentMemoryConfig` |
|
|
213
|
+
| **Memory Tools** | `memory_tool`, `create_memory_preload_node`, `make_agent_memory_tool` |
|
|
214
|
+
| **Compaction** | `DynamicCompactionPolicy`, `ResponsesCompactionSession` |
|
|
215
|
+
| **Session Storage** | SQLite, Redis, MongoDB, SQLAlchemy, Dapr, Encrypted |
|
|
216
|
+
|
|
217
|
+
### 🌊 Streaming & Real-time
|
|
218
|
+
| Feature | Description |
|
|
219
|
+
|---------|-------------|
|
|
220
|
+
| **Event Streaming** | `astream_events()` - 15 event types (graph/node/tool start/end, tool calls, handoffs, interrupts) |
|
|
221
|
+
| **GraphRunStream v3** | SSE streaming, heartbeat keep-alive, sync wrapper |
|
|
222
|
+
| **Granularity** | `LOW`/`PARTIAL`/`FULL` response granularity |
|
|
223
|
+
| **Realtime Audio** | `AudioAgent` (Gemini Live, OpenAI Realtime, Azure, Local Whisper+TTS) |
|
|
224
|
+
| **Barge-in** | Audio interruption with transcript persistence |
|
|
225
|
+
| **WebRTC Streaming** | `RemoteDesktopStreamer` for VNC/WebRTC frame broadcast |
|
|
226
|
+
|
|
227
|
+
### 🛡️ Security & Guardrails
|
|
228
|
+
| Feature | Description |
|
|
229
|
+
|---------|-------------|
|
|
230
|
+
| **Input Guardrails** | PII detection, prompt injection prevention, length limits |
|
|
231
|
+
| **Output Guardrails** | JSON schema enforcement, blocked words, length limits |
|
|
232
|
+
| **Tool Guardrails** | `ToolInputGuardrail`/`ToolOutputGuardrail` with allow/deny/rate limits |
|
|
233
|
+
| **Policy Engine** | 9-priority RBAC (allow/deny/ask_user), predicates, tenant scoping |
|
|
234
|
+
| **RBAC** | 9 permissions (Viewer/Dev/Admin/Owner), tenant scoping |
|
|
235
|
+
| **Auth** | JWT (JWKS), mTLS, Token Introspection (RFC 7662), API Key Manager |
|
|
236
|
+
| **Secrets** | Vault, AWS/GCP/Azure Key Vault, Composite fallback chain |
|
|
237
|
+
|
|
238
|
+
### 🌐 Protocols & Communication
|
|
239
|
+
| Protocol | Implementation |
|
|
240
|
+
|----------|----------------|
|
|
241
|
+
| **A2A** | Server (Starlette, agent cards, streaming), Client (retries, pooling, TLS) |
|
|
242
|
+
| **ACP** | Client/Server (HTTP/in-memory), agent discovery, task delegation |
|
|
243
|
+
| **MCP** | Stdio/SSE/WebSocket transports, capability negotiation, 5-min tool cache |
|
|
244
|
+
| **A2A Server** | Starlette app, agent cards, task streaming, uvicorn |
|
|
245
|
+
| **ACP** | HTTP/in-memory transports, agent discovery, task delegation |
|
|
246
|
+
|
|
247
|
+
### 🛠️ Developer Experience & CLI
|
|
248
|
+
| Tool | Purpose |
|
|
249
|
+
|------|---------|
|
|
250
|
+
| **`alc` CLI** | `alc graph create/run/visualize/validate`, `alc agent create`, `alc tool list/test`, `alc config`, `alc deploy docker/helm/k8s` |
|
|
251
|
+
| **Graph Visualizer** | `compiled.generate_graph("mermaid" \| "graphviz" \| "html")` - renders in GitHub, Notion, browser |
|
|
252
|
+
| **Graph Visualizer** | Interactive HTML with browser preview |
|
|
253
|
+
| **Graph Debug** | `alc debug state/replay/trace` for debugging checkpoints and traces |
|
|
254
|
+
|
|
255
|
+
### 🖥️ Sandboxing & Isolation
|
|
256
|
+
| Backend | Capabilities |
|
|
257
|
+
|---------|-------------|
|
|
258
|
+
| **DockerSandbox** | GPU passthrough, resource limits, volume mounts, PTY |
|
|
259
|
+
| **K8sSandbox** | Pod lifecycle, exec, resource quotas, GPU |
|
|
260
|
+
| **FirecrackerSandbox** | Micro-VM, resource isolation |
|
|
261
|
+
| **LocalSandbox** | Unix PTY, subprocess |
|
|
262
|
+
| **Computer Use** | X11/Wayland/Headless/VNC/Remote Desktop, Accessibility Bridge, Action Verifier |
|
|
263
|
+
| **ShellTool** | Docker/Local environments, policy-guarded, workspace scoping |
|
|
264
|
+
|
|
265
|
+
### 📊 Observability & Observability
|
|
266
|
+
| Feature | Description |
|
|
267
|
+
|---------|-------------|
|
|
268
|
+
| **OpenTelemetry** | Auto-instrumentation decorators (`@trace_graph`, `@trace_node`, `@trace_llm`, `@trace_tool`) |
|
|
269
|
+
| **Prometheus** | 15+ metrics (requests, latency, tokens, errors, sessions) |
|
|
270
|
+
| **Structured Logging** | JSON + W3C traceparent propagation |
|
|
271
|
+
| **8 Span Types** | Agent, Generation, Function, Guardrail, Handoff, Custom, Task |
|
|
272
|
+
| **Tracing** | Nested spans, processors (OTLP, Datadog, Console) |
|
|
273
|
+
|
|
274
|
+
### 🧪 Testing & Evaluation
|
|
275
|
+
| Tool | Purpose |
|
|
276
|
+
|------|---------|
|
|
277
|
+
| `QuickTest` | One-liner single/multi-turn assertions |
|
|
278
|
+
| `TestAgent` | Full simulation with `MockLLM`, `MockToolRegistry` |
|
|
279
|
+
| `MockMCPClient` | MCP server mocking |
|
|
280
|
+
| `AgentEvaluator` | LLM-as-judge, trajectory matching, safety, hallucination |
|
|
281
|
+
| `QuickTest` | One-liner single/multi-turn assertions |
|
|
282
|
+
| `TestContext` | Isolated test environments |
|
|
283
|
+
| `UserSimulator` | AI-powered user simulation (personas, error injection) |
|
|
284
|
+
| `BatchSimulator` | Concurrent simulation runs |
|
|
285
|
+
|
|
286
|
+
### 🏭 Production Hardening (17 Phases Complete)
|
|
287
|
+
| Phase | Area | Status |
|
|
288
|
+
|-------|------|--------|
|
|
289
|
+
| 1 | Sandbox Hardening | ✅ Docker, K8s, Firecracker, RemoteFileSync |
|
|
290
|
+
| 2 | Computer Use | ✅ X11/Wayland/Headless/VNC/Remote Desktop/Accessibility |
|
|
291
|
+
| 3 | Shell Tool | ✅ Docker/Local environments, policy-guarded |
|
|
292
|
+
| 4 | Web Search | ✅ 7 providers + multi_search dedup |
|
|
293
|
+
| 5 | Image Gen | ✅ DALL-E, Imagen, SDXL, Midjourney |
|
|
294
|
+
| 5b | File Search | ✅ Semantic index, incremental, multi-repo |
|
|
295
|
+
| 6 | Realtime Audio | ✅ OpenAI/Azure Realtime, Local Whisper+TTS |
|
|
296
|
+
| 7 | Distributed Sync | ✅ yjs/Automerge CRDT, mDNS/Consul |
|
|
297
|
+
| 8 | MCP Transports | ✅ Stdio/SSE/WebSocket, capability negotiation |
|
|
298
|
+
| 9 | A2A/ACP | ✅ Server/Client, streaming, agent cards |
|
|
299
|
+
| 10 | Observability | ✅ Auto-instrumentation, 15 Prometheus metrics |
|
|
300
|
+
| 11 | Multi-tenancy | ✅ TenantRegistry, quotas, RBAC, isolation |
|
|
301
|
+
| 12 | AuthZ/AuthN | ✅ JWT/mTLS/Token Introspection, ASGI middleware |
|
|
302
|
+
| 13 | Deployment | ✅ Docker, Helm, K8s Operator, systemd |
|
|
303
|
+
| 14 | Secrets | ✅ Vault/AWS/GCP/Azure + Composite fallback |
|
|
304
|
+
| 15 | Rate Limiting | ✅ Redis sliding-window, priority-weighted |
|
|
305
|
+
| 16 | Audit/Compliance | ✅ AuditLogger, GDPR, DataLineage, OPA, SBOM |
|
|
306
|
+
| 17 | Developer UX | ✅ `alc` CLI, Graph Visualizer (Mermaid/Graphviz/HTML) |
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Quick Install
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
# Core
|
|
314
|
+
pip install alcyoneus
|
|
315
|
+
|
|
316
|
+
# Common stacks
|
|
317
|
+
pip install "alcyoneus[openai,google-genai,mcp,pg_checkpoint,qdrant]"
|
|
318
|
+
pip install "alcyoneus[realtime]" # Audio agents
|
|
319
|
+
pip install "alcyoneus[browser]" # Browser automation
|
|
320
|
+
pip install "alcyoneus[cli]" # CLI tools
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
export OPENAI_API_KEY=sk-... # or GEMINI_API_KEY, ANTHROPIC_API_KEY
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## 30-Second Example
|
|
330
|
+
|
|
331
|
+
```python
|
|
332
|
+
from alcyoneus.core import StateGraph, Agent, ToolNode, START, END
|
|
333
|
+
from alcyoneus.storage.checkpointer import InMemoryCheckpointer
|
|
334
|
+
from alcyoneus.prebuilt.tools import safe_calculator, google_web_search
|
|
335
|
+
|
|
336
|
+
graph = StateGraph()
|
|
337
|
+
graph.add_node("agent", Agent(model="gemini/gemini-2.5-flash", tool_node="tools"))
|
|
338
|
+
graph.add_node("tools", ToolNode([safe_calculator, google_web_search]))
|
|
339
|
+
graph.add_edge("agent", "tools")
|
|
340
|
+
graph.add_edge("tools", "agent")
|
|
341
|
+
graph.set_entry_point("agent")
|
|
342
|
+
|
|
343
|
+
compiled = graph.compile(checkpointer=InMemoryCheckpointer())
|
|
344
|
+
result = compiled.invoke(
|
|
345
|
+
{"messages": [{"role": "user", "content": "What's 25 * 4?"}]},
|
|
346
|
+
config={"thread_id": "demo"}
|
|
347
|
+
)
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Documentation
|
|
353
|
+
|
|
354
|
+
| Topic | Link |
|
|
355
|
+
|-------|------|
|
|
356
|
+
| **Quickstart** | [docs/QUICKSTART.md](docs/QUICKSTART.md) |
|
|
357
|
+
| **All Imports** | [docs/IMPORTS.md](docs/IMPORTS.md) |
|
|
358
|
+
| **Core Patterns** | [docs/CORE_PATTERNS.md](docs/CORE_PATTERNS.md) |
|
|
359
|
+
| **Prebuilt Agents** | [docs/PREBUILT_AGENTS.md](docs/PREBUILT_AGENTS.md) |
|
|
360
|
+
| **Tools** | [docs/TOOLS.md](docs/TOOLS.md) |
|
|
361
|
+
| **Persistence** | [docs/PERSISTENCE.md](docs/PERSISTENCE.md) |
|
|
362
|
+
| **Streaming** | [docs/STREAMING.md](docs/STREAMING.md) |
|
|
363
|
+
| **Testing** | [docs/TESTING.md](docs/TESTING.md) |
|
|
364
|
+
| **Evaluation** | [docs/EVALUATION.md](docs/EVALUATION.md) |
|
|
365
|
+
| **Skills** | [docs/SKILLS.md](docs/SKILLS.md) |
|
|
366
|
+
| **Security** | [docs/SECURITY.md](docs/SECURITY.md) |
|
|
367
|
+
| **Protocols** | [docs/PROTOCOLS.md](docs/PROTOCOLS.md) |
|
|
368
|
+
| **Configuration** | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) |
|
|
369
|
+
| **Deployment** | [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md) |
|
|
370
|
+
| **Project Structure** | [docs/PROJECT_STRUCTURE.md](docs/PROJECT_STRUCTURE.md) |
|
|
371
|
+
| **Common Issues** | [docs/GOTCHAS.md](docs/GOTCHAS.md) |
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Examples
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Basic agent
|
|
379
|
+
python examples/react/react_sync.py
|
|
380
|
+
|
|
381
|
+
# MCP integration
|
|
382
|
+
pip install "alcyoneus[mcp]"
|
|
383
|
+
python examples/react-mcp/server.py # terminal 1
|
|
384
|
+
python examples/react-mcp/react-mcp.py # terminal 2
|
|
385
|
+
|
|
386
|
+
# Streaming
|
|
387
|
+
python examples/react_stream/stream_react_agent.py
|
|
388
|
+
|
|
389
|
+
# Realtime audio
|
|
390
|
+
pip install "alcyoneus[realtime]"
|
|
391
|
+
export GEMINI_API_KEY=...
|
|
392
|
+
python examples/realtime/audio_agent_file.py
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Testing & Quality
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
# Run all tests (3159 passing)
|
|
401
|
+
pytest tests/ -q
|
|
402
|
+
|
|
403
|
+
# Lint
|
|
404
|
+
ruff check . && ruff format .
|
|
405
|
+
|
|
406
|
+
# Type check
|
|
407
|
+
mypy alcyoneus/
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
## License
|
|
413
|
+
|
|
414
|
+
MIT License - see [LICENSE](LICENSE) for details.
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Links
|
|
419
|
+
|
|
420
|
+
- **GitHub Repository**: https://github.com/sainibhaowal/Alcyoneus-OS
|
|
421
|
+
- **Documentation**: [docs/QUICKSTART.md](docs/QUICKSTART.md)
|
|
422
|
+
- **Examples**: [examples/](examples/)
|
|
423
|
+
- **License**: [LICENSE](LICENSE)
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
427
|
+
**Alcyoneus OS** — Build intelligent agents with confidence.
|