brigade-cli 0.23.0__tar.gz → 0.23.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/PKG-INFO +6 -1
  2. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/QUICKSTART.md +50 -6
  3. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/README.md +2 -0
  4. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/pyproject.toml +4 -1
  5. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/__init__.py +1 -1
  6. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/__init__.py +2 -0
  7. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/_common.py +1 -0
  8. brigade_cli-0.23.2/src/brigade/cli/setup.py +23 -0
  9. brigade_cli-0.23.2/src/brigade/component_install.py +724 -0
  10. brigade_cli-0.23.2/src/brigade/component_manifest.py +359 -0
  11. brigade_cli-0.23.2/src/brigade/component_paths.py +121 -0
  12. brigade_cli-0.23.2/src/brigade/component_state.py +190 -0
  13. brigade_cli-0.23.2/src/brigade/templates/components/manifest-v1.json +162 -0
  14. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hermes/memory-handoff.harness.json +1 -1
  15. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hermes/model-lanes.harness.json +1 -1
  16. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hermes/workspace.harness.json +1 -1
  17. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/chat-memory-sweep.example.json +1 -1
  18. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/memory-care.example.json +1 -1
  19. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/policies/personal.json +1 -1
  20. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/policies/public-content.json +1 -1
  21. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/policies/public-repo.json +1 -1
  22. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/PKG-INFO +6 -1
  23. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/SOURCES.txt +13 -0
  24. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_ci_workflow.py +9 -0
  25. brigade_cli-0.23.2/tests/test_cli_setup.py +140 -0
  26. brigade_cli-0.23.2/tests/test_component_install.py +1136 -0
  27. brigade_cli-0.23.2/tests/test_component_manifest.py +754 -0
  28. brigade_cli-0.23.2/tests/test_component_manifest_provenance.py +352 -0
  29. brigade_cli-0.23.2/tests/test_component_paths.py +126 -0
  30. brigade_cli-0.23.2/tests/test_component_state.py +441 -0
  31. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_metadata.py +8 -6
  32. brigade_cli-0.23.2/tests/test_version_sync_script.py +48 -0
  33. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/LICENSE +0 -0
  34. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/MANIFEST.in +0 -0
  35. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/THIRD_PARTY_NOTICES.md +0 -0
  36. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/setup.cfg +0 -0
  37. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/__main__.py +0 -0
  38. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/aboyeur.py +0 -0
  39. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/acpx_adapter.py +0 -0
  40. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/actionqueue.py +0 -0
  41. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/add.py +0 -0
  42. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/agent_skill_format.py +0 -0
  43. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/agents.py +0 -0
  44. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/budgets.py +0 -0
  45. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/budgets_cmd.py +0 -0
  46. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/__init__.py +0 -0
  47. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/actions.py +0 -0
  48. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/core.py +0 -0
  49. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/readiness.py +0 -0
  50. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/report_review_ops.py +0 -0
  51. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/reports.py +0 -0
  52. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/center_cmd/schema_ops.py +0 -0
  53. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/chat_cmd.py +0 -0
  54. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/claude_hooks/__init__.py +0 -0
  55. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/claude_hooks/classify.py +0 -0
  56. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/claude_hooks/install_cmd.py +0 -0
  57. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/claude_hooks/package.py +0 -0
  58. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/claude_hooks/runtime.py +0 -0
  59. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/add.py +0 -0
  60. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/budgets.py +0 -0
  61. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/center.py +0 -0
  62. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/chat.py +0 -0
  63. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/completions.py +0 -0
  64. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/context.py +0 -0
  65. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/daily.py +0 -0
  66. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/doctor.py +0 -0
  67. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/dogfood.py +0 -0
  68. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/evidence.py +0 -0
  69. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/extras.py +0 -0
  70. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/friction.py +0 -0
  71. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/guard.py +0 -0
  72. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/handoff.py +0 -0
  73. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/handoff_template.py +0 -0
  74. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/harness.py +0 -0
  75. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/hermes_fragments.py +0 -0
  76. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/ingest.py +0 -0
  77. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/init.py +0 -0
  78. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/learn.py +0 -0
  79. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/mcp.py +0 -0
  80. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/memory.py +0 -0
  81. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/model.py +0 -0
  82. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/notifications.py +0 -0
  83. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/openclaw_fragments.py +0 -0
  84. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/operator.py +0 -0
  85. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/outcome.py +0 -0
  86. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/pantry.py +0 -0
  87. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/profiles.py +0 -0
  88. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/projects.py +0 -0
  89. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/receipts.py +0 -0
  90. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/reconfigure.py +0 -0
  91. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/release.py +0 -0
  92. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/repos.py +0 -0
  93. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/research.py +0 -0
  94. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/roadmap.py +0 -0
  95. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/roster.py +0 -0
  96. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/route.py +0 -0
  97. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/run.py +0 -0
  98. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/runbook.py +0 -0
  99. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/runs.py +0 -0
  100. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/scrub.py +0 -0
  101. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/search.py +0 -0
  102. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/security.py +0 -0
  103. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/skills.py +0 -0
  104. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/stations.py +0 -0
  105. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/status.py +0 -0
  106. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/tokens.py +0 -0
  107. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/tools.py +0 -0
  108. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/untrusted.py +0 -0
  109. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/work/__init__.py +0 -0
  110. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/work/dispatching.py +0 -0
  111. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/work/phases.py +0 -0
  112. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/work/registration.py +0 -0
  113. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cli/workflow.py +0 -0
  114. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/codex_appserver.py +0 -0
  115. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/codex_cloud.py +0 -0
  116. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/completions.py +0 -0
  117. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/config.py +0 -0
  118. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/context_cmd.py +0 -0
  119. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/context_eval.py +0 -0
  120. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/cursor_user_cmd.py +0 -0
  121. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/__init__.py +0 -0
  122. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/approvals.py +0 -0
  123. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/candidates.py +0 -0
  124. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/closeout_ops.py +0 -0
  125. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/config.py +0 -0
  126. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/hardening.py +0 -0
  127. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/run_loop.py +0 -0
  128. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/status_plan.py +0 -0
  129. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/daily_cmd/telemetry_ops.py +0 -0
  130. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/doctor.py +0 -0
  131. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/dogfood_cmd.py +0 -0
  132. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/evidence_brief.py +0 -0
  133. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/evidence_cmd.py +0 -0
  134. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/extras.py +0 -0
  135. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/fragments.py +0 -0
  136. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/friction_cmd.py +0 -0
  137. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/graphtrail_delta.py +0 -0
  138. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/__init__.py +0 -0
  139. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/__main__.py +0 -0
  140. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/allowlist.py +0 -0
  141. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/audit.py +0 -0
  142. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/baseline.py +0 -0
  143. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/cli.py +0 -0
  144. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/detectors/__init__.py +0 -0
  145. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/detectors/opf.py +0 -0
  146. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/engine.py +0 -0
  147. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/examples/n8n-validation/blocked-local-service.json +0 -0
  148. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/examples/n8n-validation/blocked-secret-token.json +0 -0
  149. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/examples/n8n-validation/clean-blog-post.json +0 -0
  150. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/examples/n8n-validation/clean-social-post.json +0 -0
  151. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/examples/n8n-validation/warn-review-email.json +0 -0
  152. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/git_commits.py +0 -0
  153. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/git_scan.py +0 -0
  154. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/n8n_advisory.py +0 -0
  155. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/n8n_validate.py +0 -0
  156. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/policies/openclaw-message.json +0 -0
  157. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/policies/pr-draft.json +0 -0
  158. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/policies/public-content.json +0 -0
  159. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/policies/public-repo.json +0 -0
  160. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/policy.py +0 -0
  161. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/pr_draft.py +0 -0
  162. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/pr_prepare.py +0 -0
  163. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/publish_check.py +0 -0
  164. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/report.py +0 -0
  165. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/rules.py +0 -0
  166. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/guard/types.py +0 -0
  167. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff.py +0 -0
  168. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/__init__.py +0 -0
  169. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/drafts.py +0 -0
  170. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/inspect_ops.py +0 -0
  171. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/issue_ops.py +0 -0
  172. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/linting.py +0 -0
  173. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/migrate_ops.py +0 -0
  174. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/models.py +0 -0
  175. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/receipts.py +0 -0
  176. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_cmd/sources.py +0 -0
  177. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/handoff_content.py +0 -0
  178. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/hermes_adapter.py +0 -0
  179. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/ingest.py +0 -0
  180. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/install.py +0 -0
  181. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/learn_cmd.py +0 -0
  182. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/localio.py +0 -0
  183. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/managed.py +0 -0
  184. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/managed_snapshot.py +0 -0
  185. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/mcp_adapters.py +0 -0
  186. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/mcp_cmd.py +0 -0
  187. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/mcp_runtime.py +0 -0
  188. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/mcp_server.py +0 -0
  189. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_cmd.py +0 -0
  190. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/__init__.py +0 -0
  191. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/__main__.py +0 -0
  192. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/cli.py +0 -0
  193. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/compact.py +0 -0
  194. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/git.py +0 -0
  195. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/init_git.py +0 -0
  196. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/lint.py +0 -0
  197. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/parsing.py +0 -0
  198. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/paths.py +0 -0
  199. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/safety.py +0 -0
  200. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor/status.py +0 -0
  201. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/memory_doctor_cmd.py +0 -0
  202. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/model_inventory.py +0 -0
  203. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/model_scorecard.py +0 -0
  204. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/model_trials.py +0 -0
  205. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/notifications_cmd.py +0 -0
  206. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/__init__.py +0 -0
  207. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/adoption.py +0 -0
  208. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/guide.py +0 -0
  209. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/health.py +0 -0
  210. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/lifecycle.py +0 -0
  211. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/migration.py +0 -0
  212. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/operator_cmd/surfaces.py +0 -0
  213. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/outcome.py +0 -0
  214. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/outcome_cmd.py +0 -0
  215. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/pantry_cmd.py +0 -0
  216. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/phases_cmd/__init__.py +0 -0
  217. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/phases_cmd/checks_actions.py +0 -0
  218. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/phases_cmd/constants.py +0 -0
  219. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/phases_cmd/session_lifecycle.py +0 -0
  220. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/phases_cmd/session_ops.py +0 -0
  221. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/proc.py +0 -0
  222. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/profiles.py +0 -0
  223. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/profiles_cmd.py +0 -0
  224. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/projects_cmd.py +0 -0
  225. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/prompt.py +0 -0
  226. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/py.typed +0 -0
  227. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/receipt_signing.py +0 -0
  228. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/receipts_cmd.py +0 -0
  229. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/reconfigure.py +0 -0
  230. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/registry.py +0 -0
  231. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/__init__.py +0 -0
  232. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/candidate.py +0 -0
  233. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/candidate_audit_ops.py +0 -0
  234. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/ci.py +0 -0
  235. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/commands.py +0 -0
  236. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/evidence.py +0 -0
  237. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/install_smoke.py +0 -0
  238. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/paths.py +0 -0
  239. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_cmd/schema_ops.py +0 -0
  240. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/release_version_sync.py +0 -0
  241. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/render.py +0 -0
  242. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/reportstore.py +0 -0
  243. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/__init__.py +0 -0
  244. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/actions_dispatch.py +0 -0
  245. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/adoption.py +0 -0
  246. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/constants.py +0 -0
  247. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/fleet.py +0 -0
  248. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/fleet_health.py +0 -0
  249. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/friction_fleet.py +0 -0
  250. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/release_ops.py +0 -0
  251. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/release_train.py +0 -0
  252. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/repos_cmd/sweeps.py +0 -0
  253. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/__init__.py +0 -0
  254. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/config.py +0 -0
  255. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/engine.py +0 -0
  256. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/extract.py +0 -0
  257. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/handoff.py +0 -0
  258. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/llm.py +0 -0
  259. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/registry.py +0 -0
  260. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/report.py +0 -0
  261. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/sources/__init__.py +0 -0
  262. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/sources/cli.py +0 -0
  263. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/sources/local.py +0 -0
  264. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/sources/web.py +0 -0
  265. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research/types.py +0 -0
  266. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/research_cmd.py +0 -0
  267. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/result_integrity.py +0 -0
  268. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/roadmap_cmd.py +0 -0
  269. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/roster.py +0 -0
  270. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/roster_cmd.py +0 -0
  271. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/route_catalog.py +0 -0
  272. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/router.py +0 -0
  273. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/run_control.py +0 -0
  274. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/run_receipts.py +0 -0
  275. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/run_resume.py +0 -0
  276. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/run_transport.py +0 -0
  277. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/runbook_cmd.py +0 -0
  278. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/runguard.py +0 -0
  279. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/runs_cmd.py +0 -0
  280. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/scrub.py +0 -0
  281. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/search_cmd.py +0 -0
  282. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/__init__.py +0 -0
  283. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/commands.py +0 -0
  284. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/config.py +0 -0
  285. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/enrichment.py +0 -0
  286. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/models.py +0 -0
  287. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/reports.py +0 -0
  288. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/scan_engine.py +0 -0
  289. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/suppression.py +0 -0
  290. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/security_cmd/template_audit_ops.py +0 -0
  291. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/selection.py +0 -0
  292. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/skills_cmd.py +0 -0
  293. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/station.py +0 -0
  294. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/station_health.py +0 -0
  295. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/station_manifest.py +0 -0
  296. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/stations_cmd.py +0 -0
  297. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/status.py +0 -0
  298. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/telemetry_export.py +0 -0
  299. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/adal/memory-handoffs/TEMPLATE.md +0 -0
  300. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/aider/memory-handoffs/TEMPLATE.md +0 -0
  301. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/amp/memory-handoffs/TEMPLATE.md +0 -0
  302. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/antigravity/memory-handoffs/TEMPLATE.md +0 -0
  303. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/claude/memory-handoffs/TEMPLATE.md +0 -0
  304. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/codex/memory-handoffs/TEMPLATE.md +0 -0
  305. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/continue/memory-handoffs/TEMPLATE.md +0 -0
  306. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/copilot/memory-handoffs/TEMPLATE.md +0 -0
  307. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/crush/memory-handoffs/TEMPLATE.md +0 -0
  308. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/cursor/memory-handoffs/TEMPLATE.md +0 -0
  309. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/depth/repo.json +0 -0
  310. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/depth/workspace.json +0 -0
  311. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/generic/harness-adapter-checklist.md +0 -0
  312. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/generic/memory-contract.md +0 -0
  313. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/goose/memory-handoffs/TEMPLATE.md +0 -0
  314. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/grok/memory-handoffs/TEMPLATE.md +0 -0
  315. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/handoff/handoff-sources.example.json +0 -0
  316. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/handoff/openclaw-ingest-receipt.example.json +0 -0
  317. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/adal.json +0 -0
  318. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/aider.json +0 -0
  319. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/amp.json +0 -0
  320. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/antigravity.json +0 -0
  321. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/claude.json +0 -0
  322. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/codex.json +0 -0
  323. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/continue.json +0 -0
  324. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/copilot.json +0 -0
  325. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/crush.json +0 -0
  326. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/cursor.json +0 -0
  327. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/goose.json +0 -0
  328. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/grok.json +0 -0
  329. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/hermes.json +0 -0
  330. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/kimi.json +0 -0
  331. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/openclaw.json +0 -0
  332. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/opencode.json +0 -0
  333. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/openhands.json +0 -0
  334. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/pi.json +0 -0
  335. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/harnesses/qwen.json +0 -0
  336. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hermes/README.md +0 -0
  337. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hermes/memory-handoffs/TEMPLATE.md +0 -0
  338. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/hooks/pre-push +0 -0
  339. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/includes/publisher.json +0 -0
  340. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/includes/repo-extras.json +0 -0
  341. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/kimi/memory-handoffs/TEMPLATE.md +0 -0
  342. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/backup-restic.md +0 -0
  343. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/chat-surface-crawlers.md +0 -0
  344. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/content-safety.md +0 -0
  345. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/handoff-flow.md +0 -0
  346. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/memory-architecture.md +0 -0
  347. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/memory-care-staleness.md +0 -0
  348. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/memory-scanner.md +0 -0
  349. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/multi-workspace-handoff-admin.md +0 -0
  350. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/obsidian-notes.md +0 -0
  351. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/pipeline-standups.md +0 -0
  352. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/memory/cards/token-glace-output-compaction.md +0 -0
  353. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openclaw/README.md +0 -0
  354. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openclaw/acp-escalation.openclaw.json +0 -0
  355. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openclaw/memory-sweep-cron.openclaw.json +0 -0
  356. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openclaw/model-aliases.openclaw.json +0 -0
  357. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openclaw/ollama-memory-search.openclaw.json +0 -0
  358. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/opencode/memory-handoffs/TEMPLATE.md +0 -0
  359. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/openhands/memory-handoffs/TEMPLATE.md +0 -0
  360. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/pi/memory-handoffs/TEMPLATE.md +0 -0
  361. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/qwen/memory-handoffs/TEMPLATE.md +0 -0
  362. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/repo/AGENTS.md +0 -0
  363. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/repo/CLAUDE.md +0 -0
  364. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/repo/INSTALL_FOR_AGENTS.md +0 -0
  365. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/scripts/backup-restic.sh +0 -0
  366. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/brigade-work/CHANGELOG.md +0 -0
  367. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/brigade-work/SKILL.md +0 -0
  368. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/brigade-work/skill.json +0 -0
  369. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/note/CHANGELOG.md +0 -0
  370. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/note/SKILL.md +0 -0
  371. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/note/skill.json +0 -0
  372. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/ultra-work-scout/CHANGELOG.md +0 -0
  373. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/ultra-work-scout/SKILL.md +0 -0
  374. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/skills/ultra-work-scout/skill.json +0 -0
  375. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/stations/managed-snapshot.json +0 -0
  376. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/AGENTS.md +0 -0
  377. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/CLAUDE.md +0 -0
  378. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/HEARTBEAT.md +0 -0
  379. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/IDENTITY.md +0 -0
  380. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/INSTALL_FOR_AGENTS.md +0 -0
  381. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/MEMORY.md +0 -0
  382. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/SAFETY_RULES.md +0 -0
  383. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/SOUL.md +0 -0
  384. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/TOOLS.md +0 -0
  385. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/USER.md +0 -0
  386. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/rules/acceptance-driven-work.md +0 -0
  387. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates/workspace/rules/issue-tdd-loop.md +0 -0
  388. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/templates.py +0 -0
  389. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tokens_cmd.py +0 -0
  390. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/toml_compat.py +0 -0
  391. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/__init__.py +0 -0
  392. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/calls.py +0 -0
  393. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/catalog_health.py +0 -0
  394. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/catalog_manage.py +0 -0
  395. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/checkpoint_store.py +0 -0
  396. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/checkpoints.py +0 -0
  397. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/config.py +0 -0
  398. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/constants.py +0 -0
  399. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/helpers.py +0 -0
  400. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/issues.py +0 -0
  401. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/mcp.py +0 -0
  402. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/packs.py +0 -0
  403. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/paths.py +0 -0
  404. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/projections.py +0 -0
  405. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/runs.py +0 -0
  406. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/runtimes.py +0 -0
  407. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/safety.py +0 -0
  408. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/tools_cmd/status.py +0 -0
  409. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/untrusted.py +0 -0
  410. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/untrusted_cmd.py +0 -0
  411. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/__init__.py +0 -0
  412. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/backup.py +0 -0
  413. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/config.py +0 -0
  414. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/constants.py +0 -0
  415. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/helpers.py +0 -0
  416. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/imports.py +0 -0
  417. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/ledger.py +0 -0
  418. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/reviews.py +0 -0
  419. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/scanners.py +0 -0
  420. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/services.py +0 -0
  421. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/session/__init__.py +0 -0
  422. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/session/briefing.py +0 -0
  423. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/session/lifecycle.py +0 -0
  424. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/session/run_status.py +0 -0
  425. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/session/task_ops.py +0 -0
  426. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/sweeps.py +0 -0
  427. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/work_cmd/verification.py +0 -0
  428. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade/workflow_cmd.py +0 -0
  429. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/dependency_links.txt +0 -0
  430. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/entry_points.txt +0 -0
  431. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/requires.txt +0 -0
  432. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/src/brigade_cli.egg-info/top_level.txt +0 -0
  433. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_aboyeur.py +0 -0
  434. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_acpx_adapter.py +0 -0
  435. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_actionqueue.py +0 -0
  436. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_add.py +0 -0
  437. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_agent_skill_format.py +0 -0
  438. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_agent_write_probes.py +0 -0
  439. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_agents.py +0 -0
  440. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_agents_model_pin.py +0 -0
  441. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_agents_windows_executable.py +0 -0
  442. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_budgets.py +0 -0
  443. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_center_actions_cmd.py +0 -0
  444. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_center_readiness_cmd.py +0 -0
  445. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_center_report_cmd.py +0 -0
  446. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_claude_hooks_doctor.py +0 -0
  447. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_claude_hooks_runtime.py +0 -0
  448. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_claude_hooks_settings_merge.py +0 -0
  449. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_cli_alias.py +0 -0
  450. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_cli_help.py +0 -0
  451. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_codex_appserver.py +0 -0
  452. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_codex_appserver_integration.py +0 -0
  453. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_codex_cloud.py +0 -0
  454. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_completions.py +0 -0
  455. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_config.py +0 -0
  456. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_context_cmd.py +0 -0
  457. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_context_learning_closeout_cmd.py +0 -0
  458. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_cursor_user_cmd.py +0 -0
  459. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_daily_driver_cmd.py +0 -0
  460. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_doctor.py +0 -0
  461. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_dogfood_cmd.py +0 -0
  462. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_evidence_cmd.py +0 -0
  463. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_extras_gate.py +0 -0
  464. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_fleet_action_dispatch_cmd.py +0 -0
  465. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_fragments.py +0 -0
  466. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_friction_cmd.py +0 -0
  467. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_gitignore.py +0 -0
  468. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_handoff.py +0 -0
  469. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_handoff_cmd.py +0 -0
  470. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_harness_conformance_probe.py +0 -0
  471. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_ingest.py +0 -0
  472. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_init.py +0 -0
  473. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_install.py +0 -0
  474. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_issue266_benchmark.py +0 -0
  475. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_issue266_work_status_memory.py +0 -0
  476. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_localio.py +0 -0
  477. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_managed.py +0 -0
  478. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_managed_snapshot.py +0 -0
  479. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_adapters.py +0 -0
  480. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_cmd.py +0 -0
  481. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_integration.py +0 -0
  482. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_runtime.py +0 -0
  483. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_server.py +0 -0
  484. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_url_only_import.py +0 -0
  485. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_mcp_user_scope.py +0 -0
  486. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_memory_cmd.py +0 -0
  487. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_memory_search_mcp.py +0 -0
  488. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_model_inventory.py +0 -0
  489. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_model_scorecard.py +0 -0
  490. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_model_trials.py +0 -0
  491. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_neutrality.py +0 -0
  492. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_notifications_cmd.py +0 -0
  493. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_operator_checkup.py +0 -0
  494. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_operator_cmd.py +0 -0
  495. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_outcome.py +0 -0
  496. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_outcome_activegraph.py +0 -0
  497. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_outcome_cmd.py +0 -0
  498. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_outcome_execute.py +0 -0
  499. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_pantry_cmd.py +0 -0
  500. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_parity_backlog.py +0 -0
  501. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_phase257_facades.py +0 -0
  502. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_phase_ledger_session_cmd.py +0 -0
  503. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_phases_cmd_facade.py +0 -0
  504. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_pre_push_hook.py +0 -0
  505. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_privacy_regression.py +0 -0
  506. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_proc.py +0 -0
  507. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_profiles.py +0 -0
  508. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_prompt.py +0 -0
  509. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_publish_workflow.py +0 -0
  510. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_read_only_enforcement.py +0 -0
  511. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_receipt_signing.py +0 -0
  512. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_receipts_cmd.py +0 -0
  513. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_reconfigure.py +0 -0
  514. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_registry.py +0 -0
  515. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_checklist.py +0 -0
  516. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_ci_health_cmd.py +0 -0
  517. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_cmd.py +0 -0
  518. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_readiness_hygiene_cmd.py +0 -0
  519. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_reconcile_evidence_cmd.py +0 -0
  520. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_smoke_health_cmd.py +0 -0
  521. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_train_evidence_cmd.py +0 -0
  522. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_version_sync.py +0 -0
  523. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_release_waivers_manifest_cmd.py +0 -0
  524. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_report_review_closeout_cmd.py +0 -0
  525. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_reportstore.py +0 -0
  526. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_actions_cmd.py +0 -0
  527. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_adoption_cmd.py +0 -0
  528. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_cmd.py +0 -0
  529. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_cmd_facade.py +0 -0
  530. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_friction_cmd.py +0 -0
  531. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_release_train_cmd.py +0 -0
  532. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_repos_sweep_health_cmd.py +0 -0
  533. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_cli_sources.py +0 -0
  534. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_cmd.py +0 -0
  535. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_config.py +0 -0
  536. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_engine.py +0 -0
  537. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_extract.py +0 -0
  538. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_handoff.py +0 -0
  539. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_llm.py +0 -0
  540. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_local_sources.py +0 -0
  541. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_registry.py +0 -0
  542. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_report.py +0 -0
  543. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_types.py +0 -0
  544. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_research_web.py +0 -0
  545. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_roadmap_cmd.py +0 -0
  546. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_roadmap_inventory_cmd.py +0 -0
  547. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_roster.py +0 -0
  548. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_roster_cmd.py +0 -0
  549. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_router.py +0 -0
  550. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_router_properties.py +0 -0
  551. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_cli.py +0 -0
  552. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_control.py +0 -0
  553. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_detach.py +0 -0
  554. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_resume.py +0 -0
  555. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_transport_env.py +0 -0
  556. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_run_transport_recovery.py +0 -0
  557. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_runbook_cmd.py +0 -0
  558. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_runbook_import.py +0 -0
  559. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_runguard.py +0 -0
  560. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_runs_cmd.py +0 -0
  561. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_runs_watch.py +0 -0
  562. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_scrub.py +0 -0
  563. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_search_cmd.py +0 -0
  564. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_security_cmd.py +0 -0
  565. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_security_diff.py +0 -0
  566. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_security_template_audit_cmd.py +0 -0
  567. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_selection.py +0 -0
  568. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_skill_templates_metadata.py +0 -0
  569. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_skills_cmd.py +0 -0
  570. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_station.py +0 -0
  571. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_station_manifest.py +0 -0
  572. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_stations_discover.py +0 -0
  573. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_stations_verify.py +0 -0
  574. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_status.py +0 -0
  575. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_subprocess_guards.py +0 -0
  576. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_telemetry_export.py +0 -0
  577. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_test_fixture_contract.py +0 -0
  578. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_tokens_cmd.py +0 -0
  579. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_toml_compat.py +0 -0
  580. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_tools_cmd_facade.py +0 -0
  581. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_untrusted.py +0 -0
  582. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_untrusted_cmd.py +0 -0
  583. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_verify_script.py +0 -0
  584. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_waiver_policy_health_cmd.py +0 -0
  585. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_backup.py +0 -0
  586. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_facade.py +0 -0
  587. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_imports.py +0 -0
  588. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_ledger.py +0 -0
  589. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_reviews.py +0 -0
  590. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_scanners.py +0 -0
  591. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_services.py +0 -0
  592. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_session.py +0 -0
  593. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_sweeps.py +0 -0
  594. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_work_cmd_verification.py +0 -0
  595. {brigade_cli-0.23.0 → brigade_cli-0.23.2}/tests/test_workflow_cmd.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: brigade-cli
3
- Version: 0.23.0
3
+ Version: 0.23.2
4
4
  Summary: Your agents run loops. Brigade keeps the receipts. Local control plane for multi-agent coding: share MCP/tools/memory, remember via handoffs, prove with file receipts, improve by promoting skills only on real exit codes. Claude Code, Codex, Grok, Hermes, OpenClaw, and more. Stations for evidence, code graph, pantry, skills. pipx install brigade-cli.
5
5
  Author-email: Solomon Neas <me@solomonneas.dev>
6
6
  License: MIT
@@ -28,6 +28,9 @@ Classifier: Programming Language :: Python :: 3
28
28
  Classifier: Programming Language :: Python :: 3.10
29
29
  Classifier: Programming Language :: Python :: 3.11
30
30
  Classifier: Programming Language :: Python :: 3.12
31
+ Classifier: Operating System :: Microsoft :: Windows
32
+ Classifier: Operating System :: MacOS
33
+ Classifier: Operating System :: POSIX :: Linux
31
34
  Requires-Python: >=3.10
32
35
  Description-Content-Type: text/markdown
33
36
  License-File: LICENSE
@@ -74,6 +77,8 @@ Dynamic: license-file
74
77
 
75
78
  ## Install
76
79
 
80
+ Brigade runs on Linux, macOS, and Windows with Python 3.10 or newer. The CLI and quickstart commands are the same on every platform; only the one-time `pipx` setup differs. See the [per-OS install guide](https://brigade.tools/docs/getting-started/install) for apt, Homebrew, Scoop, and PowerShell instructions.
81
+
77
82
  ```bash
78
83
  pipx install brigade-cli
79
84
  pipx ensurepath # then open a new shell so `brigade` is on PATH
@@ -4,21 +4,56 @@ Five minutes from install to a working agent kitchen.
4
4
 
5
5
  ## 1. Install
6
6
 
7
+ Brigade supports Linux, macOS, and Windows with Python 3.10 or newer. Install `pipx` with the package manager for your OS, then install Brigade.
8
+
9
+ ### Linux
10
+
11
+ Ubuntu 23.04+, Debian 12+, and Fedora use an externally managed system Python. Install `pipx` from the distribution package instead of using `pip install --user`:
12
+
7
13
  ```bash
8
- pipx install brigade-cli
14
+ # Ubuntu or Debian
15
+ sudo apt update
16
+ sudo apt install pipx
17
+
18
+ # Fedora
19
+ sudo dnf install pipx
20
+
21
+ pipx ensurepath
9
22
  ```
10
23
 
11
- To track the latest `main` branch instead of the latest package release:
24
+ On another distribution, use its `pipx` package when available. The [pipx install guide](https://pipx.pypa.io/latest/how-to/install-pipx.html) covers the virtual-environment fallback.
25
+
26
+ ### macOS
12
27
 
13
28
  ```bash
14
- pipx install git+https://github.com/escoffier-labs/brigade
29
+ brew install pipx
30
+ pipx ensurepath
31
+ ```
32
+
33
+ ### Windows PowerShell
34
+
35
+ ```powershell
36
+ scoop install pipx
37
+ pipx ensurepath
38
+ ```
39
+
40
+ Without Scoop, use Python's Windows launcher:
41
+
42
+ ```powershell
43
+ py -m pip install --user pipx
44
+ # Run pipx.exe ensurepath from the directory printed by pip if it is not on PATH yet.
15
45
  ```
16
46
 
17
- If you do not have `pipx`:
47
+ Open a new terminal after `pipx ensurepath`, then continue on any OS:
18
48
 
19
49
  ```bash
20
- python3 -m pip install --user pipx
21
- python3 -m pipx ensurepath
50
+ pipx install brigade-cli
51
+ ```
52
+
53
+ To track the latest `main` branch instead of the latest package release:
54
+
55
+ ```bash
56
+ pipx install git+https://github.com/escoffier-labs/brigade
22
57
  ```
23
58
 
24
59
  ## First install
@@ -35,6 +70,15 @@ brigade operator quickstart --target ~/agent-workspace --depth workspace --harne
35
70
 
36
71
  Pass `--dry-run` first to preview the planned steps without writing anything.
37
72
 
73
+ PowerShell uses Windows path spelling when you provide a path explicitly:
74
+
75
+ ```powershell
76
+ brigade operator quickstart --target .\my-repo --harnesses codex
77
+ brigade operator doctor --target .\my-repo --profile local-operator
78
+ ```
79
+
80
+ No WSL is required. Worker CLIs must resolve to native executables; when an npm tool resolves only to a `.cmd` or `.bat` shim, Brigade reports the shim and asks for a native launcher. Shell completions currently cover bash, zsh, and fish. `brigade stations verify` is POSIX-only and reports `unsupported-platform` on Windows; quickstart, doctor, the work loop, and native worker runs are supported.
81
+
38
82
  Two commands share this surface: `brigade init` installs the template files only, and `brigade operator quickstart` wraps it with operator config, the MCP and dogfood on-ramps, writer verification, and health checks. Use `init` when you want the interactive harness picker or just the files:
39
83
 
40
84
  ```bash
@@ -32,6 +32,8 @@
32
32
 
33
33
  ## Install
34
34
 
35
+ Brigade runs on Linux, macOS, and Windows with Python 3.10 or newer. The CLI and quickstart commands are the same on every platform; only the one-time `pipx` setup differs. See the [per-OS install guide](https://brigade.tools/docs/getting-started/install) for apt, Homebrew, Scoop, and PowerShell instructions.
36
+
35
37
  ```bash
36
38
  pipx install brigade-cli
37
39
  pipx ensurepath # then open a new shell so `brigade` is on PATH
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "brigade-cli"
7
- version = "0.23.0"
7
+ version = "0.23.2"
8
8
  description = "Your agents run loops. Brigade keeps the receipts. Local control plane for multi-agent coding: share MCP/tools/memory, remember via handoffs, prove with file receipts, improve by promoting skills only on real exit codes. Claude Code, Codex, Grok, Hermes, OpenClaw, and more. Stations for evidence, code graph, pantry, skills. pipx install brigade-cli."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -18,6 +18,9 @@ classifiers = [
18
18
  "Programming Language :: Python :: 3.10",
19
19
  "Programming Language :: Python :: 3.11",
20
20
  "Programming Language :: Python :: 3.12",
21
+ "Operating System :: Microsoft :: Windows",
22
+ "Operating System :: MacOS",
23
+ "Operating System :: POSIX :: Linux",
21
24
  ]
22
25
  dependencies = []
23
26
 
@@ -1,3 +1,3 @@
1
1
  """Brigade: local operator-system CLI for agent workspaces."""
2
2
 
3
- __version__ = "0.23.0"
3
+ __version__ = "0.23.2"
@@ -31,6 +31,7 @@ from . import (
31
31
  receipts as _receipts_group,
32
32
  daily as _daily_group,
33
33
  add as _add_group,
34
+ setup as _setup_group,
34
35
  stations as _stations_group,
35
36
  pantry as _pantry_group,
36
37
  evidence as _evidence_group,
@@ -129,6 +130,7 @@ def _build_parser() -> argparse.ArgumentParser:
129
130
  _receipts_group.register(sub)
130
131
  _daily_group.register(sub)
131
132
  _add_group.register(sub)
133
+ _setup_group.register(sub)
132
134
  _stations_group.register(sub)
133
135
  _evidence_group.register(sub)
134
136
  _search_group.register(sub)
@@ -24,6 +24,7 @@ COMMAND_GROUPS: list[tuple[str, list[str]]] = [
24
24
  "Stations and tools",
25
25
  [
26
26
  "add",
27
+ "setup",
27
28
  "stations",
28
29
  "skills",
29
30
  "harness",
@@ -0,0 +1,23 @@
1
+ """brigade setup command group."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+
7
+
8
+ def register(sub: argparse._SubParsersAction) -> None:
9
+ p_setup = sub.add_parser("setup", help="Install pinned native Brigade components.")
10
+ p_setup.add_argument("--dry-run", action="store_true", help="Report planned actions without writing.")
11
+ p_setup.add_argument("--offline", action="store_true", help="Use verified cache only; fail if missing.")
12
+ p_setup.add_argument("--rollback", action="store_true", help="Restore the previous installed manifest.")
13
+ p_setup.set_defaults(func=dispatch)
14
+
15
+
16
+ def dispatch(args) -> int:
17
+ from ..component_install import setup_native_components
18
+
19
+ return setup_native_components(
20
+ dry_run=args.dry_run,
21
+ offline=args.offline,
22
+ rollback=args.rollback,
23
+ )