minima-cli 0.4.10__tar.gz → 0.7.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.
- minima_cli-0.7.0/.github/workflows/release-cli.yml +140 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/.gitignore +4 -0
- minima_cli-0.7.0/AGENTS.md +58 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/CHANGELOG.md +60 -0
- minima_cli-0.7.0/Makefile +56 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/PKG-INFO +11 -32
- {minima_cli-0.4.10 → minima_cli-0.7.0}/README.md +10 -23
- minima_cli-0.7.0/docs/agent-core-architecture.md +748 -0
- minima_cli-0.7.0/docs/agent-core-implementation-plan.md +168 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/api-reference.md +2 -1
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/configuration.md +6 -1
- minima_cli-0.7.0/docs/harness.md +22 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/publishing.md +17 -20
- minima_cli-0.7.0/docs-site/.dockerignore +5 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs-site/Dockerfile +15 -6
- minima_cli-0.7.0/docs-site/components/Accordion.tsx +38 -0
- minima_cli-0.7.0/docs-site/components/Badge.tsx +49 -0
- minima_cli-0.7.0/docs-site/components/Card.tsx +148 -0
- minima_cli-0.7.0/docs-site/components/CardGroup.tsx +22 -0
- minima_cli-0.7.0/docs-site/components/Frame.tsx +35 -0
- minima_cli-0.7.0/docs-site/components/Note.tsx +41 -0
- minima_cli-0.7.0/docs-site/components/PageHeader.tsx +28 -0
- minima_cli-0.7.0/docs-site/components/Steps.tsx +76 -0
- minima_cli-0.7.0/docs-site/components/Tabs.tsx +70 -0
- minima_cli-0.7.0/docs-site/components/index.ts +9 -0
- minima_cli-0.7.0/docs-site/components/sidebar.ts +95 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs-site/netlify.toml +1 -1
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs-site/nginx.conf +12 -13
- minima_cli-0.7.0/docs-site/package-lock.json +10525 -0
- minima_cli-0.7.0/docs-site/package.json +22 -0
- minima_cli-0.4.10/docs-site/src/content/docs/api-reference.mdx → minima_cli-0.7.0/docs-site/pages/api-reference/endpoints.mdx +64 -20
- minima_cli-0.7.0/docs-site/pages/harness/cli.mdx +96 -0
- minima_cli-0.7.0/docs-site/pages/harness/configuration.mdx +108 -0
- minima_cli-0.7.0/docs-site/pages/harness/installation.mdx +101 -0
- minima_cli-0.7.0/docs-site/pages/harness/interactive.mdx +82 -0
- minima_cli-0.7.0/docs-site/pages/harness/overview.mdx +49 -0
- minima_cli-0.7.0/docs-site/pages/harness/routing.mdx +54 -0
- minima_cli-0.7.0/docs-site/pages/harness/sessions.mdx +40 -0
- minima_cli-0.7.0/docs-site/pages/harness/tools.mdx +80 -0
- minima_cli-0.7.0/docs-site/pages/harness/troubleshooting.mdx +56 -0
- {minima_cli-0.4.10/docs-site/src/content/docs → minima_cli-0.7.0/docs-site/pages}/index.mdx +34 -26
- {minima_cli-0.4.10/docs-site/src/content/docs → minima_cli-0.7.0/docs-site/pages/sdk}/client-sdk.mdx +11 -9
- {minima_cli-0.4.10/docs-site/src/content/docs → minima_cli-0.7.0/docs-site/pages/sdk}/concepts.mdx +9 -7
- {minima_cli-0.4.10/docs-site/src/content/docs → minima_cli-0.7.0/docs-site/pages/sdk}/examples.mdx +13 -10
- minima_cli-0.7.0/docs-site/pages/sdk/getting-started.mdx +71 -0
- minima_cli-0.7.0/docs-site/public/images/favicon.png +0 -0
- minima_cli-0.7.0/docs-site/public/images/logo-dark.svg +11 -0
- minima_cli-0.7.0/docs-site/public/images/logo-light.svg +11 -0
- minima_cli-0.7.0/docs-site/public/styles/global.css +63 -0
- minima_cli-0.7.0/docs-site/tsconfig.json +20 -0
- minima_cli-0.7.0/docs-site/vocs.config.ts +96 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/README.md +0 -1
- minima_cli-0.7.0/maybe.js +64 -0
- minima_cli-0.7.0/maybe.ts +84 -0
- minima_cli-0.7.0/packages/tui/.gitignore +4 -0
- minima_cli-0.7.0/packages/tui/README.md +73 -0
- minima_cli-0.7.0/packages/tui/biome.json +25 -0
- minima_cli-0.7.0/packages/tui/bun.lock +323 -0
- minima_cli-0.7.0/packages/tui/package.json +43 -0
- minima_cli-0.7.0/packages/tui/scripts/build-all.ts +31 -0
- minima_cli-0.7.0/packages/tui/scripts/build.ts +43 -0
- minima_cli-0.7.0/packages/tui/scripts/install.sh +59 -0
- minima_cli-0.7.0/packages/tui/scripts/stub-devtools.ts +19 -0
- minima_cli-0.7.0/packages/tui/src/agent/agent.ts +256 -0
- minima_cli-0.7.0/packages/tui/src/agent/events.ts +119 -0
- minima_cli-0.7.0/packages/tui/src/agent/index.ts +10 -0
- minima_cli-0.7.0/packages/tui/src/agent/loop.ts +323 -0
- minima_cli-0.7.0/packages/tui/src/agent/state.ts +112 -0
- minima_cli-0.7.0/packages/tui/src/agent/tools.ts +79 -0
- minima_cli-0.7.0/packages/tui/src/ai/compat.ts +21 -0
- minima_cli-0.7.0/packages/tui/src/ai/events.ts +136 -0
- minima_cli-0.7.0/packages/tui/src/ai/index.ts +28 -0
- minima_cli-0.7.0/packages/tui/src/ai/provider_catalog.ts +114 -0
- minima_cli-0.7.0/packages/tui/src/ai/provider_quirks.ts +25 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/_common.ts +50 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/anthropic.ts +286 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/base.ts +50 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/faux.ts +161 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/google.ts +294 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/index.ts +71 -0
- minima_cli-0.7.0/packages/tui/src/ai/providers/openai_compat.ts +338 -0
- minima_cli-0.7.0/packages/tui/src/ai/registry.ts +44 -0
- minima_cli-0.7.0/packages/tui/src/ai/stream.ts +81 -0
- minima_cli-0.7.0/packages/tui/src/ai/types.ts +224 -0
- minima_cli-0.7.0/packages/tui/src/ai/usage.ts +34 -0
- minima_cli-0.7.0/packages/tui/src/cli/main.ts +605 -0
- minima_cli-0.7.0/packages/tui/src/db/metrics.ts +167 -0
- minima_cli-0.7.0/packages/tui/src/db/minima_db.ts +442 -0
- minima_cli-0.7.0/packages/tui/src/db/rehydrate.ts +80 -0
- minima_cli-0.7.0/packages/tui/src/db/sink.ts +161 -0
- minima_cli-0.7.0/packages/tui/src/errtext.ts +11 -0
- minima_cli-0.7.0/packages/tui/src/index.ts +14 -0
- minima_cli-0.7.0/packages/tui/src/minima/budget.ts +251 -0
- minima_cli-0.7.0/packages/tui/src/minima/catalog.ts +150 -0
- minima_cli-0.7.0/packages/tui/src/minima/client.ts +196 -0
- minima_cli-0.7.0/packages/tui/src/minima/config.ts +77 -0
- minima_cli-0.7.0/packages/tui/src/minima/errors.ts +37 -0
- minima_cli-0.7.0/packages/tui/src/minima/index.ts +31 -0
- minima_cli-0.7.0/packages/tui/src/minima/judge.ts +173 -0
- minima_cli-0.7.0/packages/tui/src/minima/mapping.ts +105 -0
- minima_cli-0.7.0/packages/tui/src/minima/memory.ts +171 -0
- minima_cli-0.7.0/packages/tui/src/minima/meter.ts +139 -0
- minima_cli-0.7.0/packages/tui/src/minima/mubit_memory_factory.ts +32 -0
- minima_cli-0.7.0/packages/tui/src/minima/router.ts +277 -0
- minima_cli-0.7.0/packages/tui/src/minima/runtime.ts +651 -0
- minima_cli-0.7.0/packages/tui/src/minima/schemas.ts +277 -0
- minima_cli-0.7.0/packages/tui/src/minima/spawn.ts +225 -0
- minima_cli-0.7.0/packages/tui/src/run_modes.ts +84 -0
- minima_cli-0.7.0/packages/tui/src/session/index.ts +10 -0
- minima_cli-0.7.0/packages/tui/src/session/store.ts +275 -0
- minima_cli-0.7.0/packages/tui/src/tools/_io.ts +68 -0
- minima_cli-0.7.0/packages/tui/src/tools/at_mentions.ts +37 -0
- minima_cli-0.7.0/packages/tui/src/tools/bash.ts +133 -0
- minima_cli-0.7.0/packages/tui/src/tools/builtin.ts +56 -0
- minima_cli-0.7.0/packages/tui/src/tools/edit.ts +56 -0
- minima_cli-0.7.0/packages/tui/src/tools/glob.ts +37 -0
- minima_cli-0.7.0/packages/tui/src/tools/grep.ts +85 -0
- minima_cli-0.7.0/packages/tui/src/tools/index.ts +8 -0
- minima_cli-0.7.0/packages/tui/src/tools/ls.ts +45 -0
- minima_cli-0.7.0/packages/tui/src/tools/read.ts +40 -0
- minima_cli-0.7.0/packages/tui/src/tools/schema.ts +78 -0
- minima_cli-0.7.0/packages/tui/src/tools/task.ts +289 -0
- minima_cli-0.7.0/packages/tui/src/tools/todowrite.ts +65 -0
- minima_cli-0.7.0/packages/tui/src/tools/types.ts +9 -0
- minima_cli-0.7.0/packages/tui/src/tools/web_fetch.ts +116 -0
- minima_cli-0.7.0/packages/tui/src/tools/write.ts +37 -0
- minima_cli-0.7.0/packages/tui/src/tui/app.tsx +1997 -0
- minima_cli-0.7.0/packages/tui/src/tui/auth.ts +231 -0
- minima_cli-0.7.0/packages/tui/src/tui/child_tree.tsx +62 -0
- minima_cli-0.7.0/packages/tui/src/tui/compact.ts +62 -0
- minima_cli-0.7.0/packages/tui/src/tui/config_store.ts +284 -0
- minima_cli-0.7.0/packages/tui/src/tui/context.ts +85 -0
- minima_cli-0.7.0/packages/tui/src/tui/layout.ts +164 -0
- minima_cli-0.7.0/packages/tui/src/tui/messages.tsx +232 -0
- minima_cli-0.7.0/packages/tui/src/tui/model-picker.tsx +106 -0
- minima_cli-0.7.0/packages/tui/src/tui/mouse-scroll.ts +72 -0
- minima_cli-0.7.0/packages/tui/src/tui/permissions.ts +171 -0
- minima_cli-0.7.0/packages/tui/src/tui/projects.ts +98 -0
- minima_cli-0.7.0/packages/tui/src/tui/routing-warnings.ts +31 -0
- minima_cli-0.7.0/packages/tui/src/tui/status.tsx +134 -0
- minima_cli-0.7.0/packages/tui/src/tui/text-input.tsx +110 -0
- minima_cli-0.7.0/packages/tui/src/types.d.ts +10 -0
- minima_cli-0.7.0/packages/tui/src/version.ts +9 -0
- minima_cli-0.7.0/packages/tui/tests/agent.test.ts +226 -0
- minima_cli-0.7.0/packages/tui/tests/ai.test.ts +149 -0
- minima_cli-0.7.0/packages/tui/tests/anthropic.test.ts +197 -0
- minima_cli-0.7.0/packages/tui/tests/auth.test.ts +188 -0
- minima_cli-0.7.0/packages/tui/tests/budget.test.ts +262 -0
- minima_cli-0.7.0/packages/tui/tests/candidate-filter.test.ts +129 -0
- minima_cli-0.7.0/packages/tui/tests/catalog.test.ts +135 -0
- minima_cli-0.7.0/packages/tui/tests/client.test.ts +201 -0
- minima_cli-0.7.0/packages/tui/tests/config_store.test.ts +89 -0
- minima_cli-0.7.0/packages/tui/tests/db.test.ts +367 -0
- minima_cli-0.7.0/packages/tui/tests/effort.test.ts +157 -0
- minima_cli-0.7.0/packages/tui/tests/error-ux.test.ts +74 -0
- minima_cli-0.7.0/packages/tui/tests/google.test.ts +171 -0
- minima_cli-0.7.0/packages/tui/tests/isolation.test.ts +155 -0
- minima_cli-0.7.0/packages/tui/tests/judge.test.ts +145 -0
- minima_cli-0.7.0/packages/tui/tests/ladder.test.ts +207 -0
- minima_cli-0.7.0/packages/tui/tests/layout.test.ts +150 -0
- minima_cli-0.7.0/packages/tui/tests/memory.test.ts +158 -0
- minima_cli-0.7.0/packages/tui/tests/minima.test.ts +363 -0
- minima_cli-0.7.0/packages/tui/tests/minima_memory.test.ts +209 -0
- minima_cli-0.7.0/packages/tui/tests/openai_compat.test.ts +174 -0
- minima_cli-0.7.0/packages/tui/tests/run_modes.test.ts +154 -0
- minima_cli-0.7.0/packages/tui/tests/session.test.ts +119 -0
- minima_cli-0.7.0/packages/tui/tests/spawn.test.ts +351 -0
- minima_cli-0.7.0/packages/tui/tests/task.test.ts +273 -0
- minima_cli-0.7.0/packages/tui/tests/thinking.test.ts +207 -0
- minima_cli-0.7.0/packages/tui/tests/tools.test.ts +164 -0
- minima_cli-0.7.0/packages/tui/tsconfig.json +26 -0
- minima_cli-0.7.0/packaging/homebrew/README.md +48 -0
- minima_cli-0.7.0/packaging/homebrew/render_formula.py +105 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/pyproject.toml +8 -14
- minima_cli-0.7.0/runs/20260624_103307/memory_audit.json +48 -0
- minima_cli-0.7.0/runs/20260624_103307/recall_debug.jsonl +8 -0
- minima_cli-0.7.0/runs/20260624_103307/tasks.jsonl +7 -0
- minima_cli-0.7.0/runs/playground_p1/_manifest.json +55 -0
- minima_cli-0.7.0/runs/playground_p1/calibration.json +180 -0
- minima_cli-0.7.0/runs/playground_p1/feedback.json +9 -0
- minima_cli-0.7.0/runs/playground_p1/health.json +22 -0
- minima_cli-0.7.0/runs/playground_p1/models.json +379 -0
- minima_cli-0.7.0/runs/playground_p1/recommend.json +200 -0
- minima_cli-0.7.0/runs/playground_p1/savings.json +42 -0
- minima_cli-0.7.0/runs/playground_p1/strategies.json +1207 -0
- minima_cli-0.7.0/runs/playground_p1/workflow.json +414 -0
- minima_cli-0.7.0/scripts/eval/classify_dataset.json +46 -0
- minima_cli-0.7.0/scripts/eval/eval_classify.py +116 -0
- minima_cli-0.7.0/scripts/test-routing-web.ts +176 -0
- minima_cli-0.7.0/scripts/test-routing.sh +66 -0
- minima_cli-0.7.0/scripts/test-routing.ts +159 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/auth.py +9 -3
- minima_cli-0.7.0/src/minima/api/routers/capabilities.py +42 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/feedback.py +16 -4
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/strategies.py +11 -3
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/config.py +6 -1
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/llm/base.py +6 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/llm/gemini.py +6 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/main.py +2 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/metrics/calibration.py +5 -0
- minima_cli-0.7.0/src/minima/recommender/classify.py +580 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/engine.py +119 -49
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/escalation.py +17 -0
- minima_cli-0.7.0/src/minima/schemas/capabilities.py +15 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/feedback.py +9 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/recommend.py +31 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/strategies.py +1 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/version.py +1 -1
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/conftest.py +28 -0
- minima_cli-0.7.0/tests/eval/prompt_length_benchmark.py +296 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/factories.py +2 -0
- minima_cli-0.7.0/tests/integration/test_escalation_reasoner.py +147 -0
- minima_cli-0.7.0/tests/integration/test_feedback_loop.py +166 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_recommend_api.py +29 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_strategies_api.py +21 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_escalation_fixes.py +13 -9
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_full_surface_live.py +2 -0
- minima_cli-0.7.0/tests/unit/test_capabilities.py +55 -0
- minima_cli-0.7.0/tests/unit/test_classify_benchmark.py +247 -0
- minima_cli-0.7.0/tests/unit/test_classify_keys.py +131 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_neighbor_classify.py +14 -1
- minima_cli-0.7.0/tests/unit/test_prompt_length_benchmark.py +43 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_reasoner.py +27 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_store_backends.py +28 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/uv.lock +3 -205
- minima_cli-0.4.10/AGENTS.md +0 -90
- minima_cli-0.4.10/Makefile +0 -41
- minima_cli-0.4.10/agent/task_set.py +0 -8
- minima_cli-0.4.10/docs/harness.md +0 -223
- minima_cli-0.4.10/docs-site/astro.config.mjs +0 -44
- minima_cli-0.4.10/docs-site/package-lock.json +0 -7460
- minima_cli-0.4.10/docs-site/package.json +0 -19
- minima_cli-0.4.10/docs-site/public/favicon.svg +0 -5
- minima_cli-0.4.10/docs-site/src/assets/logo.svg +0 -6
- minima_cli-0.4.10/docs-site/src/content/config.ts +0 -7
- minima_cli-0.4.10/docs-site/src/content/docs/getting-started.mdx +0 -72
- minima_cli-0.4.10/docs-site/src/styles/custom.css +0 -100
- minima_cli-0.4.10/docs-site/tsconfig.json +0 -6
- minima_cli-0.4.10/examples/harness_warmup.py +0 -333
- minima_cli-0.4.10/packaging/homebrew/README.md +0 -82
- minima_cli-0.4.10/packaging/homebrew/gen_resources.py +0 -185
- minima_cli-0.4.10/packaging/homebrew/minima.rb +0 -339
- minima_cli-0.4.10/src/minima/recommender/classify.py +0 -165
- minima_cli-0.4.10/src/minima_harness/LICENSE_PI +0 -32
- minima_cli-0.4.10/src/minima_harness/__init__.py +0 -16
- minima_cli-0.4.10/src/minima_harness/agent/__init__.py +0 -72
- minima_cli-0.4.10/src/minima_harness/agent/agent.py +0 -276
- minima_cli-0.4.10/src/minima_harness/agent/events.py +0 -124
- minima_cli-0.4.10/src/minima_harness/agent/loop.py +0 -311
- minima_cli-0.4.10/src/minima_harness/agent/state.py +0 -79
- minima_cli-0.4.10/src/minima_harness/agent/tools.py +0 -97
- minima_cli-0.4.10/src/minima_harness/ai/__init__.py +0 -66
- minima_cli-0.4.10/src/minima_harness/ai/compat.py +0 -71
- minima_cli-0.4.10/src/minima_harness/ai/errors.py +0 -96
- minima_cli-0.4.10/src/minima_harness/ai/events.py +0 -117
- minima_cli-0.4.10/src/minima_harness/ai/openrouter_catalog.py +0 -153
- minima_cli-0.4.10/src/minima_harness/ai/provider_catalog.py +0 -299
- minima_cli-0.4.10/src/minima_harness/ai/provider_quirks.py +0 -37
- minima_cli-0.4.10/src/minima_harness/ai/providers/__init__.py +0 -75
- minima_cli-0.4.10/src/minima_harness/ai/providers/_common.py +0 -48
- minima_cli-0.4.10/src/minima_harness/ai/providers/anthropic.py +0 -290
- minima_cli-0.4.10/src/minima_harness/ai/providers/base.py +0 -65
- minima_cli-0.4.10/src/minima_harness/ai/providers/faux.py +0 -173
- minima_cli-0.4.10/src/minima_harness/ai/providers/google.py +0 -221
- minima_cli-0.4.10/src/minima_harness/ai/providers/openai_compat.py +0 -278
- minima_cli-0.4.10/src/minima_harness/ai/registry.py +0 -184
- minima_cli-0.4.10/src/minima_harness/ai/stream.py +0 -82
- minima_cli-0.4.10/src/minima_harness/ai/tools.py +0 -51
- minima_cli-0.4.10/src/minima_harness/ai/types.py +0 -204
- minima_cli-0.4.10/src/minima_harness/ai/usage.py +0 -41
- minima_cli-0.4.10/src/minima_harness/minima/__init__.py +0 -40
- minima_cli-0.4.10/src/minima_harness/minima/cache.py +0 -102
- minima_cli-0.4.10/src/minima_harness/minima/config.py +0 -85
- minima_cli-0.4.10/src/minima_harness/minima/goals.py +0 -226
- minima_cli-0.4.10/src/minima_harness/minima/judge.py +0 -144
- minima_cli-0.4.10/src/minima_harness/minima/mapping.py +0 -147
- minima_cli-0.4.10/src/minima_harness/minima/meter.py +0 -143
- minima_cli-0.4.10/src/minima_harness/minima/router.py +0 -220
- minima_cli-0.4.10/src/minima_harness/minima/runtime.py +0 -544
- minima_cli-0.4.10/src/minima_harness/minima/signals.py +0 -195
- minima_cli-0.4.10/src/minima_harness/session/__init__.py +0 -14
- minima_cli-0.4.10/src/minima_harness/session/format.py +0 -35
- minima_cli-0.4.10/src/minima_harness/session/store.py +0 -236
- minima_cli-0.4.10/src/minima_harness/tasks/__init__.py +0 -17
- minima_cli-0.4.10/src/minima_harness/tasks/task_set.py +0 -78
- minima_cli-0.4.10/src/minima_harness/tools/__init__.py +0 -7
- minima_cli-0.4.10/src/minima_harness/tools/_io.py +0 -34
- minima_cli-0.4.10/src/minima_harness/tools/bash.py +0 -70
- minima_cli-0.4.10/src/minima_harness/tools/builtin.py +0 -23
- minima_cli-0.4.10/src/minima_harness/tools/edit.py +0 -50
- minima_cli-0.4.10/src/minima_harness/tools/find.py +0 -38
- minima_cli-0.4.10/src/minima_harness/tools/grep.py +0 -73
- minima_cli-0.4.10/src/minima_harness/tools/ls.py +0 -35
- minima_cli-0.4.10/src/minima_harness/tools/read.py +0 -38
- minima_cli-0.4.10/src/minima_harness/tools/tasks.py +0 -75
- minima_cli-0.4.10/src/minima_harness/tools/write.py +0 -36
- minima_cli-0.4.10/src/minima_harness/tui/__init__.py +0 -3
- minima_cli-0.4.10/src/minima_harness/tui/analytics.py +0 -111
- minima_cli-0.4.10/src/minima_harness/tui/app.py +0 -1927
- minima_cli-0.4.10/src/minima_harness/tui/bridge.py +0 -103
- minima_cli-0.4.10/src/minima_harness/tui/cli.py +0 -227
- minima_cli-0.4.10/src/minima_harness/tui/clipboard.py +0 -60
- minima_cli-0.4.10/src/minima_harness/tui/commands.py +0 -49
- minima_cli-0.4.10/src/minima_harness/tui/compaction.py +0 -17
- minima_cli-0.4.10/src/minima_harness/tui/config_cli.py +0 -141
- minima_cli-0.4.10/src/minima_harness/tui/config_store.py +0 -237
- minima_cli-0.4.10/src/minima_harness/tui/context.py +0 -93
- minima_cli-0.4.10/src/minima_harness/tui/customize.py +0 -95
- minima_cli-0.4.10/src/minima_harness/tui/diff.py +0 -53
- minima_cli-0.4.10/src/minima_harness/tui/editor.py +0 -43
- minima_cli-0.4.10/src/minima_harness/tui/extensions.py +0 -84
- minima_cli-0.4.10/src/minima_harness/tui/extra_models.py +0 -52
- minima_cli-0.4.10/src/minima_harness/tui/history.py +0 -71
- minima_cli-0.4.10/src/minima_harness/tui/mubit.py +0 -295
- minima_cli-0.4.10/src/minima_harness/tui/overlays.py +0 -593
- minima_cli-0.4.10/src/minima_harness/tui/packages.py +0 -59
- minima_cli-0.4.10/src/minima_harness/tui/run_modes.py +0 -66
- minima_cli-0.4.10/src/minima_harness/tui/theme.py +0 -77
- minima_cli-0.4.10/src/minima_harness/tui/welcome.py +0 -83
- minima_cli-0.4.10/src/minima_harness/tui/widgets/__init__.py +0 -3
- minima_cli-0.4.10/src/minima_harness/tui/widgets/banner.py +0 -38
- minima_cli-0.4.10/src/minima_harness/tui/widgets/editor.py +0 -83
- minima_cli-0.4.10/src/minima_harness/tui/widgets/footer.py +0 -73
- minima_cli-0.4.10/src/minima_harness/tui/widgets/messages.py +0 -151
- minima_cli-0.4.10/src/minima_harness/tui/widgets/status.py +0 -57
- minima_cli-0.4.10/tests/harness/__init__.py +0 -0
- minima_cli-0.4.10/tests/harness/session/__init__.py +0 -0
- minima_cli-0.4.10/tests/harness/session/test_format.py +0 -23
- minima_cli-0.4.10/tests/harness/session/test_manager.py +0 -85
- minima_cli-0.4.10/tests/harness/session/test_store.py +0 -109
- minima_cli-0.4.10/tests/harness/test_agent_loop.py +0 -300
- minima_cli-0.4.10/tests/harness/test_anthropic_mapping.py +0 -310
- minima_cli-0.4.10/tests/harness/test_auth_reroute.py +0 -408
- minima_cli-0.4.10/tests/harness/test_cache.py +0 -65
- minima_cli-0.4.10/tests/harness/test_catalog_overlay.py +0 -104
- minima_cli-0.4.10/tests/harness/test_common_and_wire.py +0 -82
- minima_cli-0.4.10/tests/harness/test_compat.py +0 -74
- minima_cli-0.4.10/tests/harness/test_errors.py +0 -99
- minima_cli-0.4.10/tests/harness/test_goals.py +0 -153
- minima_cli-0.4.10/tests/harness/test_google_mapping.py +0 -182
- minima_cli-0.4.10/tests/harness/test_judge.py +0 -62
- minima_cli-0.4.10/tests/harness/test_live.py +0 -58
- minima_cli-0.4.10/tests/harness/test_mapping.py +0 -53
- minima_cli-0.4.10/tests/harness/test_minima_e2e.py +0 -150
- minima_cli-0.4.10/tests/harness/test_openai_compat_sse.py +0 -142
- minima_cli-0.4.10/tests/harness/test_openrouter_catalog.py +0 -134
- minima_cli-0.4.10/tests/harness/test_phase0_smoke.py +0 -162
- minima_cli-0.4.10/tests/harness/test_phase_a.py +0 -272
- minima_cli-0.4.10/tests/harness/test_phase_b.py +0 -119
- minima_cli-0.4.10/tests/harness/test_phase_c.py +0 -102
- minima_cli-0.4.10/tests/harness/test_provider_catalog.py +0 -102
- minima_cli-0.4.10/tests/harness/test_provider_quirks.py +0 -14
- minima_cli-0.4.10/tests/harness/test_provider_registration.py +0 -33
- minima_cli-0.4.10/tests/harness/test_provider_wiring.py +0 -166
- minima_cli-0.4.10/tests/harness/test_runtime.py +0 -491
- minima_cli-0.4.10/tests/harness/test_signals.py +0 -264
- minima_cli-0.4.10/tests/harness/tools/__init__.py +0 -0
- minima_cli-0.4.10/tests/harness/tools/test_agent_smoke.py +0 -21
- minima_cli-0.4.10/tests/harness/tools/test_bash.py +0 -41
- minima_cli-0.4.10/tests/harness/tools/test_builtin.py +0 -17
- minima_cli-0.4.10/tests/harness/tools/test_edit.py +0 -42
- minima_cli-0.4.10/tests/harness/tools/test_find.py +0 -22
- minima_cli-0.4.10/tests/harness/tools/test_grep.py +0 -30
- minima_cli-0.4.10/tests/harness/tools/test_io.py +0 -38
- minima_cli-0.4.10/tests/harness/tools/test_ls.py +0 -26
- minima_cli-0.4.10/tests/harness/tools/test_read.py +0 -34
- minima_cli-0.4.10/tests/harness/tools/test_write.py +0 -21
- minima_cli-0.4.10/tests/harness/tui/__init__.py +0 -0
- minima_cli-0.4.10/tests/harness/tui/test_analytics.py +0 -48
- minima_cli-0.4.10/tests/harness/tui/test_app_pilot.py +0 -70
- minima_cli-0.4.10/tests/harness/tui/test_bridge.py +0 -64
- minima_cli-0.4.10/tests/harness/tui/test_clipboard.py +0 -80
- minima_cli-0.4.10/tests/harness/tui/test_command_popup.py +0 -46
- minima_cli-0.4.10/tests/harness/tui/test_commands.py +0 -36
- minima_cli-0.4.10/tests/harness/tui/test_config.py +0 -279
- minima_cli-0.4.10/tests/harness/tui/test_context.py +0 -42
- minima_cli-0.4.10/tests/harness/tui/test_customize.py +0 -31
- minima_cli-0.4.10/tests/harness/tui/test_decision_card.py +0 -231
- minima_cli-0.4.10/tests/harness/tui/test_diff.py +0 -45
- minima_cli-0.4.10/tests/harness/tui/test_editor.py +0 -39
- minima_cli-0.4.10/tests/harness/tui/test_editor_widget.py +0 -53
- minima_cli-0.4.10/tests/harness/tui/test_export.py +0 -37
- minima_cli-0.4.10/tests/harness/tui/test_extensions.py +0 -76
- minima_cli-0.4.10/tests/harness/tui/test_goals_tui.py +0 -183
- minima_cli-0.4.10/tests/harness/tui/test_history_sessions.py +0 -151
- minima_cli-0.4.10/tests/harness/tui/test_messages.py +0 -64
- minima_cli-0.4.10/tests/harness/tui/test_mouse_copy.py +0 -101
- minima_cli-0.4.10/tests/harness/tui/test_mubit.py +0 -67
- minima_cli-0.4.10/tests/harness/tui/test_optimize.py +0 -118
- minima_cli-0.4.10/tests/harness/tui/test_overlays.py +0 -106
- minima_cli-0.4.10/tests/harness/tui/test_p2.py +0 -61
- minima_cli-0.4.10/tests/harness/tui/test_p3.py +0 -65
- minima_cli-0.4.10/tests/harness/tui/test_p5.py +0 -89
- minima_cli-0.4.10/tests/harness/tui/test_permissions.py +0 -142
- minima_cli-0.4.10/tests/harness/tui/test_predictability.py +0 -77
- minima_cli-0.4.10/tests/harness/tui/test_prompt_layers.py +0 -106
- minima_cli-0.4.10/tests/harness/tui/test_queue.py +0 -59
- minima_cli-0.4.10/tests/harness/tui/test_run_modes.py +0 -41
- minima_cli-0.4.10/tests/harness/tui/test_status.py +0 -24
- minima_cli-0.4.10/tests/harness/tui/test_status_bar.py +0 -45
- minima_cli-0.4.10/tests/harness/tui/test_theme.py +0 -21
- minima_cli-0.4.10/tests/harness/tui/test_thoughts.py +0 -70
- minima_cli-0.4.10/tests/harness/tui/test_tool_render.py +0 -65
- minima_cli-0.4.10/tests/harness/tui/test_ux.py +0 -228
- minima_cli-0.4.10/tests/harness/tui/test_welcome.py +0 -113
- minima_cli-0.4.10/tests/harness/tui/test_widgets.py +0 -126
- minima_cli-0.4.10/tests/integration/test_escalation_reasoner.py +0 -71
- minima_cli-0.4.10/tests/integration/test_feedback_loop.py +0 -81
- minima_cli-0.4.10/tests/unit/test_classify_keys.py +0 -53
- {minima_cli-0.4.10 → minima_cli-0.7.0}/.dockerignore +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/.env.example +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/.github/workflows/prod.yml +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/.github/workflows/staging.yml +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/Dockerfile +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/LICENSE +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/client_sdk/minima_client/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/client_sdk/minima_client/autocapture.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/client_sdk/minima_client/client.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/client_sdk/minima_client/errors.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/README.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/client-sdk.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/concepts.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/examples.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/getting-started.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/goals-feature-plan.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/multi-tenancy.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/operations.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/docs/seeding.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/01_quickstart.sh +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/02_recommend_and_feedback.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/03_constraints_and_tradeoff.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/04_workflow.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/05_autocapture.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/06_routed_llm_call.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/07_multitenant_admin.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_escalation.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_escalation_learn.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_gemini.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_retention.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_warmup.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/agent_warmup_vary.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/metrics_demo.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/examples/smoke_test.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_125009/recall_debug.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_125009/strategies_run1.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_125009/strategies_run2.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_125009/strategies_run3.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_125009/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/recall_debug.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/strategies_run1.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/strategies_run2.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/strategies_run3.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/strategies_run4.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/strategies_run5.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_130252/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_182838/recall_debug.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_182838/strategies_run1.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_182838/strategies_run2.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_182838/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/memory_audit.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/recall_debug.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/strategies_run1.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/strategies_run2.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/strategies_run3.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/strategies_run4.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/strategies_run5.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260612_183343/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/memory_audit.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/recall_debug.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/strategies_run1.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/strategies_run2.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/strategies_run3.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/strategies_run4.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/strategies_run5.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/20260615_101732/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_133108/cold_probe.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_133108/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_133108/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_134209/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_134209/cold_probe.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_134209/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalate_20260615_134209/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalation_20260612_201825/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalation_20260612_201825/results.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/escalation_20260612_201825/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/retention_20260612_201828/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/retention_20260612_201828/results.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/retention_20260612_201828/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/warmupvary_20260615_123818/REPORT.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/warmupvary_20260615_123818/summary.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/runs/warmupvary_20260615_123818/tasks.jsonl +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/errors.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/calibration.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/health.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/models.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/recommend.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/api/routers/savings.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/data/capability_priors.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/data/model_aliases.json +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/merge.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/refresh.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/sources/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/sources/litellm.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/sources/openrouter.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/catalog/store.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/deps.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/llm/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/llm/anthropic.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/llm/registry.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/logging.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/memory/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/memory/adapter.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/memory/keys.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/memory/records.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/memory/threadpool.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/metrics/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/metrics/report.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/metrics/savings.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/_pg_pool.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/_redis_client.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/aggregate.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/decisionlog.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/durablerefs.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/propensity.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/recstore.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/score.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/recommender/types.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/common.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/models_catalog.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/savings.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/schemas/workflow.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/items.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/llmrouterbench.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/routerbench.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/run_seed.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/seeding/synthetic.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/tenancy/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/tenancy/context.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/src/minima/tenancy/passthrough.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/BENCHMARKS.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/CRITERIA.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/RESULTS.md +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/__init__.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/harness.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/llmrouterbench_config.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/test_llmrouterbench_savings.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/eval/test_routerbench_savings.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_lesson_promotion.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_measurement_api.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_observed_cost_ranking.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/integration/test_workflow_models_health.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_cost_savings_spotcheck_live.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_mubit_roundtrip.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_phase3_live.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_reasoner_live.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/live/test_recall_params_live.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_aggregate.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_aggregate_decay.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_autocapture.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_calibration_fit.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_cluster.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_collapse_guard.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_cost_band.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_decisionlog.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_escalation.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_exploration.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_ipw.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_iterations.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_latency_quality.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_lever_cost.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_metrics.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_metrics_demo.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_records_catalog.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_recstore_sqlite.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_score.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_shadow_bandit.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_strategies.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_tenancy.py +0 -0
- {minima_cli-0.4.10 → minima_cli-0.7.0}/tests/unit/test_thompson.py +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
name: Release — CLI binaries + Homebrew
|
|
2
|
+
|
|
3
|
+
# On a published release, cross-compile the TypeScript/Bun CLI for macOS + Linux,
|
|
4
|
+
# ad-hoc codesign the macOS arches, attach the tarballs to the release, and open
|
|
5
|
+
# a PR to the Homebrew tap (mubit-ai/homebrew-minima) bumping the binary formula.
|
|
6
|
+
# PyPI publishing of the Python `minima-cli` (SDK + server tooling) stays in prod.yml.
|
|
7
|
+
on:
|
|
8
|
+
release:
|
|
9
|
+
types: [published]
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
inputs:
|
|
12
|
+
tag:
|
|
13
|
+
description: "Git tag to build (e.g. v0.5.0)"
|
|
14
|
+
required: true
|
|
15
|
+
type: string
|
|
16
|
+
|
|
17
|
+
concurrency:
|
|
18
|
+
group: release-cli
|
|
19
|
+
cancel-in-progress: false
|
|
20
|
+
|
|
21
|
+
env:
|
|
22
|
+
RELEASE_TAG: ${{ github.event.release.tag_name || inputs.tag }}
|
|
23
|
+
BUN_VERSION: "1.3.14"
|
|
24
|
+
|
|
25
|
+
permissions:
|
|
26
|
+
contents: write # upload release assets
|
|
27
|
+
|
|
28
|
+
jobs:
|
|
29
|
+
build-macos:
|
|
30
|
+
name: Build + sign macOS binaries
|
|
31
|
+
runs-on: macos-14 # Apple Silicon; cross-compiles darwin-x64 too, codesign is arch-agnostic
|
|
32
|
+
steps:
|
|
33
|
+
- uses: actions/checkout@v5
|
|
34
|
+
with:
|
|
35
|
+
ref: ${{ env.RELEASE_TAG }}
|
|
36
|
+
- uses: oven-sh/setup-bun@v2
|
|
37
|
+
with:
|
|
38
|
+
bun-version: ${{ env.BUN_VERSION }}
|
|
39
|
+
- name: Install deps
|
|
40
|
+
working-directory: packages/tui
|
|
41
|
+
run: bun install --frozen-lockfile
|
|
42
|
+
- name: Cross-compile darwin arm64 + x64
|
|
43
|
+
working-directory: packages/tui
|
|
44
|
+
run: bun run scripts/build-all.ts bun-darwin-arm64 bun-darwin-x64
|
|
45
|
+
- name: Ad-hoc codesign (required for Apple Silicon to run the binary)
|
|
46
|
+
working-directory: packages/tui
|
|
47
|
+
run: |
|
|
48
|
+
for b in dist/minima-darwin-arm64 dist/minima-darwin-x64; do
|
|
49
|
+
codesign -s - --force --timestamp=none "$b"
|
|
50
|
+
codesign --verify --verbose=1 "$b"
|
|
51
|
+
done
|
|
52
|
+
- name: Package tarballs
|
|
53
|
+
working-directory: packages/tui
|
|
54
|
+
run: |
|
|
55
|
+
VER="${RELEASE_TAG#v}"
|
|
56
|
+
for slug in darwin-arm64 darwin-x64; do
|
|
57
|
+
tmp="$(mktemp -d)"; cp "dist/minima-$slug" "$tmp/minima"
|
|
58
|
+
tar -czf "dist/minima-$VER-$slug.tar.gz" -C "$tmp" minima
|
|
59
|
+
done
|
|
60
|
+
- uses: actions/upload-artifact@v4
|
|
61
|
+
with:
|
|
62
|
+
name: darwin
|
|
63
|
+
path: packages/tui/dist/minima-*.tar.gz
|
|
64
|
+
|
|
65
|
+
build-linux:
|
|
66
|
+
name: Build Linux binaries
|
|
67
|
+
runs-on: ubuntu-latest
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@v5
|
|
70
|
+
with:
|
|
71
|
+
ref: ${{ env.RELEASE_TAG }}
|
|
72
|
+
- uses: oven-sh/setup-bun@v2
|
|
73
|
+
with:
|
|
74
|
+
bun-version: ${{ env.BUN_VERSION }}
|
|
75
|
+
- name: Install deps
|
|
76
|
+
working-directory: packages/tui
|
|
77
|
+
run: bun install --frozen-lockfile
|
|
78
|
+
- name: Cross-compile linux x64 + arm64
|
|
79
|
+
working-directory: packages/tui
|
|
80
|
+
run: bun run scripts/build-all.ts bun-linux-x64 bun-linux-arm64
|
|
81
|
+
- name: Package tarballs
|
|
82
|
+
working-directory: packages/tui
|
|
83
|
+
run: |
|
|
84
|
+
VER="${RELEASE_TAG#v}"
|
|
85
|
+
for slug in linux-x64 linux-arm64; do
|
|
86
|
+
tmp="$(mktemp -d)"; cp "dist/minima-$slug" "$tmp/minima"
|
|
87
|
+
tar -czf "dist/minima-$VER-$slug.tar.gz" -C "$tmp" minima
|
|
88
|
+
done
|
|
89
|
+
- uses: actions/upload-artifact@v4
|
|
90
|
+
with:
|
|
91
|
+
name: linux
|
|
92
|
+
path: packages/tui/dist/minima-*.tar.gz
|
|
93
|
+
|
|
94
|
+
publish-and-bump:
|
|
95
|
+
name: Attach assets + open tap PR
|
|
96
|
+
needs: [build-macos, build-linux]
|
|
97
|
+
runs-on: ubuntu-latest
|
|
98
|
+
steps:
|
|
99
|
+
- uses: actions/checkout@v5
|
|
100
|
+
with:
|
|
101
|
+
ref: ${{ env.RELEASE_TAG }}
|
|
102
|
+
- uses: actions/download-artifact@v4
|
|
103
|
+
with:
|
|
104
|
+
path: artifacts
|
|
105
|
+
- name: Collect tarballs
|
|
106
|
+
run: |
|
|
107
|
+
mkdir -p dist
|
|
108
|
+
find artifacts -name 'minima-*.tar.gz' -exec cp {} dist/ \;
|
|
109
|
+
ls -la dist
|
|
110
|
+
- name: Attach binaries to the release
|
|
111
|
+
env:
|
|
112
|
+
GH_TOKEN: ${{ github.token }}
|
|
113
|
+
run: gh release upload "$RELEASE_TAG" dist/minima-*.tar.gz --clobber --repo "${{ github.repository }}"
|
|
114
|
+
- name: Render binary formula
|
|
115
|
+
run: |
|
|
116
|
+
VER="${RELEASE_TAG#v}"
|
|
117
|
+
python3 packaging/homebrew/render_formula.py --version "$VER" --dist dist --out minima.rb
|
|
118
|
+
echo "----- rendered formula -----"; cat minima.rb
|
|
119
|
+
- name: Open Homebrew tap PR
|
|
120
|
+
env:
|
|
121
|
+
GH_TOKEN: ${{ secrets.GH_PAT }}
|
|
122
|
+
run: |
|
|
123
|
+
VER="${RELEASE_TAG#v}"
|
|
124
|
+
git clone "https://x-access-token:${GH_TOKEN}@github.com/mubit-ai/homebrew-minima.git" tap
|
|
125
|
+
cp minima.rb tap/Formula/minima.rb
|
|
126
|
+
cd tap
|
|
127
|
+
git config user.name "mubit-release-bot"
|
|
128
|
+
git config user.email "release-bot@mubit.ai"
|
|
129
|
+
branch="bump-minima-${VER}"
|
|
130
|
+
git checkout -b "$branch"
|
|
131
|
+
if git diff --quiet Formula/minima.rb; then
|
|
132
|
+
echo "formula already up to date for ${VER}; nothing to do"; exit 0
|
|
133
|
+
fi
|
|
134
|
+
git add Formula/minima.rb
|
|
135
|
+
git commit -m "minima ${VER} (prebuilt binary)"
|
|
136
|
+
git push -u origin "$branch" --force-with-lease
|
|
137
|
+
gh pr create --repo mubit-ai/homebrew-minima --base main --head "$branch" \
|
|
138
|
+
--title "minima ${VER}" \
|
|
139
|
+
--body "Automated bump to the prebuilt TypeScript/Bun binary for \`${RELEASE_TAG}\`. Replaces the Python virtualenv formula. \`brew test-bot\` validates install + \`test do\` on macOS + Linux before merge." \
|
|
140
|
+
|| echo "PR already exists for ${branch}"
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
Guidance for both human and AI agents working in this repo.
|
|
4
|
+
|
|
5
|
+
## What this repo is
|
|
6
|
+
|
|
7
|
+
- **`src/minima/`** — Minima: a recommend-only LLM cost-optimization service (FastAPI,
|
|
8
|
+
Python 3.11+). It does NOT proxy LLM calls. It tells you which model to run, you run
|
|
9
|
+
it, judge quality, and feed the outcome back via `POST /v1/feedback` so its Mubit
|
|
10
|
+
memory sharpens. See `docs/concepts.md` for the algorithm.
|
|
11
|
+
- **`client_sdk/minima_client/`** — bundled sync + async Python client. Ships inside the
|
|
12
|
+
same wheel.
|
|
13
|
+
- **`packages/tui/`** — the `minima` CLI/TUI (TypeScript/Bun, shipped via Homebrew:
|
|
14
|
+
`brew tap mubit-ai/minima`). It replaced the old Python harness (`src/minima_harness`,
|
|
15
|
+
removed in v0.7.0). See `packages/tui/README.md`.
|
|
16
|
+
|
|
17
|
+
## The Minima loop (always respect this)
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
recommend -> run the model yourself -> judge quality -> feedback
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Minima never runs the model. Any harness owns model dispatch + quality judging. Feedback
|
|
24
|
+
MUST include realized `input_tokens` / `output_tokens` / `actual_cost_usd` / `latency_ms`
|
|
25
|
+
so the cost basis can climb `estimate -> observed -> rescaled` (the biggest accuracy
|
|
26
|
+
lever). Outcome thresholds: `success >= 0.8`, `partial >= 0.4`, else `failure`.
|
|
27
|
+
|
|
28
|
+
## Conventions
|
|
29
|
+
|
|
30
|
+
- `from __future__ import annotations` at the top of every module.
|
|
31
|
+
- Pydantic v2 `BaseModel` for serializable schemas; `@dataclass(slots=True)` for internal
|
|
32
|
+
types; `StrEnum` for enums; `Protocol` for seams (`Memory`, `Reasoner`, `Provider`).
|
|
33
|
+
- Async-first. Bridge sync SDKs (Mubit) off the event loop via `anyio`/threadpools.
|
|
34
|
+
- `structlog` via `get_logger("minima.<sub>")`.
|
|
35
|
+
- ruff `line-length=100`, mypy `py311`. Never break the hot path: bookkeeping failures are
|
|
36
|
+
logged-and-swallowed (`except Exception: # noqa: BLE001`).
|
|
37
|
+
- NO comments unless asked. Match existing style.
|
|
38
|
+
|
|
39
|
+
## Commands
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
uv sync --extra dev # install (uv is the package manager)
|
|
43
|
+
uv run ruff check . && uv run ruff format . # lint + format
|
|
44
|
+
uv run mypy src/minima # typecheck
|
|
45
|
+
uv run pytest # unit + integration (hermetic, offline)
|
|
46
|
+
uv run pytest -m live # needs a running Mubit (make run-mubit)
|
|
47
|
+
make run # local Minima on :8080
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Offline tests MUST stay hermetic: the `conftest.py` autouse fixture neutralizes `.env`.
|
|
51
|
+
Use `tests/factories.py:FakeMemory` + `create_app(...)` + `TestClient` for in-process
|
|
52
|
+
tests without Mubit.
|
|
53
|
+
|
|
54
|
+
## Agent harness
|
|
55
|
+
|
|
56
|
+
The Python harness (`src/minima_harness`) was removed in v0.7.0. Its successor is the
|
|
57
|
+
TypeScript harness + TUI in `packages/tui` (the shipped `minima` CLI) — see
|
|
58
|
+
`packages/tui/README.md` for architecture, commands, and hard rules.
|
|
@@ -4,6 +4,66 @@ All notable changes to Minima are documented here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/), and the project aims to follow
|
|
5
5
|
[Semantic Versioning](https://semver.org/).
|
|
6
6
|
|
|
7
|
+
## [0.7.0] - 2026-07-05
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **`GET /v1/capabilities`** — server feature handshake (api version, honored constraint
|
|
11
|
+
fields, feature flags) so clients can gate enforce-mode features on what the server
|
|
12
|
+
actually supports instead of guessing. (#54)
|
|
13
|
+
- **Sub-agent tree visualization** — a live `▸ step [status] $cost` panel (`/tree`) fed by
|
|
14
|
+
tagged child events during multi-agent runs. (#55)
|
|
15
|
+
- **Git worktree isolation for parallel sub-agents** — `isolation: "workdir"` delegations run
|
|
16
|
+
in a temporary `git worktree` (with a dirty-tree warning and automatic cleanup), so parallel
|
|
17
|
+
children editing the same files can't clobber each other. (#55)
|
|
18
|
+
- **Delegation ops-rules + BLOCKED convention** — sub-agents get explicit operational rules,
|
|
19
|
+
boundary refusals surface as `BLOCKED` → `partial` outcome so the parent can tell, and the
|
|
20
|
+
task tool carries anti-retry guidance (no more re-running an identical failed DAG). (#59)
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **Every Claude call timed out in the harness** — the Anthropic SDK was handed a timeout in
|
|
24
|
+
seconds where it expects milliseconds (a 30–60 ms budget), so every Claude stream/complete
|
|
25
|
+
call died with "Request timed out" and fed quality-0 failures into routing. (#56)
|
|
26
|
+
- **Quality-score fabrication in the feedback loop (M-J2)** — unjudged successes no longer
|
|
27
|
+
default to quality 0.9 in the server decision log; the harness now sends a `judged` flag and
|
|
28
|
+
unjudged rows reconcile with `quality = NULL`, so calibration and savings metrics stop
|
|
29
|
+
trusting values that were never measured. (#54)
|
|
30
|
+
- **Judge hardening** — empty-output guard (scores 0 without an API call), head+tail
|
|
31
|
+
truncation so tail requirements survive long outputs, `<response>` delimiters + scoped-trust
|
|
32
|
+
system prompt against response-embedded injection, and a `parseScore` fix for
|
|
33
|
+
"X out of 10" phrasing. (#57)
|
|
34
|
+
- **Gemini reasoner starvation** — advisory JSON calls (classify/rank) no longer burn their
|
|
35
|
+
entire token budget on thinking before emitting JSON; RANK_SYSTEM invariants hardened. (#58)
|
|
36
|
+
|
|
37
|
+
### Notes
|
|
38
|
+
- `minima-cli` on PyPI resumes at 0.7.0: the project version had lagged at 0.5.0, so the
|
|
39
|
+
0.6.0 release build was silently skipped by `--skip-existing` and 0.6.0 was never published.
|
|
40
|
+
|
|
41
|
+
## [0.6.0] - 2026-07-02
|
|
42
|
+
|
|
43
|
+
Agent-core release (milestones M-A…M-I): cost-aware sub-agent orchestration — `task` tool
|
|
44
|
+
with sequential and parallel DAG fan-out under a semaphore, per-child routing, budgets and
|
|
45
|
+
timeouts; DB-backed `BudgetLedger` with graduated enforcement; SQLite persistence spine
|
|
46
|
+
(runs/events/decisions + rehydration); recovery ladder walking server-supplied rungs on
|
|
47
|
+
failure; effort routing Phase A + fleet metrics; feedback-loop poisoning fixes; feature-vector
|
|
48
|
+
classifier with strongest-signal scoring. *(Never published to PyPI — see the 0.7.0 note.)*
|
|
49
|
+
|
|
50
|
+
## [0.5.2] - 2026-07-02
|
|
51
|
+
|
|
52
|
+
Fixed TUI viewport-overflow rendering corruption; docs rebrand (Manrope, "minima by Mubit"
|
|
53
|
+
nav logo, new favicon).
|
|
54
|
+
|
|
55
|
+
## [0.5.1] - 2026-07-01
|
|
56
|
+
|
|
57
|
+
Mubit memory in the TS harness (recall-before-route + outcome write-back with stable session
|
|
58
|
+
ids); benign routing diagnostics no longer render as errors; live model catalog; docs migrated
|
|
59
|
+
to Vocs with a Homebrew install guide.
|
|
60
|
+
|
|
61
|
+
## [0.5.0] - 2026-07-01
|
|
62
|
+
|
|
63
|
+
The TypeScript/Bun TUI becomes the shipped CLI: one-click `minima auth` (browser login,
|
|
64
|
+
per-repo project mapping, workspace provisioning), the Homebrew tap ships the compiled binary
|
|
65
|
+
instead of a Python venv formula, and a comprehensive routing/tool test suite lands.
|
|
66
|
+
|
|
7
67
|
## [0.4.10] - 2026-06-26
|
|
8
68
|
|
|
9
69
|
### Changed
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
.PHONY: install run test lint fmt live eval seed refresh-catalog tui-install tui-test tui-check tui-build tui tui-dev
|
|
2
|
+
|
|
3
|
+
install:
|
|
4
|
+
uv sync --extra dev # dev pulls server + reasoner extras for the full test suite
|
|
5
|
+
|
|
6
|
+
run:
|
|
7
|
+
uv run --extra server uvicorn minima.main:app --reload --host $${MINIMA_HOST:-0.0.0.0} --port $${MINIMA_PORT:-8080}
|
|
8
|
+
|
|
9
|
+
test:
|
|
10
|
+
uv run pytest -m "not live and not eval" -q
|
|
11
|
+
|
|
12
|
+
lint:
|
|
13
|
+
uv run ruff check src client_sdk tests
|
|
14
|
+
uv run mypy src/minima
|
|
15
|
+
|
|
16
|
+
fmt:
|
|
17
|
+
uv run ruff check --fix src client_sdk tests
|
|
18
|
+
uv run ruff format src client_sdk tests
|
|
19
|
+
|
|
20
|
+
live:
|
|
21
|
+
uv run pytest -m live -q
|
|
22
|
+
|
|
23
|
+
eval:
|
|
24
|
+
uv run pytest -m eval -q
|
|
25
|
+
|
|
26
|
+
seed:
|
|
27
|
+
uv run minima-seed --limit $${LIMIT:-2000} --lane $${LANE:-minima:default}
|
|
28
|
+
|
|
29
|
+
# --- TS TUI (packages/tui) — run from the repo root so .env.harness auto-loads --------
|
|
30
|
+
|
|
31
|
+
TUI := packages/tui
|
|
32
|
+
TUI_BIN := $(TUI)/dist/minima
|
|
33
|
+
|
|
34
|
+
tui-install:
|
|
35
|
+
cd $(TUI) && bun install
|
|
36
|
+
|
|
37
|
+
tui-test:
|
|
38
|
+
cd $(TUI) && bun test
|
|
39
|
+
|
|
40
|
+
tui-check:
|
|
41
|
+
cd $(TUI) && bun run check && bun run lint
|
|
42
|
+
|
|
43
|
+
tui-build:
|
|
44
|
+
cd $(TUI) && bun run build
|
|
45
|
+
|
|
46
|
+
# Run the compiled binary (build first with `make tui-build`). Passes ARGS through, so:
|
|
47
|
+
# make tui ARGS='-p "hello"' # one-shot
|
|
48
|
+
# make tui ARGS='--offline --model gpt-4o-mini -p "hi"'
|
|
49
|
+
# make tui # interactive TUI
|
|
50
|
+
tui:
|
|
51
|
+
@test -x $(TUI_BIN) || { echo "Run 'make tui-build' first"; exit 1; }
|
|
52
|
+
./$(TUI_BIN) $(ARGS)
|
|
53
|
+
|
|
54
|
+
# Run from source via Bun (no compile step) — fastest dev loop.
|
|
55
|
+
tui-dev:
|
|
56
|
+
cd $(TUI) && bun run src/cli/main.ts $(ARGS)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: minima-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.7.0
|
|
4
4
|
Summary: Minima CLI: cost-aware LLM model routing — recommend cheaper models, backed by Mubit memory.
|
|
5
5
|
Project-URL: Homepage, https://docs.minima.sh
|
|
6
6
|
Project-URL: Documentation, https://docs.minima.sh
|
|
@@ -30,7 +30,6 @@ Provides-Extra: dev
|
|
|
30
30
|
Requires-Dist: anthropic>=0.40; extra == 'dev'
|
|
31
31
|
Requires-Dist: fastapi>=0.115; extra == 'dev'
|
|
32
32
|
Requires-Dist: google-genai>=0.3; extra == 'dev'
|
|
33
|
-
Requires-Dist: keyring>=24; extra == 'dev'
|
|
34
33
|
Requires-Dist: mypy>=1.10; extra == 'dev'
|
|
35
34
|
Requires-Dist: psycopg2-binary>=2.9; extra == 'dev'
|
|
36
35
|
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
@@ -38,11 +37,7 @@ Requires-Dist: pytest>=8.2; extra == 'dev'
|
|
|
38
37
|
Requires-Dist: redis>=5.0; extra == 'dev'
|
|
39
38
|
Requires-Dist: respx>=0.21; extra == 'dev'
|
|
40
39
|
Requires-Dist: ruff>=0.5; extra == 'dev'
|
|
41
|
-
Requires-Dist: textual>=3.0; extra == 'dev'
|
|
42
40
|
Requires-Dist: uvicorn[standard]>=0.30; extra == 'dev'
|
|
43
|
-
Provides-Extra: harness
|
|
44
|
-
Requires-Dist: anthropic>=0.40; extra == 'harness'
|
|
45
|
-
Requires-Dist: google-genai>=0.3; extra == 'harness'
|
|
46
41
|
Provides-Extra: reasoner-anthropic
|
|
47
42
|
Requires-Dist: anthropic>=0.40; extra == 'reasoner-anthropic'
|
|
48
43
|
Provides-Extra: reasoner-gemini
|
|
@@ -55,9 +50,6 @@ Requires-Dist: fastapi>=0.115; extra == 'server'
|
|
|
55
50
|
Requires-Dist: psycopg2-binary>=2.9; extra == 'server'
|
|
56
51
|
Requires-Dist: redis>=5.0; extra == 'server'
|
|
57
52
|
Requires-Dist: uvicorn[standard]>=0.30; extra == 'server'
|
|
58
|
-
Provides-Extra: tui
|
|
59
|
-
Requires-Dist: keyring>=24; extra == 'tui'
|
|
60
|
-
Requires-Dist: textual>=3.0; extra == 'tui'
|
|
61
53
|
Description-Content-Type: text/markdown
|
|
62
54
|
|
|
63
55
|
# Minima
|
|
@@ -176,7 +168,6 @@ Sync + async clients and zero-code `autocapture`: **[Python Client SDK](docs/cli
|
|
|
176
168
|
| [Multi-Tenancy](docs/multi-tenancy.md) | One deployment, many orgs, per-org Mubit instances. |
|
|
177
169
|
| [Operations](docs/operations.md) | Deployment, health, degradation, monitoring, secrets. |
|
|
178
170
|
| [Examples](docs/examples.md) | Guided tour of the runnable examples. |
|
|
179
|
-
| [Agent Harness](docs/harness.md) | `minima_harness`: a Minima-routing port of PI's agent toolkit. |
|
|
180
171
|
|
|
181
172
|
## Examples
|
|
182
173
|
|
|
@@ -191,33 +182,21 @@ Runnable, progressively advanced — in **[`examples/`](examples/)**:
|
|
|
191
182
|
| 5 | [`05_autocapture.py`](examples/05_autocapture.py) | Zero-code intake via `mubit.learn`. |
|
|
192
183
|
| 6 | [`06_routed_llm_call.py`](examples/06_routed_llm_call.py) | Routing a real Claude call + feedback. |
|
|
193
184
|
| 7 | [`07_multitenant_admin.py`](examples/07_multitenant_admin.py) | Provision an org, call as that tenant. |
|
|
194
|
-
| 8 | [`harness_warmup.py`](examples/harness_warmup.py) | The `minima_harness` agent loop (demo mode needs no keys). |
|
|
195
185
|
|
|
196
|
-
##
|
|
186
|
+
## The `minima` CLI
|
|
197
187
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
every prompt through Minima and feeds the realized tokens/cost/quality back. It is the
|
|
202
|
-
"run the model yourself" half of the Minima loop, packaged.
|
|
203
|
-
|
|
204
|
-
```python
|
|
205
|
-
from minima_harness.minima import MinimaAgent, HarnessConfig
|
|
206
|
-
|
|
207
|
-
agent = MinimaAgent(HarnessConfig.from_env()) # MINIMA_URL, candidates, judge policy
|
|
208
|
-
await agent.prompt("Summarize this incident.", task_type="summarization", slider=3)
|
|
209
|
-
# -> Minima picked the model, the agent ran it, judged quality, fed the outcome back
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Try it with no keys via the in-process demo:
|
|
188
|
+
The `minima` CLI/TUI — a coding agent that routes every prompt through Minima and feeds
|
|
189
|
+
realized tokens/cost/quality back — is a TypeScript/Bun binary that lives in
|
|
190
|
+
[`packages/tui/`](packages/tui/) and installs via Homebrew:
|
|
213
191
|
|
|
214
192
|
```bash
|
|
215
|
-
|
|
216
|
-
|
|
193
|
+
brew tap mubit-ai/minima
|
|
194
|
+
brew install minima
|
|
217
195
|
```
|
|
218
196
|
|
|
219
|
-
|
|
220
|
-
|
|
197
|
+
The PyPI package (`pip install minima-cli`) is **not** the CLI: it ships the Python
|
|
198
|
+
client SDK (`minima_client`) and the server + operator tooling (`minima-seed`,
|
|
199
|
+
`minima-calibration-report`). The old Python harness/TUI was removed in v0.7.0.
|
|
221
200
|
|
|
222
201
|
## Configuration
|
|
223
202
|
|
|
@@ -254,7 +233,7 @@ src/minima/
|
|
|
254
233
|
tenancy/ runtime · registry · context · keys · secrets
|
|
255
234
|
seeding/ routerbench · synthetic · run_seed (minima-seed CLI)
|
|
256
235
|
schemas/ common · recommend · workflow · feedback · models_catalog · strategies · admin
|
|
257
|
-
|
|
236
|
+
packages/tui/ the `minima` CLI/TUI (TypeScript/Bun, ships via Homebrew)
|
|
258
237
|
client_sdk/minima_client/ client (sync+async) · autocapture · errors
|
|
259
238
|
docs/ full documentation examples/ runnable examples
|
|
260
239
|
tests/ unit · integration (FakeMemory) · live (-m live) · eval (-m eval)
|
|
@@ -114,7 +114,6 @@ Sync + async clients and zero-code `autocapture`: **[Python Client SDK](docs/cli
|
|
|
114
114
|
| [Multi-Tenancy](docs/multi-tenancy.md) | One deployment, many orgs, per-org Mubit instances. |
|
|
115
115
|
| [Operations](docs/operations.md) | Deployment, health, degradation, monitoring, secrets. |
|
|
116
116
|
| [Examples](docs/examples.md) | Guided tour of the runnable examples. |
|
|
117
|
-
| [Agent Harness](docs/harness.md) | `minima_harness`: a Minima-routing port of PI's agent toolkit. |
|
|
118
117
|
|
|
119
118
|
## Examples
|
|
120
119
|
|
|
@@ -129,33 +128,21 @@ Runnable, progressively advanced — in **[`examples/`](examples/)**:
|
|
|
129
128
|
| 5 | [`05_autocapture.py`](examples/05_autocapture.py) | Zero-code intake via `mubit.learn`. |
|
|
130
129
|
| 6 | [`06_routed_llm_call.py`](examples/06_routed_llm_call.py) | Routing a real Claude call + feedback. |
|
|
131
130
|
| 7 | [`07_multitenant_admin.py`](examples/07_multitenant_admin.py) | Provision an org, call as that tenant. |
|
|
132
|
-
| 8 | [`harness_warmup.py`](examples/harness_warmup.py) | The `minima_harness` agent loop (demo mode needs no keys). |
|
|
133
131
|
|
|
134
|
-
##
|
|
132
|
+
## The `minima` CLI
|
|
135
133
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
every prompt through Minima and feeds the realized tokens/cost/quality back. It is the
|
|
140
|
-
"run the model yourself" half of the Minima loop, packaged.
|
|
141
|
-
|
|
142
|
-
```python
|
|
143
|
-
from minima_harness.minima import MinimaAgent, HarnessConfig
|
|
144
|
-
|
|
145
|
-
agent = MinimaAgent(HarnessConfig.from_env()) # MINIMA_URL, candidates, judge policy
|
|
146
|
-
await agent.prompt("Summarize this incident.", task_type="summarization", slider=3)
|
|
147
|
-
# -> Minima picked the model, the agent ran it, judged quality, fed the outcome back
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
Try it with no keys via the in-process demo:
|
|
134
|
+
The `minima` CLI/TUI — a coding agent that routes every prompt through Minima and feeds
|
|
135
|
+
realized tokens/cost/quality back — is a TypeScript/Bun binary that lives in
|
|
136
|
+
[`packages/tui/`](packages/tui/) and installs via Homebrew:
|
|
151
137
|
|
|
152
138
|
```bash
|
|
153
|
-
|
|
154
|
-
|
|
139
|
+
brew tap mubit-ai/minima
|
|
140
|
+
brew install minima
|
|
155
141
|
```
|
|
156
142
|
|
|
157
|
-
|
|
158
|
-
|
|
143
|
+
The PyPI package (`pip install minima-cli`) is **not** the CLI: it ships the Python
|
|
144
|
+
client SDK (`minima_client`) and the server + operator tooling (`minima-seed`,
|
|
145
|
+
`minima-calibration-report`). The old Python harness/TUI was removed in v0.7.0.
|
|
159
146
|
|
|
160
147
|
## Configuration
|
|
161
148
|
|
|
@@ -192,7 +179,7 @@ src/minima/
|
|
|
192
179
|
tenancy/ runtime · registry · context · keys · secrets
|
|
193
180
|
seeding/ routerbench · synthetic · run_seed (minima-seed CLI)
|
|
194
181
|
schemas/ common · recommend · workflow · feedback · models_catalog · strategies · admin
|
|
195
|
-
|
|
182
|
+
packages/tui/ the `minima` CLI/TUI (TypeScript/Bun, ships via Homebrew)
|
|
196
183
|
client_sdk/minima_client/ client (sync+async) · autocapture · errors
|
|
197
184
|
docs/ full documentation examples/ runnable examples
|
|
198
185
|
tests/ unit · integration (FakeMemory) · live (-m live) · eval (-m eval)
|