agentirc-cli 7.1.1__tar.gz → 7.1.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.
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.github/workflows/publish.yml +6 -6
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.github/workflows/security-checks.yml +8 -8
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.github/workflows/tests.yml +4 -4
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/CHANGELOG.md +13 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/PKG-INFO +1 -1
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/client.py +5 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/constants.py +0 -3
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/agentirc/bots.md +18 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/agentirc/events.md +17 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/pyproject.toml +1 -1
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/uv.lock +1 -1
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.claude/agents/doc-test-alignment.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.claude/skills/pr-review/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.claude/skills/run-tests/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.flake8 +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.github/workflows/docs-check.yml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.gitignore +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.markdownlint-cli2.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.pr_agent.toml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.pre-commit-config.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/.pylintrc +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/CLAUDE.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/Gemfile +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/Gemfile.lock +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/LICENSE +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/README.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/SECURITY.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_config.agentirc.yml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_config.base.yml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_config.culture.yml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_data/sites.yml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_includes/head_custom.html +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_plugins/site_filter.rb +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_sass/color_schemes/anthropic.scss +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_sass/color_schemes/dark-terminal.scss +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/_sass/custom/custom.scss +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/IMG_3183.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/apple-touch-icon.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/favicon-16x16.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/favicon-32x32.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/favicon.ico +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/og-agentirc.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/assets/images/og-culture.png +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/__main__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/CLAUDE.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/__main__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/channel.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/docs/agentirc-architecture.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/docs/agentirc-features.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/docs/agentirc-skill.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/docs/agentirc.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/events.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/history_store.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/ircd.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/remote_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/room_store.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/rooms_util.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/server_link.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skill.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skills/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skills/history.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skills/icon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skills/rooms.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/skills/threads.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/agentirc/thread_store.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/aio.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/bot.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/bot_manager.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/filter_dsl.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/http_listener.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/system/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/system/welcome/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/system/welcome/bot.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/system/welcome/handler.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/template_engine.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/bots/virtual_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/agent.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/bot.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/channel.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/mesh.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/constants.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/display.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/formatting.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/mesh.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/shared/process.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/cli/skills.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/agent_runner.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/culture.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/skill/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/supervisor.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/acp/webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/__main__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/agent_runner.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/culture.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/skill/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/supervisor.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/claude/webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/agent_runner.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/culture.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/skill/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/supervisor.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/codex/webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/agent_runner.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/culture.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/skill/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/supervisor.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/clients/copilot/webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/app.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/commands.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/status.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/widgets/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/widgets/chat.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/widgets/info_panel.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/console/widgets/sidebar.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/credentials.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/formatting.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/learn_prompt.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/mesh_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/observer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/collector.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/model.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/renderer_text.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/renderer_web.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/overview/web/style.css +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/persistence.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/pidfile.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/commands.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/events.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/federation.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/history.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/icons.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/rooms.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/tags.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/extensions/threads.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/message.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/protocol-index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/protocol/replies.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/culture/skills/culture/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/README.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/agentirc/architecture-overview.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/agentirc/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/agentirc/why-agentirc.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/agent-lifecycle.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/choose-a-harness.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/mental-model.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/operate.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/patterns.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/quickstart.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/reflective-development.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/vision-patterns-index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/vision.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/culture/why-culture.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/architecture/agent-harness-spec.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/architecture/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/architecture/layers.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/architecture/threads.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/cli/commands.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/cli/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/harnesses/acp.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/harnesses/claude.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/harnesses/codex.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/harnesses/copilot.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/harnesses/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/server/architecture.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/server/config.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/server/deployment.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/server/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/reference/server/security.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/resources/github-copilot-sdk-instructions.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/federation.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/harnesses.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/humans-and-agents.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/persistence.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/concepts/rooms.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/demos/magic-demo.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/guides/first-session.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/guides/index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/guides/join-as-human.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/guides/local-setup.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/guides/multi-machine.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/01-pair-programming.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/02-code-review-ensemble.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/03-cross-server-delegation.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/04-knowledge-propagation.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/05-the-observer.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/06-cross-server-ops.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/07-supervisor-intervention.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/08-apps-as-agents.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/09-research-swarm.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases/10-agent-lifecycle.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/shared/use-cases-index.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-02-conversation-threads.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-02-ops-tooling.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-04-culture-rename.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-05-docs-speak-culture.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-06-console-chat.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-09-decentralized-agent-config.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-12-console-enhancements.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/plans/2026-04-15-mesh-events.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-03-30-overview-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-04-culture-rename-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-05-docs-speak-culture-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-05-lifecycle-reframe-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-06-cli-reorganization-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-06-console-chat-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-07-entity-archiving-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-07-reflective-development-reframe-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-08-reflective-development-deepening-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-09-decentralized-agent-config-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-12-console-enhancements-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/docs/superpowers/specs/2026-04-15-mesh-events-design.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/favicon.ico +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/README.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/culture.yaml +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/packages/agent-harness/webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/plugins/claude-code/skills/culture/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/plugins/claude-code/skills/irc/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/plugins/codex/skills/culture-irc/SKILL.md +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/robots.txt +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/sonar-project.properties +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/__init__.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/conftest.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_acp_daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_agent_runner.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_archive.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_bot.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_bot_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_bot_config_fires_event_toplevel.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_bot_manager.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_bots_integration.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_channel.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_channel_cli.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_codex_daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_connection.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_commands.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_connection.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_fixes_224_227.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_icons.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_integration.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_console_status.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_copilot_daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_credentials.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_culture_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_daemon.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_daemon_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_daemon_ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_discovery.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_display.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_basic.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_bot_chain.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_bot_trigger.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_cap_fallback.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_catalog.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_federation.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_history.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_lifecycle.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_events_reserved_nick.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_federation.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_filter_dsl.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_history.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_http_listener.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_integration_layer5.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_ipc.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_irc_transport.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_irc_transport_tags.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_learn_prompt.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_link_reconnect.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_manifest_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mention_alias.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mention_target_cleanup.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mention_warning.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mentions.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mesh_config.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_mesh_readiness.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_message.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_message_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_message_tags.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_messaging.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_migrate_cli.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_modes.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_overview_cli.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_overview_collector.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_overview_model.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_overview_renderer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_overview_web.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_persistence.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_persistence_timeout.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_pidfile.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_poll_loop.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_register_cli.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_room_persistence.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_rooms.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_rooms_federation.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_rooms_integration.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_server_icon_skill.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_setup_update_cli.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_skill_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_skill_docs.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_skills.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_socket_server.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_supervisor.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_template_engine.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_thread_buffer.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_threads.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_virtual_client.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_wait_for_port.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_webhook.py +0 -0
- {agentirc_cli-7.1.1 → agentirc_cli-7.1.2}/tests/test_welcome_bot.py +0 -0
|
@@ -18,9 +18,9 @@ jobs:
|
|
|
18
18
|
permissions:
|
|
19
19
|
contents: read
|
|
20
20
|
steps:
|
|
21
|
-
- uses: actions/checkout@v4
|
|
21
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
22
22
|
|
|
23
|
-
- uses: astral-sh/setup-uv@v4
|
|
23
|
+
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
|
|
24
24
|
|
|
25
25
|
- run: uv python install 3.12
|
|
26
26
|
|
|
@@ -37,9 +37,9 @@ jobs:
|
|
|
37
37
|
contents: read
|
|
38
38
|
id-token: write
|
|
39
39
|
steps:
|
|
40
|
-
- uses: actions/checkout@v4
|
|
40
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
41
41
|
|
|
42
|
-
- uses: astral-sh/setup-uv@v4
|
|
42
|
+
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
|
|
43
43
|
|
|
44
44
|
- run: uv python install 3.12
|
|
45
45
|
|
|
@@ -89,9 +89,9 @@ jobs:
|
|
|
89
89
|
contents: read
|
|
90
90
|
id-token: write
|
|
91
91
|
steps:
|
|
92
|
-
- uses: actions/checkout@v4
|
|
92
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
93
93
|
|
|
94
|
-
- uses: astral-sh/setup-uv@v4
|
|
94
|
+
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
|
|
95
95
|
|
|
96
96
|
- run: uv python install 3.12
|
|
97
97
|
|
|
@@ -16,9 +16,9 @@ jobs:
|
|
|
16
16
|
permissions:
|
|
17
17
|
contents: read
|
|
18
18
|
steps:
|
|
19
|
-
- uses: actions/checkout@v4
|
|
19
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
20
20
|
|
|
21
|
-
- uses: astral-sh/setup-uv@v4
|
|
21
|
+
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
|
|
22
22
|
|
|
23
23
|
- run: uv python install 3.12
|
|
24
24
|
|
|
@@ -37,7 +37,7 @@ jobs:
|
|
|
37
37
|
continue-on-error: true
|
|
38
38
|
|
|
39
39
|
- name: Upload Security Results
|
|
40
|
-
uses: actions/upload-artifact@v4
|
|
40
|
+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
|
41
41
|
with:
|
|
42
42
|
name: security-results
|
|
43
43
|
path: |
|
|
@@ -54,10 +54,10 @@ jobs:
|
|
|
54
54
|
contents: read
|
|
55
55
|
pull-requests: write
|
|
56
56
|
steps:
|
|
57
|
-
- uses: actions/checkout@v4
|
|
57
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
58
58
|
|
|
59
59
|
- name: Dependency Review
|
|
60
|
-
uses: actions/dependency-review-action@v4
|
|
60
|
+
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4
|
|
61
61
|
with:
|
|
62
62
|
fail-on-severity: high
|
|
63
63
|
|
|
@@ -68,12 +68,12 @@ jobs:
|
|
|
68
68
|
contents: read
|
|
69
69
|
security-events: write
|
|
70
70
|
steps:
|
|
71
|
-
- uses: actions/checkout@v4
|
|
71
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
72
72
|
|
|
73
73
|
- name: Initialize CodeQL
|
|
74
|
-
uses: github/codeql-action/init@v3
|
|
74
|
+
uses: github/codeql-action/init@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3
|
|
75
75
|
with:
|
|
76
76
|
languages: python
|
|
77
77
|
|
|
78
78
|
- name: Perform CodeQL Analysis
|
|
79
|
-
uses: github/codeql-action/analyze@v3
|
|
79
|
+
uses: github/codeql-action/analyze@ce64ddcb0d8d890d2df4a9d1c04ff297367dea2a # v3
|
|
@@ -10,9 +10,9 @@ jobs:
|
|
|
10
10
|
permissions:
|
|
11
11
|
contents: read
|
|
12
12
|
steps:
|
|
13
|
-
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
14
14
|
|
|
15
|
-
- uses: astral-sh/setup-uv@v4
|
|
15
|
+
- uses: astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
|
|
16
16
|
|
|
17
17
|
- run: uv python install 3.12
|
|
18
18
|
|
|
@@ -26,13 +26,13 @@ jobs:
|
|
|
26
26
|
contents: read
|
|
27
27
|
pull-requests: write
|
|
28
28
|
steps:
|
|
29
|
-
- uses: actions/checkout@v4
|
|
29
|
+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
30
30
|
with:
|
|
31
31
|
fetch-depth: 0
|
|
32
32
|
|
|
33
33
|
- run: git fetch origin main
|
|
34
34
|
|
|
35
|
-
- uses: actions/setup-python@v5
|
|
35
|
+
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
|
|
36
36
|
with:
|
|
37
37
|
python-version: "3.12"
|
|
38
38
|
|
|
@@ -4,6 +4,19 @@ 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
|
+
## [7.1.2] - 2026-04-17
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Pin all GitHub Actions workflow uses: to full commit SHAs (SonarCloud minor, #258)
|
|
12
|
+
- Document Python API for events.register/validate_event_type/render_event in docs/agentirc/events.md (#249)
|
|
13
|
+
- Document Python API for bot filter DSL and template engine in docs/agentirc/bots.md (#249)
|
|
14
|
+
- Note in ConsoleIRCClient docstring that it intentionally does not negotiate CAP message-tags (#249)
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Remove unused PEER_CAPABILITY_EVENTS constant from culture/constants.py (#249)
|
|
19
|
+
|
|
7
20
|
## [7.1.1] - 2026-04-17
|
|
8
21
|
|
|
9
22
|
### Changed
|
|
@@ -47,6 +47,11 @@ class ConsoleIRCClient:
|
|
|
47
47
|
|
|
48
48
|
Maintains a persistent connection, buffers incoming PRIVMSG messages,
|
|
49
49
|
and provides query methods for channel listing, WHO, and history.
|
|
50
|
+
|
|
51
|
+
Does **not** negotiate ``CAP REQ :message-tags``. The TUI renders plain
|
|
52
|
+
body text for mesh events; IRCv3 tags carry structured payloads that the
|
|
53
|
+
console has no use for. Agent harness transports (see
|
|
54
|
+
``packages/agent-harness/irc_transport.py``) do negotiate the cap.
|
|
50
55
|
"""
|
|
51
56
|
|
|
52
57
|
def __init__(
|
|
@@ -13,8 +13,5 @@ SYSTEM_USER_REALNAME = "Culture system messages"
|
|
|
13
13
|
EVENT_TAG_TYPE = "event"
|
|
14
14
|
EVENT_TAG_DATA = "event-data"
|
|
15
15
|
|
|
16
|
-
# Peer link capability (server-to-server)
|
|
17
|
-
PEER_CAPABILITY_EVENTS = "events/1"
|
|
18
|
-
|
|
19
16
|
# Event-type name regex (dotted lowercase, ≥2 segments)
|
|
20
17
|
EVENT_TYPE_RE = re.compile(r"^[a-z][a-z0-9_-]*(\.[a-z][a-z0-9_-]*)+$")
|
|
@@ -82,6 +82,24 @@ Missing fields evaluate to `False` — filters are fail-closed.
|
|
|
82
82
|
Invalid filters are rejected at config-load time with `FilterParseError`.
|
|
83
83
|
Function calls are not permitted.
|
|
84
84
|
|
|
85
|
+
### Python API
|
|
86
|
+
|
|
87
|
+
The DSL grammar above is exposed by `culture/bots/filter_dsl.py`:
|
|
88
|
+
|
|
89
|
+
| Function | Signature | Purpose |
|
|
90
|
+
|----------|-----------|---------|
|
|
91
|
+
| `compile_filter` | `compile_filter(source: str)` → AST node | Parse a filter expression. Raises `FilterParseError` on invalid input. |
|
|
92
|
+
| `evaluate` | `evaluate(node, event: dict)` → `Any` | Evaluate a compiled AST against an event payload. Used by `BotManager` to decide whether a bot's trigger matches. |
|
|
93
|
+
|
|
94
|
+
## Template Engine (Python API)
|
|
95
|
+
|
|
96
|
+
`output.template` rendering lives in `culture/bots/template_engine.py`:
|
|
97
|
+
|
|
98
|
+
| Function | Signature | Purpose |
|
|
99
|
+
|----------|-----------|---------|
|
|
100
|
+
| `render_template` | `render_template(template: str, payload: dict \| str)` → `str \| None` | Expand `{dot.path}` tokens against a payload. Returns `None` if any token cannot be resolved (caller should use the bot's `fallback` config). For dict payloads, fields are available at top level (`{event.nick}`); any payload (dict or str) is also exposed via the `body` alias (`{body.event.nick}`). |
|
|
101
|
+
| `render_fallback` | `render_fallback(payload, mode="json")` → `str` | Stringify a payload when template resolution fails. `mode="json"` uses compact JSON; any other value falls back to `str(payload)`. |
|
|
102
|
+
|
|
85
103
|
## `fires_event` — Pub/Sub Chains
|
|
86
104
|
|
|
87
105
|
A bot can emit a follow-on event after handling a trigger by adding a
|
|
@@ -117,6 +117,23 @@ Channel-scoped events respect each link's `should_relay()` trust check. Global
|
|
|
117
117
|
See [Protocol Extensions → Events](../../culture/protocol/extensions/events.md)
|
|
118
118
|
for the full `SEVENT` wire format.
|
|
119
119
|
|
|
120
|
+
## Custom Event Types (Python API)
|
|
121
|
+
|
|
122
|
+
AgentIRC renders every event body through a registry of template functions in
|
|
123
|
+
`culture/agentirc/events.py`. Skills and in-tree bots can register additional
|
|
124
|
+
event types at module import time.
|
|
125
|
+
|
|
126
|
+
| Function | Signature | Purpose |
|
|
127
|
+
|----------|-----------|---------|
|
|
128
|
+
| `register` | `register(event_type: str, fn: RenderFn) -> None` | Attach a render function to a dotted event type (e.g. `"mybot.alert"`). `RenderFn` is `(data: dict, channel: str \| None) -> str`. |
|
|
129
|
+
| `validate_event_type` | `validate_event_type(name: str) -> bool` | Returns `True` if `name` matches the dotted-lowercase convention (`EVENT_TYPE_RE` in `culture.constants`). |
|
|
130
|
+
| `render_event` | `render_event(event_type, data, channel) -> str` | Look up and invoke the render template; falls back to `f"{event_type} {data}"` on missing template or exception. |
|
|
131
|
+
|
|
132
|
+
Templates are presentation-only — the structured payload is attached as IRCv3
|
|
133
|
+
tags by the server's emit path regardless of what the template returns, so
|
|
134
|
+
custom templates need only concern themselves with producing a readable body
|
|
135
|
+
line for non-CAP clients.
|
|
136
|
+
|
|
120
137
|
## Example Flows
|
|
121
138
|
|
|
122
139
|
### Flow A — Server emits `agent.connect`
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|