koyote 1.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. koyote-1.1.0/.dockerignore +10 -0
  2. koyote-1.1.0/.github/workflows/publish.yml +48 -0
  3. koyote-1.1.0/.gitignore +40 -0
  4. koyote-1.1.0/CHANGELOG.md +156 -0
  5. koyote-1.1.0/CLA.md +25 -0
  6. koyote-1.1.0/CODE_OF_CONDUCT.md +17 -0
  7. koyote-1.1.0/CONTRIBUTING.md +25 -0
  8. koyote-1.1.0/Cargo.lock +410 -0
  9. koyote-1.1.0/Cargo.toml +40 -0
  10. koyote-1.1.0/GATES.md +142 -0
  11. koyote-1.1.0/LICENSE +201 -0
  12. koyote-1.1.0/Makefile +14 -0
  13. koyote-1.1.0/NOTICE +12 -0
  14. koyote-1.1.0/PKG-INFO +289 -0
  15. koyote-1.1.0/README.md +261 -0
  16. koyote-1.1.0/SECURITY.md +11 -0
  17. koyote-1.1.0/SPEC.md +129 -0
  18. koyote-1.1.0/docker/Dockerfile.app +32 -0
  19. koyote-1.1.0/docs/AGENT_EXECUTION.md +71 -0
  20. koyote-1.1.0/docs/AGENT_SESSION.md +61 -0
  21. koyote-1.1.0/docs/API_REFERENCE.md +124 -0
  22. koyote-1.1.0/docs/ARCHITECTURE.md +89 -0
  23. koyote-1.1.0/docs/CI_INTEGRATION.md +70 -0
  24. koyote-1.1.0/docs/CLI.md +348 -0
  25. koyote-1.1.0/docs/COMPRESSION.md +38 -0
  26. koyote-1.1.0/docs/CREDENTIAL_PROXY.md +66 -0
  27. koyote-1.1.0/docs/DEPLOY.md +68 -0
  28. koyote-1.1.0/docs/FRAMEWORK_HOOKS.md +102 -0
  29. koyote-1.1.0/docs/GITHUB_APP.md +65 -0
  30. koyote-1.1.0/docs/QUICKSTART.md +104 -0
  31. koyote-1.1.0/docs/SNAPSHOTS.md +62 -0
  32. koyote-1.1.0/docs/SYSTEM_MAP.md +107 -0
  33. koyote-1.1.0/docs/TYPESCRIPT_SDK.md +78 -0
  34. koyote-1.1.0/docs/USE_CASES.md +239 -0
  35. koyote-1.1.0/docs/VALIDATION_GUIDE.md +72 -0
  36. koyote-1.1.0/docs/WORKSPACE_ACTIVATION.md +81 -0
  37. koyote-1.1.0/docs/WORKSPACE_LANES.md +101 -0
  38. koyote-1.1.0/pyproject.toml +48 -0
  39. koyote-1.1.0/python/koyote/__init__.py +38 -0
  40. koyote-1.1.0/python/koyote/_exec_shim.py +13 -0
  41. koyote-1.1.0/python/koyote/ai_planner.py +399 -0
  42. koyote-1.1.0/python/koyote/audit.py +217 -0
  43. koyote-1.1.0/python/koyote/autopatch.py +120 -0
  44. koyote-1.1.0/python/koyote/change_source.py +88 -0
  45. koyote-1.1.0/python/koyote/ci/__init__.py +9 -0
  46. koyote-1.1.0/python/koyote/ci/runner.py +124 -0
  47. koyote-1.1.0/python/koyote/cli/__init__.py +1 -0
  48. koyote-1.1.0/python/koyote/cli/main.py +2812 -0
  49. koyote-1.1.0/python/koyote/compartments/__init__.py +12 -0
  50. koyote-1.1.0/python/koyote/compartments/base.py +74 -0
  51. koyote-1.1.0/python/koyote/compartments/runtime.py +201 -0
  52. koyote-1.1.0/python/koyote/config.py +341 -0
  53. koyote-1.1.0/python/koyote/credentials.py +143 -0
  54. koyote-1.1.0/python/koyote/drift.py +174 -0
  55. koyote-1.1.0/python/koyote/engine/__init__.py +1 -0
  56. koyote-1.1.0/python/koyote/engine/events.py +36 -0
  57. koyote-1.1.0/python/koyote/engine/execution.py +223 -0
  58. koyote-1.1.0/python/koyote/engine/integration.py +147 -0
  59. koyote-1.1.0/python/koyote/engine/lane.py +122 -0
  60. koyote-1.1.0/python/koyote/engine/pty_supervisor.py +108 -0
  61. koyote-1.1.0/python/koyote/engine/session.py +295 -0
  62. koyote-1.1.0/python/koyote/engine/tracer.py +117 -0
  63. koyote-1.1.0/python/koyote/formatters.py +24 -0
  64. koyote-1.1.0/python/koyote/git_ops.py +62 -0
  65. koyote-1.1.0/python/koyote/github/__init__.py +31 -0
  66. koyote-1.1.0/python/koyote/github/client.py +329 -0
  67. koyote-1.1.0/python/koyote/github/installations.py +93 -0
  68. koyote-1.1.0/python/koyote/github/pr_bot.py +509 -0
  69. koyote-1.1.0/python/koyote/github/pr_render.py +195 -0
  70. koyote-1.1.0/python/koyote/github/provisioning.py +131 -0
  71. koyote-1.1.0/python/koyote/github/trust_pr.py +183 -0
  72. koyote-1.1.0/python/koyote/github/watch.py +98 -0
  73. koyote-1.1.0/python/koyote/github/webhook_server.py +133 -0
  74. koyote-1.1.0/python/koyote/graph.py +35 -0
  75. koyote-1.1.0/python/koyote/hooks/__init__.py +53 -0
  76. koyote-1.1.0/python/koyote/hooks/autogen.py +191 -0
  77. koyote-1.1.0/python/koyote/hooks/base.py +381 -0
  78. koyote-1.1.0/python/koyote/hooks/crewai.py +216 -0
  79. koyote-1.1.0/python/koyote/hooks/data_agent.py +232 -0
  80. koyote-1.1.0/python/koyote/hooks/langchain.py +314 -0
  81. koyote-1.1.0/python/koyote/intelligence.py +107 -0
  82. koyote-1.1.0/python/koyote/knowledge.py +320 -0
  83. koyote-1.1.0/python/koyote/koyote.py +265 -0
  84. koyote-1.1.0/python/koyote/llm.py +208 -0
  85. koyote-1.1.0/python/koyote/maintenance.py +387 -0
  86. koyote-1.1.0/python/koyote/maintenance_agents.py +46 -0
  87. koyote-1.1.0/python/koyote/mcp_server.py +269 -0
  88. koyote-1.1.0/python/koyote/patch_writer.py +191 -0
  89. koyote-1.1.0/python/koyote/pipeline.py +928 -0
  90. koyote-1.1.0/python/koyote/providers/__init__.py +10 -0
  91. koyote-1.1.0/python/koyote/providers/registry.py +354 -0
  92. koyote-1.1.0/python/koyote/sandbox/__init__.py +1 -0
  93. koyote-1.1.0/python/koyote/sandbox/box.py +234 -0
  94. koyote-1.1.0/python/koyote/sandbox/compression.py +67 -0
  95. koyote-1.1.0/python/koyote/sandbox/enforcer.py +211 -0
  96. koyote-1.1.0/python/koyote/sandbox/proxy.py +230 -0
  97. koyote-1.1.0/python/koyote/sandbox/snapshot.py +134 -0
  98. koyote-1.1.0/python/koyote/sandbox/task_profile.py +17 -0
  99. koyote-1.1.0/python/koyote/test_runner.py +87 -0
  100. koyote-1.1.0/scripts/run_all_tests.py +132 -0
  101. koyote-1.1.0/sdk/README.md +73 -0
  102. koyote-1.1.0/sdk/typescript/LICENSE +26 -0
  103. koyote-1.1.0/sdk/typescript/index.d.ts +17 -0
  104. koyote-1.1.0/sdk/typescript/index.js +326 -0
  105. koyote-1.1.0/sdk/typescript/package-lock.json +46 -0
  106. koyote-1.1.0/sdk/typescript/package.json +59 -0
  107. koyote-1.1.0/sdk/typescript/test/smoke.mjs +84 -0
  108. koyote-1.1.0/src/engines/ast/locator.rs +572 -0
  109. koyote-1.1.0/src/engines/ast/mod.rs +8 -0
  110. koyote-1.1.0/src/engines/ast/types.rs +73 -0
  111. koyote-1.1.0/src/engines/autopatch/contracts.rs +370 -0
  112. koyote-1.1.0/src/engines/autopatch/evidence.rs +411 -0
  113. koyote-1.1.0/src/engines/autopatch/inventory.rs +327 -0
  114. koyote-1.1.0/src/engines/autopatch/manifest_lockfile.rs +410 -0
  115. koyote-1.1.0/src/engines/autopatch/mod.rs +31 -0
  116. koyote-1.1.0/src/engines/autopatch/patcher.rs +518 -0
  117. koyote-1.1.0/src/engines/autopatch/planner.rs +505 -0
  118. koyote-1.1.0/src/engines/autopatch/policy.rs +142 -0
  119. koyote-1.1.0/src/engines/autopatch/report.rs +452 -0
  120. koyote-1.1.0/src/engines/autopatch/resolver.rs +675 -0
  121. koyote-1.1.0/src/engines/autopatch/types.rs +191 -0
  122. koyote-1.1.0/src/engines/autopatch/workflow.rs +295 -0
  123. koyote-1.1.0/src/engines/compression/adaptive_sizer.rs +415 -0
  124. koyote-1.1.0/src/engines/compression/anchor_selector.rs +841 -0
  125. koyote-1.1.0/src/engines/compression/bm25.rs +71 -0
  126. koyote-1.1.0/src/engines/compression/content_detector.rs +545 -0
  127. koyote-1.1.0/src/engines/compression/diff_compressor.rs +1235 -0
  128. koyote-1.1.0/src/engines/compression/log_compressor.rs +1117 -0
  129. koyote-1.1.0/src/engines/compression/mod.rs +82 -0
  130. koyote-1.1.0/src/engines/compression/smart_crusher/analyzer.rs +946 -0
  131. koyote-1.1.0/src/engines/compression/smart_crusher/anchors.rs +260 -0
  132. koyote-1.1.0/src/engines/compression/smart_crusher/classifier.rs +118 -0
  133. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/classifier.rs +239 -0
  134. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/compactor.rs +738 -0
  135. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/formatter.rs +491 -0
  136. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/ir.rs +189 -0
  137. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/mod.rs +44 -0
  138. koyote-1.1.0/src/engines/compression/smart_crusher/compaction/walker.rs +48 -0
  139. koyote-1.1.0/src/engines/compression/smart_crusher/crusher.rs +1318 -0
  140. koyote-1.1.0/src/engines/compression/smart_crusher/crushers.rs +631 -0
  141. koyote-1.1.0/src/engines/compression/smart_crusher/field_detect.rs +294 -0
  142. koyote-1.1.0/src/engines/compression/smart_crusher/mod.rs +249 -0
  143. koyote-1.1.0/src/engines/compression/smart_crusher/orchestration.rs +337 -0
  144. koyote-1.1.0/src/engines/compression/smart_crusher/outliers.rs +341 -0
  145. koyote-1.1.0/src/engines/compression/smart_crusher/planning.rs +759 -0
  146. koyote-1.1.0/src/engines/compression/smart_crusher/statistics.rs +361 -0
  147. koyote-1.1.0/src/engines/compression/smart_crusher/stats_math.rs +214 -0
  148. koyote-1.1.0/src/engines/compression/smart_crusher/types.rs +158 -0
  149. koyote-1.1.0/src/engines/compression/text_crusher/config.rs +24 -0
  150. koyote-1.1.0/src/engines/compression/text_crusher/crusher.rs +266 -0
  151. koyote-1.1.0/src/engines/compression/text_crusher/mod.rs +5 -0
  152. koyote-1.1.0/src/engines/graph/builder.rs +224 -0
  153. koyote-1.1.0/src/engines/graph/mod.rs +6 -0
  154. koyote-1.1.0/src/engines/graph/query.rs +114 -0
  155. koyote-1.1.0/src/engines/graph/types.rs +149 -0
  156. koyote-1.1.0/src/engines/mod.rs +5 -0
  157. koyote-1.1.0/src/engines/schema/diff.rs +484 -0
  158. koyote-1.1.0/src/engines/schema/mod.rs +12 -0
  159. koyote-1.1.0/src/engines/schema/parser.rs +258 -0
  160. koyote-1.1.0/src/engines/schema/types.rs +88 -0
  161. koyote-1.1.0/src/lib.rs +15 -0
  162. koyote-1.1.0/src/py_bindings.rs +177 -0
  163. koyote-1.1.0/src/runtime/ccr/mod.rs +174 -0
  164. koyote-1.1.0/src/runtime/compartments/mod.rs +231 -0
  165. koyote-1.1.0/src/runtime/credential.rs +72 -0
  166. koyote-1.1.0/src/runtime/enforcer.rs +146 -0
  167. koyote-1.1.0/src/runtime/mod.rs +5 -0
  168. koyote-1.1.0/src/runtime/snapshot.rs +250 -0
  169. koyote-1.1.0/src/sandbox/linux.rs +318 -0
  170. koyote-1.1.0/src/sandbox/macos.rs +242 -0
  171. koyote-1.1.0/src/sandbox/mod.rs +77 -0
  172. koyote-1.1.0/tests/koyote/test_koyote_e2e.py +171 -0
  173. koyote-1.1.0/tests/test_ai_planner.py +104 -0
  174. koyote-1.1.0/tests/test_ai_reasoning.py +125 -0
  175. koyote-1.1.0/tests/test_alias_repair.py +85 -0
  176. koyote-1.1.0/tests/test_audit_cli.py +61 -0
  177. koyote-1.1.0/tests/test_audit_regressions.py +167 -0
  178. koyote-1.1.0/tests/test_auth_gating.py +137 -0
  179. koyote-1.1.0/tests/test_autopatch_cli.py +176 -0
  180. koyote-1.1.0/tests/test_autopatch_sdk.py +239 -0
  181. koyote-1.1.0/tests/test_box_lifecycle.py +63 -0
  182. koyote-1.1.0/tests/test_change_commands.py +275 -0
  183. koyote-1.1.0/tests/test_change_source.py +50 -0
  184. koyote-1.1.0/tests/test_ci_integration.py +27 -0
  185. koyote-1.1.0/tests/test_config.py +101 -0
  186. koyote-1.1.0/tests/test_consult.py +190 -0
  187. koyote-1.1.0/tests/test_credential_scoping.py +43 -0
  188. koyote-1.1.0/tests/test_decision.py +64 -0
  189. koyote-1.1.0/tests/test_deep_edge_cases.py +242 -0
  190. koyote-1.1.0/tests/test_dependency_graph.py +43 -0
  191. koyote-1.1.0/tests/test_detect_changes.py +37 -0
  192. koyote-1.1.0/tests/test_doctor.py +76 -0
  193. koyote-1.1.0/tests/test_e2e_full_suite.py +482 -0
  194. koyote-1.1.0/tests/test_exec_compartment.py +265 -0
  195. koyote-1.1.0/tests/test_execution.py +80 -0
  196. koyote-1.1.0/tests/test_git_trailers.py +141 -0
  197. koyote-1.1.0/tests/test_github_integration.py +71 -0
  198. koyote-1.1.0/tests/test_hooks.py +313 -0
  199. koyote-1.1.0/tests/test_hostile_concurrency.py +223 -0
  200. koyote-1.1.0/tests/test_incremental_index.py +58 -0
  201. koyote-1.1.0/tests/test_installations.py +62 -0
  202. koyote-1.1.0/tests/test_knowledge.py +68 -0
  203. koyote-1.1.0/tests/test_lanes_and_integration.py +57 -0
  204. koyote-1.1.0/tests/test_llm_client.py +80 -0
  205. koyote-1.1.0/tests/test_maintenance_agents.py +8 -0
  206. koyote-1.1.0/tests/test_maintenance_loop.py +54 -0
  207. koyote-1.1.0/tests/test_pipeline.py +272 -0
  208. koyote-1.1.0/tests/test_pr_bot.py +283 -0
  209. koyote-1.1.0/tests/test_pr_checkout.py +76 -0
  210. koyote-1.1.0/tests/test_pr_surface.py +84 -0
  211. koyote-1.1.0/tests/test_provider_registry.py +40 -0
  212. koyote-1.1.0/tests/test_provisioning.py +56 -0
  213. koyote-1.1.0/tests/test_proxy.py +132 -0
  214. koyote-1.1.0/tests/test_pty_supervisor.py +59 -0
  215. koyote-1.1.0/tests/test_session.py +56 -0
  216. koyote-1.1.0/tests/test_snapshot.py +304 -0
  217. koyote-1.1.0/tests/test_watch.py +57 -0
  218. koyote-1.1.0/tests/test_workflow_branch_and_step.py +287 -0
  219. koyote-1.1.0/tests/test_workflow_run.py +239 -0
  220. koyote-1.1.0/tests/test_workspace_activation.py +210 -0
  221. koyote-1.1.0/trials/fixtures/calcom_stripe/package.json +7 -0
  222. koyote-1.1.0/trials/fixtures/calcom_stripe/packages/features/ee/billing/stripe.test.ts +8 -0
  223. koyote-1.1.0/trials/fixtures/calcom_stripe/packages/features/ee/billing/stripe.ts +26 -0
  224. koyote-1.1.0/trials/fixtures/calcom_stripe/specs/stripe_v11.json +22 -0
  225. koyote-1.1.0/trials/fixtures/calcom_stripe/specs/stripe_v13.json +22 -0
  226. koyote-1.1.0/trials/fixtures/calcom_stripe/test/run.js +20 -0
  227. koyote-1.1.0/trials/fixtures/calcom_twilio/package.json +6 -0
  228. koyote-1.1.0/trials/fixtures/calcom_twilio/specs/twilio_v1.json +1 -0
  229. koyote-1.1.0/trials/fixtures/calcom_twilio/specs/twilio_v2.json +1 -0
  230. koyote-1.1.0/trials/fixtures/calcom_twilio/src/sms.ts +7 -0
  231. koyote-1.1.0/trials/fixtures/langchainjs_openai/package.json +7 -0
  232. koyote-1.1.0/trials/fixtures/langchainjs_openai/specs/openai_v3.json +22 -0
  233. koyote-1.1.0/trials/fixtures/langchainjs_openai/specs/openai_v4.json +22 -0
  234. koyote-1.1.0/trials/fixtures/langchainjs_openai/src/chat_models/openai.ts +24 -0
  235. koyote-1.1.0/trials/fixtures/langchainjs_openai/src/embeddings/openai.ts +18 -0
  236. koyote-1.1.0/trials/fixtures/langchainjs_openai/test/openai.test.ts +9 -0
  237. koyote-1.1.0/trials/fixtures/langchainjs_openai/test/run.js +20 -0
  238. koyote-1.1.0/trials/fixtures/renovate_octokit/package.json +6 -0
  239. koyote-1.1.0/trials/fixtures/renovate_octokit/specs/octokit_v16.json +1 -0
  240. koyote-1.1.0/trials/fixtures/renovate_octokit/specs/octokit_v17.json +1 -0
  241. koyote-1.1.0/trials/fixtures/renovate_octokit/src/github.ts +5 -0
  242. koyote-1.1.0/trials/fixtures/sentry_hub/package.json +6 -0
  243. koyote-1.1.0/trials/fixtures/sentry_hub/specs/sentry_v7.json +1 -0
  244. koyote-1.1.0/trials/fixtures/sentry_hub/specs/sentry_v8.json +1 -0
  245. koyote-1.1.0/trials/fixtures/sentry_hub/src/monitoring.ts +8 -0
  246. koyote-1.1.0/trials/fixtures/sentry_hub/test/run.js +20 -0
  247. koyote-1.1.0/trials/fixtures/serverless_aws/package.json +6 -0
  248. koyote-1.1.0/trials/fixtures/serverless_aws/specs/aws_v2.json +1 -0
  249. koyote-1.1.0/trials/fixtures/serverless_aws/specs/aws_v3.json +1 -0
  250. koyote-1.1.0/trials/fixtures/serverless_aws/src/storage.ts +7 -0
  251. koyote-1.1.0/trials/fixtures/serverless_aws/test/run.js +20 -0
  252. koyote-1.1.0/trials/fixtures/smol_ai_anthropic/package.json +6 -0
  253. koyote-1.1.0/trials/fixtures/smol_ai_anthropic/specs/anthropic_v1.json +1 -0
  254. koyote-1.1.0/trials/fixtures/smol_ai_anthropic/specs/anthropic_v2.json +1 -0
  255. koyote-1.1.0/trials/fixtures/smol_ai_anthropic/src/prompt.ts +11 -0
  256. koyote-1.1.0/trials/fixtures/supabase_auth/package.json +6 -0
  257. koyote-1.1.0/trials/fixtures/supabase_auth/specs/supabase_v1.json +1 -0
  258. koyote-1.1.0/trials/fixtures/supabase_auth/specs/supabase_v2.json +1 -0
  259. koyote-1.1.0/trials/fixtures/supabase_auth/src/session.ts +7 -0
  260. koyote-1.1.0/trials/fixtures/taxonomy_stripe/package.json +6 -0
  261. koyote-1.1.0/trials/fixtures/taxonomy_stripe/specs/stripe_v21.json +1 -0
  262. koyote-1.1.0/trials/fixtures/taxonomy_stripe/specs/stripe_v22.json +1 -0
  263. koyote-1.1.0/trials/fixtures/taxonomy_stripe/src/billing.ts +10 -0
  264. koyote-1.1.0/trials/fixtures/taxonomy_stripe/test/run.js +20 -0
  265. koyote-1.1.0/trials/fixtures/uploadthing_clerk/package.json +6 -0
  266. koyote-1.1.0/trials/fixtures/uploadthing_clerk/specs/clerk_v4.json +1 -0
  267. koyote-1.1.0/trials/fixtures/uploadthing_clerk/specs/clerk_v5.json +1 -0
  268. koyote-1.1.0/trials/fixtures/uploadthing_clerk/src/middleware.ts +5 -0
  269. koyote-1.1.0/trials/fixtures/uploadthing_clerk/test/run.js +20 -0
@@ -0,0 +1,10 @@
1
+ target/
2
+ .venv/
3
+ __pycache__/
4
+ .pytest_cache/
5
+ logs/
6
+ .koyote/
7
+ .git/
8
+ trials/
9
+ docs/
10
+ sdk/typescript/node_modules/
@@ -0,0 +1,48 @@
1
+ name: publish
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+
7
+ jobs:
8
+ build-wheels:
9
+ strategy:
10
+ matrix:
11
+ os: [ubuntu-latest, macos-latest, windows-latest]
12
+ runs-on: ${{ matrix.os }}
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: PyO3/maturin-action@v1
16
+ with:
17
+ command: build
18
+ args: --release --out dist
19
+ - uses: actions/upload-artifact@v4
20
+ with:
21
+ name: wheels-${{ matrix.os }}
22
+ path: dist
23
+
24
+ sdist:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: PyO3/maturin-action@v1
29
+ with:
30
+ command: sdist
31
+ args: --out dist
32
+ - uses: actions/upload-artifact@v4
33
+ with:
34
+ name: wheels-sdist
35
+ path: dist
36
+
37
+ publish:
38
+ needs: [build-wheels, sdist]
39
+ runs-on: ubuntu-latest
40
+ environment: pypi
41
+ permissions:
42
+ id-token: write
43
+ steps:
44
+ - uses: actions/download-artifact@v4
45
+ with:
46
+ path: dist
47
+ merge-multiple: true
48
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,40 @@
1
+ # Rust build artifacts
2
+ /target/
3
+
4
+ # Python artifacts
5
+ __pycache__/
6
+ *.pyc
7
+ *.pyo
8
+ *.pyd
9
+ *.so
10
+ *.dylib
11
+ *.egg-info/
12
+ dist/
13
+ build/
14
+ .pytest_cache/
15
+ .venv/
16
+
17
+ # Compart transient state
18
+ .compart/
19
+
20
+ # Language SDK artifacts
21
+ sdk/typescript/node_modules/
22
+ sdk/typescript/*.node
23
+ sdk/typescript/native/target/
24
+ sdk/typescript/native/Cargo.lock
25
+ sdk/typescript/*.tgz
26
+ sdk/typescript/sdk-darwin-*/
27
+
28
+ # Bench & transient state
29
+ .DS_Store
30
+ .opencode/
31
+ logs/
32
+ .agents/
33
+ .claude/
34
+ .envrc
35
+
36
+ # Test runs write index state into fixture checkouts; never commit it
37
+ trials/**/.koyote/
38
+ trials/**/.volf/
39
+ trials/**/.sheepdog/
40
+ trials/**/.compart/
@@ -0,0 +1,156 @@
1
+ # Changelog
2
+
3
+ All notable changes to Koyote are documented here.
4
+
5
+ ## [Unreleased]
6
+
7
+ ### Changed
8
+ - **Rename Volf → Koyote across product, code, and docs.** Package `koyote` 1.1.0 (CLI, imports, crate `koyote-core`, `KOYOTE_*` env, `.koyote/` state dirs, MCP tools, `@koyote` trigger, trailers, SDK names). Hard cut with no aliases. KB keeps pinned legacy read paths for `.volf/`, `.sheepdog/`, and `.compart/` trees.
9
+ - **Howl warns, Hunt repairs.** Consult Issues sign as Howl, verified Trust PRs as Hunt — two voices, one reasoning engine.
10
+
11
+ ### Changed
12
+ - **Rename Sheepdog → Volf across product, code, and docs.** Package `volf` 1.1.0 (CLI, imports, crate `volf-core`, `VOLF_*` env, `.volf/` state dirs, MCP tools, `@volf` trigger, trailers, SDK names). Hard cut with no aliases. KB keeps pinned legacy read paths for `.sheepdog/` and `.compart/` trees.
13
+ - **Howl, the hunt voice.** The watch loop and monitoring surface speak as Howl — `Howl hunting` in serve/doctor output. Shepherd advises, Shearer repairs, Howl hunts; one reasoning engine behind all three.
14
+
15
+ ### Added
16
+ - **Alias-aware callsite analysis and repair.** The AST locator resolves proven client bindings (`const s = new Stripe()`, `require('stripe')`, `import stripe as s`) and reports `alias`-tagged callsites. DIRECT rewrites instantiate exact-identifier variants with the receiver preserved — regexes are never loosened, exotic bindings fail closed.
17
+
18
+ ### Added
19
+ - **External-Change Dependency Graph (`volf graph`).** Native Rust graph engine mapping external providers, versions, OpenAPI contracts, manifest dependencies, wrapper clients, and AST callsites.
20
+ - **Day-0 Risk Register (`volf audit`).** Instant audit command scanning codebases for at-risk, deprecated, and auto-repairable external API callsites with ANSI and GitHub Issue markdown exports.
21
+ - **Autonomous Continuous Maintenance (`volf maintain`).** Closed-loop maintenance engine detecting upstream breaking changes, synthesizing surgical AST patches, running local formatters (`prettier`, `ruff`), and opening verified Developer Trust PRs.
22
+ - **Provider Contract Registry (`volf providers`).** Pre-indexed breaking-change contract catalog for Stripe, OpenAI, Anthropic, Clerk, Sentry, Supabase, Twilio, Octokit, and AWS SDK.
23
+ - **Time-Machine Replay Protocol (`volf reproduce`).** Historical benchmark engine evaluating verified ground-truth migrations against real open-source repositories with zero blast radius.
24
+ - **GitHub App & Webhook Server (`volf app`).** Continuous webhook daemon for automated PR drift detection and verification.
25
+ - **Change-source abstraction (`volf.change_source`).** Thin `ChangeSource`/`Detection` types generalizing the pipeline beyond vendor SDKs (OpenAPI, GraphQL, protobuf, webhooks, MCP, internal services as representable, fail-closed kinds).
26
+ - **Invisible decision engine (`VolfIntelligence`).** Internal DIRECT/AI/HYBRID/QUARANTINE routing with confidence, token estimates, and blast-radius metadata. No `--ai`/`--direct` user flags.
27
+ - **Repository knowledge flywheel (`.volf/knowledge/`).** Namespaced verified-pattern cache with legacy fallback reads, failure quarantine, and test-recipe seeding on index.
28
+ - **Incremental indexing (`index_state.json`).** Commit-SHA + mtime tracking; `changed_since_index()` reports freshness and discovery deltas.
29
+ - **Installation persistence (`volf.github.installations`).** Flat-JSON install records with PENDING → INDEXED → READY lifecycle and Day-0 indexing on install events.
30
+ - **Scoped BYOK credentials.** Env → per-installation → global resolution (0600); secrets never enter repo state, logs, or knowledge.
31
+ - **`volf doctor`.** Six-line product readiness: GitHub, AI provider, index, knowledge, test command, monitoring.
32
+ - **Fail-closed webhook serving.** Missing secret is a hard error (`--no-secret` is local-debug only).
33
+ - **Rename Compart → Volf.** Package, CLI, crate, env vars (`VOLF_*`), state dirs (`.volf/`), and docs. Hard cut: no `compart` aliases. KB entries under old `.compart/` trees are still read via legacy fallback; re-run `volf auth` once to recreate credentials.
34
+
35
+ ### Changed
36
+ - **Relicensed Apache-2.0.** The project moves from Elastic License 2.0 to the
37
+ Apache License 2.0. The Volf name and logo remain trademarks of Volf
38
+ Labs (see NOTICE). Contributors are covered by CLA.md.
39
+ - **Agent Provenance Trailers (spec v0.1).** `volf commit` now emits the
40
+ open `Agent-*` trailer names defined in SPEC.md (`Agent-Origin`,
41
+ `Agent-Agent`, `Agent-Execution`, `Agent-Compartment`, `Agent-Sandbox`),
42
+ adding `Agent-Origin` classification and collapsing security detail to the
43
+ spec's `clean`/`blocked` enum so trailers stay grep-queryable. Releases
44
+ prior to 1.1 wrote legacy `Volf-*` names; readers should accept both.
45
+ - **SPEC.md.** Open specification for Agent Provenance Trailers - plain git,
46
+ neutral naming, CC0 license text, legacy compatibility mapping.
47
+ - **CLA.md.** Contributor license agreement keeping future dual-licensing open.
48
+
49
+ ## [1.0.4] - 2026-08-19
50
+
51
+ ### Added
52
+ - **Frozen Public CLI Contract.** Clean grouped CLI surface (`init`, `status`, `inspect`, `claude/opencode/codex/cursor/aider`, `exec`, `-w`, `step`, `--run`, `diff`, `apply`, `commit`, `undo`, `restore`). Suppressed internal plumbing commands (`wrap`, `lanes`, `sessions`, `integrate`) from public `--help`.
53
+ - **Primary `--run <workflow>` DAG Command.** Execute multi-step workflow DAGs directly with `compart --run <name>` across isolated compartments (`research`, `builder`, `tester`, `reviewer`).
54
+ - **Dual Workflow Discovery.** Discovers workflow YAMLs in both `workflows/<name>.yaml` and `.compart/workflows/<name>.yaml`.
55
+ - **Hostile Concurrency Test Suite.** Added canonical "Two Agents, Two Realities" integration tests proving simultaneous multi-agent policy isolation, process tree inheritance, and snapshot collision immunity.
56
+
57
+ ## [1.0.3] - 2026-08-18
58
+
59
+ ### Added
60
+ - **Interactive PTY Supervision.** Raw terminal PTY supervisor supporting true native TUI fidelity, ANSI color, alternate screen, and window resize events.
61
+ - **Git Provenance Trailers.** `compart commit` embeds structured RFC-5322 metadata trailers (`Compart-Execution`, `Compart-Agent`, `Compart-Compartment`, `Compart-Security: clean`).
62
+ - **Instant Physical Rollback.** `compart undo` restores pre-execution BLAKE3 hash snapshots in ~2 milliseconds.
63
+
64
+ ### Fixed
65
+
66
+ - **Version drift.** `compart.__version__` is now read from installed
67
+ package metadata instead of a hardcoded constant that lagged behind
68
+ releases.
69
+
70
+ ## [0.9.3] - 2026-08-02
71
+
72
+ ### Removed
73
+
74
+ - **Dead code culled.** Dropped the unused C ABI (`src/c_api.rs`,
75
+ `include/compart.h`), the credential proxy's unused header-injection
76
+ machinery, the `profile` config knob, and a re-export shim module.
77
+ No public Python/TS API change.
78
+
79
+ ## [0.9.2] - 2026-08-01
80
+
81
+ ### Removed
82
+
83
+ - **Go SDK removed.** The `sdk/go/` module was dropped; Compart now ships
84
+ Python and TypeScript SDKs only. `Cargo.toml` no longer emits a
85
+ `staticlib` archive, `include/compart.h` no longer references the Go
86
+ bindings, and all Go code samples were stripped from the docs.
87
+
88
+ ### Changed
89
+
90
+ - **Product rebrand.** The README is now a product landing page rather than a
91
+ technical writeup: a one-line hero promise ("Sandbox any AI agent in
92
+ seconds"), a "Why Compart" section, benefit-led features, real use cases
93
+ (coding agents, builds/tests, deploys, pipelines), and an honest security
94
+ model. SDK, CLI, and package metadata descriptions now carry the same
95
+ product voice.
96
+ - **CLI branding.** `compart --version` and `--help` now surface the
97
+ tagline, and `compart run`/`why` print a brand banner on interactive
98
+ terminals. Non-TTY output stays machine-friendly for scripts and CI.
99
+ - **TypeScript SDK package metadata.** `@compart/sdk` descriptions updated;
100
+ the publish layout is trimmed to the shipped macOS platform packages
101
+ (`darwin-arm64`, `darwin-x64`) at version `0.9.2`.
102
+ - **Version bumped to `0.9.2`** across the Rust core, Python package, and
103
+ TypeScript SDK to publish the rebranded build to PyPI.
104
+
105
+ ## [0.9.1] - 2026-07-31
106
+
107
+ ### Fixed
108
+
109
+ - **CLI: `compart run` now prints command output.** The compartment
110
+ function returned a `subprocess.CompletedProcess` while the CLI only
111
+ printed dict results, so `stdout`/`stderr` were silently swallowed. The
112
+ CLI now captures and prints `Stdout:`/`Stderr:` blocks after the run
113
+ summary.
114
+ - **CLI: non-zero command exit codes now surface.** `compart run "exit 3"`
115
+ previously reported `Status: success`; the CLI now exits with status `1`
116
+ when the shell command fails.
117
+ - **Credential proxy: absolute-form (`HTTP_PROXY`) requests now get
118
+ credential-injected.** Route matching now uses the path component of the
119
+ request target, so both origin-form (`/openai/v1/chat`) and absolute-form
120
+ (`http://host/openai/v1/chat`, as sent by `HTTP_PROXY` clients) are
121
+ matched and rewritten. Query strings survive the rewrite.
122
+ - **TypeScript SDK: fixed compile error.** `Runtime::names()` in the napi
123
+ wrapper called a method that had been removed from the Rust `Runtime`
124
+ struct; the `names()` method was restored, so `npm run build` and
125
+ `npm test` pass again.
126
+
127
+ ### Changed
128
+
129
+ - **Docs restyled.** The README and SDK docs now follow the structure used
130
+ by top YC developer-tool projects: a one-line value proposition, an
131
+ above-the-fold quickstart, a "Why" section, a feature table, and a
132
+ professional footer. The stale `compart.runtime` import in the
133
+ "Advanced Users" example was replaced with the correct
134
+ `compart.compartments` subclass pattern.
135
+ - **Tests import the installed package.** The pytest `pythonpath = ["python"]`
136
+ config was removed because the source tree no longer contains a compiled
137
+ native core (`_core` ships inside the wheel). Install the package
138
+ (`pip install .`) before running the test suite.
139
+ - **Test isolation.** `Box.enter()` calls in the box-lifecycle tests now pass
140
+ `sandbox=False`, so the irreversible kernel Seatbelt sandbox is no longer
141
+ applied to the shared pytest process (which poisoned `os.getcwd()` for
142
+ later tests).
143
+
144
+ ### Added
145
+
146
+ - `tests/test_cli.py` - CLI regression tests (stdout/stderr printing, exit
147
+ codes, `goal` positional, `why`).
148
+ - `tests/test_proxy.py` - credential proxy regression tests (origin-form,
149
+ absolute-form, no-match pass-through, query preservation).
150
+
151
+ ### Verified
152
+
153
+ - Python: 107 tests pass (installed wheel).
154
+ - Rust core: 423 tests pass.
155
+ - Go SDK: `go vet` clean, 15 tests pass.
156
+ - TypeScript SDK: builds and all smoke tests pass.
koyote-1.1.0/CLA.md ADDED
@@ -0,0 +1,25 @@
1
+ # Contributor License Agreement
2
+
3
+ Thank you for contributing to Koyote.
4
+
5
+ By submitting a pull request, comment, or any other contribution to this
6
+ repository, you agree to the following:
7
+
8
+ 1. **Copyright license.** You grant Koyote Labs (Tanmay Jayant Devare) a
9
+ perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to
10
+ use, reproduce, modify, distribute, sublicense, and relicense your
11
+ contribution as part of Koyote - including under proprietary or dual-license
12
+ terms in future commercial offerings.
13
+
14
+ 2. **Patent license.** To the extent you hold patent claims covering your
15
+ contribution, you grant the same rights for those claims.
16
+
17
+ 3. **You have the right to contribute.** You confirm the contribution is your
18
+ own work (or you are authorized to submit it) and does not violate any
19
+ third-party license or agreement.
20
+
21
+ 4. **No obligation.** Submitting a contribution does not guarantee it will be
22
+ merged or maintained.
23
+
24
+ Your original authorship is always recorded in git history. This agreement
25
+ only covers licensing; attribution stays with you.
@@ -0,0 +1,17 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to a positive environment:
10
+ - Demonstrating empathy and kindness toward other people
11
+ - Being respectful of differing opinions, viewpoints, and experiences
12
+ - Giving and gracefully accepting constructive feedback
13
+ - Accepting responsibility and apologizing to those affected by our mistakes
14
+
15
+ ## Enforcement
16
+
17
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the project team at `conduct@koyote.dev`.
@@ -0,0 +1,25 @@
1
+ # Contributing to Koyote
2
+
3
+ We welcome contributions to the Koyote source-available runtime!
4
+
5
+ ## Licensing & License Agreement
6
+
7
+ By contributing to Koyote, you agree that your contributions will be licensed under the [Apache License 2.0](LICENSE), and to the terms of the [CLA](CLA.md).
8
+
9
+ ## Development Setup
10
+
11
+ 1. **Prerequisites**: Python >= 3.10, Rust >= 1.75, `maturin` (`pip install maturin`).
12
+ 2. **Build Native Extension**:
13
+ ```bash
14
+ maturin develop
15
+ ```
16
+ 3. **Run Tests**:
17
+ ```bash
18
+ python3 -m pytest
19
+ ```
20
+
21
+ ## Pull Request Guidelines
22
+
23
+ - Ensure all existing unit and E2E tests pass.
24
+ - Write unit tests for new features or bug fixes.
25
+ - Keep changes focused, surgical, and well-documented.