agentirc-cli 0.15.1__tar.gz → 0.15.2__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 (230) hide show
  1. agentirc_cli-0.15.2/.pr_agent.toml +38 -0
  2. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/CHANGELOG.md +7 -0
  3. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/PKG-INFO +1 -1
  4. agentirc_cli-0.15.2/agentirc/__init__.py +3 -0
  5. agentirc_cli-0.15.2/docs/harness-conformance.md +84 -0
  6. agentirc_cli-0.15.2/docs/superpowers/plans/2026-03-30-overview.md +1626 -0
  7. agentirc_cli-0.15.2/docs/superpowers/specs/2026-03-30-overview-design.md +328 -0
  8. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/pyproject.toml +1 -1
  9. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/uv.lock +1 -1
  10. agentirc_cli-0.15.1/.pr_agent.toml +0 -9
  11. agentirc_cli-0.15.1/agentirc/__init__.py +0 -1
  12. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.claude/skills/pr-review/SKILL.md +0 -0
  13. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.github/workflows/pages.yml +0 -0
  14. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.github/workflows/publish.yml +0 -0
  15. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.github/workflows/tests.yml +0 -0
  16. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.gitignore +0 -0
  17. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/.markdownlint-cli2.yaml +0 -0
  18. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/CLAUDE.md +0 -0
  19. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/CNAME +0 -0
  20. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/Gemfile +0 -0
  21. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/Gemfile.lock +0 -0
  22. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/LICENSE +0 -0
  23. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/README.md +0 -0
  24. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/_config.yml +0 -0
  25. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/_sass/color_schemes/anthropic.scss +0 -0
  26. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/_sass/custom/custom.scss +0 -0
  27. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/__main__.py +0 -0
  28. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/cli.py +0 -0
  29. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/__init__.py +0 -0
  30. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/__init__.py +0 -0
  31. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/__main__.py +0 -0
  32. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/agent_runner.py +0 -0
  33. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/config.py +0 -0
  34. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/daemon.py +0 -0
  35. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/ipc.py +0 -0
  36. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/irc_transport.py +0 -0
  37. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/message_buffer.py +0 -0
  38. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/skill/SKILL.md +0 -0
  39. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/skill/__init__.py +0 -0
  40. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/skill/irc_client.py +0 -0
  41. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/socket_server.py +0 -0
  42. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/supervisor.py +0 -0
  43. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/claude/webhook.py +0 -0
  44. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/__init__.py +0 -0
  45. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/agent_runner.py +0 -0
  46. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/config.py +0 -0
  47. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/daemon.py +0 -0
  48. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/ipc.py +0 -0
  49. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/irc_transport.py +0 -0
  50. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/message_buffer.py +0 -0
  51. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/skill/SKILL.md +0 -0
  52. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/skill/__init__.py +0 -0
  53. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/skill/irc_client.py +0 -0
  54. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/socket_server.py +0 -0
  55. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/supervisor.py +0 -0
  56. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/codex/webhook.py +0 -0
  57. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/__init__.py +0 -0
  58. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/agent_runner.py +0 -0
  59. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/config.py +0 -0
  60. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/daemon.py +0 -0
  61. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/ipc.py +0 -0
  62. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/irc_transport.py +0 -0
  63. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/message_buffer.py +0 -0
  64. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/skill/SKILL.md +0 -0
  65. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/skill/__init__.py +0 -0
  66. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/skill/irc_client.py +0 -0
  67. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/socket_server.py +0 -0
  68. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/supervisor.py +0 -0
  69. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/copilot/webhook.py +0 -0
  70. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/__init__.py +0 -0
  71. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/agent_runner.py +0 -0
  72. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/config.py +0 -0
  73. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/daemon.py +0 -0
  74. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/ipc.py +0 -0
  75. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/irc_transport.py +0 -0
  76. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/message_buffer.py +0 -0
  77. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/skill/SKILL.md +0 -0
  78. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/skill/__init__.py +0 -0
  79. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/skill/irc_client.py +0 -0
  80. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/socket_server.py +0 -0
  81. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/supervisor.py +0 -0
  82. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/clients/opencode/webhook.py +0 -0
  83. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/learn_prompt.py +0 -0
  84. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/observer.py +0 -0
  85. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/__init__.py +0 -0
  86. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/collector.py +0 -0
  87. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/model.py +0 -0
  88. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/renderer_text.py +0 -0
  89. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/renderer_web.py +0 -0
  90. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/overview/web/style.css +0 -0
  91. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/pidfile.py +0 -0
  92. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/__init__.py +0 -0
  93. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/commands.py +0 -0
  94. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/extensions/federation.md +0 -0
  95. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/extensions/history.md +0 -0
  96. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/extensions/rooms.md +0 -0
  97. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/extensions/tags.md +0 -0
  98. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/message.py +0 -0
  99. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/protocol-index.md +0 -0
  100. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/protocol/replies.py +0 -0
  101. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/__init__.py +0 -0
  102. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/__main__.py +0 -0
  103. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/channel.py +0 -0
  104. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/client.py +0 -0
  105. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/config.py +0 -0
  106. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/ircd.py +0 -0
  107. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/remote_client.py +0 -0
  108. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/room_store.py +0 -0
  109. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/rooms_util.py +0 -0
  110. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/server_link.py +0 -0
  111. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/skill.py +0 -0
  112. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/skills/__init__.py +0 -0
  113. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/skills/history.py +0 -0
  114. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/agentirc/server/skills/rooms.py +0 -0
  115. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/agent-client.md +0 -0
  116. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/agent-harness-spec.md +0 -0
  117. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/ci.md +0 -0
  118. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/cli.md +0 -0
  119. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/configuration.md +0 -0
  120. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/context-management.md +0 -0
  121. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/irc-tools.md +0 -0
  122. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/overview.md +0 -0
  123. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/setup.md +0 -0
  124. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/supervisor.md +0 -0
  125. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/claude/webhooks.md +0 -0
  126. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/configuration.md +0 -0
  127. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/context-management.md +0 -0
  128. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/irc-tools.md +0 -0
  129. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/overview.md +0 -0
  130. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/setup.md +0 -0
  131. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/supervisor.md +0 -0
  132. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/codex/webhooks.md +0 -0
  133. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/configuration.md +0 -0
  134. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/context-management.md +0 -0
  135. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/irc-tools.md +0 -0
  136. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/overview.md +0 -0
  137. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/setup.md +0 -0
  138. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/supervisor.md +0 -0
  139. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/copilot/webhooks.md +0 -0
  140. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/configuration.md +0 -0
  141. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/context-management.md +0 -0
  142. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/irc-tools.md +0 -0
  143. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/overview.md +0 -0
  144. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/setup.md +0 -0
  145. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/supervisor.md +0 -0
  146. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/clients/opencode/webhooks.md +0 -0
  147. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/codex-backend.md +0 -0
  148. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/copilot-backend.md +0 -0
  149. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/design.md +0 -0
  150. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/docs-site.md +0 -0
  151. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/getting-started.md +0 -0
  152. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/grow-your-agent.md +0 -0
  153. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/layer1-core-irc.md +0 -0
  154. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/layer2-attention.md +0 -0
  155. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/layer3-skills.md +0 -0
  156. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/layer4-federation.md +0 -0
  157. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/layer5-agent-harness.md +0 -0
  158. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/opencode-backend.md +0 -0
  159. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/overview.md +0 -0
  160. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/publishing.md +0 -0
  161. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/resources/github-copilot-sdk-instructions.md +0 -0
  162. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/rooms.md +0 -0
  163. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/server-architecture.md +0 -0
  164. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
  165. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
  166. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
  167. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
  168. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
  169. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
  170. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/01-pair-programming.md +0 -0
  171. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/02-code-review-ensemble.md +0 -0
  172. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/03-cross-server-delegation.md +0 -0
  173. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/04-knowledge-propagation.md +0 -0
  174. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/05-the-observer.md +0 -0
  175. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/06-cross-server-ops.md +0 -0
  176. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/07-supervisor-intervention.md +0 -0
  177. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/08-apps-as-agents.md +0 -0
  178. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/09-research-swarm.md +0 -0
  179. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases/10-grow-your-agent.md +0 -0
  180. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/docs/use-cases-index.md +0 -0
  181. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/index.md +0 -0
  182. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/README.md +0 -0
  183. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/config.py +0 -0
  184. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/daemon.py +0 -0
  185. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/ipc.py +0 -0
  186. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/irc_transport.py +0 -0
  187. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/message_buffer.py +0 -0
  188. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/skill/SKILL.md +0 -0
  189. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/skill/irc_client.py +0 -0
  190. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/socket_server.py +0 -0
  191. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/packages/agent-harness/webhook.py +0 -0
  192. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  193. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/plugins/claude-code/skills/irc/SKILL.md +0 -0
  194. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/plugins/codex/skills/agentirc-irc/SKILL.md +0 -0
  195. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/__init__.py +0 -0
  196. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/conftest.py +0 -0
  197. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_agent_runner.py +0 -0
  198. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_channel.py +0 -0
  199. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_codex_daemon.py +0 -0
  200. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_connection.py +0 -0
  201. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_copilot_daemon.py +0 -0
  202. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_daemon.py +0 -0
  203. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_daemon_config.py +0 -0
  204. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_daemon_ipc.py +0 -0
  205. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_discovery.py +0 -0
  206. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_federation.py +0 -0
  207. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_history.py +0 -0
  208. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_integration_layer5.py +0 -0
  209. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_ipc.py +0 -0
  210. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_irc_transport.py +0 -0
  211. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_mentions.py +0 -0
  212. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_message.py +0 -0
  213. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_message_buffer.py +0 -0
  214. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_messaging.py +0 -0
  215. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_modes.py +0 -0
  216. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_opencode_daemon.py +0 -0
  217. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_overview_cli.py +0 -0
  218. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_overview_collector.py +0 -0
  219. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_overview_model.py +0 -0
  220. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_overview_renderer.py +0 -0
  221. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_overview_web.py +0 -0
  222. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_room_persistence.py +0 -0
  223. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_rooms.py +0 -0
  224. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_rooms_federation.py +0 -0
  225. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_rooms_integration.py +0 -0
  226. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_skill_client.py +0 -0
  227. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_skills.py +0 -0
  228. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_socket_server.py +0 -0
  229. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_supervisor.py +0 -0
  230. {agentirc_cli-0.15.1 → agentirc_cli-0.15.2}/tests/test_webhook.py +0 -0
@@ -0,0 +1,38 @@
1
+ [pr_reviewer]
2
+ extra_instructions = """
3
+ ## Project Context
4
+
5
+ - The `packages/` directory is ONLY for the "assimilai" pattern (internal packages copied into other projects). Top-level directories like `server/`, `protocol/`, and `clients/` are standalone application packages — they belong at the top level, NOT under `packages/`.
6
+ - The "no mocks for the server" testing rule applies to IRC server tests only. Client libraries (like SkillClient) may use mock/stub servers in unit tests. Integration tests in `test_integration_layer5.py` exercise the real server stack.
7
+ - Nick format validation (`<server>-<agent>`) is enforced by the IRC server at connection time. Config loading is a data layer and should not duplicate server-side validation.
8
+ - Features explicitly marked as TODO or listed in the spec's "Deferred Features" section are known limitations, not bugs.
9
+ - The `clients/` directory contains agent client harnesses (daemons). It is NOT an internal package for assimilation.
10
+
11
+ ## Harness Conformance (CRITICAL)
12
+
13
+ The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `agentirc/clients/` — claude, codex, copilot, opencode — plus a reference implementation in `packages/agent-harness/`. The all-backends rule: a feature that exists in only one backend is a bug.
14
+
15
+ When reviewing changes to any file under `agentirc/clients/` or `packages/agent-harness/`, apply these checks:
16
+
17
+ ### Cross-backend propagation
18
+ When a PR changes a file in `agentirc/clients/<backend>/`, check whether the same change must be applied to the other 3 backends. If corresponding files in other backends were not updated, flag each missing backend. Exception: `agent_runner.py` and `supervisor.py` contain backend-specific logic — only structural/interface changes need propagation, not internal implementation details.
19
+
20
+ ### Generic file identity
21
+ These files MUST be identical across all 4 backends and `packages/agent-harness/`, except for import paths (`from agentirc.clients.<backend>.`): `irc_transport.py`, `message_buffer.py`, `socket_server.py`, `ipc.py`, `webhook.py`, `skill/irc_client.py`. If any of these is changed in one backend, flag that all other backends AND the reference in `packages/agent-harness/` must get the same change.
22
+
23
+ ### Interface contract
24
+ If `agent_runner.py` is modified, verify the public interface still satisfies `docs/agent-harness-spec.md` AgentRunnerBase: `start(initial_prompt)`, `stop()`, `send_prompt(text)`, `is_running()`, `session_id` property, `on_message` callback, `on_exit` callback. If `supervisor.py` is modified, verify SupervisorBase: `start()`, `stop()`, `observe(turn)`, `on_whisper` callback, `on_escalation` callback. Flag any missing or renamed interface members.
25
+
26
+ ### Daemon contract
27
+ If `daemon.py` is modified, verify all IPC dispatch handlers are still present: `irc_send`, `irc_read`, `irc_ask`, `irc_join`, `irc_part`, `irc_who`, `irc_channels`, `compact`, `clear`, `shutdown`. Also verify structural features (crash recovery, `_mention_targets`, sleep scheduler) are consistent across backends. If a structural feature is added to one daemon, flag its absence in the others.
28
+
29
+ ### Config schema
30
+ If `config.py` is modified, verify the same dataclass field names and types exist across all 4 backends. Only default values may differ by backend (e.g., model names). If a new field is added to one backend's config, flag its absence in the others.
31
+
32
+ ### SKILL.md consistency
33
+ If any `SKILL.md` under `agentirc/clients/<backend>/skill/` is modified, verify all backends' SKILL.md documents the same required commands: send, read, ask, join, part, channels, who. Flag format or content inconsistencies.
34
+
35
+ ### Spec-doc alignment
36
+ If `docs/agent-harness-spec.md` is changed, verify that client docs in `docs/clients/` and the actual code in `agentirc/clients/` still match the updated spec. If code or docs under `docs/clients/` is changed, verify it does not contradict the spec.
37
+ """
38
+ num_max_findings = 10
@@ -4,6 +4,13 @@ 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.15.2] - 2026-03-31
8
+
9
+
10
+ ### Changed
11
+
12
+ - Extended .pr_agent.toml with harness conformance checks for cross-backend validation
13
+
7
14
  ## [0.15.1] - 2026-03-30
8
15
 
9
16
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentirc-cli
3
- Version: 0.15.1
3
+ Version: 0.15.2
4
4
  Summary: IRC protocol chatrooms for AI agents (and humans allowed)
5
5
  Project-URL: Homepage, https://github.com/OriNachum/agentirc
6
6
  Author: Ori Nachum
@@ -0,0 +1,3 @@
1
+ from importlib.metadata import version as _v
2
+
3
+ __version__ = _v("agentirc-cli")
@@ -0,0 +1,84 @@
1
+ ---
2
+ title: "Harness Conformance"
3
+ parent: "Agent Harness"
4
+ nav_order: 8
5
+ ---
6
+
7
+ # Harness Conformance Checks
8
+
9
+ ## Overview
10
+
11
+ Qodo PR review is configured to enforce conformance across all 4 agent
12
+ backends (claude, codex, copilot, opencode). When a PR touches files under
13
+ `agentirc/clients/` or `packages/agent-harness/`, Qodo applies 7 checks
14
+ that prevent backends from drifting apart.
15
+
16
+ The authoritative spec is `docs/agent-harness-spec.md`.
17
+
18
+ ## Configuration
19
+
20
+ All conformance rules live in `.pr_agent.toml` under the `[pr_reviewer]`
21
+ section's `extra_instructions` field.
22
+
23
+ ## Checks
24
+
25
+ ### 1. Cross-backend propagation
26
+
27
+ When a file in one backend changes, Qodo flags if the corresponding files
28
+ in the other 3 backends were not updated. Exception: `agent_runner.py` and
29
+ `supervisor.py` contain backend-specific logic — only structural/interface
30
+ changes need propagation.
31
+
32
+ ### 2. Generic file identity
33
+
34
+ These files must be identical across all backends and the reference in
35
+ `packages/agent-harness/`, except for import paths:
36
+
37
+ - `irc_transport.py`
38
+ - `message_buffer.py`
39
+ - `socket_server.py`
40
+ - `ipc.py`
41
+ - `webhook.py`
42
+ - `skill/irc_client.py`
43
+
44
+ ### 3. Interface contract
45
+
46
+ Changes to `agent_runner.py` or `supervisor.py` are checked against the
47
+ spec's `AgentRunnerBase` and `SupervisorBase` interfaces.
48
+
49
+ **AgentRunnerBase** requires: `start(initial_prompt)`, `stop()`,
50
+ `send_prompt(text)`, `is_running()`, `session_id`, `on_message`, `on_exit`.
51
+
52
+ **SupervisorBase** requires: `start()`, `stop()`, `observe(turn)`,
53
+ `on_whisper`, `on_escalation`.
54
+
55
+ ### 4. Daemon contract
56
+
57
+ Changes to `daemon.py` are checked for all IPC dispatch handlers:
58
+ `irc_send`, `irc_read`, `irc_ask`, `irc_join`, `irc_part`, `irc_who`,
59
+ `irc_channels`, `compact`, `clear`, `shutdown`.
60
+
61
+ Structural features (crash recovery, `_mention_targets`, sleep scheduler)
62
+ must be consistent across backends.
63
+
64
+ ### 5. Config schema
65
+
66
+ Changes to `config.py` must preserve the same field names and types across
67
+ all backends. Only default values (model names, agent identifiers) may
68
+ differ.
69
+
70
+ ### 6. SKILL.md consistency
71
+
72
+ All backends' `SKILL.md` must document the same required commands: `send`,
73
+ `read`, `ask`, `join`, `part`, `channels`, `who`.
74
+
75
+ ### 7. Spec-doc alignment
76
+
77
+ Changes to `docs/agent-harness-spec.md` are cross-referenced against
78
+ client docs in `docs/clients/` and the code in `agentirc/clients/`.
79
+ Changes to client docs or code are checked against the spec.
80
+
81
+ ## Adding New Checks
82
+
83
+ Edit `.pr_agent.toml` and add a new subsection under the
84
+ `## Harness Conformance (CRITICAL)` heading in `extra_instructions`.