agentirc-cli 0.20.1__tar.gz → 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.claude/skills/pr-review/SKILL.md +3 -3
- agentirc_cli-1.0.0/.flake8 +37 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.github/workflows/publish.yml +37 -8
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.github/workflows/security-checks.yml +3 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.github/workflows/tests.yml +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.pre-commit-config.yaml +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.pylintrc +10 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/CHANGELOG.md +29 -44
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/CLAUDE.md +4 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/PKG-INFO +23 -22
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/README.md +19 -19
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/_config.yml +5 -5
- agentirc_cli-1.0.0/culture/__init__.py +10 -0
- agentirc_cli-1.0.0/culture/__main__.py +6 -0
- agentirc_cli-1.0.0/culture/bots/bot.py +148 -0
- agentirc_cli-1.0.0/culture/bots/bot_manager.py +102 -0
- agentirc_cli-1.0.0/culture/bots/config.py +98 -0
- agentirc_cli-1.0.0/culture/bots/http_listener.py +84 -0
- agentirc_cli-1.0.0/culture/bots/template_engine.py +63 -0
- agentirc_cli-1.0.0/culture/bots/virtual_client.py +193 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/cli.py +526 -196
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/agent_runner.py +21 -16
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/config.py +18 -9
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/daemon.py +116 -90
- {agentirc_cli-0.20.1/agentirc/clients/copilot → agentirc_cli-1.0.0/culture/clients/acp}/ipc.py +4 -1
- {agentirc_cli-0.20.1/agentirc/clients/claude → agentirc_cli-1.0.0/culture/clients/acp}/irc_transport.py +14 -7
- {agentirc_cli-0.20.1/agentirc/clients/claude → agentirc_cli-1.0.0/culture/clients/acp}/message_buffer.py +3 -5
- agentirc_cli-1.0.0/culture/clients/acp/skill/SKILL.md +69 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/skill/irc_client.py +15 -18
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/socket_server.py +5 -3
- {agentirc_cli-0.20.1/agentirc/clients/claude → agentirc_cli-1.0.0/culture/clients/acp}/supervisor.py +12 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/acp/webhook.py +11 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/__main__.py +9 -9
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/agent_runner.py +6 -8
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/config.py +18 -9
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/daemon.py +108 -85
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/ipc.py +4 -1
- {agentirc_cli-0.20.1/agentirc/clients/copilot → agentirc_cli-1.0.0/culture/clients/claude}/irc_transport.py +14 -7
- {agentirc_cli-0.20.1/agentirc/clients/codex → agentirc_cli-1.0.0/culture/clients/claude}/message_buffer.py +3 -5
- {agentirc_cli-0.20.1/plugins/claude-code/skills/irc → agentirc_cli-1.0.0/culture/clients/claude/skill}/SKILL.md +18 -18
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/skill/irc_client.py +14 -17
- {agentirc_cli-0.20.1/agentirc/clients/codex → agentirc_cli-1.0.0/culture/clients/claude}/socket_server.py +5 -3
- {agentirc_cli-0.20.1/agentirc/clients/acp → agentirc_cli-1.0.0/culture/clients/claude}/supervisor.py +12 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/claude/webhook.py +11 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/agent_runner.py +27 -19
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/config.py +18 -9
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/daemon.py +110 -90
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/ipc.py +4 -1
- {agentirc_cli-0.20.1/agentirc/clients/acp → agentirc_cli-1.0.0/culture/clients/codex}/irc_transport.py +14 -7
- {agentirc_cli-0.20.1/agentirc/clients/copilot → agentirc_cli-1.0.0/culture/clients/codex}/message_buffer.py +3 -5
- agentirc_cli-1.0.0/culture/clients/codex/skill/SKILL.md +69 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/skill/irc_client.py +15 -18
- {agentirc_cli-0.20.1/agentirc/clients/copilot → agentirc_cli-1.0.0/culture/clients/codex}/socket_server.py +5 -3
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/supervisor.py +9 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/codex/webhook.py +11 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/agent_runner.py +5 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/config.py +18 -9
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/daemon.py +111 -91
- agentirc_cli-1.0.0/culture/clients/copilot/ipc.py +41 -0
- {agentirc_cli-0.20.1/agentirc/clients/codex → agentirc_cli-1.0.0/culture/clients/copilot}/irc_transport.py +14 -7
- agentirc_cli-1.0.0/culture/clients/copilot/message_buffer.py +63 -0
- agentirc_cli-1.0.0/culture/clients/copilot/skill/SKILL.md +69 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/skill/irc_client.py +15 -18
- {agentirc_cli-0.20.1/agentirc/clients/claude → agentirc_cli-1.0.0/culture/clients/copilot}/socket_server.py +5 -3
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/supervisor.py +4 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/clients/copilot/webhook.py +11 -6
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/credentials.py +64 -34
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/learn_prompt.py +35 -31
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/mesh_config.py +4 -4
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/observer.py +6 -3
- agentirc_cli-1.0.0/culture/overview/__init__.py +1 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/overview/collector.py +78 -32
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/overview/model.py +20 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/overview/renderer_text.py +28 -4
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/overview/renderer_web.py +26 -14
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/persistence.py +30 -21
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/pidfile.py +2 -2
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/extensions/history.md +7 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/extensions/threads.md +10 -10
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/__main__.py +6 -8
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/channel.py +11 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/client.py +56 -128
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/config.py +3 -2
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/ircd.py +71 -41
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/remote_client.py +3 -3
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/room_store.py +3 -2
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/rooms_util.py +2 -1
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/server_link.py +58 -77
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/skill.py +3 -3
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/skills/history.py +5 -7
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/skills/rooms.py +275 -192
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/skills/threads.py +198 -148
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/server/thread_store.py +2 -0
- {agentirc_cli-0.20.1/agentirc/skills/agentirc → agentirc_cli-1.0.0/culture/skills/culture}/SKILL.md +58 -58
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/SECURITY.md +7 -7
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/agent-harness-spec.md +10 -10
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/agentic-self-learn.md +17 -17
- agentirc_cli-1.0.0/docs/bots.md +129 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/cli.md +77 -77
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/acp/overview.md +7 -7
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/configuration.md +15 -15
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/irc-tools.md +18 -18
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/overview.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/setup.md +23 -23
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/supervisor.md +4 -4
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/webhooks.md +6 -6
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/configuration.md +12 -12
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/irc-tools.md +18 -18
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/overview.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/setup.md +18 -18
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/configuration.md +13 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/irc-tools.md +21 -21
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/overview.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/setup.md +21 -21
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/supervisor.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/design.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/docs-site.md +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/getting-started.md +43 -43
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/grow-your-agent.md +17 -17
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/harness-conformance.md +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/layer1-core-irc.md +3 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/layer2-attention.md +5 -5
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/layer4-federation.md +7 -7
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/layer5-agent-harness.md +4 -4
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/ops-tooling.md +45 -45
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/overview.md +9 -9
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/publishing.md +6 -6
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/resources/github-copilot-sdk-instructions.md +24 -20
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/rooms.md +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/server-architecture.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +53 -52
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +87 -87
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/plans/2026-03-30-overview.md +87 -78
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/plans/2026-03-30-rooms-management.md +149 -109
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/plans/2026-04-02-conversation-threads.md +91 -91
- agentirc_cli-1.0.0/docs/superpowers/plans/2026-04-02-ops-tooling.md +1763 -0
- agentirc_cli-1.0.0/docs/superpowers/plans/2026-04-04-culture-rename.md +801 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/specs/2026-03-19-agentirc-design.md +13 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +13 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/specs/2026-03-30-overview-design.md +23 -23
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +11 -11
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +11 -11
- agentirc_cli-1.0.0/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +373 -0
- agentirc_cli-1.0.0/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +353 -0
- agentirc_cli-1.0.0/docs/superpowers/specs/2026-04-04-culture-rename-design.md +177 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/01-pair-programming.md +24 -24
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/03-cross-server-delegation.md +13 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/04-knowledge-propagation.md +13 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/05-the-observer.md +16 -16
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/08-apps-as-agents.md +10 -10
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/10-grow-your-agent.md +10 -10
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases-index.md +1 -1
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/index.md +9 -9
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/README.md +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/config.py +18 -9
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/daemon.py +75 -50
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/irc_transport.py +12 -5
- agentirc_cli-1.0.0/packages/agent-harness/skill/SKILL.md +50 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/skill/irc_client.py +15 -18
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/socket_server.py +5 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/packages/agent-harness/webhook.py +11 -6
- agentirc_cli-1.0.0/plugins/claude-code/skills/culture/SKILL.md +288 -0
- {agentirc_cli-0.20.1/agentirc/clients/claude/skill → agentirc_cli-1.0.0/plugins/claude-code/skills/irc}/SKILL.md +18 -18
- agentirc_cli-1.0.0/plugins/codex/skills/culture-irc/SKILL.md +69 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/pyproject.toml +16 -15
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/sonar-project.properties +4 -4
- agentirc_cli-1.0.0/tests/__init__.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/conftest.py +34 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_acp_daemon.py +27 -13
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_agent_runner.py +38 -20
- agentirc_cli-1.0.0/tests/test_bot.py +174 -0
- agentirc_cli-1.0.0/tests/test_bot_config.py +98 -0
- agentirc_cli-1.0.0/tests/test_bot_manager.py +147 -0
- agentirc_cli-1.0.0/tests/test_bots_integration.py +161 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_channel.py +5 -5
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_codex_daemon.py +11 -6
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_copilot_daemon.py +21 -12
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_daemon.py +14 -8
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_daemon_config.py +50 -38
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_daemon_ipc.py +3 -5
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_federation.py +47 -27
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_history.py +1 -3
- agentirc_cli-1.0.0/tests/test_http_listener.py +147 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_integration_layer5.py +12 -8
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_ipc.py +4 -5
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_irc_transport.py +47 -17
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_link_reconnect.py +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_mesh_config.py +15 -6
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_message.py +8 -8
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_message_buffer.py +4 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_overview_cli.py +8 -4
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_overview_collector.py +4 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_overview_model.py +25 -11
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_overview_renderer.py +57 -22
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_overview_web.py +26 -12
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_persistence.py +32 -30
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_room_persistence.py +6 -8
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_rooms.py +17 -20
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_setup_update_cli.py +5 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_skill_client.py +14 -5
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_skills.py +2 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_socket_server.py +9 -3
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_supervisor.py +75 -39
- agentirc_cli-1.0.0/tests/test_template_engine.py +80 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_thread_buffer.py +1 -2
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_threads.py +5 -4
- agentirc_cli-1.0.0/tests/test_virtual_client.py +176 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_webhook.py +22 -12
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/uv.lock +539 -54
- agentirc_cli-0.20.1/.flake8 +0 -19
- agentirc_cli-0.20.1/agentirc/__init__.py +0 -3
- agentirc_cli-0.20.1/agentirc/__main__.py +0 -5
- agentirc_cli-0.20.1/agentirc/clients/acp/skill/SKILL.md +0 -69
- agentirc_cli-0.20.1/agentirc/clients/codex/skill/SKILL.md +0 -69
- agentirc_cli-0.20.1/agentirc/clients/copilot/skill/SKILL.md +0 -69
- agentirc_cli-0.20.1/agentirc/overview/__init__.py +0 -1
- agentirc_cli-0.20.1/packages/agent-harness/ipc.py +0 -38
- agentirc_cli-0.20.1/packages/agent-harness/message_buffer.py +0 -65
- agentirc_cli-0.20.1/packages/agent-harness/skill/SKILL.md +0 -50
- agentirc_cli-0.20.1/plugins/claude-code/skills/agentirc/SKILL.md +0 -218
- agentirc_cli-0.20.1/plugins/codex/skills/agentirc-irc/SKILL.md +0 -69
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.github/workflows/pages.yml +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.gitignore +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.markdownlint-cli2.yaml +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/.pr_agent.toml +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/CNAME +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/Gemfile +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/Gemfile.lock +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/LICENSE +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/SECURITY.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/_sass/color_schemes/anthropic.scss +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/_sass/custom/custom.scss +0 -0
- {agentirc_cli-0.20.1/agentirc/clients → agentirc_cli-1.0.0/culture/bots}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/acp → agentirc_cli-1.0.0/culture/clients}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/acp/skill → agentirc_cli-1.0.0/culture/clients/acp}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/claude → agentirc_cli-1.0.0/culture/clients/acp/skill}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/claude/skill → agentirc_cli-1.0.0/culture/clients/claude}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/codex → agentirc_cli-1.0.0/culture/clients/claude/skill}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/codex/skill → agentirc_cli-1.0.0/culture/clients/codex}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/copilot → agentirc_cli-1.0.0/culture/clients/codex/skill}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/copilot/skill → agentirc_cli-1.0.0/culture/clients/copilot}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc/protocol → agentirc_cli-1.0.0/culture/clients/copilot/skill}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/overview/web/style.css +0 -0
- {agentirc_cli-0.20.1/agentirc/server → agentirc_cli-1.0.0/culture/protocol}/__init__.py +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/commands.py +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/extensions/federation.md +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/extensions/rooms.md +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/extensions/tags.md +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/message.py +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/protocol-index.md +0 -0
- {agentirc_cli-0.20.1/agentirc → agentirc_cli-1.0.0/culture}/protocol/replies.py +0 -0
- {agentirc_cli-0.20.1/agentirc/server/skills → agentirc_cli-1.0.0/culture/server}/__init__.py +0 -0
- {agentirc_cli-0.20.1/tests → agentirc_cli-1.0.0/culture/server/skills}/__init__.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/agent-client.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/ci.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/claude/context-management.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/context-management.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/supervisor.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/codex/webhooks.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/context-management.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/clients/copilot/webhooks.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/codex-backend.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/copilot-backend.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/layer3-skills.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/threads.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/02-code-review-ensemble.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/06-cross-server-ops.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/07-supervisor-intervention.md +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/docs/use-cases/09-research-swarm.md +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/acp → agentirc_cli-1.0.0/packages/agent-harness}/ipc.py +0 -0
- {agentirc_cli-0.20.1/agentirc/clients/acp → agentirc_cli-1.0.0/packages/agent-harness}/message_buffer.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_connection.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_discovery.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_mentions.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_messaging.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_modes.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_rooms_federation.py +0 -0
- {agentirc_cli-0.20.1 → agentirc_cli-1.0.0}/tests/test_rooms_integration.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pr-review
|
|
3
3
|
description: >
|
|
4
|
-
Full PR workflow for
|
|
4
|
+
Full PR workflow for culture: branch, commit, push, create PR, wait for
|
|
5
5
|
automated reviewers, fetch comments, fix or pushback, reply, resolve threads.
|
|
6
6
|
Use when: creating PRs, handling review feedback, or the user says
|
|
7
7
|
"create PR", "review comments", "address feedback", or "resolve threads".
|
|
@@ -9,7 +9,7 @@ description: >
|
|
|
9
9
|
|
|
10
10
|
# PR Review Workflow
|
|
11
11
|
|
|
12
|
-
Complete pull request lifecycle for the
|
|
12
|
+
Complete pull request lifecycle for the culture project. Follow every step
|
|
13
13
|
in order.
|
|
14
14
|
|
|
15
15
|
## Step 1 — Branch
|
|
@@ -179,7 +179,7 @@ Report completion back to the IRC channel:
|
|
|
179
179
|
|
|
180
180
|
```bash
|
|
181
181
|
# Using the IRC skill
|
|
182
|
-
|
|
182
|
+
CULTURE_NICK=<your-nick> python3 -m culture.clients.claude.skill.irc_client \
|
|
183
183
|
send "#general" "PR #<N> — all review threads addressed and resolved. Ready for merge."
|
|
184
184
|
```
|
|
185
185
|
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
E303,
|
|
14
|
+
E501,
|
|
15
|
+
E741,
|
|
16
|
+
W503,
|
|
17
|
+
B007,
|
|
18
|
+
B014,
|
|
19
|
+
F401,
|
|
20
|
+
F541,
|
|
21
|
+
F811,
|
|
22
|
+
F841,
|
|
23
|
+
S101,
|
|
24
|
+
S104,
|
|
25
|
+
S105,
|
|
26
|
+
S108,
|
|
27
|
+
S110,
|
|
28
|
+
S112,
|
|
29
|
+
S310,
|
|
30
|
+
S404,
|
|
31
|
+
S406,
|
|
32
|
+
S603,
|
|
33
|
+
S606,
|
|
34
|
+
S607
|
|
35
|
+
per-file-ignores =
|
|
36
|
+
culture/protocol/commands.py:S105
|
|
37
|
+
tests/*:S101,S105,S106
|
|
@@ -5,12 +5,12 @@ on:
|
|
|
5
5
|
branches: [main]
|
|
6
6
|
paths:
|
|
7
7
|
- "pyproject.toml"
|
|
8
|
-
- "
|
|
8
|
+
- "culture/**"
|
|
9
9
|
pull_request:
|
|
10
10
|
branches: [main]
|
|
11
11
|
paths:
|
|
12
12
|
- "pyproject.toml"
|
|
13
|
-
- "
|
|
13
|
+
- "culture/**"
|
|
14
14
|
|
|
15
15
|
permissions:
|
|
16
16
|
contents: read
|
|
@@ -54,22 +54,33 @@ jobs:
|
|
|
54
54
|
echo "DEV_VERSION=${DEV_VERSION}" >> "$GITHUB_ENV"
|
|
55
55
|
echo "Publishing ${DEV_VERSION} to TestPyPI"
|
|
56
56
|
|
|
57
|
-
- name: Build and publish
|
|
57
|
+
- name: Build and publish culture to TestPyPI
|
|
58
|
+
continue-on-error: true
|
|
58
59
|
run: |
|
|
59
60
|
uv build
|
|
60
61
|
uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always --check-url https://test.pypi.org/simple/
|
|
61
62
|
|
|
62
|
-
- name: Build and publish agentirc to TestPyPI
|
|
63
|
+
- name: Build and publish agentirc-cli alias to TestPyPI
|
|
64
|
+
run: |
|
|
65
|
+
sed -i 's/^name = "culture"/name = "agentirc-cli"/' pyproject.toml
|
|
66
|
+
sed -i 's/^description = .*/description = "Legacy alias for culture — install culture instead"/' pyproject.toml
|
|
67
|
+
rm -rf dist
|
|
68
|
+
uv build
|
|
69
|
+
uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always --check-url https://test.pypi.org/simple/
|
|
70
|
+
|
|
71
|
+
- name: Build and publish agentirc alias to TestPyPI
|
|
63
72
|
run: |
|
|
64
73
|
sed -i 's/^name = "agentirc-cli"/name = "agentirc"/' pyproject.toml
|
|
74
|
+
sed -i 's/^name = "culture"/name = "agentirc"/' pyproject.toml
|
|
65
75
|
rm -rf dist
|
|
66
76
|
uv build
|
|
67
77
|
uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always --check-url https://test.pypi.org/simple/
|
|
68
78
|
|
|
69
79
|
- name: Print install commands
|
|
80
|
+
if: always()
|
|
70
81
|
run: |
|
|
71
|
-
echo "::notice::Test with: pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/
|
|
72
|
-
echo "::
|
|
82
|
+
echo "::notice::Test with: pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ culture==${DEV_VERSION}"
|
|
83
|
+
echo "::warning::agentirc on TestPyPI is not intended for production use — install culture instead"
|
|
73
84
|
|
|
74
85
|
publish:
|
|
75
86
|
if: github.event_name == 'push'
|
|
@@ -88,6 +99,24 @@ jobs:
|
|
|
88
99
|
|
|
89
100
|
- run: uv sync
|
|
90
101
|
|
|
91
|
-
-
|
|
102
|
+
- name: Build and publish culture to PyPI
|
|
103
|
+
continue-on-error: true
|
|
104
|
+
run: |
|
|
105
|
+
uv build
|
|
106
|
+
uv publish --trusted-publishing always --check-url https://pypi.org/simple/
|
|
92
107
|
|
|
93
|
-
-
|
|
108
|
+
- name: Build and publish agentirc-cli alias to PyPI
|
|
109
|
+
run: |
|
|
110
|
+
sed -i 's/^name = "culture"/name = "agentirc-cli"/' pyproject.toml
|
|
111
|
+
sed -i 's/^description = .*/description = "Legacy alias for culture — install culture instead"/' pyproject.toml
|
|
112
|
+
rm -rf dist
|
|
113
|
+
uv build
|
|
114
|
+
uv publish --trusted-publishing always --check-url https://pypi.org/simple/
|
|
115
|
+
|
|
116
|
+
- name: Build and publish agentirc alias to PyPI
|
|
117
|
+
run: |
|
|
118
|
+
sed -i 's/^name = "agentirc-cli"/name = "agentirc"/' pyproject.toml
|
|
119
|
+
sed -i 's/^name = "culture"/name = "agentirc"/' pyproject.toml
|
|
120
|
+
rm -rf dist
|
|
121
|
+
uv build
|
|
122
|
+
uv publish --trusted-publishing always --check-url https://pypi.org/simple/
|
|
@@ -26,11 +26,11 @@ jobs:
|
|
|
26
26
|
- run: uv sync
|
|
27
27
|
|
|
28
28
|
- name: Run Bandit
|
|
29
|
-
run: uv run bandit -r
|
|
29
|
+
run: uv run bandit -r culture/ -f json -o bandit-results.json -c pyproject.toml
|
|
30
30
|
continue-on-error: true
|
|
31
31
|
|
|
32
32
|
- name: Run Pylint
|
|
33
|
-
run: uv run pylint
|
|
33
|
+
run: uv run pylint culture/ --rcfile=.pylintrc --output-format=json:pylint-results.json,text
|
|
34
34
|
continue-on-error: true
|
|
35
35
|
|
|
36
36
|
- name: Run Safety dependency check
|
|
@@ -48,7 +48,7 @@ jobs:
|
|
|
48
48
|
|
|
49
49
|
- name: Run test coverage
|
|
50
50
|
run: |
|
|
51
|
-
uv run pytest --cov=
|
|
51
|
+
uv run pytest --cov=culture --cov-report=xml:coverage.xml --cov-report=term -v
|
|
52
52
|
continue-on-error: true
|
|
53
53
|
|
|
54
54
|
dependency-review:
|
|
@@ -40,7 +40,7 @@ jobs:
|
|
|
40
40
|
- name: Check if code changed
|
|
41
41
|
id: changes
|
|
42
42
|
run: |
|
|
43
|
-
CODE_CHANGED=$(git diff --name-only origin/main...HEAD -- '
|
|
43
|
+
CODE_CHANGED=$(git diff --name-only origin/main...HEAD -- 'culture/' 'pyproject.toml' 'tests/' | head -1)
|
|
44
44
|
if [ -z "$CODE_CHANGED" ]; then
|
|
45
45
|
echo "skip=true" >> "$GITHUB_OUTPUT"
|
|
46
46
|
echo "Only docs/config changed — skipping version check"
|
|
@@ -2,18 +2,28 @@
|
|
|
2
2
|
ignore=CVS
|
|
3
3
|
persistent=yes
|
|
4
4
|
load-plugins=
|
|
5
|
+
fail-under=9
|
|
5
6
|
|
|
6
7
|
[MESSAGES CONTROL]
|
|
7
8
|
disable=
|
|
9
|
+
C0103, # invalid-name (short vars in tests/loops)
|
|
8
10
|
C0114, # missing-module-docstring
|
|
9
11
|
C0115, # missing-class-docstring
|
|
10
12
|
C0116, # missing-function-docstring
|
|
11
13
|
C0301, # line-too-long (handled by black)
|
|
12
14
|
C0303, # trailing-whitespace
|
|
15
|
+
C0415, # import-outside-toplevel (lazy imports for circular deps)
|
|
16
|
+
C1803, # use-implicit-booleaness-not-comparison
|
|
13
17
|
R0801, # duplicate-code (assimilai pattern: backends share identical files)
|
|
14
18
|
R0903, # too-few-public-methods
|
|
19
|
+
R0912, # too-many-branches
|
|
15
20
|
R0913, # too-many-arguments
|
|
21
|
+
R0915, # too-many-statements
|
|
22
|
+
W0212, # protected-access (tests access internals)
|
|
16
23
|
W0511, # fixme
|
|
24
|
+
W0612, # unused-variable
|
|
25
|
+
W0613, # unused-argument (pytest fixtures)
|
|
26
|
+
W0621, # redefined-outer-name (pytest fixtures)
|
|
17
27
|
W0718, # broad-exception-caught (async server/daemon must catch broadly)
|
|
18
28
|
W0719, # broad-exception-raised
|
|
19
29
|
W1202, # logging-format-interpolation
|
|
@@ -4,8 +4,36 @@ 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.
|
|
7
|
+
## [1.0.0] - 2026-04-05
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Changed
|
|
11
|
+
|
|
12
|
+
- **BREAKING:** Renamed package from agentirc-cli to culture. CLI command is now culture. Config directory is now ~/.culture/. Environment variable AGENTIRC_NICK is now CULTURE_NICK. agentirc-cli and agentirc remain as PyPI aliases.
|
|
13
|
+
|
|
14
|
+
## [0.21.0] - 2026-04-04
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- **BREAKING:** Renamed package from `agentirc-cli` to `culture`. `agentirc-cli` and `agentirc` remain as PyPI aliases. CLI command is now `culture`. Config directory is now `~/.culture/`. Environment variable `AGENTIRC_NICK` is now `CULTURE_NICK`.
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Bots framework — server-managed virtual IRC users triggered by external events
|
|
23
|
+
- Inbound webhook support via companion HTTP listener on configurable port
|
|
24
|
+
- Bot CLI commands: create, start, stop, list, inspect
|
|
25
|
+
- Template engine for webhook payload rendering with {body.field} dot-path substitution
|
|
26
|
+
- Custom handler.py support for advanced bot logic
|
|
27
|
+
- Bot visibility in status and overview commands
|
|
28
|
+
- VirtualClient for bot IRC presence in channels
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- Server now starts a companion HTTP listener for bot webhooks
|
|
33
|
+
- Overview collector and renderer include bot information
|
|
34
|
+
- Channel._local_members() excludes VirtualClient from auto-operator promotion
|
|
8
35
|
|
|
36
|
+
## [0.20.1] - 2026-04-03
|
|
9
37
|
|
|
10
38
|
### Changed
|
|
11
39
|
|
|
@@ -17,7 +45,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
17
45
|
|
|
18
46
|
## [0.20.0] - 2026-04-03
|
|
19
47
|
|
|
20
|
-
|
|
21
48
|
### Added
|
|
22
49
|
|
|
23
50
|
- Bandit SAST security scanning
|
|
@@ -34,7 +61,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
34
61
|
|
|
35
62
|
## [0.19.0] - 2026-04-03
|
|
36
63
|
|
|
37
|
-
|
|
38
64
|
### Added
|
|
39
65
|
|
|
40
66
|
- Conversation threads — inline sub-conversations with [thread:name] prefix
|
|
@@ -46,7 +72,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
46
72
|
|
|
47
73
|
## [0.18.0] - 2026-04-03
|
|
48
74
|
|
|
49
|
-
|
|
50
75
|
### Added
|
|
51
76
|
|
|
52
77
|
- Conversation threads — inline sub-conversations with [thread:name] prefix
|
|
@@ -63,7 +88,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
63
88
|
- --foreground flag for server start and agent start (required by service managers)
|
|
64
89
|
- Windows platform support guards (no fork, SIGTERM fallback)
|
|
65
90
|
|
|
66
|
-
|
|
67
91
|
### Changed
|
|
68
92
|
|
|
69
93
|
- S2S links now auto-retry on initial startup failure
|
|
@@ -72,7 +96,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
72
96
|
|
|
73
97
|
## [0.17.0] - 2026-04-01
|
|
74
98
|
|
|
75
|
-
|
|
76
99
|
### Added
|
|
77
100
|
|
|
78
101
|
- Two-tier skill system: root-level admin skill (server setup, mesh linking, federation, agent lifecycle) and project-level messaging skill
|
|
@@ -82,7 +105,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
82
105
|
|
|
83
106
|
## [0.16.4] - 2026-04-01
|
|
84
107
|
|
|
85
|
-
|
|
86
108
|
### Changed
|
|
87
109
|
|
|
88
110
|
- Rewrote UC-03 Cross-Server Delegation with Jetson dependency resolution scenario
|
|
@@ -90,34 +112,29 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
90
112
|
|
|
91
113
|
## [0.16.3] - 2026-04-01
|
|
92
114
|
|
|
93
|
-
|
|
94
115
|
### Added
|
|
95
116
|
|
|
96
117
|
- Federation mesh example in README and index — 3-server topology diagram with CLI commands
|
|
97
118
|
|
|
98
119
|
## [0.16.2] - 2026-03-31
|
|
99
120
|
|
|
100
|
-
|
|
101
121
|
### Fixed
|
|
102
122
|
|
|
103
123
|
- Documentation-code alignment: missing CLI flags, config fields, protocol specs, and README links
|
|
104
124
|
|
|
105
125
|
## [0.16.1] - 2026-03-31
|
|
106
126
|
|
|
107
|
-
|
|
108
127
|
### Changed
|
|
109
128
|
|
|
110
129
|
- Revamped README, docs index, and pyproject.toml description with new landing page design
|
|
111
130
|
|
|
112
131
|
## [0.16.0] - 2026-03-31
|
|
113
132
|
|
|
114
|
-
|
|
115
133
|
### Added
|
|
116
134
|
|
|
117
135
|
- Generic ACP backend — supports Cline, OpenCode, Kiro, Gemini, and any ACP-compatible agent via configurable spawn command
|
|
118
136
|
- CLI --agent acp with --acp-command flag for registering ACP agents
|
|
119
137
|
|
|
120
|
-
|
|
121
138
|
### Changed
|
|
122
139
|
|
|
123
140
|
- Replaced OpenCode-specific backend with generic ACP backend (clients/acp/)
|
|
@@ -126,14 +143,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
126
143
|
|
|
127
144
|
## [0.15.2] - 2026-03-31
|
|
128
145
|
|
|
129
|
-
|
|
130
146
|
### Changed
|
|
131
147
|
|
|
132
148
|
- Extended .pr_agent.toml with harness conformance checks for cross-backend validation
|
|
133
149
|
|
|
134
150
|
## [0.15.1] - 2026-03-30
|
|
135
151
|
|
|
136
|
-
|
|
137
152
|
### Fixed
|
|
138
153
|
|
|
139
154
|
- Overview serve: flush stdout so port URL is visible when backgrounded
|
|
@@ -141,7 +156,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
141
156
|
|
|
142
157
|
## [0.15.0] - 2026-03-30
|
|
143
158
|
|
|
144
|
-
|
|
145
159
|
### Added
|
|
146
160
|
|
|
147
161
|
- Managed rooms with rich metadata (ROOMCREATE, ROOMMETA, ROOMARCHIVE, ROOMKICK, ROOMINVITE)
|
|
@@ -152,7 +166,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
152
166
|
- Overview integration showing room/agent tags and metadata
|
|
153
167
|
- Protocol extensions: rooms.md, tags.md
|
|
154
168
|
|
|
155
|
-
|
|
156
169
|
### Changed
|
|
157
170
|
|
|
158
171
|
- Persistent channels survive when empty (no auto-cleanup)
|
|
@@ -162,7 +175,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
162
175
|
|
|
163
176
|
## [0.14.1] - 2026-03-30
|
|
164
177
|
|
|
165
|
-
|
|
166
178
|
### Fixed
|
|
167
179
|
|
|
168
180
|
- Web dashboard table rendering (enable mistune table plugin)
|
|
@@ -171,7 +183,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
171
183
|
|
|
172
184
|
## [0.14.0] - 2026-03-30
|
|
173
185
|
|
|
174
|
-
|
|
175
186
|
### Added
|
|
176
187
|
|
|
177
188
|
- agentirc overview CLI subcommand — mesh-wide situational awareness
|
|
@@ -183,7 +194,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
183
194
|
|
|
184
195
|
## [0.13.1] - 2026-03-30
|
|
185
196
|
|
|
186
|
-
|
|
187
197
|
### Fixed
|
|
188
198
|
|
|
189
199
|
- Fix OpenCode agent crash (exit code -1) caused by 30s timeout on system prompt session/prompt call
|
|
@@ -203,28 +213,24 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
203
213
|
|
|
204
214
|
## [0.12.1] - 2026-03-29
|
|
205
215
|
|
|
206
|
-
|
|
207
216
|
### Changed
|
|
208
217
|
|
|
209
218
|
- pr-review skill now checks for existing PRs before adding unrelated work to a branch
|
|
210
219
|
|
|
211
220
|
## [0.12.0] - 2026-03-29
|
|
212
221
|
|
|
213
|
-
|
|
214
222
|
### Added
|
|
215
223
|
|
|
216
224
|
- agentirc learn command — self-teaching prompt for agents to learn IRC tools and create skills
|
|
217
225
|
|
|
218
226
|
## [0.11.0] - 2026-03-28
|
|
219
227
|
|
|
220
|
-
|
|
221
228
|
### Added
|
|
222
229
|
|
|
223
230
|
- agentirc send command for sending messages to channels and agents
|
|
224
231
|
- agentirc status --full flag and per-agent detailed view
|
|
225
232
|
- agentirc sleep/wake commands with configurable schedule (default 23:00-08:00)
|
|
226
233
|
|
|
227
|
-
|
|
228
234
|
### Changed
|
|
229
235
|
|
|
230
236
|
- Extended IPC protocol with status, pause, and resume handlers
|
|
@@ -232,7 +238,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
232
238
|
|
|
233
239
|
## [0.10.7] - 2026-03-28
|
|
234
240
|
|
|
235
|
-
|
|
236
241
|
### Fixed
|
|
237
242
|
|
|
238
243
|
- Fix crash with cryptic asyncio Event loop is closed errors when starting agent without IRC server running
|
|
@@ -241,21 +246,18 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
241
246
|
|
|
242
247
|
## [0.10.6] - 2026-03-28
|
|
243
248
|
|
|
244
|
-
|
|
245
249
|
### Changed
|
|
246
250
|
|
|
247
251
|
- Add start command suggestion to init collision output
|
|
248
252
|
|
|
249
253
|
## [0.10.5] - 2026-03-28
|
|
250
254
|
|
|
251
|
-
|
|
252
255
|
### Changed
|
|
253
256
|
|
|
254
257
|
- Show existing agent config details when init detects a nick collision
|
|
255
258
|
|
|
256
259
|
## [0.10.4] - 2026-03-27
|
|
257
260
|
|
|
258
|
-
|
|
259
261
|
### Changed
|
|
260
262
|
|
|
261
263
|
- Renamed DaRe to DaRIA (Data Refinery Intelligent Agent) in lifecycle guide
|
|
@@ -287,12 +289,10 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
287
289
|
|
|
288
290
|
## [0.10.0] - 2026-03-26
|
|
289
291
|
|
|
290
|
-
|
|
291
292
|
### Added
|
|
292
293
|
|
|
293
294
|
- Client documentation for Codex, OpenCode, and Copilot backends (7 docs each)
|
|
294
295
|
|
|
295
|
-
|
|
296
296
|
### Changed
|
|
297
297
|
|
|
298
298
|
- Remove set_directory from all backends — agents stay in their init directory
|
|
@@ -301,26 +301,22 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
301
301
|
|
|
302
302
|
## [0.9.0] - 2026-03-25
|
|
303
303
|
|
|
304
|
-
|
|
305
304
|
### Added
|
|
306
305
|
|
|
307
306
|
- GitHub Copilot agent harness (Phase 4) using github-copilot-sdk
|
|
308
307
|
|
|
309
308
|
## [0.8.0] - 2026-03-24
|
|
310
309
|
|
|
311
|
-
|
|
312
310
|
### Added
|
|
313
311
|
|
|
314
312
|
- OpenCode agent harness (Phase 3) — opencode acp over ACP/JSON-RPC/stdio
|
|
315
313
|
|
|
316
|
-
|
|
317
314
|
### Changed
|
|
318
315
|
|
|
319
316
|
- CLI now supports --agent opencode for init, start, and skills install
|
|
320
317
|
|
|
321
318
|
## [0.7.0] - 2026-03-24
|
|
322
319
|
|
|
323
|
-
|
|
324
320
|
### Added
|
|
325
321
|
|
|
326
322
|
- Codex agent backend: agentirc/clients/codex/
|
|
@@ -331,7 +327,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
331
327
|
- CLI: agentirc init --agent codex to initialize Codex agents
|
|
332
328
|
- CLI: agentirc start dispatches to Codex daemon when agent=codex
|
|
333
329
|
|
|
334
|
-
|
|
335
330
|
### Changed
|
|
336
331
|
|
|
337
332
|
- CLI: --agent flag on init subcommand (choices: claude, codex)
|
|
@@ -339,7 +334,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
339
334
|
|
|
340
335
|
## [0.6.0] - 2026-03-24
|
|
341
336
|
|
|
342
|
-
|
|
343
337
|
### Added
|
|
344
338
|
|
|
345
339
|
- packages/agent-harness/ — assimilai reference for building new agent backends
|
|
@@ -347,14 +341,12 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
347
341
|
- Assimilation guide (README.md) with step-by-step instructions
|
|
348
342
|
- agent field in AgentConfig (default: claude, backward compatible)
|
|
349
343
|
|
|
350
|
-
|
|
351
344
|
### Changed
|
|
352
345
|
|
|
353
346
|
- CLAUDE.md — documented assimilai pattern for agent harness
|
|
354
347
|
|
|
355
348
|
## [0.5.0] - 2026-03-24
|
|
356
349
|
|
|
357
|
-
|
|
358
350
|
### Added
|
|
359
351
|
|
|
360
352
|
- Agent Harness Specification document — defines the expected interfaces for pluggable agent backends
|
|
@@ -364,7 +356,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
364
356
|
|
|
365
357
|
## [0.4.0] - 2026-03-24
|
|
366
358
|
|
|
367
|
-
|
|
368
359
|
### Added
|
|
369
360
|
|
|
370
361
|
- Link trust levels: full (share all) and restricted (share nothing unless opted in)
|
|
@@ -373,7 +364,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
373
364
|
- Mutual +S required for restricted links — both sides must agree
|
|
374
365
|
- Safe default: inbound links from unknown peers default to restricted
|
|
375
366
|
|
|
376
|
-
|
|
377
367
|
### Changed
|
|
378
368
|
|
|
379
369
|
- Link format extended: name:host:port:password:trust (trust defaults to full)
|
|
@@ -381,7 +371,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
381
371
|
|
|
382
372
|
## [0.3.1] - 2026-03-22
|
|
383
373
|
|
|
384
|
-
|
|
385
374
|
### Added
|
|
386
375
|
|
|
387
376
|
- Federation setup in Getting Started guide
|
|
@@ -390,7 +379,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
390
379
|
|
|
391
380
|
## [0.3.0] - 2026-03-22
|
|
392
381
|
|
|
393
|
-
|
|
394
382
|
### Added
|
|
395
383
|
|
|
396
384
|
- CLI command: agentirc skills install <claude|codex|all>
|
|
@@ -398,21 +386,18 @@ Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
|
398
386
|
- Codex-compatible skill layout in plugins/codex/
|
|
399
387
|
- Three install methods: CLI, plugin marketplace, Codex skill installer
|
|
400
388
|
|
|
401
|
-
|
|
402
389
|
### Changed
|
|
403
390
|
|
|
404
391
|
- Getting Started guide updated with skills install command
|
|
405
392
|
|
|
406
393
|
## [0.2.1] - 2026-03-22
|
|
407
394
|
|
|
408
|
-
|
|
409
395
|
### Added
|
|
410
396
|
|
|
411
397
|
- OIDC trusted publishing for PyPI and TestPyPI
|
|
412
398
|
- Dual package publish (agentirc + agentirc-cli) to TestPyPI
|
|
413
399
|
- CHANGELOG.md with Keep a Changelog format
|
|
414
400
|
|
|
415
|
-
|
|
416
401
|
### Changed
|
|
417
402
|
|
|
418
403
|
- Publish workflow uses id-token instead of API token secrets
|
|
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
4
4
|
|
|
5
5
|
## Project Overview
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**culture** — A mesh of IRC servers where AI agents collaborate, share knowledge, and coordinate work. Humans participate as first-class citizens. Custom async Python IRCd built from scratch, with Claude Agent SDK client harnesses.
|
|
8
8
|
|
|
9
9
|
Design spec: `docs/superpowers/specs/2026-03-19-agentirc-design.md`
|
|
10
10
|
|
|
@@ -18,7 +18,8 @@ Design spec: `docs/superpowers/specs/2026-03-19-agentirc-design.md`
|
|
|
18
18
|
Code in `packages/` is **reference implementation** — copied, not imported. Each target directory owns its copy and can modify it independently. No cross-directory imports between backends.
|
|
19
19
|
|
|
20
20
|
For agent backends (`clients/claude/`, `clients/codex/`, etc.):
|
|
21
|
-
|
|
21
|
+
|
|
22
|
+
1. Copy from `packages/agent-harness/` into `culture/clients/<backend>/`
|
|
22
23
|
2. Replace `agent_runner.py` and `supervisor.py` with your implementation
|
|
23
24
|
3. Adapt `daemon.py` to wire up your runner
|
|
24
25
|
4. Each file is yours to modify — no shared imports to break
|
|
@@ -34,7 +35,7 @@ When implementing features, write a corresponding markdown doc in `docs/` descri
|
|
|
34
35
|
## Git Workflow
|
|
35
36
|
|
|
36
37
|
- Branch out for all changes
|
|
37
|
-
- **Bump the version before creating a PR** — use `/version-bump patch` (bug fix), `minor` (new feature), or `major` (breaking change). This updates `pyproject.toml`, `
|
|
38
|
+
- **Bump the version before creating a PR** — use `/version-bump patch` (bug fix), `minor` (new feature), or `major` (breaking change). This updates `pyproject.toml`, `culture/__init__.py`, and `CHANGELOG.md` in one step. Forgetting will fail the version-check CI job.
|
|
38
39
|
- Push to GitHub for agentic code review
|
|
39
40
|
- Pull review comments, address feedback, push fixes
|
|
40
41
|
- Reply to comments after pushing, resolve threads
|