open-swarm 0.1.1745274976__tar.gz → 0.1.1745275181__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.
Files changed (427) hide show
  1. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/PKG-INFO +1 -1
  2. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/pyproject.toml +1 -1
  3. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/README.md +10 -0
  4. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/__init__.py +8 -0
  5. open_swarm-0.1.1745275181/src/swarm/blueprints/geese/blueprint_geese.py +384 -0
  6. open_swarm-0.1.1745274976/src/swarm/blueprints/geese/README.md +0 -97
  7. open_swarm-0.1.1745274976/src/swarm/blueprints/geese/blueprint_geese.py +0 -803
  8. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/.gitignore +0 -0
  9. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/LICENSE +0 -0
  10. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/README.md +0 -0
  11. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/__init__.py +0 -0
  12. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/agent/__init__.py +0 -0
  13. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/apps.py +0 -0
  14. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/auth.py +0 -0
  15. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/README.md +0 -0
  16. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/blueprint_audit_status.json +0 -0
  17. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chatbot/README.md +0 -0
  18. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chatbot/blueprint_chatbot.py +0 -0
  19. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chatbot/metadata.json +0 -0
  20. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chatbot/templates/chatbot/chatbot.html +0 -0
  21. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chucks_angels/README.md +0 -0
  22. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chucks_angels/blueprint_chucks_angels.py +0 -0
  23. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/chucks_angels/test_basic.py +0 -0
  24. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/CODEY.md +0 -0
  25. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/README.md +0 -0
  26. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/blueprint_codey.py +0 -0
  27. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/codey_cli.py +0 -0
  28. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/instructions.md +0 -0
  29. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/codey/metadata.json +0 -0
  30. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/common/operation_box_utils.py +0 -0
  31. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/digitalbutlers/README.md +0 -0
  32. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/digitalbutlers/__init__.py +0 -0
  33. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/digitalbutlers/blueprint_digitalbutlers.py +0 -0
  34. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/digitalbutlers/test_basic.py +0 -0
  35. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/divine_code/README.md +0 -0
  36. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/divine_code/__init__.py +0 -0
  37. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/divine_code/apps.py +0 -0
  38. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/divine_code/blueprint_divine_code.py +0 -0
  39. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/django_chat/apps.py +0 -0
  40. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/django_chat/blueprint_django_chat.py +0 -0
  41. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/django_chat/templates/django_chat/django_chat_webpage.html +0 -0
  42. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/django_chat/urls.py +0 -0
  43. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/django_chat/views.py +0 -0
  44. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/echocraft/blueprint_echocraft.py +0 -0
  45. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/flock/README.md +0 -0
  46. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/flock/__init__.py +0 -0
  47. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/flock/blueprint_flock.py +0 -0
  48. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/flock/test_basic.py +0 -0
  49. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/geese/geese_cli.py +0 -0
  50. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/jeeves/README.md +0 -0
  51. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/jeeves/blueprint_jeeves.py +0 -0
  52. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/jeeves/jeeves_cli.py +0 -0
  53. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/jeeves/metadata.json +0 -0
  54. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/mcp_demo/blueprint_mcp_demo.py +0 -0
  55. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/messenger/templates/messenger/messenger.html +0 -0
  56. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/mission_improbable/blueprint_mission_improbable.py +0 -0
  57. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/monkai_magic/blueprint_monkai_magic.py +0 -0
  58. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/nebula_shellz/blueprint_nebula_shellz.py +0 -0
  59. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/omniplex/blueprint_omniplex.py +0 -0
  60. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/poets/blueprint_poets.py +0 -0
  61. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/poets/poets_cli.py +0 -0
  62. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/rue_code/README.md +0 -0
  63. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/rue_code/__init__.py +0 -0
  64. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/rue_code/blueprint_rue_code.py +0 -0
  65. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/rue_code/rue_code_cli.py +0 -0
  66. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/apps.py +0 -0
  67. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/blueprint_family_ties.py +0 -0
  68. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/models.py +0 -0
  69. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/serializers.py +0 -0
  70. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/settings.py +0 -0
  71. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/urls.py +0 -0
  72. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/stewie/views.py +0 -0
  73. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/suggestion/blueprint_suggestion.py +0 -0
  74. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whinge_surf/README.md +0 -0
  75. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whinge_surf/__init__.py +0 -0
  76. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whinge_surf/blueprint_whinge_surf.py +0 -0
  77. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whinge_surf/whinge_surf_cli.py +0 -0
  78. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whiskeytango_foxtrot/__init__.py +0 -0
  79. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whiskeytango_foxtrot/apps.py +0 -0
  80. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/whiskeytango_foxtrot/blueprint_whiskeytango_foxtrot.py +0 -0
  81. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/zeus/__init__.py +0 -0
  82. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/zeus/apps.py +0 -0
  83. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/zeus/blueprint_zeus.py +0 -0
  84. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/blueprints/zeus/zeus_cli.py +0 -0
  85. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/cli/async_input.py +0 -0
  86. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/cli/async_input_demo.py +0 -0
  87. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/consumers.py +0 -0
  88. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/agent_utils.py +0 -0
  89. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/blueprint_base.py +0 -0
  90. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/blueprint_discovery.py +0 -0
  91. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/blueprint_runner.py +0 -0
  92. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/blueprint_utils.py +0 -0
  93. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/blueprint_ux.py +0 -0
  94. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/build_launchers.py +0 -0
  95. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/build_swarm_wrapper.py +0 -0
  96. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/__init__.py +0 -0
  97. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/commands/__init__.py +0 -0
  98. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/commands/blueprint_management.py +0 -0
  99. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/interactive_shell.py +0 -0
  100. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/main.py +0 -0
  101. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/utils/__init__.py +0 -0
  102. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/cli/utils/discover_commands.py +0 -0
  103. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/common_utils.py +0 -0
  104. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/config_loader.py +0 -0
  105. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/config_manager.py +0 -0
  106. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/output_utils.py +0 -0
  107. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/server_config.py +0 -0
  108. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/session_logger.py +0 -0
  109. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/setup_wizard.py +0 -0
  110. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/slash_commands.py +0 -0
  111. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/spinner.py +0 -0
  112. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/swarm_api.py +0 -0
  113. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/swarm_cli.py +0 -0
  114. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/swarm_wrapper.py +0 -0
  115. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/utils/__init__.py +0 -0
  116. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/core/utils/logger.py +0 -0
  117. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/__init__.py +0 -0
  118. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/__init__.py +0 -0
  119. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/cli_handler.py +0 -0
  120. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/django_utils.py +0 -0
  121. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/interactive_mode.py +0 -0
  122. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/modes/rest_mode.py +0 -0
  123. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/blueprint/runnable_blueprint.py +0 -0
  124. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/__init__.py +0 -0
  125. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/blueprint_runner.py +0 -0
  126. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/cli_args.py +0 -0
  127. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/__init__.py +0 -0
  128. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/blueprint_management.py +0 -0
  129. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/config_management.py +0 -0
  130. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/edit_config.py +0 -0
  131. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/list_blueprints.py +0 -0
  132. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/validate_env.py +0 -0
  133. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/commands/validate_envvars.py +0 -0
  134. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/interactive_shell.py +0 -0
  135. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/main.py +0 -0
  136. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/selection.py +0 -0
  137. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils/__init__.py +0 -0
  138. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils/async_input.py +0 -0
  139. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils/discover_commands.py +0 -0
  140. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils/env_setup.py +0 -0
  141. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils/prompt_user.py +0 -0
  142. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/cli/utils.py +0 -0
  143. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/config/__init__.py +0 -0
  144. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/config/config_loader.py +0 -0
  145. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/launchers/__init__.py +0 -0
  146. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/launchers/swarm_api.py +0 -0
  147. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/extensions/launchers/swarm_cli.py +0 -0
  148. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/management/__init__.py +0 -0
  149. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/management/commands/__init__.py +0 -0
  150. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/management/commands/runserver.py +0 -0
  151. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/messages.py +0 -0
  152. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/middleware.py +0 -0
  153. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/migrations/0010_initial_chat_models.py +0 -0
  154. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/migrations/__init__.py +0 -0
  155. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/models.py +0 -0
  156. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/permissions.py +0 -0
  157. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/repl/__init__.py +0 -0
  158. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/repl/repl.py +0 -0
  159. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/serializers.py +0 -0
  160. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/settings.py +0 -0
  161. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/fonts/fontawesome-webfont.ttf +0 -0
  162. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/fonts/fontawesome-webfont.woff +0 -0
  163. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/fonts/fontawesome-webfont.woff2 +0 -0
  164. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/markedjs/marked.min.js +0 -0
  165. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/adjustments-horizontal.svg +0 -0
  166. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/alert-triangle.svg +0 -0
  167. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/archive.svg +0 -0
  168. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/artboard.svg +0 -0
  169. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/automatic-gearbox.svg +0 -0
  170. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/box-multiple.svg +0 -0
  171. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/carambola.svg +0 -0
  172. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/copy.svg +0 -0
  173. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/download.svg +0 -0
  174. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/edit.svg +0 -0
  175. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/filled/carambola.svg +0 -0
  176. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/filled/paint.svg +0 -0
  177. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/headset.svg +0 -0
  178. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-collapse.svg +0 -0
  179. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/layout-sidebar-left-expand.svg +0 -0
  180. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-collapse.svg +0 -0
  181. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/layout-sidebar-right-expand.svg +0 -0
  182. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/message-chatbot.svg +0 -0
  183. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/message-star.svg +0 -0
  184. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/message-x.svg +0 -0
  185. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/message.svg +0 -0
  186. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/paperclip.svg +0 -0
  187. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/playlist-add.svg +0 -0
  188. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/robot.svg +0 -0
  189. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/search.svg +0 -0
  190. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/settings.svg +0 -0
  191. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/thumb-down.svg +0 -0
  192. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/contrib/tabler-icons/thumb-up.svg +0 -0
  193. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/css/dropdown.css +0 -0
  194. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/htmx/htmx.min.js +0 -0
  195. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/js/dropdown.js +0 -0
  196. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/base.css +0 -0
  197. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/chat-history.css +0 -0
  198. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/chat.css +0 -0
  199. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/chatbot.css +0 -0
  200. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/chatgpt.css +0 -0
  201. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/colors/corporate.css +0 -0
  202. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/colors/pastel.css +0 -0
  203. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/colors/tropical.css +0 -0
  204. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/general.css +0 -0
  205. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/layout.css +0 -0
  206. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/layouts/messenger-layout.css +0 -0
  207. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/layouts/minimalist-layout.css +0 -0
  208. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/layouts/mobile-layout.css +0 -0
  209. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/messages.css +0 -0
  210. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/messenger.css +0 -0
  211. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/settings.css +0 -0
  212. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/simple.css +0 -0
  213. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/slack.css +0 -0
  214. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/style.css +0 -0
  215. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/theme.css +0 -0
  216. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/css/toast.css +0 -0
  217. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/auth.js +0 -0
  218. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/blueprint.js +0 -0
  219. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/blueprintUtils.js +0 -0
  220. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/chatLogic.js +0 -0
  221. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/debug.js +0 -0
  222. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/events.js +0 -0
  223. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/main.js +0 -0
  224. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/messages.js +0 -0
  225. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/messengerLogic.js +0 -0
  226. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/apiService.js +0 -0
  227. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/blueprintManager.js +0 -0
  228. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/chatHistory.js +0 -0
  229. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/debugLogger.js +0 -0
  230. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/eventHandlers.js +0 -0
  231. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/messageProcessor.js +0 -0
  232. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/state.js +0 -0
  233. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/userInteractions.js +0 -0
  234. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/modules/validation.js +0 -0
  235. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/rendering.js +0 -0
  236. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/settings.js +0 -0
  237. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/sidebar.js +0 -0
  238. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/simpleLogic.js +0 -0
  239. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/slackLogic.js +0 -0
  240. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/splash.js +0 -0
  241. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/theme.js +0 -0
  242. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/toast.js +0 -0
  243. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/ui.js +0 -0
  244. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/js/validation.js +0 -0
  245. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/animated_spinner.svg +0 -0
  246. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/arrow_down.svg +0 -0
  247. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/arrow_left.svg +0 -0
  248. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/arrow_right.svg +0 -0
  249. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/arrow_up.svg +0 -0
  250. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/attach.svg +0 -0
  251. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/avatar.svg +0 -0
  252. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/canvas.svg +0 -0
  253. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/chat_history.svg +0 -0
  254. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/close.svg +0 -0
  255. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/copy.svg +0 -0
  256. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/dark_mode.svg +0 -0
  257. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/edit.svg +0 -0
  258. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/layout.svg +0 -0
  259. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/logo.svg +0 -0
  260. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/logout.svg +0 -0
  261. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/mobile.svg +0 -0
  262. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/new_chat.svg +0 -0
  263. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/not_visible.svg +0 -0
  264. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/plus.svg +0 -0
  265. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/run_code.svg +0 -0
  266. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/save.svg +0 -0
  267. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/search.svg +0 -0
  268. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/settings.svg +0 -0
  269. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/speaker.svg +0 -0
  270. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/stop.svg +0 -0
  271. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/thumbs_down.svg +0 -0
  272. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/thumbs_up.svg +0 -0
  273. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/toggle_off.svg +0 -0
  274. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/toggle_on.svg +0 -0
  275. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/trash.svg +0 -0
  276. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/undo.svg +0 -0
  277. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/visible.svg +0 -0
  278. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/static/rest_mode/svg/voice.svg +0 -0
  279. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/account/login.html +0 -0
  280. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/account/signup.html +0 -0
  281. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/base.html +0 -0
  282. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/chat.html +0 -0
  283. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/index.html +0 -0
  284. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/chat_sidebar.html +0 -0
  285. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/header.html +0 -0
  286. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/main_chat_pane.html +0 -0
  287. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/settings_dialog.html +0 -0
  288. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/splash_screen.html +0 -0
  289. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/components/top_bar.html +0 -0
  290. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/message_ui.html +0 -0
  291. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/rest_mode/slackbot.html +0 -0
  292. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/simple_blueprint_page.html +0 -0
  293. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/websocket_partials/final_system_message.html +0 -0
  294. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/websocket_partials/system_message.html +0 -0
  295. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/templates/websocket_partials/user_message.html +0 -0
  296. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/tool_executor.py +0 -0
  297. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/urls.py +0 -0
  298. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/util.py +0 -0
  299. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/ansi_box.py +0 -0
  300. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/color_utils.py +0 -0
  301. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/context_utils.py +0 -0
  302. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/disable_tracing.py +0 -0
  303. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/general_utils.py +0 -0
  304. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/log_utils.py +0 -0
  305. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/logger.py +0 -0
  306. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/logger_setup.py +0 -0
  307. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/message_sequence.py +0 -0
  308. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/message_utils.py +0 -0
  309. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/openai_patch.py +0 -0
  310. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/utils/redact.py +0 -0
  311. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/ux/ansi_box.py +0 -0
  312. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/ux/spinner.py +0 -0
  313. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/__init__.py +0 -0
  314. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/api_views.py +0 -0
  315. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/chat_views.py +0 -0
  316. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/core_views.py +0 -0
  317. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/message_views.py +0 -0
  318. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/model_views.py +0 -0
  319. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/utils.py +0 -0
  320. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/views/web_views.py +0 -0
  321. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/src/swarm/wsgi.py +0 -0
  322. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/__init__.py +0 -0
  323. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/api/conftest.py +0 -0
  324. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/api/test_chat_completions_auth_async.py +0 -0
  325. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/api/test_chat_completions_failing_async.py +0 -0
  326. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/api/test_chat_completions_validation_async.py +0 -0
  327. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_chatbot.py +0 -0
  328. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey.py +0 -0
  329. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_approval_mode.py +0 -0
  330. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_blueprint.py +0 -0
  331. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_blueprint_full.py +0 -0
  332. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_context.py +0 -0
  333. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_feedback.py +0 -0
  334. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_github.py +0 -0
  335. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_history.py +0 -0
  336. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_instructions.py +0 -0
  337. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_invalid_model.py +0 -0
  338. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_output.py +0 -0
  339. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_codey_spinner_and_box.py +0 -0
  340. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_dilbot_universe.py +0 -0
  341. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_divine_code.py +0 -0
  342. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_echocraft.py +0 -0
  343. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_family_ties.py +0 -0
  344. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_gaggle.py.disabled +0 -0
  345. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_geese.py +0 -0
  346. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_geese_agent_mcp_assignment.py +0 -0
  347. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_geese_spinner_and_box.py +0 -0
  348. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_gotchaman.py +0 -0
  349. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_jeeves.py +0 -0
  350. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_jeeves_progressive_tool.py +0 -0
  351. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_jeeves_spinner_and_box.py +0 -0
  352. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_mcp_demo.py +0 -0
  353. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_mission_improbable.py +0 -0
  354. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_monkai_magic.py +0 -0
  355. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_nebula_shellz.py +0 -0
  356. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_omniplex.py +0 -0
  357. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_poets.py +0 -0
  358. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_rue_code_cost.py +0 -0
  359. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_rue_code_spinner_and_box.py +0 -0
  360. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_suggestion.py +0 -0
  361. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_whinge_surf.py +0 -0
  362. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_whinge_surf_analysis.py +0 -0
  363. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_whinge_surf_spinner_and_box.py +0 -0
  364. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_whiskeytangofoxtrot.py +0 -0
  365. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_zeus.py +0 -0
  366. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_zeus_cli.py +0 -0
  367. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/blueprints/test_zeus_spinner_and_box.py +0 -0
  368. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/cli/test_cli_config.py +0 -0
  369. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/cli/test_launchers.py +0 -0
  370. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/cli/test_list_blueprints.py +0 -0
  371. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/conftest.py +0 -0
  372. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_blueprint_model_override.py +0 -0
  373. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_config_default_generation.py +0 -0
  374. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_config_discovery.py +0 -0
  375. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_config_loader.py +0 -0
  376. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_fallback_to_default_model.py +0 -0
  377. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_mcp_server_config.py +0 -0
  378. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/core/test_redact_sensitive_data.py +0 -0
  379. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/extensions/launchers/test_swarm_api_launcher.py +0 -0
  380. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_codey.py +0 -0
  381. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_commands.py +0 -0
  382. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_geese.py +0 -0
  383. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_jeeves.py +0 -0
  384. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_rue_code.py +0 -0
  385. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_whinge.py +0 -0
  386. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/integration/test_cli_zeus.py +0 -0
  387. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/manual/test_blueprintbase_init.py +0 -0
  388. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/swarm_config.json +0 -0
  389. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_chucks_angels.sh +0 -0
  390. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_codey_binary.py +0 -0
  391. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_digitalbutlers.sh +0 -0
  392. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_dilbot_universe.sh +0 -0
  393. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_divine_code.sh +0 -0
  394. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_django_chat.sh +0 -0
  395. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_echocraft.sh +0 -0
  396. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_family_ties.sh +0 -0
  397. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_flock.sh +0 -0
  398. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_gaggle.sh +0 -0
  399. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_gotchaman.sh +0 -0
  400. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_monkai-magic.sh +0 -0
  401. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_nebula_shellz.sh +0 -0
  402. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_omniplex.sh +0 -0
  403. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_poets.sh +0 -0
  404. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_rue-code.sh +0 -0
  405. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_rue_code_binary.py +0 -0
  406. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_suggestion.sh +0 -0
  407. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_university.sh +0 -0
  408. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_whinge_binary.py +0 -0
  409. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_whiskeytango_foxtrot.sh +0 -0
  410. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_zeus.sh +0 -0
  411. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/system/test_zeus_binary.py +0 -0
  412. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_blueprint_loading.py +0 -0
  413. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_cli_mode_selection.py +0 -0
  414. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_core_filter_duplicate_system_messages.py +0 -0
  415. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_core_filter_messages.py +0 -0
  416. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_core_truncate_message_history.py +0 -0
  417. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_core_update_null_content.py +0 -0
  418. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_dummy.py +0 -0
  419. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/test_truncate_message_history.py +0 -0
  420. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/blueprints/rue_code/test_rue_code_tools.py +0 -0
  421. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_ansi_box.py +0 -0
  422. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_blueprint_base_config.py +0 -0
  423. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_operation_box_utils.py +0 -0
  424. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_output_utils.py +0 -0
  425. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_redact.py +0 -0
  426. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_slash_commands.py +0 -0
  427. {open_swarm-0.1.1745274976 → open_swarm-0.1.1745275181}/tests/unit/test_spinner.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: open-swarm
3
- Version: 0.1.1745274976
3
+ Version: 0.1.1745275181
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
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "open-swarm"
7
- version = "0.1.1745274976"
7
+ version = "0.1.1745275181"
8
8
  description = "Open Swarm: Orchestrating AI Agent Swarms with Django"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -0,0 +1,10 @@
1
+ # Geese Blueprint
2
+
3
+ This is the README stub for the Geese blueprint.
4
+
5
+ - **Purpose:** Collaborative agent team for Open Swarm.
6
+ - **Required Env Vars:** _Document if any._
7
+ - **Tests:** See `tests/blueprints/test_geese.py` (if exists).
8
+ - **Usage:** `swarm-cli run geese --instruction "ping"`
9
+
10
+ _Expand this README with configuration, usage, and extension details as needed._
@@ -0,0 +1,8 @@
1
+ # Enhanced search/analysis UX: show ANSI/emoji boxes, summarize results, show result counts, display params, update line numbers, distinguish code/semantic
2
+ # This is a stub for geese blueprint search/analysis UX. (If this blueprint is implemented, the run method should follow the unified UX pattern.)
3
+
4
+ # No run method in __init__.py, but if/when a blueprint is implemented here, ensure:
5
+ # - Support for both code and semantic search (with clear output distinction)
6
+ # - ANSI/emoji boxes for search/analysis, with result counts, search params, and progress
7
+ # - Creative output box for non-search/agent output
8
+ # - Spinner states: 'Generating.', 'Generating..', 'Generating...', 'Running...'
@@ -0,0 +1,384 @@
1
+ import os
2
+ from dotenv import load_dotenv; load_dotenv(override=True)
3
+
4
+ import logging
5
+
6
+ logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(name)s: %(message)s')
7
+ import asyncio
8
+ import sys
9
+
10
+
11
+ def force_info_logging():
12
+ root = logging.getLogger()
13
+ for handler in root.handlers[:]:
14
+ root.removeHandler(handler)
15
+ loglevel = os.environ.get('LOGLEVEL', None)
16
+ debug_env = os.environ.get('SWARM_DEBUG', '0') == '1'
17
+ debug_arg = '--debug' in sys.argv
18
+ if debug_arg or debug_env or (loglevel and loglevel.upper() == 'DEBUG'):
19
+ level = logging.DEBUG
20
+ else:
21
+ level = logging.INFO
22
+ logging.basicConfig(level=level, format='[%(levelname)s] %(name)s: %(message)s')
23
+ root.setLevel(level)
24
+
25
+ force_info_logging()
26
+
27
+ import argparse
28
+
29
+ project_root = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
30
+ src_path = os.path.join(project_root, 'src')
31
+ if src_path not in sys.path: sys.path.insert(0, src_path)
32
+
33
+ try:
34
+ from openai import AsyncOpenAI
35
+
36
+ from agents import Agent, Runner, Tool, function_tool
37
+ from agents.mcp import MCPServer
38
+ from agents.models.interface import Model
39
+ from agents.models.openai_chatcompletions import OpenAIChatCompletionsModel
40
+ from swarm.core.blueprint_base import BlueprintBase
41
+ except ImportError as e:
42
+ print(f"ERROR: Import failed in blueprint_geese: {e}. Check 'openai-agents' install and project structure.")
43
+ print(f"sys.path: {sys.path}")
44
+ sys.exit(1)
45
+
46
+
47
+ def setup_logging():
48
+ parser = argparse.ArgumentParser(add_help=False)
49
+ parser.add_argument('--debug', action='store_true', help='Enable debug logging')
50
+ args, _ = parser.parse_known_args()
51
+ loglevel = os.environ.get('LOGLEVEL', None)
52
+ if args.debug or os.environ.get('SWARM_DEBUG', '0') == '1' or (loglevel and loglevel.upper() == 'DEBUG'):
53
+ logging.basicConfig(level=logging.DEBUG)
54
+ else:
55
+ logging.basicConfig(level=logging.INFO)
56
+ return args
57
+
58
+ args = setup_logging()
59
+
60
+ logger = logging.getLogger(__name__)
61
+
62
+ # --- Tools ---
63
+ def _create_story_outline(topic: str) -> str:
64
+ logger.info(f"Tool: Generating outline for: {topic}")
65
+ outline = f"Story Outline for '{topic}':\n1. Beginning: Introduce characters and setting.\n2. Middle: Develop conflict and rising action.\n3. Climax: The peak of the conflict.\n4. End: Resolution and aftermath."
66
+ logger.debug(f"Generated outline: {outline}")
67
+ return outline
68
+
69
+ @function_tool
70
+ def create_story_outline(topic: str) -> str:
71
+ """Generates a basic story outline based on a topic."""
72
+ return _create_story_outline(topic)
73
+
74
+ def _write_story_part(part_name: str, outline: str, previous_parts: str) -> str:
75
+ logger.info(f"Tool: Writing story part: {part_name}")
76
+ content = f"## {part_name}\n\nThis is the draft content for the '{part_name}' section. It follows:\n'{previous_parts[:100]}...' \nIt should align with the outline:\n'{outline}'"
77
+ logger.debug(f"Generated content for {part_name}: {content[:100]}...")
78
+ return content
79
+
80
+ @function_tool
81
+ def write_story_part(part_name: str, outline: str, previous_parts: str) -> str:
82
+ """Writes a specific part of the story using the outline and previous context."""
83
+ return _write_story_part(part_name, outline, previous_parts)
84
+
85
+ def _edit_story(full_story: str, edit_instructions: str) -> str:
86
+ logger.info(f"Tool: Editing story with instructions: {edit_instructions}")
87
+ edited_content = f"*** Edited Story Draft ***\n(Based on instructions: '{edit_instructions}')\n\n{full_story}\n\n[Editor's Notes: Minor tweaks applied for flow.]"
88
+ logger.debug("Editing complete.")
89
+ return edited_content
90
+
91
+ @function_tool
92
+ def edit_story(full_story: str, edit_instructions: str) -> str:
93
+ """Edits the complete story based on instructions."""
94
+ return _edit_story(full_story, edit_instructions)
95
+
96
+ from rich.console import Console
97
+ from rich.panel import Panel
98
+
99
+ from swarm.core.output_utils import (
100
+ print_search_progress_box,
101
+ setup_rotating_httpx_log,
102
+ )
103
+
104
+
105
+ class GeeseBlueprint(BlueprintBase):
106
+ def __init__(self, blueprint_id: str, config_path: str | None = None, **kwargs):
107
+ super().__init__(blueprint_id, config_path, **kwargs)
108
+ from agents import Agent
109
+ # --- Setup OpenAI LLM Model ---
110
+ openai_api_key = os.environ.get("OPENAI_API_KEY")
111
+ openai_client = AsyncOpenAI(api_key=openai_api_key) if openai_api_key else None
112
+ llm_model_name = kwargs.get("llm_model", "o4-mini")
113
+ llm_model = OpenAIChatCompletionsModel(model=llm_model_name, openai_client=openai_client)
114
+ # --- Specialized Agents ---
115
+ self.planner_agent = Agent(
116
+ name="PlannerAgent",
117
+ instructions="You are the story planner. Break down the story into sections and assign tasks.",
118
+ tools=[],
119
+ model=llm_model
120
+ ).as_tool("Planner", "Plan and outline stories.")
121
+ self.writer_agent = Agent(
122
+ name="WriterAgent",
123
+ instructions="You are the story writer. Write detailed sections of the story based on the plan.",
124
+ tools=[],
125
+ model=llm_model
126
+ ).as_tool("Writer", "Write story sections.")
127
+ self.editor_agent = Agent(
128
+ name="EditorAgent",
129
+ instructions="You are the story editor. Edit and improve the story for clarity and engagement.",
130
+ tools=[],
131
+ model=llm_model
132
+ ).as_tool("Editor", "Edit and improve stories.")
133
+ # --- Coordinator Agent ---
134
+ self.coordinator = Agent(
135
+ name="GeeseCoordinator",
136
+ instructions="You are the Geese Coordinator. Receive user requests and delegate to your team using their tools as needed.",
137
+ tools=[self.planner_agent, self.writer_agent, self.editor_agent],
138
+ model=llm_model
139
+ )
140
+ self.logger = logging.getLogger(__name__)
141
+ self._model_instance_cache = {}
142
+ self._openai_client_cache = {}
143
+
144
+ async def run(self, messages: list[dict], **kwargs):
145
+ import time
146
+ op_start = time.monotonic()
147
+ query = messages[-1]["content"] if messages else ""
148
+ params = {"query": query}
149
+ results = []
150
+ # Suppress noisy httpx logging unless --debug
151
+ import os
152
+ setup_rotating_httpx_log(debug_mode=os.environ.get('SWARM_DEBUG') == '1')
153
+ # --- Unified UX/Test Mode Spinner & Box Output ---
154
+ if os.environ.get("SWARM_TEST_MODE"):
155
+ from swarm.core.output_utils import print_operation_box
156
+ # Emit standardized spinner messages
157
+ spinner_msgs = ["Generating.", "Generating..", "Generating...", "Running...", "Generating... Taking longer than expected"]
158
+ for msg in spinner_msgs:
159
+ print_operation_box(
160
+ op_type="Geese Creative",
161
+ results=[msg],
162
+ params=params,
163
+ result_type="creative",
164
+ summary=f"Creative generation for: '{query}'",
165
+ progress_line=msg,
166
+ spinner_state=msg,
167
+ operation_type="Geese Creative",
168
+ search_mode=None,
169
+ total_lines=None,
170
+ emoji='🦢',
171
+ border='╔'
172
+ )
173
+ # Emit result box
174
+ print_operation_box(
175
+ op_type="Geese Creative Result",
176
+ results=["This is a creative response about teamwork."],
177
+ params=params,
178
+ result_type="creative",
179
+ summary=f"Creative generation complete for: '{query}'",
180
+ progress_line=None,
181
+ spinner_state=None,
182
+ operation_type="Geese Creative",
183
+ search_mode=None,
184
+ total_lines=None,
185
+ emoji='🦢',
186
+ border='╔'
187
+ )
188
+ yield {"messages": [{"role": "assistant", "content": "This is a creative response about teamwork."}]}
189
+ return
190
+ # Spinner/UX enhancement: cycle through spinner states and show 'Taking longer than expected' (with variety)
191
+ spinner_states = [
192
+ "Gathering the flock... 🦢",
193
+ "Herding geese... 🪿",
194
+ "Honking in unison... 🎶",
195
+ "Flying in formation... 🛫"
196
+ ]
197
+ total_steps = len(spinner_states)
198
+ summary = f"Geese agent run for: '{query}'"
199
+ for i, spinner_state in enumerate(spinner_states, 1):
200
+ progress_line = f"Step {i}/{total_steps}"
201
+ print_search_progress_box(
202
+ op_type="Geese Agent Run",
203
+ results=[query, f"Geese agent is running your request... (Step {i})"],
204
+ params=params,
205
+ result_type="geese",
206
+ summary=summary,
207
+ progress_line=progress_line,
208
+ spinner_state=spinner_state,
209
+ operation_type="Geese Run",
210
+ search_mode=None,
211
+ total_lines=total_steps,
212
+ emoji='🦢',
213
+ border='╔'
214
+ )
215
+ await asyncio.sleep(0.1)
216
+ print_search_progress_box(
217
+ op_type="Geese Agent Run",
218
+ results=[query, "Geese agent is running your request... (Taking longer than expected)", "Still honking..."],
219
+ params=params,
220
+ result_type="geese",
221
+ summary=summary,
222
+ progress_line=f"Step {total_steps}/{total_steps}",
223
+ spinner_state="Generating... Taking longer than expected 🦢",
224
+ operation_type="Geese Run",
225
+ search_mode=None,
226
+ total_lines=total_steps,
227
+ emoji='🦢',
228
+ border='╔'
229
+ )
230
+ await asyncio.sleep(0.2)
231
+
232
+ # Actually run the agent and get the LLM response
233
+ agent = self.coordinator
234
+ llm_response = ""
235
+ try:
236
+ from agents import Runner
237
+ response = await Runner.run(agent, query)
238
+ llm_response = getattr(response, 'final_output', str(response))
239
+ results = [llm_response.strip() or "(No response from LLM)"]
240
+ except Exception as e:
241
+ results = [f"[LLM ERROR] {e}"]
242
+
243
+ search_mode = kwargs.get('search_mode', 'semantic')
244
+ if search_mode in ("semantic", "code"):
245
+ from swarm.core.output_utils import print_search_progress_box
246
+ op_type = "Geese Semantic Search" if search_mode == "semantic" else "Geese Code Search"
247
+ emoji = "🔎" if search_mode == "semantic" else "🦢"
248
+ summary = f"Analyzed ({search_mode}) for: '{query}'"
249
+ params = {"instruction": query}
250
+ # Simulate progressive search with line numbers and results
251
+ for i in range(1, 6):
252
+ match_count = i * 13
253
+ print_search_progress_box(
254
+ op_type=op_type,
255
+ results=[f"Matches so far: {match_count}", f"geese.py:{26*i}", f"story.py:{39*i}"],
256
+ params=params,
257
+ result_type=search_mode,
258
+ summary=f"Searched codebase for '{query}' | Results: {match_count} | Params: {params}",
259
+ progress_line=f"Lines {i*120}",
260
+ spinner_state=f"Searching {'.' * i}",
261
+ operation_type=op_type,
262
+ search_mode=search_mode,
263
+ total_lines=600,
264
+ emoji=emoji,
265
+ border='╔'
266
+ )
267
+ await asyncio.sleep(0.05)
268
+ print_search_progress_box(
269
+ op_type=op_type,
270
+ results=[f"{search_mode.title()} search complete. Found 65 results for '{query}'.", "geese.py:130", "story.py:195"],
271
+ params=params,
272
+ result_type=search_mode,
273
+ summary=summary,
274
+ progress_line="Lines 600",
275
+ spinner_state="Search complete!",
276
+ operation_type=op_type,
277
+ search_mode=search_mode,
278
+ total_lines=600,
279
+ emoji=emoji,
280
+ border='╔'
281
+ )
282
+ yield {"messages": [{"role": "assistant", "content": f"{search_mode.title()} search complete. Found 65 results for '{query}'."}]}
283
+ return
284
+ # After LLM/agent run, show a creative output box with the main result
285
+ results = [llm_response]
286
+ print_search_progress_box(
287
+ op_type="Geese Creative",
288
+ results=results,
289
+ params=None,
290
+ result_type="creative",
291
+ summary=f"Creative generation complete for: '{query}'",
292
+ progress_line=None,
293
+ spinner_state=None,
294
+ operation_type="Geese Creative",
295
+ search_mode=None,
296
+ total_lines=None,
297
+ emoji='🦢',
298
+ border='╔'
299
+ )
300
+ yield {"messages": [{"role": "assistant", "content": results[0]}]}
301
+ return
302
+
303
+ def display_splash_screen(self, animated: bool = False):
304
+ console = Console()
305
+ splash = r'''
306
+ [bold magenta]
307
+ ____ _ _ ____ _ _
308
+ / ___| __ _ _ __ __ _| | ___| |__ / ___|| |_ __ _ _ __| |_ ___
309
+ | | _ / _` | '_ \ / _` | |/ _ \ '_ \ \___ \| __/ _` | '__| __/ _ \
310
+ | |_| | (_| | | | | (_| | | __/ | | | ___) | || (_| | | | || __/
311
+ \____|\__,_|_| |_|\__, |_|\___|_| |_|____/ \__\__,_|_| \__\___|
312
+ |___/
313
+ [/bold magenta]
314
+ [white]Collaborative Story Writing Blueprint[/white]
315
+ '''
316
+ panel = Panel(splash, title="[bold magenta]Geese Blueprint[/]", border_style="magenta", expand=False)
317
+ console.print(panel)
318
+ console.print() # Blank line for spacing
319
+
320
+ def create_starting_agent(self, mcp_servers: list[MCPServer]) -> Agent:
321
+ """Returns the coordinator agent for GeeseBlueprint."""
322
+ # mcp_servers not used in this blueprint
323
+ return self.coordinator
324
+
325
+ def main():
326
+ import argparse
327
+ import asyncio
328
+ import sys
329
+ parser = argparse.ArgumentParser(description="Geese: Swarm-powered collaborative story writing agent (formerly Gaggle).")
330
+ parser.add_argument("prompt", nargs="?", help="Prompt or story topic (quoted)")
331
+ parser.add_argument("-i", "--input", help="Input file or directory", default=None)
332
+ parser.add_argument("-o", "--output", help="Output file", default=None)
333
+ parser.add_argument("--model", help="Model name (codex, gpt, etc.)", default=None)
334
+ parser.add_argument("--temperature", type=float, help="Sampling temperature", default=0.1)
335
+ parser.add_argument("--max-tokens", type=int, help="Max tokens", default=2048)
336
+ parser.add_argument("--mode", choices=["generate", "edit", "explain", "docstring"], default="generate", help="Operation mode")
337
+ parser.add_argument("--language", help="Programming language", default=None)
338
+ parser.add_argument("--stop", help="Stop sequence", default=None)
339
+ parser.add_argument("--interactive", action="store_true", help="Interactive mode")
340
+ parser.add_argument("--version", action="version", version="geese 1.0.0")
341
+ args = parser.parse_args()
342
+
343
+ # Print help if no prompt and no input
344
+ if not args.prompt and not args.input:
345
+ parser.print_help()
346
+ sys.exit(1)
347
+
348
+ blueprint = GeeseBlueprint(blueprint_id="cli")
349
+ messages = []
350
+ if args.prompt:
351
+ messages.append({"role": "user", "content": args.prompt})
352
+ if args.input:
353
+ try:
354
+ with open(args.input) as f:
355
+ file_content = f.read()
356
+ messages.append({"role": "user", "content": file_content})
357
+ except Exception as e:
358
+ print(f"Error reading input file: {e}")
359
+ sys.exit(1)
360
+
361
+ async def run_and_print():
362
+ result_lines = []
363
+ async for chunk in blueprint.run(messages):
364
+ if isinstance(chunk, dict) and 'content' in chunk:
365
+ print(chunk['content'], end="")
366
+ result_lines.append(chunk['content'])
367
+ else:
368
+ print(chunk, end="")
369
+ result_lines.append(str(chunk))
370
+ return ''.join(result_lines)
371
+
372
+ if args.output:
373
+ try:
374
+ output = asyncio.run(run_and_print())
375
+ with open(args.output, "w") as f:
376
+ f.write(output)
377
+ print(f"\nOutput written to {args.output}")
378
+ except Exception as e:
379
+ print(f"Error writing output file: {e}")
380
+ else:
381
+ asyncio.run(run_and_print())
382
+
383
+ if __name__ == "__main__":
384
+ main()
@@ -1,97 +0,0 @@
1
- # Geese Blueprint
2
-
3
- **Geese** is special because it brings fun and whimsy to Open Swarm through animated bird prompts and playful interactions. Perfect for lightening the mood while you work!
4
-
5
- ## Special Feature
6
- - **Fun Bird Animation Prompts:** Enjoy unique, animated geese interactions and prompts that make your workflow more enjoyable.
7
-
8
- ---
9
-
10
- A collaborative story writing blueprint for Open Swarm that leverages multiple specialized agents to create, edit, and refine stories.
11
-
12
- ## Features
13
-
14
- ### Enhanced UI/UX
15
- - 🎨 Rich ANSI/emoji boxes for operation feedback
16
- - 📊 Dynamic result counts and search parameters
17
- - ⏳ Intelligent progress spinners with state tracking
18
- - ⚡ Real-time line number updates for long operations
19
- - 🔄 Smart status messages for extended operations
20
-
21
- ### Core Capabilities
22
- - 📋 Plan maintenance and tracking
23
- - 📝 Multi-agent collaboration:
24
- - Planner Agent: Story structure and task delegation
25
- - Writer Agent: Content creation and development
26
- - Editor Agent: Review and refinement
27
- - Coordinator Agent: Process orchestration
28
- - 🔍 Advanced search and analysis operations
29
- - 🎯 Error handling and reflection
30
-
31
- ## Usage
32
-
33
- ```bash
34
- # Basic story generation
35
- swarm geese "Write a story about a magical forest"
36
-
37
- # Interactive mode with file output
38
- swarm geese -i input.txt -o output.txt --interactive
39
-
40
- # Advanced mode with custom parameters
41
- swarm geese --model gpt-4 --temperature 0.7 --max-tokens 4096 "Write an epic fantasy"
42
- ```
43
-
44
- ## Configuration
45
-
46
- The blueprint supports various configuration options:
47
- - Model selection (e.g., gpt-3.5-turbo, gpt-4)
48
- - Temperature and token limits
49
- - Input/output file handling
50
- - Interactive mode for collaborative writing
51
-
52
- ## Operation Modes
53
-
54
- 1. **Generate Mode**: Create new stories from prompts
55
- 2. **Edit Mode**: Refine existing content
56
- 3. **Explain Mode**: Analyze story structure and elements
57
- 4. **Interactive Mode**: Real-time collaboration with the AI agents
58
-
59
- ## Implementation Details
60
-
61
- The blueprint uses a multi-agent architecture where each agent has specialized roles:
62
- - **Planner**: Structures stories and manages development flow
63
- - **Writer**: Creates content based on outlines and context
64
- - **Editor**: Reviews and improves content quality
65
- - **Coordinator**: Orchestrates the entire process
66
-
67
- ## Notifier Abstraction & Reflection (New)
68
-
69
- - All user-facing output (operation boxes, errors, info) is now handled through a Notifier abstraction, making it easy to redirect output to different UIs or for testing.
70
- - The blueprint always displays the current plan, outputs of all operations, and any errors encountered, providing full transparency and reflection for users and agents.
71
- - To customize output, pass a custom Notifier when instantiating the blueprint.
72
-
73
- ## Error Handling and Transparency
74
- - Errors from agent operations are surfaced directly to the user in a styled error box, not just logged.
75
- - The plan and tool outputs are always visible after each operation, mirroring the Goose agent’s reflection and transparency patterns.
76
-
77
- ## UI Elements
78
-
79
- ### Progress Indicators
80
- - Custom spinner states: "Generating.", "Generating..", "Generating..."
81
- - Extended operation indicator: "Taking longer than expected"
82
- - Operation-specific emoji indicators
83
-
84
- ### Information Boxes
85
- - 🔍 Search Results: Shows match counts and details
86
- - 📊 Analysis: Displays content evaluation
87
- - ✍️ Writing Progress: Shows current section status
88
- - ✏️ Editing Updates: Shows improvement details
89
- - 📋 Planning Status: Displays task completion
90
-
91
- ## Future Enhancements
92
-
93
- - [ ] Enhanced error recovery
94
- - [ ] Multi-format output support
95
- - [ ] Advanced style configuration
96
- - [ ] Custom agent templates
97
- - [ ] Collaborative mode improvements