agentirc-cli 0.19.0__tar.gz → 0.20.1__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 (247) hide show
  1. agentirc_cli-0.20.1/.flake8 +19 -0
  2. agentirc_cli-0.20.1/.github/workflows/security-checks.yml +84 -0
  3. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.gitignore +6 -0
  4. agentirc_cli-0.20.1/.pre-commit-config.yaml +42 -0
  5. agentirc_cli-0.20.1/.pylintrc +77 -0
  6. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/CHANGELOG.md +28 -0
  7. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/PKG-INFO +1 -1
  8. agentirc_cli-0.20.1/SECURITY.md +39 -0
  9. agentirc_cli-0.20.1/docs/SECURITY.md +113 -0
  10. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/pyproject.toml +40 -1
  11. agentirc_cli-0.20.1/sonar-project.properties +27 -0
  12. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/uv.lock +901 -1
  13. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.claude/skills/pr-review/SKILL.md +0 -0
  14. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.github/workflows/pages.yml +0 -0
  15. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.github/workflows/publish.yml +0 -0
  16. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.github/workflows/tests.yml +0 -0
  17. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.markdownlint-cli2.yaml +0 -0
  18. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/.pr_agent.toml +0 -0
  19. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/CLAUDE.md +0 -0
  20. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/CNAME +0 -0
  21. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/Gemfile +0 -0
  22. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/Gemfile.lock +0 -0
  23. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/LICENSE +0 -0
  24. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/README.md +0 -0
  25. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/_config.yml +0 -0
  26. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/_sass/color_schemes/anthropic.scss +0 -0
  27. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/_sass/custom/custom.scss +0 -0
  28. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/__init__.py +0 -0
  29. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/__main__.py +0 -0
  30. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/cli.py +0 -0
  31. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/__init__.py +0 -0
  32. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/__init__.py +0 -0
  33. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/agent_runner.py +0 -0
  34. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/config.py +0 -0
  35. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/daemon.py +0 -0
  36. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/ipc.py +0 -0
  37. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/irc_transport.py +0 -0
  38. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/message_buffer.py +0 -0
  39. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/skill/SKILL.md +0 -0
  40. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/skill/__init__.py +0 -0
  41. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/skill/irc_client.py +0 -0
  42. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/socket_server.py +0 -0
  43. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/supervisor.py +0 -0
  44. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/acp/webhook.py +0 -0
  45. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/__init__.py +0 -0
  46. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/__main__.py +0 -0
  47. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/agent_runner.py +0 -0
  48. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/config.py +0 -0
  49. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/daemon.py +0 -0
  50. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/ipc.py +0 -0
  51. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/irc_transport.py +0 -0
  52. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/message_buffer.py +0 -0
  53. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/skill/SKILL.md +0 -0
  54. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/skill/__init__.py +0 -0
  55. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/skill/irc_client.py +0 -0
  56. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/socket_server.py +0 -0
  57. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/supervisor.py +0 -0
  58. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/claude/webhook.py +0 -0
  59. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/__init__.py +0 -0
  60. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/agent_runner.py +0 -0
  61. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/config.py +0 -0
  62. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/daemon.py +0 -0
  63. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/ipc.py +0 -0
  64. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/irc_transport.py +0 -0
  65. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/message_buffer.py +0 -0
  66. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/skill/SKILL.md +0 -0
  67. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/skill/__init__.py +0 -0
  68. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/skill/irc_client.py +0 -0
  69. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/socket_server.py +0 -0
  70. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/supervisor.py +0 -0
  71. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/codex/webhook.py +0 -0
  72. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/__init__.py +0 -0
  73. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/agent_runner.py +0 -0
  74. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/config.py +0 -0
  75. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/daemon.py +0 -0
  76. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/ipc.py +0 -0
  77. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/irc_transport.py +0 -0
  78. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/message_buffer.py +0 -0
  79. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/skill/SKILL.md +0 -0
  80. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/skill/__init__.py +0 -0
  81. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/skill/irc_client.py +0 -0
  82. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/socket_server.py +0 -0
  83. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/supervisor.py +0 -0
  84. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/clients/copilot/webhook.py +0 -0
  85. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/credentials.py +0 -0
  86. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/learn_prompt.py +0 -0
  87. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/mesh_config.py +0 -0
  88. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/observer.py +0 -0
  89. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/__init__.py +0 -0
  90. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/collector.py +0 -0
  91. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/model.py +0 -0
  92. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/renderer_text.py +0 -0
  93. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/renderer_web.py +0 -0
  94. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/overview/web/style.css +0 -0
  95. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/persistence.py +0 -0
  96. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/pidfile.py +0 -0
  97. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/__init__.py +0 -0
  98. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/commands.py +0 -0
  99. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/extensions/federation.md +0 -0
  100. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/extensions/history.md +0 -0
  101. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/extensions/rooms.md +0 -0
  102. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/extensions/tags.md +0 -0
  103. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/extensions/threads.md +0 -0
  104. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/message.py +0 -0
  105. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/protocol-index.md +0 -0
  106. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/protocol/replies.py +0 -0
  107. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/__init__.py +0 -0
  108. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/__main__.py +0 -0
  109. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/channel.py +0 -0
  110. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/client.py +0 -0
  111. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/config.py +0 -0
  112. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/ircd.py +0 -0
  113. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/remote_client.py +0 -0
  114. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/room_store.py +0 -0
  115. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/rooms_util.py +0 -0
  116. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/server_link.py +0 -0
  117. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/skill.py +0 -0
  118. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/skills/__init__.py +0 -0
  119. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/skills/history.py +0 -0
  120. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/skills/rooms.py +0 -0
  121. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/skills/threads.py +0 -0
  122. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/server/thread_store.py +0 -0
  123. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/agentirc/skills/agentirc/SKILL.md +0 -0
  124. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/agent-client.md +0 -0
  125. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/agent-harness-spec.md +0 -0
  126. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/agentic-self-learn.md +0 -0
  127. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/ci.md +0 -0
  128. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/cli.md +0 -0
  129. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/acp/overview.md +0 -0
  130. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/configuration.md +0 -0
  131. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/context-management.md +0 -0
  132. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/irc-tools.md +0 -0
  133. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/overview.md +0 -0
  134. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/setup.md +0 -0
  135. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/supervisor.md +0 -0
  136. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/claude/webhooks.md +0 -0
  137. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/configuration.md +0 -0
  138. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/context-management.md +0 -0
  139. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/irc-tools.md +0 -0
  140. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/overview.md +0 -0
  141. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/setup.md +0 -0
  142. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/supervisor.md +0 -0
  143. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/codex/webhooks.md +0 -0
  144. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/configuration.md +0 -0
  145. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/context-management.md +0 -0
  146. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/irc-tools.md +0 -0
  147. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/overview.md +0 -0
  148. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/setup.md +0 -0
  149. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/supervisor.md +0 -0
  150. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/clients/copilot/webhooks.md +0 -0
  151. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/codex-backend.md +0 -0
  152. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/copilot-backend.md +0 -0
  153. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/design.md +0 -0
  154. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/docs-site.md +0 -0
  155. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/getting-started.md +0 -0
  156. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/grow-your-agent.md +0 -0
  157. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/harness-conformance.md +0 -0
  158. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/layer1-core-irc.md +0 -0
  159. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/layer2-attention.md +0 -0
  160. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/layer3-skills.md +0 -0
  161. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/layer4-federation.md +0 -0
  162. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/layer5-agent-harness.md +0 -0
  163. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/ops-tooling.md +0 -0
  164. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/overview.md +0 -0
  165. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/publishing.md +0 -0
  166. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/resources/github-copilot-sdk-instructions.md +0 -0
  167. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/rooms.md +0 -0
  168. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/server-architecture.md +0 -0
  169. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
  170. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
  171. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
  172. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
  173. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/plans/2026-04-02-conversation-threads.md +0 -0
  174. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
  175. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
  176. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/specs/2026-03-30-overview-design.md +0 -0
  177. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
  178. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +0 -0
  179. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/threads.md +0 -0
  180. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/01-pair-programming.md +0 -0
  181. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/02-code-review-ensemble.md +0 -0
  182. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/03-cross-server-delegation.md +0 -0
  183. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/04-knowledge-propagation.md +0 -0
  184. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/05-the-observer.md +0 -0
  185. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/06-cross-server-ops.md +0 -0
  186. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/07-supervisor-intervention.md +0 -0
  187. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/08-apps-as-agents.md +0 -0
  188. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/09-research-swarm.md +0 -0
  189. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases/10-grow-your-agent.md +0 -0
  190. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/docs/use-cases-index.md +0 -0
  191. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/index.md +0 -0
  192. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/README.md +0 -0
  193. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/config.py +0 -0
  194. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/daemon.py +0 -0
  195. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/ipc.py +0 -0
  196. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/irc_transport.py +0 -0
  197. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/message_buffer.py +0 -0
  198. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/skill/SKILL.md +0 -0
  199. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/skill/irc_client.py +0 -0
  200. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/socket_server.py +0 -0
  201. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/packages/agent-harness/webhook.py +0 -0
  202. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  203. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/plugins/claude-code/skills/agentirc/SKILL.md +0 -0
  204. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/plugins/claude-code/skills/irc/SKILL.md +0 -0
  205. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/plugins/codex/skills/agentirc-irc/SKILL.md +0 -0
  206. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/__init__.py +0 -0
  207. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/conftest.py +0 -0
  208. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_acp_daemon.py +0 -0
  209. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_agent_runner.py +0 -0
  210. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_channel.py +0 -0
  211. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_codex_daemon.py +0 -0
  212. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_connection.py +0 -0
  213. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_copilot_daemon.py +0 -0
  214. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_daemon.py +0 -0
  215. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_daemon_config.py +0 -0
  216. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_daemon_ipc.py +0 -0
  217. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_discovery.py +0 -0
  218. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_federation.py +0 -0
  219. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_history.py +0 -0
  220. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_integration_layer5.py +0 -0
  221. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_ipc.py +0 -0
  222. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_irc_transport.py +0 -0
  223. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_link_reconnect.py +0 -0
  224. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_mentions.py +0 -0
  225. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_mesh_config.py +0 -0
  226. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_message.py +0 -0
  227. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_message_buffer.py +0 -0
  228. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_messaging.py +0 -0
  229. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_modes.py +0 -0
  230. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_overview_cli.py +0 -0
  231. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_overview_collector.py +0 -0
  232. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_overview_model.py +0 -0
  233. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_overview_renderer.py +0 -0
  234. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_overview_web.py +0 -0
  235. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_persistence.py +0 -0
  236. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_room_persistence.py +0 -0
  237. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_rooms.py +0 -0
  238. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_rooms_federation.py +0 -0
  239. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_rooms_integration.py +0 -0
  240. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_setup_update_cli.py +0 -0
  241. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_skill_client.py +0 -0
  242. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_skills.py +0 -0
  243. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_socket_server.py +0 -0
  244. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_supervisor.py +0 -0
  245. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_thread_buffer.py +0 -0
  246. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_threads.py +0 -0
  247. {agentirc_cli-0.19.0 → agentirc_cli-0.20.1}/tests/test_webhook.py +0 -0
@@ -0,0 +1,19 @@
1
+ [flake8]
2
+ max-line-length = 100
3
+ exclude =
4
+ .git,
5
+ __pycache__,
6
+ .venv,
7
+ dist,
8
+ build,
9
+ .eggs,
10
+ packages
11
+ extend-ignore =
12
+ E203,
13
+ W503,
14
+ S101
15
+ per-file-ignores =
16
+ agentirc/credentials.py:S603,S607
17
+ agentirc/persistence.py:S603,S607
18
+ agentirc/cli.py:S603,S607
19
+ tests/*:S101
@@ -0,0 +1,84 @@
1
+ name: Security Checks
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+ schedule:
9
+ - cron: '0 0 * * 0' # Weekly on Sunday at midnight
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ security-scans:
17
+ name: Security Scans
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - uses: astral-sh/setup-uv@v4
23
+
24
+ - run: uv python install 3.12
25
+
26
+ - run: uv sync
27
+
28
+ - name: Run Bandit
29
+ run: uv run bandit -r agentirc/ -f json -o bandit-results.json -c pyproject.toml
30
+ continue-on-error: true
31
+
32
+ - name: Run Pylint
33
+ run: uv run pylint agentirc/ --rcfile=.pylintrc --output-format=json:pylint-results.json,text
34
+ continue-on-error: true
35
+
36
+ - name: Run Safety dependency check
37
+ run: uv run safety check --full-report --output json > safety-results.json
38
+ continue-on-error: true
39
+
40
+ - name: Upload Security Results
41
+ uses: actions/upload-artifact@v4
42
+ with:
43
+ name: security-results
44
+ path: |
45
+ bandit-results.json
46
+ pylint-results.json
47
+ safety-results.json
48
+
49
+ - name: Run test coverage
50
+ run: |
51
+ uv run pytest --cov=agentirc --cov-report=xml:coverage.xml --cov-report=term -v
52
+ continue-on-error: true
53
+
54
+ dependency-review:
55
+ name: Dependency Review
56
+ if: github.event_name == 'pull_request'
57
+ runs-on: ubuntu-latest
58
+ permissions:
59
+ contents: read
60
+ pull-requests: write
61
+ steps:
62
+ - uses: actions/checkout@v4
63
+
64
+ - name: Dependency Review
65
+ uses: actions/dependency-review-action@v4
66
+ with:
67
+ fail-on-severity: high
68
+
69
+ codeql-analysis:
70
+ name: CodeQL Analysis
71
+ runs-on: ubuntu-latest
72
+ permissions:
73
+ contents: read
74
+ security-events: write
75
+ steps:
76
+ - uses: actions/checkout@v4
77
+
78
+ - name: Initialize CodeQL
79
+ uses: github/codeql-action/init@v3
80
+ with:
81
+ languages: python
82
+
83
+ - name: Perform CodeQL Analysis
84
+ uses: github/codeql-action/analyze@v3
@@ -206,6 +206,12 @@ marimo/_static/
206
206
  marimo/_lsp/
207
207
  __marimo__/
208
208
 
209
+ # Security scan reports
210
+ bandit-results.json
211
+ pylint-results.json
212
+ safety-results.json
213
+ .sonar/
214
+
209
215
  # Superpowers & worktrees
210
216
  .superpowers/
211
217
  .worktrees/
@@ -0,0 +1,42 @@
1
+ repos:
2
+ - repo: https://github.com/pre-commit/pre-commit-hooks
3
+ rev: v4.4.0
4
+ hooks:
5
+ - id: trailing-whitespace
6
+ - id: end-of-file-fixer
7
+ - id: check-yaml
8
+ - id: check-added-large-files
9
+ - id: check-ast
10
+ - id: detect-private-key
11
+
12
+ - repo: local
13
+ hooks:
14
+ - id: flake8
15
+ name: flake8
16
+ entry: uv run flake8 --config=.flake8
17
+ language: system
18
+ types: [python]
19
+
20
+ - id: isort
21
+ name: isort
22
+ entry: uv run isort
23
+ language: system
24
+ types: [python]
25
+
26
+ - id: black
27
+ name: black
28
+ entry: uv run black
29
+ language: system
30
+ types: [python]
31
+
32
+ - id: bandit
33
+ name: bandit
34
+ entry: uv run bandit -c pyproject.toml
35
+ language: system
36
+ types: [python]
37
+
38
+ - id: pylint
39
+ name: pylint
40
+ entry: uv run pylint --rcfile=.pylintrc
41
+ language: system
42
+ types: [python]
@@ -0,0 +1,77 @@
1
+ [MASTER]
2
+ ignore=CVS
3
+ persistent=yes
4
+ load-plugins=
5
+
6
+ [MESSAGES CONTROL]
7
+ disable=
8
+ C0114, # missing-module-docstring
9
+ C0115, # missing-class-docstring
10
+ C0116, # missing-function-docstring
11
+ C0301, # line-too-long (handled by black)
12
+ C0303, # trailing-whitespace
13
+ R0801, # duplicate-code (assimilai pattern: backends share identical files)
14
+ R0903, # too-few-public-methods
15
+ R0913, # too-many-arguments
16
+ W0511, # fixme
17
+ W0718, # broad-exception-caught (async server/daemon must catch broadly)
18
+ W0719, # broad-exception-raised
19
+ W1202, # logging-format-interpolation
20
+ W1203, # logging-fstring-interpolation
21
+
22
+ [REPORTS]
23
+ output-format=text
24
+ reports=yes
25
+ evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
26
+
27
+ [VARIABLES]
28
+ init-import=no
29
+ dummy-variables-rgx=_$|dummy
30
+
31
+ [FORMAT]
32
+ max-line-length=100
33
+ ignore-long-lines=^\s*(# )?<?https?://\S+>?$
34
+ single-line-if-stmt=no
35
+ indent-string=' '
36
+ max-module-lines=1000
37
+
38
+ [SIMILARITIES]
39
+ min-similarity-lines=8
40
+ ignore-comments=yes
41
+ ignore-docstrings=yes
42
+ ignore-imports=yes
43
+
44
+ [BASIC]
45
+ good-names=i,j,k,ex,Run,_,e,f,fd,ws,ts,ok,ch,ip,op
46
+ bad-names=foo,bar,baz,toto,tutu,tata
47
+ function-rgx=[a-z_][a-z0-9_]{2,50}$
48
+ variable-rgx=[a-z_][a-z0-9_]{1,30}$
49
+ const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$
50
+ attr-rgx=[a-z_][a-z0-9_]{1,30}$
51
+ argument-rgx=[a-z_][a-z0-9_]{1,30}$
52
+ class-rgx=[A-Z_][a-zA-Z0-9]+$
53
+ inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$
54
+ no-docstring-rgx=^_
55
+
56
+ [DESIGN]
57
+ max-args=10
58
+ ignored-argument-names=_.*
59
+ max-locals=15
60
+ max-returns=6
61
+ max-branches=12
62
+ max-statements=50
63
+ max-parents=7
64
+ max-attributes=15
65
+ min-public-methods=2
66
+ max-public-methods=20
67
+
68
+ [CLASSES]
69
+ defining-attr-methods=__init__,__new__,setUp
70
+ valid-classmethod-first-arg=cls
71
+ valid-metaclass-classmethod-first-arg=mcs
72
+
73
+ [IMPORTS]
74
+ deprecated-modules=regsub,TERMIOS,Bastion,rexec
75
+
76
+ [EXCEPTIONS]
77
+ overgeneral-exceptions=builtins.BaseException
@@ -4,6 +4,34 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  Format follows [Keep a Changelog](https://keepachangelog.com/).
6
6
 
7
+ ## [0.20.1] - 2026-04-03
8
+
9
+
10
+ ### Changed
11
+
12
+ - SonarCloud uses Automatic Analysis instead of CI-based scanning — removes conflict and simplifies workflow
13
+
14
+ ### Fixed
15
+
16
+ - Remove SonarCloud CI step that conflicted with Automatic Analysis
17
+
18
+ ## [0.20.0] - 2026-04-03
19
+
20
+
21
+ ### Added
22
+
23
+ - Bandit SAST security scanning
24
+ - Pylint static code analysis
25
+ - Safety dependency vulnerability scanning
26
+ - CodeQL semantic analysis (GitHub-native)
27
+ - SonarCloud code quality and security integration
28
+ - Pre-commit hooks (flake8+bandit+bugbear, isort, black, pylint, detect-private-key)
29
+ - Security CI workflow (security-checks.yml)
30
+ - Dependency Review on PRs (fails on high severity)
31
+ - SECURITY.md vulnerability disclosure policy
32
+ - docs/SECURITY.md contributor security guidelines
33
+ - Code coverage enforcement in CI
34
+
7
35
  ## [0.19.0] - 2026-04-03
8
36
 
9
37
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentirc-cli
3
- Version: 0.19.0
3
+ Version: 0.20.1
4
4
  Summary: 🌱 The space your agents deserve — an autonomous agent mesh where AI agents live, collaborate, and grow
5
5
  Project-URL: Homepage, https://github.com/OriNachum/agentirc
6
6
  Author: Ori Nachum
@@ -0,0 +1,39 @@
1
+ # Security Policy
2
+
3
+ ## Reporting a Vulnerability
4
+
5
+ If you discover a security vulnerability in AgentIRC, please report it responsibly.
6
+
7
+ **Do not** open a public GitHub issue for security vulnerabilities.
8
+
9
+ ### How to Report
10
+
11
+ Please report security issues privately using one of the following methods:
12
+
13
+ - **GitHub Security Advisories**: [Report a vulnerability privately](../../security/advisories/new)
14
+ - **Email**: Contact the maintainer directly
15
+
16
+ Include:
17
+
18
+ - A description of the vulnerability
19
+ - Steps to reproduce the issue
20
+ - The potential impact
21
+
22
+ ### Response Timeline
23
+
24
+ - **Acknowledgment**: Within 48 hours
25
+ - **Fix timeline**: Within 7 days of acknowledgment
26
+ - **Disclosure**: Coordinated with the reporter after a fix is available
27
+
28
+ ## Security Measures
29
+
30
+ This project uses automated security scanning:
31
+
32
+ - **Bandit** — Python security vulnerability detection
33
+ - **Pylint** — Static code analysis
34
+ - **CodeQL** — GitHub-native semantic analysis
35
+ - **SonarCloud** — Comprehensive code quality and security
36
+ - **Safety** — Dependency vulnerability scanning
37
+ - **Dependency Review** — PR-level dependency checks
38
+
39
+ See [docs/SECURITY.md](docs/SECURITY.md) for full details on the security toolchain and contributor guidelines.
@@ -0,0 +1,113 @@
1
+ ---
2
+ title: Security
3
+ nav_order: 7
4
+ ---
5
+
6
+ # Security Scanning Setup
7
+
8
+ This project uses multiple security scanning tools to ensure code quality and security.
9
+
10
+ ## Automated Security Scans
11
+
12
+ The following security checks run automatically on pushes to main, pull requests, and weekly:
13
+
14
+ ### Bandit
15
+
16
+ [Bandit](https://bandit.readthedocs.io/) finds common security issues in Python code.
17
+
18
+ - Results are available as GitHub workflow artifacts
19
+ - Configuration in `pyproject.toml` under `[tool.bandit]`
20
+ - Suppressed checks: B101 (assert in daemon code), B104 (bind all interfaces — required for IRC server)
21
+
22
+ ### Pylint
23
+
24
+ [Pylint](https://www.pylint.org/) performs static code analysis for programming errors and coding standards.
25
+
26
+ - Configuration in `.pylintrc`
27
+ - Results are available as GitHub workflow artifacts
28
+ - Duplicate-code detection (R0801) is disabled due to the assimilai pattern (4 backends share identical files by design)
29
+
30
+ ### SonarCloud
31
+
32
+ [SonarCloud](https://sonarcloud.io/) provides comprehensive code quality and security analysis.
33
+
34
+ - Uses **Automatic Analysis** (SonarCloud-managed, not CI-based) — scans `main` and PRs automatically
35
+ - Configuration in `sonar-project.properties`
36
+ - Results available in the [SonarCloud dashboard](https://sonarcloud.io/summary/overall?id=OriNachum_AgentIRC)
37
+
38
+ ### CodeQL
39
+
40
+ GitHub-native semantic code analysis runs on every push and PR. Results appear in the repository's Security tab.
41
+
42
+ ### Safety
43
+
44
+ [Safety](https://safetycli.com/) scans dependencies for known vulnerabilities. Results are uploaded as workflow artifacts.
45
+
46
+ ### Dependency Review
47
+
48
+ On pull requests, GitHub's Dependency Review action checks for newly introduced vulnerable dependencies. Fails on high-severity vulnerabilities.
49
+
50
+ ## Local Development Setup
51
+
52
+ ### Pre-commit Hooks
53
+
54
+ To run security checks automatically before each commit:
55
+
56
+ ```bash
57
+ uv run pre-commit install
58
+ ```
59
+
60
+ The hooks will now run on each commit. To run all hooks manually:
61
+
62
+ ```bash
63
+ uv run pre-commit run --all-files
64
+ ```
65
+
66
+ ### Manual Security Scanning
67
+
68
+ Run tools individually:
69
+
70
+ ```bash
71
+ # Bandit — security vulnerability detection
72
+ uv run bandit -r agentirc/ -c pyproject.toml
73
+
74
+ # Pylint — code quality and error detection
75
+ uv run pylint agentirc/ --rcfile=.pylintrc
76
+
77
+ # Flake8 — style and security linting (includes bandit + bugbear plugins)
78
+ uv run flake8 agentirc/ --config=.flake8
79
+
80
+ # Safety — dependency vulnerability check
81
+ uv run safety check
82
+
83
+ # Coverage — test coverage report
84
+ uv run pytest --cov=agentirc --cov-report=term
85
+ ```
86
+
87
+ ## Security Best Practices
88
+
89
+ When contributing to this project:
90
+
91
+ 1. **No Hardcoded Secrets** — Use OS-native credential stores (see `agentirc/credentials.py`). Never commit passwords, API keys, or tokens.
92
+ 2. **Input Validation** — Validate and sanitize all external input, especially IRC protocol messages.
93
+ 3. **Subprocess Safety** — Use `subprocess.run()` with explicit argument lists. Never use `shell=True`.
94
+ 4. **Error Handling** — Catch specific exceptions where possible. Broad `except Exception` is acceptable in async daemon loops to prevent crashes, but log the error.
95
+ 5. **Secure Dependencies** — Keep dependencies updated. The Safety check in CI flags known vulnerabilities.
96
+ 6. **Federation Trust** — Respect the trust model: `+R` (local only) and `+S <server>` (selective sharing). Never relay messages that violate channel access control.
97
+
98
+ ## Reporting Security Issues
99
+
100
+ If you discover a security vulnerability, please do **not** open a public issue.
101
+
102
+ Report privately using one of:
103
+
104
+ - **GitHub Security Advisories**: [Report a vulnerability](https://github.com/OriNachum/AgentIRC/security/advisories/new)
105
+ - **Email**: Contact the maintainer directly
106
+
107
+ Include:
108
+
109
+ - Description of the vulnerability
110
+ - Steps to reproduce
111
+ - Impact assessment
112
+
113
+ We aim to acknowledge reports within 48 hours and provide a fix timeline within 7 days.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agentirc-cli"
3
- version = "0.19.0"
3
+ version = "0.20.1"
4
4
  description = "🌱 The space your agents deserve — an autonomous agent mesh where AI agents live, collaborate, and grow"
5
5
  readme = "README.md"
6
6
  license = "MIT"
@@ -48,4 +48,43 @@ copilot = ["github-copilot-sdk"]
48
48
  dev = [
49
49
  "pytest>=8.0",
50
50
  "pytest-asyncio>=0.25",
51
+ "pytest-cov>=4.1",
52
+ "bandit>=1.7.5",
53
+ "pylint>=2.17.0",
54
+ "flake8>=6.1",
55
+ "flake8-bandit>=4.1.1",
56
+ "flake8-bugbear>=23.7.10",
57
+ "coverage>=7.2.0",
58
+ "safety>=2.3.0",
59
+ "pre-commit>=3.5.0",
60
+ "isort>=5.12.0",
61
+ "black>=23.7.0",
51
62
  ]
63
+
64
+ [tool.coverage.run]
65
+ source = ["agentirc"]
66
+ omit = [
67
+ "agentirc/__pycache__/*",
68
+ ]
69
+
70
+ [tool.coverage.report]
71
+ fail_under = 50
72
+ show_missing = true
73
+ exclude_lines = [
74
+ "pragma: no cover",
75
+ "if __name__ == .__main__.",
76
+ "if TYPE_CHECKING:",
77
+ ]
78
+
79
+ [tool.isort]
80
+ profile = "black"
81
+ line_length = 100
82
+ known_first_party = ["agentirc"]
83
+
84
+ [tool.black]
85
+ line-length = 100
86
+ target-version = ["py312"]
87
+
88
+ [tool.bandit]
89
+ exclude_dirs = ["tests", "packages"]
90
+ skips = ["B101", "B104"]
@@ -0,0 +1,27 @@
1
+ sonar.projectKey=OriNachum_AgentIRC
2
+ sonar.projectName=AgentIRC
3
+ sonar.projectVersion=0.20.1
4
+
5
+ # Path to source directories
6
+ sonar.sources=agentirc
7
+ sonar.tests=tests
8
+
9
+ # Language
10
+ sonar.language=python
11
+ sonar.python.version=3.12
12
+
13
+ # Encoding of the source files
14
+ sonar.sourceEncoding=UTF-8
15
+
16
+ # Python coverage report
17
+ sonar.python.coverage.reportPaths=coverage.xml
18
+
19
+ # Exclude patterns
20
+ sonar.exclusions=**/packages/**,**/__pycache__/**,**/test_*.py
21
+
22
+ # Security-related settings
23
+ sonar.python.bandit.reportPaths=bandit-results.json
24
+ sonar.python.pylint.reportPaths=pylint-results.json
25
+
26
+ # Quality gate configuration
27
+ sonar.qualitygate.wait=true