solo-builder-core 0.4.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 (633) hide show
  1. solo_builder_core-0.4.0/LICENSE +21 -0
  2. solo_builder_core-0.4.0/NOTICE.md +39 -0
  3. solo_builder_core-0.4.0/PKG-INFO +297 -0
  4. solo_builder_core-0.4.0/README.md +236 -0
  5. solo_builder_core-0.4.0/pyproject.toml +129 -0
  6. solo_builder_core-0.4.0/setup.cfg +4 -0
  7. solo_builder_core-0.4.0/setup.py +5 -0
  8. solo_builder_core-0.4.0/src/solo_builder/__init__.py +5 -0
  9. solo_builder_core-0.4.0/src/solo_builder/_canonical.py +59 -0
  10. solo_builder_core-0.4.0/src/solo_builder/_signing.py +88 -0
  11. solo_builder_core-0.4.0/src/solo_builder/acceptance_report.py +445 -0
  12. solo_builder_core-0.4.0/src/solo_builder/action_scanner.py +2229 -0
  13. solo_builder_core-0.4.0/src/solo_builder/action_tokens.py +309 -0
  14. solo_builder_core-0.4.0/src/solo_builder/actor_attestation.py +775 -0
  15. solo_builder_core-0.4.0/src/solo_builder/adapters/__init__.py +40 -0
  16. solo_builder_core-0.4.0/src/solo_builder/adapters/_common.py +145 -0
  17. solo_builder_core-0.4.0/src/solo_builder/adapters/anthropic.py +91 -0
  18. solo_builder_core-0.4.0/src/solo_builder/adapters/openai.py +85 -0
  19. solo_builder_core-0.4.0/src/solo_builder/adapters/stripe.py +96 -0
  20. solo_builder_core-0.4.0/src/solo_builder/adversarial_demo.py +449 -0
  21. solo_builder_core-0.4.0/src/solo_builder/agent.py +1913 -0
  22. solo_builder_core-0.4.0/src/solo_builder/agent_registry.py +278 -0
  23. solo_builder_core-0.4.0/src/solo_builder/ai.py +353 -0
  24. solo_builder_core-0.4.0/src/solo_builder/analyzers/go/go.mod +3 -0
  25. solo_builder_core-0.4.0/src/solo_builder/analyzers/go/main.go +269 -0
  26. solo_builder_core-0.4.0/src/solo_builder/analyzers/rust/.gitignore +1 -0
  27. solo_builder_core-0.4.0/src/solo_builder/analyzers/rust/Cargo.lock +120 -0
  28. solo_builder_core-0.4.0/src/solo_builder/analyzers/rust/Cargo.toml +18 -0
  29. solo_builder_core-0.4.0/src/solo_builder/analyzers/rust/src/main.rs +428 -0
  30. solo_builder_core-0.4.0/src/solo_builder/anomaly_engine.py +389 -0
  31. solo_builder_core-0.4.0/src/solo_builder/approvals.py +231 -0
  32. solo_builder_core-0.4.0/src/solo_builder/audit.py +164 -0
  33. solo_builder_core-0.4.0/src/solo_builder/authority_redemption.py +334 -0
  34. solo_builder_core-0.4.0/src/solo_builder/authority_resolution_log.py +110 -0
  35. solo_builder_core-0.4.0/src/solo_builder/autonomy.py +121 -0
  36. solo_builder_core-0.4.0/src/solo_builder/autonomy_envelope.py +1240 -0
  37. solo_builder_core-0.4.0/src/solo_builder/bootstrap.py +141 -0
  38. solo_builder_core-0.4.0/src/solo_builder/bridge_server.py +932 -0
  39. solo_builder_core-0.4.0/src/solo_builder/budget.py +268 -0
  40. solo_builder_core-0.4.0/src/solo_builder/build_event.py +641 -0
  41. solo_builder_core-0.4.0/src/solo_builder/build_genome.py +468 -0
  42. solo_builder_core-0.4.0/src/solo_builder/buildpack.py +203 -0
  43. solo_builder_core-0.4.0/src/solo_builder/bundle.py +388 -0
  44. solo_builder_core-0.4.0/src/solo_builder/bundle_verifier.py +566 -0
  45. solo_builder_core-0.4.0/src/solo_builder/capabilities.py +322 -0
  46. solo_builder_core-0.4.0/src/solo_builder/claim_discipline.py +193 -0
  47. solo_builder_core-0.4.0/src/solo_builder/cli.py +208 -0
  48. solo_builder_core-0.4.0/src/solo_builder/codebase_index.py +405 -0
  49. solo_builder_core-0.4.0/src/solo_builder/commands/__init__.py +1 -0
  50. solo_builder_core-0.4.0/src/solo_builder/commands/_shared.py +63 -0
  51. solo_builder_core-0.4.0/src/solo_builder/commands/account.py +154 -0
  52. solo_builder_core-0.4.0/src/solo_builder/commands/agent.py +144 -0
  53. solo_builder_core-0.4.0/src/solo_builder/commands/ai.py +159 -0
  54. solo_builder_core-0.4.0/src/solo_builder/commands/audit.py +50 -0
  55. solo_builder_core-0.4.0/src/solo_builder/commands/bridge.py +272 -0
  56. solo_builder_core-0.4.0/src/solo_builder/commands/compliance.py +765 -0
  57. solo_builder_core-0.4.0/src/solo_builder/commands/daemon.py +654 -0
  58. solo_builder_core-0.4.0/src/solo_builder/commands/demo.py +359 -0
  59. solo_builder_core-0.4.0/src/solo_builder/commands/distillation.py +338 -0
  60. solo_builder_core-0.4.0/src/solo_builder/commands/doctor.py +232 -0
  61. solo_builder_core-0.4.0/src/solo_builder/commands/eval.py +271 -0
  62. solo_builder_core-0.4.0/src/solo_builder/commands/evidence.py +350 -0
  63. solo_builder_core-0.4.0/src/solo_builder/commands/export.py +378 -0
  64. solo_builder_core-0.4.0/src/solo_builder/commands/forecast.py +107 -0
  65. solo_builder_core-0.4.0/src/solo_builder/commands/gate.py +149 -0
  66. solo_builder_core-0.4.0/src/solo_builder/commands/govern.py +1679 -0
  67. solo_builder_core-0.4.0/src/solo_builder/commands/governed_email.py +128 -0
  68. solo_builder_core-0.4.0/src/solo_builder/commands/init.py +67 -0
  69. solo_builder_core-0.4.0/src/solo_builder/commands/kernel.py +455 -0
  70. solo_builder_core-0.4.0/src/solo_builder/commands/linkedin.py +1994 -0
  71. solo_builder_core-0.4.0/src/solo_builder/commands/mcp_serve.py +129 -0
  72. solo_builder_core-0.4.0/src/solo_builder/commands/memory.py +144 -0
  73. solo_builder_core-0.4.0/src/solo_builder/commands/metrics.py +28 -0
  74. solo_builder_core-0.4.0/src/solo_builder/commands/mission_control.py +338 -0
  75. solo_builder_core-0.4.0/src/solo_builder/commands/onboard.py +530 -0
  76. solo_builder_core-0.4.0/src/solo_builder/commands/persona.py +64 -0
  77. solo_builder_core-0.4.0/src/solo_builder/commands/prompt.py +1040 -0
  78. solo_builder_core-0.4.0/src/solo_builder/commands/proof.py +791 -0
  79. solo_builder_core-0.4.0/src/solo_builder/commands/rcm.py +300 -0
  80. solo_builder_core-0.4.0/src/solo_builder/commands/registry.py +226 -0
  81. solo_builder_core-0.4.0/src/solo_builder/commands/reliance.py +385 -0
  82. solo_builder_core-0.4.0/src/solo_builder/commands/replay.py +103 -0
  83. solo_builder_core-0.4.0/src/solo_builder/commands/report.py +295 -0
  84. solo_builder_core-0.4.0/src/solo_builder/commands/resume.py +41 -0
  85. solo_builder_core-0.4.0/src/solo_builder/commands/serve.py +327 -0
  86. solo_builder_core-0.4.0/src/solo_builder/commands/ship.py +6361 -0
  87. solo_builder_core-0.4.0/src/solo_builder/commands/status.py +153 -0
  88. solo_builder_core-0.4.0/src/solo_builder/commands/strix_wire.py +1508 -0
  89. solo_builder_core-0.4.0/src/solo_builder/commands/sync.py +41 -0
  90. solo_builder_core-0.4.0/src/solo_builder/commands/ticket.py +60 -0
  91. solo_builder_core-0.4.0/src/solo_builder/commands/tool.py +162 -0
  92. solo_builder_core-0.4.0/src/solo_builder/commands/watch.py +52 -0
  93. solo_builder_core-0.4.0/src/solo_builder/compare.py +489 -0
  94. solo_builder_core-0.4.0/src/solo_builder/compliance_profiles.py +1138 -0
  95. solo_builder_core-0.4.0/src/solo_builder/compliance_schemas/ai_act_annex_iv_v1.schema.json +102 -0
  96. solo_builder_core-0.4.0/src/solo_builder/compliance_schemas/insurance_risk_v1.schema.json +91 -0
  97. solo_builder_core-0.4.0/src/solo_builder/compliance_schemas/iso_42001_clause_8_v1.schema.json +96 -0
  98. solo_builder_core-0.4.0/src/solo_builder/config.py +510 -0
  99. solo_builder_core-0.4.0/src/solo_builder/connected.py +135 -0
  100. solo_builder_core-0.4.0/src/solo_builder/credential_class_matrix.snapshot.json +24 -0
  101. solo_builder_core-0.4.0/src/solo_builder/csv_export.py +227 -0
  102. solo_builder_core-0.4.0/src/solo_builder/custody.py +545 -0
  103. solo_builder_core-0.4.0/src/solo_builder/daemon_proc.py +221 -0
  104. solo_builder_core-0.4.0/src/solo_builder/demo.py +240 -0
  105. solo_builder_core-0.4.0/src/solo_builder/deployers/__init__.py +67 -0
  106. solo_builder_core-0.4.0/src/solo_builder/deployers/_process.py +38 -0
  107. solo_builder_core-0.4.0/src/solo_builder/deployers/base.py +111 -0
  108. solo_builder_core-0.4.0/src/solo_builder/deployers/cloudflare.py +65 -0
  109. solo_builder_core-0.4.0/src/solo_builder/deployers/expo.py +43 -0
  110. solo_builder_core-0.4.0/src/solo_builder/deployers/manual.py +16 -0
  111. solo_builder_core-0.4.0/src/solo_builder/deployers/pages.py +173 -0
  112. solo_builder_core-0.4.0/src/solo_builder/deployers/railway.py +66 -0
  113. solo_builder_core-0.4.0/src/solo_builder/deployers/vercel.py +120 -0
  114. solo_builder_core-0.4.0/src/solo_builder/device_attestation.py +771 -0
  115. solo_builder_core-0.4.0/src/solo_builder/device_class_matrix.snapshot.json +16 -0
  116. solo_builder_core-0.4.0/src/solo_builder/distillation_boundary.py +397 -0
  117. solo_builder_core-0.4.0/src/solo_builder/distillation_copilot.py +393 -0
  118. solo_builder_core-0.4.0/src/solo_builder/distillation_demo.py +303 -0
  119. solo_builder_core-0.4.0/src/solo_builder/distillation_governance.py +611 -0
  120. solo_builder_core-0.4.0/src/solo_builder/entitlements.py +778 -0
  121. solo_builder_core-0.4.0/src/solo_builder/evals.py +655 -0
  122. solo_builder_core-0.4.0/src/solo_builder/events.py +190 -0
  123. solo_builder_core-0.4.0/src/solo_builder/evidence_store.py +338 -0
  124. solo_builder_core-0.4.0/src/solo_builder/evidence_stream.py +318 -0
  125. solo_builder_core-0.4.0/src/solo_builder/evolve.py +170 -0
  126. solo_builder_core-0.4.0/src/solo_builder/executor.py +670 -0
  127. solo_builder_core-0.4.0/src/solo_builder/executor_key_enrollment.py +430 -0
  128. solo_builder_core-0.4.0/src/solo_builder/external_verification_receipt.py +997 -0
  129. solo_builder_core-0.4.0/src/solo_builder/fleet.py +513 -0
  130. solo_builder_core-0.4.0/src/solo_builder/functional_gate.py +188 -0
  131. solo_builder_core-0.4.0/src/solo_builder/git_ops.py +212 -0
  132. solo_builder_core-0.4.0/src/solo_builder/github_client.py +154 -0
  133. solo_builder_core-0.4.0/src/solo_builder/governance_coverage.py +289 -0
  134. solo_builder_core-0.4.0/src/solo_builder/governance_trend.py +230 -0
  135. solo_builder_core-0.4.0/src/solo_builder/governed_email_revalidation.py +574 -0
  136. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/__init__.py +32 -0
  137. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/api.py +217 -0
  138. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/models.py +225 -0
  139. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/outbox_worker.py +136 -0
  140. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/policy.py +52 -0
  141. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/postgres_suppression.py +740 -0
  142. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/release.py +373 -0
  143. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/release_recheck.py +66 -0
  144. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/repository.py +149 -0
  145. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/service.py +299 -0
  146. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/suppression.py +535 -0
  147. solo_builder_core-0.4.0/src/solo_builder/governed_outbound/webhook_sync.py +184 -0
  148. solo_builder_core-0.4.0/src/solo_builder/http.py +39 -0
  149. solo_builder_core-0.4.0/src/solo_builder/interactive_gate.py +55 -0
  150. solo_builder_core-0.4.0/src/solo_builder/jason_handoff.py +851 -0
  151. solo_builder_core-0.4.0/src/solo_builder/jason_handoff_execute.py +1174 -0
  152. solo_builder_core-0.4.0/src/solo_builder/jason_handoff_ingest.py +235 -0
  153. solo_builder_core-0.4.0/src/solo_builder/jason_plan.py +174 -0
  154. solo_builder_core-0.4.0/src/solo_builder/jwks.py +337 -0
  155. solo_builder_core-0.4.0/src/solo_builder/kernel_client.py +436 -0
  156. solo_builder_core-0.4.0/src/solo_builder/kernel_decision.py +90 -0
  157. solo_builder_core-0.4.0/src/solo_builder/linkedin_accounts.py +132 -0
  158. solo_builder_core-0.4.0/src/solo_builder/linkedin_authorization.py +397 -0
  159. solo_builder_core-0.4.0/src/solo_builder/linkedin_capabilities.py +669 -0
  160. solo_builder_core-0.4.0/src/solo_builder/linkedin_console.py +645 -0
  161. solo_builder_core-0.4.0/src/solo_builder/linkedin_content.py +505 -0
  162. solo_builder_core-0.4.0/src/solo_builder/linkedin_drafting.py +523 -0
  163. solo_builder_core-0.4.0/src/solo_builder/linkedin_email.py +331 -0
  164. solo_builder_core-0.4.0/src/solo_builder/linkedin_enrich.py +251 -0
  165. solo_builder_core-0.4.0/src/solo_builder/linkedin_evidence.py +231 -0
  166. solo_builder_core-0.4.0/src/solo_builder/linkedin_gate.py +189 -0
  167. solo_builder_core-0.4.0/src/solo_builder/linkedin_history.py +206 -0
  168. solo_builder_core-0.4.0/src/solo_builder/linkedin_ingest.py +533 -0
  169. solo_builder_core-0.4.0/src/solo_builder/linkedin_kernel_bridge.py +766 -0
  170. solo_builder_core-0.4.0/src/solo_builder/linkedin_mc1.py +1006 -0
  171. solo_builder_core-0.4.0/src/solo_builder/linkedin_mcp.py +126 -0
  172. solo_builder_core-0.4.0/src/solo_builder/linkedin_memory.py +138 -0
  173. solo_builder_core-0.4.0/src/solo_builder/linkedin_pass.py +922 -0
  174. solo_builder_core-0.4.0/src/solo_builder/linkedin_pipeline.py +254 -0
  175. solo_builder_core-0.4.0/src/solo_builder/linkedin_qualify.py +404 -0
  176. solo_builder_core-0.4.0/src/solo_builder/linkedin_queue.py +133 -0
  177. solo_builder_core-0.4.0/src/solo_builder/linkedin_scoring.py +141 -0
  178. solo_builder_core-0.4.0/src/solo_builder/linkedin_signals.py +465 -0
  179. solo_builder_core-0.4.0/src/solo_builder/llm.py +324 -0
  180. solo_builder_core-0.4.0/src/solo_builder/marketplace.py +334 -0
  181. solo_builder_core-0.4.0/src/solo_builder/mc_1.py +1184 -0
  182. solo_builder_core-0.4.0/src/solo_builder/mcp_adapter.py +484 -0
  183. solo_builder_core-0.4.0/src/solo_builder/mcp_auth.py +224 -0
  184. solo_builder_core-0.4.0/src/solo_builder/mcp_governance.py +544 -0
  185. solo_builder_core-0.4.0/src/solo_builder/mcp_http.py +312 -0
  186. solo_builder_core-0.4.0/src/solo_builder/mcp_proof.py +1369 -0
  187. solo_builder_core-0.4.0/src/solo_builder/memory.py +258 -0
  188. solo_builder_core-0.4.0/src/solo_builder/metrics.py +152 -0
  189. solo_builder_core-0.4.0/src/solo_builder/mission_control.py +1315 -0
  190. solo_builder_core-0.4.0/src/solo_builder/mission_control_svg.py +289 -0
  191. solo_builder_core-0.4.0/src/solo_builder/network_signatures.py +326 -0
  192. solo_builder_core-0.4.0/src/solo_builder/notion_client.py +67 -0
  193. solo_builder_core-0.4.0/src/solo_builder/objective_graph.py +623 -0
  194. solo_builder_core-0.4.0/src/solo_builder/outcome_swarm.py +170 -0
  195. solo_builder_core-0.4.0/src/solo_builder/output.py +73 -0
  196. solo_builder_core-0.4.0/src/solo_builder/parallel.py +278 -0
  197. solo_builder_core-0.4.0/src/solo_builder/pattern_catalog.py +1996 -0
  198. solo_builder_core-0.4.0/src/solo_builder/personas.py +229 -0
  199. solo_builder_core-0.4.0/src/solo_builder/plan.py +325 -0
  200. solo_builder_core-0.4.0/src/solo_builder/planner.py +141 -0
  201. solo_builder_core-0.4.0/src/solo_builder/policy_export.py +294 -0
  202. solo_builder_core-0.4.0/src/solo_builder/policy_lint.py +295 -0
  203. solo_builder_core-0.4.0/src/solo_builder/policy_replay.py +238 -0
  204. solo_builder_core-0.4.0/src/solo_builder/process_launch_census.py +859 -0
  205. solo_builder_core-0.4.0/src/solo_builder/production_authority.py +404 -0
  206. solo_builder_core-0.4.0/src/solo_builder/production_profile.py +162 -0
  207. solo_builder_core-0.4.0/src/solo_builder/prompts.py +1151 -0
  208. solo_builder_core-0.4.0/src/solo_builder/proof.py +198 -0
  209. solo_builder_core-0.4.0/src/solo_builder/proof_browser.py +104 -0
  210. solo_builder_core-0.4.0/src/solo_builder/proof_receipt.py +601 -0
  211. solo_builder_core-0.4.0/src/solo_builder/provenance.py +502 -0
  212. solo_builder_core-0.4.0/src/solo_builder/public_verify.py +312 -0
  213. solo_builder_core-0.4.0/src/solo_builder/py.typed +0 -0
  214. solo_builder_core-0.4.0/src/solo_builder/race.py +159 -0
  215. solo_builder_core-0.4.0/src/solo_builder/rcm_csv_adapter.py +1108 -0
  216. solo_builder_core-0.4.0/src/solo_builder/rcm_signed_evidence.py +370 -0
  217. solo_builder_core-0.4.0/src/solo_builder/rcm_solution_pack.py +345 -0
  218. solo_builder_core-0.4.0/src/solo_builder/registry.py +549 -0
  219. solo_builder_core-0.4.0/src/solo_builder/release_authority.py +528 -0
  220. solo_builder_core-0.4.0/src/solo_builder/release_evidence.py +659 -0
  221. solo_builder_core-0.4.0/src/solo_builder/release_evidence_log.py +269 -0
  222. solo_builder_core-0.4.0/src/solo_builder/release_identity.py +368 -0
  223. solo_builder_core-0.4.0/src/solo_builder/release_population.py +546 -0
  224. solo_builder_core-0.4.0/src/solo_builder/release_proof_bundle.py +1290 -0
  225. solo_builder_core-0.4.0/src/solo_builder/reliance.py +462 -0
  226. solo_builder_core-0.4.0/src/solo_builder/replay.py +418 -0
  227. solo_builder_core-0.4.0/src/solo_builder/right_to_contact.py +532 -0
  228. solo_builder_core-0.4.0/src/solo_builder/right_to_contact_api.py +206 -0
  229. solo_builder_core-0.4.0/src/solo_builder/roots/strix-root-v1.pem +3 -0
  230. solo_builder_core-0.4.0/src/solo_builder/sandbox_cgroup.py +316 -0
  231. solo_builder_core-0.4.0/src/solo_builder/sandbox_ns.py +474 -0
  232. solo_builder_core-0.4.0/src/solo_builder/sarif_policy.py +207 -0
  233. solo_builder_core-0.4.0/src/solo_builder/scaffold.py +38 -0
  234. solo_builder_core-0.4.0/src/solo_builder/session_audit_demo.py +839 -0
  235. solo_builder_core-0.4.0/src/solo_builder/ship_attestation.py +602 -0
  236. solo_builder_core-0.4.0/src/solo_builder/ship_attestation_emit.py +476 -0
  237. solo_builder_core-0.4.0/src/solo_builder/siem_export.py +274 -0
  238. solo_builder_core-0.4.0/src/solo_builder/slsa_export.py +237 -0
  239. solo_builder_core-0.4.0/src/solo_builder/slug.py +27 -0
  240. solo_builder_core-0.4.0/src/solo_builder/solo_execution_receipt.py +554 -0
  241. solo_builder_core-0.4.0/src/solo_builder/sonarqube_export.py +261 -0
  242. solo_builder_core-0.4.0/src/solo_builder/state.py +121 -0
  243. solo_builder_core-0.4.0/src/solo_builder/strix_demo.py +892 -0
  244. solo_builder_core-0.4.0/src/solo_builder/strix_domains.py +72 -0
  245. solo_builder_core-0.4.0/src/solo_builder/strix_personal/__init__.py +92 -0
  246. solo_builder_core-0.4.0/src/solo_builder/strix_personal/lifecycle.py +544 -0
  247. solo_builder_core-0.4.0/src/solo_builder/strix_personal/patcher.py +394 -0
  248. solo_builder_core-0.4.0/src/solo_builder/strix_personal/signals.py +571 -0
  249. solo_builder_core-0.4.0/src/solo_builder/strix_redemption.py +599 -0
  250. solo_builder_core-0.4.0/src/solo_builder/strix_wire_analyzer_common.py +97 -0
  251. solo_builder_core-0.4.0/src/solo_builder/strix_wire_broker.py +280 -0
  252. solo_builder_core-0.4.0/src/solo_builder/strix_wire_candidate.py +410 -0
  253. solo_builder_core-0.4.0/src/solo_builder/strix_wire_compile.py +495 -0
  254. solo_builder_core-0.4.0/src/solo_builder/strix_wire_dryrun.py +558 -0
  255. solo_builder_core-0.4.0/src/solo_builder/strix_wire_go_adapter.py +104 -0
  256. solo_builder_core-0.4.0/src/solo_builder/strix_wire_hosted.py +364 -0
  257. solo_builder_core-0.4.0/src/solo_builder/strix_wire_langdetect.py +402 -0
  258. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local.py +629 -0
  259. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_attestation.py +501 -0
  260. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_chain.py +416 -0
  261. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_dag.py +539 -0
  262. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_key.py +291 -0
  263. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_receipt.py +1055 -0
  264. solo_builder_core-0.4.0/src/solo_builder/strix_wire_local_reliance.py +1464 -0
  265. solo_builder_core-0.4.0/src/solo_builder/strix_wire_outcome.py +346 -0
  266. solo_builder_core-0.4.0/src/solo_builder/strix_wire_patch.py +272 -0
  267. solo_builder_core-0.4.0/src/solo_builder/strix_wire_rust_adapter.py +115 -0
  268. solo_builder_core-0.4.0/src/solo_builder/suppression_quality.py +139 -0
  269. solo_builder_core-0.4.0/src/solo_builder/swarm.py +315 -0
  270. solo_builder_core-0.4.0/src/solo_builder/sync.py +123 -0
  271. solo_builder_core-0.4.0/src/solo_builder/three_way_identity.py +223 -0
  272. solo_builder_core-0.4.0/src/solo_builder/ticket.py +295 -0
  273. solo_builder_core-0.4.0/src/solo_builder/ticket_integrity.py +354 -0
  274. solo_builder_core-0.4.0/src/solo_builder/tool_policy.py +302 -0
  275. solo_builder_core-0.4.0/src/solo_builder/tools.py +747 -0
  276. solo_builder_core-0.4.0/src/solo_builder/transaction_proof.py +1234 -0
  277. solo_builder_core-0.4.0/src/solo_builder/trust.py +266 -0
  278. solo_builder_core-0.4.0/src/solo_builder/trust_mark.py +974 -0
  279. solo_builder_core-0.4.0/src/solo_builder/upstream_requester_provenance.py +596 -0
  280. solo_builder_core-0.4.0/src/solo_builder/verification_ladder.py +436 -0
  281. solo_builder_core-0.4.0/src/solo_builder/watch.py +156 -0
  282. solo_builder_core-0.4.0/src/solo_builder/web.py +275 -0
  283. solo_builder_core-0.4.0/src/solo_builder/webhook.py +478 -0
  284. solo_builder_core-0.4.0/src/solo_builder/worklog.py +122 -0
  285. solo_builder_core-0.4.0/src/solo_builder/wrap_patterns.py +231 -0
  286. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/PKG-INFO +297 -0
  287. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/SOURCES.txt +631 -0
  288. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/dependency_links.txt +1 -0
  289. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/entry_points.txt +2 -0
  290. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/requires.txt +45 -0
  291. solo_builder_core-0.4.0/src/solo_builder_core.egg-info/top_level.txt +1 -0
  292. solo_builder_core-0.4.0/tests/test_acceptance_report.py +565 -0
  293. solo_builder_core-0.4.0/tests/test_action_scanner.py +339 -0
  294. solo_builder_core-0.4.0/tests/test_action_scanner_extended.py +584 -0
  295. solo_builder_core-0.4.0/tests/test_action_scanner_scope.py +44 -0
  296. solo_builder_core-0.4.0/tests/test_action_tokens.py +378 -0
  297. solo_builder_core-0.4.0/tests/test_actor_attestation.py +751 -0
  298. solo_builder_core-0.4.0/tests/test_adapters.py +394 -0
  299. solo_builder_core-0.4.0/tests/test_adapters_conformance.py +412 -0
  300. solo_builder_core-0.4.0/tests/test_adversarial_demo.py +117 -0
  301. solo_builder_core-0.4.0/tests/test_agent.py +1186 -0
  302. solo_builder_core-0.4.0/tests/test_agent_checkpoint_honesty.py +84 -0
  303. solo_builder_core-0.4.0/tests/test_agent_dry_run_isolation.py +131 -0
  304. solo_builder_core-0.4.0/tests/test_agent_multifile_scaffold.py +296 -0
  305. solo_builder_core-0.4.0/tests/test_agent_registry.py +401 -0
  306. solo_builder_core-0.4.0/tests/test_agent_stage_approval.py +260 -0
  307. solo_builder_core-0.4.0/tests/test_agent_tools.py +228 -0
  308. solo_builder_core-0.4.0/tests/test_agent_worktree.py +343 -0
  309. solo_builder_core-0.4.0/tests/test_ai.py +27 -0
  310. solo_builder_core-0.4.0/tests/test_ai_cache.py +35 -0
  311. solo_builder_core-0.4.0/tests/test_anomaly_engine.py +377 -0
  312. solo_builder_core-0.4.0/tests/test_approvals.py +111 -0
  313. solo_builder_core-0.4.0/tests/test_attestation_binding.py +107 -0
  314. solo_builder_core-0.4.0/tests/test_audit_hmac.py +37 -0
  315. solo_builder_core-0.4.0/tests/test_audit_record_call_shape.py +117 -0
  316. solo_builder_core-0.4.0/tests/test_authority_redemption.py +256 -0
  317. solo_builder_core-0.4.0/tests/test_authority_resolution.py +678 -0
  318. solo_builder_core-0.4.0/tests/test_autonomy.py +86 -0
  319. solo_builder_core-0.4.0/tests/test_autonomy_envelope.py +722 -0
  320. solo_builder_core-0.4.0/tests/test_bootstrap.py +22 -0
  321. solo_builder_core-0.4.0/tests/test_bridge_attestation_panel.py +342 -0
  322. solo_builder_core-0.4.0/tests/test_bridge_security.py +310 -0
  323. solo_builder_core-0.4.0/tests/test_bridge_server.py +169 -0
  324. solo_builder_core-0.4.0/tests/test_bridge_site_page.py +172 -0
  325. solo_builder_core-0.4.0/tests/test_budget.py +556 -0
  326. solo_builder_core-0.4.0/tests/test_build_event.py +260 -0
  327. solo_builder_core-0.4.0/tests/test_build_genome.py +248 -0
  328. solo_builder_core-0.4.0/tests/test_buildpack.py +35 -0
  329. solo_builder_core-0.4.0/tests/test_bundle.py +390 -0
  330. solo_builder_core-0.4.0/tests/test_bundle_verifier.py +373 -0
  331. solo_builder_core-0.4.0/tests/test_bundle_verifier_iss.py +164 -0
  332. solo_builder_core-0.4.0/tests/test_capabilities.py +220 -0
  333. solo_builder_core-0.4.0/tests/test_claim_discipline.py +117 -0
  334. solo_builder_core-0.4.0/tests/test_cli.py +27 -0
  335. solo_builder_core-0.4.0/tests/test_codebase_context_integration.py +170 -0
  336. solo_builder_core-0.4.0/tests/test_codebase_index.py +273 -0
  337. solo_builder_core-0.4.0/tests/test_codeql_pack.py +192 -0
  338. solo_builder_core-0.4.0/tests/test_commands_chain.py +97 -0
  339. solo_builder_core-0.4.0/tests/test_commands_compliance.py +769 -0
  340. solo_builder_core-0.4.0/tests/test_commands_distillation.py +152 -0
  341. solo_builder_core-0.4.0/tests/test_commands_doctor.py +185 -0
  342. solo_builder_core-0.4.0/tests/test_commands_evidence.py +123 -0
  343. solo_builder_core-0.4.0/tests/test_commands_export.py +540 -0
  344. solo_builder_core-0.4.0/tests/test_commands_gate.py +196 -0
  345. solo_builder_core-0.4.0/tests/test_commands_govern.py +270 -0
  346. solo_builder_core-0.4.0/tests/test_commands_linkedin.py +1004 -0
  347. solo_builder_core-0.4.0/tests/test_commands_memory.py +100 -0
  348. solo_builder_core-0.4.0/tests/test_commands_mission_control.py +177 -0
  349. solo_builder_core-0.4.0/tests/test_commands_onboard.py +365 -0
  350. solo_builder_core-0.4.0/tests/test_commands_prompt.py +129 -0
  351. solo_builder_core-0.4.0/tests/test_commands_proof.py +342 -0
  352. solo_builder_core-0.4.0/tests/test_commands_reliance.py +209 -0
  353. solo_builder_core-0.4.0/tests/test_commands_report.py +251 -0
  354. solo_builder_core-0.4.0/tests/test_commands_serve_jason.py +265 -0
  355. solo_builder_core-0.4.0/tests/test_commands_ship.py +687 -0
  356. solo_builder_core-0.4.0/tests/test_commands_ship_auto.py +285 -0
  357. solo_builder_core-0.4.0/tests/test_commands_ship_handoff.py +151 -0
  358. solo_builder_core-0.4.0/tests/test_commands_strix_wire.py +406 -0
  359. solo_builder_core-0.4.0/tests/test_commands_ticket.py +65 -0
  360. solo_builder_core-0.4.0/tests/test_commercial_launch_claims.py +116 -0
  361. solo_builder_core-0.4.0/tests/test_compare.py +188 -0
  362. solo_builder_core-0.4.0/tests/test_compliance_profiles.py +965 -0
  363. solo_builder_core-0.4.0/tests/test_config.py +90 -0
  364. solo_builder_core-0.4.0/tests/test_config_autonomy.py +55 -0
  365. solo_builder_core-0.4.0/tests/test_config_swarm.py +63 -0
  366. solo_builder_core-0.4.0/tests/test_config_validation.py +43 -0
  367. solo_builder_core-0.4.0/tests/test_connected.py +63 -0
  368. solo_builder_core-0.4.0/tests/test_critique_loop.py +156 -0
  369. solo_builder_core-0.4.0/tests/test_csv_export.py +250 -0
  370. solo_builder_core-0.4.0/tests/test_custody.py +451 -0
  371. solo_builder_core-0.4.0/tests/test_daemon.py +235 -0
  372. solo_builder_core-0.4.0/tests/test_daemon_decompose.py +154 -0
  373. solo_builder_core-0.4.0/tests/test_daemon_proc.py +154 -0
  374. solo_builder_core-0.4.0/tests/test_daemon_session_token.py +101 -0
  375. solo_builder_core-0.4.0/tests/test_demo.py +51 -0
  376. solo_builder_core-0.4.0/tests/test_demo_key.py +111 -0
  377. solo_builder_core-0.4.0/tests/test_deployer_pages.py +204 -0
  378. solo_builder_core-0.4.0/tests/test_deployers.py +50 -0
  379. solo_builder_core-0.4.0/tests/test_detector_boundary_regressions.py +143 -0
  380. solo_builder_core-0.4.0/tests/test_device_attestation.py +714 -0
  381. solo_builder_core-0.4.0/tests/test_distillation_boundary.py +391 -0
  382. solo_builder_core-0.4.0/tests/test_distillation_copilot.py +325 -0
  383. solo_builder_core-0.4.0/tests/test_distillation_governance.py +316 -0
  384. solo_builder_core-0.4.0/tests/test_entitlements.py +324 -0
  385. solo_builder_core-0.4.0/tests/test_evals.py +532 -0
  386. solo_builder_core-0.4.0/tests/test_evals_soloshipbench.py +39 -0
  387. solo_builder_core-0.4.0/tests/test_events.py +119 -0
  388. solo_builder_core-0.4.0/tests/test_evidence_idempotency.py +120 -0
  389. solo_builder_core-0.4.0/tests/test_evidence_store.py +255 -0
  390. solo_builder_core-0.4.0/tests/test_evidence_stream.py +215 -0
  391. solo_builder_core-0.4.0/tests/test_evolve.py +227 -0
  392. solo_builder_core-0.4.0/tests/test_executor.py +363 -0
  393. solo_builder_core-0.4.0/tests/test_executor_key_enrollment.py +616 -0
  394. solo_builder_core-0.4.0/tests/test_external_receipt_round_trip.py +310 -0
  395. solo_builder_core-0.4.0/tests/test_external_verification_receipt.py +561 -0
  396. solo_builder_core-0.4.0/tests/test_fleet.py +236 -0
  397. solo_builder_core-0.4.0/tests/test_functional_gate.py +158 -0
  398. solo_builder_core-0.4.0/tests/test_gate_e_negative_pack.py +335 -0
  399. solo_builder_core-0.4.0/tests/test_gate_j_regression_pack.py +423 -0
  400. solo_builder_core-0.4.0/tests/test_gate_reports_what_it_found.py +168 -0
  401. solo_builder_core-0.4.0/tests/test_generated_tests_execute.py +207 -0
  402. solo_builder_core-0.4.0/tests/test_github_auth_errors.py +107 -0
  403. solo_builder_core-0.4.0/tests/test_github_client.py +48 -0
  404. solo_builder_core-0.4.0/tests/test_gitignore_shadowing.py +192 -0
  405. solo_builder_core-0.4.0/tests/test_golden_vectors.py +627 -0
  406. solo_builder_core-0.4.0/tests/test_golden_vectors_aa1.py +379 -0
  407. solo_builder_core-0.4.0/tests/test_golden_vectors_aa2.py +405 -0
  408. solo_builder_core-0.4.0/tests/test_golden_vectors_ac1.py +780 -0
  409. solo_builder_core-0.4.0/tests/test_golden_vectors_attestation_gated_execution.py +287 -0
  410. solo_builder_core-0.4.0/tests/test_golden_vectors_bundle.py +585 -0
  411. solo_builder_core-0.4.0/tests/test_golden_vectors_chained_governed_autonomy.py +219 -0
  412. solo_builder_core-0.4.0/tests/test_golden_vectors_chained_governed_autonomy_v2.py +215 -0
  413. solo_builder_core-0.4.0/tests/test_golden_vectors_evr1.py +261 -0
  414. solo_builder_core-0.4.0/tests/test_golden_vectors_local_reliance.py +187 -0
  415. solo_builder_core-0.4.0/tests/test_golden_vectors_objective_graph.py +78 -0
  416. solo_builder_core-0.4.0/tests/test_golden_vectors_pbv2.py +232 -0
  417. solo_builder_core-0.4.0/tests/test_golden_vectors_release_evidence.py +140 -0
  418. solo_builder_core-0.4.0/tests/test_golden_vectors_resolved_execution_plan.py +166 -0
  419. solo_builder_core-0.4.0/tests/test_golden_vectors_tm1.py +522 -0
  420. solo_builder_core-0.4.0/tests/test_govern_markdown.py +194 -0
  421. solo_builder_core-0.4.0/tests/test_govern_profile.py +242 -0
  422. solo_builder_core-0.4.0/tests/test_govern_remediation.py +150 -0
  423. solo_builder_core-0.4.0/tests/test_govern_spine.py +473 -0
  424. solo_builder_core-0.4.0/tests/test_governance_coverage.py +236 -0
  425. solo_builder_core-0.4.0/tests/test_governance_trend.py +181 -0
  426. solo_builder_core-0.4.0/tests/test_governed_email_revalidation.py +397 -0
  427. solo_builder_core-0.4.0/tests/test_gtm_capability_parity.py +205 -0
  428. solo_builder_core-0.4.0/tests/test_integration.py +205 -0
  429. solo_builder_core-0.4.0/tests/test_interactive_gate.py +60 -0
  430. solo_builder_core-0.4.0/tests/test_issue_and_verify.py +90 -0
  431. solo_builder_core-0.4.0/tests/test_jason_handoff.py +353 -0
  432. solo_builder_core-0.4.0/tests/test_jason_handoff_execute.py +794 -0
  433. solo_builder_core-0.4.0/tests/test_jason_handoff_hardening.py +168 -0
  434. solo_builder_core-0.4.0/tests/test_jason_plan_enforcement.py +526 -0
  435. solo_builder_core-0.4.0/tests/test_jwks.py +525 -0
  436. solo_builder_core-0.4.0/tests/test_kernel_decision_enforcement.py +228 -0
  437. solo_builder_core-0.4.0/tests/test_kernel_fail_closed_structure.py +119 -0
  438. solo_builder_core-0.4.0/tests/test_kernel_keygen_save.py +316 -0
  439. solo_builder_core-0.4.0/tests/test_kernel_stub.py +337 -0
  440. solo_builder_core-0.4.0/tests/test_leaked_preamble.py +369 -0
  441. solo_builder_core-0.4.0/tests/test_linkedin_accounts.py +123 -0
  442. solo_builder_core-0.4.0/tests/test_linkedin_approve.py +213 -0
  443. solo_builder_core-0.4.0/tests/test_linkedin_authorization.py +352 -0
  444. solo_builder_core-0.4.0/tests/test_linkedin_capabilities.py +129 -0
  445. solo_builder_core-0.4.0/tests/test_linkedin_console.py +259 -0
  446. solo_builder_core-0.4.0/tests/test_linkedin_content.py +219 -0
  447. solo_builder_core-0.4.0/tests/test_linkedin_drafting.py +285 -0
  448. solo_builder_core-0.4.0/tests/test_linkedin_email.py +221 -0
  449. solo_builder_core-0.4.0/tests/test_linkedin_enrich.py +139 -0
  450. solo_builder_core-0.4.0/tests/test_linkedin_evidence.py +95 -0
  451. solo_builder_core-0.4.0/tests/test_linkedin_gate.py +109 -0
  452. solo_builder_core-0.4.0/tests/test_linkedin_history.py +138 -0
  453. solo_builder_core-0.4.0/tests/test_linkedin_ingest.py +415 -0
  454. solo_builder_core-0.4.0/tests/test_linkedin_kernel_bridge.py +774 -0
  455. solo_builder_core-0.4.0/tests/test_linkedin_mc1.py +370 -0
  456. solo_builder_core-0.4.0/tests/test_linkedin_mcp.py +148 -0
  457. solo_builder_core-0.4.0/tests/test_linkedin_memory.py +55 -0
  458. solo_builder_core-0.4.0/tests/test_linkedin_pass.py +341 -0
  459. solo_builder_core-0.4.0/tests/test_linkedin_pipeline.py +137 -0
  460. solo_builder_core-0.4.0/tests/test_linkedin_qualify.py +180 -0
  461. solo_builder_core-0.4.0/tests/test_linkedin_scoring.py +76 -0
  462. solo_builder_core-0.4.0/tests/test_linkedin_signals.py +254 -0
  463. solo_builder_core-0.4.0/tests/test_llm.py +425 -0
  464. solo_builder_core-0.4.0/tests/test_manual_contract.py +101 -0
  465. solo_builder_core-0.4.0/tests/test_marketplace.py +185 -0
  466. solo_builder_core-0.4.0/tests/test_mc_1.py +1289 -0
  467. solo_builder_core-0.4.0/tests/test_mcp_adapter.py +156 -0
  468. solo_builder_core-0.4.0/tests/test_mcp_auth.py +116 -0
  469. solo_builder_core-0.4.0/tests/test_mcp_external_gate.py +116 -0
  470. solo_builder_core-0.4.0/tests/test_mcp_governance.py +466 -0
  471. solo_builder_core-0.4.0/tests/test_mcp_http.py +329 -0
  472. solo_builder_core-0.4.0/tests/test_mcp_proof.py +1605 -0
  473. solo_builder_core-0.4.0/tests/test_mcp_scan_cache.py +96 -0
  474. solo_builder_core-0.4.0/tests/test_mcp_stdio_loop.py +91 -0
  475. solo_builder_core-0.4.0/tests/test_memory.py +142 -0
  476. solo_builder_core-0.4.0/tests/test_memory_pheromone.py +96 -0
  477. solo_builder_core-0.4.0/tests/test_metrics.py +52 -0
  478. solo_builder_core-0.4.0/tests/test_mission_control.py +578 -0
  479. solo_builder_core-0.4.0/tests/test_mission_control_svg.py +170 -0
  480. solo_builder_core-0.4.0/tests/test_network_signatures.py +298 -0
  481. solo_builder_core-0.4.0/tests/test_notion_client.py +44 -0
  482. solo_builder_core-0.4.0/tests/test_objective_graph.py +259 -0
  483. solo_builder_core-0.4.0/tests/test_offline_root_authority_ceremony.py +355 -0
  484. solo_builder_core-0.4.0/tests/test_outcome_swarm.py +84 -0
  485. solo_builder_core-0.4.0/tests/test_packaging_data_files.py +132 -0
  486. solo_builder_core-0.4.0/tests/test_parallel.py +193 -0
  487. solo_builder_core-0.4.0/tests/test_pattern_catalog.py +292 -0
  488. solo_builder_core-0.4.0/tests/test_pcd_wave1_demo.py +30 -0
  489. solo_builder_core-0.4.0/tests/test_personas.py +142 -0
  490. solo_builder_core-0.4.0/tests/test_plan.py +325 -0
  491. solo_builder_core-0.4.0/tests/test_plan_operator_display.py +247 -0
  492. solo_builder_core-0.4.0/tests/test_planner.py +621 -0
  493. solo_builder_core-0.4.0/tests/test_playground_coverage.py +128 -0
  494. solo_builder_core-0.4.0/tests/test_plugin_marketplace_parity.py +50 -0
  495. solo_builder_core-0.4.0/tests/test_policy_export.py +227 -0
  496. solo_builder_core-0.4.0/tests/test_policy_lint.py +283 -0
  497. solo_builder_core-0.4.0/tests/test_policy_replay.py +277 -0
  498. solo_builder_core-0.4.0/tests/test_pr_body_honesty.py +105 -0
  499. solo_builder_core-0.4.0/tests/test_pre_commit_hooks.py +145 -0
  500. solo_builder_core-0.4.0/tests/test_process_launch_census.py +481 -0
  501. solo_builder_core-0.4.0/tests/test_product_boundary.py +111 -0
  502. solo_builder_core-0.4.0/tests/test_production_authority.py +498 -0
  503. solo_builder_core-0.4.0/tests/test_production_profile.py +94 -0
  504. solo_builder_core-0.4.0/tests/test_prompt_analytics.py +313 -0
  505. solo_builder_core-0.4.0/tests/test_prompt_chain.py +197 -0
  506. solo_builder_core-0.4.0/tests/test_prompt_diff.py +245 -0
  507. solo_builder_core-0.4.0/tests/test_prompt_marketplace.py +250 -0
  508. solo_builder_core-0.4.0/tests/test_prompt_pr_comment.py +181 -0
  509. solo_builder_core-0.4.0/tests/test_prompt_rotation.py +203 -0
  510. solo_builder_core-0.4.0/tests/test_prompt_validator.py +137 -0
  511. solo_builder_core-0.4.0/tests/test_prompts.py +110 -0
  512. solo_builder_core-0.4.0/tests/test_proof.py +57 -0
  513. solo_builder_core-0.4.0/tests/test_proof_receipt.py +389 -0
  514. solo_builder_core-0.4.0/tests/test_proof_renderer.py +253 -0
  515. solo_builder_core-0.4.0/tests/test_provenance.py +433 -0
  516. solo_builder_core-0.4.0/tests/test_public_verify.py +358 -0
  517. solo_builder_core-0.4.0/tests/test_race.py +89 -0
  518. solo_builder_core-0.4.0/tests/test_rcm_command.py +324 -0
  519. solo_builder_core-0.4.0/tests/test_rcm_csv_adapter.py +762 -0
  520. solo_builder_core-0.4.0/tests/test_rcm_signed_evidence.py +173 -0
  521. solo_builder_core-0.4.0/tests/test_rcm_solution_pack.py +114 -0
  522. solo_builder_core-0.4.0/tests/test_registry.py +638 -0
  523. solo_builder_core-0.4.0/tests/test_registry_parity.py +210 -0
  524. solo_builder_core-0.4.0/tests/test_release_authority.py +261 -0
  525. solo_builder_core-0.4.0/tests/test_release_authority_boundaries.py +146 -0
  526. solo_builder_core-0.4.0/tests/test_release_authority_pr_boundaries.py +338 -0
  527. solo_builder_core-0.4.0/tests/test_release_evidence.py +571 -0
  528. solo_builder_core-0.4.0/tests/test_release_evidence_coverage.py +200 -0
  529. solo_builder_core-0.4.0/tests/test_release_evidence_cross_language.py +200 -0
  530. solo_builder_core-0.4.0/tests/test_release_evidence_wiring.py +465 -0
  531. solo_builder_core-0.4.0/tests/test_release_identity.py +347 -0
  532. solo_builder_core-0.4.0/tests/test_release_population.py +621 -0
  533. solo_builder_core-0.4.0/tests/test_release_proof_bundle.py +1095 -0
  534. solo_builder_core-0.4.0/tests/test_release_proof_bundle_authority_reconciliation.py +1054 -0
  535. solo_builder_core-0.4.0/tests/test_release_proof_bundle_wiring.py +336 -0
  536. solo_builder_core-0.4.0/tests/test_release_taxonomy.py +206 -0
  537. solo_builder_core-0.4.0/tests/test_reliance.py +252 -0
  538. solo_builder_core-0.4.0/tests/test_rep_invariants_manifest.py +142 -0
  539. solo_builder_core-0.4.0/tests/test_rep_negative_pack.py +654 -0
  540. solo_builder_core-0.4.0/tests/test_rep_review_findings.py +364 -0
  541. solo_builder_core-0.4.0/tests/test_replay.py +507 -0
  542. solo_builder_core-0.4.0/tests/test_right_to_contact.py +239 -0
  543. solo_builder_core-0.4.0/tests/test_rollback_boundary.py +522 -0
  544. solo_builder_core-0.4.0/tests/test_sandbox_namespace.py +528 -0
  545. solo_builder_core-0.4.0/tests/test_sarif_policy.py +289 -0
  546. solo_builder_core-0.4.0/tests/test_scaffold.py +49 -0
  547. solo_builder_core-0.4.0/tests/test_scanner_semgrep_parity.py +198 -0
  548. solo_builder_core-0.4.0/tests/test_semgrep_rules.py +239 -0
  549. solo_builder_core-0.4.0/tests/test_session_audit_demo.py +128 -0
  550. solo_builder_core-0.4.0/tests/test_ship_ai_plan.py +143 -0
  551. solo_builder_core-0.4.0/tests/test_ship_attestation.py +356 -0
  552. solo_builder_core-0.4.0/tests/test_ship_attestation_emit.py +770 -0
  553. solo_builder_core-0.4.0/tests/test_ship_verify_content.py +234 -0
  554. solo_builder_core-0.4.0/tests/test_siem_export.py +243 -0
  555. solo_builder_core-0.4.0/tests/test_signing_policy.py +99 -0
  556. solo_builder_core-0.4.0/tests/test_slsa_export.py +247 -0
  557. solo_builder_core-0.4.0/tests/test_slug.py +24 -0
  558. solo_builder_core-0.4.0/tests/test_solo_execution_receipt.py +515 -0
  559. solo_builder_core-0.4.0/tests/test_sonarqube_export.py +277 -0
  560. solo_builder_core-0.4.0/tests/test_specimen_001_issuer_preflight_wrapper.py +128 -0
  561. solo_builder_core-0.4.0/tests/test_specimen_001_readonly_preflight.py +318 -0
  562. solo_builder_core-0.4.0/tests/test_specimen_preflight.py +409 -0
  563. solo_builder_core-0.4.0/tests/test_specimen_provision.py +354 -0
  564. solo_builder_core-0.4.0/tests/test_stage_dependencies.py +370 -0
  565. solo_builder_core-0.4.0/tests/test_standalone_verifier.py +99 -0
  566. solo_builder_core-0.4.0/tests/test_state_audit.py +24 -0
  567. solo_builder_core-0.4.0/tests/test_strix_demo.py +582 -0
  568. solo_builder_core-0.4.0/tests/test_strix_personal_lifecycle.py +373 -0
  569. solo_builder_core-0.4.0/tests/test_strix_personal_patcher.py +235 -0
  570. solo_builder_core-0.4.0/tests/test_strix_personal_pathlib_unlink.py +29 -0
  571. solo_builder_core-0.4.0/tests/test_strix_personal_plugin_parity.py +100 -0
  572. solo_builder_core-0.4.0/tests/test_strix_personal_signals.py +424 -0
  573. solo_builder_core-0.4.0/tests/test_strix_personal_skill_distribution.py +53 -0
  574. solo_builder_core-0.4.0/tests/test_strix_redemption.py +740 -0
  575. solo_builder_core-0.4.0/tests/test_strix_wire_analyze.py +652 -0
  576. solo_builder_core-0.4.0/tests/test_strix_wire_approval_cross_language.py +188 -0
  577. solo_builder_core-0.4.0/tests/test_strix_wire_approval_enforcement.py +186 -0
  578. solo_builder_core-0.4.0/tests/test_strix_wire_approval_strictness.py +235 -0
  579. solo_builder_core-0.4.0/tests/test_strix_wire_attestation_integration.py +567 -0
  580. solo_builder_core-0.4.0/tests/test_strix_wire_candidate.py +269 -0
  581. solo_builder_core-0.4.0/tests/test_strix_wire_compile.py +275 -0
  582. solo_builder_core-0.4.0/tests/test_strix_wire_contract.py +249 -0
  583. solo_builder_core-0.4.0/tests/test_strix_wire_cross_language.py +72 -0
  584. solo_builder_core-0.4.0/tests/test_strix_wire_declaration_sites.py +150 -0
  585. solo_builder_core-0.4.0/tests/test_strix_wire_dryrun.py +309 -0
  586. solo_builder_core-0.4.0/tests/test_strix_wire_go_adapter.py +93 -0
  587. solo_builder_core-0.4.0/tests/test_strix_wire_governed_action.py +633 -0
  588. solo_builder_core-0.4.0/tests/test_strix_wire_hosted.py +401 -0
  589. solo_builder_core-0.4.0/tests/test_strix_wire_inlanguage.py +204 -0
  590. solo_builder_core-0.4.0/tests/test_strix_wire_langdetect.py +148 -0
  591. solo_builder_core-0.4.0/tests/test_strix_wire_limitations.py +243 -0
  592. solo_builder_core-0.4.0/tests/test_strix_wire_local.py +397 -0
  593. solo_builder_core-0.4.0/tests/test_strix_wire_local_attestation.py +350 -0
  594. solo_builder_core-0.4.0/tests/test_strix_wire_local_chain.py +733 -0
  595. solo_builder_core-0.4.0/tests/test_strix_wire_local_dag.py +1100 -0
  596. solo_builder_core-0.4.0/tests/test_strix_wire_local_helper.py +153 -0
  597. solo_builder_core-0.4.0/tests/test_strix_wire_local_helpers_reliance.py +1437 -0
  598. solo_builder_core-0.4.0/tests/test_strix_wire_local_key.py +132 -0
  599. solo_builder_core-0.4.0/tests/test_strix_wire_local_receipt.py +386 -0
  600. solo_builder_core-0.4.0/tests/test_strix_wire_local_reliance.py +742 -0
  601. solo_builder_core-0.4.0/tests/test_strix_wire_local_reliance_attestation.py +585 -0
  602. solo_builder_core-0.4.0/tests/test_strix_wire_local_reliance_integration.py +664 -0
  603. solo_builder_core-0.4.0/tests/test_strix_wire_local_ts_chain_corruption.py +106 -0
  604. solo_builder_core-0.4.0/tests/test_strix_wire_outcome.py +149 -0
  605. solo_builder_core-0.4.0/tests/test_strix_wire_patch.py +391 -0
  606. solo_builder_core-0.4.0/tests/test_strix_wire_preflight.py +103 -0
  607. solo_builder_core-0.4.0/tests/test_strix_wire_preflight_containment.py +201 -0
  608. solo_builder_core-0.4.0/tests/test_strix_wire_preflight_containment_amendments.py +232 -0
  609. solo_builder_core-0.4.0/tests/test_strix_wire_preflight_unreadable.py +200 -0
  610. solo_builder_core-0.4.0/tests/test_strix_wire_report_sanitization.py +182 -0
  611. solo_builder_core-0.4.0/tests/test_strix_wire_rust_adapter.py +86 -0
  612. solo_builder_core-0.4.0/tests/test_strix_wire_scanner.py +256 -0
  613. solo_builder_core-0.4.0/tests/test_strix_wire_scanner_pathlib_unlink.py +59 -0
  614. solo_builder_core-0.4.0/tests/test_subprocess_encoding.py +186 -0
  615. solo_builder_core-0.4.0/tests/test_suppression_quality.py +173 -0
  616. solo_builder_core-0.4.0/tests/test_swarm.py +152 -0
  617. solo_builder_core-0.4.0/tests/test_sync.py +28 -0
  618. solo_builder_core-0.4.0/tests/test_test_import_contract.py +595 -0
  619. solo_builder_core-0.4.0/tests/test_ticket.py +206 -0
  620. solo_builder_core-0.4.0/tests/test_ticket_integrity.py +263 -0
  621. solo_builder_core-0.4.0/tests/test_tool_policy.py +299 -0
  622. solo_builder_core-0.4.0/tests/test_tools.py +462 -0
  623. solo_builder_core-0.4.0/tests/test_transaction_proof.py +1466 -0
  624. solo_builder_core-0.4.0/tests/test_trust.py +164 -0
  625. solo_builder_core-0.4.0/tests/test_trust_mark.py +688 -0
  626. solo_builder_core-0.4.0/tests/test_upstream_requester_provenance.py +480 -0
  627. solo_builder_core-0.4.0/tests/test_verification_ladder.py +230 -0
  628. solo_builder_core-0.4.0/tests/test_vscode_extension.py +197 -0
  629. solo_builder_core-0.4.0/tests/test_watch.py +157 -0
  630. solo_builder_core-0.4.0/tests/test_web.py +206 -0
  631. solo_builder_core-0.4.0/tests/test_webhook.py +428 -0
  632. solo_builder_core-0.4.0/tests/test_worklog.py +107 -0
  633. solo_builder_core-0.4.0/tests/test_workspace_mc1_scenarios.py +204 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Strix Labs
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,39 @@
1
+ # NOTICE — Open core vs. commercial Strix
2
+
3
+ `solo-builder-core` is open source (MIT) and is meant to be run, forked, and
4
+ audited freely. Its value — and what stays open — is the **verifiable proof**
5
+ it produces: provenance attestations, replay packs, and bounded action-token
6
+ receipts, all signed against the canonical Strix JWKS so an external auditor
7
+ can verify what the agent did **without trusting us, you, or the runtime**.
8
+
9
+ ## What this package is
10
+
11
+ A **local / self-hosted** governed shipping agent. The enforcement primitives
12
+ it ships — `action_tokens.py`, `approvals.py`, `tool_policy.py`,
13
+ `custody.py`, `anomaly_engine.py`, `evidence_store.py` — run in-process and
14
+ are sufficient for a single operator governing their own agent locally.
15
+
16
+ You can verify everything it emits using only open tooling:
17
+
18
+ - the MIT `@strixgov/sdk` / `@strixgov/verifier` and the public JWKS, and
19
+ - the offline Python auditor `strix-verify`.
20
+
21
+ ## What is **commercial Strix** (not this package)
22
+
23
+ The **production control plane** is a separate, commercial product. It is not
24
+ included here and is not reconstructable from this repository:
25
+
26
+ - hosted, multi-tenant **policy decisions** and policy authority
27
+ - multi-tenant **enforcement** and tenant isolation
28
+ - hosted **evidence retention**, the Trust Center, and proof surfaces
29
+ - signing-**key lifecycle** management, rotation, and revocation distribution
30
+ - approval routing, SIEM/GRC integrations, and compliance evidence packaging
31
+
32
+ In other words: this package lets you **produce and verify receipts** locally.
33
+ Operating those receipts as governed, multi-tenant, enterprise infrastructure —
34
+ with hosted policy authority and key management — is commercial Strix.
35
+
36
+ > Open the proof; sell the control. The local enforcement here is a
37
+ > self-hosted variant, not the production authority. If you are relying on
38
+ > Strix for multi-tenant enforcement, hosted evidence, or key custody, that is
39
+ > the commercial platform — talk to us.
@@ -0,0 +1,297 @@
1
+ Metadata-Version: 2.4
2
+ Name: solo-builder-core
3
+ Version: 0.4.0
4
+ Summary: Strix Labs Shipping Factory CLI
5
+ Author: Strix Labs
6
+ License: MIT
7
+ Project-URL: Homepage, https://www.strixgov.com
8
+ Project-URL: Repository, https://github.com/Tarshann/solo-builder-core
9
+ Project-URL: Documentation, https://github.com/Tarshann/solo-builder-core/blob/main/docs/MANUAL.md
10
+ Project-URL: Changelog, https://github.com/Tarshann/solo-builder-core/blob/main/CHANGELOG.md
11
+ Project-URL: Pricing, https://github.com/Tarshann/solo-builder-core/blob/main/commercial-launch/pricing/PRICING.md
12
+ Project-URL: Security, https://github.com/Tarshann/solo-builder-core/blob/main/SECURITY.md
13
+ Keywords: shipping-factory,solo-builder,strix-labs,cli
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Requires-Python: >=3.10
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ License-File: NOTICE.md
25
+ Requires-Dist: tree-sitter==0.26.0
26
+ Requires-Dist: tree-sitter-typescript==0.23.2
27
+ Requires-Dist: tree-sitter-javascript==0.25.0
28
+ Requires-Dist: requests>=2.31
29
+ Requires-Dist: pyyaml>=6.0
30
+ Requires-Dist: python-frontmatter>=1.0
31
+ Requires-Dist: cryptography>=42
32
+ Requires-Dist: tomli>=2.0; python_version < "3.11"
33
+ Provides-Extra: ai
34
+ Requires-Dist: anthropic>=0.40; extra == "ai"
35
+ Provides-Extra: mcp
36
+ Requires-Dist: mcp>=1.0; extra == "mcp"
37
+ Provides-Extra: completion
38
+ Requires-Dist: argcomplete>=3.4; extra == "completion"
39
+ Provides-Extra: linkedin
40
+ Requires-Dist: openpyxl>=3.1; extra == "linkedin"
41
+ Provides-Extra: governed-outbound
42
+ Requires-Dist: fastapi<1,>=0.115; extra == "governed-outbound"
43
+ Requires-Dist: httpx>=0.27; extra == "governed-outbound"
44
+ Provides-Extra: governed-outbound-postgres
45
+ Requires-Dist: psycopg[binary]<4,>=3.2; extra == "governed-outbound-postgres"
46
+ Provides-Extra: release
47
+ Requires-Dist: build>=1.2; extra == "release"
48
+ Requires-Dist: twine>=5; extra == "release"
49
+ Provides-Extra: dev
50
+ Requires-Dist: pytest>=8; extra == "dev"
51
+ Requires-Dist: pytest-cov>=5; extra == "dev"
52
+ Requires-Dist: ruff==0.15.17; extra == "dev"
53
+ Requires-Dist: mypy==1.20.2; extra == "dev"
54
+ Requires-Dist: pre-commit>=3.7; extra == "dev"
55
+ Requires-Dist: requests-mock>=1.12; extra == "dev"
56
+ Requires-Dist: types-requests==2.33.0.20260712; extra == "dev"
57
+ Requires-Dist: types-PyYAML==6.0.12.20260815; extra == "dev"
58
+ Requires-Dist: psycopg[binary]<4,>=3.2; extra == "dev"
59
+ Requires-Dist: jsonschema>=4.20; extra == "dev"
60
+ Dynamic: license-file
61
+
62
+ # solo-builder-core — the Governed Shipping Agent
63
+
64
+ > The only AI shipping agent that produces a cryptographic chain an
65
+ > external auditor can verify offline.
66
+
67
+ Every other coding agent records sessions. `solo-builder-core` produces
68
+ **provenance attestations, replay packs, and bounded action tokens** —
69
+ all signed against the canonical Strix JWKS — so an external auditor
70
+ can verify what your agent did without trusting us, you, or the
71
+ runtime.
72
+
73
+ If your buyer is asking for SOC2 / HIPAA / FedRAMP-adjacent receipts,
74
+ this is the only agent on the market that can hand them over.
75
+
76
+ > See [`docs/POSITIONING.md`](docs/POSITIONING.md) for why we are not
77
+ > in the Devin / Cursor / Claude-Code bucket, and
78
+ > [`docs/COMPLIANCE.md`](docs/COMPLIANCE.md) for a control-by-control
79
+ > mapping for auditors.
80
+
81
+ > **Open core vs. commercial Strix.** This package is the open, self-hosted
82
+ > agent: it **produces and verifies** signed receipts locally, and that proof
83
+ > surface stays open (verify with the MIT `@strixgov/sdk` / `@strixgov/verifier`
84
+ > + the public JWKS, or the `strix-verify` Python auditor). Its enforcement
85
+ > modules (`action_tokens`, `approvals`, `tool_policy`, `custody`,
86
+ > `anomaly_engine`) are a **local / self-hosted variant** — production
87
+ > multi-tenant policy authority, hosted evidence retention, and signing-key
88
+ > lifecycle are **commercial Strix**, not this repo. See [`NOTICE.md`](NOTICE.md).
89
+
90
+ ---
91
+
92
+ ## Product boundary — which part of this repo is the product
93
+
94
+ This repository is four things at once, and the split is now **declared and
95
+ CI-ratcheted** rather than left to archaeology:
96
+ [`docs/PRODUCT-BOUNDARY.md`](docs/PRODUCT-BOUNDARY.md) (the declaration) +
97
+ [`docs/product-boundary.json`](docs/product-boundary.json) (every top-level
98
+ module, subpackage, and CLI command in exactly one bucket) +
99
+ `tests/test_product_boundary.py` (re-derives both sets from the tree — the
100
+ command set from the real argparse parser, never a prose list; a new module
101
+ or command cannot land unclassified).
102
+
103
+ - **PRODUCT** — what a customer or external developer runs: `/strix-wire` in
104
+ all its modes (hosted, offline `LOCAL_SIGNED_V1`, attestation-gated,
105
+ chained/DAG autonomy), the Local Reliance Gate (`solo reliance`), the
106
+ kernel client (`solo kernel`), envelope verification (`solo proof`), the
107
+ Strix Governance MCP server (`solo mcp serve`), the GSD-1 discovery
108
+ surfaces (`solo govern`), the buyer demos (`solo demo`), and the
109
+ `strix_personal` plugin core.
110
+ - **SCHEMA AUTHORITY** — the ADR-001→032 reference implementations, frozen
111
+ wire contracts, and golden-vector corpora other repos conform to.
112
+ Contracts, not features; edits follow ADR discipline.
113
+ - **INTERNAL TOOLING** — the shipping factory (`solo ship` and its orbit),
114
+ LinkedIn outbound, RCM tools, governed outbound, Mission Control / Bridge /
115
+ daemon, and this repo's own release governance. Real and governed, but not
116
+ the product — no public claim presents these as customer capabilities.
117
+ - **UNCLASSIFIED** — two items, each carrying the question that settles it
118
+ (see the declaration §3–§4).
119
+
120
+ Counts are derived from the tree by the test, never cited from prose.
121
+
122
+ ---
123
+
124
+ ## Quickstart
125
+
126
+ ```bash
127
+ pip install -e . # or: pipx install solo-builder-core
128
+ solo init --owner <you> --repo <repo> # writes .solo.toml
129
+ solo init --demo # OR: zero-API-key runnable demo
130
+ export GITHUB_TOKEN=... # + NOTION_API_KEY / NOTION_DATABASE_ID if syncing
131
+ solo status # see the factory floor
132
+ ```
133
+
134
+ ## The moat (read this first)
135
+
136
+ | Capability | Status | Where |
137
+ |---|---|---|
138
+ | **Provenance attestations** — every PR carries a signed, hash-chained log of every governed action | shipped | `solo ship auto --pr` → [`src/solo_builder/provenance.py`](src/solo_builder/provenance.py) |
139
+ | **Replay packs** — Ed25519-signed merkle-rooted bundle of every input + output across an eval suite | shipped | `solo eval run --attest` → [`src/solo_builder/replay.py`](src/solo_builder/replay.py) |
140
+ | **Action tokens** — pre-signed, time-bounded, scope-limited authorizations for high-risk operations | shipped | `solo kernel approve` → [`src/solo_builder/action_tokens.py`](src/solo_builder/action_tokens.py) |
141
+ | **External offline verifier** — auditors verify against `strixgov.com/.well-known/strix-jwks.json` | shipped | [`docs/VERIFIER.md`](docs/VERIFIER.md) |
142
+ | **Adversarial eval suite** — refusal probes (secrets, force-push, curl-pipe-shell) scored on real kernel denies | shipped | `solo eval run --tools` → [`src/solo_builder/evals.py`](src/solo_builder/evals.py) |
143
+ | **SoloShipBench** — public reproducible benchmark for the shipping path, signed scorecard per release | new | `solo eval run --suite soloshipbench` |
144
+ | **Solo Bridge** — live oversight dashboard + approval surface | opt-in | `solo bridge start` → [`docs/BRIDGE.md`](docs/BRIDGE.md) |
145
+ | **Tool marketplace** — signed, kernel-governed tools beyond the built-ins | opt-in | `solo tool install/list/publish` → [`docs/MARKETPLACE.md`](docs/MARKETPLACE.md) |
146
+ | **Multi-agent personas** — architect / builder / reviewer / ops specialists | opt-in | `solo ship auto --persona-roster specialist` → [`docs/PERSONAS.md`](docs/PERSONAS.md) |
147
+ | **Worktree isolation** — agent operates on `.solo/worktrees/<id>/`, never the live checkout | opt-in | `--worktree` on `ship auto`; `[agent] use_worktree` |
148
+ | **Per-stage signed commits** — every stage is a commit, every revert is recorded | opt-in | `--stage-commits` + `solo ship rollback --stage` |
149
+ | **MCP-compatible governed tools** — bring any MCP tool, get the audit chain for free | stdio / http / sse | [`mcp_adapter.py`](src/solo_builder/mcp_adapter.py) + [`mcp_http.py`](src/solo_builder/mcp_http.py) |
150
+ | **Autonomy switch** — `review` / `assist` / `swarm` controls how aggressively the agent acts between gate checks | default: `review` | `--autonomy`; `[agent] autonomy` |
151
+ | **Ant-mode daemon** — polls backlog, retries with exponential backoff, escalates after N attempts | opt-in via `swarm` | `solo daemon start/stop/status` |
152
+ | **Multi-path racing** — runs N strategies in parallel and ships the winner | opt-in | `solo ship auto --race N` |
153
+ | **Pheromone-weighted memory** — `{{MEMORY}}` injection prefers recent + successful entries | swarm only | `[agent] pheromone_decay_per_day`, `pheromone_amplify_factor` |
154
+ | **Auto-decomposition** — swarm daemon splits oversized tickets and pauses parent for operator review | swarm only | `daemon:decomposed` label + comment |
155
+
156
+ ## Docs
157
+
158
+ - [docs/POSITIONING.md](docs/POSITIONING.md) — what category solo-builder-core is in (and isn't)
159
+ - [docs/COMPLIANCE.md](docs/COMPLIANCE.md) — auditor-facing control map
160
+ - [docs/VERIFIER.md](docs/VERIFIER.md) — standalone JWKS verifier (one-command install)
161
+ - [docs/BRIDGE.md](docs/BRIDGE.md) — live oversight dashboard
162
+ - [docs/MARKETPLACE.md](docs/MARKETPLACE.md) — signed tool marketplace
163
+ - [docs/PERSONAS.md](docs/PERSONAS.md) — multi-agent specialization
164
+ - [docs/HOW_TO.md](docs/HOW_TO.md) — 12 task-oriented walkthroughs
165
+ - [docs/FAQ.md](docs/FAQ.md) — ~25 recurring questions
166
+ - [docs/ARCHITECTURE_REVIEW.md](docs/ARCHITECTURE_REVIEW.md) — design audit
167
+ - [docs/CONTRACTS.md](docs/CONTRACTS.md) — ticket and Build Pack contracts
168
+ - [docs/COMPETITOR_RESPONSE_PLAN.md](docs/COMPETITOR_RESPONSE_PLAN.md) — what we took from each competitor and why
169
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — dev setup, testing conventions
170
+ - [CLAUDE.md](CLAUDE.md) — agent / Claude Code reference for this repo
171
+
172
+ ## The one rule
173
+
174
+ **If it can't be expressed as a shippable artifact (URL/build/job), it isn't "work" yet.**
175
+
176
+ ---
177
+
178
+ ## Features (the rest of the surface)
179
+
180
+ Below the moat, the agent has all the table-stakes capabilities you'd
181
+ expect — and a couple that solo-builder-core does better than the field.
182
+
183
+ ### Agent capabilities (all opt-in flags)
184
+
185
+ - **`ship auto/plan --tools`** — kernel-governed tool-use loop. The agent calls `read`/`write`/`grep`/`glob`/`bash`/`web_fetch` during code-generation stages; every invocation is policy-evaluated by `KernelClient` before execution and recorded into `.solo/audit.jsonl`. See [`src/solo_builder/tools.py`](src/solo_builder/tools.py).
186
+ - **`ship auto/plan --codebase-context`** — TF-IDF + symbol/heading-boosted retrieval over the working tree, injected as `{{CODEBASE_CONTEXT}}` in stage prompts. Stdlib-only, mtime-cached at `.solo/codebase-index.json`. See [`src/solo_builder/codebase_index.py`](src/solo_builder/codebase_index.py).
187
+ - **`ship plan --parallel N`** — dependency-aware concurrent execution. Independent tickets run on N workers; budget refusals abort new dispatches; failed deps strictly block downstream. See [`src/solo_builder/parallel.py`](src/solo_builder/parallel.py).
188
+ - **Multi-provider LLM client** — `AnthropicClient` (default) and `OpenAIClient` behind a `ModelRouter` that maps `tier ∈ {cheap, strong, premier}` to concrete models. Cheap stages route to Haiku/4o-mini, headline generation stays on Sonnet/4o, premier picks Opus. See [`src/solo_builder/llm.py`](src/solo_builder/llm.py).
189
+ - **`solo ship verify --content-check`** — fetches the deployed proof URL, asserts substrings, optionally extracts checks from the ticket's Definition of Shipped. Uses the canonical Strix domain allow-list. See [`_verify_url_content`](src/solo_builder/commands/ship.py).
190
+ - **`solo eval run` / `init` / `report`** — benchmark suite with adversarial probes (secret-write refusal, force-push refusal, curl-pipe-shell refusal). `--tools` scores governance via real kernel-deny counts. See [`src/solo_builder/evals.py`](src/solo_builder/evals.py).
191
+
192
+ ### Governance-leveraged differentiators (round 1)
193
+
194
+ - **`solo ship auto --pr`** — emits a signed **AI contribution attestation** alongside a PR body containing the full hash-chained log of every governed action. Verifies against the canonical JWKS at `strixgov.com/.well-known/strix-jwks.json` via `@strixgov/verifier`. See [`src/solo_builder/provenance.py`](src/solo_builder/provenance.py). _Claim boundary (2026-06-09 gate review): a signature proves a key signed a defined payload; it does NOT by itself prove a human wrote the code, that the named agent alone produced the content, that no unrecorded tool influenced the result, or that the attested code equals the final merged code. Use "AI contribution attestation" — not "proven AI authorship" — until the diff/commit binding covers all of those._
195
+ - **`solo kernel approve` → `solo ship deploy --kernel-token`** — operators pre-approve a bounded window during which the agent may execute a high-risk action class (deploy, env mutation). Four-gate verifier: signature, validity window, actor, action+scope. Tokens are canonical and identical inputs produce identical bytes — the same token verifies anywhere via the published JWKS. See [`src/solo_builder/action_tokens.py`](src/solo_builder/action_tokens.py).
196
+ - **`solo eval run --attest pack.json` → `solo replay PACK`** — bundles every input + output across an eval suite into an Ed25519-signed merkle-rooted pack. External auditors run `solo replay --verify-only` (offline hash check) or `--fixtures DIR` (re-executes each fixture against a deterministic generator and asserts output_hash equality). Auditors verify against the canonical JWKS without trusting solo-builder-core. See [`src/solo_builder/replay.py`](src/solo_builder/replay.py).
197
+
198
+ ### Governance-leveraged differentiators (round 2)
199
+
200
+ - **`solo agent register` → `solo ship auto --agents stage:name,...`** — governed specialist-agent registry. Specialist agents (plan / code / critique / deploy) each get their own Ed25519 keypair and kid; per-stage assignments thread into provenance so the PR body becomes a multi-author trail with cryptographic attribution. Naming note: this is a **registry** of locally-controlled agents, not a marketplace — "marketplace" is reserved for the day external publishers ship specialist agents through a Strix-side discovery surface, which requires supply-chain trust semantics (publisher identity, revocation, vulnerability response) that do not yet apply. See [`src/solo_builder/agent_registry.py`](src/solo_builder/agent_registry.py).
201
+ - **Custody envelopes for outbound calls** — every external HTTPS call gets a signed request envelope + response envelope, hash-chained per stage. Optional service co-signatures (GitHub commit refs, Vercel deployment receipts) chain into the response side. An auditor can verify both halves independently against the canonical JWKS — closing the "the agent says it called Vercel" gap. See [`src/solo_builder/custody.py`](src/solo_builder/custody.py).
202
+ - **`solo registry publish` / `solo registry scorecard`** — public attestation registry. **Vendors publish signed attestation-pack heads; buyers independently verify the published artifacts.** The registry stores (hash + signature + aggregate counters, no fixture bodies). Buyers `search` by policy / pass-rate, `follow` vendors, and `compose` side-by-side scorecards. Each composition verifies entry signatures against the supplied JWKS and rejects forgeries to a separate list. Scorecards preserve **per-entry verification state** (VERIFIED / INVALID / EXPIRED / REVOKED / UNVERIFIABLE / UNSIGNED / NOT_EVALUATED / INCOMPATIBLE_SCHEMA) rather than aggregating to a single green score. _Claim boundary (2026-06-09 gate review): the registry verifies **specific artifacts under defined schemas** — it does NOT establish a vendor's overall trustworthiness, and registry availability does NOT control historical verification (relying parties pin issuer keys + pack heads and verify offline)._ See [`src/solo_builder/registry.py`](src/solo_builder/registry.py).
203
+
204
+ The competitive moat sits in all six governance-leveraged features: every other major coding agent (Devin, Cursor Agent, OpenHands, Claude Code, Copilot Workspace) can record sessions but none can produce a cryptographic chain that an external auditor can verify offline. solo-builder-core can because Strix's signing infrastructure already exists — and round 2 extends that asymmetry across agent boundaries, service boundaries, and vendor boundaries.
205
+
206
+ ## The Ship Cycle
207
+
208
+ 1. **Capture** → idea lands as a 🚢 Ship Ticket (GitHub issue).
209
+ 2. **Init** → `solo ship init <id> --scaffold` creates branch + Build Pack + starter artifact.
210
+ 3. **Build** → implement in `artifacts/<id>-<slug>/`. Use `solo ai spec/tasks` to expand docs.
211
+ 4. **Deploy** → `solo ship deploy <id> --close` deploys via a deploy adapter and auto-captures the proof URL.
212
+ 5. **Verify** → `solo ship verify <id>` HEAD-checks the proof URL.
213
+ 6. **Sync** → `solo sync` upserts Notion (and `--promote` pulls Notion-marked cards back into GitHub).
214
+
215
+ Definition of Done: acceptance tests exist **and** verified proof-of-ship exists.
216
+
217
+ ---
218
+
219
+ ## CLI map
220
+
221
+ | Command | What it does |
222
+ | --- | --- |
223
+ | `solo init` | Bootstrap `.solo.toml`, `.gitignore`, `.solo/` state dir |
224
+ | `solo ship init <id>` | Branch + Build Pack (00–05) + optional template scaffold |
225
+ | `solo ship deploy <id>` | Run a deploy adapter (vercel, railway, cloudflare, expo, github-pages, manual) |
226
+ | `solo ship close <id> --proof <url>` | Validate ticket, verify URL, close with proof |
227
+ | `solo ship verify <id>` | HEAD-check the proof URL (200 OK?) |
228
+ | `solo ship rollback <id>` | Reopen a shipped ticket |
229
+ | `solo ticket lint <id>` | Validate a ticket against the v1.x contract |
230
+ | `solo ticket show <id>` | Pretty-print the parsed ticket |
231
+ | `solo sync` | GH → Notion upsert; `--promote` for Notion → GH |
232
+ | `solo status` / `solo next` | See open work; pick next queued (respects WIP limit) |
233
+ | `solo resume <id>` | Check out the ship branch |
234
+ | `solo metrics` | Cycle time, WIP, ship rate (optional `--json`) |
235
+ | `solo ai spec\|tasks\|postmortem\|review <id>` | Claude-backed authoring helpers |
236
+ | `solo account status` | Which mode you are in (offline / sandbox / connected), what it includes, what the next tier unlocks — see [`commercial-launch/pricing/PRICING.md`](commercial-launch/pricing/PRICING.md) |
237
+ | `solo kernel evaluate <type>` | Ask the policy engine about a hypothetical action |
238
+ | `solo kernel log --issue <id>` | Show audit log for an issue |
239
+ | `--dry-run` | Runs on any mutating command |
240
+
241
+ **Plans and pricing** ([`PRICING.md`](commercial-launch/pricing/PRICING.md)): Local and synthetic use only until a governed release is accepted. No production authorization claim.
242
+
243
+ ---
244
+
245
+ ## What the system guarantees
246
+
247
+ - **GitHub** is execution truth; **Notion** is control plane.
248
+ - **No close without verified proof** (CLI + optional CI gate).
249
+ - **Build Packs are standardized** (`00-spec`, `01-architecture`, `02-tasks`, `03-tests`, `04-deploy`, `05-notes`).
250
+ - **Idempotent sync** keyed by GitHub Issue URL.
251
+ - **Label invariants** enforced by CI (one `status:*`, one `artifact:*`).
252
+ - **Audit log** — every mutating command appends to `.solo/audit.jsonl`.
253
+ - **Kernel governance** — every `init`/`deploy`/`close` gets a policy decision. Local stub runs when the service is unreachable.
254
+
255
+ ---
256
+
257
+ ## Config
258
+
259
+ `.solo.toml` at the repo root. Any field can be overridden by env var:
260
+
261
+ | Env var | Purpose |
262
+ | --- | --- |
263
+ | `GITHUB_TOKEN` / `GITHUB_REPO_OWNER` / `GITHUB_REPO_NAME` | GitHub API |
264
+ | `NOTION_API_KEY` / `NOTION_DATABASE_ID` | Notion sync |
265
+ | `KERNEL_URL` | Execution Kernel endpoint (default `https://www.strixgov.com`) |
266
+ | `ANTHROPIC_API_KEY` | Enables real Claude calls for `solo ai ...` (offline fallback otherwise) |
267
+ | `VERCEL_TOKEN` / `RAILWAY_TOKEN` / `CLOUDFLARE_API_TOKEN` | Deploy adapters |
268
+
269
+ ---
270
+
271
+ ## Deploy targets
272
+
273
+ Page / Webapp → Vercel • Integration / Automation → Railway or Cloudflare Workers • App → Expo • Content → Manual • Simple pages → GitHub Pages. Override per-ticket via the `deploy_target` front-matter field or `solo ship deploy --target`.
274
+
275
+ ---
276
+
277
+ ## Templates
278
+
279
+ Starter templates live in `templates/`:
280
+
281
+ - `page/` — static HTML
282
+ - `webapp/` — minimal `package.json`
283
+ - `nextjs/` — Next.js 14 app-router
284
+ - `cloudflare-worker/` — wrangler-ready Worker
285
+ - `automation/` — Python script
286
+ - `content/` — Markdown post scaffold
287
+ - `chrome-extension/` — MV3 extension
288
+
289
+ ---
290
+
291
+ ## Prompts
292
+
293
+ `prompts/` holds system prompts for the AI commands. Edit them to match your voice. `solo ai` uses these when `ANTHROPIC_API_KEY` is set; otherwise it falls back to deterministic offline templates so CI never requires a key.
294
+
295
+ ---
296
+
297
+ **Version**: 1.2
@@ -0,0 +1,236 @@
1
+ # solo-builder-core — the Governed Shipping Agent
2
+
3
+ > The only AI shipping agent that produces a cryptographic chain an
4
+ > external auditor can verify offline.
5
+
6
+ Every other coding agent records sessions. `solo-builder-core` produces
7
+ **provenance attestations, replay packs, and bounded action tokens** —
8
+ all signed against the canonical Strix JWKS — so an external auditor
9
+ can verify what your agent did without trusting us, you, or the
10
+ runtime.
11
+
12
+ If your buyer is asking for SOC2 / HIPAA / FedRAMP-adjacent receipts,
13
+ this is the only agent on the market that can hand them over.
14
+
15
+ > See [`docs/POSITIONING.md`](docs/POSITIONING.md) for why we are not
16
+ > in the Devin / Cursor / Claude-Code bucket, and
17
+ > [`docs/COMPLIANCE.md`](docs/COMPLIANCE.md) for a control-by-control
18
+ > mapping for auditors.
19
+
20
+ > **Open core vs. commercial Strix.** This package is the open, self-hosted
21
+ > agent: it **produces and verifies** signed receipts locally, and that proof
22
+ > surface stays open (verify with the MIT `@strixgov/sdk` / `@strixgov/verifier`
23
+ > + the public JWKS, or the `strix-verify` Python auditor). Its enforcement
24
+ > modules (`action_tokens`, `approvals`, `tool_policy`, `custody`,
25
+ > `anomaly_engine`) are a **local / self-hosted variant** — production
26
+ > multi-tenant policy authority, hosted evidence retention, and signing-key
27
+ > lifecycle are **commercial Strix**, not this repo. See [`NOTICE.md`](NOTICE.md).
28
+
29
+ ---
30
+
31
+ ## Product boundary — which part of this repo is the product
32
+
33
+ This repository is four things at once, and the split is now **declared and
34
+ CI-ratcheted** rather than left to archaeology:
35
+ [`docs/PRODUCT-BOUNDARY.md`](docs/PRODUCT-BOUNDARY.md) (the declaration) +
36
+ [`docs/product-boundary.json`](docs/product-boundary.json) (every top-level
37
+ module, subpackage, and CLI command in exactly one bucket) +
38
+ `tests/test_product_boundary.py` (re-derives both sets from the tree — the
39
+ command set from the real argparse parser, never a prose list; a new module
40
+ or command cannot land unclassified).
41
+
42
+ - **PRODUCT** — what a customer or external developer runs: `/strix-wire` in
43
+ all its modes (hosted, offline `LOCAL_SIGNED_V1`, attestation-gated,
44
+ chained/DAG autonomy), the Local Reliance Gate (`solo reliance`), the
45
+ kernel client (`solo kernel`), envelope verification (`solo proof`), the
46
+ Strix Governance MCP server (`solo mcp serve`), the GSD-1 discovery
47
+ surfaces (`solo govern`), the buyer demos (`solo demo`), and the
48
+ `strix_personal` plugin core.
49
+ - **SCHEMA AUTHORITY** — the ADR-001→032 reference implementations, frozen
50
+ wire contracts, and golden-vector corpora other repos conform to.
51
+ Contracts, not features; edits follow ADR discipline.
52
+ - **INTERNAL TOOLING** — the shipping factory (`solo ship` and its orbit),
53
+ LinkedIn outbound, RCM tools, governed outbound, Mission Control / Bridge /
54
+ daemon, and this repo's own release governance. Real and governed, but not
55
+ the product — no public claim presents these as customer capabilities.
56
+ - **UNCLASSIFIED** — two items, each carrying the question that settles it
57
+ (see the declaration §3–§4).
58
+
59
+ Counts are derived from the tree by the test, never cited from prose.
60
+
61
+ ---
62
+
63
+ ## Quickstart
64
+
65
+ ```bash
66
+ pip install -e . # or: pipx install solo-builder-core
67
+ solo init --owner <you> --repo <repo> # writes .solo.toml
68
+ solo init --demo # OR: zero-API-key runnable demo
69
+ export GITHUB_TOKEN=... # + NOTION_API_KEY / NOTION_DATABASE_ID if syncing
70
+ solo status # see the factory floor
71
+ ```
72
+
73
+ ## The moat (read this first)
74
+
75
+ | Capability | Status | Where |
76
+ |---|---|---|
77
+ | **Provenance attestations** — every PR carries a signed, hash-chained log of every governed action | shipped | `solo ship auto --pr` → [`src/solo_builder/provenance.py`](src/solo_builder/provenance.py) |
78
+ | **Replay packs** — Ed25519-signed merkle-rooted bundle of every input + output across an eval suite | shipped | `solo eval run --attest` → [`src/solo_builder/replay.py`](src/solo_builder/replay.py) |
79
+ | **Action tokens** — pre-signed, time-bounded, scope-limited authorizations for high-risk operations | shipped | `solo kernel approve` → [`src/solo_builder/action_tokens.py`](src/solo_builder/action_tokens.py) |
80
+ | **External offline verifier** — auditors verify against `strixgov.com/.well-known/strix-jwks.json` | shipped | [`docs/VERIFIER.md`](docs/VERIFIER.md) |
81
+ | **Adversarial eval suite** — refusal probes (secrets, force-push, curl-pipe-shell) scored on real kernel denies | shipped | `solo eval run --tools` → [`src/solo_builder/evals.py`](src/solo_builder/evals.py) |
82
+ | **SoloShipBench** — public reproducible benchmark for the shipping path, signed scorecard per release | new | `solo eval run --suite soloshipbench` |
83
+ | **Solo Bridge** — live oversight dashboard + approval surface | opt-in | `solo bridge start` → [`docs/BRIDGE.md`](docs/BRIDGE.md) |
84
+ | **Tool marketplace** — signed, kernel-governed tools beyond the built-ins | opt-in | `solo tool install/list/publish` → [`docs/MARKETPLACE.md`](docs/MARKETPLACE.md) |
85
+ | **Multi-agent personas** — architect / builder / reviewer / ops specialists | opt-in | `solo ship auto --persona-roster specialist` → [`docs/PERSONAS.md`](docs/PERSONAS.md) |
86
+ | **Worktree isolation** — agent operates on `.solo/worktrees/<id>/`, never the live checkout | opt-in | `--worktree` on `ship auto`; `[agent] use_worktree` |
87
+ | **Per-stage signed commits** — every stage is a commit, every revert is recorded | opt-in | `--stage-commits` + `solo ship rollback --stage` |
88
+ | **MCP-compatible governed tools** — bring any MCP tool, get the audit chain for free | stdio / http / sse | [`mcp_adapter.py`](src/solo_builder/mcp_adapter.py) + [`mcp_http.py`](src/solo_builder/mcp_http.py) |
89
+ | **Autonomy switch** — `review` / `assist` / `swarm` controls how aggressively the agent acts between gate checks | default: `review` | `--autonomy`; `[agent] autonomy` |
90
+ | **Ant-mode daemon** — polls backlog, retries with exponential backoff, escalates after N attempts | opt-in via `swarm` | `solo daemon start/stop/status` |
91
+ | **Multi-path racing** — runs N strategies in parallel and ships the winner | opt-in | `solo ship auto --race N` |
92
+ | **Pheromone-weighted memory** — `{{MEMORY}}` injection prefers recent + successful entries | swarm only | `[agent] pheromone_decay_per_day`, `pheromone_amplify_factor` |
93
+ | **Auto-decomposition** — swarm daemon splits oversized tickets and pauses parent for operator review | swarm only | `daemon:decomposed` label + comment |
94
+
95
+ ## Docs
96
+
97
+ - [docs/POSITIONING.md](docs/POSITIONING.md) — what category solo-builder-core is in (and isn't)
98
+ - [docs/COMPLIANCE.md](docs/COMPLIANCE.md) — auditor-facing control map
99
+ - [docs/VERIFIER.md](docs/VERIFIER.md) — standalone JWKS verifier (one-command install)
100
+ - [docs/BRIDGE.md](docs/BRIDGE.md) — live oversight dashboard
101
+ - [docs/MARKETPLACE.md](docs/MARKETPLACE.md) — signed tool marketplace
102
+ - [docs/PERSONAS.md](docs/PERSONAS.md) — multi-agent specialization
103
+ - [docs/HOW_TO.md](docs/HOW_TO.md) — 12 task-oriented walkthroughs
104
+ - [docs/FAQ.md](docs/FAQ.md) — ~25 recurring questions
105
+ - [docs/ARCHITECTURE_REVIEW.md](docs/ARCHITECTURE_REVIEW.md) — design audit
106
+ - [docs/CONTRACTS.md](docs/CONTRACTS.md) — ticket and Build Pack contracts
107
+ - [docs/COMPETITOR_RESPONSE_PLAN.md](docs/COMPETITOR_RESPONSE_PLAN.md) — what we took from each competitor and why
108
+ - [CONTRIBUTING.md](CONTRIBUTING.md) — dev setup, testing conventions
109
+ - [CLAUDE.md](CLAUDE.md) — agent / Claude Code reference for this repo
110
+
111
+ ## The one rule
112
+
113
+ **If it can't be expressed as a shippable artifact (URL/build/job), it isn't "work" yet.**
114
+
115
+ ---
116
+
117
+ ## Features (the rest of the surface)
118
+
119
+ Below the moat, the agent has all the table-stakes capabilities you'd
120
+ expect — and a couple that solo-builder-core does better than the field.
121
+
122
+ ### Agent capabilities (all opt-in flags)
123
+
124
+ - **`ship auto/plan --tools`** — kernel-governed tool-use loop. The agent calls `read`/`write`/`grep`/`glob`/`bash`/`web_fetch` during code-generation stages; every invocation is policy-evaluated by `KernelClient` before execution and recorded into `.solo/audit.jsonl`. See [`src/solo_builder/tools.py`](src/solo_builder/tools.py).
125
+ - **`ship auto/plan --codebase-context`** — TF-IDF + symbol/heading-boosted retrieval over the working tree, injected as `{{CODEBASE_CONTEXT}}` in stage prompts. Stdlib-only, mtime-cached at `.solo/codebase-index.json`. See [`src/solo_builder/codebase_index.py`](src/solo_builder/codebase_index.py).
126
+ - **`ship plan --parallel N`** — dependency-aware concurrent execution. Independent tickets run on N workers; budget refusals abort new dispatches; failed deps strictly block downstream. See [`src/solo_builder/parallel.py`](src/solo_builder/parallel.py).
127
+ - **Multi-provider LLM client** — `AnthropicClient` (default) and `OpenAIClient` behind a `ModelRouter` that maps `tier ∈ {cheap, strong, premier}` to concrete models. Cheap stages route to Haiku/4o-mini, headline generation stays on Sonnet/4o, premier picks Opus. See [`src/solo_builder/llm.py`](src/solo_builder/llm.py).
128
+ - **`solo ship verify --content-check`** — fetches the deployed proof URL, asserts substrings, optionally extracts checks from the ticket's Definition of Shipped. Uses the canonical Strix domain allow-list. See [`_verify_url_content`](src/solo_builder/commands/ship.py).
129
+ - **`solo eval run` / `init` / `report`** — benchmark suite with adversarial probes (secret-write refusal, force-push refusal, curl-pipe-shell refusal). `--tools` scores governance via real kernel-deny counts. See [`src/solo_builder/evals.py`](src/solo_builder/evals.py).
130
+
131
+ ### Governance-leveraged differentiators (round 1)
132
+
133
+ - **`solo ship auto --pr`** — emits a signed **AI contribution attestation** alongside a PR body containing the full hash-chained log of every governed action. Verifies against the canonical JWKS at `strixgov.com/.well-known/strix-jwks.json` via `@strixgov/verifier`. See [`src/solo_builder/provenance.py`](src/solo_builder/provenance.py). _Claim boundary (2026-06-09 gate review): a signature proves a key signed a defined payload; it does NOT by itself prove a human wrote the code, that the named agent alone produced the content, that no unrecorded tool influenced the result, or that the attested code equals the final merged code. Use "AI contribution attestation" — not "proven AI authorship" — until the diff/commit binding covers all of those._
134
+ - **`solo kernel approve` → `solo ship deploy --kernel-token`** — operators pre-approve a bounded window during which the agent may execute a high-risk action class (deploy, env mutation). Four-gate verifier: signature, validity window, actor, action+scope. Tokens are canonical and identical inputs produce identical bytes — the same token verifies anywhere via the published JWKS. See [`src/solo_builder/action_tokens.py`](src/solo_builder/action_tokens.py).
135
+ - **`solo eval run --attest pack.json` → `solo replay PACK`** — bundles every input + output across an eval suite into an Ed25519-signed merkle-rooted pack. External auditors run `solo replay --verify-only` (offline hash check) or `--fixtures DIR` (re-executes each fixture against a deterministic generator and asserts output_hash equality). Auditors verify against the canonical JWKS without trusting solo-builder-core. See [`src/solo_builder/replay.py`](src/solo_builder/replay.py).
136
+
137
+ ### Governance-leveraged differentiators (round 2)
138
+
139
+ - **`solo agent register` → `solo ship auto --agents stage:name,...`** — governed specialist-agent registry. Specialist agents (plan / code / critique / deploy) each get their own Ed25519 keypair and kid; per-stage assignments thread into provenance so the PR body becomes a multi-author trail with cryptographic attribution. Naming note: this is a **registry** of locally-controlled agents, not a marketplace — "marketplace" is reserved for the day external publishers ship specialist agents through a Strix-side discovery surface, which requires supply-chain trust semantics (publisher identity, revocation, vulnerability response) that do not yet apply. See [`src/solo_builder/agent_registry.py`](src/solo_builder/agent_registry.py).
140
+ - **Custody envelopes for outbound calls** — every external HTTPS call gets a signed request envelope + response envelope, hash-chained per stage. Optional service co-signatures (GitHub commit refs, Vercel deployment receipts) chain into the response side. An auditor can verify both halves independently against the canonical JWKS — closing the "the agent says it called Vercel" gap. See [`src/solo_builder/custody.py`](src/solo_builder/custody.py).
141
+ - **`solo registry publish` / `solo registry scorecard`** — public attestation registry. **Vendors publish signed attestation-pack heads; buyers independently verify the published artifacts.** The registry stores (hash + signature + aggregate counters, no fixture bodies). Buyers `search` by policy / pass-rate, `follow` vendors, and `compose` side-by-side scorecards. Each composition verifies entry signatures against the supplied JWKS and rejects forgeries to a separate list. Scorecards preserve **per-entry verification state** (VERIFIED / INVALID / EXPIRED / REVOKED / UNVERIFIABLE / UNSIGNED / NOT_EVALUATED / INCOMPATIBLE_SCHEMA) rather than aggregating to a single green score. _Claim boundary (2026-06-09 gate review): the registry verifies **specific artifacts under defined schemas** — it does NOT establish a vendor's overall trustworthiness, and registry availability does NOT control historical verification (relying parties pin issuer keys + pack heads and verify offline)._ See [`src/solo_builder/registry.py`](src/solo_builder/registry.py).
142
+
143
+ The competitive moat sits in all six governance-leveraged features: every other major coding agent (Devin, Cursor Agent, OpenHands, Claude Code, Copilot Workspace) can record sessions but none can produce a cryptographic chain that an external auditor can verify offline. solo-builder-core can because Strix's signing infrastructure already exists — and round 2 extends that asymmetry across agent boundaries, service boundaries, and vendor boundaries.
144
+
145
+ ## The Ship Cycle
146
+
147
+ 1. **Capture** → idea lands as a 🚢 Ship Ticket (GitHub issue).
148
+ 2. **Init** → `solo ship init <id> --scaffold` creates branch + Build Pack + starter artifact.
149
+ 3. **Build** → implement in `artifacts/<id>-<slug>/`. Use `solo ai spec/tasks` to expand docs.
150
+ 4. **Deploy** → `solo ship deploy <id> --close` deploys via a deploy adapter and auto-captures the proof URL.
151
+ 5. **Verify** → `solo ship verify <id>` HEAD-checks the proof URL.
152
+ 6. **Sync** → `solo sync` upserts Notion (and `--promote` pulls Notion-marked cards back into GitHub).
153
+
154
+ Definition of Done: acceptance tests exist **and** verified proof-of-ship exists.
155
+
156
+ ---
157
+
158
+ ## CLI map
159
+
160
+ | Command | What it does |
161
+ | --- | --- |
162
+ | `solo init` | Bootstrap `.solo.toml`, `.gitignore`, `.solo/` state dir |
163
+ | `solo ship init <id>` | Branch + Build Pack (00–05) + optional template scaffold |
164
+ | `solo ship deploy <id>` | Run a deploy adapter (vercel, railway, cloudflare, expo, github-pages, manual) |
165
+ | `solo ship close <id> --proof <url>` | Validate ticket, verify URL, close with proof |
166
+ | `solo ship verify <id>` | HEAD-check the proof URL (200 OK?) |
167
+ | `solo ship rollback <id>` | Reopen a shipped ticket |
168
+ | `solo ticket lint <id>` | Validate a ticket against the v1.x contract |
169
+ | `solo ticket show <id>` | Pretty-print the parsed ticket |
170
+ | `solo sync` | GH → Notion upsert; `--promote` for Notion → GH |
171
+ | `solo status` / `solo next` | See open work; pick next queued (respects WIP limit) |
172
+ | `solo resume <id>` | Check out the ship branch |
173
+ | `solo metrics` | Cycle time, WIP, ship rate (optional `--json`) |
174
+ | `solo ai spec\|tasks\|postmortem\|review <id>` | Claude-backed authoring helpers |
175
+ | `solo account status` | Which mode you are in (offline / sandbox / connected), what it includes, what the next tier unlocks — see [`commercial-launch/pricing/PRICING.md`](commercial-launch/pricing/PRICING.md) |
176
+ | `solo kernel evaluate <type>` | Ask the policy engine about a hypothetical action |
177
+ | `solo kernel log --issue <id>` | Show audit log for an issue |
178
+ | `--dry-run` | Runs on any mutating command |
179
+
180
+ **Plans and pricing** ([`PRICING.md`](commercial-launch/pricing/PRICING.md)): Local and synthetic use only until a governed release is accepted. No production authorization claim.
181
+
182
+ ---
183
+
184
+ ## What the system guarantees
185
+
186
+ - **GitHub** is execution truth; **Notion** is control plane.
187
+ - **No close without verified proof** (CLI + optional CI gate).
188
+ - **Build Packs are standardized** (`00-spec`, `01-architecture`, `02-tasks`, `03-tests`, `04-deploy`, `05-notes`).
189
+ - **Idempotent sync** keyed by GitHub Issue URL.
190
+ - **Label invariants** enforced by CI (one `status:*`, one `artifact:*`).
191
+ - **Audit log** — every mutating command appends to `.solo/audit.jsonl`.
192
+ - **Kernel governance** — every `init`/`deploy`/`close` gets a policy decision. Local stub runs when the service is unreachable.
193
+
194
+ ---
195
+
196
+ ## Config
197
+
198
+ `.solo.toml` at the repo root. Any field can be overridden by env var:
199
+
200
+ | Env var | Purpose |
201
+ | --- | --- |
202
+ | `GITHUB_TOKEN` / `GITHUB_REPO_OWNER` / `GITHUB_REPO_NAME` | GitHub API |
203
+ | `NOTION_API_KEY` / `NOTION_DATABASE_ID` | Notion sync |
204
+ | `KERNEL_URL` | Execution Kernel endpoint (default `https://www.strixgov.com`) |
205
+ | `ANTHROPIC_API_KEY` | Enables real Claude calls for `solo ai ...` (offline fallback otherwise) |
206
+ | `VERCEL_TOKEN` / `RAILWAY_TOKEN` / `CLOUDFLARE_API_TOKEN` | Deploy adapters |
207
+
208
+ ---
209
+
210
+ ## Deploy targets
211
+
212
+ Page / Webapp → Vercel • Integration / Automation → Railway or Cloudflare Workers • App → Expo • Content → Manual • Simple pages → GitHub Pages. Override per-ticket via the `deploy_target` front-matter field or `solo ship deploy --target`.
213
+
214
+ ---
215
+
216
+ ## Templates
217
+
218
+ Starter templates live in `templates/`:
219
+
220
+ - `page/` — static HTML
221
+ - `webapp/` — minimal `package.json`
222
+ - `nextjs/` — Next.js 14 app-router
223
+ - `cloudflare-worker/` — wrangler-ready Worker
224
+ - `automation/` — Python script
225
+ - `content/` — Markdown post scaffold
226
+ - `chrome-extension/` — MV3 extension
227
+
228
+ ---
229
+
230
+ ## Prompts
231
+
232
+ `prompts/` holds system prompts for the AI commands. Edit them to match your voice. `solo ai` uses these when `ANTHROPIC_API_KEY` is set; otherwise it falls back to deterministic offline templates so CI never requires a key.
233
+
234
+ ---
235
+
236
+ **Version**: 1.2