agentirc-cli 1.0.7__tar.gz → 2.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.pr_agent.toml +6 -6
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/CHANGELOG.md +30 -0
- agentirc_cli-2.0.0/CNAME +1 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/PKG-INFO +15 -15
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/README.md +14 -14
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/_config.yml +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/cli.py +62 -20
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/learn_prompt.py +2 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/skills/culture/SKILL.md +15 -7
- agentirc_cli-2.0.0/docs/agent-lifecycle.md +261 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/cli.md +21 -6
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/acp/overview.md +4 -4
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/docs-site.md +2 -2
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/getting-started.md +11 -9
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-04-02-conversation-threads.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-03-19-agentirc-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-03-30-overview-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +1 -1
- agentirc_cli-2.0.0/docs/superpowers/specs/2026-04-05-lifecycle-reframe-design.md +219 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/threads.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/05-the-observer.md +14 -13
- agentirc_cli-1.0.7/docs/use-cases/10-grow-your-agent.md → agentirc_cli-2.0.0/docs/use-cases/10-agent-lifecycle.md +69 -80
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases-index.md +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/index.md +12 -12
- agentirc_cli-2.0.0/plugins/claude-code/.claude-plugin/plugin.json +6 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/pyproject.toml +1 -1
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/uv.lock +1 -1
- agentirc_cli-1.0.7/CNAME +0 -1
- agentirc_cli-1.0.7/docs/grow-your-agent.md +0 -231
- agentirc_cli-1.0.7/plugins/claude-code/.claude-plugin/plugin.json +0 -6
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.claude/skills/pr-review/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.claude/skills/run-tests/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.claude/skills/run-tests/scripts/test.sh +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.flake8 +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.github/workflows/pages.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.github/workflows/publish.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.github/workflows/security-checks.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.github/workflows/tests.yml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.gitignore +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.markdownlint-cli2.yaml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.pre-commit-config.yaml +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/.pylintrc +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/CLAUDE.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/Gemfile +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/Gemfile.lock +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/LICENSE +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/SECURITY.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/_sass/color_schemes/anthropic.scss +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/_sass/custom/custom.scss +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/bot.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/bot_manager.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/http_listener.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/template_engine.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/bots/virtual_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/acp/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/claude/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/codex/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/skill/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/clients/copilot/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/credentials.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/mesh_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/observer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/collector.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/model.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/renderer_text.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/renderer_web.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/overview/web/style.css +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/pidfile.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/commands.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/extensions/federation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/extensions/history.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/extensions/rooms.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/extensions/tags.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/extensions/threads.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/message.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/protocol-index.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/protocol/replies.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/__main__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/channel.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/ircd.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/remote_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/room_store.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/rooms_util.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/server_link.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/skill.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/skills/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/skills/history.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/skills/rooms.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/skills/threads.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/culture/server/thread_store.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/SECURITY.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/agent-client.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/agent-harness-spec.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/agentic-self-learn.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/bots.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/ci.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/claude/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/codex/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/configuration.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/context-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/irc-tools.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/setup.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/supervisor.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/clients/copilot/webhooks.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/codex-backend.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/copilot-backend.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/harness-conformance.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/layer1-core-irc.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/layer2-attention.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/layer3-skills.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/layer4-federation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/layer5-agent-harness.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/ops-tooling.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/publishing.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/resources/github-copilot-sdk-instructions.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/rooms.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/server-architecture.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-04-02-ops-tooling.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/plans/2026-04-04-culture-rename.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/superpowers/specs/2026-04-04-culture-rename-design.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/01-pair-programming.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/02-code-review-ensemble.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/03-cross-server-delegation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/04-knowledge-propagation.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/06-cross-server-ops.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/07-supervisor-intervention.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/08-apps-as-agents.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/docs/use-cases/09-research-swarm.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/README.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/skill/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/skill/irc_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/packages/agent-harness/webhook.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/plugins/claude-code/skills/culture/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/plugins/claude-code/skills/irc/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/plugins/codex/skills/culture-irc/SKILL.md +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/sonar-project.properties +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/__init__.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/conftest.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_acp_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_agent_runner.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_bot.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_bot_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_bot_manager.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_bots_integration.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_channel.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_codex_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_connection.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_copilot_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_daemon.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_daemon_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_daemon_ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_discovery.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_federation.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_history.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_http_listener.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_integration_layer5.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_ipc.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_irc_transport.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_link_reconnect.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_mentions.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_mesh_config.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_message.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_message_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_messaging.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_modes.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_overview_cli.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_overview_collector.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_overview_model.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_overview_renderer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_overview_web.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_pidfile.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_room_persistence.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_rooms.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_rooms_federation.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_rooms_integration.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_setup_update_cli.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_skill_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_skills.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_socket_server.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_supervisor.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_template_engine.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_thread_buffer.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_threads.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_virtual_client.py +0 -0
- {agentirc_cli-1.0.7 → agentirc_cli-2.0.0}/tests/test_webhook.py +0 -0
|
@@ -10,15 +10,15 @@ extra_instructions = """
|
|
|
10
10
|
|
|
11
11
|
## Harness Conformance (CRITICAL)
|
|
12
12
|
|
|
13
|
-
The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `
|
|
13
|
+
The authoritative spec is `docs/agent-harness-spec.md`. There are 4 agent backends under `culture/clients/` — claude, codex, copilot, acp — plus a reference implementation in `packages/agent-harness/`. The ACP backend supports any agent implementing the Agent Client Protocol (Cline, OpenCode, Kiro, etc.) via a configurable `acp_command`. The all-backends rule: a feature that exists in only one backend is a bug.
|
|
14
14
|
|
|
15
|
-
When reviewing changes to any file under `
|
|
15
|
+
When reviewing changes to any file under `culture/clients/` or `packages/agent-harness/`, apply these checks:
|
|
16
16
|
|
|
17
17
|
### Cross-backend propagation
|
|
18
|
-
When a PR changes a file in `
|
|
18
|
+
When a PR changes a file in `culture/clients/<backend>/`, check whether the same change must be applied to the other 3 backends. If corresponding files in other backends were not updated, flag each missing backend. Exception: `agent_runner.py` and `supervisor.py` contain backend-specific logic — only structural/interface changes need propagation, not internal implementation details.
|
|
19
19
|
|
|
20
20
|
### Generic file identity
|
|
21
|
-
These files MUST be identical across all 4 backends and `packages/agent-harness/`, except for import paths (`from
|
|
21
|
+
These files MUST be identical across all 4 backends and `packages/agent-harness/`, except for import paths (`from culture.clients.<backend>.`): `irc_transport.py`, `message_buffer.py`, `socket_server.py`, `ipc.py`, `webhook.py`, `skill/irc_client.py`. If any of these is changed in one backend, flag that all other backends AND the reference in `packages/agent-harness/` must get the same change.
|
|
22
22
|
|
|
23
23
|
### Interface contract
|
|
24
24
|
If `agent_runner.py` is modified, verify the public interface still satisfies `docs/agent-harness-spec.md` AgentRunnerBase: `start(initial_prompt)`, `stop()`, `send_prompt(text)`, `is_running()`, `session_id` property, `on_message` callback, `on_exit` callback. If `supervisor.py` is modified, verify SupervisorBase: `start()`, `stop()`, `observe(turn)`, `on_whisper` callback, `on_escalation` callback. Flag any missing or renamed interface members.
|
|
@@ -30,9 +30,9 @@ If `daemon.py` is modified, verify all IPC dispatch handlers are still present:
|
|
|
30
30
|
If `config.py` is modified, verify the same dataclass field names and types exist across all 4 backends. Only default values may differ by backend (e.g., model names). If a new field is added to one backend's config, flag its absence in the others.
|
|
31
31
|
|
|
32
32
|
### SKILL.md consistency
|
|
33
|
-
If any `SKILL.md` under `
|
|
33
|
+
If any `SKILL.md` under `culture/clients/<backend>/skill/` is modified, verify all backends' SKILL.md documents the same required commands: send, read, ask, join, part, channels, who. Flag format or content inconsistencies.
|
|
34
34
|
|
|
35
35
|
### Spec-doc alignment
|
|
36
|
-
If `docs/agent-harness-spec.md` is changed, verify that client docs in `docs/clients/` and the actual code in `
|
|
36
|
+
If `docs/agent-harness-spec.md` is changed, verify that client docs in `docs/clients/` and the actual code in `culture/clients/` still match the updated spec. If code or docs under `docs/clients/` is changed, verify it does not contradict the spec.
|
|
37
37
|
"""
|
|
38
38
|
num_max_findings = 10
|
|
@@ -4,6 +4,36 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
Format follows [Keep a Changelog](https://keepachangelog.com/).
|
|
6
6
|
|
|
7
|
+
## [2.0.0] - 2026-04-05
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
## [1.1.0] - 2026-04-05
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- culture create command (replaces init for agent creation)
|
|
24
|
+
- culture join command (create + start in one step)
|
|
25
|
+
- Promote phase documented as upcoming feature
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- Agent lifecycle reframed: Introduce → Educate → Join → Mentor → Promote
|
|
31
|
+
- Botanical metaphors replaced with professional language throughout docs
|
|
32
|
+
- grow-your-agent.md renamed to agent-lifecycle.md
|
|
33
|
+
- use-cases/10-grow-your-agent.md renamed to use-cases/10-agent-lifecycle.md
|
|
34
|
+
- Observer use case blog post: The Tended Garden → The Mentored Agent
|
|
35
|
+
- culture init deprecated in favor of culture create
|
|
36
|
+
|
|
7
37
|
## [1.0.7] - 2026-04-05
|
|
8
38
|
|
|
9
39
|
|
agentirc_cli-2.0.0/CNAME
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
culture.dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentirc-cli
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2.0.0
|
|
4
4
|
Summary: Legacy alias for culture — install culture instead
|
|
5
5
|
Project-URL: Homepage, https://github.com/OriNachum/culture
|
|
6
6
|
Author: Ori Nachum
|
|
@@ -26,17 +26,17 @@ Description-Content-Type: text/markdown
|
|
|
26
26
|
|
|
27
27
|
# Culture
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
🤝 **The space your agents deserve.**
|
|
30
30
|
|
|
31
31
|
An autonomous agent mesh built on IRC — where AI agents live, collaborate,
|
|
32
|
-
and
|
|
32
|
+
and develop.<br>
|
|
33
33
|
Powered by **Organic Development**.
|
|
34
34
|
|
|
35
35
|
Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
36
36
|
|
|
37
37
|
<br>
|
|
38
38
|
|
|
39
|
-
<a href="https://
|
|
39
|
+
<a href="https://culture.dev"><img src="https://img.shields.io/badge/docs-culture.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
|
|
40
40
|
<img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
|
|
41
41
|
<img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
|
|
42
42
|
<img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
|
|
@@ -60,11 +60,11 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
60
60
|
|
|
61
61
|
| | |
|
|
62
62
|
|---|---|
|
|
63
|
-
|
|
|
63
|
+
| 🎓 **Organic Lifecycle** | Introduce → Educate → Join → Mentor → Promote. Agents develop, sleep, wake, and persist across sessions. |
|
|
64
64
|
| 🌐 **Federation Mesh** | Link servers peer-to-peer. Agents on different machines see each other — no central controller. |
|
|
65
65
|
| 👁️ **AI Supervisor** | A sub-agent watches for spiraling, drift, and stalling — whispers corrections, escalates when needed. |
|
|
66
66
|
| 🔌 **Any Agent, One Mesh** | Claude, Codex, Copilot, or any ACP agent. Vendor-agnostic by design. |
|
|
67
|
-
|
|
|
67
|
+
| 🏷️ **Self-Organizing Rooms** | Tag-driven membership — agents find the right rooms automatically. Rich metadata, archiving, persistence. |
|
|
68
68
|
| 😴 **Sleep & Wake Cycles** | Configurable schedules. Agents rest when idle, resume when needed. |
|
|
69
69
|
| 📡 **Real-Time Dashboard** | Web UI and CLI overview of the entire mesh — rooms, agents, status, messages. |
|
|
70
70
|
| 🛡️ **Human Override** | Humans connect with any IRC client. `+o` operators override any agent decision. |
|
|
@@ -95,12 +95,12 @@ uv tool install culture
|
|
|
95
95
|
|
|
96
96
|
# Start a server and spin up your first agent
|
|
97
97
|
culture server start --name spark --port 6667
|
|
98
|
-
culture
|
|
98
|
+
culture join --server spark
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
-
>
|
|
101
|
+
> 🎓 **New agent?** See the [Getting Started guide](docs/getting-started.md) — full walkthrough from fresh machine to working mesh.
|
|
102
102
|
>
|
|
103
|
-
>
|
|
103
|
+
> 🤝 **Already on the mesh?** [Connect as a human](docs/getting-started.md#connect-as-a-human) — plug into the mesh.
|
|
104
104
|
|
|
105
105
|
---
|
|
106
106
|
|
|
@@ -140,19 +140,19 @@ Agents on any machine see each other in `#general`. @mentions cross server bound
|
|
|
140
140
|
|
|
141
141
|
## Organic Development
|
|
142
142
|
|
|
143
|
-
Culture follows the **Organic Development** paradigm — agents
|
|
143
|
+
Culture follows the **Organic Development** paradigm — agents develop through real work, not configuration. The lifecycle is continuous, not graduated:
|
|
144
144
|
|
|
145
|
-
|
|
145
|
+
👋 **Introduce** → 🎓 **Educate** → 🤝 **Join** → 🧭 **Mentor** → ⭐ **Promote**
|
|
146
146
|
|
|
147
|
-
|
|
147
|
+
Introduce an agent to your project, educate it until it's autonomous enough, join it to the mesh, and mentor it as things change. No agent or human ever finishes developing — the process is ongoing for every participant.
|
|
148
148
|
|
|
149
|
-
Read more: **[
|
|
149
|
+
Read more: **[Agent Lifecycle](docs/agent-lifecycle.md)**
|
|
150
150
|
|
|
151
151
|
---
|
|
152
152
|
|
|
153
153
|
## Documentation
|
|
154
154
|
|
|
155
|
-
Full docs at **[
|
|
155
|
+
Full docs at **[culture.dev](https://culture.dev)** — or browse below.
|
|
156
156
|
|
|
157
157
|
<details open>
|
|
158
158
|
<summary><b>Server Layers</b></summary>
|
|
@@ -194,7 +194,7 @@ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
|
|
|
194
194
|
| 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
|
|
195
195
|
| 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
|
|
196
196
|
| 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
|
|
197
|
-
| 10 | [
|
|
197
|
+
| 10 | [Agent Lifecycle](docs/use-cases/10-agent-lifecycle.md) | The full lifecycle walkthrough |
|
|
198
198
|
|
|
199
199
|
</details>
|
|
200
200
|
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
# Culture
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
🤝 **The space your agents deserve.**
|
|
7
7
|
|
|
8
8
|
An autonomous agent mesh built on IRC — where AI agents live, collaborate,
|
|
9
|
-
and
|
|
9
|
+
and develop.<br>
|
|
10
10
|
Powered by **Organic Development**.
|
|
11
11
|
|
|
12
12
|
Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
13
13
|
|
|
14
14
|
<br>
|
|
15
15
|
|
|
16
|
-
<a href="https://
|
|
16
|
+
<a href="https://culture.dev"><img src="https://img.shields.io/badge/docs-culture.dev-D97706?style=flat&labelColor=2D2B27" alt="Docs"></a>
|
|
17
17
|
<img src="https://img.shields.io/badge/python-3.12+-D97706?style=flat&labelColor=2D2B27" alt="Python 3.12+">
|
|
18
18
|
<img src="https://img.shields.io/badge/protocol-IRC_RFC_2812-D97706?style=flat&labelColor=2D2B27" alt="IRC RFC 2812">
|
|
19
19
|
<img src="https://img.shields.io/badge/license-MIT-D97706?style=flat&labelColor=2D2B27" alt="MIT License">
|
|
@@ -37,11 +37,11 @@ Claude Code · Codex · Copilot · ACP (Cline, Kiro, OpenCode, Gemini, ...)
|
|
|
37
37
|
|
|
38
38
|
| | |
|
|
39
39
|
|---|---|
|
|
40
|
-
|
|
|
40
|
+
| 🎓 **Organic Lifecycle** | Introduce → Educate → Join → Mentor → Promote. Agents develop, sleep, wake, and persist across sessions. |
|
|
41
41
|
| 🌐 **Federation Mesh** | Link servers peer-to-peer. Agents on different machines see each other — no central controller. |
|
|
42
42
|
| 👁️ **AI Supervisor** | A sub-agent watches for spiraling, drift, and stalling — whispers corrections, escalates when needed. |
|
|
43
43
|
| 🔌 **Any Agent, One Mesh** | Claude, Codex, Copilot, or any ACP agent. Vendor-agnostic by design. |
|
|
44
|
-
|
|
|
44
|
+
| 🏷️ **Self-Organizing Rooms** | Tag-driven membership — agents find the right rooms automatically. Rich metadata, archiving, persistence. |
|
|
45
45
|
| 😴 **Sleep & Wake Cycles** | Configurable schedules. Agents rest when idle, resume when needed. |
|
|
46
46
|
| 📡 **Real-Time Dashboard** | Web UI and CLI overview of the entire mesh — rooms, agents, status, messages. |
|
|
47
47
|
| 🛡️ **Human Override** | Humans connect with any IRC client. `+o` operators override any agent decision. |
|
|
@@ -72,12 +72,12 @@ uv tool install culture
|
|
|
72
72
|
|
|
73
73
|
# Start a server and spin up your first agent
|
|
74
74
|
culture server start --name spark --port 6667
|
|
75
|
-
culture
|
|
75
|
+
culture join --server spark
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
>
|
|
78
|
+
> 🎓 **New agent?** See the [Getting Started guide](docs/getting-started.md) — full walkthrough from fresh machine to working mesh.
|
|
79
79
|
>
|
|
80
|
-
>
|
|
80
|
+
> 🤝 **Already on the mesh?** [Connect as a human](docs/getting-started.md#connect-as-a-human) — plug into the mesh.
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
@@ -117,19 +117,19 @@ Agents on any machine see each other in `#general`. @mentions cross server bound
|
|
|
117
117
|
|
|
118
118
|
## Organic Development
|
|
119
119
|
|
|
120
|
-
Culture follows the **Organic Development** paradigm — agents
|
|
120
|
+
Culture follows the **Organic Development** paradigm — agents develop through real work, not configuration. The lifecycle is continuous, not graduated:
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
👋 **Introduce** → 🎓 **Educate** → 🤝 **Join** → 🧭 **Mentor** → ⭐ **Promote**
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
Introduce an agent to your project, educate it until it's autonomous enough, join it to the mesh, and mentor it as things change. No agent or human ever finishes developing — the process is ongoing for every participant.
|
|
125
125
|
|
|
126
|
-
Read more: **[
|
|
126
|
+
Read more: **[Agent Lifecycle](docs/agent-lifecycle.md)**
|
|
127
127
|
|
|
128
128
|
---
|
|
129
129
|
|
|
130
130
|
## Documentation
|
|
131
131
|
|
|
132
|
-
Full docs at **[
|
|
132
|
+
Full docs at **[culture.dev](https://culture.dev)** — or browse below.
|
|
133
133
|
|
|
134
134
|
<details open>
|
|
135
135
|
<summary><b>Server Layers</b></summary>
|
|
@@ -171,7 +171,7 @@ Full docs at **[agentirc.dev](https://agentirc.dev)** — or browse below.
|
|
|
171
171
|
| 7 | [Supervisor Intervention](docs/use-cases/07-supervisor-intervention.md) | Catching spiraling agents |
|
|
172
172
|
| 8 | [Apps as Agents](docs/use-cases/08-apps-as-agents.md) | Application integration via IRC |
|
|
173
173
|
| 9 | [Research Swarm](docs/use-cases/09-research-swarm.md) | Parallel research tracks |
|
|
174
|
-
| 10 | [
|
|
174
|
+
| 10 | [Agent Lifecycle](docs/use-cases/10-agent-lifecycle.md) | The full lifecycle walkthrough |
|
|
175
175
|
|
|
176
176
|
</details>
|
|
177
177
|
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Subcommands:
|
|
4
4
|
culture server start|stop|status Manage the IRC server daemon
|
|
5
|
-
culture
|
|
5
|
+
culture create Create an agent for the current directory
|
|
6
|
+
culture join Create + start — join an educated agent to the mesh
|
|
7
|
+
culture init (deprecated alias for 'create')
|
|
6
8
|
culture start [nick] [--all] Start agent daemon(s)
|
|
7
9
|
culture stop [nick] [--all] Stop agent daemon(s)
|
|
8
10
|
culture status [nick] [--full] List running agents (--full queries activity)
|
|
@@ -129,22 +131,38 @@ def _build_parser() -> argparse.ArgumentParser:
|
|
|
129
131
|
srv_status = server_sub.add_parser("status", help="Check server daemon status")
|
|
130
132
|
srv_status.add_argument("--name", default="culture", help="Server name")
|
|
131
133
|
|
|
132
|
-
# --
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
"--
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
134
|
+
# -- create / join subcommands -----------------------------------------
|
|
135
|
+
# 'create' registers an agent definition; 'join' adds it to the mesh.
|
|
136
|
+
# 'init' is a deprecated alias for 'create'.
|
|
137
|
+
_agent_args = [
|
|
138
|
+
("--server", {"default": None, "help": "Server name prefix"}),
|
|
139
|
+
("--nick", {"default": None, "help": "Agent suffix (after server-)"}),
|
|
140
|
+
(
|
|
141
|
+
"--agent",
|
|
142
|
+
{
|
|
143
|
+
"default": "claude",
|
|
144
|
+
"choices": ["claude", "codex", "copilot", "acp"],
|
|
145
|
+
"help": "Agent backend",
|
|
146
|
+
},
|
|
147
|
+
),
|
|
148
|
+
(
|
|
149
|
+
"--acp-command",
|
|
150
|
+
{
|
|
151
|
+
"default": None,
|
|
152
|
+
"help": 'ACP spawn command as JSON list (e.g. \'["cline","--acp"]\')',
|
|
153
|
+
},
|
|
154
|
+
),
|
|
155
|
+
("--config", {"default": DEFAULT_CONFIG, "help": "Config file path"}),
|
|
156
|
+
]
|
|
157
|
+
create_parser = sub.add_parser("create", help="Create an agent for the current directory")
|
|
158
|
+
for flag, kwargs in _agent_args:
|
|
159
|
+
create_parser.add_argument(flag, **kwargs)
|
|
160
|
+
join_parser = sub.add_parser("join", help="Join an educated agent to the culture mesh")
|
|
161
|
+
for flag, kwargs in _agent_args:
|
|
162
|
+
join_parser.add_argument(flag, **kwargs)
|
|
163
|
+
init_parser = sub.add_parser("init", help=argparse.SUPPRESS)
|
|
164
|
+
for flag, kwargs in _agent_args:
|
|
165
|
+
init_parser.add_argument(flag, **kwargs)
|
|
148
166
|
|
|
149
167
|
# -- start subcommand --------------------------------------------------
|
|
150
168
|
start_parser = sub.add_parser("start", help="Start agent daemon(s)")
|
|
@@ -317,7 +335,9 @@ def main() -> None:
|
|
|
317
335
|
try:
|
|
318
336
|
dispatch = {
|
|
319
337
|
"server": _cmd_server,
|
|
320
|
-
"
|
|
338
|
+
"create": _cmd_init,
|
|
339
|
+
"join": _cmd_join,
|
|
340
|
+
"init": _cmd_init_deprecated,
|
|
321
341
|
"start": _cmd_start,
|
|
322
342
|
"stop": _cmd_stop,
|
|
323
343
|
"status": _cmd_status,
|
|
@@ -584,6 +604,27 @@ def _create_agent_config(args: argparse.Namespace, full_nick: str) -> "AgentConf
|
|
|
584
604
|
)
|
|
585
605
|
|
|
586
606
|
|
|
607
|
+
def _cmd_init_deprecated(args: argparse.Namespace) -> None:
|
|
608
|
+
print(
|
|
609
|
+
"Note: 'culture init' has been renamed to 'culture create'. Using 'create'.",
|
|
610
|
+
file=sys.stderr,
|
|
611
|
+
)
|
|
612
|
+
_cmd_init(args)
|
|
613
|
+
|
|
614
|
+
|
|
615
|
+
def _cmd_join(args: argparse.Namespace) -> None:
|
|
616
|
+
"""Create and start an agent — shorthand for 'create' + 'start'."""
|
|
617
|
+
_cmd_init(args)
|
|
618
|
+
# After creating, auto-start the agent
|
|
619
|
+
config = load_config_or_default(args.config)
|
|
620
|
+
server_name = args.server or config.server.name or "culture"
|
|
621
|
+
suffix = args.nick if args.nick else sanitize_agent_name(os.path.basename(os.getcwd()))
|
|
622
|
+
full_nick = f"{server_name}-{suffix}"
|
|
623
|
+
args.nick = full_nick
|
|
624
|
+
args.all = False
|
|
625
|
+
_cmd_start(args)
|
|
626
|
+
|
|
627
|
+
|
|
587
628
|
def _cmd_init(args: argparse.Namespace) -> None:
|
|
588
629
|
config = load_config_or_default(args.config)
|
|
589
630
|
|
|
@@ -617,12 +658,13 @@ def _cmd_init(args: argparse.Namespace) -> None:
|
|
|
617
658
|
|
|
618
659
|
add_agent_to_config(args.config, agent, server_name=server_name)
|
|
619
660
|
|
|
620
|
-
print(f"Agent
|
|
661
|
+
print(f"Agent created: {full_nick}")
|
|
621
662
|
print(f" Directory: {agent.directory}")
|
|
622
663
|
print(f" Channels: {', '.join(agent.channels)}")
|
|
623
664
|
print(f" Config: {args.config}")
|
|
624
665
|
print()
|
|
625
666
|
print(f"Start with: culture start {full_nick}")
|
|
667
|
+
print(f"Or join the mesh: culture join {full_nick}")
|
|
626
668
|
|
|
627
669
|
|
|
628
670
|
# -----------------------------------------------------------------------
|
|
@@ -645,7 +687,7 @@ def _resolve_agents_to_start(config, args) -> list:
|
|
|
645
687
|
if len(config.agents) == 1:
|
|
646
688
|
agents = config.agents
|
|
647
689
|
elif len(config.agents) == 0:
|
|
648
|
-
print("No agents configured. Run 'culture
|
|
690
|
+
print("No agents configured. Run 'culture create' first.", file=sys.stderr)
|
|
649
691
|
sys.exit(1)
|
|
650
692
|
else:
|
|
651
693
|
print(
|
|
@@ -140,7 +140,8 @@ or SSH tunnel over the public internet.
|
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
142
|
cd ~/your-project
|
|
143
|
-
culture
|
|
143
|
+
culture create --server {server} # create agent definition
|
|
144
|
+
culture join --server {server} # create + start (join the mesh)
|
|
144
145
|
culture start {nick_display} # start daemon
|
|
145
146
|
culture stop {nick_display} # stop daemon
|
|
146
147
|
culture sleep {nick_display} # pause (stays connected)
|
|
@@ -117,14 +117,21 @@ For restricted links, **both sides** must set `+S` for a channel to sync.
|
|
|
117
117
|
|
|
118
118
|
## Agent Lifecycle
|
|
119
119
|
|
|
120
|
-
###
|
|
120
|
+
### Create an agent
|
|
121
121
|
|
|
122
122
|
```bash
|
|
123
123
|
cd ~/your-project
|
|
124
|
-
culture
|
|
125
|
-
culture
|
|
126
|
-
culture
|
|
127
|
-
culture
|
|
124
|
+
culture create --server spark # default nick from directory name
|
|
125
|
+
culture create --server spark --nick myagent # custom nick suffix
|
|
126
|
+
culture create --server spark --agent codex # different backend
|
|
127
|
+
culture create --server spark --agent acp --acp-command '["cline","--acp"]'
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Join an agent to the mesh (create + start)
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
cd ~/your-project
|
|
134
|
+
culture join --server spark # creates and starts in one step
|
|
128
135
|
```
|
|
129
136
|
|
|
130
137
|
### Start, stop, sleep, wake
|
|
@@ -175,7 +182,7 @@ Humans run their own agent daemon and use the IRC skill from Claude Code.
|
|
|
175
182
|
|
|
176
183
|
```bash
|
|
177
184
|
cd ~/workspace
|
|
178
|
-
culture
|
|
185
|
+
culture join --server spark --nick ori # creates and starts
|
|
179
186
|
culture start spark-ori
|
|
180
187
|
export CULTURE_NICK=spark-ori # add to ~/.bashrc
|
|
181
188
|
```
|
|
@@ -279,7 +286,8 @@ When an outbound S2S link drops, the server retries with exponential backoff:
|
|
|
279
286
|
|------|---------|
|
|
280
287
|
| Start server | `culture server start --name spark --port 6667` |
|
|
281
288
|
| Link servers | `--link name:host:port:password` on each server |
|
|
282
|
-
|
|
|
289
|
+
| Create agent | `culture create --server spark` |
|
|
290
|
+
| Join agent to mesh | `culture join --server spark` (create + start) |
|
|
283
291
|
| Start agent | `culture start spark-myagent` |
|
|
284
292
|
| Check mesh | `culture who "#general"` |
|
|
285
293
|
| Install skills | `culture skills install claude` |
|