bantamkit 0.34.1__tar.gz → 0.34.2__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.1 → bantamkit-0.34.2}/.gitignore +1 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/PKG-INFO +75 -99
- {bantamkit-0.34.1 → bantamkit-0.34.2}/README.md +74 -98
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/__init__.py +1 -1
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_mutmatrix.py +47 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_thread_exception_gate.py +44 -4
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/contracts/default.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/manifest.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/HISTORY.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/README.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/docs/architecture.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/docs/runbook.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/issues/142-settlement-timeout.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/patches/0009-retry-budget.patch +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/__init__.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/config.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/errors.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/posting.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/registry.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/report.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/retry.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/settle.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/src/ledger/validate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/tests/test_posting.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/repo/tests/test_settle.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-error-contract.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-handler-map.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-patch-before-after.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-retry-attempts.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-settlement-config.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-symbol-home.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-trace-blame.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/devteam/tasks/dt-unread-key.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-in-137.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-in-359.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-in-372.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-out-11764.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-out-4137.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-large-out-8022.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-small-137.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-small-261.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/document/tasks/doc-small-388.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/fixtures/.gitkeep +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/fixtures/catalog.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/perturbations/task-completion.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/.gitkeep +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/extract-contact.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/extract-invoice.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/extract-order.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/extract-schedule.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/extract-versions.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/nav-prod-port.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/nav-release-bundle.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-audit-retention.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-cache-ttl.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-db-port.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-deploy.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-env-endpoint.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-oncall-rotation.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-oncall.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-org-quota.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/recall-owner.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-basket-total.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-cheapest.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-compare.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-gadget-value.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-stock-total.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/evals/tasks/shop-total.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/pricing/default.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/profiles/default.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/profiles/patient.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/rubrics/.gitkeep +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/rubrics/code-quality.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/rubrics/grounded-completion.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/rubrics/task-completion.yaml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/schemas/shiftwork-checkpoint.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/skills/.gitkeep +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/skills/file-graph.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/skills/memory.md +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/.gitkeep +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/bantamkit_read.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/bantamkit_status.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/build_identity.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/document_list.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/document_read.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/file_graph.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/memory_compact.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/memory_dream.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/memory_recall.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/memory_save.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/repo_map.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/shiftwork_clock_in.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/shiftwork_clock_out.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/shiftwork_status.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/skill_audit.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/token_ledger.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/_assets/tools/validate_json.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/hatch_build.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/pyproject.toml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/agent.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/assets.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/budget.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/client.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/contract.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/criticreplay.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/critique.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/docmanifest.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/docread.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/evalrun.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/eventlog.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/filegraph.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/hostinstall.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/loopguard.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/mcpreport.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/mcpserver.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/__init__.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/__main__.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/component.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/divergence.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/dream.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/layers.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/memory/store.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/pdfread.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/pricing.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/profile.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/repomap.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/selfupdate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/shiftwork.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/skillaudit.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/statusline.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/structured.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/textutil.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/src/bantamkit/tokenledger.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/cli_exit_status_probe.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/conftest.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/bad-crc.docx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/charref-4301-digits.html +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/charset-table.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/compression-method-9.docx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/corrupt-deflate.docx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/encrypted-member.docx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/encrypted-mimetype.odt +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/eszett-cell-ref.xlsx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/internal-dtd-entity.docx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/rfc2231-charset.eml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/rfc822-nested-twice.eml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/unicode-digit-shared-string.xlsx +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/docread/x-uuencode.eml +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/f8404ab-perturbation-baseline.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/platform-assumption-baseline.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/data/served-tool-surface.json +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/docread_fixtures.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/perturbation_baseline_harness.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/rbp16_effect_probe.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/rbp18_payload_probe.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_adapter.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_agent.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_amendguard.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_bantamkit_gitignore.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_bantamkit_read_tool.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_budget.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_build_identity.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_client.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_compaction_corpus_survey.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_conformance.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_conformance_harness_resilience.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_conformance_suite_table_gate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_contract_fanout.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_criticreplay.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_critique.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_doc_commands_gate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_docread.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_docread_ceilings.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_document_manifest_parity.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_document_setup.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_document_tasks.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_document_tools.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_encoding_gate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_evalrun.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_eventlog.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_field_program_gates.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_field_programs.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_filegraph.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_hostinstall.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_install_shape.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_ladder_statistics.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_launcher_which.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_layers.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_loopguard.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_mcp_endpoint.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_mcpdrift.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_mcpreport.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_mcpserver.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_compact_tool.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_component.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_divergence.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_dream.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_layers.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_memory_store_tripwire.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_newline_gate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_packaging.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_pdfread.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_pinharness_ledger.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_platform_assumption_gate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_pricing.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_repo_map_tool.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_repomap.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_selfupdate.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_served_tool_count_records.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_shiftwork.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_skillaudit.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_status_surface.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_statusline.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_structured.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_tokenledger.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/tests/test_tool_manifest.py +0 -0
- {bantamkit-0.34.1 → bantamkit-0.34.2}/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.2
|
|
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
|
|
@@ -43,26 +43,25 @@ easy.
|
|
|
43
43
|
|
|
44
44
|
| Topic | What you'll find |
|
|
45
45
|
|---|---|
|
|
46
|
-
| [Install the MCP server](#install-the-mcp-server) | Try it
|
|
47
|
-
| [Install once, run offline](#install-once-run-offline) | A venv
|
|
48
|
-
| [Run with pipx at every launch](#run-with-pipx-at-every-launch) | The online form
|
|
49
|
-
| [Connect it to a host](#connect-it-to-a-host) | The same five steps
|
|
46
|
+
| [Install the MCP server](#install-the-mcp-server) | Try it; the `[mcp]` extra |
|
|
47
|
+
| [Install once, run offline](#install-once-run-offline) | A kept venv, or a wheelhouse |
|
|
48
|
+
| [Run with pipx at every launch](#run-with-pipx-at-every-launch) | The online form |
|
|
49
|
+
| [Connect it to a host](#connect-it-to-a-host) | The same five steps per host |
|
|
50
50
|
| [Connect to Claude Code](#connect-to-claude-code) | `--install claude`, `claude mcp remove` |
|
|
51
51
|
| [Connect to Claude Desktop](#connect-to-claude-desktop) | `claude_desktop_config.json` per OS |
|
|
52
52
|
| [Connect to Cursor](#connect-to-cursor) | `~/.cursor/mcp.json` |
|
|
53
|
-
| [Connect to VS Code (GitHub Copilot)](#connect-to-vs-code-github-copilot) | `mcp.json
|
|
53
|
+
| [Connect to VS Code (GitHub Copilot)](#connect-to-vs-code-github-copilot) | `mcp.json`, `servers` key |
|
|
54
54
|
| [Connect other MCP clients](#connect-other-mcp-clients) | Any stdio host |
|
|
55
|
-
| [Configuration](#configuration) | Every flag and
|
|
56
|
-
| [Update](#update) | `--update`, pipx
|
|
55
|
+
| [Configuration](#configuration) | Every flag and variable, with its default |
|
|
56
|
+
| [Update](#update) | `--update`, pipx, uv, then restart |
|
|
57
57
|
| [Troubleshooting](#troubleshooting) | Timeouts, refusals, the wrong store |
|
|
58
|
-
| [What it serves](#what-it-serves) |
|
|
58
|
+
| [What it serves](#what-it-serves) | 12 tools, one prompt, two resource templates |
|
|
59
59
|
| [Requirements](#requirements) | Python and dependencies |
|
|
60
|
-
| [The asset pack](#the-asset-pack) | `--assets-root
|
|
60
|
+
| [The asset pack](#the-asset-pack) | `--assets-root`, `BANTAMKIT_ASSETS` |
|
|
61
61
|
| [The operator CLI: `python -m bantamkit.memory`](#the-operator-cli-python--m-bantamkitmemory) | status, lint, compact, archived, archive, restore |
|
|
62
|
-
| [
|
|
63
|
-
| [Where the Python and Node servers differ](#where-the-python-and-node-servers-differ) | pdf/.doc/.rtf, the CLI name, `build_id` |
|
|
62
|
+
| [Where the Python and Node servers differ](#where-the-python-and-node-servers-differ) | One store; pdf/.doc/.rtf, CLI name, `build_id` |
|
|
64
63
|
| [Development](#development) | Clone, test, lint, conformance |
|
|
65
|
-
| [Documentation](#documentation) |
|
|
64
|
+
| [Documentation](#documentation) | The full docs on GitHub |
|
|
66
65
|
|
|
67
66
|
## Install the MCP server
|
|
68
67
|
|
|
@@ -72,12 +71,11 @@ To try it:
|
|
|
72
71
|
pipx run --spec "bantamkit[mcp]" bantamkit-mcp --assets-root
|
|
73
72
|
```
|
|
74
73
|
|
|
75
|
-
The `[mcp]` extra pulls the MCP SDK. Without it you
|
|
76
|
-
with `bantamkit-mcp needs the MCP extra: pip install "bantamkit[mcp]"`. The uv
|
|
77
|
-
`uvx --from "bantamkit[mcp]" bantamkit-mcp`, is documented but
|
|
74
|
+
The `[mcp]` extra pulls the MCP SDK. Without it you get the library only, and the server exits
|
|
75
|
+
with `bantamkit-mcp needs the MCP extra: pip install "bantamkit[mcp]"`. The uv form,
|
|
76
|
+
`uvx --from "bantamkit[mcp]" bantamkit-mcp`, is documented but not measured here.
|
|
78
77
|
|
|
79
|
-
A host launches the server every session, so
|
|
80
|
-
network. For a host, use **install once**.
|
|
78
|
+
A host launches the server every session, so for a host use **install once**.
|
|
81
79
|
|
|
82
80
|
### Install once, run offline
|
|
83
81
|
|
|
@@ -90,22 +88,21 @@ python -m venv <env>
|
|
|
90
88
|
```
|
|
91
89
|
|
|
92
90
|
`--install` records the venv's console script by absolute path with `"args": []`, so no launch
|
|
93
|
-
needs the network or your shell's PATH. Measured on macOS arm64
|
|
94
|
-
|
|
95
|
-
was not measured.
|
|
91
|
+
needs the network or your shell's PATH. Measured on macOS arm64, it served 12 tools under a GUI
|
|
92
|
+
app's PATH, `/usr/bin:/bin:/usr/sbin:/sbin`; the Windows layout (`<env>\Scripts\`) was not.
|
|
96
93
|
|
|
97
|
-
**No network on the target
|
|
98
|
-
|
|
99
|
-
|
|
94
|
+
**No network on the target? Carry a wheelhouse.** Download it on a machine with the **same OS,
|
|
95
|
+
CPU architecture and Python minor version** (some wheels, such as `pydantic_core`, are built for
|
|
96
|
+
one platform only), copy `wheels/` across, and install from it:
|
|
100
97
|
|
|
101
98
|
```bash
|
|
102
|
-
python -m pip download "bantamkit[mcp]==0.34.
|
|
99
|
+
python -m pip download "bantamkit[mcp]==0.34.2" -d wheels
|
|
103
100
|
python -m venv <env>
|
|
104
|
-
<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.2"
|
|
105
102
|
<env>/bin/bantamkit-mcp --install cursor
|
|
106
103
|
```
|
|
107
104
|
|
|
108
|
-
|
|
105
|
+
For a newer version, repeat both steps with its number. Measurements:
|
|
109
106
|
[docs/install.md → Python package: measured detail](https://github.com/Ink01101011/bantamkit/blob/main/docs/install.md#python-package-measured-detail).
|
|
110
107
|
|
|
111
108
|
### Run with pipx at every launch
|
|
@@ -114,23 +111,21 @@ To move to a newer version, repeat both steps with the new version number. Measu
|
|
|
114
111
|
{"mcpServers": {"bantamkit": {"command": "pipx", "args": ["run", "--spec", "bantamkit[mcp]", "bantamkit-mcp"]}}}
|
|
115
112
|
```
|
|
116
113
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
measured). For Claude Code:
|
|
122
|
-
`claude mcp add bantamkit -s user -- pipx run --spec "bantamkit[mcp]" bantamkit-mcp`.
|
|
114
|
+
No venv to keep, but offline it works **only while pipx's cache lasts**: with the network cut it
|
|
115
|
+
exited 1 on a cold pipx home and 0 after one online run
|
|
116
|
+
([measured](https://github.com/Ink01101011/bantamkit/blob/main/docs/install.md#pipx-run-launches-online-and-is-offline-only-while-pipxs-cache-lasts)).
|
|
117
|
+
For Claude Code: `claude mcp add bantamkit -s user -- pipx run --spec "bantamkit[mcp]" bantamkit-mcp`.
|
|
123
118
|
|
|
124
119
|
## Connect it to a host
|
|
125
120
|
|
|
126
|
-
`bantamkit-mcp --install <host>` (`claude`, `claude-desktop`, `copilot`, `cursor`) writes
|
|
127
|
-
entry
|
|
128
|
-
terminal,
|
|
129
|
-
`<name>.backup-<date>`, keeps
|
|
130
|
-
|
|
121
|
+
`bantamkit-mcp --install <host>` (`claude`, `claude-desktop`, `copilot`, `cursor`) writes an
|
|
122
|
+
entry pointing at the console script you ran. It never prompts, so it behaves the same in a
|
|
123
|
+
terminal, CI or another agent. For the three JSON hosts it backs the file up as
|
|
124
|
+
`<name>.backup-<date>`, keeps its permissions, and refuses a file that does not parse or a
|
|
125
|
+
differing entry without `--force`.
|
|
131
126
|
|
|
132
|
-
|
|
133
|
-
|
|
127
|
+
Every host has the same steps: **1** command, **2** file, **3** entry, **4** confirm, **5** undo
|
|
128
|
+
or re-run. The entry's `command` and `args` depend on the install route:
|
|
134
129
|
|
|
135
130
|
| Route | `command` | `args` |
|
|
136
131
|
|---|---|---|
|
|
@@ -144,11 +139,11 @@ To check a recorded command, run it in a terminal: with nothing on stdin it prin
|
|
|
144
139
|
### Connect to Claude Code
|
|
145
140
|
|
|
146
141
|
1. **Command:** `<env>/bin/bantamkit-mcp --install claude`
|
|
147
|
-
2. **File:** none edited directly. It runs `claude mcp add bantamkit -s user -- <command>`
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
2. **File:** none edited directly. It runs `claude mcp add bantamkit -s user -- <command>` (user
|
|
143
|
+
scope, every project), because `~/.claude.json` is the host's file and holds more than MCP
|
|
144
|
+
configuration.
|
|
150
145
|
3. **Entry:** printed as `ran : claude mcp add bantamkit -s user -- <env>/bin/bantamkit-mcp`.
|
|
151
|
-
4. **Confirm:** `claude mcp list` lists `bantamkit
|
|
146
|
+
4. **Confirm:** `claude mcp list` lists `bantamkit`; in a session, ask the agent to call
|
|
152
147
|
`bantamkit_status`.
|
|
153
148
|
5. **Undo / re-run:** `--force` does not reach Claude Code, and a second add fails with
|
|
154
149
|
`MCP server bantamkit already exists in user config`. Remove first:
|
|
@@ -172,7 +167,7 @@ To check a recorded command, run it in a terminal: with nothing on stdin it prin
|
|
|
172
167
|
|
|
173
168
|
4. **Confirm:** it prints `installed bantamkit into claude-desktop` with file, key and command.
|
|
174
169
|
Fully quit and reopen Claude Desktop, then ask it to call `bantamkit_status`.
|
|
175
|
-
5. **Undo / re-run:**
|
|
170
|
+
5. **Undo / re-run:** no uninstall flag; delete the `bantamkit` entry or restore
|
|
176
171
|
`claude_desktop_config.json.backup-<date>`. A matching re-run prints
|
|
177
172
|
`bantamkit is already installed in claude-desktop and matches`; a differing entry needs `--force`.
|
|
178
173
|
|
|
@@ -190,8 +185,8 @@ To check a recorded command, run it in a terminal: with nothing on stdin it prin
|
|
|
190
185
|
4. **Confirm:** it prints `installed bantamkit into cursor` and `key : mcpServers`. Restart
|
|
191
186
|
Cursor and ask the agent to call `bantamkit_status`.
|
|
192
187
|
5. **Undo / re-run:** delete the entry or restore `mcp.json.backup-<date>`. A differing entry,
|
|
193
|
-
such as an old `pipx run` one, is refused and printed beside the one it
|
|
194
|
-
|
|
188
|
+
such as an old `pipx run` one, is refused and printed beside the proposed one; replace it with
|
|
189
|
+
`<env>/bin/bantamkit-mcp --install cursor --force`.
|
|
195
190
|
|
|
196
191
|
### Connect to VS Code (GitHub Copilot)
|
|
197
192
|
|
|
@@ -199,8 +194,8 @@ To check a recorded command, run it in a terminal: with nothing on stdin it prin
|
|
|
199
194
|
2. **File:** macOS `~/Library/Application Support/Code/User/mcp.json` ·
|
|
200
195
|
Windows `%APPDATA%\Code\User\mcp.json` · Linux `~/.config/Code/User/mcp.json`;
|
|
201
196
|
`.vscode/mcp.json` for one workspace, or **MCP: Open User Configuration**, by hand.
|
|
202
|
-
3. **Entry:** the key is **`servers`**, not `mcpServers`, plus `"type": "stdio"
|
|
203
|
-
|
|
197
|
+
3. **Entry:** the key is **`servers`**, not `mcpServers`, plus `"type": "stdio"` — the detail
|
|
198
|
+
that catches people out:
|
|
204
199
|
|
|
205
200
|
```json
|
|
206
201
|
{"servers": {"bantamkit": {"type": "stdio", "command": "/absolute/path/to/env/bin/bantamkit-mcp", "args": []}}}
|
|
@@ -213,8 +208,8 @@ To check a recorded command, run it in a terminal: with nothing on stdin it prin
|
|
|
213
208
|
|
|
214
209
|
### Connect other MCP clients
|
|
215
210
|
|
|
216
|
-
|
|
217
|
-
|
|
211
|
+
Any stdio MCP host runs the same `command`/`args` and talks JSON-RPC on stdin and stdout; nothing
|
|
212
|
+
here is host-specific. Codex and a generic JSON config:
|
|
218
213
|
[docs/mcp.md → Client setup](https://github.com/Ink01101011/bantamkit/blob/main/docs/mcp.md#client-setup).
|
|
219
214
|
|
|
220
215
|
## Configuration
|
|
@@ -252,22 +247,20 @@ pipx upgrade bantamkit # pipx
|
|
|
252
247
|
uv tool upgrade bantamkit # uv
|
|
253
248
|
```
|
|
254
249
|
|
|
255
|
-
`--update` (`check the package index and update this install if it differs, then exit`)
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
download and install with the new version.
|
|
250
|
+
`--update` (`check the package index and update this install if it differs, then exit`) is the
|
|
251
|
+
only network access here. An editable install, a local file or a source tree is refused with
|
|
252
|
+
exit 1 and a sentence naming the manual route (for a clone, `git pull`). For a wheelhouse, repeat
|
|
253
|
+
the download and install.
|
|
260
254
|
|
|
261
|
-
**Then restart the server in the host** (`/mcp` → reconnect in Claude Code;
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
means an old process.
|
|
255
|
+
**Then restart the server in the host** (`/mcp` → reconnect in Claude Code; fully restart Claude
|
|
256
|
+
Desktop). `bantamkit_status` prints the version **and the `build_id` of the code answering
|
|
257
|
+
you**; a new version with an old `build_id` means an old process.
|
|
265
258
|
|
|
266
259
|
## Troubleshooting
|
|
267
260
|
|
|
268
261
|
| Symptom | Fix |
|
|
269
262
|
|---|---|
|
|
270
|
-
| The host times out; the server never answers |
|
|
263
|
+
| The host times out; the server never answers | A `pipx run` entry with a cold cache and no network. Use [Install once, run offline](#install-once-run-offline) |
|
|
271
264
|
| `ENOENT` from the host | A GUI host does not read your shell rc, so `pipx` is not on its PATH. `--install` records an absolute path |
|
|
272
265
|
| `bantamkit-mcp needs the MCP extra: pip install "bantamkit[mcp]"` | Install with the `[mcp]` extra |
|
|
273
266
|
| `already has a bantamkit entry with different settings … re-run with --force to replace it` | Re-run with `--force`; the old file is kept as `.backup-<date>` |
|
|
@@ -279,7 +272,7 @@ means an old process.
|
|
|
279
272
|
|
|
280
273
|
## What it serves
|
|
281
274
|
|
|
282
|
-
|
|
275
|
+
12 tools, the `bantamkit_status` prompt and two resource templates
|
|
283
276
|
(`bantamkit://skills/{name}`, `bantamkit://rubrics/{name}`):
|
|
284
277
|
|
|
285
278
|
| Tool | What it does |
|
|
@@ -295,12 +288,10 @@ The server serves 12 tools, the `bantamkit_status` prompt and two resource templ
|
|
|
295
288
|
| `shiftwork_status` | report the open cursor |
|
|
296
289
|
| `token_ledger` | what a session cost, read off the host's transcripts |
|
|
297
290
|
| `bantamkit_status` | report store health against its budget |
|
|
298
|
-
| `build_identity` | report the fingerprint of the source on disk |
|
|
291
|
+
| `build_identity` | report the fingerprint of the source on disk, not the executing code |
|
|
299
292
|
|
|
300
|
-
`
|
|
301
|
-
|
|
302
|
-
the served tools in job50 (2026-09-12); the reader itself stays in the library as
|
|
303
|
-
`bantamkit.docread`.
|
|
293
|
+
The document reader `bantamkit_read` left the served tools in job50 (2026-09-12) and stays in the
|
|
294
|
+
library as `bantamkit.docread`.
|
|
304
295
|
|
|
305
296
|
## Requirements
|
|
306
297
|
|
|
@@ -309,20 +300,14 @@ under the `[mcp]` extra.
|
|
|
309
300
|
|
|
310
301
|
## The asset pack
|
|
311
302
|
|
|
312
|
-
Contracts, schemas, eval tasks, rubrics and tool manifests ship inside the package
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
bantamkit-mcp --assets-root
|
|
317
|
-
```
|
|
318
|
-
|
|
319
|
-
It prints the resolved directory and its file count. A build that cannot find the pack fails
|
|
320
|
-
rather than producing an artifact without it — deliberately, because the silent version shipped
|
|
321
|
-
once. `BANTAMKIT_ASSETS` overrides the location.
|
|
303
|
+
Contracts, schemas, eval tasks, rubrics and tool manifests ship inside the package.
|
|
304
|
+
`bantamkit-mcp --assets-root` prints the resolved directory and its file count, and
|
|
305
|
+
`BANTAMKIT_ASSETS` overrides it. A build that cannot find the pack fails instead of shipping
|
|
306
|
+
without it.
|
|
322
307
|
|
|
323
308
|
## The operator CLI: `python -m bantamkit.memory`
|
|
324
309
|
|
|
325
|
-
|
|
310
|
+
Store maintenance, not served over MCP:
|
|
326
311
|
|
|
327
312
|
```bash
|
|
328
313
|
python -m bantamkit.memory status # index size, budget, headroom, archive count
|
|
@@ -333,31 +318,22 @@ python -m bantamkit.memory archive <name>
|
|
|
333
318
|
python -m bantamkit.memory restore <name>
|
|
334
319
|
```
|
|
335
320
|
|
|
336
|
-
`archive` moves a fact out
|
|
321
|
+
`archive` moves a fact out without deleting it; `restore` brings it back by name.
|
|
337
322
|
Full reference: [docs/memory.md → The operator CLI](https://github.com/Ink01101011/bantamkit/blob/main/docs/memory.md#the-operator-cli).
|
|
338
323
|
|
|
339
|
-
## Share a store with the Node server
|
|
340
|
-
|
|
341
|
-
Both servers read and write the same on-disk format, so either can serve one store. A surface in
|
|
342
|
-
one and not the other would be a way for two servers to disagree about one person's data, so
|
|
343
|
-
every feature lands in both in the same change, and a conformance case compares the two answers
|
|
344
|
-
before it counts as ported.
|
|
345
|
-
|
|
346
324
|
## Where the Python and Node servers differ
|
|
347
325
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
- **
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
[divergence table](https://github.com/Ink01101011/bantamkit/blob/main/docs/porting.md#where-the-two-runtimes-deliberately-differ)
|
|
360
|
-
with a conformance case pinning the wording, so the difference cannot drift unnoticed.
|
|
326
|
+
Both servers read and write the same on-disk store. Every feature lands in both in one change, and
|
|
327
|
+
a conformance case compares their answers. Three differences are deliberate, each ruled in the
|
|
328
|
+
[divergence table](https://github.com/Ink01101011/bantamkit/blob/main/docs/porting.md#where-the-two-runtimes-deliberately-differ):
|
|
329
|
+
|
|
330
|
+
- **pdf, `.doc` and `.rtf`:** this side's reader (`bantamkit.docread`) reads them, pdf with a
|
|
331
|
+
stdlib reader and `.doc`/`.rtf` through macOS `/usr/bin/textutil`; the Node side refuses them
|
|
332
|
+
by name.
|
|
333
|
+
- **The operator CLI** is `python -m bantamkit.memory` here and `bantamkit-memory` there, in help
|
|
334
|
+
text and errors alike.
|
|
335
|
+
- **`build_id`** hashes the executing tree, so it differs by construction; `assets_digest` is
|
|
336
|
+
identical, and that is the one that carries meaning.
|
|
361
337
|
|
|
362
338
|
## Development
|
|
363
339
|
|