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.
- koyote-1.1.0/.dockerignore +10 -0
- koyote-1.1.0/.github/workflows/publish.yml +48 -0
- koyote-1.1.0/.gitignore +40 -0
- koyote-1.1.0/CHANGELOG.md +156 -0
- koyote-1.1.0/CLA.md +25 -0
- koyote-1.1.0/CODE_OF_CONDUCT.md +17 -0
- koyote-1.1.0/CONTRIBUTING.md +25 -0
- koyote-1.1.0/Cargo.lock +410 -0
- koyote-1.1.0/Cargo.toml +40 -0
- koyote-1.1.0/GATES.md +142 -0
- koyote-1.1.0/LICENSE +201 -0
- koyote-1.1.0/Makefile +14 -0
- koyote-1.1.0/NOTICE +12 -0
- koyote-1.1.0/PKG-INFO +289 -0
- koyote-1.1.0/README.md +261 -0
- koyote-1.1.0/SECURITY.md +11 -0
- koyote-1.1.0/SPEC.md +129 -0
- koyote-1.1.0/docker/Dockerfile.app +32 -0
- koyote-1.1.0/docs/AGENT_EXECUTION.md +71 -0
- koyote-1.1.0/docs/AGENT_SESSION.md +61 -0
- koyote-1.1.0/docs/API_REFERENCE.md +124 -0
- koyote-1.1.0/docs/ARCHITECTURE.md +89 -0
- koyote-1.1.0/docs/CI_INTEGRATION.md +70 -0
- koyote-1.1.0/docs/CLI.md +348 -0
- koyote-1.1.0/docs/COMPRESSION.md +38 -0
- koyote-1.1.0/docs/CREDENTIAL_PROXY.md +66 -0
- koyote-1.1.0/docs/DEPLOY.md +68 -0
- koyote-1.1.0/docs/FRAMEWORK_HOOKS.md +102 -0
- koyote-1.1.0/docs/GITHUB_APP.md +65 -0
- koyote-1.1.0/docs/QUICKSTART.md +104 -0
- koyote-1.1.0/docs/SNAPSHOTS.md +62 -0
- koyote-1.1.0/docs/SYSTEM_MAP.md +107 -0
- koyote-1.1.0/docs/TYPESCRIPT_SDK.md +78 -0
- koyote-1.1.0/docs/USE_CASES.md +239 -0
- koyote-1.1.0/docs/VALIDATION_GUIDE.md +72 -0
- koyote-1.1.0/docs/WORKSPACE_ACTIVATION.md +81 -0
- koyote-1.1.0/docs/WORKSPACE_LANES.md +101 -0
- koyote-1.1.0/pyproject.toml +48 -0
- koyote-1.1.0/python/koyote/__init__.py +38 -0
- koyote-1.1.0/python/koyote/_exec_shim.py +13 -0
- koyote-1.1.0/python/koyote/ai_planner.py +399 -0
- koyote-1.1.0/python/koyote/audit.py +217 -0
- koyote-1.1.0/python/koyote/autopatch.py +120 -0
- koyote-1.1.0/python/koyote/change_source.py +88 -0
- koyote-1.1.0/python/koyote/ci/__init__.py +9 -0
- koyote-1.1.0/python/koyote/ci/runner.py +124 -0
- koyote-1.1.0/python/koyote/cli/__init__.py +1 -0
- koyote-1.1.0/python/koyote/cli/main.py +2812 -0
- koyote-1.1.0/python/koyote/compartments/__init__.py +12 -0
- koyote-1.1.0/python/koyote/compartments/base.py +74 -0
- koyote-1.1.0/python/koyote/compartments/runtime.py +201 -0
- koyote-1.1.0/python/koyote/config.py +341 -0
- koyote-1.1.0/python/koyote/credentials.py +143 -0
- koyote-1.1.0/python/koyote/drift.py +174 -0
- koyote-1.1.0/python/koyote/engine/__init__.py +1 -0
- koyote-1.1.0/python/koyote/engine/events.py +36 -0
- koyote-1.1.0/python/koyote/engine/execution.py +223 -0
- koyote-1.1.0/python/koyote/engine/integration.py +147 -0
- koyote-1.1.0/python/koyote/engine/lane.py +122 -0
- koyote-1.1.0/python/koyote/engine/pty_supervisor.py +108 -0
- koyote-1.1.0/python/koyote/engine/session.py +295 -0
- koyote-1.1.0/python/koyote/engine/tracer.py +117 -0
- koyote-1.1.0/python/koyote/formatters.py +24 -0
- koyote-1.1.0/python/koyote/git_ops.py +62 -0
- koyote-1.1.0/python/koyote/github/__init__.py +31 -0
- koyote-1.1.0/python/koyote/github/client.py +329 -0
- koyote-1.1.0/python/koyote/github/installations.py +93 -0
- koyote-1.1.0/python/koyote/github/pr_bot.py +509 -0
- koyote-1.1.0/python/koyote/github/pr_render.py +195 -0
- koyote-1.1.0/python/koyote/github/provisioning.py +131 -0
- koyote-1.1.0/python/koyote/github/trust_pr.py +183 -0
- koyote-1.1.0/python/koyote/github/watch.py +98 -0
- koyote-1.1.0/python/koyote/github/webhook_server.py +133 -0
- koyote-1.1.0/python/koyote/graph.py +35 -0
- koyote-1.1.0/python/koyote/hooks/__init__.py +53 -0
- koyote-1.1.0/python/koyote/hooks/autogen.py +191 -0
- koyote-1.1.0/python/koyote/hooks/base.py +381 -0
- koyote-1.1.0/python/koyote/hooks/crewai.py +216 -0
- koyote-1.1.0/python/koyote/hooks/data_agent.py +232 -0
- koyote-1.1.0/python/koyote/hooks/langchain.py +314 -0
- koyote-1.1.0/python/koyote/intelligence.py +107 -0
- koyote-1.1.0/python/koyote/knowledge.py +320 -0
- koyote-1.1.0/python/koyote/koyote.py +265 -0
- koyote-1.1.0/python/koyote/llm.py +208 -0
- koyote-1.1.0/python/koyote/maintenance.py +387 -0
- koyote-1.1.0/python/koyote/maintenance_agents.py +46 -0
- koyote-1.1.0/python/koyote/mcp_server.py +269 -0
- koyote-1.1.0/python/koyote/patch_writer.py +191 -0
- koyote-1.1.0/python/koyote/pipeline.py +928 -0
- koyote-1.1.0/python/koyote/providers/__init__.py +10 -0
- koyote-1.1.0/python/koyote/providers/registry.py +354 -0
- koyote-1.1.0/python/koyote/sandbox/__init__.py +1 -0
- koyote-1.1.0/python/koyote/sandbox/box.py +234 -0
- koyote-1.1.0/python/koyote/sandbox/compression.py +67 -0
- koyote-1.1.0/python/koyote/sandbox/enforcer.py +211 -0
- koyote-1.1.0/python/koyote/sandbox/proxy.py +230 -0
- koyote-1.1.0/python/koyote/sandbox/snapshot.py +134 -0
- koyote-1.1.0/python/koyote/sandbox/task_profile.py +17 -0
- koyote-1.1.0/python/koyote/test_runner.py +87 -0
- koyote-1.1.0/scripts/run_all_tests.py +132 -0
- koyote-1.1.0/sdk/README.md +73 -0
- koyote-1.1.0/sdk/typescript/LICENSE +26 -0
- koyote-1.1.0/sdk/typescript/index.d.ts +17 -0
- koyote-1.1.0/sdk/typescript/index.js +326 -0
- koyote-1.1.0/sdk/typescript/package-lock.json +46 -0
- koyote-1.1.0/sdk/typescript/package.json +59 -0
- koyote-1.1.0/sdk/typescript/test/smoke.mjs +84 -0
- koyote-1.1.0/src/engines/ast/locator.rs +572 -0
- koyote-1.1.0/src/engines/ast/mod.rs +8 -0
- koyote-1.1.0/src/engines/ast/types.rs +73 -0
- koyote-1.1.0/src/engines/autopatch/contracts.rs +370 -0
- koyote-1.1.0/src/engines/autopatch/evidence.rs +411 -0
- koyote-1.1.0/src/engines/autopatch/inventory.rs +327 -0
- koyote-1.1.0/src/engines/autopatch/manifest_lockfile.rs +410 -0
- koyote-1.1.0/src/engines/autopatch/mod.rs +31 -0
- koyote-1.1.0/src/engines/autopatch/patcher.rs +518 -0
- koyote-1.1.0/src/engines/autopatch/planner.rs +505 -0
- koyote-1.1.0/src/engines/autopatch/policy.rs +142 -0
- koyote-1.1.0/src/engines/autopatch/report.rs +452 -0
- koyote-1.1.0/src/engines/autopatch/resolver.rs +675 -0
- koyote-1.1.0/src/engines/autopatch/types.rs +191 -0
- koyote-1.1.0/src/engines/autopatch/workflow.rs +295 -0
- koyote-1.1.0/src/engines/compression/adaptive_sizer.rs +415 -0
- koyote-1.1.0/src/engines/compression/anchor_selector.rs +841 -0
- koyote-1.1.0/src/engines/compression/bm25.rs +71 -0
- koyote-1.1.0/src/engines/compression/content_detector.rs +545 -0
- koyote-1.1.0/src/engines/compression/diff_compressor.rs +1235 -0
- koyote-1.1.0/src/engines/compression/log_compressor.rs +1117 -0
- koyote-1.1.0/src/engines/compression/mod.rs +82 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/analyzer.rs +946 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/anchors.rs +260 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/classifier.rs +118 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/classifier.rs +239 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/compactor.rs +738 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/formatter.rs +491 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/ir.rs +189 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/mod.rs +44 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/compaction/walker.rs +48 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/crusher.rs +1318 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/crushers.rs +631 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/field_detect.rs +294 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/mod.rs +249 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/orchestration.rs +337 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/outliers.rs +341 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/planning.rs +759 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/statistics.rs +361 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/stats_math.rs +214 -0
- koyote-1.1.0/src/engines/compression/smart_crusher/types.rs +158 -0
- koyote-1.1.0/src/engines/compression/text_crusher/config.rs +24 -0
- koyote-1.1.0/src/engines/compression/text_crusher/crusher.rs +266 -0
- koyote-1.1.0/src/engines/compression/text_crusher/mod.rs +5 -0
- koyote-1.1.0/src/engines/graph/builder.rs +224 -0
- koyote-1.1.0/src/engines/graph/mod.rs +6 -0
- koyote-1.1.0/src/engines/graph/query.rs +114 -0
- koyote-1.1.0/src/engines/graph/types.rs +149 -0
- koyote-1.1.0/src/engines/mod.rs +5 -0
- koyote-1.1.0/src/engines/schema/diff.rs +484 -0
- koyote-1.1.0/src/engines/schema/mod.rs +12 -0
- koyote-1.1.0/src/engines/schema/parser.rs +258 -0
- koyote-1.1.0/src/engines/schema/types.rs +88 -0
- koyote-1.1.0/src/lib.rs +15 -0
- koyote-1.1.0/src/py_bindings.rs +177 -0
- koyote-1.1.0/src/runtime/ccr/mod.rs +174 -0
- koyote-1.1.0/src/runtime/compartments/mod.rs +231 -0
- koyote-1.1.0/src/runtime/credential.rs +72 -0
- koyote-1.1.0/src/runtime/enforcer.rs +146 -0
- koyote-1.1.0/src/runtime/mod.rs +5 -0
- koyote-1.1.0/src/runtime/snapshot.rs +250 -0
- koyote-1.1.0/src/sandbox/linux.rs +318 -0
- koyote-1.1.0/src/sandbox/macos.rs +242 -0
- koyote-1.1.0/src/sandbox/mod.rs +77 -0
- koyote-1.1.0/tests/koyote/test_koyote_e2e.py +171 -0
- koyote-1.1.0/tests/test_ai_planner.py +104 -0
- koyote-1.1.0/tests/test_ai_reasoning.py +125 -0
- koyote-1.1.0/tests/test_alias_repair.py +85 -0
- koyote-1.1.0/tests/test_audit_cli.py +61 -0
- koyote-1.1.0/tests/test_audit_regressions.py +167 -0
- koyote-1.1.0/tests/test_auth_gating.py +137 -0
- koyote-1.1.0/tests/test_autopatch_cli.py +176 -0
- koyote-1.1.0/tests/test_autopatch_sdk.py +239 -0
- koyote-1.1.0/tests/test_box_lifecycle.py +63 -0
- koyote-1.1.0/tests/test_change_commands.py +275 -0
- koyote-1.1.0/tests/test_change_source.py +50 -0
- koyote-1.1.0/tests/test_ci_integration.py +27 -0
- koyote-1.1.0/tests/test_config.py +101 -0
- koyote-1.1.0/tests/test_consult.py +190 -0
- koyote-1.1.0/tests/test_credential_scoping.py +43 -0
- koyote-1.1.0/tests/test_decision.py +64 -0
- koyote-1.1.0/tests/test_deep_edge_cases.py +242 -0
- koyote-1.1.0/tests/test_dependency_graph.py +43 -0
- koyote-1.1.0/tests/test_detect_changes.py +37 -0
- koyote-1.1.0/tests/test_doctor.py +76 -0
- koyote-1.1.0/tests/test_e2e_full_suite.py +482 -0
- koyote-1.1.0/tests/test_exec_compartment.py +265 -0
- koyote-1.1.0/tests/test_execution.py +80 -0
- koyote-1.1.0/tests/test_git_trailers.py +141 -0
- koyote-1.1.0/tests/test_github_integration.py +71 -0
- koyote-1.1.0/tests/test_hooks.py +313 -0
- koyote-1.1.0/tests/test_hostile_concurrency.py +223 -0
- koyote-1.1.0/tests/test_incremental_index.py +58 -0
- koyote-1.1.0/tests/test_installations.py +62 -0
- koyote-1.1.0/tests/test_knowledge.py +68 -0
- koyote-1.1.0/tests/test_lanes_and_integration.py +57 -0
- koyote-1.1.0/tests/test_llm_client.py +80 -0
- koyote-1.1.0/tests/test_maintenance_agents.py +8 -0
- koyote-1.1.0/tests/test_maintenance_loop.py +54 -0
- koyote-1.1.0/tests/test_pipeline.py +272 -0
- koyote-1.1.0/tests/test_pr_bot.py +283 -0
- koyote-1.1.0/tests/test_pr_checkout.py +76 -0
- koyote-1.1.0/tests/test_pr_surface.py +84 -0
- koyote-1.1.0/tests/test_provider_registry.py +40 -0
- koyote-1.1.0/tests/test_provisioning.py +56 -0
- koyote-1.1.0/tests/test_proxy.py +132 -0
- koyote-1.1.0/tests/test_pty_supervisor.py +59 -0
- koyote-1.1.0/tests/test_session.py +56 -0
- koyote-1.1.0/tests/test_snapshot.py +304 -0
- koyote-1.1.0/tests/test_watch.py +57 -0
- koyote-1.1.0/tests/test_workflow_branch_and_step.py +287 -0
- koyote-1.1.0/tests/test_workflow_run.py +239 -0
- koyote-1.1.0/tests/test_workspace_activation.py +210 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/package.json +7 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/packages/features/ee/billing/stripe.test.ts +8 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/packages/features/ee/billing/stripe.ts +26 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/specs/stripe_v11.json +22 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/specs/stripe_v13.json +22 -0
- koyote-1.1.0/trials/fixtures/calcom_stripe/test/run.js +20 -0
- koyote-1.1.0/trials/fixtures/calcom_twilio/package.json +6 -0
- koyote-1.1.0/trials/fixtures/calcom_twilio/specs/twilio_v1.json +1 -0
- koyote-1.1.0/trials/fixtures/calcom_twilio/specs/twilio_v2.json +1 -0
- koyote-1.1.0/trials/fixtures/calcom_twilio/src/sms.ts +7 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/package.json +7 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/specs/openai_v3.json +22 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/specs/openai_v4.json +22 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/src/chat_models/openai.ts +24 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/src/embeddings/openai.ts +18 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/test/openai.test.ts +9 -0
- koyote-1.1.0/trials/fixtures/langchainjs_openai/test/run.js +20 -0
- koyote-1.1.0/trials/fixtures/renovate_octokit/package.json +6 -0
- koyote-1.1.0/trials/fixtures/renovate_octokit/specs/octokit_v16.json +1 -0
- koyote-1.1.0/trials/fixtures/renovate_octokit/specs/octokit_v17.json +1 -0
- koyote-1.1.0/trials/fixtures/renovate_octokit/src/github.ts +5 -0
- koyote-1.1.0/trials/fixtures/sentry_hub/package.json +6 -0
- koyote-1.1.0/trials/fixtures/sentry_hub/specs/sentry_v7.json +1 -0
- koyote-1.1.0/trials/fixtures/sentry_hub/specs/sentry_v8.json +1 -0
- koyote-1.1.0/trials/fixtures/sentry_hub/src/monitoring.ts +8 -0
- koyote-1.1.0/trials/fixtures/sentry_hub/test/run.js +20 -0
- koyote-1.1.0/trials/fixtures/serverless_aws/package.json +6 -0
- koyote-1.1.0/trials/fixtures/serverless_aws/specs/aws_v2.json +1 -0
- koyote-1.1.0/trials/fixtures/serverless_aws/specs/aws_v3.json +1 -0
- koyote-1.1.0/trials/fixtures/serverless_aws/src/storage.ts +7 -0
- koyote-1.1.0/trials/fixtures/serverless_aws/test/run.js +20 -0
- koyote-1.1.0/trials/fixtures/smol_ai_anthropic/package.json +6 -0
- koyote-1.1.0/trials/fixtures/smol_ai_anthropic/specs/anthropic_v1.json +1 -0
- koyote-1.1.0/trials/fixtures/smol_ai_anthropic/specs/anthropic_v2.json +1 -0
- koyote-1.1.0/trials/fixtures/smol_ai_anthropic/src/prompt.ts +11 -0
- koyote-1.1.0/trials/fixtures/supabase_auth/package.json +6 -0
- koyote-1.1.0/trials/fixtures/supabase_auth/specs/supabase_v1.json +1 -0
- koyote-1.1.0/trials/fixtures/supabase_auth/specs/supabase_v2.json +1 -0
- koyote-1.1.0/trials/fixtures/supabase_auth/src/session.ts +7 -0
- koyote-1.1.0/trials/fixtures/taxonomy_stripe/package.json +6 -0
- koyote-1.1.0/trials/fixtures/taxonomy_stripe/specs/stripe_v21.json +1 -0
- koyote-1.1.0/trials/fixtures/taxonomy_stripe/specs/stripe_v22.json +1 -0
- koyote-1.1.0/trials/fixtures/taxonomy_stripe/src/billing.ts +10 -0
- koyote-1.1.0/trials/fixtures/taxonomy_stripe/test/run.js +20 -0
- koyote-1.1.0/trials/fixtures/uploadthing_clerk/package.json +6 -0
- koyote-1.1.0/trials/fixtures/uploadthing_clerk/specs/clerk_v4.json +1 -0
- koyote-1.1.0/trials/fixtures/uploadthing_clerk/specs/clerk_v5.json +1 -0
- koyote-1.1.0/trials/fixtures/uploadthing_clerk/src/middleware.ts +5 -0
- koyote-1.1.0/trials/fixtures/uploadthing_clerk/test/run.js +20 -0
|
@@ -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
|
koyote-1.1.0/.gitignore
ADDED
|
@@ -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.
|