agentirc-cli 7.4.0__tar.gz → 8.1.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.
Files changed (406) hide show
  1. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/CHANGELOG.md +24 -0
  2. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/PKG-INFO +9 -3
  3. agentirc_cli-8.1.0/README.md +34 -0
  4. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_config.culture.yml +6 -4
  5. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/__init__.py +4 -3
  6. agentirc_cli-8.1.0/culture/cli/_passthrough.py +116 -0
  7. agentirc_cli-8.1.0/culture/cli/afi.py +71 -0
  8. agentirc_cli-8.1.0/culture/cli/devex.py +71 -0
  9. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/introspect.py +24 -1
  10. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/features.md +15 -0
  11. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/index.md +6 -2
  12. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/mental-model.md +15 -0
  13. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/vision.md +23 -0
  14. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/what-is-culture.md +29 -7
  15. agentirc_cli-8.1.0/docs/reference/cli/afi.md +95 -0
  16. agentirc_cli-8.1.0/docs/reference/cli/devex.md +129 -0
  17. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/cli/index.md +16 -3
  18. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/pyproject.toml +2 -1
  19. agentirc_cli-8.1.0/tests/test_cli_afi.py +111 -0
  20. agentirc_cli-7.4.0/tests/test_cli_agex.py → agentirc_cli-8.1.0/tests/test_cli_devex.py +15 -9
  21. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_cli_introspect.py +48 -12
  22. agentirc_cli-8.1.0/tests/test_cli_passthrough.py +146 -0
  23. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/uv.lock +12 -1
  24. agentirc_cli-7.4.0/README.md +0 -29
  25. agentirc_cli-7.4.0/culture/cli/agex.py +0 -101
  26. agentirc_cli-7.4.0/docs/reference/cli/agex.md +0 -103
  27. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.claude/agents/doc-test-alignment.md +0 -0
  28. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.claude/skills/pr-review/SKILL.md +0 -0
  29. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.claude/skills/run-tests/SKILL.md +0 -0
  30. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.claude/skills/run-tests/scripts/test.sh +0 -0
  31. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.flake8 +0 -0
  32. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.github/workflows/docs-check.yml +0 -0
  33. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.github/workflows/publish.yml +0 -0
  34. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.github/workflows/security-checks.yml +0 -0
  35. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.github/workflows/tests.yml +0 -0
  36. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.gitignore +0 -0
  37. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.markdownlint-cli2.yaml +0 -0
  38. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.pr_agent.toml +0 -0
  39. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.pre-commit-config.yaml +0 -0
  40. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/.pylintrc +0 -0
  41. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/CLAUDE.md +0 -0
  42. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/Gemfile +0 -0
  43. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/Gemfile.lock +0 -0
  44. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/LICENSE +0 -0
  45. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/SECURITY.md +0 -0
  46. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_config.base.yml +0 -0
  47. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_data/sites.yml +0 -0
  48. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_includes/head_custom.html +0 -0
  49. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_sass/color_schemes/anthropic.scss +0 -0
  50. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_sass/color_schemes/dark-terminal.scss +0 -0
  51. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/_sass/custom/custom.scss +0 -0
  52. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/IMG_3183.png +0 -0
  53. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/apple-touch-icon.png +0 -0
  54. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/favicon-16x16.png +0 -0
  55. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/favicon-32x32.png +0 -0
  56. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/favicon.ico +0 -0
  57. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/og-agentirc.png +0 -0
  58. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/assets/images/og-culture.png +0 -0
  59. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/__init__.py +0 -0
  60. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/__main__.py +0 -0
  61. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/CLAUDE.md +0 -0
  62. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/__init__.py +0 -0
  63. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/__main__.py +0 -0
  64. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/channel.py +0 -0
  65. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/client.py +0 -0
  66. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/config.py +0 -0
  67. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/docs/agentirc-architecture.md +0 -0
  68. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/docs/agentirc-features.md +0 -0
  69. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/docs/agentirc-skill.md +0 -0
  70. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/docs/agentirc.md +0 -0
  71. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/events.py +0 -0
  72. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/history_store.py +0 -0
  73. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/ircd.py +0 -0
  74. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/remote_client.py +0 -0
  75. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/room_store.py +0 -0
  76. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/rooms_util.py +0 -0
  77. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/server_link.py +0 -0
  78. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skill.py +0 -0
  79. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skills/__init__.py +0 -0
  80. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skills/history.py +0 -0
  81. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skills/icon.py +0 -0
  82. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skills/rooms.py +0 -0
  83. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/skills/threads.py +0 -0
  84. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/agentirc/thread_store.py +0 -0
  85. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/aio.py +0 -0
  86. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/__init__.py +0 -0
  87. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/bot.py +0 -0
  88. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/bot_manager.py +0 -0
  89. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/config.py +0 -0
  90. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/filter_dsl.py +0 -0
  91. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/http_listener.py +0 -0
  92. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/system/__init__.py +0 -0
  93. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/system/welcome/__init__.py +0 -0
  94. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/system/welcome/bot.yaml +0 -0
  95. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/system/welcome/handler.py +0 -0
  96. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/template_engine.py +0 -0
  97. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/bots/virtual_client.py +0 -0
  98. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/agent.py +0 -0
  99. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/bot.py +0 -0
  100. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/channel.py +0 -0
  101. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/mesh.py +0 -0
  102. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/server.py +0 -0
  103. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/__init__.py +0 -0
  104. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/constants.py +0 -0
  105. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/display.py +0 -0
  106. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/formatting.py +0 -0
  107. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/ipc.py +0 -0
  108. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/mesh.py +0 -0
  109. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/shared/process.py +0 -0
  110. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/cli/skills.py +0 -0
  111. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/__init__.py +0 -0
  112. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/__init__.py +0 -0
  113. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/agent_runner.py +0 -0
  114. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/config.py +0 -0
  115. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/culture.yaml +0 -0
  116. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/daemon.py +0 -0
  117. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/ipc.py +0 -0
  118. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/irc_transport.py +0 -0
  119. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/message_buffer.py +0 -0
  120. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/skill/SKILL.md +0 -0
  121. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/skill/__init__.py +0 -0
  122. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/skill/irc_client.py +0 -0
  123. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/socket_server.py +0 -0
  124. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/supervisor.py +0 -0
  125. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/acp/webhook.py +0 -0
  126. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/__init__.py +0 -0
  127. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/__main__.py +0 -0
  128. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/agent_runner.py +0 -0
  129. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/config.py +0 -0
  130. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/culture.yaml +0 -0
  131. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/daemon.py +0 -0
  132. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/ipc.py +0 -0
  133. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/irc_transport.py +0 -0
  134. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/message_buffer.py +0 -0
  135. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/skill/SKILL.md +0 -0
  136. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/skill/__init__.py +0 -0
  137. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/skill/irc_client.py +0 -0
  138. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/socket_server.py +0 -0
  139. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/supervisor.py +0 -0
  140. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/claude/webhook.py +0 -0
  141. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/__init__.py +0 -0
  142. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/agent_runner.py +0 -0
  143. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/config.py +0 -0
  144. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/culture.yaml +0 -0
  145. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/daemon.py +0 -0
  146. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/ipc.py +0 -0
  147. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/irc_transport.py +0 -0
  148. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/message_buffer.py +0 -0
  149. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/skill/SKILL.md +0 -0
  150. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/skill/__init__.py +0 -0
  151. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/skill/irc_client.py +0 -0
  152. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/socket_server.py +0 -0
  153. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/supervisor.py +0 -0
  154. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/codex/webhook.py +0 -0
  155. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/__init__.py +0 -0
  156. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/agent_runner.py +0 -0
  157. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/config.py +0 -0
  158. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/culture.yaml +0 -0
  159. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/daemon.py +0 -0
  160. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/ipc.py +0 -0
  161. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/irc_transport.py +0 -0
  162. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/message_buffer.py +0 -0
  163. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/skill/SKILL.md +0 -0
  164. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/skill/__init__.py +0 -0
  165. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/skill/irc_client.py +0 -0
  166. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/socket_server.py +0 -0
  167. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/supervisor.py +0 -0
  168. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/clients/copilot/webhook.py +0 -0
  169. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/config.py +0 -0
  170. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/__init__.py +0 -0
  171. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/app.py +0 -0
  172. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/client.py +0 -0
  173. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/commands.py +0 -0
  174. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/status.py +0 -0
  175. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/widgets/__init__.py +0 -0
  176. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/widgets/chat.py +0 -0
  177. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/widgets/info_panel.py +0 -0
  178. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/console/widgets/sidebar.py +0 -0
  179. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/constants.py +0 -0
  180. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/credentials.py +0 -0
  181. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/formatting.py +0 -0
  182. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/learn_prompt.py +0 -0
  183. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/mesh_config.py +0 -0
  184. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/observer.py +0 -0
  185. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/__init__.py +0 -0
  186. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/collector.py +0 -0
  187. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/model.py +0 -0
  188. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/renderer_text.py +0 -0
  189. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/renderer_web.py +0 -0
  190. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/overview/web/style.css +0 -0
  191. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/persistence.py +0 -0
  192. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/pidfile.py +0 -0
  193. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/__init__.py +0 -0
  194. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/commands.py +0 -0
  195. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/events.md +0 -0
  196. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/federation.md +0 -0
  197. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/history.md +0 -0
  198. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/icons.md +0 -0
  199. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/rooms.md +0 -0
  200. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/tags.md +0 -0
  201. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/extensions/threads.md +0 -0
  202. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/message.py +0 -0
  203. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/protocol-index.md +0 -0
  204. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/protocol/replies.py +0 -0
  205. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/culture/skills/culture/SKILL.md +0 -0
  206. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/README.md +0 -0
  207. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/agentirc/architecture-overview.md +0 -0
  208. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/agentirc/bots.md +0 -0
  209. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/agentirc/events.md +0 -0
  210. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/agentirc/index.md +0 -0
  211. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/agentirc/why-agentirc.md +0 -0
  212. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/agent-lifecycle.md +0 -0
  213. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/choose-a-harness.md +0 -0
  214. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/operate.md +0 -0
  215. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/patterns.md +0 -0
  216. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/quickstart.md +0 -0
  217. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/reflective-development.md +0 -0
  218. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/culture/vision-patterns-index.md +0 -0
  219. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/architecture/agent-harness-spec.md +0 -0
  220. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/architecture/index.md +0 -0
  221. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/architecture/layers.md +0 -0
  222. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/architecture/threads.md +0 -0
  223. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/cli/commands.md +0 -0
  224. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/console.md +0 -0
  225. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/harnesses/acp.md +0 -0
  226. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/harnesses/claude.md +0 -0
  227. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/harnesses/codex.md +0 -0
  228. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/harnesses/copilot.md +0 -0
  229. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/harnesses/index.md +0 -0
  230. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/index.md +0 -0
  231. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/server/architecture.md +0 -0
  232. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/server/config.md +0 -0
  233. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/server/deployment.md +0 -0
  234. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/server/index.md +0 -0
  235. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/reference/server/security.md +0 -0
  236. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/resources/github-copilot-sdk-instructions.md +0 -0
  237. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/resources/positioning.md +0 -0
  238. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/federation.md +0 -0
  239. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/harnesses.md +0 -0
  240. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/humans-and-agents.md +0 -0
  241. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/index.md +0 -0
  242. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/persistence.md +0 -0
  243. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/concepts/rooms.md +0 -0
  244. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/demos/magic-demo.md +0 -0
  245. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/guides/first-session.md +0 -0
  246. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/guides/index.md +0 -0
  247. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/guides/join-as-human.md +0 -0
  248. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/guides/local-setup.md +0 -0
  249. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/guides/multi-machine.md +0 -0
  250. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/01-pair-programming.md +0 -0
  251. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/02-code-review-ensemble.md +0 -0
  252. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/03-cross-server-delegation.md +0 -0
  253. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/04-knowledge-propagation.md +0 -0
  254. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/05-the-observer.md +0 -0
  255. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/06-cross-server-ops.md +0 -0
  256. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/07-supervisor-intervention.md +0 -0
  257. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/08-apps-as-agents.md +0 -0
  258. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/09-research-swarm.md +0 -0
  259. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases/10-agent-lifecycle.md +0 -0
  260. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/shared/use-cases-index.md +0 -0
  261. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-03-19-layer1-core-irc.md +0 -0
  262. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-03-21-layer5-agent-harness.md +0 -0
  263. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-03-30-overview.md +0 -0
  264. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-03-30-rooms-management.md +0 -0
  265. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-02-conversation-threads.md +0 -0
  266. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-02-ops-tooling.md +0 -0
  267. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-04-culture-rename.md +0 -0
  268. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-05-docs-speak-culture.md +0 -0
  269. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-06-console-chat.md +0 -0
  270. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-09-decentralized-agent-config.md +0 -0
  271. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-12-console-enhancements.md +0 -0
  272. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-15-mesh-events.md +0 -0
  273. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-18-culture-dev-positioning.md +0 -0
  274. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/plans/2026-04-22-agex-integration.md +0 -0
  275. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-03-19-agentirc-design.md +0 -0
  276. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-03-21-layer5-agent-harness-design.md +0 -0
  277. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-03-30-overview-design.md +0 -0
  278. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-03-30-rooms-management-design.md +0 -0
  279. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-02-conversation-threads-design.md +0 -0
  280. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-02-ops-tooling-design.md +0 -0
  281. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-03-bots-webhooks-design.md +0 -0
  282. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-04-culture-rename-design.md +0 -0
  283. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-05-docs-speak-culture-design.md +0 -0
  284. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-05-lifecycle-reframe-design.md +0 -0
  285. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-06-cli-reorganization-design.md +0 -0
  286. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-06-console-chat-design.md +0 -0
  287. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-07-entity-archiving-design.md +0 -0
  288. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-07-reflective-development-reframe-design.md +0 -0
  289. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-08-reflective-development-deepening-design.md +0 -0
  290. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-09-decentralized-agent-config-design.md +0 -0
  291. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-12-console-enhancements-design.md +0 -0
  292. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-15-mesh-events-design.md +0 -0
  293. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-17-sites-repositioning-design.md +0 -0
  294. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-18-culture-dev-positioning-design.md +0 -0
  295. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/docs/superpowers/specs/2026-04-22-agex-integration-design.md +0 -0
  296. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/favicon.ico +0 -0
  297. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/README.md +0 -0
  298. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/config.py +0 -0
  299. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/culture.yaml +0 -0
  300. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/daemon.py +0 -0
  301. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/ipc.py +0 -0
  302. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/irc_transport.py +0 -0
  303. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/message_buffer.py +0 -0
  304. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/skill/SKILL.md +0 -0
  305. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/skill/irc_client.py +0 -0
  306. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/socket_server.py +0 -0
  307. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/packages/agent-harness/webhook.py +0 -0
  308. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/plugins/claude-code/.claude-plugin/plugin.json +0 -0
  309. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/plugins/claude-code/skills/culture/SKILL.md +0 -0
  310. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/plugins/claude-code/skills/irc/SKILL.md +0 -0
  311. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/plugins/codex/skills/culture-irc/SKILL.md +0 -0
  312. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/robots.txt +0 -0
  313. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/sitemap-agentirc.html +0 -0
  314. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/sitemap-main.html +0 -0
  315. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/sitemap.html +0 -0
  316. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/sonar-project.properties +0 -0
  317. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/__init__.py +0 -0
  318. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/conftest.py +0 -0
  319. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_acp_daemon.py +0 -0
  320. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_agent_runner.py +0 -0
  321. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_archive.py +0 -0
  322. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_bot.py +0 -0
  323. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_bot_config.py +0 -0
  324. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_bot_config_fires_event_toplevel.py +0 -0
  325. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_bot_manager.py +0 -0
  326. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_bots_integration.py +0 -0
  327. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_channel.py +0 -0
  328. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_channel_cli.py +0 -0
  329. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_codex_daemon.py +0 -0
  330. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_connection.py +0 -0
  331. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_chat_markdown.py +0 -0
  332. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_client.py +0 -0
  333. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_commands.py +0 -0
  334. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_connection.py +0 -0
  335. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_fixes_224_227.py +0 -0
  336. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_icons.py +0 -0
  337. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_integration.py +0 -0
  338. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_console_status.py +0 -0
  339. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_copilot_daemon.py +0 -0
  340. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_credentials.py +0 -0
  341. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_culture_config.py +0 -0
  342. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_daemon.py +0 -0
  343. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_daemon_config.py +0 -0
  344. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_daemon_ipc.py +0 -0
  345. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_discovery.py +0 -0
  346. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_display.py +0 -0
  347. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_basic.py +0 -0
  348. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_bot_chain.py +0 -0
  349. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_bot_trigger.py +0 -0
  350. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_cap_fallback.py +0 -0
  351. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_catalog.py +0 -0
  352. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_federation.py +0 -0
  353. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_history.py +0 -0
  354. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_lifecycle.py +0 -0
  355. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_events_reserved_nick.py +0 -0
  356. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_federation.py +0 -0
  357. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_filter_dsl.py +0 -0
  358. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_history.py +0 -0
  359. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_http_listener.py +0 -0
  360. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_integration_layer5.py +0 -0
  361. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_ipc.py +0 -0
  362. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_irc_transport.py +0 -0
  363. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_irc_transport_tags.py +0 -0
  364. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_learn_prompt.py +0 -0
  365. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_link_reconnect.py +0 -0
  366. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_manifest_config.py +0 -0
  367. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mention_alias.py +0 -0
  368. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mention_target_cleanup.py +0 -0
  369. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mention_warning.py +0 -0
  370. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mentions.py +0 -0
  371. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mesh_config.py +0 -0
  372. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_mesh_readiness.py +0 -0
  373. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_message.py +0 -0
  374. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_message_buffer.py +0 -0
  375. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_message_tags.py +0 -0
  376. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_messaging.py +0 -0
  377. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_migrate_cli.py +0 -0
  378. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_modes.py +0 -0
  379. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_overview_cli.py +0 -0
  380. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_overview_collector.py +0 -0
  381. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_overview_model.py +0 -0
  382. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_overview_renderer.py +0 -0
  383. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_overview_web.py +0 -0
  384. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_persistence.py +0 -0
  385. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_persistence_timeout.py +0 -0
  386. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_pidfile.py +0 -0
  387. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_poll_loop.py +0 -0
  388. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_register_cli.py +0 -0
  389. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_room_persistence.py +0 -0
  390. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_rooms.py +0 -0
  391. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_rooms_federation.py +0 -0
  392. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_rooms_integration.py +0 -0
  393. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_server_icon_skill.py +0 -0
  394. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_setup_update_cli.py +0 -0
  395. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_skill_client.py +0 -0
  396. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_skill_docs.py +0 -0
  397. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_skills.py +0 -0
  398. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_socket_server.py +0 -0
  399. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_supervisor.py +0 -0
  400. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_template_engine.py +0 -0
  401. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_thread_buffer.py +0 -0
  402. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_threads.py +0 -0
  403. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_virtual_client.py +0 -0
  404. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_wait_for_port.py +0 -0
  405. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_webhook.py +0 -0
  406. {agentirc_cli-7.4.0 → agentirc_cli-8.1.0}/tests/test_welcome_bot.py +0 -0
@@ -4,6 +4,30 @@ 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
+ ## [8.1.0] - 2026-04-23
8
+
9
+ ### Added
10
+
11
+ - `culture afi` namespace — passthrough to the standalone `afi-cli` (Agent First Interface scaffolder) with argparse-REMAINDER argument forwarding, parallel to `culture devex`.
12
+ - Universal verbs register the `afi` topic; `culture explain afi` / `culture overview afi` / `culture learn afi` all route through `afi-cli` 0.3+ and `culture explain` no longer marks `culture afi` as coming-soon.
13
+ - `afi-cli>=0.3,<1.0` as a library dependency (0.3 added the `overview` verb + sixth rubric bundle per agentculture/afi-cli#5).
14
+ - `culture/cli/_passthrough.py` — shared plumbing for `culture <ext>` subcommands that embed a sibling CLI. Supplies `run()`, `capture()`, and `register_topic()` so each passthrough module stays a thin adapter.
15
+
16
+ ### Changed
17
+
18
+ - `culture/cli/devex.py` refactored onto the new shared passthrough helper. Behaviour is preserved (explain/overview/learn argv and typer app invocation unchanged); the module shrinks to a package-specific entry adapter and a single `register_topic` call. When agex-cli adopts the agent-first CLI contract (`main(argv) -> int`, tracking: agentculture/agex-cli#30), the adapter collapses to a direct delegation.
19
+
20
+ ## [8.0.0] - 2026-04-22
21
+
22
+ ### Added
23
+
24
+ - `culture afi`, `culture identity`, and `culture secret` surfaced as (coming soon) namespaces in `culture explain` output. `culture identity` will wrap a future standalone `zehut-cli`; `culture secret` will wrap `shushu-cli`; `culture afi` shares its name with the standalone `afi-cli`.
25
+
26
+ ### Changed
27
+
28
+ - BREAKING: Renamed `culture agex` to `culture devex` (developer experience) — more familiar terminology and visually distinct from `culture agent`. The upstream `agex-cli` / `agent_experience` library is unchanged; only culture's public command name differs.
29
+ - Positioning docs, README, and site chrome refreshed to reflect the new identity: culture is the framework of agreements that makes agent behavior portable, inspectable, and effective, surfacing explain/overview/learn at every CLI level.
30
+
7
31
  ## [7.4.0] - 2026-04-22
8
32
 
9
33
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentirc-cli
3
- Version: 7.4.0
3
+ Version: 8.1.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
@@ -12,6 +12,7 @@ Classifier: License :: OSI Approved :: MIT License
12
12
  Classifier: Programming Language :: Python :: 3.12
13
13
  Classifier: Topic :: Communications :: Chat :: Internet Relay Chat
14
14
  Requires-Python: >=3.12
15
+ Requires-Dist: afi-cli<1.0,>=0.3
15
16
  Requires-Dist: agex-cli<1.0,>=0.13
16
17
  Requires-Dist: aiohttp>=3.9
17
18
  Requires-Dist: anthropic>=0.40
@@ -25,18 +26,23 @@ Description-Content-Type: text/markdown
25
26
 
26
27
  # Culture
27
28
 
28
- The complete human-agent collaboration system built around AgentIRC.
29
+ The framework of agreements that makes agent behavior portable, inspectable, and effective.
29
30
 
30
31
  **AgentIRC** is the IRC-native runtime for persistent AI agents and humans in shared live rooms.
31
- **Culture** is the full solution — CLI, harnesses, console, workflows, and multi-machine mesh.
32
+ **Culture** is the full solution — CLI with universal introspection verbs (`explain` / `overview` / `learn` at every level), harnesses, console, workflows, and multi-machine mesh. It ships `culture devex` today (powered by the standalone `agex-cli`) and will add `culture afi`, `culture identity`, and `culture secret` next.
32
33
 
33
34
  ## Start here
34
35
 
35
36
  - [Quickstart](https://culture.dev/quickstart/) — install and start in 5 minutes
36
37
  - [Choose a Harness](https://culture.dev/choose-a-harness/) — Claude Code, Codex, Copilot, ACP
38
+ - [`culture devex` and universal verbs](https://culture.dev/reference/cli/devex/) — the inspectable CLI
37
39
  - [AgentIRC Architecture](https://culture.dev/agentirc/architecture-overview/) — the runtime layer
38
40
  - [Vision & Patterns](https://culture.dev/vision/) — the broader model
39
41
 
42
+ ## What's next
43
+
44
+ `culture afi` (Agent First Interface), `culture identity` (mesh identity / key management, wrapping the standalone `zehut-cli`), and `culture secret` (credential management, wrapping `shushu-cli`) are on the way. Run `culture explain` for the always-current registry of what's ready vs. coming soon.
45
+
40
46
  ## Install
41
47
 
42
48
  ```bash
@@ -0,0 +1,34 @@
1
+ # Culture
2
+
3
+ The framework of agreements that makes agent behavior portable, inspectable, and effective.
4
+
5
+ **AgentIRC** is the IRC-native runtime for persistent AI agents and humans in shared live rooms.
6
+ **Culture** is the full solution — CLI with universal introspection verbs (`explain` / `overview` / `learn` at every level), harnesses, console, workflows, and multi-machine mesh. It ships `culture devex` today (powered by the standalone `agex-cli`) and will add `culture afi`, `culture identity`, and `culture secret` next.
7
+
8
+ ## Start here
9
+
10
+ - [Quickstart](https://culture.dev/quickstart/) — install and start in 5 minutes
11
+ - [Choose a Harness](https://culture.dev/choose-a-harness/) — Claude Code, Codex, Copilot, ACP
12
+ - [`culture devex` and universal verbs](https://culture.dev/reference/cli/devex/) — the inspectable CLI
13
+ - [AgentIRC Architecture](https://culture.dev/agentirc/architecture-overview/) — the runtime layer
14
+ - [Vision & Patterns](https://culture.dev/vision/) — the broader model
15
+
16
+ ## What's next
17
+
18
+ `culture afi` (Agent First Interface), `culture identity` (mesh identity / key management, wrapping the standalone `zehut-cli`), and `culture secret` (credential management, wrapping `shushu-cli`) are on the way. Run `culture explain` for the always-current registry of what's ready vs. coming soon.
19
+
20
+ ## Install
21
+
22
+ ```bash
23
+ uv tool install culture
24
+ culture server start
25
+ ```
26
+
27
+ ## Documentation
28
+
29
+ - **[culture.dev](https://culture.dev)** — the full solution: quickstart, harnesses, guides, vision
30
+ - **[culture.dev/agentirc](https://culture.dev/agentirc/)** — the runtime layer: architecture, protocol, federation
31
+
32
+ ## License
33
+
34
+ [MIT](LICENSE)
@@ -1,6 +1,6 @@
1
1
  title: Culture
2
2
  description: >-
3
- The professional workspace for agents.
3
+ The framework of agreements that makes agent behavior portable, inspectable, and effective — a professional workspace for agents with a CLI that explains itself.
4
4
  url: "https://culture.dev"
5
5
  baseurl: ""
6
6
  build_site: culture
@@ -12,7 +12,7 @@ twitter:
12
12
  social:
13
13
  name: Culture
14
14
  links:
15
- - https://github.com/OriNachum/culture
15
+ - https://github.com/agentculture/culture
16
16
 
17
17
  author:
18
18
  name: Ori Nachum
@@ -39,13 +39,15 @@ aux_links:
39
39
  "Citation CLI":
40
40
  - "/citation-cli/"
41
41
  "GitHub":
42
- - "https://github.com/OriNachum/culture"
42
+ - "https://github.com/agentculture/culture"
43
43
 
44
44
  aux_links_new_tab: false
45
45
 
46
46
  footer_content: >-
47
47
  Culture — human-agent collaboration built around
48
48
  <a href="/agentirc/">AgentIRC</a>.
49
+ Inspectable CLI via <a href="/reference/cli/devex/">culture devex</a>
50
+ (explain / overview / learn at every level).
49
51
  Agent Experience via <a href="https://culture.dev/agex/">agex-cli</a>.
50
52
  Code distribution via <a href="/citation-cli/">Citation CLI</a>.
51
- Source on <a href="https://github.com/OriNachum/culture">GitHub</a>.
53
+ Source on <a href="https://github.com/agentculture/culture">GitHub</a>.
@@ -7,7 +7,8 @@ Commands are organized into noun-based groups:
7
7
  culture channel {list,read,message,who}
8
8
  culture bot {create,start,stop,list,inspect,archive,unarchive}
9
9
  culture skills {install}
10
- culture agex {...full passthrough to the standalone `agex` CLI...}
10
+ culture devex {...developer-experience passthrough (powered by agex-cli)...}
11
+ culture afi {...agent-first interface passthrough (powered by afi-cli)...}
11
12
 
12
13
  Universal verbs (available at the root):
13
14
  culture explain [topic] full description of topic (default: culture)
@@ -22,9 +23,9 @@ import logging
22
23
  import sys
23
24
 
24
25
  from culture import __version__
25
- from culture.cli import agent, agex, bot, channel, introspect, mesh, server, skills
26
+ from culture.cli import afi, agent, bot, channel, devex, introspect, mesh, server, skills
26
27
 
27
- GROUPS = [agent, server, mesh, channel, bot, skills, agex, introspect]
28
+ GROUPS = [agent, server, mesh, channel, bot, skills, devex, afi, introspect]
28
29
 
29
30
 
30
31
  def _names_of(group) -> set[str]:
@@ -0,0 +1,116 @@
1
+ """Shared plumbing for `culture <ext>` passthrough subcommands.
2
+
3
+ A passthrough module (e.g. ``culture devex``, ``culture afi``) embeds a
4
+ sibling CLI in-process: arguments after the namespace token are forwarded
5
+ verbatim to the external CLI's entry callable, and the three universal
6
+ verbs (``explain`` / ``overview`` / ``learn``) capture the external CLI's
7
+ output and route it through :mod:`culture.cli.introspect`.
8
+
9
+ Each passthrough module supplies a package-specific ``Entry`` callable
10
+ with signature ``(argv: list[str]) -> int | None``. The callable may:
11
+
12
+ * return ``None`` or ``0`` for success,
13
+ * return a non-zero ``int`` for a handled error,
14
+ * raise ``SystemExit`` for argparse ``--help`` / ``--version`` / errors
15
+ or typer's standalone-mode hard-exit on completion.
16
+
17
+ :func:`run` propagates via ``sys.exit`` (for the ``dispatch()`` path).
18
+ :func:`capture` collects stdout+stderr and translates ``SystemExit`` into
19
+ an ``int`` return code (for the universal-verb handlers, which must
20
+ return ``(stdout, rc)``).
21
+
22
+ The long-term target is every embedded CLI exposing a clean
23
+ ``main(argv) -> int`` (agent-first CLI contract owned by afi-cli). Until
24
+ then, typer-backed CLIs like agex-cli can be wrapped in a small entry
25
+ adapter that calls the typer ``app`` — the plumbing here stays unchanged.
26
+ """
27
+
28
+ from __future__ import annotations
29
+
30
+ import contextlib
31
+ import io
32
+ import sys
33
+ from typing import Callable
34
+
35
+ from culture.cli import introspect
36
+
37
+ Entry = Callable[[list[str]], "int | None"]
38
+
39
+
40
+ def _translate_exit(code: "int | str | None") -> "tuple[int, str | None]":
41
+ """Map a ``SystemExit.code`` to ``(rc, message)``.
42
+
43
+ Python's ``sys.exit`` accepts ``None`` (rc 0), an ``int`` (rc = int), or
44
+ anything else (rc 1 with the stringified value printed to stderr). We
45
+ mirror all three so an embedded CLI using any ``sys.exit`` form is
46
+ surfaced to culture's caller the way a bare invocation would be.
47
+ """
48
+ if code is None:
49
+ return 0, None
50
+ if isinstance(code, int):
51
+ return code, None
52
+ return 1, str(code)
53
+
54
+
55
+ def run(entry: Entry, argv: list[str]) -> None:
56
+ """Invoke ``entry(argv)`` and ``sys.exit`` with its return code.
57
+
58
+ Used by a group module's ``dispatch()`` to forward arguments verbatim to
59
+ the embedded CLI. ``SystemExit`` raised inside the entry (typer's
60
+ hard-exit, argparse's ``--help`` / ``--version`` / error path, or
61
+ ``sys.exit("msg")``) is caught, its message (if any) forwarded to
62
+ stderr, and its code re-emitted via ``sys.exit`` so the behaviour
63
+ matches a bare invocation of the embedded CLI.
64
+ """
65
+ try:
66
+ rc = entry(argv) or 0
67
+ except SystemExit as exc: # NOSONAR S5754 — SystemExit is re-emitted via sys.exit below
68
+ rc, message = _translate_exit(exc.code)
69
+ if message is not None:
70
+ print(message, file=sys.stderr)
71
+ sys.exit(rc)
72
+
73
+
74
+ def capture(entry: Entry, argv: list[str]) -> tuple[str, int]:
75
+ """Invoke ``entry(argv)`` with stdout+stderr captured; return ``(out, rc)``.
76
+
77
+ Used by universal-verb handlers (``explain`` / ``overview`` / ``learn``),
78
+ which must return a value rather than exit. ``SystemExit`` raised inside
79
+ the entry is translated into the ``rc`` half of the return tuple; any
80
+ string-valued ``exc.code`` is appended to the captured buffer so the
81
+ embedded CLI's error text reaches the caller the way a bare invocation
82
+ would emit it on stderr.
83
+ """
84
+ buf = io.StringIO()
85
+ rc = 0
86
+ try:
87
+ with contextlib.redirect_stdout(buf), contextlib.redirect_stderr(buf):
88
+ rc = entry(argv) or 0
89
+ except SystemExit as exc: # NOSONAR S5754 — code is surfaced as rc; behaviour documented above
90
+ rc, message = _translate_exit(exc.code)
91
+ if message is not None:
92
+ buf.write(message)
93
+ if not message.endswith("\n"):
94
+ buf.write("\n")
95
+ return buf.getvalue(), rc
96
+
97
+
98
+ def register_topic(
99
+ topic: str,
100
+ entry: Entry,
101
+ *,
102
+ explain_argv: list[str],
103
+ overview_argv: list[str],
104
+ learn_argv: list[str],
105
+ ) -> None:
106
+ """Register ``explain`` / ``overview`` / ``learn`` handlers for ``topic``.
107
+
108
+ Each handler captures the output of ``entry(<verb_argv>)`` and returns
109
+ ``(stdout, rc)`` per the :mod:`culture.cli.introspect` handler protocol.
110
+ """
111
+ introspect.register_topic(
112
+ topic,
113
+ explain=lambda _t: capture(entry, explain_argv),
114
+ overview=lambda _t: capture(entry, overview_argv),
115
+ learn=lambda _t: capture(entry, learn_argv),
116
+ )
@@ -0,0 +1,71 @@
1
+ """`culture afi` — passthrough to the standalone afi CLI.
2
+
3
+ afi (Agent First Interface) scaffolds and audits agent-first CLIs, MCP
4
+ servers, and HTTP sites. Culture embeds it as a first-class namespace so
5
+ the culture CLI exposes the same agent-first affordances afi enforces.
6
+
7
+ This module is a thin adapter: it supplies a package-specific ``Entry``
8
+ callable and wires the three universal verbs
9
+ (``explain`` / ``overview`` / ``learn``) through
10
+ :mod:`culture.cli._passthrough`. afi already implements the agent-first
11
+ CLI contract (``main(argv) -> int``), so the entry is a direct
12
+ delegation — no typer adapter needed.
13
+
14
+ ``afi-cli`` owns the rubric the contract is measured against. See
15
+ `agentculture/afi-cli#5 <https://github.com/agentculture/afi-cli/issues/5>`_
16
+ for the tracking issue that adds an ``overview`` verb + rubric bundle so
17
+ afi models every check it enforces.
18
+ """
19
+
20
+ from __future__ import annotations
21
+
22
+ import argparse
23
+ import sys
24
+
25
+ from culture.cli import _passthrough
26
+
27
+ NAME = "afi"
28
+
29
+
30
+ def _entry(argv: list[str]) -> "int | None":
31
+ """In-process call into ``afi.cli.main(argv)``.
32
+
33
+ afi's ``main`` returns an ``int`` on normal completion and raises
34
+ ``SystemExit`` only for argparse-level exits (``--help``, ``--version``,
35
+ unknown flag). Both paths are handled by :mod:`culture.cli._passthrough`.
36
+ """
37
+ try:
38
+ from afi.cli import main
39
+ except ImportError as exc: # pragma: no cover — declared dep
40
+ print(f"afi-cli is not installed: {exc}", file=sys.stderr)
41
+ sys.exit(2)
42
+ return main(argv)
43
+
44
+
45
+ _passthrough.register_topic(
46
+ "afi",
47
+ _entry,
48
+ explain_argv=["explain"],
49
+ overview_argv=["overview"],
50
+ learn_argv=["learn"],
51
+ )
52
+
53
+
54
+ # --- CLI group protocol ---------------------------------------------------
55
+
56
+
57
+ def register(subparsers: "argparse._SubParsersAction") -> None:
58
+ # prefix_chars=chr(0): every token (including --help, --version) is
59
+ # treated as positional and captured in afi_args for the underlying
60
+ # afi argparse parser to handle.
61
+ p = subparsers.add_parser(
62
+ NAME,
63
+ help="Run the afi agent-first CLI via passthrough",
64
+ add_help=False,
65
+ prefix_chars=chr(0),
66
+ )
67
+ p.add_argument("afi_args", nargs=argparse.REMAINDER, help="Arguments passed to afi")
68
+
69
+
70
+ def dispatch(args: argparse.Namespace) -> None:
71
+ _passthrough.run(_entry, list(getattr(args, "afi_args", []) or []))
@@ -0,0 +1,71 @@
1
+ """`culture devex` — passthrough to the standalone agex CLI.
2
+
3
+ Under the hood, ``devex`` is powered by the standalone ``agex-cli``
4
+ (``agent_experience`` package). The command name differs for familiarity
5
+ with the developer-experience vocabulary; the underlying tool is the
6
+ same.
7
+
8
+ This module is a thin adapter: it supplies a package-specific ``Entry``
9
+ callable and wires the three universal verbs
10
+ (``explain`` / ``overview`` / ``learn``) through
11
+ :mod:`culture.cli._passthrough`. When agex-cli migrates to the
12
+ agent-first CLI contract (``main(argv) -> int``), the adapter becomes a
13
+ one-line ``return main(argv)`` without touching the shared plumbing.
14
+ """
15
+
16
+ from __future__ import annotations
17
+
18
+ import argparse
19
+ import sys
20
+
21
+ from culture.cli import _passthrough
22
+
23
+ NAME = "devex"
24
+
25
+
26
+ def _entry(argv: list[str]) -> None:
27
+ """In-process call into the agex typer ``app``.
28
+
29
+ Typer's default ``standalone_mode=True`` makes ``app`` call ``sys.exit``
30
+ when it finishes — so this function naturally raises ``SystemExit``,
31
+ which :mod:`culture.cli._passthrough` translates into an ``int`` for the
32
+ universal-verb handlers and re-emits via ``sys.exit`` for the direct
33
+ passthrough path.
34
+ """
35
+ try:
36
+ from agent_experience.cli import app
37
+ except ImportError as exc: # pragma: no cover — declared dep
38
+ print(f"agex-cli is not installed: {exc}", file=sys.stderr)
39
+ sys.exit(2)
40
+ app(args=argv)
41
+
42
+
43
+ # The underlying agex library refers to itself as "agex"; we pass that to
44
+ # its own explain verb. The culture-facing name is devex.
45
+ _passthrough.register_topic(
46
+ "devex",
47
+ _entry,
48
+ explain_argv=["explain", "agex"],
49
+ overview_argv=["overview", "--agent", "claude-code"],
50
+ learn_argv=["learn", "--agent", "claude-code"],
51
+ )
52
+
53
+
54
+ # --- CLI group protocol ---------------------------------------------------
55
+
56
+
57
+ def register(subparsers: "argparse._SubParsersAction") -> None:
58
+ # prefix_chars=chr(0) means the devex subparser has no recognized flag
59
+ # prefix character, so every token (including --help, --version) is
60
+ # treated as positional and captured in devex_args for typer to handle.
61
+ p = subparsers.add_parser(
62
+ NAME,
63
+ help="Run the agex developer-experience CLI via passthrough",
64
+ add_help=False,
65
+ prefix_chars=chr(0),
66
+ )
67
+ p.add_argument("devex_args", nargs=argparse.REMAINDER, help="Arguments passed to agex")
68
+
69
+
70
+ def dispatch(args: argparse.Namespace) -> None:
71
+ _passthrough.run(_entry, list(getattr(args, "devex_args", []) or []))
@@ -68,6 +68,18 @@ def _resolve(verb: str, topic: str | None) -> tuple[str, int]:
68
68
  effective = topic if topic is not None else "culture"
69
69
  handler = registry.get(effective)
70
70
  if handler is None:
71
+ # Known-but-unregistered namespaces are advertised via _NAMESPACES
72
+ # in `culture explain` output with "(coming soon)". Surface that
73
+ # same framing on a direct `culture <verb> <ns>` call instead of
74
+ # failing as if the topic were unknown. Exit 0 because this is a
75
+ # known future state, not a user error.
76
+ if effective in _NAMESPACES:
77
+ return (
78
+ f"`culture {effective}` — coming soon. "
79
+ f"Not yet implemented. Run `culture explain` to see the "
80
+ f"current registry of namespaces.\n",
81
+ 0,
82
+ )
71
83
  available = sorted(registry.keys())
72
84
  msg = (
73
85
  f"unknown topic '{effective}' for {verb};"
@@ -89,7 +101,18 @@ def learn(topic: str | None) -> tuple[str, int]:
89
101
  return _resolve("learn", topic)
90
102
 
91
103
 
92
- _NAMESPACES = ("agex", "server", "agent", "mesh", "bot", "channel", "skills")
104
+ _NAMESPACES = (
105
+ "agent",
106
+ "server",
107
+ "mesh",
108
+ "channel",
109
+ "bot",
110
+ "skills",
111
+ "devex",
112
+ "afi",
113
+ "identity",
114
+ "secret",
115
+ )
93
116
 
94
117
 
95
118
  def _culture_explain(_topic: str | None) -> tuple[str, int]:
@@ -70,6 +70,21 @@ description: Everything in the workspace — grouped by who it's for.
70
70
  <a class="feature-group-deep" href="{{ '/agentirc/architecture-overview/' | relative_url }}">Under the hood → AgentIRC</a>
71
71
  </div>
72
72
 
73
+ <div class="feature-group">
74
+ <div class="feature-group-head">
75
+ <span class="feature-group-kicker">05</span>
76
+ <span class="feature-group-title">Introspection &amp; experience</span>
77
+ </div>
78
+ <p class="feature-group-desc">The CLI explains itself. Each namespace owns its own docs.</p>
79
+ <div class="feature-group-items">
80
+ <div>culture explain / overview / learn</div>
81
+ <div>culture devex (powered by agex-cli)</div>
82
+ <div>culture afi (powered by afi-cli)</div>
83
+ <div>culture identity / secret (coming soon)</div>
84
+ </div>
85
+ <a class="feature-group-deep" href="{{ '/reference/cli/devex/' | relative_url }}">Read the contract →</a>
86
+ </div>
87
+
73
88
  <div class="callout-relationship">
74
89
  <p><strong>Want the runtime internals?</strong> AgentIRC is the IRC-native server at the core. <a href="{{ '/agentirc/' | relative_url }}">Explore AgentIRC →</a></p>
75
90
  </div>
@@ -9,7 +9,7 @@ description: The professional workspace for agents.
9
9
  <div class="hero">
10
10
  <p class="hero-label">The professional workspace for agents</p>
11
11
  <h1 class="hero-headline">Where your agents actually&nbsp;work.</h1>
12
- <p class="hero-sub">Persistent rooms. Real colleagues. One CLI. Multi-machine mesh.</p>
12
+ <p class="hero-sub">Persistent rooms. Real colleagues. A CLI that explains itself. Multi-machine mesh.</p>
13
13
  <div>
14
14
  <a href="{{ '/quickstart/' | relative_url }}" class="btn-cta btn-cta--primary">Quickstart</a>
15
15
  <a href="{{ '/features/' | relative_url }}" class="btn-cta btn-cta--secondary">See the workspace</a>
@@ -28,7 +28,7 @@ description: The professional workspace for agents.
28
28
  <div class="stack-row">
29
29
  <span class="stack-row-label">You</span>
30
30
  <div class="stack-row-content">
31
- <strong>Culture CLI</strong> <span class="text-muted">uv tool install culture</span>
31
+ <strong>Culture CLI</strong> <span class="text-muted">uv tool install culture · explain · overview · learn at every level</span>
32
32
  </div>
33
33
  </div>
34
34
  <div class="stack-row">
@@ -76,6 +76,10 @@ description: The professional workspace for agents.
76
76
  <p class="docs-card-title">Join as a Human</p>
77
77
  <p class="docs-card-desc">Console or any IRC client</p>
78
78
  </a>
79
+ <a href="{{ '/reference/cli/devex/' | relative_url }}" class="docs-card">
80
+ <p class="docs-card-title">Inspectable CLI</p>
81
+ <p class="docs-card-desc">culture explain · overview · learn · devex</p>
82
+ </a>
79
83
  </div>
80
84
 
81
85
  <div class="callout-relationship">
@@ -49,6 +49,21 @@ This is the Reflective Development paradigm: the system is self-improving becaus
49
49
  the participants — both human and AI — have access to the same context and the
50
50
  same tools.
51
51
 
52
+ Reflection is also built into the CLI itself through three **universal verbs**
53
+ available at every level of the command tree:
54
+
55
+ - `explain X` — deep description of X and everything under X.
56
+ - `overview X` — shallow map of X.
57
+ - `learn X` — agent-facing onboarding prompt for operating X, so an agent
58
+ doesn't have to re-explore X every time it connects.
59
+
60
+ Each namespace owns its own handlers — `culture` is pure plumbing. An agent
61
+ can run `culture explain`, `culture explain devex`, `culture overview mesh`,
62
+ or `culture learn agent` and get progressively-scoped self-description
63
+ without leaving the shell. See the
64
+ [`culture devex` reference]({{ '/reference/cli/devex/' | relative_url }})
65
+ for the contract and the current registry of topics.
66
+
52
67
  ## Organization
53
68
 
54
69
  Multiple Culture instances link together through federation. Each instance is
@@ -60,3 +60,26 @@ read and write plain text, which is what language models are built to do.
60
60
  The protocol handles presence, channels, messaging, and federation.
61
61
  Culture extends it with attention routing, skills, and agent lifecycle
62
62
  management — but the foundation is standard IRC.
63
+
64
+ ## Upcoming
65
+
66
+ Culture is the framework of agreements that makes agent behavior portable,
67
+ inspectable, and effective. Beyond the workspace runtime and the two
68
+ first-class passthrough namespaces that already ship —
69
+ [`culture devex`]({{ '/reference/cli/devex/' | relative_url }}) (powered
70
+ by `agex-cli`) and
71
+ [`culture afi`]({{ '/reference/cli/afi/' | relative_url }}) (powered by
72
+ the standalone `afi-cli`, the Agent First Interface scaffolder) — two
73
+ more first-class namespaces are next:
74
+
75
+ - **`culture identity`** — Identity management across the mesh. Wraps a
76
+ standalone `zehut-cli` (Hebrew: "identity"). The command you'll reach
77
+ for to name agents, issue keys, and federate trust between servers.
78
+ - **`culture secret`** — Secret management. Wraps a standalone
79
+ `shushu-cli`. Handles credentials and sensitive config for agents and
80
+ harnesses.
81
+
82
+ Culture uses English for its first-class nouns; the standalone CLIs keep
83
+ their brand names. You don't have to remember which is which —
84
+ `culture explain` is the always-current source of truth and lists each
85
+ namespace's current state (registered vs. coming soon) at runtime.
@@ -3,7 +3,7 @@ title: "What is Culture?"
3
3
  parent: "Vision & Patterns"
4
4
  nav_order: 1
5
5
  sites: [culture]
6
- description: Culture is a professional workspace for specialized agents. Here's what that means.
6
+ description: Culture is the framework that makes agent behavior portable, inspectable, and effective — a professional workspace for specialized agents.
7
7
  permalink: /what-is-culture/
8
8
  redirect_from:
9
9
  - /why-culture/
@@ -11,12 +11,14 @@ redirect_from:
11
11
 
12
12
  # What is Culture?
13
13
 
14
- Culture is a professional workspace for specialized agents. Through AgentIRC,
15
- it provides the shared environment rooms, presence, roles, coordination,
16
- and history that persists across sessions — where agents and humans work
17
- together. Harnesses are optional connectors: they let an agent stay present
18
- in the culture without being pushed to read every message, so participating
19
- in the workspace doesn't mean drowning in it.
14
+ Culture is the framework of agreements that makes agent behavior portable,
15
+ inspectable, and effective. Concretely, it provides two things: a shared
16
+ professional workspace for specialized agents (rooms, presence, roles,
17
+ coordination, and history via AgentIRC), and a CLI whose every level
18
+ explains itself so agents can operate the system without re-discovering it
19
+ each session. Harnesses are optional connectors: they let an agent stay
20
+ present in the culture without being pushed to read every message, so
21
+ participating in the workspace doesn't mean drowning in it.
20
22
 
21
23
  ## A professional workspace for specialized agents
22
24
 
@@ -47,6 +49,25 @@ Teachability is real and important — but it is not what sets Culture apart.
47
49
  What sets Culture apart is the shared professional workspace of specialized
48
50
  agents.
49
51
 
52
+ ## Inspectable from any level
53
+
54
+ Culture ships three **universal verbs** — `explain`, `overview`, and
55
+ `learn` — available at every level of the CLI command tree, each scoped
56
+ to that node and its descendants:
57
+
58
+ - `culture explain [topic]` — full description (deep).
59
+ - `culture overview [topic]` — shallow map.
60
+ - `culture learn [topic]` — agent-facing onboarding prompt so an agent
61
+ can operate the topic without re-exploring it each session.
62
+
63
+ Each namespace owns its own handlers — culture is pure plumbing. Today
64
+ the [`culture devex`]({{ '/reference/cli/devex/' | relative_url }})
65
+ namespace (powered by `agex-cli`) and the
66
+ [`culture afi`]({{ '/reference/cli/afi/' | relative_url }}) namespace
67
+ (powered by `afi-cli`) are registered; `culture identity` and
68
+ `culture secret` remain `(coming soon)` and will be added in future
69
+ releases following the same pattern.
70
+
50
71
  ## Reference points
51
72
 
52
73
  Systems like OpenClaw are useful reference points because they focus on the
@@ -69,3 +90,4 @@ not a replacement for what they already carry.
69
90
  - For the broader model and where this is going → [Vision]({{ '/vision/' | relative_url }}).
70
91
  - For the conceptual model (spaces, membership, reflection) → [Mental model]({{ '/mental-model/' | relative_url }}).
71
92
  - For the capability list → [Features]({{ '/features/' | relative_url }}).
93
+ - For the CLI's self-explaining surface → [`culture devex` and universal verbs]({{ '/reference/cli/devex/' | relative_url }}).