bantamkit 0.34.2__tar.gz → 0.34.3__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.
- {bantamkit-0.34.2 → bantamkit-0.34.3}/PKG-INFO +10 -10
- {bantamkit-0.34.2 → bantamkit-0.34.3}/README.md +9 -9
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/__init__.py +1 -1
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/eventlog.py +7 -6
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/store.py +50 -3
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_bantamkit_gitignore.py +64 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/.gitignore +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/contracts/default.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/manifest.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/HISTORY.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/README.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/docs/architecture.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/docs/runbook.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/issues/142-settlement-timeout.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/patches/0009-retry-budget.patch +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/__init__.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/config.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/errors.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/posting.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/registry.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/report.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/retry.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/settle.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/src/ledger/validate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/tests/test_posting.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/tests/test_settle.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-error-contract.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-handler-map.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-patch-before-after.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-retry-attempts.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-settlement-config.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-symbol-home.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-trace-blame.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-unread-key.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-in-137.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-in-359.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-in-372.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-out-11764.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-out-4137.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-large-out-8022.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-small-137.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-small-261.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/document/tasks/doc-small-388.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/fixtures/.gitkeep +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/fixtures/catalog.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/perturbations/task-completion.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/.gitkeep +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/extract-contact.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/extract-invoice.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/extract-order.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/extract-schedule.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/extract-versions.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/nav-prod-port.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/nav-release-bundle.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-audit-retention.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-cache-ttl.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-db-port.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-deploy.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-env-endpoint.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-oncall-rotation.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-oncall.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-org-quota.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/recall-owner.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-basket-total.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-cheapest.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-compare.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-gadget-value.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-stock-total.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/tasks/shop-total.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/pricing/default.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/profiles/default.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/profiles/patient.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/rubrics/.gitkeep +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/rubrics/code-quality.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/rubrics/grounded-completion.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/rubrics/task-completion.yaml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/schemas/shiftwork-checkpoint.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/skills/.gitkeep +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/skills/file-graph.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/skills/memory.md +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/.gitkeep +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/bantamkit_read.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/bantamkit_status.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/build_identity.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/document_list.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/document_read.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/file_graph.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/memory_compact.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/memory_dream.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/memory_recall.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/memory_save.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/repo_map.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/shiftwork_clock_in.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/shiftwork_clock_out.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/shiftwork_status.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/skill_audit.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/token_ledger.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/tools/validate_json.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/hatch_build.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/pyproject.toml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/agent.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/assets.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/budget.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/client.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/contract.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/criticreplay.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/critique.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/docmanifest.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/docread.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/evalrun.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/filegraph.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/hostinstall.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/loopguard.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/mcpreport.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/mcpserver.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/__init__.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/__main__.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/component.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/divergence.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/dream.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/memory/layers.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/pdfread.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/pricing.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/profile.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/repomap.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/selfupdate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/shiftwork.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/skillaudit.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/statusline.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/structured.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/textutil.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/src/bantamkit/tokenledger.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/cli_exit_status_probe.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/conftest.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/bad-crc.docx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/charref-4301-digits.html +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/charset-table.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/compression-method-9.docx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/corrupt-deflate.docx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/encrypted-member.docx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/encrypted-mimetype.odt +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/eszett-cell-ref.xlsx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/internal-dtd-entity.docx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/rfc2231-charset.eml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/rfc822-nested-twice.eml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/unicode-digit-shared-string.xlsx +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/docread/x-uuencode.eml +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/f8404ab-perturbation-baseline.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/platform-assumption-baseline.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/data/served-tool-surface.json +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/docread_fixtures.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/perturbation_baseline_harness.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/rbp16_effect_probe.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/rbp18_payload_probe.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_adapter.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_agent.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_amendguard.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_bantamkit_read_tool.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_budget.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_build_identity.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_client.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_compaction_corpus_survey.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_conformance.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_conformance_harness_resilience.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_conformance_suite_table_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_contract_fanout.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_criticreplay.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_critique.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_doc_commands_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_docread.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_docread_ceilings.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_document_manifest_parity.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_document_setup.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_document_tasks.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_document_tools.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_encoding_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_evalrun.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_eventlog.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_field_program_gates.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_field_programs.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_filegraph.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_hostinstall.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_install_shape.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_ladder_statistics.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_launcher_which.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_layers.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_loopguard.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_mcp_endpoint.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_mcpdrift.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_mcpreport.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_mcpserver.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_compact_tool.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_component.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_divergence.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_dream.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_layers.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_memory_store_tripwire.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_mutmatrix.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_newline_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_packaging.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_pdfread.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_pinharness_ledger.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_platform_assumption_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_pricing.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_repo_map_tool.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_repomap.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_selfupdate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_served_tool_count_records.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_shiftwork.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_skillaudit.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_status_surface.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_statusline.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_structured.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_thread_exception_gate.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_tokenledger.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_tool_manifest.py +0 -0
- {bantamkit-0.34.2 → bantamkit-0.34.3}/tests/test_version_agreement.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: bantamkit
|
|
3
|
-
Version: 0.34.
|
|
3
|
+
Version: 0.34.3
|
|
4
4
|
Summary: Memory MCP server for Claude Code, Cursor, VS Code Copilot and Claude Desktop, plus a Python library that lifts small-model agents. Install once, run offline.
|
|
5
5
|
Project-URL: Homepage, https://github.com/Ink01101011/bantamkit
|
|
6
6
|
Project-URL: Repository, https://github.com/Ink01101011/bantamkit
|
|
@@ -96,9 +96,9 @@ CPU architecture and Python minor version** (some wheels, such as `pydantic_core
|
|
|
96
96
|
one platform only), copy `wheels/` across, and install from it:
|
|
97
97
|
|
|
98
98
|
```bash
|
|
99
|
-
python -m pip download "bantamkit[mcp]==0.34.
|
|
99
|
+
python -m pip download "bantamkit[mcp]==0.34.3" -d wheels
|
|
100
100
|
python -m venv <env>
|
|
101
|
-
<env>/bin/pip install --no-index --find-links wheels "bantamkit[mcp]==0.34.
|
|
101
|
+
<env>/bin/pip install --no-index --find-links wheels "bantamkit[mcp]==0.34.3"
|
|
102
102
|
<env>/bin/bantamkit-mcp --install cursor
|
|
103
103
|
```
|
|
104
104
|
|
|
@@ -247,10 +247,10 @@ pipx upgrade bantamkit # pipx
|
|
|
247
247
|
uv tool upgrade bantamkit # uv
|
|
248
248
|
```
|
|
249
249
|
|
|
250
|
-
`--update` (`check the package index and update this install if it differs, then exit`)
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
the download and install.
|
|
250
|
+
`--update` (`check the package index and update this install if it differs, then exit`) upgrades
|
|
251
|
+
an install from PyPI with this interpreter's pip; it is the only network access here. An editable
|
|
252
|
+
install, a local file or a source tree is refused with exit 1 and a sentence naming the manual
|
|
253
|
+
route (for a clone, `git pull`). For a wheelhouse, repeat the download and install.
|
|
254
254
|
|
|
255
255
|
**Then restart the server in the host** (`/mcp` → reconnect in Claude Code; fully restart Claude
|
|
256
256
|
Desktop). `bantamkit_status` prints the version **and the `build_id` of the code answering
|
|
@@ -288,7 +288,7 @@ you**; a new version with an old `build_id` means an old process.
|
|
|
288
288
|
| `shiftwork_status` | report the open cursor |
|
|
289
289
|
| `token_ledger` | what a session cost, read off the host's transcripts |
|
|
290
290
|
| `bantamkit_status` | report store health against its budget |
|
|
291
|
-
| `build_identity` | report the fingerprint of the source on disk, not the executing code |
|
|
291
|
+
| `build_identity` | report the fingerprint of the source on disk, not the executing code — useful when a machine carries two installs under one name |
|
|
292
292
|
|
|
293
293
|
The document reader `bantamkit_read` left the served tools in job50 (2026-09-12) and stays in the
|
|
294
294
|
library as `bantamkit.docread`.
|
|
@@ -303,7 +303,7 @@ under the `[mcp]` extra.
|
|
|
303
303
|
Contracts, schemas, eval tasks, rubrics and tool manifests ship inside the package.
|
|
304
304
|
`bantamkit-mcp --assets-root` prints the resolved directory and its file count, and
|
|
305
305
|
`BANTAMKIT_ASSETS` overrides it. A build that cannot find the pack fails instead of shipping
|
|
306
|
-
without it.
|
|
306
|
+
without it — deliberately, because the silent version shipped once.
|
|
307
307
|
|
|
308
308
|
## The operator CLI: `python -m bantamkit.memory`
|
|
309
309
|
|
|
@@ -342,7 +342,7 @@ git clone https://github.com/Ink01101011/bantamkit
|
|
|
342
342
|
cd bantamkit
|
|
343
343
|
python -m venv .venv && .venv/bin/pip install -e "runtime-py[dev,mcp]"
|
|
344
344
|
.venv/bin/python -m pytest runtime-py/tests -q
|
|
345
|
-
.venv/bin/ruff check runtime-py
|
|
345
|
+
.venv/bin/ruff check runtime-py tools
|
|
346
346
|
```
|
|
347
347
|
|
|
348
348
|
The cross-runtime gate needs Node:
|
|
@@ -68,9 +68,9 @@ CPU architecture and Python minor version** (some wheels, such as `pydantic_core
|
|
|
68
68
|
one platform only), copy `wheels/` across, and install from it:
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
python -m pip download "bantamkit[mcp]==0.34.
|
|
71
|
+
python -m pip download "bantamkit[mcp]==0.34.3" -d wheels
|
|
72
72
|
python -m venv <env>
|
|
73
|
-
<env>/bin/pip install --no-index --find-links wheels "bantamkit[mcp]==0.34.
|
|
73
|
+
<env>/bin/pip install --no-index --find-links wheels "bantamkit[mcp]==0.34.3"
|
|
74
74
|
<env>/bin/bantamkit-mcp --install cursor
|
|
75
75
|
```
|
|
76
76
|
|
|
@@ -219,10 +219,10 @@ pipx upgrade bantamkit # pipx
|
|
|
219
219
|
uv tool upgrade bantamkit # uv
|
|
220
220
|
```
|
|
221
221
|
|
|
222
|
-
`--update` (`check the package index and update this install if it differs, then exit`)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
the download and install.
|
|
222
|
+
`--update` (`check the package index and update this install if it differs, then exit`) upgrades
|
|
223
|
+
an install from PyPI with this interpreter's pip; it is the only network access here. An editable
|
|
224
|
+
install, a local file or a source tree is refused with exit 1 and a sentence naming the manual
|
|
225
|
+
route (for a clone, `git pull`). For a wheelhouse, repeat the download and install.
|
|
226
226
|
|
|
227
227
|
**Then restart the server in the host** (`/mcp` → reconnect in Claude Code; fully restart Claude
|
|
228
228
|
Desktop). `bantamkit_status` prints the version **and the `build_id` of the code answering
|
|
@@ -260,7 +260,7 @@ you**; a new version with an old `build_id` means an old process.
|
|
|
260
260
|
| `shiftwork_status` | report the open cursor |
|
|
261
261
|
| `token_ledger` | what a session cost, read off the host's transcripts |
|
|
262
262
|
| `bantamkit_status` | report store health against its budget |
|
|
263
|
-
| `build_identity` | report the fingerprint of the source on disk, not the executing code |
|
|
263
|
+
| `build_identity` | report the fingerprint of the source on disk, not the executing code — useful when a machine carries two installs under one name |
|
|
264
264
|
|
|
265
265
|
The document reader `bantamkit_read` left the served tools in job50 (2026-09-12) and stays in the
|
|
266
266
|
library as `bantamkit.docread`.
|
|
@@ -275,7 +275,7 @@ under the `[mcp]` extra.
|
|
|
275
275
|
Contracts, schemas, eval tasks, rubrics and tool manifests ship inside the package.
|
|
276
276
|
`bantamkit-mcp --assets-root` prints the resolved directory and its file count, and
|
|
277
277
|
`BANTAMKIT_ASSETS` overrides it. A build that cannot find the pack fails instead of shipping
|
|
278
|
-
without it.
|
|
278
|
+
without it — deliberately, because the silent version shipped once.
|
|
279
279
|
|
|
280
280
|
## The operator CLI: `python -m bantamkit.memory`
|
|
281
281
|
|
|
@@ -314,7 +314,7 @@ git clone https://github.com/Ink01101011/bantamkit
|
|
|
314
314
|
cd bantamkit
|
|
315
315
|
python -m venv .venv && .venv/bin/pip install -e "runtime-py[dev,mcp]"
|
|
316
316
|
.venv/bin/python -m pytest runtime-py/tests -q
|
|
317
|
-
.venv/bin/ruff check runtime-py
|
|
317
|
+
.venv/bin/ruff check runtime-py tools
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
The cross-runtime gate needs Node:
|
|
@@ -29,4 +29,4 @@ from bantamkit.structured import StructuredOutputError, extract_json, structured
|
|
|
29
29
|
# file as its dynamic version source, so the wheel's metadata and the string the MCP
|
|
30
30
|
# server advertises are the same committed bytes, and neither is a function of when
|
|
31
31
|
# someone last ran `pip`.
|
|
32
|
-
__version__ = "0.34.
|
|
32
|
+
__version__ = "0.34.3"
|
|
@@ -69,7 +69,7 @@ from datetime import UTC, datetime, timedelta
|
|
|
69
69
|
from pathlib import Path
|
|
70
70
|
from typing import Any
|
|
71
71
|
|
|
72
|
-
from bantamkit.memory.store import ensure_bantamkit_gitignore
|
|
72
|
+
from bantamkit.memory.store import bantamkit_dir_for, ensure_bantamkit_gitignore
|
|
73
73
|
|
|
74
74
|
#: Environment switch. Unset or `off`/`0`/`false`/`no`/empty -> disabled. `on`/`1`/
|
|
75
75
|
#: `true`/`yes` -> the default file inside the memory store. Anything else is taken as
|
|
@@ -289,11 +289,12 @@ class EventLog:
|
|
|
289
289
|
# USER RULING #2 (J51-8a): the ignore file is written only when THIS call is what
|
|
290
290
|
# creates `.bantamkit`, so existence has to be checked BEFORE the mkdir below --
|
|
291
291
|
# after it, the directory unconditionally exists and the question is unanswerable.
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
292
|
+
#
|
|
293
|
+
# J54-3: the walk moved into `bantamkit_dir_for` beside the writer it feeds, so the
|
|
294
|
+
# two creators in this runtime ask the same question in the same words rather than
|
|
295
|
+
# keeping a copy each. The answer here is unchanged -- a log file is never itself
|
|
296
|
+
# named `.bantamkit`, so self-or-ancestors and ancestors give the same directory.
|
|
297
|
+
bantamkit_dir = bantamkit_dir_for(self.path)
|
|
297
298
|
bantamkit_dir_existed_before = bantamkit_dir is not None and bantamkit_dir.exists()
|
|
298
299
|
self.path.parent.mkdir(parents=True, exist_ok=True)
|
|
299
300
|
if bantamkit_dir is not None:
|
|
@@ -286,6 +286,14 @@ def ensure_bantamkit_gitignore(directory: Path, *, created: bool) -> None:
|
|
|
286
286
|
would leave a `.bantamkit` that git can see (or ignore one it should not), which is
|
|
287
287
|
the whole bug this closes.
|
|
288
288
|
|
|
289
|
+
THE CREATORS, ENUMERATED (J54-3), because "anything else" is how one got missed: in
|
|
290
|
+
THIS runtime there are exactly two -- `MemoryStore._ensure_dirs` and `EventLog._append`
|
|
291
|
+
-- and both now ask `bantamkit_dir_for` which directory the decision is about, rather
|
|
292
|
+
than assuming the root's parent is it. `runtime-ts` has a THIRD, `hostinstall`'s
|
|
293
|
+
`thisCommand`, where npm creates `~/.bantamkit/mcp` for `--install`; there is no npm
|
|
294
|
+
install path in this runtime (the offline install is Node-only by user ruling), which
|
|
295
|
+
is why that creator has no counterpart here. `docs/porting.md` carries the row.
|
|
296
|
+
|
|
289
297
|
NEVER REWRITES. A `.gitignore` that already exists -- whatever its bytes -- is left
|
|
290
298
|
exactly as it is, kept as a second guard even when `created` is `True`: an operator
|
|
291
299
|
who deleted it to commit the directory keeps that decision, and this never diffs its
|
|
@@ -313,6 +321,34 @@ def ensure_bantamkit_gitignore(directory: Path, *, created: bool) -> None:
|
|
|
313
321
|
pass
|
|
314
322
|
|
|
315
323
|
|
|
324
|
+
def bantamkit_dir_for(path: Path) -> Path | None:
|
|
325
|
+
"""The `.bantamkit` directory a `mkdir(parents=True)` of `path` would create or fill,
|
|
326
|
+
or `None` when there is none: `path` itself if it is named `.bantamkit`, otherwise its
|
|
327
|
+
nearest ancestor that is.
|
|
328
|
+
|
|
329
|
+
WHY A WALK AND NOT `path.parent` (J54-3). Every creator has to hand
|
|
330
|
+
`ensure_bantamkit_gitignore` the directory the decision is ABOUT, and `parent` is the
|
|
331
|
+
right answer for exactly one shape of path, `<x>/.bantamkit/memory`. A store rooted AT
|
|
332
|
+
the `.bantamkit` directory (`--store ~/.bantamkit`) or nested deeper under it
|
|
333
|
+
(`<x>/.bantamkit/memory/extra`) creates a `.bantamkit` whose gitignore decision was
|
|
334
|
+
taken about the wrong directory -- so no decision was taken at all, and git could see
|
|
335
|
+
the whole tree. MEASURED, not hypothetical: `~/.bantamkit` on the machine this was
|
|
336
|
+
found on holds an empty `facts/` and `archive/` beside `memory/`, left by a store once
|
|
337
|
+
rooted at it, and no `.gitignore`.
|
|
338
|
+
|
|
339
|
+
NEAREST AND NOT OUTERMOST, which is the choice `EventLog._append` already made and this
|
|
340
|
+
function now carries for both creators: under a `<x>/.bantamkit/y/.bantamkit/z` the
|
|
341
|
+
directory a reader would expect to be ignored is the one the store is actually in.
|
|
342
|
+
|
|
343
|
+
READ-ONLY. It looks at names, never at the filesystem, so it is equally valid before or
|
|
344
|
+
after the mkdir -- but `created` is answered by checking THIS path's existence BEFORE.
|
|
345
|
+
"""
|
|
346
|
+
for candidate in (path, *path.parents):
|
|
347
|
+
if candidate.name == ".bantamkit":
|
|
348
|
+
return candidate
|
|
349
|
+
return None
|
|
350
|
+
|
|
351
|
+
|
|
316
352
|
class MemoryStore:
|
|
317
353
|
def __init__(
|
|
318
354
|
self,
|
|
@@ -405,8 +441,16 @@ class MemoryStore:
|
|
|
405
441
|
# Checked BEFORE the mkdir, per user ruling #2: this is the one moment that can
|
|
406
442
|
# tell whether `.bantamkit` already existed. After the mkdir it unconditionally
|
|
407
443
|
# exists either way, so the answer has to be captured now or not at all.
|
|
408
|
-
|
|
409
|
-
|
|
444
|
+
#
|
|
445
|
+
# J54-3: `bantamkit_dir_for`, not `self.root.parent`. The mkdir below is
|
|
446
|
+
# `parents=True`, so it creates every missing component of `self.root` -- a root
|
|
447
|
+
# that IS the `.bantamkit` directory, or one nested deeper under it, brought a
|
|
448
|
+
# `.bantamkit` into existence while the decision was being taken about some other
|
|
449
|
+
# directory, which meant no decision at all.
|
|
450
|
+
bantamkit_dir = bantamkit_dir_for(self.root)
|
|
451
|
+
bantamkit_dir_existed_before = (
|
|
452
|
+
bantamkit_dir is not None and bantamkit_dir.exists()
|
|
453
|
+
)
|
|
410
454
|
try:
|
|
411
455
|
(self.root / "facts").mkdir(parents=True, exist_ok=True)
|
|
412
456
|
(self.root / "archive").mkdir(parents=True, exist_ok=True)
|
|
@@ -415,7 +459,10 @@ class MemoryStore:
|
|
|
415
459
|
f"memory store could not be created: {self.root}; the directory is not"
|
|
416
460
|
" there and this filesystem would not make it, so nothing was written"
|
|
417
461
|
) from e
|
|
418
|
-
|
|
462
|
+
if bantamkit_dir is not None:
|
|
463
|
+
ensure_bantamkit_gitignore(
|
|
464
|
+
bantamkit_dir, created=not bantamkit_dir_existed_before
|
|
465
|
+
)
|
|
419
466
|
|
|
420
467
|
# ---- ops ----
|
|
421
468
|
|
|
@@ -234,3 +234,67 @@ def test_eventlog_path_unrelated_to_dot_bantamkit_writes_no_gitignore(tmp_path):
|
|
|
234
234
|
|
|
235
235
|
assert log.write_failed is False
|
|
236
236
|
assert not list(tmp_path.glob("**/.gitignore"))
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
# ---------------------------------------------------------------------- J54-3 (2026-09-18)
|
|
240
|
+
#
|
|
241
|
+
# THE SECOND CREATOR THE PROPERTY MISSED, and it is not hypothetical: on the machine this
|
|
242
|
+
# was found on, `~/.bantamkit` holds an empty `facts/` and `archive/` beside `memory/` --
|
|
243
|
+
# a `MemoryStore` was once rooted AT the `.bantamkit` directory itself (`--store
|
|
244
|
+
# ~/.bantamkit`), its `mkdir(parents=True)` brought `~/.bantamkit` into existence, and the
|
|
245
|
+
# gitignore decision was taken about `~` instead, because `_ensure_dirs` looked at
|
|
246
|
+
# `self.root.parent` and nothing else.
|
|
247
|
+
#
|
|
248
|
+
# `self.root.parent` is the right directory for exactly one shape of root,
|
|
249
|
+
# `<x>/.bantamkit/memory`. A root that IS the `.bantamkit` directory, or one nested deeper
|
|
250
|
+
# under it, creates a `.bantamkit` that no call ever decides about -- the hole the
|
|
251
|
+
# docstring names as "a second creator that skipped this call, or that got `created`
|
|
252
|
+
# wrong". `EventLog._append` already walks the ancestors to find the `.bantamkit` among
|
|
253
|
+
# them; this is that same walk, in the other creator.
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
def test_j54_3_a_store_rooted_at_the_bantamkit_directory_itself_gets_the_gitignore(tmp_path):
|
|
257
|
+
root = tmp_path / ".bantamkit"
|
|
258
|
+
assert not root.exists()
|
|
259
|
+
|
|
260
|
+
MemoryStore(root)
|
|
261
|
+
|
|
262
|
+
gitignore = root / ".gitignore"
|
|
263
|
+
assert gitignore.exists()
|
|
264
|
+
assert gitignore.read_bytes() == BANTAMKIT_GITIGNORE_TEXT.encode("utf-8")
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
def test_j54_3_a_store_nested_deeper_under_bantamkit_gets_the_gitignore(tmp_path):
|
|
268
|
+
root = tmp_path / ".bantamkit" / "memory" / "extra"
|
|
269
|
+
assert not (tmp_path / ".bantamkit").exists()
|
|
270
|
+
|
|
271
|
+
MemoryStore(root)
|
|
272
|
+
|
|
273
|
+
gitignore = tmp_path / ".bantamkit" / ".gitignore"
|
|
274
|
+
assert gitignore.exists()
|
|
275
|
+
assert gitignore.read_text(encoding="utf-8") == BANTAMKIT_GITIGNORE_TEXT
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
def test_j54_3_ruling_2_holds_for_a_store_rooted_at_an_existing_bantamkit(tmp_path):
|
|
279
|
+
"""The fix must not over-fire: a `.bantamkit` that predates this call never gets one,
|
|
280
|
+
whichever creator is looking at it."""
|
|
281
|
+
root = tmp_path / ".bantamkit"
|
|
282
|
+
root.mkdir()
|
|
283
|
+
|
|
284
|
+
store = MemoryStore(root)
|
|
285
|
+
store.save("project", "widget-cache", "one line", "body", ())
|
|
286
|
+
|
|
287
|
+
assert not (root / ".gitignore").exists()
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
def test_j54_3_deleting_the_gitignore_under_a_nested_root_stays_deleted(tmp_path):
|
|
291
|
+
root = tmp_path / ".bantamkit" / "memory" / "extra"
|
|
292
|
+
gitignore = tmp_path / ".bantamkit" / ".gitignore"
|
|
293
|
+
|
|
294
|
+
store = MemoryStore(root)
|
|
295
|
+
assert gitignore.exists()
|
|
296
|
+
|
|
297
|
+
gitignore.unlink()
|
|
298
|
+
store.save("project", "widget-cache", "one line", "body", ())
|
|
299
|
+
|
|
300
|
+
assert not gitignore.exists()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/issues/142-settlement-timeout.md
RENAMED
|
File without changes
|
{bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/repo/patches/0009-retry-budget.patch
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bantamkit-0.34.2 → bantamkit-0.34.3}/_assets/evals/devteam/tasks/dt-patch-before-after.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|