open-swarm 0.1.1745020248__tar.gz → 0.1.1745125813__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.
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/PKG-INFO +93 -17
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/README.md +92 -16
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/pyproject.toml +1 -1
- open_swarm-0.1.1745125813/src/swarm/blueprints/codey/codey_cli.py +151 -0
- open_swarm-0.1.1745125813/src/swarm/blueprints/poets/blueprint_poets.py +505 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/slash_commands.py +32 -5
- open_swarm-0.1.1745125813/src/swarm/extensions/cli/utils/async_input.py +46 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/config/config_loader.py +28 -8
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/settings.py +2 -2
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/.gitignore +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/LICENSE +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/agent/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/apps.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/auth.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/README.md +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/blueprint_audit_status.json +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/chatbot/blueprint_chatbot.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/chatbot/templates/chatbot/chatbot.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/codey/CODEY.md +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/codey/README.md +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/codey/blueprint_codey.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/codey/instructions.md +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/divine_code/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/divine_code/apps.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/divine_code/blueprint_divine_code.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/django_chat/apps.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/django_chat/blueprint_django_chat.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/django_chat/urls.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/django_chat/views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/echocraft/blueprint_echocraft.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/apps.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/blueprint_family_ties.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/models.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/serializers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/settings.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/urls.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/family_ties/views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/flock/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/geese/blueprint_geese.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/mcp_demo/blueprint_mcp_demo.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/messenger/templates/messenger/messenger.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/mission_improbable/blueprint_mission_improbable.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/monkai_magic/blueprint_monkai_magic.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/omniplex/blueprint_omniplex.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/rue_code/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/rue_code/blueprint_rue_code.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/suggestion/blueprint_suggestion.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/unapologetic_press/blueprint_unapologetic_press.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/whiskeytango_foxtrot/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/whiskeytango_foxtrot/apps.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/consumers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/agent_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/blueprint_base.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/blueprint_discovery.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/blueprint_runner.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/blueprint_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/blueprint_ux.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/build_launchers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/build_swarm_wrapper.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/commands/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/commands/blueprint_management.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/interactive_shell.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/main.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/utils/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/cli/utils/discover_commands.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/common_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/config_loader.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/config_manager.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/output_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/server_config.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/session_logger.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/setup_wizard.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/spinner.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/swarm_api.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/swarm_cli.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/swarm_wrapper.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/utils/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/core/utils/logger.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/cli_handler.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/django_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/interactive_mode.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/modes/rest_mode.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/blueprint/runnable_blueprint.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/blueprint_runner.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/cli_args.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/blueprint_management.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/config_management.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/edit_config.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/list_blueprints.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/validate_env.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/commands/validate_envvars.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/interactive_shell.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/main.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/selection.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/utils/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/utils/discover_commands.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/utils/env_setup.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/utils/prompt_user.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/cli/utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/config/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/launchers/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/launchers/swarm_api.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/extensions/launchers/swarm_cli.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/management/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/management/commands/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/management/commands/runserver.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/messages.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/middleware.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/migrations/0010_initial_chat_models.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/migrations/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/models.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/permissions.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/repl/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/repl/repl.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/serializers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/fonts/fontawesome-webfont.ttf +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/fonts/fontawesome-webfont.woff +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/fonts/fontawesome-webfont.woff2 +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/markedjs/marked.min.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/adjustments-horizontal.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/alert-triangle.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/archive.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/artboard.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/automatic-gearbox.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/box-multiple.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/carambola.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/copy.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/download.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/edit.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/filled/carambola.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/filled/paint.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/headset.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/message-chatbot.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/message-star.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/message-x.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/message.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/paperclip.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/playlist-add.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/robot.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/search.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/settings.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/thumb-down.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/contrib/tabler-icons/thumb-up.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/css/dropdown.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/htmx/htmx.min.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/js/dropdown.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/base.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/chat-history.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/chat.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/chatbot.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/chatgpt.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/colors/corporate.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/colors/pastel.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/colors/tropical.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/general.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/layout.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/layouts/messenger-layout.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/layouts/minimalist-layout.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/layouts/mobile-layout.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/messages.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/messenger.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/settings.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/simple.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/slack.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/style.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/theme.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/css/toast.css +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/auth.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/blueprint.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/blueprintUtils.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/chatLogic.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/debug.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/events.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/main.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/messages.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/messengerLogic.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/apiService.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/blueprintManager.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/chatHistory.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/debugLogger.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/eventHandlers.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/messageProcessor.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/state.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/userInteractions.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/modules/validation.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/rendering.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/settings.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/sidebar.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/simpleLogic.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/slackLogic.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/splash.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/theme.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/toast.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/ui.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/js/validation.js +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/animated_spinner.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/arrow_down.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/arrow_left.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/arrow_right.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/arrow_up.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/attach.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/avatar.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/canvas.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/chat_history.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/close.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/copy.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/dark_mode.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/edit.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/layout.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/logo.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/logout.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/mobile.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/new_chat.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/not_visible.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/plus.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/run_code.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/save.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/search.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/settings.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/speaker.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/stop.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/thumbs_down.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/thumbs_up.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/toggle_off.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/toggle_on.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/trash.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/undo.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/visible.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/static/rest_mode/svg/voice.svg +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/account/login.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/account/signup.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/base.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/chat.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/index.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/chat_sidebar.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/header.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/main_chat_pane.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/settings_dialog.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/splash_screen.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/components/top_bar.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/message_ui.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/rest_mode/slackbot.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/simple_blueprint_page.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/websocket_partials/final_system_message.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/websocket_partials/system_message.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/templates/websocket_partials/user_message.html +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/tool_executor.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/urls.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/util.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/color_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/context_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/general_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/log_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/logger.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/logger_setup.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/message_sequence.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/message_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/utils/redact.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/api_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/chat_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/core_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/message_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/model_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/views/web_views.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/src/swarm/wsgi.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/__init__.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/api/conftest.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/api/test_chat_completions_auth_async.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/api/test_chat_completions_failing_async.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/api/test_chat_completions_validation_async.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_chatbot.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_codey.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_codey_approval_mode.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_codey_github.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_digitalbutlers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_dilbot_universe.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_divine_code.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_echocraft.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_family_ties.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_gaggle.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_geese.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_gotchaman.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_mcp_demo.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_mission_improbable.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_monkai_magic.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_nebula_shellz.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_omniplex.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_suggestion.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_unapologetic_press.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/blueprints/test_whiskeytangofoxtrot.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/cli/test_cli_config.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/cli/test_launchers.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/cli/test_list_blueprints.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/conftest.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/extensions/launchers/test_swarm_api_launcher.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/integration/test_cli_commands.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/swarm_config.json +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_chucks_angels.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_digitalbutlers.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_dilbot_universe.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_divine_code.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_django_chat.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_echocraft.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_family_ties.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_flock.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_gaggle.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_gotchaman.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_monkai-magic.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_nebula_shellz.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_omniplex.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_rue-code.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_suggestion.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_unapologetic_press.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_university.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/system/test_whiskeytango_foxtrot.sh +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_blueprint_loading.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_cli_mode_selection.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_core_filter_duplicate_system_messages.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_core_filter_messages.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_core_truncate_message_history.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_core_update_null_content.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_dummy.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/test_truncate_message_history.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/unit/blueprints/rue_code/test_rue_code_tools.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/unit/test_blueprint_base_config.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/unit/test_output_utils.py +0 -0
- {open_swarm-0.1.1745020248 → open_swarm-0.1.1745125813}/tests/unit/test_slash_commands.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: open-swarm
|
3
|
-
Version: 0.1.
|
3
|
+
Version: 0.1.1745125813
|
4
4
|
Summary: Open Swarm: Orchestrating AI Agent Swarms with Django
|
5
5
|
Project-URL: Homepage, https://github.com/yourusername/open-swarm
|
6
6
|
Project-URL: Documentation, https://github.com/yourusername/open-swarm/blob/main/README.md
|
@@ -101,30 +101,104 @@ Open Swarm can be used in two primary ways:
|
|
101
101
|
|
102
102
|
---
|
103
103
|
|
104
|
+
## Configuration & Quickstart
|
105
|
+
|
106
|
+
See [CONFIGURATION.md](./CONFIGURATION.md) for a full guide to Swarm configuration—including LLM setup, MCP server integration, per-blueprint overrides, pricing, and CLI vs manual workflows.
|
107
|
+
|
108
|
+
You can configure everything interactively using `swarm-cli configure` or by manually editing your config file (see guide for details and examples).
|
109
|
+
|
110
|
+
---
|
111
|
+
|
104
112
|
## Core Framework TODO
|
105
113
|
|
106
|
-
- [
|
107
|
-
- [
|
108
|
-
- [
|
109
|
-
- [
|
110
|
-
- [
|
111
|
-
- [
|
114
|
+
- [x] Unified interactive approval mode for all blueprints (core, CLI/API flag, boxed UX)
|
115
|
+
- [x] Enhanced ANSI/emoji output for search, analysis, and file ops (core BlueprintUX)
|
116
|
+
- [x] Custom spinner/progress messages (core and per-blueprint personality)
|
117
|
+
- [x] Persistent session logging/audit trail (core, opt-in per blueprint)
|
118
|
+
- [x] Automatic context/project file injection for agent prompts
|
119
|
+
- [x] User feedback/correction loop for agent actions
|
112
120
|
- [x] API/CLI flag for enabling/disabling advanced UX features
|
113
|
-
- [
|
114
|
-
- [
|
115
|
-
- [
|
116
|
-
- [
|
117
|
-
- [
|
118
|
-
- [
|
119
|
-
- [
|
120
|
-
- [
|
121
|
-
- [
|
122
|
-
- [
|
121
|
+
- [x] Support desktop notifications (`--notify`)
|
122
|
+
- [x] Support attaching image inputs (`--image`, `-i`)
|
123
|
+
- [x] Support inspecting past sessions via `--view`, `-v`)
|
124
|
+
- [x] Support opening instructions file with `--config`, `-c`)
|
125
|
+
- [x] Support whitelisting sandbox write roots (`--writable-root`, `-w`)
|
126
|
+
- [x] Support disabling project docs (`--no-project-doc`)
|
127
|
+
- [x] Support full stdout (`--full-stdout`)
|
128
|
+
- [x] Support dangerous auto-approve (`--dangerously-auto-approve-everything`)
|
129
|
+
- [x] Support shell completion subcommand (`completion <bash|zsh|fish>`)
|
130
|
+
- [x] Support full-context mode (`--full-context`, `-f`)
|
131
|
+
- [x] Model selection overlay and CLI/agent-specific support
|
132
|
+
- [x] Session/history management and overlays
|
133
|
+
- [x] Full-context mode for large refactor/analysis
|
134
|
+
- [x] Writable root/sandboxing CLI/config support
|
135
|
+
- [x] Command suggestions/typeahead/autocomplete for CLI and slash commands
|
136
|
+
- [x] Help and onboarding overlays
|
137
|
+
- [x] Desktop notification support (optional)
|
138
|
+
- [x] Dangerous auto-approve flag/UX
|
139
|
+
- [x] Output formatting/full stdout option
|
140
|
+
- [x] Image input (CLI/UX, future-proof)
|
123
141
|
- [ ] Security review: command sanitization, safe execution wrappers
|
124
142
|
- [ ] Documentation: core feature usage, extension points, UX guidelines
|
125
143
|
|
126
144
|
---
|
127
145
|
|
146
|
+
## New in Geese: Notifier Abstraction & Reflection
|
147
|
+
|
148
|
+
- The Geese blueprint now uses a Notifier abstraction for all user-facing output (operation boxes, errors, info), enabling easy redirection to different UIs or for testing.
|
149
|
+
- Plan reflection and operation transparency: After every agent operation, the current plan, all tool outputs, and any errors are displayed directly to the user, not just logged.
|
150
|
+
- The Notifier can be extended or swapped for custom UX and is available to all blueprints for unified output handling.
|
151
|
+
|
152
|
+
See `src/swarm/blueprints/geese/README.md` for usage and extension details.
|
153
|
+
|
154
|
+
---
|
155
|
+
|
156
|
+
## Codex CLI Feature Parity Checklist
|
157
|
+
|
158
|
+
This project aims to provide full feature parity with the OpenAI Codex CLI. Below is a checklist of Codex features and their current status in Open Swarm/codey:
|
159
|
+
|
160
|
+
### ✅ Already Implemented
|
161
|
+
- Rich output/emoji/spinner UX (unified for search, analysis, file ops)
|
162
|
+
- Modular blueprint/agent system
|
163
|
+
- Basic interactive CLI mode
|
164
|
+
- Basic approval mode for some agent actions
|
165
|
+
- Syntax-highlighted code output
|
166
|
+
- Session/history management and overlays
|
167
|
+
- Full-context mode for large refactor/analysis
|
168
|
+
- Writable root/sandboxing CLI/config support
|
169
|
+
- Command suggestions/typeahead/autocomplete for CLI and slash commands
|
170
|
+
- Help and onboarding overlays
|
171
|
+
- Desktop notification support (optional)
|
172
|
+
- Dangerous auto-approve flag/UX
|
173
|
+
- Output formatting/full stdout option
|
174
|
+
- Image input (CLI/UX, future-proof)
|
175
|
+
|
176
|
+
### ⚠️ Partially Implemented
|
177
|
+
- Approval modes (full-auto, interactive, granular gating) for all actions
|
178
|
+
- Directory sandboxing (not enforced everywhere, no network controls)
|
179
|
+
- CLI/config file support (not unified or live-reloadable)
|
180
|
+
- Version control integration (git ops for suggest mode only)
|
181
|
+
- Slash commands: `/help`, `/model`, `/approval`, `/history`, `/ls`, `/cat`, `/edit`, `/compact` (some available)
|
182
|
+
- Project-level instructions auto-loading
|
183
|
+
|
184
|
+
### ❌ Not Yet Implemented
|
185
|
+
- Auto dependency install for generated code
|
186
|
+
- Automatic context/project file injection
|
187
|
+
- Plan/changelog file maintenance
|
188
|
+
- User feedback/correction loop
|
189
|
+
- Persistent session logging/audit trail
|
190
|
+
- Streaming token-by-token CLI output
|
191
|
+
- Non-interactive/CI/headless mode
|
192
|
+
- Multimodal input (screenshots/diagrams)
|
193
|
+
- Atomic commit/rollback for all agent actions
|
194
|
+
- Safety/ZDR org restrictions
|
195
|
+
|
196
|
+
---
|
197
|
+
|
198
|
+
**See the codey blueprint README for blueprint-specific feature status and TODOs.**
|
199
|
+
|
200
|
+
---
|
201
|
+
|
128
202
|
## Core Concepts
|
129
203
|
|
130
204
|
* **Agents:** Individual AI units performing specific tasks, powered by LLMs (like GPT-4, Claude, etc.). Built using the `openai-agents` SDK.
|
@@ -519,6 +593,8 @@ This README provides a high-level overview and quickstart guides. For more detai
|
|
519
593
|
* **User Guide (`USERGUIDE.md`):** Detailed instructions on using `swarm-cli` commands for managing blueprints and configuration locally.
|
520
594
|
* **Development Guide (`DEVELOPMENT.md`):** Information for contributors and developers, including architecture details, testing strategies, project layout, API details, and advanced topics.
|
521
595
|
* **Example Blueprints (`src/swarm/blueprints/README.md`):** A list and description of the example blueprints included with the framework, showcasing various features and integration patterns.
|
596
|
+
* **Blueprint Patterns and Configuration (`blueprints/README.md`):** Guidance on creating and configuring blueprints, including best practices and common pitfalls. **Start here for blueprint usage and extension.**
|
597
|
+
* **User Experience Standards (`UX.md`):** Guidelines for creating a consistent and user-friendly experience across blueprints and the Swarm framework.
|
522
598
|
|
523
599
|
---
|
524
600
|
|
@@ -13,30 +13,104 @@ Open Swarm can be used in two primary ways:
|
|
13
13
|
|
14
14
|
---
|
15
15
|
|
16
|
+
## Configuration & Quickstart
|
17
|
+
|
18
|
+
See [CONFIGURATION.md](./CONFIGURATION.md) for a full guide to Swarm configuration—including LLM setup, MCP server integration, per-blueprint overrides, pricing, and CLI vs manual workflows.
|
19
|
+
|
20
|
+
You can configure everything interactively using `swarm-cli configure` or by manually editing your config file (see guide for details and examples).
|
21
|
+
|
22
|
+
---
|
23
|
+
|
16
24
|
## Core Framework TODO
|
17
25
|
|
18
|
-
- [
|
19
|
-
- [
|
20
|
-
- [
|
21
|
-
- [
|
22
|
-
- [
|
23
|
-
- [
|
26
|
+
- [x] Unified interactive approval mode for all blueprints (core, CLI/API flag, boxed UX)
|
27
|
+
- [x] Enhanced ANSI/emoji output for search, analysis, and file ops (core BlueprintUX)
|
28
|
+
- [x] Custom spinner/progress messages (core and per-blueprint personality)
|
29
|
+
- [x] Persistent session logging/audit trail (core, opt-in per blueprint)
|
30
|
+
- [x] Automatic context/project file injection for agent prompts
|
31
|
+
- [x] User feedback/correction loop for agent actions
|
24
32
|
- [x] API/CLI flag for enabling/disabling advanced UX features
|
25
|
-
- [
|
26
|
-
- [
|
27
|
-
- [
|
28
|
-
- [
|
29
|
-
- [
|
30
|
-
- [
|
31
|
-
- [
|
32
|
-
- [
|
33
|
-
- [
|
34
|
-
- [
|
33
|
+
- [x] Support desktop notifications (`--notify`)
|
34
|
+
- [x] Support attaching image inputs (`--image`, `-i`)
|
35
|
+
- [x] Support inspecting past sessions via `--view`, `-v`)
|
36
|
+
- [x] Support opening instructions file with `--config`, `-c`)
|
37
|
+
- [x] Support whitelisting sandbox write roots (`--writable-root`, `-w`)
|
38
|
+
- [x] Support disabling project docs (`--no-project-doc`)
|
39
|
+
- [x] Support full stdout (`--full-stdout`)
|
40
|
+
- [x] Support dangerous auto-approve (`--dangerously-auto-approve-everything`)
|
41
|
+
- [x] Support shell completion subcommand (`completion <bash|zsh|fish>`)
|
42
|
+
- [x] Support full-context mode (`--full-context`, `-f`)
|
43
|
+
- [x] Model selection overlay and CLI/agent-specific support
|
44
|
+
- [x] Session/history management and overlays
|
45
|
+
- [x] Full-context mode for large refactor/analysis
|
46
|
+
- [x] Writable root/sandboxing CLI/config support
|
47
|
+
- [x] Command suggestions/typeahead/autocomplete for CLI and slash commands
|
48
|
+
- [x] Help and onboarding overlays
|
49
|
+
- [x] Desktop notification support (optional)
|
50
|
+
- [x] Dangerous auto-approve flag/UX
|
51
|
+
- [x] Output formatting/full stdout option
|
52
|
+
- [x] Image input (CLI/UX, future-proof)
|
35
53
|
- [ ] Security review: command sanitization, safe execution wrappers
|
36
54
|
- [ ] Documentation: core feature usage, extension points, UX guidelines
|
37
55
|
|
38
56
|
---
|
39
57
|
|
58
|
+
## New in Geese: Notifier Abstraction & Reflection
|
59
|
+
|
60
|
+
- The Geese blueprint now uses a Notifier abstraction for all user-facing output (operation boxes, errors, info), enabling easy redirection to different UIs or for testing.
|
61
|
+
- Plan reflection and operation transparency: After every agent operation, the current plan, all tool outputs, and any errors are displayed directly to the user, not just logged.
|
62
|
+
- The Notifier can be extended or swapped for custom UX and is available to all blueprints for unified output handling.
|
63
|
+
|
64
|
+
See `src/swarm/blueprints/geese/README.md` for usage and extension details.
|
65
|
+
|
66
|
+
---
|
67
|
+
|
68
|
+
## Codex CLI Feature Parity Checklist
|
69
|
+
|
70
|
+
This project aims to provide full feature parity with the OpenAI Codex CLI. Below is a checklist of Codex features and their current status in Open Swarm/codey:
|
71
|
+
|
72
|
+
### ✅ Already Implemented
|
73
|
+
- Rich output/emoji/spinner UX (unified for search, analysis, file ops)
|
74
|
+
- Modular blueprint/agent system
|
75
|
+
- Basic interactive CLI mode
|
76
|
+
- Basic approval mode for some agent actions
|
77
|
+
- Syntax-highlighted code output
|
78
|
+
- Session/history management and overlays
|
79
|
+
- Full-context mode for large refactor/analysis
|
80
|
+
- Writable root/sandboxing CLI/config support
|
81
|
+
- Command suggestions/typeahead/autocomplete for CLI and slash commands
|
82
|
+
- Help and onboarding overlays
|
83
|
+
- Desktop notification support (optional)
|
84
|
+
- Dangerous auto-approve flag/UX
|
85
|
+
- Output formatting/full stdout option
|
86
|
+
- Image input (CLI/UX, future-proof)
|
87
|
+
|
88
|
+
### ⚠️ Partially Implemented
|
89
|
+
- Approval modes (full-auto, interactive, granular gating) for all actions
|
90
|
+
- Directory sandboxing (not enforced everywhere, no network controls)
|
91
|
+
- CLI/config file support (not unified or live-reloadable)
|
92
|
+
- Version control integration (git ops for suggest mode only)
|
93
|
+
- Slash commands: `/help`, `/model`, `/approval`, `/history`, `/ls`, `/cat`, `/edit`, `/compact` (some available)
|
94
|
+
- Project-level instructions auto-loading
|
95
|
+
|
96
|
+
### ❌ Not Yet Implemented
|
97
|
+
- Auto dependency install for generated code
|
98
|
+
- Automatic context/project file injection
|
99
|
+
- Plan/changelog file maintenance
|
100
|
+
- User feedback/correction loop
|
101
|
+
- Persistent session logging/audit trail
|
102
|
+
- Streaming token-by-token CLI output
|
103
|
+
- Non-interactive/CI/headless mode
|
104
|
+
- Multimodal input (screenshots/diagrams)
|
105
|
+
- Atomic commit/rollback for all agent actions
|
106
|
+
- Safety/ZDR org restrictions
|
107
|
+
|
108
|
+
---
|
109
|
+
|
110
|
+
**See the codey blueprint README for blueprint-specific feature status and TODOs.**
|
111
|
+
|
112
|
+
---
|
113
|
+
|
40
114
|
## Core Concepts
|
41
115
|
|
42
116
|
* **Agents:** Individual AI units performing specific tasks, powered by LLMs (like GPT-4, Claude, etc.). Built using the `openai-agents` SDK.
|
@@ -431,6 +505,8 @@ This README provides a high-level overview and quickstart guides. For more detai
|
|
431
505
|
* **User Guide (`USERGUIDE.md`):** Detailed instructions on using `swarm-cli` commands for managing blueprints and configuration locally.
|
432
506
|
* **Development Guide (`DEVELOPMENT.md`):** Information for contributors and developers, including architecture details, testing strategies, project layout, API details, and advanced topics.
|
433
507
|
* **Example Blueprints (`src/swarm/blueprints/README.md`):** A list and description of the example blueprints included with the framework, showcasing various features and integration patterns.
|
508
|
+
* **Blueprint Patterns and Configuration (`blueprints/README.md`):** Guidance on creating and configuring blueprints, including best practices and common pitfalls. **Start here for blueprint usage and extension.**
|
509
|
+
* **User Experience Standards (`UX.md`):** Guidelines for creating a consistent and user-friendly experience across blueprints and the Swarm framework.
|
434
510
|
|
435
511
|
---
|
436
512
|
|
@@ -0,0 +1,151 @@
|
|
1
|
+
import argparse
|
2
|
+
import asyncio
|
3
|
+
import sys
|
4
|
+
from swarm.blueprints.codey.blueprint_codey import CodeyBlueprint, CodeySpinner, display_operation_box
|
5
|
+
from swarm.extensions.cli.utils.async_input import AsyncInputHandler
|
6
|
+
|
7
|
+
def main():
|
8
|
+
parser = argparse.ArgumentParser(description="Codey: Approval workflow demo")
|
9
|
+
parser.add_argument("--message", type=str, help="User message to process", default=None)
|
10
|
+
args = parser.parse_args()
|
11
|
+
bp = CodeyBlueprint()
|
12
|
+
|
13
|
+
if args.message:
|
14
|
+
# Route through the agent's tool-calling logic
|
15
|
+
print(f"Assisting with: {args.message}")
|
16
|
+
import os
|
17
|
+
if os.environ.get('SWARM_TEST_MODE') == '1':
|
18
|
+
print('[DEBUG] SWARM_TEST_MODE=1 detected, using test spinner/progressive output')
|
19
|
+
agent = CodeyBlueprint(blueprint_id="test_codey")
|
20
|
+
print(f'[DEBUG] Forced agent: {agent.__class__.__name__}')
|
21
|
+
else:
|
22
|
+
bp = CodeyBlueprint()
|
23
|
+
agents = bp.create_agents()
|
24
|
+
agent = agents.get('codegen') or list(agents.values())[0]
|
25
|
+
print(f'[DEBUG] Using agent: {agent.__class__.__name__}')
|
26
|
+
messages = [{"role": "user", "content": args.message}]
|
27
|
+
if hasattr(agent, 'run'):
|
28
|
+
async def run_and_print():
|
29
|
+
results = []
|
30
|
+
async for chunk in agent.run(messages):
|
31
|
+
print(f'[DEBUG] Chunk: {chunk}')
|
32
|
+
spinner_state = chunk.get('spinner_state', '')
|
33
|
+
matches = chunk.get('matches', [])
|
34
|
+
progress = chunk.get('progress', None)
|
35
|
+
total = chunk.get('total', None)
|
36
|
+
# Output spinner state for testability
|
37
|
+
if spinner_state:
|
38
|
+
print(f"[SPINNER] {spinner_state}")
|
39
|
+
display_operation_box(
|
40
|
+
title="Code Search",
|
41
|
+
content=f"Matches so far: {len(matches)}",
|
42
|
+
result_count=len(matches),
|
43
|
+
params={},
|
44
|
+
progress_line=progress,
|
45
|
+
total_lines=total,
|
46
|
+
spinner_state=spinner_state,
|
47
|
+
emoji="💻"
|
48
|
+
)
|
49
|
+
results.append(chunk)
|
50
|
+
return results
|
51
|
+
try:
|
52
|
+
asyncio.run(run_and_print())
|
53
|
+
except Exception as e:
|
54
|
+
print(f"error: {e}")
|
55
|
+
return
|
56
|
+
else:
|
57
|
+
try:
|
58
|
+
print(bp.assist(args.message))
|
59
|
+
except Exception as e:
|
60
|
+
print(f"error: {e}")
|
61
|
+
return
|
62
|
+
|
63
|
+
print("[Codey Interactive CLI]")
|
64
|
+
print("Type your prompt and press Enter. Press Enter again to interrupt and send a new message.")
|
65
|
+
|
66
|
+
async def interact():
|
67
|
+
handler = AsyncInputHandler()
|
68
|
+
while True:
|
69
|
+
print("You: ", end="", flush=True)
|
70
|
+
user_prompt = ""
|
71
|
+
warned = False
|
72
|
+
while True:
|
73
|
+
inp = handler.get_input(timeout=0.1)
|
74
|
+
if inp == 'warn' and not warned:
|
75
|
+
print("\n[!] Press Enter again to interrupt and send a new message.", flush=True)
|
76
|
+
warned = True
|
77
|
+
elif inp and inp != 'warn':
|
78
|
+
user_prompt = inp
|
79
|
+
break
|
80
|
+
await asyncio.sleep(0.05)
|
81
|
+
if not user_prompt:
|
82
|
+
continue # Interrupted or empty
|
83
|
+
print(f"[You submitted]: {user_prompt}")
|
84
|
+
if user_prompt.strip().startswith("/codesearch"):
|
85
|
+
# Parse /codesearch <keyword> [path] [max_results]
|
86
|
+
parts = user_prompt.strip().split()
|
87
|
+
if len(parts) < 2:
|
88
|
+
print("Usage: /codesearch <keyword> [path] [max_results]")
|
89
|
+
continue
|
90
|
+
keyword = parts[1]
|
91
|
+
path = parts[2] if len(parts) > 2 else "."
|
92
|
+
try:
|
93
|
+
max_results = int(parts[3]) if len(parts) > 3 else 10
|
94
|
+
except Exception:
|
95
|
+
max_results = 10
|
96
|
+
code_search = bp.tool_registry.get_python_tool("code_search")
|
97
|
+
print("[Codey] Starting code search (progressive)...")
|
98
|
+
spinner = CodeySpinner()
|
99
|
+
spinner.start()
|
100
|
+
try:
|
101
|
+
for update in code_search(keyword, path, max_results):
|
102
|
+
display_operation_box(
|
103
|
+
title="Code Search",
|
104
|
+
content=f"Matches so far: {len(update.get('matches', []))}",
|
105
|
+
result_count=len(update.get('matches', [])),
|
106
|
+
params={k: v for k, v in update.items() if k not in {'matches', 'progress', 'total', 'truncated', 'done'}},
|
107
|
+
progress_line=update.get('progress'),
|
108
|
+
total_lines=update.get('total'),
|
109
|
+
spinner_state=spinner.current_spinner_state(),
|
110
|
+
emoji="💻"
|
111
|
+
)
|
112
|
+
finally:
|
113
|
+
spinner.stop()
|
114
|
+
print("[Codey] Code search complete.")
|
115
|
+
continue
|
116
|
+
spinner = CodeySpinner()
|
117
|
+
spinner.start()
|
118
|
+
try:
|
119
|
+
response = bp.assist(user_prompt)
|
120
|
+
finally:
|
121
|
+
spinner.stop()
|
122
|
+
for token in response.split():
|
123
|
+
print(f"Codey: {token}", end=" ", flush=True)
|
124
|
+
await asyncio.sleep(0.2)
|
125
|
+
print("\n")
|
126
|
+
display_operation_box(
|
127
|
+
title="Assist",
|
128
|
+
content=response,
|
129
|
+
result_count=1,
|
130
|
+
params={},
|
131
|
+
progress_line="",
|
132
|
+
total_lines=1,
|
133
|
+
spinner_state="",
|
134
|
+
emoji="💻"
|
135
|
+
)
|
136
|
+
|
137
|
+
try:
|
138
|
+
asyncio.run(interact())
|
139
|
+
except (KeyboardInterrupt, EOFError):
|
140
|
+
print("\nExiting Codey CLI.")
|
141
|
+
|
142
|
+
def print_splash():
|
143
|
+
bp = CodeyBlueprint(blueprint_id="codey")
|
144
|
+
print(bp.get_cli_splash())
|
145
|
+
|
146
|
+
if __name__ == "__main__":
|
147
|
+
import sys
|
148
|
+
# Only print splash if not running with --message
|
149
|
+
if not any(arg.startswith("--message") for arg in sys.argv):
|
150
|
+
print_splash()
|
151
|
+
main()
|