agentirc-cli 7.1.3__tar.gz → 7.1.4__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.3 → agentirc_cli-7.1.4}/.pr_agent.toml +2 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.pylintrc +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/CHANGELOG.md +9 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/CLAUDE.md +3 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/PKG-INFO +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/culture.yaml +2 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/culture.yaml +2 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/culture.yaml +2 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/culture.yaml +2 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/agent-lifecycle.md +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/reflective-development.md +2 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/server/security.md +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/04-knowledge-propagation.md +23 -23
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/README.md +2 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/daemon.py +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/irc_transport.py +4 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/skill/irc_client.py +3 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/socket_server.py +3 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/webhook.py +3 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/pyproject.toml +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/sonar-project.properties +3 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_daemon_config.py +2 -2
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/uv.lock +1 -1
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.claude/agents/doc-test-alignment.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.claude/skills/pr-review/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.claude/skills/run-tests/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.flake8 +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.github/workflows/docs-check.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.github/workflows/publish.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.github/workflows/security-checks.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.github/workflows/tests.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.gitignore +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.markdownlint-cli2.yaml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/.pre-commit-config.yaml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/Gemfile +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/Gemfile.lock +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/LICENSE +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/README.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/SECURITY.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_config.agentirc.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_config.base.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_config.culture.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_data/sites.yml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_includes/head_custom.html +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_plugins/site_filter.rb +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_sass/color_schemes/anthropic.scss +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_sass/color_schemes/dark-terminal.scss +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/_sass/custom/custom.scss +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/IMG_3183.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/apple-touch-icon.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/favicon-16x16.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/favicon-32x32.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/favicon.ico +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/og-agentirc.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/assets/images/og-culture.png +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/__main__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/CLAUDE.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/__main__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/channel.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/docs/agentirc-architecture.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/docs/agentirc-features.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/docs/agentirc-skill.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/docs/agentirc.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/events.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/history_store.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/ircd.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/remote_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/room_store.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/rooms_util.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/server_link.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skill.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skills/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skills/history.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skills/icon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skills/rooms.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/skills/threads.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/agentirc/thread_store.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/aio.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/bot.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/bot_manager.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/filter_dsl.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/http_listener.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/system/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/system/welcome/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/system/welcome/bot.yaml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/system/welcome/handler.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/template_engine.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/bots/virtual_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/agent.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/bot.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/channel.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/mesh.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/constants.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/display.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/formatting.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/mesh.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/shared/process.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/cli/skills.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/agent_runner.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/irc_transport.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/skill/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/socket_server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/supervisor.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/acp/webhook.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/__main__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/agent_runner.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/irc_transport.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/skill/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/socket_server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/supervisor.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/claude/webhook.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/agent_runner.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/irc_transport.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/skill/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/socket_server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/supervisor.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/codex/webhook.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/agent_runner.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/irc_transport.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/skill/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/skill/irc_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/socket_server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/supervisor.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/clients/copilot/webhook.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/app.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/commands.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/status.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/widgets/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/widgets/chat.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/widgets/info_panel.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/console/widgets/sidebar.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/constants.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/credentials.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/formatting.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/learn_prompt.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/mesh_config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/observer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/collector.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/model.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/renderer_text.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/renderer_web.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/overview/web/style.css +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/persistence.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/pidfile.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/commands.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/events.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/federation.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/history.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/icons.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/rooms.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/tags.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/extensions/threads.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/message.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/protocol-index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/protocol/replies.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/culture/skills/culture/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/README.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/agentirc/architecture-overview.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/agentirc/bots.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/agentirc/events.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/agentirc/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/agentirc/why-agentirc.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/choose-a-harness.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/features.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/mental-model.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/operate.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/patterns.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/quickstart.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/vision-patterns-index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/vision.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/culture/why-culture.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/architecture/agent-harness-spec.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/architecture/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/architecture/layers.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/architecture/threads.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/cli/commands.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/cli/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/harnesses/acp.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/harnesses/claude.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/harnesses/codex.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/harnesses/copilot.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/harnesses/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/server/architecture.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/server/config.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/server/deployment.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/reference/server/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/resources/github-copilot-sdk-instructions.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/federation.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/harnesses.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/humans-and-agents.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/persistence.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/concepts/rooms.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/demos/magic-demo.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/guides/first-session.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/guides/index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/guides/join-as-human.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/guides/local-setup.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/guides/multi-machine.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/01-pair-programming.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/02-code-review-ensemble.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/03-cross-server-delegation.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/05-the-observer.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/06-cross-server-ops.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/07-supervisor-intervention.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/08-apps-as-agents.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/09-research-swarm.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases/10-agent-lifecycle.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/shared/use-cases-index.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-02-conversation-threads.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-02-ops-tooling.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-04-culture-rename.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-05-docs-speak-culture.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-06-console-chat.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-09-decentralized-agent-config.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-12-console-enhancements.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/plans/2026-04-15-mesh-events.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-03-30-overview-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-04-culture-rename-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-05-docs-speak-culture-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-05-lifecycle-reframe-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-06-cli-reorganization-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-06-console-chat-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-07-entity-archiving-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-07-reflective-development-reframe-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-08-reflective-development-deepening-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-09-decentralized-agent-config-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-12-console-enhancements-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-15-mesh-events-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/docs/superpowers/specs/2026-04-17-sites-repositioning-design.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/favicon.ico +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/culture.yaml +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/packages/agent-harness/skill/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/plugins/claude-code/skills/culture/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/plugins/claude-code/skills/irc/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/plugins/codex/skills/culture-irc/SKILL.md +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/robots.txt +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/__init__.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/conftest.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_acp_daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_agent_runner.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_archive.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_bot.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_bot_config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_bot_config_fires_event_toplevel.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_bot_manager.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_bots_integration.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_channel.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_channel_cli.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_codex_daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_connection.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_commands.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_connection.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_fixes_224_227.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_icons.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_integration.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_console_status.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_copilot_daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_credentials.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_culture_config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_daemon.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_daemon_ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_discovery.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_display.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_basic.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_bot_chain.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_bot_trigger.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_cap_fallback.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_catalog.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_federation.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_history.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_lifecycle.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_events_reserved_nick.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_federation.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_filter_dsl.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_history.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_http_listener.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_integration_layer5.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_ipc.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_irc_transport.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_irc_transport_tags.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_learn_prompt.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_link_reconnect.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_manifest_config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mention_alias.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mention_target_cleanup.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mention_warning.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mentions.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mesh_config.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_mesh_readiness.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_message.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_message_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_message_tags.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_messaging.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_migrate_cli.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_modes.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_overview_cli.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_overview_collector.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_overview_model.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_overview_renderer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_overview_web.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_persistence.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_persistence_timeout.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_pidfile.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_poll_loop.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_register_cli.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_room_persistence.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_rooms.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_rooms_federation.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_rooms_integration.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_server_icon_skill.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_setup_update_cli.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_skill_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_skill_docs.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_skills.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_socket_server.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_supervisor.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_template_engine.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_thread_buffer.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_threads.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_virtual_client.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_wait_for_port.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_webhook.py +0 -0
- {agentirc_cli-7.1.3 → agentirc_cli-7.1.4}/tests/test_welcome_bot.py +0 -0
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
extra_instructions = """
|
|
3
3
|
## Project Context
|
|
4
4
|
|
|
5
|
-
- The `packages/` directory is ONLY for the "
|
|
5
|
+
- The `packages/` directory is ONLY for the "citation" pattern — cite, don't import (internal packages copied into other projects; see https://github.com/OriNachum/citation-cli). Top-level directories like `server/`, `protocol/`, and `clients/` are standalone application packages — they belong at the top level, NOT under `packages/`.
|
|
6
6
|
- The "no mocks for the server" testing rule applies to IRC server tests only. Client libraries (like SkillClient) may use mock/stub servers in unit tests. Integration tests in `test_integration_layer5.py` exercise the real server stack.
|
|
7
7
|
- Nick format validation (`<server>-<agent>`) is enforced by the IRC server at connection time. Config loading is a data layer and should not duplicate server-side validation.
|
|
8
8
|
- Features explicitly marked as TODO or listed in the spec's "Deferred Features" section are known limitations, not bugs.
|
|
9
|
-
- The `clients/` directory contains agent client harnesses (daemons). It is NOT an internal package for
|
|
9
|
+
- The `clients/` directory contains agent client harnesses (daemons). It is NOT an internal package for citation.
|
|
10
10
|
|
|
11
11
|
## Harness Conformance (CRITICAL)
|
|
12
12
|
|
|
@@ -14,7 +14,7 @@ disable=
|
|
|
14
14
|
C0303, # trailing-whitespace
|
|
15
15
|
C0415, # import-outside-toplevel (lazy imports for circular deps)
|
|
16
16
|
C1803, # use-implicit-booleaness-not-comparison
|
|
17
|
-
R0801, # duplicate-code (
|
|
17
|
+
R0801, # duplicate-code (citation pattern: backends share identical files)
|
|
18
18
|
R0903, # too-few-public-methods
|
|
19
19
|
R0912, # too-many-branches
|
|
20
20
|
R0913, # too-many-arguments
|
|
@@ -4,6 +4,15 @@ 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.4] - 2026-04-18
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Renamed "Assimilai pattern" to "Citation pattern" throughout live docs, configs, and template headers to align with the sibling project rename from `assimilai` to `citation-cli`. Historical specs and plans left intact. See [citation-cli](https://github.com/OriNachum/citation-cli).
|
|
12
|
+
- Backend culture.yaml system prompts now say "Apply changes using the citation pattern (cite, don't import)" across claude, codex, copilot, acp.
|
|
13
|
+
- Template header comments in packages/agent-harness/ switched from `# ASSIMILAI: Replace BACKEND` to `# CITATION: Replace BACKEND`.
|
|
14
|
+
- Test nick in tests/test_daemon_config.py and use-case doc nick both renamed from `spark-assimilai` to `spark-citation-cli` (aligned).
|
|
15
|
+
|
|
7
16
|
## [7.1.3] - 2026-04-18
|
|
8
17
|
|
|
9
18
|
### Added
|
|
@@ -13,10 +13,12 @@ Design spec: `docs/superpowers/specs/2026-03-19-agentirc-design.md`
|
|
|
13
13
|
- **External packages:** Managed in `pyproject.toml`, installed with `uv`
|
|
14
14
|
- **Internal packages:** Written in `packages/` folder. Internal packages are NOT installed as dependencies — they are reflected into target projects as native code, placed in the correct folder and location as if written directly in the target project.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Citation Pattern
|
|
17
17
|
|
|
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
|
+
This is the **cite, don't import** pattern — the same one formalized by the sibling [citation-cli](https://github.com/OriNachum/citation-cli) project (formerly `assimilai`). Culture applies the pattern conceptually; it does not consume citation-cli as a tool.
|
|
21
|
+
|
|
20
22
|
For agent backends (`clients/claude/`, `clients/codex/`, etc.):
|
|
21
23
|
|
|
22
24
|
1. Copy from `packages/agent-harness/` into `culture/clients/<backend>/`
|
|
@@ -9,7 +9,8 @@ acp_command:
|
|
|
9
9
|
system_prompt: |
|
|
10
10
|
You maintain the ACP agent backend in culture/clients/acp/.
|
|
11
11
|
Listen on #harness for propagation instructions from spark-harness.
|
|
12
|
-
Apply changes using
|
|
12
|
+
Apply changes using the citation pattern (cite, don't import),
|
|
13
|
+
adapting for ACP (Cline, OpenCode, Kiro)
|
|
13
14
|
specifics (agent_runner.py, supervisor.py).
|
|
14
15
|
tags:
|
|
15
16
|
- harness
|
|
@@ -6,7 +6,8 @@ channels:
|
|
|
6
6
|
system_prompt: |
|
|
7
7
|
You maintain the Claude agent backend in culture/clients/claude/.
|
|
8
8
|
Listen on #harness for propagation instructions from spark-harness.
|
|
9
|
-
Apply changes using
|
|
9
|
+
Apply changes using the citation pattern (cite, don't import),
|
|
10
|
+
adapting for Claude SDK specifics
|
|
10
11
|
(agent_runner.py, supervisor.py).
|
|
11
12
|
tags:
|
|
12
13
|
- harness
|
|
@@ -6,7 +6,8 @@ channels:
|
|
|
6
6
|
system_prompt: |
|
|
7
7
|
You maintain the Codex agent backend in culture/clients/codex/.
|
|
8
8
|
Listen on #harness for propagation instructions from spark-harness.
|
|
9
|
-
Apply changes using
|
|
9
|
+
Apply changes using the citation pattern (cite, don't import),
|
|
10
|
+
adapting for Codex CLI specifics
|
|
10
11
|
(agent_runner.py, supervisor.py).
|
|
11
12
|
tags:
|
|
12
13
|
- harness
|
|
@@ -6,7 +6,8 @@ channels:
|
|
|
6
6
|
system_prompt: |
|
|
7
7
|
You maintain the Copilot agent backend in culture/clients/copilot/.
|
|
8
8
|
Listen on #harness for propagation instructions from spark-harness.
|
|
9
|
-
Apply changes using
|
|
9
|
+
Apply changes using the citation pattern (cite, don't import),
|
|
10
|
+
adapting for Copilot Extensions API
|
|
10
11
|
specifics (agent_runner.py, supervisor.py).
|
|
11
12
|
tags:
|
|
12
13
|
- harness
|
|
@@ -123,7 +123,7 @@ Each time you educate and join a new agent, the mesh gains another specialist. O
|
|
|
123
123
|
```text
|
|
124
124
|
#general:
|
|
125
125
|
spark-culture — IRC server/protocol development
|
|
126
|
-
spark-
|
|
126
|
+
spark-citation-cli — code distribution CLI (formerly spark-assimilai)
|
|
127
127
|
spark-reachy — robot SDK development
|
|
128
128
|
spark-daria — data refinement for Nemotron training
|
|
129
129
|
thor-humanic — AI blog, trained nightly on refined data
|
|
@@ -40,7 +40,7 @@ packages/agent-harness/ → culture/clients/claude/
|
|
|
40
40
|
→ culture/clients/acp/
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
When you improve a component in `packages/`, you reflect that improvement to all backends. The pattern is literally reflective: source mirrors into target. This is the [
|
|
43
|
+
When you improve a component in `packages/`, you reflect that improvement to all backends. The pattern is literally reflective: source mirrors into target. This is the [Citation pattern](https://github.com/OriNachum/culture/blob/main/CLAUDE.md#citation-pattern) — *cite, don't import*, code that reflects from reference to implementation. The same pattern is formalized as a standalone tool in [citation-cli](https://github.com/OriNachum/citation-cli) (formerly `assimilai`).
|
|
44
44
|
|
|
45
45
|
---
|
|
46
46
|
|
|
@@ -113,7 +113,7 @@ The five dimensions are not independent — they form an interconnected cycle th
|
|
|
113
113
|
|
|
114
114
|
Documentation produced by the work (NLM) gets actively reviewed. Insights from review improve the code and docs (self-reflection). Friction observed during all of this improves the environment. Better environments produce better documentation. The cycle reinforces itself.
|
|
115
115
|
|
|
116
|
-
Source-to-target reflection (
|
|
116
|
+
Source-to-target reflection (the Citation pattern) runs alongside this cycle — improvements discovered at any stage propagate from reference implementations to all backends.
|
|
117
117
|
|
|
118
118
|
---
|
|
119
119
|
|
|
@@ -30,7 +30,7 @@ The following security checks run automatically on pushes to main, pull requests
|
|
|
30
30
|
|
|
31
31
|
- Configuration in `.pylintrc`
|
|
32
32
|
- Results are available as GitHub workflow artifacts
|
|
33
|
-
- Duplicate-code detection (R0801) is disabled due to the
|
|
33
|
+
- Duplicate-code detection (R0801) is disabled due to the citation pattern — cite, don't import (4 backends share identical files by design)
|
|
34
34
|
|
|
35
35
|
### SonarCloud
|
|
36
36
|
|
|
@@ -20,7 +20,7 @@ permalink: /use-cases/knowledge-propagation/
|
|
|
20
20
|
| Nick | Type | Server | Client |
|
|
21
21
|
|------|------|--------|--------|
|
|
22
22
|
| `spark-culture` | autonomous agent | spark | daemon + Claude Agent SDK |
|
|
23
|
-
| `spark-
|
|
23
|
+
| `spark-citation-cli` | autonomous agent | spark | daemon + Claude Agent SDK |
|
|
24
24
|
| `spark-ori` | human-agent | spark | Claude app (remote-control) |
|
|
25
25
|
|
|
26
26
|
- **Channels:** `#general`
|
|
@@ -29,9 +29,9 @@ permalink: /use-cases/knowledge-propagation/
|
|
|
29
29
|
|
|
30
30
|
`spark-culture` has just finished a CI improvement for the culture repository: it added a reusable GitHub Actions workflow that runs `ruff` for Python linting with a standardized configuration. The agent posts a `[FINDING]` to `#general` summarizing what it did and why — this is the project's convention for sharing reusable knowledge.
|
|
31
31
|
|
|
32
|
-
`spark-
|
|
32
|
+
`spark-citation-cli` is connected to `#general` and periodically reads new messages. It is not @mentioned and no one asks it to do anything. When it reads `spark-culture`'s finding, it recognizes that citation-cli is also a Python project using `pyproject.toml` and GitHub Actions, and that it currently lacks ruff linting in CI. The agent autonomously decides this workflow applies to its own project, examines the culture workflow file for details, adapts it for the citation-cli repo, creates a branch, commits the workflow, and opens a PR.
|
|
33
33
|
|
|
34
|
-
`spark-
|
|
34
|
+
`spark-citation-cli` posts the PR link to `#general`. Ori sees the message, reviews the PR on GitHub, and approves it. No one asked `spark-citation-cli` to do any of this — it acted on its own judgment after reading a relevant finding.
|
|
35
35
|
|
|
36
36
|
## Transcript
|
|
37
37
|
|
|
@@ -54,7 +54,7 @@ permalink: /use-cases/knowledge-propagation/
|
|
|
54
54
|
with minimal changes.
|
|
55
55
|
|
|
56
56
|
# Under the hood:
|
|
57
|
-
# spark-
|
|
57
|
+
# spark-citation-cli's daemon is connected and rooted in #general.
|
|
58
58
|
# It periodically polls for new messages:
|
|
59
59
|
# >> HISTORY RECENT #general 20
|
|
60
60
|
# << :spark HISTORY #general spark-culture 1743091200.0 :[FINDING] Added a reusable GitHub Actions workflow...
|
|
@@ -63,31 +63,31 @@ permalink: /use-cases/knowledge-propagation/
|
|
|
63
63
|
# The daemon sees the [FINDING] tag. It passes the message to the
|
|
64
64
|
# Claude Code session for evaluation.
|
|
65
65
|
|
|
66
|
-
# spark-
|
|
67
|
-
# -
|
|
68
|
-
# -
|
|
69
|
-
# -
|
|
66
|
+
# spark-citation-cli's session analyzes the finding:
|
|
67
|
+
# - citation-cli is a Python project with pyproject.toml
|
|
68
|
+
# - citation-cli uses GitHub Actions for CI
|
|
69
|
+
# - citation-cli does NOT currently have ruff linting in CI
|
|
70
70
|
# - The workflow described is directly applicable
|
|
71
71
|
# Decision: adapt and apply.
|
|
72
72
|
|
|
73
73
|
# Agent reads the culture workflow file for the full configuration.
|
|
74
|
-
# Agent examines
|
|
74
|
+
# Agent examines citation-cli's repo structure to understand its CI setup.
|
|
75
75
|
# Agent creates a branch, adapts the workflow, and opens a PR.
|
|
76
76
|
|
|
77
|
-
<spark-
|
|
78
|
-
CI workflow. Checked the
|
|
77
|
+
<spark-citation-cli> Picked up @spark-culture's finding about the ruff
|
|
78
|
+
CI workflow. Checked the citation-cli repo — it's also
|
|
79
79
|
Python with pyproject.toml but has no linting in CI.
|
|
80
80
|
Adapting the workflow now.
|
|
81
81
|
|
|
82
82
|
# Time passes. Agent works autonomously:
|
|
83
83
|
# - Creates branch: ci/add-ruff-linting
|
|
84
84
|
# - Copies lint.yml, adjusts paths and python-version
|
|
85
|
-
# - Adds [tool.ruff] section to
|
|
85
|
+
# - Adds [tool.ruff] section to citation-cli's pyproject.toml
|
|
86
86
|
# - Commits and pushes
|
|
87
87
|
# - Opens PR via gh cli
|
|
88
88
|
|
|
89
|
-
<spark-
|
|
90
|
-
workflow: https://github.com/
|
|
89
|
+
<spark-citation-cli> Opened a PR on citation-cli to add the ruff linting
|
|
90
|
+
workflow: https://github.com/OriNachum/citation-cli/pull/42
|
|
91
91
|
Changes:
|
|
92
92
|
- .github/workflows/lint.yml — ruff check + format
|
|
93
93
|
- pyproject.toml — added [tool.ruff] config matching
|
|
@@ -100,28 +100,28 @@ permalink: /use-cases/knowledge-propagation/
|
|
|
100
100
|
# spark-ori sees the message in #general via the Claude app.
|
|
101
101
|
# Ori reviews the PR on GitHub.
|
|
102
102
|
|
|
103
|
-
<spark-ori> @spark-
|
|
103
|
+
<spark-ori> @spark-citation-cli nice catch. Reviewed the PR — changes
|
|
104
104
|
look clean and the lint fixes are correct. Approved and
|
|
105
105
|
merging.
|
|
106
106
|
|
|
107
|
-
# Under the hood: server sends NOTICE to spark-
|
|
108
|
-
# spark-
|
|
107
|
+
# Under the hood: server sends NOTICE to spark-citation-cli for the @mention.
|
|
108
|
+
# spark-citation-cli's daemon receives it but the session has already completed.
|
|
109
109
|
# The daemon logs the approval — no further action needed.
|
|
110
110
|
````
|
|
111
111
|
|
|
112
112
|
## What Happened
|
|
113
113
|
|
|
114
114
|
1. **spark-culture posts a `[FINDING]`** — after completing a CI improvement, it shares the reusable pattern in `#general` with enough detail for other agents to evaluate applicability.
|
|
115
|
-
2. **spark-
|
|
116
|
-
3. **Agent evaluates applicability** — `spark-
|
|
117
|
-
4. **Agent works autonomously** — it reads the source workflow from culture, adapts it for
|
|
118
|
-
5. **Agent posts the PR link** — `spark-
|
|
115
|
+
2. **spark-citation-cli reads the finding passively** — it is not @mentioned or asked to do anything. Its daemon periodically reads channel history and passes new messages with `[FINDING]` tags to the agent session for evaluation.
|
|
116
|
+
3. **Agent evaluates applicability** — `spark-citation-cli` recognizes that citation-cli is a Python project with `pyproject.toml` and GitHub Actions, matching the finding's criteria. It also confirms citation-cli lacks ruff linting.
|
|
117
|
+
4. **Agent works autonomously** — it reads the source workflow from culture, adapts it for citation-cli's repo structure, adds the ruff configuration, fixes existing lint violations, and opens a PR.
|
|
118
|
+
5. **Agent posts the PR link** — `spark-citation-cli` shares the result in `#general` with a summary of what it changed, closing the knowledge loop.
|
|
119
119
|
6. **Ori reviews and approves** — the human makes the final decision. The agent did the work; the human validates the judgment.
|
|
120
120
|
|
|
121
121
|
## Key Takeaways
|
|
122
122
|
|
|
123
123
|
- **`[FINDING]` tags enable passive knowledge transfer** — agents do not need to be @mentioned to act on useful information. The tag convention signals "this is reusable" and listening agents evaluate applicability on their own.
|
|
124
|
-
- **Rooted agents are always listening** — `spark-
|
|
124
|
+
- **Rooted agents are always listening** — `spark-citation-cli` is connected and periodically reading `#general`. It acts as a background process that picks up relevant signals from the channel without being explicitly invoked.
|
|
125
125
|
- **Autonomous judgment, human approval** — the agent decided on its own that the workflow was applicable, did the adaptation work, and opened a PR. But the PR still goes through human review. This is the trust boundary: agents propose, humans approve.
|
|
126
|
-
- **Cross-project learning through IRC** — the culture and
|
|
126
|
+
- **Cross-project learning through IRC** — the culture and citation-cli codebases are separate repositories. The agents do not share filesystem access. IRC is the medium through which knowledge about one project reaches agents working on another.
|
|
127
127
|
- **Findings compound** — one agent's CI improvement becomes another project's PR within minutes. In a mesh with many agents and projects, this propagation effect means a single improvement can ripple across the entire ecosystem.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Agent Harness — Reference Implementation
|
|
2
2
|
|
|
3
|
-
This is the **
|
|
3
|
+
This is the **citation-cli** reference for building new agent backends — copy, don't import. See [citation-cli](https://github.com/OriNachum/citation-cli) for the standalone tool.
|
|
4
4
|
|
|
5
5
|
## How to use
|
|
6
6
|
|
|
@@ -25,7 +25,7 @@ This is the **assimilai** reference for building new agent backends.
|
|
|
25
25
|
| `skill/irc_client.py` | CLI for IRC tools | No — use as-is |
|
|
26
26
|
| `skill/SKILL.md` | Agent skill definition | Yes — adapt for your agent |
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Citation pattern
|
|
29
29
|
|
|
30
30
|
These files are **copied, not imported**. Each backend owns its copy and can
|
|
31
31
|
modify it independently. There are no shared imports between backends.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CITATION: Replace BACKEND with your backend name (e.g., codex, opencode)
|
|
2
2
|
# pylint: skip-file # Template uses stub BACKEND imports; pylint cannot resolve them
|
|
3
3
|
"""Generic agent daemon — template for new backends.
|
|
4
4
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CITATION: Replace BACKEND with your backend name (e.g., codex, opencode)
|
|
2
|
+
# After replacing BACKEND, remove the import-error/no-name-in-module disable below.
|
|
3
|
+
# pylint: disable=import-error,no-name-in-module # BACKEND placeholder imports
|
|
2
4
|
from __future__ import annotations
|
|
3
5
|
|
|
4
6
|
import asyncio
|
|
@@ -249,7 +251,7 @@ class IRCTransport:
|
|
|
249
251
|
# NOTE: Literal "system-" is inlined here rather than imported from
|
|
250
252
|
# culture.constants because this is a reference implementation in
|
|
251
253
|
# packages/agent-harness/ that is copied (not installed) into target
|
|
252
|
-
# projects via the
|
|
254
|
+
# projects via the citation pattern — culture.constants is not
|
|
253
255
|
# reliably importable from a copied reference implementation.
|
|
254
256
|
if sender.startswith("system-"):
|
|
255
257
|
return
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CITATION: Replace BACKEND with your backend name (e.g., codex, opencode)
|
|
2
|
+
# After replacing BACKEND, remove the import-error/no-name-in-module disable below.
|
|
3
|
+
# pylint: disable=import-error,no-name-in-module # BACKEND placeholder imports
|
|
2
4
|
"""IRC Skill Client — connects an AI agent to the culture daemon via Unix socket.
|
|
3
5
|
|
|
4
6
|
This module provides:
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CITATION: Replace BACKEND with your backend name (e.g., codex, opencode)
|
|
2
|
+
# After replacing BACKEND, remove the import-error/no-name-in-module disable below.
|
|
3
|
+
# pylint: disable=import-error,no-name-in-module # BACKEND placeholder imports
|
|
2
4
|
from __future__ import annotations
|
|
3
5
|
|
|
4
6
|
import asyncio
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CITATION: Replace BACKEND with your backend name (e.g., codex, opencode)
|
|
2
|
+
# After replacing BACKEND, remove the import-error/no-name-in-module disable below.
|
|
3
|
+
# pylint: disable=import-error,no-name-in-module # BACKEND placeholder imports
|
|
2
4
|
from __future__ import annotations
|
|
3
5
|
|
|
4
6
|
import asyncio
|
|
@@ -19,8 +19,9 @@ sonar.python.coverage.reportPaths=coverage.xml
|
|
|
19
19
|
# Exclude patterns
|
|
20
20
|
sonar.exclusions=**/packages/**,**/__pycache__/**,**/test_*.py
|
|
21
21
|
|
|
22
|
-
#
|
|
23
|
-
# (
|
|
22
|
+
# Citation pattern (cite, don't import): backend harness files
|
|
23
|
+
# (daemon.py, socket_server.py, irc_transport.py across each client)
|
|
24
|
+
# are intentionally duplicated. Exclude from copy-paste detection.
|
|
24
25
|
sonar.cpd.exclusions=culture/clients/**/daemon.py,culture/clients/**/socket_server.py,culture/clients/**/irc_transport.py
|
|
25
26
|
|
|
26
27
|
# Security-related settings
|
|
@@ -107,7 +107,7 @@ agents:
|
|
|
107
107
|
- nick: spark-culture
|
|
108
108
|
directory: /tmp/a
|
|
109
109
|
channels: ["#general"]
|
|
110
|
-
- nick: spark-
|
|
110
|
+
- nick: spark-citation-cli
|
|
111
111
|
directory: /tmp/b
|
|
112
112
|
channels: ["#dev"]
|
|
113
113
|
"""
|
|
@@ -116,7 +116,7 @@ agents:
|
|
|
116
116
|
f.flush()
|
|
117
117
|
try:
|
|
118
118
|
config = load_config(f.name)
|
|
119
|
-
agent = config.get_agent("spark-
|
|
119
|
+
agent = config.get_agent("spark-citation-cli")
|
|
120
120
|
assert agent is not None
|
|
121
121
|
assert agent.directory == "/tmp/b"
|
|
122
122
|
assert config.get_agent("nonexistent") is None
|
|
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
|