synaptixs-spine 1.23.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 (526) hide show
  1. synaptixs_spine-1.23.0/.env.example +122 -0
  2. synaptixs_spine-1.23.0/.github/CODEOWNERS +7 -0
  3. synaptixs_spine-1.23.0/.github/ISSUE_TEMPLATE/bug_report.md +22 -0
  4. synaptixs_spine-1.23.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
  5. synaptixs_spine-1.23.0/.github/ISSUE_TEMPLATE/feature_request.md +15 -0
  6. synaptixs_spine-1.23.0/.github/pull_request_template.md +13 -0
  7. synaptixs_spine-1.23.0/.github/release.yml +16 -0
  8. synaptixs_spine-1.23.0/.github/workflows/ci.yml +51 -0
  9. synaptixs_spine-1.23.0/.github/workflows/publish-pypi.yml +40 -0
  10. synaptixs_spine-1.23.0/.github/workflows/publish-testpypi.yml +119 -0
  11. synaptixs_spine-1.23.0/.github/workflows/release.yml +45 -0
  12. synaptixs_spine-1.23.0/.github/workflows/security-scan.yml +38 -0
  13. synaptixs_spine-1.23.0/.gitignore +33 -0
  14. synaptixs_spine-1.23.0/.mcp.json +8 -0
  15. synaptixs_spine-1.23.0/.pre-commit-config.yaml +23 -0
  16. synaptixs_spine-1.23.0/.python-version +1 -0
  17. synaptixs_spine-1.23.0/CODE_OF_CONDUCT.md +43 -0
  18. synaptixs_spine-1.23.0/COMMUNITY.md +83 -0
  19. synaptixs_spine-1.23.0/CONTRIBUTING.md +57 -0
  20. synaptixs_spine-1.23.0/FEATURES.md +84 -0
  21. synaptixs_spine-1.23.0/LICENSE +21 -0
  22. synaptixs_spine-1.23.0/OPERATIONS.md +162 -0
  23. synaptixs_spine-1.23.0/PKG-INFO +227 -0
  24. synaptixs_spine-1.23.0/README.md +161 -0
  25. synaptixs_spine-1.23.0/SECURITY.md +64 -0
  26. synaptixs_spine-1.23.0/SETUP.md +353 -0
  27. synaptixs_spine-1.23.0/USER_GUIDE.md +506 -0
  28. synaptixs_spine-1.23.0/alembic.ini +41 -0
  29. synaptixs_spine-1.23.0/assets/spine-banner.png +0 -0
  30. synaptixs_spine-1.23.0/assets/spine-banner.svg +26 -0
  31. synaptixs_spine-1.23.0/docker-compose.dev.yml +128 -0
  32. synaptixs_spine-1.23.0/examples/gap_rules/intent_gaps.yaml +41 -0
  33. synaptixs_spine-1.23.0/examples/intake/sample-spec.md +33 -0
  34. synaptixs_spine-1.23.0/examples/templates/business_writer.yaml +44 -0
  35. synaptixs_spine-1.23.0/examples/templates/code_executor.yaml +54 -0
  36. synaptixs_spine-1.23.0/examples/templates/code_reviewer.yaml +79 -0
  37. synaptixs_spine-1.23.0/examples/templates/data_analyst.yaml +56 -0
  38. synaptixs_spine-1.23.0/examples/templates/document_summarizer.yaml +53 -0
  39. synaptixs_spine-1.23.0/examples/templates/intent_extractor.yaml +49 -0
  40. synaptixs_spine-1.23.0/examples/templates/policy_checker.yaml +48 -0
  41. synaptixs_spine-1.23.0/examples/templates/research_agent.yaml +57 -0
  42. synaptixs_spine-1.23.0/examples/templates/spec_writer.yaml +46 -0
  43. synaptixs_spine-1.23.0/migrations/env.py +59 -0
  44. synaptixs_spine-1.23.0/migrations/script.py.mako +27 -0
  45. synaptixs_spine-1.23.0/migrations/versions/0001_initial_registry_tables.py +106 -0
  46. synaptixs_spine-1.23.0/migrations/versions/0002_glossary_entries.py +64 -0
  47. synaptixs_spine-1.23.0/migrations/versions/0003_calibration_history.py +56 -0
  48. synaptixs_spine-1.23.0/migrations/versions/0004_approval_requests.py +83 -0
  49. synaptixs_spine-1.23.0/migrations/versions/0005_add_tenant_id.py +37 -0
  50. synaptixs_spine-1.23.0/migrations/versions/0006_agent_memory.py +52 -0
  51. synaptixs_spine-1.23.0/pyproject.toml +172 -0
  52. synaptixs_spine-1.23.0/scripts/agentic_eval.py +147 -0
  53. synaptixs_spine-1.23.0/scripts/audit_eval.py +86 -0
  54. synaptixs_spine-1.23.0/scripts/codegen_ab.py +294 -0
  55. synaptixs_spine-1.23.0/scripts/codegen_benchmark.py +1366 -0
  56. synaptixs_spine-1.23.0/scripts/intents_to_confluence.py +168 -0
  57. synaptixs_spine-1.23.0/scripts/live_confluence.py +113 -0
  58. synaptixs_spine-1.23.0/scripts/live_github_auth.py +78 -0
  59. synaptixs_spine-1.23.0/scripts/live_review.py +119 -0
  60. synaptixs_spine-1.23.0/scripts/live_sdlc_worker.py +64 -0
  61. synaptixs_spine-1.23.0/scripts/skill_ab.py +253 -0
  62. synaptixs_spine-1.23.0/scripts/skill_promote.py +126 -0
  63. synaptixs_spine-1.23.0/scripts/smoke-test.sh +169 -0
  64. synaptixs_spine-1.23.0/src/orchestrator/__init__.py +1 -0
  65. synaptixs_spine-1.23.0/src/orchestrator/agentic/__init__.py +38 -0
  66. synaptixs_spine-1.23.0/src/orchestrator/agentic/codegen_tools.py +128 -0
  67. synaptixs_spine-1.23.0/src/orchestrator/agentic/export.py +107 -0
  68. synaptixs_spine-1.23.0/src/orchestrator/agentic/loop.py +495 -0
  69. synaptixs_spine-1.23.0/src/orchestrator/agentic/mcp_tools.py +74 -0
  70. synaptixs_spine-1.23.0/src/orchestrator/agentic/memory_tools.py +82 -0
  71. synaptixs_spine-1.23.0/src/orchestrator/agentic/policy.py +112 -0
  72. synaptixs_spine-1.23.0/src/orchestrator/agentic/tools.py +168 -0
  73. synaptixs_spine-1.23.0/src/orchestrator/approval/__init__.py +36 -0
  74. synaptixs_spine-1.23.0/src/orchestrator/approval/models.py +122 -0
  75. synaptixs_spine-1.23.0/src/orchestrator/approval/repository.py +219 -0
  76. synaptixs_spine-1.23.0/src/orchestrator/catalog/__init__.py +61 -0
  77. synaptixs_spine-1.23.0/src/orchestrator/catalog/catalog.py +132 -0
  78. synaptixs_spine-1.23.0/src/orchestrator/catalog/models.py +107 -0
  79. synaptixs_spine-1.23.0/src/orchestrator/catalog/planner.py +57 -0
  80. synaptixs_spine-1.23.0/src/orchestrator/catalog/profile.py +155 -0
  81. synaptixs_spine-1.23.0/src/orchestrator/catalog/skill_import.py +108 -0
  82. synaptixs_spine-1.23.0/src/orchestrator/catalog/skills.py +190 -0
  83. synaptixs_spine-1.23.0/src/orchestrator/catalog/vetting.py +60 -0
  84. synaptixs_spine-1.23.0/src/orchestrator/cli.py +1364 -0
  85. synaptixs_spine-1.23.0/src/orchestrator/codereview/__init__.py +23 -0
  86. synaptixs_spine-1.23.0/src/orchestrator/codereview/auth.py +138 -0
  87. synaptixs_spine-1.23.0/src/orchestrator/codereview/config.py +85 -0
  88. synaptixs_spine-1.23.0/src/orchestrator/codereview/diff_utils.py +56 -0
  89. synaptixs_spine-1.23.0/src/orchestrator/codereview/github_client.py +250 -0
  90. synaptixs_spine-1.23.0/src/orchestrator/codereview/grounding.py +153 -0
  91. synaptixs_spine-1.23.0/src/orchestrator/codereview/models.py +87 -0
  92. synaptixs_spine-1.23.0/src/orchestrator/codereview/reviewer.py +328 -0
  93. synaptixs_spine-1.23.0/src/orchestrator/codereview/semgrep.py +146 -0
  94. synaptixs_spine-1.23.0/src/orchestrator/codereview/verifiers.py +297 -0
  95. synaptixs_spine-1.23.0/src/orchestrator/codereview/webhook.py +211 -0
  96. synaptixs_spine-1.23.0/src/orchestrator/core/__init__.py +0 -0
  97. synaptixs_spine-1.23.0/src/orchestrator/core/claim.py +40 -0
  98. synaptixs_spine-1.23.0/src/orchestrator/core/env.py +41 -0
  99. synaptixs_spine-1.23.0/src/orchestrator/core/llm/__init__.py +43 -0
  100. synaptixs_spine-1.23.0/src/orchestrator/core/llm/budget.py +115 -0
  101. synaptixs_spine-1.23.0/src/orchestrator/core/llm/client.py +115 -0
  102. synaptixs_spine-1.23.0/src/orchestrator/core/llm/litellm_client.py +176 -0
  103. synaptixs_spine-1.23.0/src/orchestrator/core/llm/mock.py +133 -0
  104. synaptixs_spine-1.23.0/src/orchestrator/core/llm/recording.py +153 -0
  105. synaptixs_spine-1.23.0/src/orchestrator/core/state.py +68 -0
  106. synaptixs_spine-1.23.0/src/orchestrator/core/tool_client.py +135 -0
  107. synaptixs_spine-1.23.0/src/orchestrator/doctor.py +151 -0
  108. synaptixs_spine-1.23.0/src/orchestrator/evals/__init__.py +58 -0
  109. synaptixs_spine-1.23.0/src/orchestrator/evals/graders.py +211 -0
  110. synaptixs_spine-1.23.0/src/orchestrator/evals/harness.py +107 -0
  111. synaptixs_spine-1.23.0/src/orchestrator/evals/models.py +145 -0
  112. synaptixs_spine-1.23.0/src/orchestrator/evals/promotion.py +248 -0
  113. synaptixs_spine-1.23.0/src/orchestrator/evals/skill_ab.py +152 -0
  114. synaptixs_spine-1.23.0/src/orchestrator/gateway/__init__.py +29 -0
  115. synaptixs_spine-1.23.0/src/orchestrator/gateway/api/__init__.py +0 -0
  116. synaptixs_spine-1.23.0/src/orchestrator/gateway/api/app.py +93 -0
  117. synaptixs_spine-1.23.0/src/orchestrator/gateway/api/routes.py +151 -0
  118. synaptixs_spine-1.23.0/src/orchestrator/gateway/auth.py +58 -0
  119. synaptixs_spine-1.23.0/src/orchestrator/gateway/handlers.py +73 -0
  120. synaptixs_spine-1.23.0/src/orchestrator/gateway/invocation.py +41 -0
  121. synaptixs_spine-1.23.0/src/orchestrator/gateway/loader.py +80 -0
  122. synaptixs_spine-1.23.0/src/orchestrator/gateway/rate_limit.py +59 -0
  123. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/__init__.py +50 -0
  124. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/echo.py +37 -0
  125. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/fetch_artifact.py +89 -0
  126. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/fetch_metric_definition.py +81 -0
  127. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/fetch_url.py +76 -0
  128. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/query_document_store.py +70 -0
  129. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/query_warehouse.py +68 -0
  130. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/run_python_analysis.py +295 -0
  131. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/summarize_text.py +74 -0
  132. synaptixs_spine-1.23.0/src/orchestrator/gateway/tools/web_search.py +85 -0
  133. synaptixs_spine-1.23.0/src/orchestrator/init_scaffold.py +123 -0
  134. synaptixs_spine-1.23.0/src/orchestrator/intake/__init__.py +58 -0
  135. synaptixs_spine-1.23.0/src/orchestrator/intake/backlog_doc.py +60 -0
  136. synaptixs_spine-1.23.0/src/orchestrator/intake/cache.py +223 -0
  137. synaptixs_spine-1.23.0/src/orchestrator/intake/confluence.py +212 -0
  138. synaptixs_spine-1.23.0/src/orchestrator/intake/factory.py +128 -0
  139. synaptixs_spine-1.23.0/src/orchestrator/intake/file_source.py +184 -0
  140. synaptixs_spine-1.23.0/src/orchestrator/intake/gaps.py +160 -0
  141. synaptixs_spine-1.23.0/src/orchestrator/intake/intents.py +207 -0
  142. synaptixs_spine-1.23.0/src/orchestrator/intake/jira.py +250 -0
  143. synaptixs_spine-1.23.0/src/orchestrator/intake/mcp_source.py +123 -0
  144. synaptixs_spine-1.23.0/src/orchestrator/intake/notion.py +199 -0
  145. synaptixs_spine-1.23.0/src/orchestrator/intake/report.py +192 -0
  146. synaptixs_spine-1.23.0/src/orchestrator/intake/service.py +205 -0
  147. synaptixs_spine-1.23.0/src/orchestrator/intake/source.py +78 -0
  148. synaptixs_spine-1.23.0/src/orchestrator/intake/specs.py +183 -0
  149. synaptixs_spine-1.23.0/src/orchestrator/intake/web/__init__.py +12 -0
  150. synaptixs_spine-1.23.0/src/orchestrator/intake/web/app.py +235 -0
  151. synaptixs_spine-1.23.0/src/orchestrator/ir/__init__.py +0 -0
  152. synaptixs_spine-1.23.0/src/orchestrator/ir/graph.py +153 -0
  153. synaptixs_spine-1.23.0/src/orchestrator/ir/validator.py +307 -0
  154. synaptixs_spine-1.23.0/src/orchestrator/knowledge/__init__.py +13 -0
  155. synaptixs_spine-1.23.0/src/orchestrator/knowledge/access.py +63 -0
  156. synaptixs_spine-1.23.0/src/orchestrator/knowledge/consolidate.py +193 -0
  157. synaptixs_spine-1.23.0/src/orchestrator/knowledge/renderers.py +212 -0
  158. synaptixs_spine-1.23.0/src/orchestrator/knowledge/understand.py +78 -0
  159. synaptixs_spine-1.23.0/src/orchestrator/mcp/__init__.py +31 -0
  160. synaptixs_spine-1.23.0/src/orchestrator/mcp/client.py +103 -0
  161. synaptixs_spine-1.23.0/src/orchestrator/mcp/config.py +94 -0
  162. synaptixs_spine-1.23.0/src/orchestrator/mcp/contract.py +106 -0
  163. synaptixs_spine-1.23.0/src/orchestrator/mcp/db.py +110 -0
  164. synaptixs_spine-1.23.0/src/orchestrator/mcp/handler.py +107 -0
  165. synaptixs_spine-1.23.0/src/orchestrator/mcp/models.py +38 -0
  166. synaptixs_spine-1.23.0/src/orchestrator/mcp/onboard.py +85 -0
  167. synaptixs_spine-1.23.0/src/orchestrator/mcp/registry.py +77 -0
  168. synaptixs_spine-1.23.0/src/orchestrator/notify/__init__.py +5 -0
  169. synaptixs_spine-1.23.0/src/orchestrator/notify/slack.py +150 -0
  170. synaptixs_spine-1.23.0/src/orchestrator/obs/__init__.py +5 -0
  171. synaptixs_spine-1.23.0/src/orchestrator/obs/tracing.py +263 -0
  172. synaptixs_spine-1.23.0/src/orchestrator/personas/__init__.py +28 -0
  173. synaptixs_spine-1.23.0/src/orchestrator/personas/auditor.py +268 -0
  174. synaptixs_spine-1.23.0/src/orchestrator/personas/binding.py +78 -0
  175. synaptixs_spine-1.23.0/src/orchestrator/personas/registry.py +22 -0
  176. synaptixs_spine-1.23.0/src/orchestrator/personas/software_engineer.py +50 -0
  177. synaptixs_spine-1.23.0/src/orchestrator/pkg/__init__.py +69 -0
  178. synaptixs_spine-1.23.0/src/orchestrator/pkg/docs.py +225 -0
  179. synaptixs_spine-1.23.0/src/orchestrator/pkg/export.py +234 -0
  180. synaptixs_spine-1.23.0/src/orchestrator/pkg/extractor.py +499 -0
  181. synaptixs_spine-1.23.0/src/orchestrator/pkg/facts.py +127 -0
  182. synaptixs_spine-1.23.0/src/orchestrator/pkg/java_extractor.py +201 -0
  183. synaptixs_spine-1.23.0/src/orchestrator/pkg/persistence.py +183 -0
  184. synaptixs_spine-1.23.0/src/orchestrator/pkg/rdf.py +80 -0
  185. synaptixs_spine-1.23.0/src/orchestrator/pkg/retrieval.py +233 -0
  186. synaptixs_spine-1.23.0/src/orchestrator/pkg/schema.py +101 -0
  187. synaptixs_spine-1.23.0/src/orchestrator/pkg/stats.py +192 -0
  188. synaptixs_spine-1.23.0/src/orchestrator/pkg/store.py +117 -0
  189. synaptixs_spine-1.23.0/src/orchestrator/pkg/typescript_extractor.py +283 -0
  190. synaptixs_spine-1.23.0/src/orchestrator/pkg/verifier.py +139 -0
  191. synaptixs_spine-1.23.0/src/orchestrator/planner/__init__.py +6 -0
  192. synaptixs_spine-1.23.0/src/orchestrator/planner/v0.py +171 -0
  193. synaptixs_spine-1.23.0/src/orchestrator/planner/v1.py +676 -0
  194. synaptixs_spine-1.23.0/src/orchestrator/plugin/__init__.py +9 -0
  195. synaptixs_spine-1.23.0/src/orchestrator/plugin/__main__.py +77 -0
  196. synaptixs_spine-1.23.0/src/orchestrator/plugin/auth.py +174 -0
  197. synaptixs_spine-1.23.0/src/orchestrator/plugin/server.py +271 -0
  198. synaptixs_spine-1.23.0/src/orchestrator/registry/__init__.py +0 -0
  199. synaptixs_spine-1.23.0/src/orchestrator/registry/_common.py +54 -0
  200. synaptixs_spine-1.23.0/src/orchestrator/registry/agent_template.py +71 -0
  201. synaptixs_spine-1.23.0/src/orchestrator/registry/api/__init__.py +0 -0
  202. synaptixs_spine-1.23.0/src/orchestrator/registry/api/app.py +125 -0
  203. synaptixs_spine-1.23.0/src/orchestrator/registry/api/approvals.py +242 -0
  204. synaptixs_spine-1.23.0/src/orchestrator/registry/api/backlog.py +59 -0
  205. synaptixs_spine-1.23.0/src/orchestrator/registry/api/config.py +55 -0
  206. synaptixs_spine-1.23.0/src/orchestrator/registry/api/console.py +61 -0
  207. synaptixs_spine-1.23.0/src/orchestrator/registry/api/deps.py +126 -0
  208. synaptixs_spine-1.23.0/src/orchestrator/registry/api/inbox.py +54 -0
  209. synaptixs_spine-1.23.0/src/orchestrator/registry/api/middleware.py +83 -0
  210. synaptixs_spine-1.23.0/src/orchestrator/registry/api/personas.py +103 -0
  211. synaptixs_spine-1.23.0/src/orchestrator/registry/api/routes.py +276 -0
  212. synaptixs_spine-1.23.0/src/orchestrator/registry/api/runs.py +141 -0
  213. synaptixs_spine-1.23.0/src/orchestrator/registry/api/session.py +57 -0
  214. synaptixs_spine-1.23.0/src/orchestrator/registry/api/stream.py +135 -0
  215. synaptixs_spine-1.23.0/src/orchestrator/registry/api/tasks.py +569 -0
  216. synaptixs_spine-1.23.0/src/orchestrator/registry/api/trace.py +225 -0
  217. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/__init__.py +17 -0
  218. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/auth.py +93 -0
  219. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/home.py +109 -0
  220. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/shell.py +54 -0
  221. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/app.css +179 -0
  222. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/console.css +73 -0
  223. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/console.js +120 -0
  224. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/inbox.css +73 -0
  225. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/inbox.js +138 -0
  226. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/intake.css +48 -0
  227. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/intake.js +62 -0
  228. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/login.js +20 -0
  229. synaptixs_spine-1.23.0/src/orchestrator/registry/api/web/static/personas.js +36 -0
  230. synaptixs_spine-1.23.0/src/orchestrator/registry/calibration.py +115 -0
  231. synaptixs_spine-1.23.0/src/orchestrator/registry/db/__init__.py +0 -0
  232. synaptixs_spine-1.23.0/src/orchestrator/registry/db/models.py +253 -0
  233. synaptixs_spine-1.23.0/src/orchestrator/registry/db/session.py +32 -0
  234. synaptixs_spine-1.23.0/src/orchestrator/registry/glossary.py +36 -0
  235. synaptixs_spine-1.23.0/src/orchestrator/registry/loader.py +32 -0
  236. synaptixs_spine-1.23.0/src/orchestrator/registry/repositories.py +332 -0
  237. synaptixs_spine-1.23.0/src/orchestrator/registry/tool_contract.py +101 -0
  238. synaptixs_spine-1.23.0/src/orchestrator/registry/validation.py +101 -0
  239. synaptixs_spine-1.23.0/src/orchestrator/runtime/__init__.py +82 -0
  240. synaptixs_spine-1.23.0/src/orchestrator/runtime/agent_node.py +183 -0
  241. synaptixs_spine-1.23.0/src/orchestrator/runtime/artifacts.py +85 -0
  242. synaptixs_spine-1.23.0/src/orchestrator/runtime/chain_node.py +142 -0
  243. synaptixs_spine-1.23.0/src/orchestrator/runtime/checkpointer.py +42 -0
  244. synaptixs_spine-1.23.0/src/orchestrator/runtime/failure_dispatch.py +150 -0
  245. synaptixs_spine-1.23.0/src/orchestrator/runtime/graphs.py +202 -0
  246. synaptixs_spine-1.23.0/src/orchestrator/runtime/manager_graph.py +456 -0
  247. synaptixs_spine-1.23.0/src/orchestrator/runtime/post_conditions.py +222 -0
  248. synaptixs_spine-1.23.0/src/orchestrator/runtime/specialist.py +121 -0
  249. synaptixs_spine-1.23.0/src/orchestrator/runtime/task_orchestration.py +235 -0
  250. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifier.py +189 -0
  251. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/__init__.py +45 -0
  252. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/base.py +121 -0
  253. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/chain.py +110 -0
  254. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/confidence.py +87 -0
  255. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/evidence.py +224 -0
  256. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/glossary.py +126 -0
  257. synaptixs_spine-1.23.0/src/orchestrator/runtime/verifiers/policy.py +202 -0
  258. synaptixs_spine-1.23.0/src/orchestrator/sdlc/__init__.py +15 -0
  259. synaptixs_spine-1.23.0/src/orchestrator/sdlc/activities.py +599 -0
  260. synaptixs_spine-1.23.0/src/orchestrator/sdlc/ci.py +137 -0
  261. synaptixs_spine-1.23.0/src/orchestrator/sdlc/codegen.py +1433 -0
  262. synaptixs_spine-1.23.0/src/orchestrator/sdlc/conventions.py +186 -0
  263. synaptixs_spine-1.23.0/src/orchestrator/sdlc/deps.py +68 -0
  264. synaptixs_spine-1.23.0/src/orchestrator/sdlc/escalation.py +119 -0
  265. synaptixs_spine-1.23.0/src/orchestrator/sdlc/feature_runner.py +395 -0
  266. synaptixs_spine-1.23.0/src/orchestrator/sdlc/forge.py +276 -0
  267. synaptixs_spine-1.23.0/src/orchestrator/sdlc/gitauth.py +136 -0
  268. synaptixs_spine-1.23.0/src/orchestrator/sdlc/grounding.py +106 -0
  269. synaptixs_spine-1.23.0/src/orchestrator/sdlc/layout.py +306 -0
  270. synaptixs_spine-1.23.0/src/orchestrator/sdlc/preflight.py +103 -0
  271. synaptixs_spine-1.23.0/src/orchestrator/sdlc/review.py +217 -0
  272. synaptixs_spine-1.23.0/src/orchestrator/sdlc/review_response.py +118 -0
  273. synaptixs_spine-1.23.0/src/orchestrator/sdlc/run_control.py +204 -0
  274. synaptixs_spine-1.23.0/src/orchestrator/sdlc/scaffold.py +234 -0
  275. synaptixs_spine-1.23.0/src/orchestrator/sdlc/testenv.py +375 -0
  276. synaptixs_spine-1.23.0/src/orchestrator/sdlc/testrunner.py +234 -0
  277. synaptixs_spine-1.23.0/src/orchestrator/sdlc/types.py +130 -0
  278. synaptixs_spine-1.23.0/src/orchestrator/sdlc/worker.py +309 -0
  279. synaptixs_spine-1.23.0/src/orchestrator/sdlc/workflows.py +913 -0
  280. synaptixs_spine-1.23.0/src/orchestrator/sdlc/workspace.py +190 -0
  281. synaptixs_spine-1.23.0/src/orchestrator/spine/__init__.py +117 -0
  282. synaptixs_spine-1.23.0/src/orchestrator/spine/benchmark.py +91 -0
  283. synaptixs_spine-1.23.0/src/orchestrator/spine/drift.py +119 -0
  284. synaptixs_spine-1.23.0/src/orchestrator/spine/entity_key.py +84 -0
  285. synaptixs_spine-1.23.0/src/orchestrator/spine/execute.py +89 -0
  286. synaptixs_spine-1.23.0/src/orchestrator/spine/grounder.py +138 -0
  287. synaptixs_spine-1.23.0/src/orchestrator/spine/grounding.py +67 -0
  288. synaptixs_spine-1.23.0/src/orchestrator/spine/lineage.py +194 -0
  289. synaptixs_spine-1.23.0/src/orchestrator/spine/mapper.py +214 -0
  290. synaptixs_spine-1.23.0/src/orchestrator/spine/ontology.py +59 -0
  291. synaptixs_spine-1.23.0/src/orchestrator/spine/ontomesh_client.py +107 -0
  292. synaptixs_spine-1.23.0/src/orchestrator/spine/remediation.py +142 -0
  293. synaptixs_spine-1.23.0/src/orchestrator/spine/shipment.py +192 -0
  294. synaptixs_spine-1.23.0/src/orchestrator/spine/store.py +83 -0
  295. synaptixs_spine-1.23.0/src/orchestrator/storage/__init__.py +15 -0
  296. synaptixs_spine-1.23.0/src/orchestrator/storage/client.py +120 -0
  297. synaptixs_spine-1.23.0/src/orchestrator/temporal/__init__.py +22 -0
  298. synaptixs_spine-1.23.0/src/orchestrator/temporal/activities.py +435 -0
  299. synaptixs_spine-1.23.0/src/orchestrator/temporal/config.py +81 -0
  300. synaptixs_spine-1.23.0/src/orchestrator/temporal/deps.py +37 -0
  301. synaptixs_spine-1.23.0/src/orchestrator/temporal/worker.py +156 -0
  302. synaptixs_spine-1.23.0/src/orchestrator/temporal/workflow.py +506 -0
  303. synaptixs_spine-1.23.0/src/orchestrator/tui/__init__.py +14 -0
  304. synaptixs_spine-1.23.0/src/orchestrator/tui/app.py +130 -0
  305. synaptixs_spine-1.23.0/src/orchestrator/tui/client.py +52 -0
  306. synaptixs_spine-1.23.0/tests/__init__.py +0 -0
  307. synaptixs_spine-1.23.0/tests/agentic/__init__.py +0 -0
  308. synaptixs_spine-1.23.0/tests/agentic/test_approval.py +230 -0
  309. synaptixs_spine-1.23.0/tests/agentic/test_codegen_tools.py +58 -0
  310. synaptixs_spine-1.23.0/tests/agentic/test_export.py +79 -0
  311. synaptixs_spine-1.23.0/tests/agentic/test_loop.py +143 -0
  312. synaptixs_spine-1.23.0/tests/agentic/test_loop_tracing.py +112 -0
  313. synaptixs_spine-1.23.0/tests/agentic/test_mcp_tools.py +101 -0
  314. synaptixs_spine-1.23.0/tests/agentic/test_memory_tools.py +110 -0
  315. synaptixs_spine-1.23.0/tests/agentic/test_policy.py +95 -0
  316. synaptixs_spine-1.23.0/tests/agentic/test_tools.py +95 -0
  317. synaptixs_spine-1.23.0/tests/approval/__init__.py +0 -0
  318. synaptixs_spine-1.23.0/tests/approval/test_models.py +89 -0
  319. synaptixs_spine-1.23.0/tests/catalog/__init__.py +0 -0
  320. synaptixs_spine-1.23.0/tests/catalog/test_catalog_and_planner.py +123 -0
  321. synaptixs_spine-1.23.0/tests/catalog/test_profile.py +69 -0
  322. synaptixs_spine-1.23.0/tests/catalog/test_skill_import.py +67 -0
  323. synaptixs_spine-1.23.0/tests/catalog/test_skills.py +141 -0
  324. synaptixs_spine-1.23.0/tests/catalog/test_vetting.py +62 -0
  325. synaptixs_spine-1.23.0/tests/codereview/__init__.py +0 -0
  326. synaptixs_spine-1.23.0/tests/codereview/test_auth.py +149 -0
  327. synaptixs_spine-1.23.0/tests/codereview/test_github_client.py +168 -0
  328. synaptixs_spine-1.23.0/tests/codereview/test_grounding.py +169 -0
  329. synaptixs_spine-1.23.0/tests/codereview/test_reviewer.py +261 -0
  330. synaptixs_spine-1.23.0/tests/codereview/test_semgrep.py +97 -0
  331. synaptixs_spine-1.23.0/tests/codereview/test_verifiers.py +179 -0
  332. synaptixs_spine-1.23.0/tests/codereview/test_webhook.py +179 -0
  333. synaptixs_spine-1.23.0/tests/core/__init__.py +0 -0
  334. synaptixs_spine-1.23.0/tests/core/llm/test_budget.py +98 -0
  335. synaptixs_spine-1.23.0/tests/core/llm/test_litellm_client.py +64 -0
  336. synaptixs_spine-1.23.0/tests/core/llm/test_recording.py +103 -0
  337. synaptixs_spine-1.23.0/tests/core/test_claim.py +56 -0
  338. synaptixs_spine-1.23.0/tests/core/test_env.py +44 -0
  339. synaptixs_spine-1.23.0/tests/core/test_llm_litellm.py +108 -0
  340. synaptixs_spine-1.23.0/tests/core/test_llm_mock.py +69 -0
  341. synaptixs_spine-1.23.0/tests/core/test_llm_toolcalls.py +62 -0
  342. synaptixs_spine-1.23.0/tests/core/test_state.py +106 -0
  343. synaptixs_spine-1.23.0/tests/core/test_tool_client.py +73 -0
  344. synaptixs_spine-1.23.0/tests/evals/__init__.py +0 -0
  345. synaptixs_spine-1.23.0/tests/evals/test_brownfield_loader.py +50 -0
  346. synaptixs_spine-1.23.0/tests/evals/test_comparison.py +31 -0
  347. synaptixs_spine-1.23.0/tests/evals/test_graders.py +92 -0
  348. synaptixs_spine-1.23.0/tests/evals/test_harness.py +90 -0
  349. synaptixs_spine-1.23.0/tests/evals/test_promotion.py +146 -0
  350. synaptixs_spine-1.23.0/tests/evals/test_skill_ab.py +125 -0
  351. synaptixs_spine-1.23.0/tests/evals/test_skill_tasksets.py +108 -0
  352. synaptixs_spine-1.23.0/tests/fixtures/llm/.gitkeep +0 -0
  353. synaptixs_spine-1.23.0/tests/gateway/__init__.py +0 -0
  354. synaptixs_spine-1.23.0/tests/gateway/test_auth.py +44 -0
  355. synaptixs_spine-1.23.0/tests/gateway/test_fetch_metric_definition.py +59 -0
  356. synaptixs_spine-1.23.0/tests/gateway/test_fetch_url.py +60 -0
  357. synaptixs_spine-1.23.0/tests/gateway/test_handlers.py +46 -0
  358. synaptixs_spine-1.23.0/tests/gateway/test_loader.py +46 -0
  359. synaptixs_spine-1.23.0/tests/gateway/test_object_store_tools.py +92 -0
  360. synaptixs_spine-1.23.0/tests/gateway/test_query_warehouse.py +38 -0
  361. synaptixs_spine-1.23.0/tests/gateway/test_rate_limit.py +37 -0
  362. synaptixs_spine-1.23.0/tests/gateway/test_run_python_analysis.py +80 -0
  363. synaptixs_spine-1.23.0/tests/gateway/test_summarize_text.py +77 -0
  364. synaptixs_spine-1.23.0/tests/gateway/test_web_search.py +77 -0
  365. synaptixs_spine-1.23.0/tests/intake/__init__.py +0 -0
  366. synaptixs_spine-1.23.0/tests/intake/test_backlog_doc.py +46 -0
  367. synaptixs_spine-1.23.0/tests/intake/test_cache.py +143 -0
  368. synaptixs_spine-1.23.0/tests/intake/test_confluence.py +241 -0
  369. synaptixs_spine-1.23.0/tests/intake/test_factory.py +104 -0
  370. synaptixs_spine-1.23.0/tests/intake/test_file_source.py +106 -0
  371. synaptixs_spine-1.23.0/tests/intake/test_gaps.py +107 -0
  372. synaptixs_spine-1.23.0/tests/intake/test_intent_split_eval.py +105 -0
  373. synaptixs_spine-1.23.0/tests/intake/test_intents.py +105 -0
  374. synaptixs_spine-1.23.0/tests/intake/test_jira.py +249 -0
  375. synaptixs_spine-1.23.0/tests/intake/test_mcp_source.py +93 -0
  376. synaptixs_spine-1.23.0/tests/intake/test_notion.py +137 -0
  377. synaptixs_spine-1.23.0/tests/intake/test_report.py +149 -0
  378. synaptixs_spine-1.23.0/tests/intake/test_service.py +242 -0
  379. synaptixs_spine-1.23.0/tests/intake/test_specs.py +127 -0
  380. synaptixs_spine-1.23.0/tests/intake/test_web.py +135 -0
  381. synaptixs_spine-1.23.0/tests/integration/__init__.py +0 -0
  382. synaptixs_spine-1.23.0/tests/integration/conftest.py +53 -0
  383. synaptixs_spine-1.23.0/tests/integration/test_approvals_api.py +388 -0
  384. synaptixs_spine-1.23.0/tests/integration/test_approvals_e2e.py +73 -0
  385. synaptixs_spine-1.23.0/tests/integration/test_calibration.py +59 -0
  386. synaptixs_spine-1.23.0/tests/integration/test_gateway.py +145 -0
  387. synaptixs_spine-1.23.0/tests/integration/test_golden_research.py +181 -0
  388. synaptixs_spine-1.23.0/tests/integration/test_manager_workflow.py +217 -0
  389. synaptixs_spine-1.23.0/tests/integration/test_mcp_onboard.py +48 -0
  390. synaptixs_spine-1.23.0/tests/integration/test_migrations.py +30 -0
  391. synaptixs_spine-1.23.0/tests/integration/test_registry_api.py +131 -0
  392. synaptixs_spine-1.23.0/tests/integration/test_registry_repo.py +140 -0
  393. synaptixs_spine-1.23.0/tests/integration/test_replan_loop.py +292 -0
  394. synaptixs_spine-1.23.0/tests/integration/test_runs_api.py +78 -0
  395. synaptixs_spine-1.23.0/tests/integration/test_runtime_checkpoint.py +71 -0
  396. synaptixs_spine-1.23.0/tests/integration/test_sdlc_workflow_e2e.py +173 -0
  397. synaptixs_spine-1.23.0/tests/integration/test_sequential_workflow.py +190 -0
  398. synaptixs_spine-1.23.0/tests/integration/test_trace_ui.py +179 -0
  399. synaptixs_spine-1.23.0/tests/ir/__init__.py +0 -0
  400. synaptixs_spine-1.23.0/tests/ir/test_graph.py +96 -0
  401. synaptixs_spine-1.23.0/tests/ir/test_validator.py +121 -0
  402. synaptixs_spine-1.23.0/tests/ir/test_validator_manager.py +66 -0
  403. synaptixs_spine-1.23.0/tests/ir/test_validator_sequential.py +63 -0
  404. synaptixs_spine-1.23.0/tests/knowledge/test_consolidate.py +209 -0
  405. synaptixs_spine-1.23.0/tests/knowledge/test_memory_bank.py +146 -0
  406. synaptixs_spine-1.23.0/tests/mcp/__init__.py +0 -0
  407. synaptixs_spine-1.23.0/tests/mcp/test_config.py +58 -0
  408. synaptixs_spine-1.23.0/tests/mcp/test_contract_and_handler.py +140 -0
  409. synaptixs_spine-1.23.0/tests/mcp/test_db.py +73 -0
  410. synaptixs_spine-1.23.0/tests/mcp/test_onboard.py +40 -0
  411. synaptixs_spine-1.23.0/tests/mcp/test_registry.py +84 -0
  412. synaptixs_spine-1.23.0/tests/obs/test_tracing.py +160 -0
  413. synaptixs_spine-1.23.0/tests/orchestrator/notify/__init__.py +0 -0
  414. synaptixs_spine-1.23.0/tests/orchestrator/notify/test_slack.py +268 -0
  415. synaptixs_spine-1.23.0/tests/personas/__init__.py +0 -0
  416. synaptixs_spine-1.23.0/tests/personas/test_auditor.py +102 -0
  417. synaptixs_spine-1.23.0/tests/personas/test_auditor_eval.py +71 -0
  418. synaptixs_spine-1.23.0/tests/personas/test_software_engineer.py +94 -0
  419. synaptixs_spine-1.23.0/tests/pkg/test_default_extractors.py +52 -0
  420. synaptixs_spine-1.23.0/tests/pkg/test_docs.py +142 -0
  421. synaptixs_spine-1.23.0/tests/pkg/test_export.py +101 -0
  422. synaptixs_spine-1.23.0/tests/pkg/test_facts_and_store.py +79 -0
  423. synaptixs_spine-1.23.0/tests/pkg/test_impact.py +65 -0
  424. synaptixs_spine-1.23.0/tests/pkg/test_java_extractor.py +102 -0
  425. synaptixs_spine-1.23.0/tests/pkg/test_persistence.py +138 -0
  426. synaptixs_spine-1.23.0/tests/pkg/test_python_extractor.py +182 -0
  427. synaptixs_spine-1.23.0/tests/pkg/test_retrieval.py +80 -0
  428. synaptixs_spine-1.23.0/tests/pkg/test_schema.py +66 -0
  429. synaptixs_spine-1.23.0/tests/pkg/test_typescript_extractor.py +128 -0
  430. synaptixs_spine-1.23.0/tests/pkg/test_verifier.py +116 -0
  431. synaptixs_spine-1.23.0/tests/planner/__init__.py +0 -0
  432. synaptixs_spine-1.23.0/tests/planner/test_v0_unit.py +143 -0
  433. synaptixs_spine-1.23.0/tests/planner/test_v1_unit.py +306 -0
  434. synaptixs_spine-1.23.0/tests/plugin/__init__.py +0 -0
  435. synaptixs_spine-1.23.0/tests/plugin/test_auth.py +139 -0
  436. synaptixs_spine-1.23.0/tests/plugin/test_server.py +231 -0
  437. synaptixs_spine-1.23.0/tests/registry/__init__.py +0 -0
  438. synaptixs_spine-1.23.0/tests/registry/test_agent_template.py +61 -0
  439. synaptixs_spine-1.23.0/tests/registry/test_api_health.py +53 -0
  440. synaptixs_spine-1.23.0/tests/registry/test_auth.py +85 -0
  441. synaptixs_spine-1.23.0/tests/registry/test_backlog.py +109 -0
  442. synaptixs_spine-1.23.0/tests/registry/test_console_and_runs.py +93 -0
  443. synaptixs_spine-1.23.0/tests/registry/test_db_models.py +68 -0
  444. synaptixs_spine-1.23.0/tests/registry/test_examples_load.py +35 -0
  445. synaptixs_spine-1.23.0/tests/registry/test_inbox.py +45 -0
  446. synaptixs_spine-1.23.0/tests/registry/test_loader.py +20 -0
  447. synaptixs_spine-1.23.0/tests/registry/test_middleware.py +31 -0
  448. synaptixs_spine-1.23.0/tests/registry/test_personas_api.py +58 -0
  449. synaptixs_spine-1.23.0/tests/registry/test_principal.py +98 -0
  450. synaptixs_spine-1.23.0/tests/registry/test_repositories.py +47 -0
  451. synaptixs_spine-1.23.0/tests/registry/test_run_start.py +89 -0
  452. synaptixs_spine-1.23.0/tests/registry/test_stream.py +96 -0
  453. synaptixs_spine-1.23.0/tests/registry/test_tool_contract.py +81 -0
  454. synaptixs_spine-1.23.0/tests/registry/test_validation.py +100 -0
  455. synaptixs_spine-1.23.0/tests/registry/test_web.py +108 -0
  456. synaptixs_spine-1.23.0/tests/runtime/__init__.py +0 -0
  457. synaptixs_spine-1.23.0/tests/runtime/test_agent_node.py +191 -0
  458. synaptixs_spine-1.23.0/tests/runtime/test_artifacts.py +27 -0
  459. synaptixs_spine-1.23.0/tests/runtime/test_chain_node_replan.py +127 -0
  460. synaptixs_spine-1.23.0/tests/runtime/test_chain_regression.py +240 -0
  461. synaptixs_spine-1.23.0/tests/runtime/test_checkpointer.py +61 -0
  462. synaptixs_spine-1.23.0/tests/runtime/test_failure_dispatch.py +103 -0
  463. synaptixs_spine-1.23.0/tests/runtime/test_graphs.py +61 -0
  464. synaptixs_spine-1.23.0/tests/runtime/test_manager_graph.py +237 -0
  465. synaptixs_spine-1.23.0/tests/runtime/test_post_conditions.py +106 -0
  466. synaptixs_spine-1.23.0/tests/runtime/test_sequential_graph.py +135 -0
  467. synaptixs_spine-1.23.0/tests/runtime/test_specialist_models.py +86 -0
  468. synaptixs_spine-1.23.0/tests/runtime/test_verifier.py +96 -0
  469. synaptixs_spine-1.23.0/tests/runtime/test_verifier_chain.py +138 -0
  470. synaptixs_spine-1.23.0/tests/runtime/test_verifier_confidence.py +74 -0
  471. synaptixs_spine-1.23.0/tests/runtime/test_verifier_evidence.py +185 -0
  472. synaptixs_spine-1.23.0/tests/runtime/test_verifier_glossary.py +94 -0
  473. synaptixs_spine-1.23.0/tests/runtime/test_verifier_policy.py +179 -0
  474. synaptixs_spine-1.23.0/tests/runtime/test_verifiers_base.py +51 -0
  475. synaptixs_spine-1.23.0/tests/sdlc/__init__.py +0 -0
  476. synaptixs_spine-1.23.0/tests/sdlc/test_activities.py +440 -0
  477. synaptixs_spine-1.23.0/tests/sdlc/test_ci.py +116 -0
  478. synaptixs_spine-1.23.0/tests/sdlc/test_codegen.py +808 -0
  479. synaptixs_spine-1.23.0/tests/sdlc/test_codegen_agentic.py +184 -0
  480. synaptixs_spine-1.23.0/tests/sdlc/test_codegen_memory.py +111 -0
  481. synaptixs_spine-1.23.0/tests/sdlc/test_consolidate_activity.py +106 -0
  482. synaptixs_spine-1.23.0/tests/sdlc/test_conventions.py +89 -0
  483. synaptixs_spine-1.23.0/tests/sdlc/test_escalation.py +110 -0
  484. synaptixs_spine-1.23.0/tests/sdlc/test_feature_runner.py +306 -0
  485. synaptixs_spine-1.23.0/tests/sdlc/test_forge.py +113 -0
  486. synaptixs_spine-1.23.0/tests/sdlc/test_gitauth.py +102 -0
  487. synaptixs_spine-1.23.0/tests/sdlc/test_grounding.py +208 -0
  488. synaptixs_spine-1.23.0/tests/sdlc/test_java_integration.py +63 -0
  489. synaptixs_spine-1.23.0/tests/sdlc/test_layout.py +177 -0
  490. synaptixs_spine-1.23.0/tests/sdlc/test_merge.py +94 -0
  491. synaptixs_spine-1.23.0/tests/sdlc/test_preflight.py +33 -0
  492. synaptixs_spine-1.23.0/tests/sdlc/test_review.py +141 -0
  493. synaptixs_spine-1.23.0/tests/sdlc/test_review_response.py +143 -0
  494. synaptixs_spine-1.23.0/tests/sdlc/test_run_control.py +25 -0
  495. synaptixs_spine-1.23.0/tests/sdlc/test_scaffold.py +112 -0
  496. synaptixs_spine-1.23.0/tests/sdlc/test_testenv.py +293 -0
  497. synaptixs_spine-1.23.0/tests/sdlc/test_testrunner.py +55 -0
  498. synaptixs_spine-1.23.0/tests/sdlc/test_typescript_integration.py +56 -0
  499. synaptixs_spine-1.23.0/tests/sdlc/test_workflows.py +771 -0
  500. synaptixs_spine-1.23.0/tests/sdlc/test_workspace.py +163 -0
  501. synaptixs_spine-1.23.0/tests/spine/test_benchmark.py +41 -0
  502. synaptixs_spine-1.23.0/tests/spine/test_drift.py +72 -0
  503. synaptixs_spine-1.23.0/tests/spine/test_entity_key.py +49 -0
  504. synaptixs_spine-1.23.0/tests/spine/test_execute.py +94 -0
  505. synaptixs_spine-1.23.0/tests/spine/test_grounder.py +108 -0
  506. synaptixs_spine-1.23.0/tests/spine/test_lineage.py +117 -0
  507. synaptixs_spine-1.23.0/tests/spine/test_mapper.py +76 -0
  508. synaptixs_spine-1.23.0/tests/spine/test_ontomesh_client.py +65 -0
  509. synaptixs_spine-1.23.0/tests/spine/test_remediation.py +98 -0
  510. synaptixs_spine-1.23.0/tests/spine/test_shipment.py +128 -0
  511. synaptixs_spine-1.23.0/tests/spine/test_store.py +49 -0
  512. synaptixs_spine-1.23.0/tests/spine/test_wiring.py +57 -0
  513. synaptixs_spine-1.23.0/tests/temporal/__init__.py +0 -0
  514. synaptixs_spine-1.23.0/tests/temporal/test_activities.py +127 -0
  515. synaptixs_spine-1.23.0/tests/temporal/test_config.py +42 -0
  516. synaptixs_spine-1.23.0/tests/temporal/test_worker_restart.py +141 -0
  517. synaptixs_spine-1.23.0/tests/temporal/test_workflow.py +372 -0
  518. synaptixs_spine-1.23.0/tests/test_cli.py +173 -0
  519. synaptixs_spine-1.23.0/tests/test_doctor.py +318 -0
  520. synaptixs_spine-1.23.0/tests/test_env_example.py +41 -0
  521. synaptixs_spine-1.23.0/tests/test_init_scaffold.py +93 -0
  522. synaptixs_spine-1.23.0/tests/test_stats.py +322 -0
  523. synaptixs_spine-1.23.0/tests/tui/__init__.py +0 -0
  524. synaptixs_spine-1.23.0/tests/tui/test_app.py +65 -0
  525. synaptixs_spine-1.23.0/tests/tui/test_client.py +49 -0
  526. synaptixs_spine-1.23.0/uv.lock +4119 -0
@@ -0,0 +1,122 @@
1
+ # Agent Orchestrator — environment template.
2
+ #
3
+ # cp .env.example .env # then fill in the values you need
4
+ # orchestrator doctor # verify readiness
5
+ #
6
+ # `.env` is gitignored; pydantic-settings + the CLI auto-load it. A real
7
+ # exported shell variable always wins over a value in this file.
8
+ #
9
+ # You do NOT need every variable — fill in the block(s) for what you're doing:
10
+ # • Mode A (local CLI: `ingest`, `sdlc feature`) needs only an LLM provider
11
+ # plus the source you read from (Confluence / Jira / Notion / file).
12
+ # • Mode B (autonomous `sdlc run` + web console) additionally needs the
13
+ # Orchestrator API + database + Temporal blocks.
14
+ # Sections below are tagged [REQUIRED] / [MODE B] / [OPTIONAL] accordingly.
15
+
16
+
17
+ # ============================================================================
18
+ # 1. LLM provider [REQUIRED]
19
+ # ============================================================================
20
+ # At least ONE of these. Set the key for the model family you use.
21
+ ANTHROPIC_API_KEY=sk-ant-...
22
+ # OPENAI_API_KEY=sk-...
23
+ # Ollama (local or cloud) needs no API key — set the endpoint and use an
24
+ # ollama/* model below. Local: http://localhost:11434
25
+ # OLLAMA_API_BASE=http://localhost:11434
26
+
27
+ # Model selection — one model drives everything unless overridden. Set this
28
+ # explicitly: a slow default can time out on large generations.
29
+ # ORCHESTRATOR_INTAKE_MODEL=gpt-4o
30
+ # SDLC_CODEGEN_MODEL=gpt-4o # codegen; inherits INTAKE_MODEL if unset
31
+ # SDLC_REVIEW_MODEL=gpt-4o # PR review; inherits INTAKE_MODEL if unset
32
+
33
+
34
+ # ============================================================================
35
+ # 2. Requirements source — fill in the one(s) you read from
36
+ # ============================================================================
37
+ # `file://` sources (e.g. file://./spec.md) need NO credentials.
38
+
39
+ # --- Confluence (read) -----------------------------------------------------
40
+ CONFLUENCE_BASE_URL=https://yourorg.atlassian.net/wiki
41
+ CONFLUENCE_EMAIL=you@yourorg.com
42
+ CONFLUENCE_API_TOKEN=replace-with-atlassian-api-token
43
+
44
+ # --- Jira (only needed to CREATE issues; dry-run/preview needs none) -------
45
+ JIRA_BASE_URL=https://yourorg.atlassian.net
46
+ JIRA_EMAIL=you@yourorg.com
47
+ JIRA_API_TOKEN=replace-with-atlassian-api-token
48
+ JIRA_PROJECT_KEY=ENG
49
+ JIRA_DRY_RUN=true # false to write real issues
50
+
51
+ # --- Notion (optional source) ----------------------------------------------
52
+ # NOTION_API_TOKEN=secret_...
53
+
54
+
55
+ # ============================================================================
56
+ # 3. Target repo + GitHub auth — for `sdlc feature`/`run` that push & open PRs
57
+ # ============================================================================
58
+ # SDLC_REPO_URL=https://github.com/yourorg/yourrepo.git
59
+ # Simplest auth — a PAT or pre-minted token (either name works):
60
+ # GITHUB_TOKEN=ghp_...
61
+ # GH_TOKEN=ghp_...
62
+ # Or a GitHub App (also powers the PR reviewer webhook):
63
+ # GITHUB_APP_ENABLED=true
64
+ # GITHUB_APP_ID=123456
65
+ # GITHUB_APP_WEBHOOK_SECRET=replace-with-the-app-webhook-secret
66
+ # GITHUB_APP_PRIVATE_KEY_PATH=./github-app.pem # or inline GITHUB_APP_PRIVATE_KEY
67
+ # GITHUB_APP_API_BASE_URL=https://api.github.com # override for GitHub Enterprise
68
+ # SDLC_GITHUB_INSTALLATION_ID=12345678 # pin a specific App installation
69
+
70
+
71
+ # ============================================================================
72
+ # 4. Mode B — autonomous pipeline (REST API + console) [MODE B]
73
+ # ============================================================================
74
+ # The CLI uses these to reach a running orchestrator server (e.g. approvals).
75
+ # ORCHESTRATOR_API_URL=http://localhost:8000
76
+ # ORCHESTRATOR_API_KEY=dev-key # must match the key the server starts with
77
+ # Postgres (defaults to the docker-compose dev DB):
78
+ # ORCHESTRATOR_DATABASE_URL=postgresql+psycopg://orchestrator:orchestrator@localhost:5433/orchestrator
79
+ # Temporal (defaults target the local docker stack):
80
+ # TEMPORAL_HOST=localhost:7233
81
+ # TEMPORAL_NAMESPACE=default
82
+ # TEMPORAL_TASK_QUEUE=orchestrator-tasks
83
+ # SDLC_TASK_QUEUE=sdlc-tasks
84
+ # SDLC_WORKSPACE_ROOT=/tmp/sdlc-workspaces
85
+
86
+
87
+ # ============================================================================
88
+ # 5. Optional — notifications, budget [OPTIONAL]
89
+ # ============================================================================
90
+ # SLACK_WEBHOOK_URL=https://hooks.slack.com/services/... # approval-gate alerts
91
+ # SDLC_RUN_BUDGET_USD=25 # per-run LLM spend cap; 0 disables
92
+
93
+
94
+ # ============================================================================
95
+ # 6. MCP — consume external servers (Atlassian, DBs, …) [OPTIONAL]
96
+ # ============================================================================
97
+ # Point at an mcpServers JSON file; transport is inferred (command=stdio, url=http).
98
+ # ORCHESTRATOR_MCP_CONFIG=./mcp.json
99
+ # Override Confluence-via-MCP tool names if your server differs:
100
+ # MCP_CONFLUENCE_SERVER=confluence
101
+ # MCP_CONFLUENCE_PAGE_TOOL=confluence_get_page
102
+ # MCP_CONFLUENCE_CHILDREN_TOOL=confluence_get_page_children
103
+
104
+
105
+ # ============================================================================
106
+ # 7. Remote MCP plugin server (Phase C: `orchestrator-mcp --http`) [OPTIONAL]
107
+ # ============================================================================
108
+ # Only when serving the orchestrator AS an MCP server over the network (hosted
109
+ # Codex app / claude.ai). The local stdio plugin (`orchestrator-mcp`) needs none.
110
+ # ORCHESTRATOR_MCP_HOST=0.0.0.0
111
+ # ORCHESTRATOR_MCP_PORT=8080
112
+ # ORCHESTRATOR_MCP_PATH=/mcp
113
+ # ORCHESTRATOR_MCP_RESOURCE_URL=https://mcp.yourorg.com # this server's public URL
114
+ # Auth — pick ONE:
115
+ # (a) static shared secret (single-tenant self-host behind TLS):
116
+ # ORCHESTRATOR_MCP_TOKEN=replace-with-a-long-random-secret
117
+ # (b) OAuth 2.0 introspection against your IdP (RFC 7662):
118
+ # ORCHESTRATOR_MCP_ISSUER_URL=https://idp.yourorg.com
119
+ # ORCHESTRATOR_MCP_INTROSPECTION_URL=https://idp.yourorg.com/oauth2/introspect
120
+ # ORCHESTRATOR_MCP_INTROSPECTION_CLIENT_ID=orchestrator-rs
121
+ # ORCHESTRATOR_MCP_INTROSPECTION_CLIENT_SECRET=replace-me
122
+ # ORCHESTRATOR_MCP_REQUIRED_SCOPES=sdlc
@@ -0,0 +1,7 @@
1
+ # Code owners for the public mirror (synaptixs/spine).
2
+ #
3
+ # The "Protect main" ruleset on synaptixs/spine requires a code-owner review on
4
+ # every PR into main. This assigns ownership to the synaptixs maintainer identity,
5
+ # who approves release PRs (develop → main). Kept off the maintainer's personal
6
+ # handle on purpose — the public repo uses the de-linked org identity.
7
+ * @ssmith-synaptixs
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: Bug report
3
+ about: Report a problem with Spine
4
+ title: "[bug] "
5
+ labels: bug
6
+ ---
7
+
8
+ **What happened?**
9
+
10
+ **What did you expect to happen?**
11
+
12
+ **Steps to reproduce**
13
+ 1.
14
+ 2.
15
+
16
+ **Environment**
17
+ - Spine / `synaptixs-spine` version:
18
+ - Python version:
19
+ - OS:
20
+ - Codegen model / provider:
21
+
22
+ **Logs or trace** (please redact any secrets)
@@ -0,0 +1,5 @@
1
+ blank_issues_enabled: true
2
+ contact_links:
3
+ - name: Questions & Discussions
4
+ url: https://github.com/synaptixs/spine/discussions
5
+ about: Ask questions, share ideas, and discuss usage here.
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea or improvement for Spine
4
+ title: "[feat] "
5
+ labels: enhancement
6
+ ---
7
+
8
+ **Problem / motivation**
9
+ What are you trying to do that's hard or impossible today?
10
+
11
+ **Proposed solution**
12
+
13
+ **Alternatives considered**
14
+
15
+ **Additional context**
@@ -0,0 +1,13 @@
1
+ ## What & why
2
+
3
+ <!-- What does this change do, and why? Link any related issue. -->
4
+
5
+ ## How it was tested
6
+
7
+ <!-- Commands run, scenarios covered. -->
8
+
9
+ ## Checklist
10
+ - [ ] Quality gate green locally (`mypy src tests`, `ruff format --check .`)
11
+ - [ ] Tests added/updated where it matters
12
+ - [ ] No secrets committed
13
+ - [ ] Docs updated if behavior changed
@@ -0,0 +1,16 @@
1
+ # Categorizes GitHub's auto-generated release notes (grouped by PR label).
2
+ changelog:
3
+ exclude:
4
+ labels:
5
+ - ignore-for-release
6
+ categories:
7
+ - title: ✨ Features
8
+ labels: [feature, enhancement]
9
+ - title: 🐛 Fixes
10
+ labels: [bug, fix]
11
+ - title: 📚 Docs
12
+ labels: [documentation, docs]
13
+ - title: 🔧 Maintenance
14
+ labels: [chore, ci, dependencies]
15
+ - title: Other changes
16
+ labels: ["*"]
@@ -0,0 +1,51 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, develop]
6
+ pull_request:
7
+ branches: [main, develop]
8
+
9
+ jobs:
10
+ check:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v5
14
+
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v6
17
+ with:
18
+ enable-cache: true
19
+
20
+ - name: Set up Python
21
+ run: uv python install 3.12
22
+
23
+ # JDK for the Java-codegen integration tests (Maven is pre-installed on the
24
+ # runner). The tests skip cleanly when the toolchain is absent.
25
+ - name: Set up JDK
26
+ uses: actions/setup-java@v4
27
+ with:
28
+ distribution: temurin
29
+ java-version: "17"
30
+
31
+ # Node for the TypeScript-codegen integration tests (npm comes with Node).
32
+ # The tests skip cleanly when the toolchain is absent.
33
+ - name: Set up Node
34
+ uses: actions/setup-node@v4
35
+ with:
36
+ node-version: "20"
37
+
38
+ - name: Install project
39
+ run: uv sync --extra dev
40
+
41
+ - name: Lint (ruff)
42
+ run: uv run ruff check .
43
+
44
+ - name: Format check (ruff)
45
+ run: uv run ruff format --check .
46
+
47
+ - name: Type check (mypy)
48
+ run: uv run mypy
49
+
50
+ - name: Tests
51
+ run: uv run pytest
@@ -0,0 +1,40 @@
1
+ name: Publish to PyPI
2
+
3
+ # Manual, intentional publish to PRODUCTION PyPI via OIDC Trusted Publishing — no
4
+ # stored token. One-time setup on PyPI (https://pypi.org): register a trusted
5
+ # publisher for the `synaptixs-spine` project:
6
+ # Owner: synaptixs Repository: spine
7
+ # Workflow: publish-pypi.yml Environment: pypi
8
+ # PyPI supports a "pending publisher", so register it BEFORE the first upload —
9
+ # the first publish then creates the project. Bump `version` in pyproject.toml each
10
+ # release (PyPI is immutable; a duplicate version is rejected).
11
+ on:
12
+ workflow_dispatch:
13
+
14
+ jobs:
15
+ publish-pypi:
16
+ runs-on: ubuntu-latest
17
+ environment: pypi
18
+ permissions:
19
+ contents: read # an explicit permissions block drops the defaults; checkout needs this
20
+ id-token: write # required for OIDC trusted publishing
21
+ steps:
22
+ - uses: actions/checkout@v5
23
+
24
+ - name: Install uv
25
+ uses: astral-sh/setup-uv@v6
26
+ with:
27
+ enable-cache: true
28
+
29
+ - name: Set up Python
30
+ run: uv python install 3.12
31
+
32
+ - name: Build sdist + wheel
33
+ run: uv build
34
+
35
+ - name: Check metadata
36
+ run: uvx twine check dist/*
37
+
38
+ - name: Publish to PyPI
39
+ uses: pypa/gh-action-pypi-publish@release/v1
40
+ # No repository-url → defaults to production PyPI (upload.pypi.org).
@@ -0,0 +1,119 @@
1
+ name: Publish to TestPyPI
2
+
3
+ # Manual, intentional publish to the TestPyPI sandbox. Build with the same uv
4
+ # toolchain as CI, then upload the sdist + wheel.
5
+ #
6
+ # Auth uses PyPI **Trusted Publishing** (OIDC) — no API token stored in GitHub.
7
+ # One-time setup on TestPyPI (https://test.pypi.org → the project, or "pending
8
+ # publisher" before the first upload) — register THIS repository as a trusted
9
+ # publisher for the `synaptixs-spine` project:
10
+ # Owner: <this repo's owner> (e.g. synaptixs)
11
+ # Repository: <this repo's name> (e.g. spine)
12
+ # Workflow: publish-testpypi.yml
13
+ # Environment: testpypi
14
+ # A project may have several trusted publishers, but to avoid version races pick
15
+ # ONE repo as the release source. To use an API token instead, delete the
16
+ # `permissions`/`environment` blocks and set
17
+ # `password: ${{ secrets.TEST_PYPI_API_TOKEN }}` on the publish step.
18
+
19
+ on:
20
+ workflow_dispatch:
21
+
22
+ jobs:
23
+ publish-testpypi:
24
+ runs-on: ubuntu-latest
25
+ environment: testpypi
26
+ permissions:
27
+ contents: read # an explicit permissions block drops the defaults; checkout needs this
28
+ id-token: write # required for OIDC trusted publishing
29
+ steps:
30
+ - uses: actions/checkout@v5
31
+
32
+ - name: Install uv
33
+ uses: astral-sh/setup-uv@v6
34
+ with:
35
+ enable-cache: true
36
+
37
+ - name: Set up Python
38
+ run: uv python install 3.12
39
+
40
+ - name: Build sdist + wheel
41
+ run: uv build
42
+
43
+ - name: Check metadata
44
+ run: uvx twine check dist/*
45
+
46
+ - name: Publish to TestPyPI
47
+ uses: pypa/gh-action-pypi-publish@release/v1
48
+ with:
49
+ repository-url: https://test.pypi.org/legacy/
50
+ # Don't hard-fail when a version was already uploaded (TestPyPI is
51
+ # immutable per version — bump `version` in pyproject.toml to release).
52
+ skip-existing: true
53
+
54
+ # Tell testers a new build is up. Runs only after a successful publish.
55
+ # Best-effort: a webhook hiccup must not fail the release.
56
+ #
57
+ # Setup (one-time): in the target Teams channel → ··· → Workflows →
58
+ # template "Post to a channel when a webhook request is received". Copy the
59
+ # generated URL into a GitHub Actions secret named TEAMS_WEBHOOK_URL
60
+ # (repo → Settings → Secrets and variables → Actions). Until that secret
61
+ # exists the step no-ops (it does not fail). The payload is an Adaptive
62
+ # Card wrapped in the message/attachments envelope the Workflows webhook
63
+ # expects (the modern replacement for the retired O365 connectors).
64
+ - name: Notify Teams (testers) of the new build
65
+ env:
66
+ TEAMS_WEBHOOK_URL: ${{ secrets.TEAMS_WEBHOOK_URL }}
67
+ RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
68
+ run: |
69
+ set -euo pipefail
70
+ if [ -z "${TEAMS_WEBHOOK_URL}" ]; then
71
+ echo "TEAMS_WEBHOOK_URL not set — skipping Teams notification."
72
+ exit 0
73
+ fi
74
+ VERSION=$(python -c "import tomllib,pathlib; print(tomllib.loads(pathlib.Path('pyproject.toml').read_text())['project']['version'])")
75
+ INSTALL="pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ \"synaptixs-spine==${VERSION}\""
76
+ PAYLOAD=$(jq -n \
77
+ --arg title "🚀 synaptixs-spine ${VERSION} published to TestPyPI" \
78
+ --arg subtitle "A new build is ready for testing." \
79
+ --arg version "${VERSION}" \
80
+ --arg commit "${GITHUB_SHA:0:7}" \
81
+ --arg branch "${GITHUB_REF_NAME}" \
82
+ --arg install "${INSTALL}" \
83
+ --arg pypi_url "https://test.pypi.org/project/synaptixs-spine/${VERSION}/" \
84
+ --arg run_url "${RUN_URL}" \
85
+ '{
86
+ type: "message",
87
+ attachments: [{
88
+ contentType: "application/vnd.microsoft.card.adaptive",
89
+ content: {
90
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
91
+ type: "AdaptiveCard",
92
+ version: "1.4",
93
+ body: [
94
+ {type:"TextBlock", size:"Large", weight:"Bolder", text:$title, wrap:true},
95
+ {type:"TextBlock", text:$subtitle, wrap:true, spacing:"None"},
96
+ {type:"FactSet", facts:[
97
+ {title:"Version", value:$version},
98
+ {title:"Branch", value:$branch},
99
+ {title:"Commit", value:$commit}
100
+ ]},
101
+ {type:"TextBlock", text:"Install:", weight:"Bolder", spacing:"Medium"},
102
+ {type:"TextBlock", text:$install, wrap:true, fontType:"Monospace"}
103
+ ],
104
+ actions: [
105
+ {type:"Action.OpenUrl", title:"View on TestPyPI", url:$pypi_url},
106
+ {type:"Action.OpenUrl", title:"Workflow run", url:$run_url}
107
+ ]
108
+ }
109
+ }]
110
+ }')
111
+ code=$(curl -sS -o /tmp/teams_resp.txt -w "%{http_code}" \
112
+ -H "Content-Type: application/json" \
113
+ -d "${PAYLOAD}" "${TEAMS_WEBHOOK_URL}") || true
114
+ echo "Teams webhook HTTP ${code}"
115
+ # Workflows returns 200/202 on accept; warn (don't fail) on anything else.
116
+ case "${code}" in
117
+ 200|202) echo "Teams notified." ;;
118
+ *) echo "::warning::Teams notification failed (HTTP ${code}): $(cat /tmp/teams_resp.txt)" ;;
119
+ esac
@@ -0,0 +1,45 @@
1
+ name: Release notes
2
+
3
+ # On every release to main (a develop -> main merge), publish a GitHub Release for
4
+ # the current version with auto-generated notes. Idempotent: if a release for the
5
+ # version tag already exists, it does nothing. Notes are categorized by .github/release.yml.
6
+ on:
7
+ push:
8
+ branches: [main]
9
+ workflow_dispatch:
10
+
11
+ permissions:
12
+ contents: write # create the tag + release
13
+
14
+ jobs:
15
+ release:
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - uses: actions/checkout@v5
19
+ with:
20
+ fetch-depth: 0 # full history so release notes can diff against the prior tag
21
+
22
+ - name: Read version from pyproject.toml
23
+ id: ver
24
+ run: |
25
+ set -euo pipefail
26
+ v="$(python -c "import tomllib,pathlib; print(tomllib.loads(pathlib.Path('pyproject.toml').read_text())['project']['version'])")"
27
+ echo "version=$v" >> "$GITHUB_OUTPUT"
28
+ echo "Detected version: $v"
29
+
30
+ - name: Create release if the tag doesn't exist yet
31
+ env:
32
+ GH_TOKEN: ${{ github.token }}
33
+ VERSION: ${{ steps.ver.outputs.version }}
34
+ run: |
35
+ set -euo pipefail
36
+ tag="v${VERSION}"
37
+ if gh release view "$tag" >/dev/null 2>&1; then
38
+ echo "Release $tag already exists — nothing to do."
39
+ exit 0
40
+ fi
41
+ echo "Creating release $tag with auto-generated notes."
42
+ gh release create "$tag" \
43
+ --target "${GITHUB_SHA}" \
44
+ --title "Spine $tag" \
45
+ --generate-notes
@@ -0,0 +1,38 @@
1
+ name: Security scan
2
+
3
+ # Produces the "security scan" status check that the synaptixs/spine "Protect main"
4
+ # ruleset requires on PRs into main. The job NAME must stay exactly "security scan"
5
+ # — the ruleset matches the required check by that context name. Runs on PRs into
6
+ # main (and on demand); a clean tree passes, committed secrets fail it.
7
+ on:
8
+ pull_request:
9
+ branches: [main]
10
+ workflow_dispatch:
11
+
12
+ permissions:
13
+ contents: read
14
+
15
+ jobs:
16
+ scan:
17
+ name: security scan
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v5
21
+
22
+ - name: Scan for committed secrets
23
+ run: |
24
+ set -euo pipefail
25
+ # High-signal credential/key patterns. Fail the check if any are committed.
26
+ patterns='AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|xox[baprs]-[0-9A-Za-z-]{10,}|-----BEGIN [A-Z ]*PRIVATE KEY-----'
27
+ # Allowlist (not real secrets):
28
+ # - this workflow defines the patterns themselves
29
+ # - tests/ and scripts/ hold dummy fixtures for the codereview secret-detector
30
+ # - AKIAIOSFODNN7EXAMPLE is AWS's canonical documentation example key
31
+ matches="$(git grep -nIE "$patterns" -- . ':!.github/workflows' ':!tests' ':!scripts' || true)"
32
+ real="$(printf '%s\n' "$matches" | grep -vE 'AKIAIOSFODNN7EXAMPLE' | grep -v '^$' || true)"
33
+ if [ -n "$real" ]; then
34
+ printf '%s\n' "$real"
35
+ echo "::error::Potential committed secret detected — see matches above."
36
+ exit 1
37
+ fi
38
+ echo "No committed secrets detected."
@@ -0,0 +1,33 @@
1
+ /docs/*
2
+ !/docs/specs/
3
+ !/docs/evals/
4
+
5
+ # Python
6
+ __pycache__/
7
+ *.py[cod]
8
+ *.egg-info/
9
+ .venv/
10
+ .pytest_cache/
11
+ .mypy_cache/
12
+ .ruff_cache/
13
+ htmlcov/
14
+ .coverage
15
+ dist/
16
+ build/
17
+
18
+ # Editors / OS
19
+ .DS_Store
20
+ .idea/
21
+ .vscode/
22
+
23
+ # Local smoke-test artefacts
24
+ .smoke-api.log
25
+
26
+ # Claude Code session lockfiles
27
+ .claude/
28
+
29
+ # Secrets / local credentials (live integration testing)
30
+ .env
31
+ .env.*
32
+ !.env.example
33
+ *.pem
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "orchestrator": {
4
+ "command": "orchestrator-mcp",
5
+ "args": []
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,23 @@
1
+ repos:
2
+ - repo: https://github.com/astral-sh/ruff-pre-commit
3
+ rev: v0.6.9
4
+ hooks:
5
+ - id: ruff
6
+ args: [--fix]
7
+ - id: ruff-format
8
+
9
+ - repo: https://github.com/pre-commit/mirrors-mypy
10
+ rev: v1.11.2
11
+ hooks:
12
+ - id: mypy
13
+ additional_dependencies: [pydantic>=2.7]
14
+ args: [--strict]
15
+ files: ^(src|tests)/
16
+
17
+ - repo: https://github.com/pre-commit/pre-commit-hooks
18
+ rev: v5.0.0
19
+ hooks:
20
+ - id: trailing-whitespace
21
+ - id: end-of-file-fixer
22
+ - id: check-yaml
23
+ - id: check-merge-conflict
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,43 @@
1
+ # Code of Conduct
2
+
3
+ This project adopts the [Contributor Covenant, v2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) as its Code of Conduct.
4
+
5
+ The full text is available at the link above. A short summary:
6
+
7
+ ## Our pledge
8
+
9
+ We pledge to make participation in our community a respectful and welcoming experience for everyone, regardless of background, identity, or experience level.
10
+
11
+ ## Expected behavior
12
+
13
+ - Be respectful in discussions, code reviews, and issues.
14
+ - Assume good faith. Ask questions before assuming intent.
15
+ - Give and accept constructive feedback gracefully.
16
+ - Focus on what is best for the project and the community.
17
+
18
+ ## Unacceptable behavior
19
+
20
+ - Personal attacks, insults, or derogatory comments.
21
+ - Public or private harassment.
22
+ - Publishing others' private information without explicit permission.
23
+ - Other conduct which could reasonably be considered inappropriate in a professional setting.
24
+
25
+ ## Scope
26
+
27
+ This Code of Conduct applies to all project spaces — GitHub issues and pull requests, discussion forums, chat channels, and any in-person or virtual events associated with the project.
28
+
29
+ ## Reporting
30
+
31
+ If you experience or witness behavior that violates this Code of Conduct, please report it by emailing the maintainers. Reports will be reviewed and investigated promptly and confidentially.
32
+
33
+ **Contact:** Open a private issue or email the repository maintainer listed in the GitHub org settings. (Replace with a dedicated address once the project has one.)
34
+
35
+ ## Enforcement
36
+
37
+ Maintainers are responsible for clarifying and enforcing standards of acceptable behavior. They may take any action they deem appropriate in response to violations, including warnings, temporary bans, or permanent removal from the project.
38
+
39
+ The full enforcement guidelines from the Contributor Covenant v2.1 apply.
40
+
41
+ ## Attribution
42
+
43
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct/.