manicule 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- manicule-0.1.0/.ci/grammars/.gitkeep +9 -0
- manicule-0.1.0/.dockerignore +28 -0
- manicule-0.1.0/.github/dependabot.yml +249 -0
- manicule-0.1.0/.github/workflows/ci.yml +703 -0
- manicule-0.1.0/.github/workflows/pr-title.yml +93 -0
- manicule-0.1.0/.github/workflows/release.yml +129 -0
- manicule-0.1.0/.gitignore +46 -0
- manicule-0.1.0/.release-please-manifest.json +3 -0
- manicule-0.1.0/.test_durations +3368 -0
- manicule-0.1.0/CAPABILITIES.md +372 -0
- manicule-0.1.0/CHANGELOG.md +16 -0
- manicule-0.1.0/CONTRIBUTING.md +300 -0
- manicule-0.1.0/Dockerfile +330 -0
- manicule-0.1.0/LICENSE +21 -0
- manicule-0.1.0/PKG-INFO +729 -0
- manicule-0.1.0/PLAN.md +433 -0
- manicule-0.1.0/README.md +626 -0
- manicule-0.1.0/RELEASING.md +111 -0
- manicule-0.1.0/alembic.ini +46 -0
- manicule-0.1.0/compose.yaml +50 -0
- manicule-0.1.0/docs/connectors/confluence.md +1224 -0
- manicule-0.1.0/docs/connectors/enriched-html.md +549 -0
- manicule-0.1.0/docs/contracts.md +268 -0
- manicule-0.1.0/docs/deployment.md +581 -0
- manicule-0.1.0/docs/embeddings.md +783 -0
- manicule-0.1.0/docs/evaluation/example-queries.json +58 -0
- manicule-0.1.0/docs/evaluation.md +336 -0
- manicule-0.1.0/docs/generation.md +1927 -0
- manicule-0.1.0/docs/images/browser-search.png +0 -0
- manicule-0.1.0/docs/ingest.md +2364 -0
- manicule-0.1.0/docs/parsing.md +2443 -0
- manicule-0.1.0/docs/release-notes.md +15 -0
- manicule-0.1.0/docs/retrieval.md +2090 -0
- manicule-0.1.0/docs/storage.md +2018 -0
- manicule-0.1.0/docs/surfaces.md +1161 -0
- manicule-0.1.0/docs/web.md +309 -0
- manicule-0.1.0/packages/manicule-mlx/LICENSE +674 -0
- manicule-0.1.0/packages/manicule-mlx/README.md +76 -0
- manicule-0.1.0/packages/manicule-mlx/pyproject.toml +47 -0
- manicule-0.1.0/packages/manicule-mlx/src/manicule_mlx/__init__.py +94 -0
- manicule-0.1.0/packages/manicule-mlx/src/manicule_mlx/backend.py +251 -0
- manicule-0.1.0/packages/manicule-mlx/src/manicule_mlx/config.py +41 -0
- manicule-0.1.0/packages/manicule-mlx/src/manicule_mlx/py.typed +0 -0
- manicule-0.1.0/packages/manicule-mlx/src/manicule_mlx/runtime.py +40 -0
- manicule-0.1.0/packages/manicule-mlx/tests/conftest.py +17 -0
- manicule-0.1.0/packages/manicule-mlx/tests/test_memory.py +376 -0
- manicule-0.1.0/packages/manicule-mlx/tests/test_parity.py +394 -0
- manicule-0.1.0/packages/manicule-mlx/tools/qualify_memory.py +490 -0
- manicule-0.1.0/packages/manicule-plugin-example/README.md +48 -0
- manicule-0.1.0/packages/manicule-plugin-example/pyproject.toml +20 -0
- manicule-0.1.0/packages/manicule-plugin-example/src/manicule_plugin_example/__init__.py +175 -0
- manicule-0.1.0/packages/manicule-plugin-example/src/manicule_plugin_example/py.typed +0 -0
- manicule-0.1.0/packages/manicule-plugin-example/tests/conftest.py +7 -0
- manicule-0.1.0/packages/manicule-plugin-example/tests/test_example_plugin.py +90 -0
- manicule-0.1.0/packages/manicule-plugin-hostile/README.md +20 -0
- manicule-0.1.0/packages/manicule-plugin-hostile/pyproject.toml +21 -0
- manicule-0.1.0/packages/manicule-plugin-hostile/src/manicule_plugin_hostile/__init__.py +269 -0
- manicule-0.1.0/packages/manicule-plugin-hostile/src/manicule_plugin_hostile/py.typed +0 -0
- manicule-0.1.0/pyproject.toml +531 -0
- manicule-0.1.0/release-please-config.json +73 -0
- manicule-0.1.0/src/manicule/__init__.py +14 -0
- manicule-0.1.0/src/manicule/api/__init__.py +35 -0
- manicule-0.1.0/src/manicule/api/app.py +483 -0
- manicule-0.1.0/src/manicule/api/context.py +53 -0
- manicule-0.1.0/src/manicule/api/envelopes.py +150 -0
- manicule-0.1.0/src/manicule/api/models.py +142 -0
- manicule-0.1.0/src/manicule/api/origins.py +171 -0
- manicule-0.1.0/src/manicule/api/proxy.py +184 -0
- manicule-0.1.0/src/manicule/api/routes/__init__.py +16 -0
- manicule-0.1.0/src/manicule/api/routes/admin.py +314 -0
- manicule-0.1.0/src/manicule/api/routes/auth.py +103 -0
- manicule-0.1.0/src/manicule/api/routes/chat.py +103 -0
- manicule-0.1.0/src/manicule/api/routes/conversations.py +186 -0
- manicule-0.1.0/src/manicule/api/routes/documents.py +165 -0
- manicule-0.1.0/src/manicule/api/routes/health.py +91 -0
- manicule-0.1.0/src/manicule/api/routes/organization.py +281 -0
- manicule-0.1.0/src/manicule/api/routes/plugins.py +73 -0
- manicule-0.1.0/src/manicule/api/routes/sockets.py +142 -0
- manicule-0.1.0/src/manicule/api/routes/workbench.py +43 -0
- manicule-0.1.0/src/manicule/api/security.py +231 -0
- manicule-0.1.0/src/manicule/api/serve.py +213 -0
- manicule-0.1.0/src/manicule/api/streaming.py +138 -0
- manicule-0.1.0/src/manicule/api/widget.py +247 -0
- manicule-0.1.0/src/manicule/app/__init__.py +62 -0
- manicule-0.1.0/src/manicule/app/bind.py +170 -0
- manicule-0.1.0/src/manicule/app/commands.py +384 -0
- manicule-0.1.0/src/manicule/app/control.py +946 -0
- manicule-0.1.0/src/manicule/app/daemon.py +174 -0
- manicule-0.1.0/src/manicule/app/dispatch.py +284 -0
- manicule-0.1.0/src/manicule/app/frontdoor.py +159 -0
- manicule-0.1.0/src/manicule/app/ports.py +613 -0
- manicule-0.1.0/src/manicule/app/results.py +2101 -0
- manicule-0.1.0/src/manicule/app/runtime.py +2445 -0
- manicule-0.1.0/src/manicule/app/served.py +665 -0
- manicule-0.1.0/src/manicule/app/service.py +5881 -0
- manicule-0.1.0/src/manicule/app/tenancy.py +104 -0
- manicule-0.1.0/src/manicule/chunking/__init__.py +34 -0
- manicule-0.1.0/src/manicule/chunking/breadcrumb.py +128 -0
- manicule-0.1.0/src/manicule/chunking/chunker.py +1167 -0
- manicule-0.1.0/src/manicule/chunking/sentences.py +104 -0
- manicule-0.1.0/src/manicule/chunking/tokens.py +232 -0
- manicule-0.1.0/src/manicule/cli/__init__.py +20 -0
- manicule-0.1.0/src/manicule/cli/main.py +1890 -0
- manicule-0.1.0/src/manicule/cli/proxy.py +252 -0
- manicule-0.1.0/src/manicule/cli/render.py +1199 -0
- manicule-0.1.0/src/manicule/cli/repl.py +144 -0
- manicule-0.1.0/src/manicule/cli/serving.py +532 -0
- manicule-0.1.0/src/manicule/cli/shell.py +41 -0
- manicule-0.1.0/src/manicule/cli/watch.py +111 -0
- manicule-0.1.0/src/manicule/config/__init__.py +114 -0
- manicule-0.1.0/src/manicule/config/loader.py +71 -0
- manicule-0.1.0/src/manicule/config/profiles.py +189 -0
- manicule-0.1.0/src/manicule/config/providers.py +381 -0
- manicule-0.1.0/src/manicule/config/settings.py +1454 -0
- manicule-0.1.0/src/manicule/connectors/__init__.py +54 -0
- manicule-0.1.0/src/manicule/connectors/browser.py +581 -0
- manicule-0.1.0/src/manicule/connectors/client.py +635 -0
- manicule-0.1.0/src/manicule/connectors/config.py +643 -0
- manicule-0.1.0/src/manicule/connectors/confluence.py +1649 -0
- manicule-0.1.0/src/manicule/connectors/confluence_snapshot.py +771 -0
- manicule-0.1.0/src/manicule/connectors/cql.py +224 -0
- manicule-0.1.0/src/manicule/connectors/credentials.py +331 -0
- manicule-0.1.0/src/manicule/connectors/enriched.py +791 -0
- manicule-0.1.0/src/manicule/connectors/enriched_html.py +324 -0
- manicule-0.1.0/src/manicule/connectors/errors.py +149 -0
- manicule-0.1.0/src/manicule/connectors/filesystem.py +794 -0
- manicule-0.1.0/src/manicule/connectors/intercept.py +228 -0
- manicule-0.1.0/src/manicule/connectors/macros.py +666 -0
- manicule-0.1.0/src/manicule/connectors/pagination.py +154 -0
- manicule-0.1.0/src/manicule/connectors/plugin.py +244 -0
- manicule-0.1.0/src/manicule/connectors/sessions.py +493 -0
- manicule-0.1.0/src/manicule/connectors/sidecar.py +392 -0
- manicule-0.1.0/src/manicule/connectors/subtree.py +526 -0
- manicule-0.1.0/src/manicule/container/__init__.py +19 -0
- manicule-0.1.0/src/manicule/container/container.py +618 -0
- manicule-0.1.0/src/manicule/container/keys.py +47 -0
- manicule-0.1.0/src/manicule/core/__init__.py +250 -0
- manicule-0.1.0/src/manicule/core/acquisition.py +324 -0
- manicule-0.1.0/src/manicule/core/anchors.py +246 -0
- manicule-0.1.0/src/manicule/core/content.py +563 -0
- manicule-0.1.0/src/manicule/core/embedding.py +646 -0
- manicule-0.1.0/src/manicule/core/errors.py +335 -0
- manicule-0.1.0/src/manicule/core/fingerprints.py +406 -0
- manicule-0.1.0/src/manicule/core/generation.py +72 -0
- manicule-0.1.0/src/manicule/core/glossary.py +253 -0
- manicule-0.1.0/src/manicule/core/ids.py +94 -0
- manicule-0.1.0/src/manicule/core/lifecycle.py +208 -0
- manicule-0.1.0/src/manicule/core/organization.py +391 -0
- manicule-0.1.0/src/manicule/core/protocols.py +1145 -0
- manicule-0.1.0/src/manicule/core/provenance.py +478 -0
- manicule-0.1.0/src/manicule/core/rebuild.py +297 -0
- manicule-0.1.0/src/manicule/core/reconciliation.py +67 -0
- manicule-0.1.0/src/manicule/core/retrieval.py +297 -0
- manicule-0.1.0/src/manicule/core/source_lifecycle.py +67 -0
- manicule-0.1.0/src/manicule/core/sources.py +90 -0
- manicule-0.1.0/src/manicule/core/version.py +24 -0
- manicule-0.1.0/src/manicule/embedding/__init__.py +28 -0
- manicule-0.1.0/src/manicule/embedding/artifacts.py +579 -0
- manicule-0.1.0/src/manicule/embedding/base.py +323 -0
- manicule-0.1.0/src/manicule/embedding/cache.py +131 -0
- manicule-0.1.0/src/manicule/embedding/cards.py +503 -0
- manicule-0.1.0/src/manicule/embedding/config.py +65 -0
- manicule-0.1.0/src/manicule/embedding/plugin.py +178 -0
- manicule-0.1.0/src/manicule/embedding/pooling.py +211 -0
- manicule-0.1.0/src/manicule/embedding/runtimes/__init__.py +28 -0
- manicule-0.1.0/src/manicule/embedding/runtimes/hub.py +231 -0
- manicule-0.1.0/src/manicule/embedding/runtimes/onnx_backend.py +176 -0
- manicule-0.1.0/src/manicule/embedding/runtimes/tokenization.py +74 -0
- manicule-0.1.0/src/manicule/entry.py +91 -0
- manicule-0.1.0/src/manicule/evaluation/__init__.py +136 -0
- manicule-0.1.0/src/manicule/evaluation/corpus.py +194 -0
- manicule-0.1.0/src/manicule/evaluation/errors.py +99 -0
- manicule-0.1.0/src/manicule/evaluation/harness.py +179 -0
- manicule-0.1.0/src/manicule/evaluation/judging.py +216 -0
- manicule-0.1.0/src/manicule/evaluation/preference.py +302 -0
- manicule-0.1.0/src/manicule/evaluation/probe.py +448 -0
- manicule-0.1.0/src/manicule/evaluation/queries.py +233 -0
- manicule-0.1.0/src/manicule/evaluation/report.py +333 -0
- manicule-0.1.0/src/manicule/evaluation/statistics.py +176 -0
- manicule-0.1.0/src/manicule/evaluation/systems.py +294 -0
- manicule-0.1.0/src/manicule/generation/__init__.py +167 -0
- manicule-0.1.0/src/manicule/generation/answering.py +722 -0
- manicule-0.1.0/src/manicule/generation/answers.py +467 -0
- manicule-0.1.0/src/manicule/generation/binder.py +217 -0
- manicule-0.1.0/src/manicule/generation/budget.py +146 -0
- manicule-0.1.0/src/manicule/generation/cli_provider.py +346 -0
- manicule-0.1.0/src/manicule/generation/config.py +50 -0
- manicule-0.1.0/src/manicule/generation/history.py +165 -0
- manicule-0.1.0/src/manicule/generation/markers.py +282 -0
- manicule-0.1.0/src/manicule/generation/plugin.py +134 -0
- manicule-0.1.0/src/manicule/generation/policy.py +187 -0
- manicule-0.1.0/src/manicule/generation/ports.py +214 -0
- manicule-0.1.0/src/manicule/generation/prompt.py +193 -0
- manicule-0.1.0/src/manicule/generation/provider.py +779 -0
- manicule-0.1.0/src/manicule/generation/redaction.py +376 -0
- manicule-0.1.0/src/manicule/generation/sharing.py +277 -0
- manicule-0.1.0/src/manicule/generation/verification.py +653 -0
- manicule-0.1.0/src/manicule/ingest/__init__.py +81 -0
- manicule-0.1.0/src/manicule/ingest/capacity.py +220 -0
- manicule-0.1.0/src/manicule/ingest/embedding.py +417 -0
- manicule-0.1.0/src/manicule/ingest/glossary.py +1286 -0
- manicule-0.1.0/src/manicule/ingest/glossary_lineage.py +366 -0
- manicule-0.1.0/src/manicule/ingest/limits.py +147 -0
- manicule-0.1.0/src/manicule/ingest/middleware.py +243 -0
- manicule-0.1.0/src/manicule/ingest/pipeline.py +4195 -0
- manicule-0.1.0/src/manicule/ingest/ports.py +760 -0
- manicule-0.1.0/src/manicule/ingest/rebuild.py +1230 -0
- manicule-0.1.0/src/manicule/ingest/reconcile.py +369 -0
- manicule-0.1.0/src/manicule/ingest/recovery.py +140 -0
- manicule-0.1.0/src/manicule/ingest/reembed.py +1106 -0
- manicule-0.1.0/src/manicule/ingest/refusals.py +245 -0
- manicule-0.1.0/src/manicule/ingest/reindex.py +1161 -0
- manicule-0.1.0/src/manicule/ingest/stages.py +322 -0
- manicule-0.1.0/src/manicule/ingest/sweeps.py +153 -0
- manicule-0.1.0/src/manicule/ingest/watch.py +173 -0
- manicule-0.1.0/src/manicule/ingest/workers.py +1573 -0
- manicule-0.1.0/src/manicule/mcp/__init__.py +12 -0
- manicule-0.1.0/src/manicule/mcp/__main__.py +45 -0
- manicule-0.1.0/src/manicule/mcp/serve.py +193 -0
- manicule-0.1.0/src/manicule/mcp/server.py +1151 -0
- manicule-0.1.0/src/manicule/parsers/__init__.py +17 -0
- manicule-0.1.0/src/manicule/parsers/adf.py +539 -0
- manicule-0.1.0/src/manicule/parsers/archive.py +500 -0
- manicule-0.1.0/src/manicule/parsers/base.py +240 -0
- manicule-0.1.0/src/manicule/parsers/chain.py +315 -0
- manicule-0.1.0/src/manicule/parsers/config.py +592 -0
- manicule-0.1.0/src/manicule/parsers/confluence.py +1200 -0
- manicule-0.1.0/src/manicule/parsers/expansion.py +340 -0
- manicule-0.1.0/src/manicule/parsers/grammar_bundle.py +786 -0
- manicule-0.1.0/src/manicule/parsers/grammars.py +846 -0
- manicule-0.1.0/src/manicule/parsers/inline.py +190 -0
- manicule-0.1.0/src/manicule/parsers/mail.py +518 -0
- manicule-0.1.0/src/manicule/parsers/markdown.py +425 -0
- manicule-0.1.0/src/manicule/parsers/notebook.py +471 -0
- manicule-0.1.0/src/manicule/parsers/pdf.py +455 -0
- manicule-0.1.0/src/manicule/parsers/plaintext.py +134 -0
- manicule-0.1.0/src/manicule/parsers/plugin.py +365 -0
- manicule-0.1.0/src/manicule/parsers/slides.py +343 -0
- manicule-0.1.0/src/manicule/parsers/sourcecode.py +655 -0
- manicule-0.1.0/src/manicule/parsers/spreadsheet.py +483 -0
- manicule-0.1.0/src/manicule/parsers/structured.py +631 -0
- manicule-0.1.0/src/manicule/parsers/versions.py +328 -0
- manicule-0.1.0/src/manicule/parsers/web.py +567 -0
- manicule-0.1.0/src/manicule/parsers/word.py +335 -0
- manicule-0.1.0/src/manicule/plugins/__init__.py +53 -0
- manicule-0.1.0/src/manicule/plugins/compat.py +133 -0
- manicule-0.1.0/src/manicule/plugins/manifest.py +108 -0
- manicule-0.1.0/src/manicule/plugins/registry.py +486 -0
- manicule-0.1.0/src/manicule/py.typed +0 -0
- manicule-0.1.0/src/manicule/retrieval/__init__.py +99 -0
- manicule-0.1.0/src/manicule/retrieval/assembly.py +151 -0
- manicule-0.1.0/src/manicule/retrieval/cache.py +246 -0
- manicule-0.1.0/src/manicule/retrieval/confidence.py +695 -0
- manicule-0.1.0/src/manicule/retrieval/config.py +166 -0
- manicule-0.1.0/src/manicule/retrieval/dense.py +264 -0
- manicule-0.1.0/src/manicule/retrieval/expansion.py +390 -0
- manicule-0.1.0/src/manicule/retrieval/fusion.py +121 -0
- manicule-0.1.0/src/manicule/retrieval/homographs.py +126 -0
- manicule-0.1.0/src/manicule/retrieval/hydration.py +52 -0
- manicule-0.1.0/src/manicule/retrieval/lexical.py +79 -0
- manicule-0.1.0/src/manicule/retrieval/merging.py +58 -0
- manicule-0.1.0/src/manicule/retrieval/plugin.py +178 -0
- manicule-0.1.0/src/manicule/retrieval/ports.py +108 -0
- manicule-0.1.0/src/manicule/retrieval/prefilter.py +188 -0
- manicule-0.1.0/src/manicule/retrieval/profile.py +56 -0
- manicule-0.1.0/src/manicule/retrieval/rerank.py +135 -0
- manicule-0.1.0/src/manicule/retrieval/retriever.py +704 -0
- manicule-0.1.0/src/manicule/retrieval/router.py +182 -0
- manicule-0.1.0/src/manicule/retrieval/runner.py +246 -0
- manicule-0.1.0/src/manicule/retrieval/runtimes/__init__.py +11 -0
- manicule-0.1.0/src/manicule/retrieval/runtimes/cross_encoder.py +121 -0
- manicule-0.1.0/src/manicule/retrieval/tokens.py +201 -0
- manicule-0.1.0/src/manicule/retrieval/trace.py +464 -0
- manicule-0.1.0/src/manicule/retrieval/utility.py +119 -0
- manicule-0.1.0/src/manicule/storage/__init__.py +0 -0
- manicule-0.1.0/src/manicule/storage/acquisition.py +3259 -0
- manicule-0.1.0/src/manicule/storage/autogen.py +93 -0
- manicule-0.1.0/src/manicule/storage/backup.py +416 -0
- manicule-0.1.0/src/manicule/storage/blobs.py +2180 -0
- manicule-0.1.0/src/manicule/storage/config.py +51 -0
- manicule-0.1.0/src/manicule/storage/conversations.py +563 -0
- manicule-0.1.0/src/manicule/storage/docstore.py +1394 -0
- manicule-0.1.0/src/manicule/storage/engine.py +293 -0
- manicule-0.1.0/src/manicule/storage/fts.py +197 -0
- manicule-0.1.0/src/manicule/storage/glossary.py +383 -0
- manicule-0.1.0/src/manicule/storage/history.py +454 -0
- manicule-0.1.0/src/manicule/storage/legacy_snapshots.py +711 -0
- manicule-0.1.0/src/manicule/storage/migrations/env.py +98 -0
- manicule-0.1.0/src/manicule/storage/migrations/script.py.mako +28 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260810_2674752edf52_initial_schema.py +632 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260810_9c1a4f7b2d10_ingest_states.py +185 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260810_a71f3c9d0e55_parse_lineage.py +54 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260810_c3f81a5b6e42_sharing_and_feedback.py +207 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260812_5f1c8a34b7d9_glossary_entries.py +106 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260813_b2e6d0c94a17_page_keyed_identity.py +277 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260813_d4a90c7e15b3_glossary_lineage.py +61 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260814_6e31b7d592ac_atomic_publications.py +82 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_31c7f944a31e_durable_reembedding.py +188 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_4d8f12a6bc91_snapshot_promotion.py +302 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_71be92f03ad4_derived_generations.py +140 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_7a9c31e4d2b6_legacy_snapshot_scope.py +56 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_8b7f91e42c0a_scope_reembedding_to_workspaces.py +298 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_a83d4e106b29_retain_released_document_versions.py +34 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_b7e4d921ac60_acquisition_recovery.py +68 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_c41d7ea923b8_acquired_source_envelope.py +42 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_d52f81a439bc_index_acquisition_marker_names.py +62 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_e4b81a7c2d90_reconciliation_inventory.py +162 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_e83a21f96c40_acquisition_marker_inventory.py +49 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260815_f7c2a91d4e63_acquisition_journal.py +203 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260816_c97a3e2b10f4_rebuild_evidence_verification_fence.py +48 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260816_d31f8a6c20e7_source_inventory_reenumeration.py +114 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260817_b9e14c72a6f0_bounded_acquisition_writers.py +76 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260817_c4b8d1e7a902_workspace_rebuild_snapshots.py +99 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260817_e6a2c91f04bd_full_inventory_authority.py +42 -0
- manicule-0.1.0/src/manicule/storage/migrations/versions/20260818_f3c18a9d72e1_workspace_index_identity.py +292 -0
- manicule-0.1.0/src/manicule/storage/migrator.py +177 -0
- manicule-0.1.0/src/manicule/storage/models.py +1616 -0
- manicule-0.1.0/src/manicule/storage/organization.py +795 -0
- manicule-0.1.0/src/manicule/storage/plugin.py +125 -0
- manicule-0.1.0/src/manicule/storage/rebuild.py +2270 -0
- manicule-0.1.0/src/manicule/storage/reconciliation.py +624 -0
- manicule-0.1.0/src/manicule/storage/reembed.py +1465 -0
- manicule-0.1.0/src/manicule/storage/relations.py +205 -0
- manicule-0.1.0/src/manicule/storage/rows.py +121 -0
- manicule-0.1.0/src/manicule/storage/scoped.py +301 -0
- manicule-0.1.0/src/manicule/storage/source_lifecycle.py +855 -0
- manicule-0.1.0/src/manicule/storage/types.py +73 -0
- manicule-0.1.0/src/manicule/storage/vectors.py +1618 -0
- manicule-0.1.0/src/manicule/testing/__init__.py +87 -0
- manicule-0.1.0/src/manicule/testing/contracts.py +1360 -0
- manicule-0.1.0/src/manicule/testing/fixtures.py +108 -0
- manicule-0.1.0/src/manicule/testing/models.py +231 -0
- manicule-0.1.0/src/manicule/testing/normalize.py +123 -0
- manicule-0.1.0/src/manicule/testing/roundtrip.py +451 -0
- manicule-0.1.0/src/manicule/vocabularies/__init__.py +58 -0
- manicule-0.1.0/src/manicule/vocabularies/bundle.py +558 -0
- manicule-0.1.0/src/manicule/vocabularies/store.py +701 -0
- manicule-0.1.0/src/manicule/web/__init__.py +34 -0
- manicule-0.1.0/src/manicule/web/areas.py +56 -0
- manicule-0.1.0/src/manicule/web/pages.py +638 -0
- manicule-0.1.0/src/manicule/web/rendering.py +313 -0
- manicule-0.1.0/src/manicule/web/security.py +188 -0
- manicule-0.1.0/src/manicule/web/static/manicule.css +245 -0
- manicule-0.1.0/src/manicule/web/static/manicule.js +777 -0
- manicule-0.1.0/src/manicule/web/templates/admin.html +132 -0
- manicule-0.1.0/src/manicule/web/templates/auth.html +94 -0
- manicule-0.1.0/src/manicule/web/templates/bare.html +23 -0
- manicule-0.1.0/src/manicule/web/templates/chat.html +85 -0
- manicule-0.1.0/src/manicule/web/templates/collections.html +61 -0
- manicule-0.1.0/src/manicule/web/templates/connectors.html +39 -0
- manicule-0.1.0/src/manicule/web/templates/dashboard.html +47 -0
- manicule-0.1.0/src/manicule/web/templates/document.html +76 -0
- manicule-0.1.0/src/manicule/web/templates/documents.html +68 -0
- manicule-0.1.0/src/manicule/web/templates/health.html +23 -0
- manicule-0.1.0/src/manicule/web/templates/layout.html +75 -0
- manicule-0.1.0/src/manicule/web/templates/lifecycle.html +81 -0
- manicule-0.1.0/src/manicule/web/templates/macros.html +55 -0
- manicule-0.1.0/src/manicule/web/templates/notfound.html +34 -0
- manicule-0.1.0/src/manicule/web/templates/plugins.html +68 -0
- manicule-0.1.0/src/manicule/web/templates/problem.html +27 -0
- manicule-0.1.0/src/manicule/web/templates/reembed.html +34 -0
- manicule-0.1.0/src/manicule/web/templates/refused.html +31 -0
- manicule-0.1.0/src/manicule/web/templates/search.html +81 -0
- manicule-0.1.0/src/manicule/web/templates/settings.html +80 -0
- manicule-0.1.0/src/manicule/web/templates/shared.html +50 -0
- manicule-0.1.0/src/manicule/web/templates/trash.html +33 -0
- manicule-0.1.0/src/manicule/web/templates/workspaces.html +31 -0
- manicule-0.1.0/tests/__init__.py +1 -0
- manicule-0.1.0/tests/api/__init__.py +1 -0
- manicule-0.1.0/tests/api/live.py +171 -0
- manicule-0.1.0/tests/api/support.py +92 -0
- manicule-0.1.0/tests/api/test_admin.py +259 -0
- manicule-0.1.0/tests/api/test_auth.py +252 -0
- manicule-0.1.0/tests/api/test_both_surfaces.py +316 -0
- manicule-0.1.0/tests/api/test_browser.py +277 -0
- manicule-0.1.0/tests/api/test_contract.py +229 -0
- manicule-0.1.0/tests/api/test_health.py +111 -0
- manicule-0.1.0/tests/api/test_origins.py +285 -0
- manicule-0.1.0/tests/api/test_proxy.py +227 -0
- manicule-0.1.0/tests/api/test_routes.py +713 -0
- manicule-0.1.0/tests/api/test_serve.py +111 -0
- manicule-0.1.0/tests/api/test_sharing.py +303 -0
- manicule-0.1.0/tests/api/test_streaming.py +184 -0
- manicule-0.1.0/tests/api/test_tenancy.py +227 -0
- manicule-0.1.0/tests/app/__init__.py +0 -0
- manicule-0.1.0/tests/app/fakes.py +1284 -0
- manicule-0.1.0/tests/app/test_bind.py +292 -0
- manicule-0.1.0/tests/app/test_cli.py +2403 -0
- manicule-0.1.0/tests/app/test_connector_login.py +128 -0
- manicule-0.1.0/tests/app/test_control.py +640 -0
- manicule-0.1.0/tests/app/test_daemon.py +120 -0
- manicule-0.1.0/tests/app/test_front_door.py +435 -0
- manicule-0.1.0/tests/app/test_ingest_outcomes.py +775 -0
- manicule-0.1.0/tests/app/test_launchd.py +383 -0
- manicule-0.1.0/tests/app/test_live_provenance_surface.py +408 -0
- manicule-0.1.0/tests/app/test_process_exclusion.py +607 -0
- manicule-0.1.0/tests/app/test_proxy.py +495 -0
- manicule-0.1.0/tests/app/test_rebuild_failure_envelopes.py +178 -0
- manicule-0.1.0/tests/app/test_rebuild_runtime.py +664 -0
- manicule-0.1.0/tests/app/test_reembed_runtime.py +231 -0
- manicule-0.1.0/tests/app/test_reembed_service.py +84 -0
- manicule-0.1.0/tests/app/test_results.py +101 -0
- manicule-0.1.0/tests/app/test_runtime.py +1436 -0
- manicule-0.1.0/tests/app/test_scheduler.py +478 -0
- manicule-0.1.0/tests/app/test_service.py +3004 -0
- manicule-0.1.0/tests/app/test_serving.py +231 -0
- manicule-0.1.0/tests/app/test_session_handover.py +734 -0
- manicule-0.1.0/tests/app/test_shutdown.py +444 -0
- manicule-0.1.0/tests/app/test_snapshot_lifecycle.py +217 -0
- manicule-0.1.0/tests/app/test_surface_parity.py +885 -0
- manicule-0.1.0/tests/app/test_tenancy.py +324 -0
- manicule-0.1.0/tests/benchmarks/__init__.py +0 -0
- manicule-0.1.0/tests/benchmarks/acquisition_enumeration.py +164 -0
- manicule-0.1.0/tests/benchmarks/acquisition_reuse.py +213 -0
- manicule-0.1.0/tests/benchmarks/embedding_reuse.py +256 -0
- manicule-0.1.0/tests/benchmarks/test_acquisition_reuse_benchmark.py +14 -0
- manicule-0.1.0/tests/benchmarks/test_embedding_reuse_benchmark.py +120 -0
- manicule-0.1.0/tests/conftest.py +170 -0
- manicule-0.1.0/tests/connectors/__init__.py +1 -0
- manicule-0.1.0/tests/connectors/fake_confluence.py +826 -0
- manicule-0.1.0/tests/connectors/support.py +175 -0
- manicule-0.1.0/tests/connectors/test_authoritative_inventory.py +435 -0
- manicule-0.1.0/tests/connectors/test_browser_login.py +1043 -0
- manicule-0.1.0/tests/connectors/test_browser_sso.py +833 -0
- manicule-0.1.0/tests/connectors/test_client.py +220 -0
- manicule-0.1.0/tests/connectors/test_confluence_snapshot.py +771 -0
- manicule-0.1.0/tests/connectors/test_contract.py +250 -0
- manicule-0.1.0/tests/connectors/test_cql_contract.py +189 -0
- manicule-0.1.0/tests/connectors/test_data_center.py +582 -0
- manicule-0.1.0/tests/connectors/test_discovery.py +300 -0
- manicule-0.1.0/tests/connectors/test_enriched_html.py +509 -0
- manicule-0.1.0/tests/connectors/test_enriched_storage.py +1484 -0
- manicule-0.1.0/tests/connectors/test_fetch.py +674 -0
- manicule-0.1.0/tests/connectors/test_filesystem.py +213 -0
- manicule-0.1.0/tests/connectors/test_instances.py +404 -0
- manicule-0.1.0/tests/connectors/test_macros.py +344 -0
- manicule-0.1.0/tests/connectors/test_pagination.py +374 -0
- manicule-0.1.0/tests/connectors/test_provenance.py +549 -0
- manicule-0.1.0/tests/connectors/test_reconcile.py +144 -0
- manicule-0.1.0/tests/connectors/test_sidecar.py +492 -0
- manicule-0.1.0/tests/connectors/test_sidecar_source.py +907 -0
- manicule-0.1.0/tests/connectors/test_subtree.py +1115 -0
- manicule-0.1.0/tests/corpus/__init__.py +84 -0
- manicule-0.1.0/tests/corpus/adf.py +268 -0
- manicule-0.1.0/tests/corpus/archive.py +269 -0
- manicule-0.1.0/tests/corpus/confluence.py +471 -0
- manicule-0.1.0/tests/corpus/mail.py +230 -0
- manicule-0.1.0/tests/corpus/markdown.py +224 -0
- manicule-0.1.0/tests/corpus/notebook.py +265 -0
- manicule-0.1.0/tests/corpus/pdf.py +239 -0
- manicule-0.1.0/tests/corpus/plaintext.py +114 -0
- manicule-0.1.0/tests/corpus/slides.py +307 -0
- manicule-0.1.0/tests/corpus/sourcecode.py +440 -0
- manicule-0.1.0/tests/corpus/spreadsheet.py +342 -0
- manicule-0.1.0/tests/corpus/structured.py +255 -0
- manicule-0.1.0/tests/corpus/web.py +225 -0
- manicule-0.1.0/tests/corpus/word.py +297 -0
- manicule-0.1.0/tests/embedding_fakes.py +157 -0
- manicule-0.1.0/tests/embedding_support.py +51 -0
- manicule-0.1.0/tests/evaluation/__init__.py +0 -0
- manicule-0.1.0/tests/evaluation/fakes.py +299 -0
- manicule-0.1.0/tests/evaluation/pipeline.py +148 -0
- manicule-0.1.0/tests/evaluation/test_corpus.py +100 -0
- manicule-0.1.0/tests/evaluation/test_harness.py +299 -0
- manicule-0.1.0/tests/evaluation/test_preference.py +190 -0
- manicule-0.1.0/tests/evaluation/test_probe.py +446 -0
- manicule-0.1.0/tests/evaluation/test_queries.py +154 -0
- manicule-0.1.0/tests/evaluation/test_report.py +256 -0
- manicule-0.1.0/tests/evaluation/test_statistics.py +122 -0
- manicule-0.1.0/tests/evaluation/test_systems.py +165 -0
- manicule-0.1.0/tests/fakes.py +720 -0
- manicule-0.1.0/tests/generation/__init__.py +1 -0
- manicule-0.1.0/tests/generation/fakes.py +284 -0
- manicule-0.1.0/tests/generation/test_answering.py +333 -0
- manicule-0.1.0/tests/generation/test_binder.py +381 -0
- manicule-0.1.0/tests/generation/test_cli_provider.py +217 -0
- manicule-0.1.0/tests/generation/test_conformance.py +113 -0
- manicule-0.1.0/tests/generation/test_markers.py +140 -0
- manicule-0.1.0/tests/generation/test_prompt_and_history.py +165 -0
- manicule-0.1.0/tests/generation/test_provider_and_budget.py +539 -0
- manicule-0.1.0/tests/generation/test_redaction_and_policy.py +283 -0
- manicule-0.1.0/tests/generation/test_regressions.py +954 -0
- manicule-0.1.0/tests/generation/test_sharing.py +148 -0
- manicule-0.1.0/tests/glossary/__init__.py +0 -0
- manicule-0.1.0/tests/glossary/corpus.py +421 -0
- manicule-0.1.0/tests/glossary/skeleton_corpus.py +506 -0
- manicule-0.1.0/tests/glossary/system.py +225 -0
- manicule-0.1.0/tests/glossary/test_confluence_ingest.py +419 -0
- manicule-0.1.0/tests/glossary/test_detection.py +1554 -0
- manicule-0.1.0/tests/glossary/test_expansion.py +395 -0
- manicule-0.1.0/tests/glossary/test_lineage.py +606 -0
- manicule-0.1.0/tests/glossary/test_measured.py +256 -0
- manicule-0.1.0/tests/glossary/test_repair.py +684 -0
- manicule-0.1.0/tests/glossary/test_retrieval.py +847 -0
- manicule-0.1.0/tests/glossary/test_service.py +230 -0
- manicule-0.1.0/tests/glossary/test_skeleton_evaluation.py +450 -0
- manicule-0.1.0/tests/glossary/test_storage.py +444 -0
- manicule-0.1.0/tests/glossary/test_surfaces.py +883 -0
- manicule-0.1.0/tests/grammar_support.py +113 -0
- manicule-0.1.0/tests/ingest/__init__.py +1 -0
- manicule-0.1.0/tests/ingest/fakes.py +1397 -0
- manicule-0.1.0/tests/ingest/test_benchmark_stages.py +119 -0
- manicule-0.1.0/tests/ingest/test_capacity.py +192 -0
- manicule-0.1.0/tests/ingest/test_concurrency.py +1269 -0
- manicule-0.1.0/tests/ingest/test_embedding_reuse.py +1098 -0
- manicule-0.1.0/tests/ingest/test_generation_rebuild.py +1281 -0
- manicule-0.1.0/tests/ingest/test_glossary_lineage.py +197 -0
- manicule-0.1.0/tests/ingest/test_middleware.py +137 -0
- manicule-0.1.0/tests/ingest/test_pipeline.py +1155 -0
- manicule-0.1.0/tests/ingest/test_provenance.py +633 -0
- manicule-0.1.0/tests/ingest/test_reconcile.py +167 -0
- manicule-0.1.0/tests/ingest/test_recovery.py +126 -0
- manicule-0.1.0/tests/ingest/test_reembed_storage.py +1465 -0
- manicule-0.1.0/tests/ingest/test_refusals.py +258 -0
- manicule-0.1.0/tests/ingest/test_reindex.py +488 -0
- manicule-0.1.0/tests/ingest/test_reindex_sweep.py +1282 -0
- manicule-0.1.0/tests/ingest/test_served_concurrency.py +927 -0
- manicule-0.1.0/tests/ingest/test_shadow_reembed.py +929 -0
- manicule-0.1.0/tests/ingest/test_stage_widths.py +159 -0
- manicule-0.1.0/tests/ingest/test_stages.py +234 -0
- manicule-0.1.0/tests/ingest/test_storage_integration.py +6236 -0
- manicule-0.1.0/tests/ingest/test_sweeps.py +145 -0
- manicule-0.1.0/tests/ingest/test_watch.py +117 -0
- manicule-0.1.0/tests/ingest/test_workers.py +878 -0
- manicule-0.1.0/tests/mcp/__init__.py +1 -0
- manicule-0.1.0/tests/mcp/qualification.py +648 -0
- manicule-0.1.0/tests/mcp/stdio_child.py +40 -0
- manicule-0.1.0/tests/mcp/test_annotations.py +490 -0
- manicule-0.1.0/tests/mcp/test_qualification.py +322 -0
- manicule-0.1.0/tests/mcp/test_stdio.py +148 -0
- manicule-0.1.0/tests/mcp/test_transports.py +115 -0
- manicule-0.1.0/tests/parsers/__init__.py +0 -0
- manicule-0.1.0/tests/parsers/conftest.py +19 -0
- manicule-0.1.0/tests/parsers/support.py +172 -0
- manicule-0.1.0/tests/parsers/test_adf.py +433 -0
- manicule-0.1.0/tests/parsers/test_archive.py +590 -0
- manicule-0.1.0/tests/parsers/test_confluence.py +1299 -0
- manicule-0.1.0/tests/parsers/test_every_parser.py +430 -0
- manicule-0.1.0/tests/parsers/test_grammar_bundle.py +1201 -0
- manicule-0.1.0/tests/parsers/test_grammars.py +677 -0
- manicule-0.1.0/tests/parsers/test_inline.py +156 -0
- manicule-0.1.0/tests/parsers/test_mail.py +681 -0
- manicule-0.1.0/tests/parsers/test_markdown.py +468 -0
- manicule-0.1.0/tests/parsers/test_notebook.py +404 -0
- manicule-0.1.0/tests/parsers/test_pdf.py +480 -0
- manicule-0.1.0/tests/parsers/test_plaintext.py +271 -0
- manicule-0.1.0/tests/parsers/test_slides.py +434 -0
- manicule-0.1.0/tests/parsers/test_sourcecode.py +772 -0
- manicule-0.1.0/tests/parsers/test_spreadsheet.py +449 -0
- manicule-0.1.0/tests/parsers/test_structured.py +401 -0
- manicule-0.1.0/tests/parsers/test_versions.py +279 -0
- manicule-0.1.0/tests/parsers/test_web.py +829 -0
- manicule-0.1.0/tests/parsers/test_word.py +414 -0
- manicule-0.1.0/tests/retrieval/__init__.py +1 -0
- manicule-0.1.0/tests/retrieval/fakes.py +201 -0
- manicule-0.1.0/tests/retrieval/test_assembly.py +228 -0
- manicule-0.1.0/tests/retrieval/test_cache.py +273 -0
- manicule-0.1.0/tests/retrieval/test_confidence.py +656 -0
- manicule-0.1.0/tests/retrieval/test_dense.py +386 -0
- manicule-0.1.0/tests/retrieval/test_fusion.py +152 -0
- manicule-0.1.0/tests/retrieval/test_lexical.py +124 -0
- manicule-0.1.0/tests/retrieval/test_prefilter.py +136 -0
- manicule-0.1.0/tests/retrieval/test_rerank.py +136 -0
- manicule-0.1.0/tests/retrieval/test_retriever.py +597 -0
- manicule-0.1.0/tests/retrieval/test_router.py +115 -0
- manicule-0.1.0/tests/retrieval/test_runner.py +246 -0
- manicule-0.1.0/tests/routing_support.py +175 -0
- manicule-0.1.0/tests/storage_helpers.py +131 -0
- manicule-0.1.0/tests/test_american_english.py +442 -0
- manicule-0.1.0/tests/test_anchors.py +148 -0
- manicule-0.1.0/tests/test_capabilities.py +111 -0
- manicule-0.1.0/tests/test_chunking.py +914 -0
- manicule-0.1.0/tests/test_ci_format_scope.py +129 -0
- manicule-0.1.0/tests/test_ci_grammar_cache.py +168 -0
- manicule-0.1.0/tests/test_ci_link_check.py +308 -0
- manicule-0.1.0/tests/test_ci_switches.py +232 -0
- manicule-0.1.0/tests/test_ci_test_sharding.py +197 -0
- manicule-0.1.0/tests/test_collections.py +613 -0
- manicule-0.1.0/tests/test_config.py +519 -0
- manicule-0.1.0/tests/test_conformance.py +534 -0
- manicule-0.1.0/tests/test_container.py +505 -0
- manicule-0.1.0/tests/test_content.py +167 -0
- manicule-0.1.0/tests/test_corpus.py +144 -0
- manicule-0.1.0/tests/test_embedding_backends.py +282 -0
- manicule-0.1.0/tests/test_embedding_cache.py +123 -0
- manicule-0.1.0/tests/test_embedding_embedder.py +333 -0
- manicule-0.1.0/tests/test_embedding_hub.py +93 -0
- manicule-0.1.0/tests/test_embedding_models.py +643 -0
- manicule-0.1.0/tests/test_embedding_pooling.py +201 -0
- manicule-0.1.0/tests/test_fingerprints.py +260 -0
- manicule-0.1.0/tests/test_import_boundary.py +432 -0
- manicule-0.1.0/tests/test_integration.py +378 -0
- manicule-0.1.0/tests/test_license_boundary.py +198 -0
- manicule-0.1.0/tests/test_packaging.py +328 -0
- manicule-0.1.0/tests/test_parser_chain.py +241 -0
- manicule-0.1.0/tests/test_parser_streams.py +173 -0
- manicule-0.1.0/tests/test_plugins.py +309 -0
- manicule-0.1.0/tests/test_protocol_signatures.py +199 -0
- manicule-0.1.0/tests/test_provenance.py +395 -0
- manicule-0.1.0/tests/test_roundtrip.py +425 -0
- manicule-0.1.0/tests/test_storage_acquisition.py +3888 -0
- manicule-0.1.0/tests/test_storage_backup.py +425 -0
- manicule-0.1.0/tests/test_storage_blobs.py +2597 -0
- manicule-0.1.0/tests/test_storage_conversations.py +515 -0
- manicule-0.1.0/tests/test_storage_docstore.py +571 -0
- manicule-0.1.0/tests/test_storage_fts.py +190 -0
- manicule-0.1.0/tests/test_storage_legacy_snapshots.py +762 -0
- manicule-0.1.0/tests/test_storage_migrations.py +1413 -0
- manicule-0.1.0/tests/test_storage_organization.py +616 -0
- manicule-0.1.0/tests/test_storage_rebuild.py +2878 -0
- manicule-0.1.0/tests/test_storage_reconciliation.py +417 -0
- manicule-0.1.0/tests/test_storage_schema.py +458 -0
- manicule-0.1.0/tests/test_storage_source_lifecycle.py +624 -0
- manicule-0.1.0/tests/test_storage_vectors.py +1015 -0
- manicule-0.1.0/tests/test_vocabulary.py +278 -0
- manicule-0.1.0/tests/vocabularies/__init__.py +1 -0
- manicule-0.1.0/tests/vocabularies/test_vocabulary_bundle.py +1172 -0
- manicule-0.1.0/tests/vocabularies/test_vocabulary_cache.py +132 -0
- manicule-0.1.0/tests/vocabulary_support.py +87 -0
- manicule-0.1.0/tests/web/__init__.py +1 -0
- manicule-0.1.0/tests/web/support.py +228 -0
- manicule-0.1.0/tests/web/test_boundaries.py +239 -0
- manicule-0.1.0/tests/web/test_empty_states.py +161 -0
- manicule-0.1.0/tests/web/test_escaping.py +254 -0
- manicule-0.1.0/tests/web/test_pages.py +351 -0
- manicule-0.1.0/tests/web/test_script_runtime.py +361 -0
- manicule-0.1.0/tests/web/test_sharing.py +153 -0
- manicule-0.1.0/tests/web/test_tenancy.py +192 -0
- manicule-0.1.0/tools/benchmark_ingest_stages.py +384 -0
- manicule-0.1.0/tools/build_grammar_bundle.py +227 -0
- manicule-0.1.0/tools/build_vocabulary_bundle.py +127 -0
- manicule-0.1.0/tools/check_link_report.py +135 -0
- manicule-0.1.0/tools/extract_surface.py +238 -0
- manicule-0.1.0/tools/launchd/com.manicule.server.plist +85 -0
- manicule-0.1.0/tools/prefetch_embedding_models.py +133 -0
- manicule-0.1.0/tools/smoke_offline_rebuild_settlement.py +455 -0
- manicule-0.1.0/uv.lock +4604 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Kept so that the Dockerfile's `COPY .ci/grammars` resolves on a clean clone, where nothing
|
|
2
|
+
# has staged anything here. An absent directory is a build that fails at the copy; an empty one
|
|
3
|
+
# is a build that downloads the grammar release itself, which is what a developer running
|
|
4
|
+
# `docker build .` wants and gets.
|
|
5
|
+
#
|
|
6
|
+
# CI fills this from a cache before building — see the container job in
|
|
7
|
+
# .github/workflows/ci.yml — so that the release is fetched once per pack version rather than
|
|
8
|
+
# once per pull request. Contents are ignored by git: they are compiled libraries for one
|
|
9
|
+
# platform and one release, which is the definition of something that should not be committed.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# What the image build is allowed to see. Everything else is excluded, because a build
|
|
2
|
+
# context is copied into the daemon before the first instruction runs: a stray `.venv` or a
|
|
3
|
+
# populated data directory is minutes of transfer and, in the second case, a corpus baked
|
|
4
|
+
# into a layer.
|
|
5
|
+
*
|
|
6
|
+
!pyproject.toml
|
|
7
|
+
!uv.lock
|
|
8
|
+
!README.md
|
|
9
|
+
!LICENSE
|
|
10
|
+
!src
|
|
11
|
+
!tools
|
|
12
|
+
!packages
|
|
13
|
+
# Where a caller may stage the tree-sitter pack so that the build does not download it, named
|
|
14
|
+
# for the pack release it holds. Empty in the repository — it carries one committed placeholder
|
|
15
|
+
# so the Dockerfile's `COPY` resolves on a clean clone — and filled by CI from a cache. Admitted
|
|
16
|
+
# as a whole directory because that is how every other entry here reads; nothing else belongs
|
|
17
|
+
# under it, and anything that did would be copied into the daemon on every build.
|
|
18
|
+
!.ci
|
|
19
|
+
|
|
20
|
+
# Re-excluded from the directories admitted above. `**` because these appear at any depth,
|
|
21
|
+
# and the negations above would otherwise pull a workspace member's own build artifacts in.
|
|
22
|
+
**/__pycache__
|
|
23
|
+
**/*.pyc
|
|
24
|
+
**/*.pyo
|
|
25
|
+
**/.pytest_cache
|
|
26
|
+
**/.ruff_cache
|
|
27
|
+
**/.venv
|
|
28
|
+
**/*.egg-info
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
# Dependency update automation.
|
|
2
|
+
#
|
|
3
|
+
# The organizing idea is that not every bump costs the same. Most of them risk a regression,
|
|
4
|
+
# which CI catches. A few of them change what is *in the index* — the stored vectors, the
|
|
5
|
+
# chunk boundaries, or the text a document was reduced to — and the cost of accepting one is
|
|
6
|
+
# re-ingesting the corpus, which no test can pay on a maintainer's behalf. Those are grouped
|
|
7
|
+
# under an `index-affecting-` prefix so the pull request title says so before it is opened.
|
|
8
|
+
#
|
|
9
|
+
# What Dependabot does not do is check licenses. This project is GPL-3.0-or-later and has
|
|
10
|
+
# rejected dependencies on license grounds; a bump that changes a dependency's license is a
|
|
11
|
+
# real event and nothing here will catch it. CONTRIBUTING.md, "Reviewing a dependency
|
|
12
|
+
# update", says what to do about that.
|
|
13
|
+
|
|
14
|
+
version: 2
|
|
15
|
+
|
|
16
|
+
updates:
|
|
17
|
+
# ----------------------------------------------------------------------------------------
|
|
18
|
+
# GitHub Actions
|
|
19
|
+
# ----------------------------------------------------------------------------------------
|
|
20
|
+
# `/` is the documented value for this ecosystem and does not mean the repository root in
|
|
21
|
+
# the usual sense: Dependabot searches `.github/workflows/` plus a root `action.yml`. There
|
|
22
|
+
# are no composite actions here, so `/` is the whole surface.
|
|
23
|
+
- package-ecosystem: "github-actions"
|
|
24
|
+
directory: "/"
|
|
25
|
+
schedule:
|
|
26
|
+
interval: "weekly"
|
|
27
|
+
day: "monday"
|
|
28
|
+
groups:
|
|
29
|
+
# One pull request for the lot. These are pinned by major tag, they move together, and
|
|
30
|
+
# a failure is immediate and total rather than subtle — CI either runs or it does not.
|
|
31
|
+
github-actions:
|
|
32
|
+
patterns: ["*"]
|
|
33
|
+
|
|
34
|
+
# ----------------------------------------------------------------------------------------
|
|
35
|
+
# Python — one uv workspace, one lockfile
|
|
36
|
+
# ----------------------------------------------------------------------------------------
|
|
37
|
+
# `directory: "/"` covers the workspace *including* `packages/manicule-plugin-example` and
|
|
38
|
+
# `packages/manicule-plugin-hostile`. There is exactly one `uv.lock`, at the root, and its
|
|
39
|
+
# `[manifest] members` table names all three projects; Dependabot's uv ecosystem reads the
|
|
40
|
+
# workspace from there. Adding `directories: ["/", "/packages/*"]` would be wrong, not
|
|
41
|
+
# merely redundant: each member directory holds a `pyproject.toml` with no lockfile beside
|
|
42
|
+
# it, whose only dependency is `manicule` itself, which is resolved through
|
|
43
|
+
# `[tool.uv.sources]` and is not published to PyPI. Pointing Dependabot at them asks it to
|
|
44
|
+
# resolve a package that does not exist on any index.
|
|
45
|
+
- package-ecosystem: "uv"
|
|
46
|
+
directory: "/"
|
|
47
|
+
schedule:
|
|
48
|
+
interval: "weekly"
|
|
49
|
+
day: "monday"
|
|
50
|
+
# Five groups, and headroom. The default of 5 would sit exactly on the boundary, and the
|
|
51
|
+
# failure mode is silent: Dependabot stops opening pull requests rather than reporting
|
|
52
|
+
# that it wanted to. The headroom is for the weeks when a group cannot be updated as one
|
|
53
|
+
# — a member with an incompatible constraint is raised on its own — which is precisely
|
|
54
|
+
# when the queue is longest and least worth truncating.
|
|
55
|
+
open-pull-requests-limit: 10
|
|
56
|
+
# Security updates are deliberately left alone by everything above. They are not subject
|
|
57
|
+
# to `open-pull-requests-limit`, they do not wait for Monday, and `groups` defaults to
|
|
58
|
+
# `applies-to: version-updates`, so an advisory produces its own pull request the day it
|
|
59
|
+
# lands rather than joining a batch. That is the intended behavior and the reason no
|
|
60
|
+
# group below sets `applies-to`.
|
|
61
|
+
#
|
|
62
|
+
# `commit-message` is deliberately unset on both blocks. Its default is to follow the
|
|
63
|
+
# patterns already in the repository, which produces "Bump x from 1 to 2" — imperative,
|
|
64
|
+
# which is what CONTRIBUTING.md asks for. A `prefix` would replace that with a
|
|
65
|
+
# conventional-commit form this repository does not otherwise use.
|
|
66
|
+
#
|
|
67
|
+
# Every dependency in this project is declared with a bare `>=` floor, which reads as
|
|
68
|
+
# "the oldest version we have tested" rather than as a resolution. The default strategy
|
|
69
|
+
# tries to guess whether a project is an app or a library and, for a library, *widens* —
|
|
70
|
+
# which would start writing upper bounds into pyproject.toml that nobody chose.
|
|
71
|
+
# `increase-if-necessary` leaves a floor alone whenever the new release already satisfies
|
|
72
|
+
# it, so the ordinary bump moves uv.lock and touches nothing else.
|
|
73
|
+
versioning-strategy: "increase-if-necessary"
|
|
74
|
+
ignore:
|
|
75
|
+
# The three workspace members. They resolve through `[tool.uv.sources]`, never from an
|
|
76
|
+
# index, and none of them is published. Without this, a package registered on PyPI
|
|
77
|
+
# under one of these names could be offered as an "update" to a local path dependency.
|
|
78
|
+
- dependency-name: "manicule"
|
|
79
|
+
- dependency-name: "manicule-plugin-example"
|
|
80
|
+
- dependency-name: "manicule-plugin-hostile"
|
|
81
|
+
|
|
82
|
+
# One version, not a range, and it is upstream's arithmetic rather than a preference of
|
|
83
|
+
# ours. `tokenizers` published no final 0.23.0 — only 0.23.0rc0 — and went straight to
|
|
84
|
+
# 0.23.1, while every released `transformers`, up to and including 5.15.0, pins
|
|
85
|
+
# `tokenizers>=0.22.0,<=0.23.0`. `sentence-transformers` under the `rerank` extra
|
|
86
|
+
# depends on `transformers`, so `manicule[embeddings]` at 0.23.1 and `manicule[rerank]`
|
|
87
|
+
# cannot both be satisfied by any combination of versions. Without this entry Dependabot
|
|
88
|
+
# re-derives that every Monday and reports it as a resolution failure, which reads like
|
|
89
|
+
# a problem with this repository and is not one: `uv lock --upgrade-package tokenizers`
|
|
90
|
+
# already returns the newest satisfiable version and leaves the lockfile unchanged.
|
|
91
|
+
#
|
|
92
|
+
# Naming the single version rather than capping the dependency keeps this self-clearing.
|
|
93
|
+
# The next `tokenizers` release is offered normally, and by then `transformers` will
|
|
94
|
+
# have widened its bound or the failure will be a real one worth seeing. Drop this entry
|
|
95
|
+
# once `transformers` allows 0.23.1 — the whole point is that it does not outlive the
|
|
96
|
+
# upstream cap it describes.
|
|
97
|
+
- dependency-name: "tokenizers"
|
|
98
|
+
versions: ["0.23.1"]
|
|
99
|
+
|
|
100
|
+
# Group order is meaningful: a dependency joins the first group it matches. The
|
|
101
|
+
# `index-affecting-*` groups are therefore first, and `runtime` — the only group with a
|
|
102
|
+
# wildcard — repeats their patterns under `exclude-patterns` as well. That duplication is
|
|
103
|
+
# deliberate. Relying on ordering alone would mean one wildcard away from `mlx-embeddings`
|
|
104
|
+
# arriving in a pull request titled "the runtime group", which is exactly the outcome all
|
|
105
|
+
# of this exists to prevent.
|
|
106
|
+
#
|
|
107
|
+
# Note that these groups cannot carry their own labels — `labels` is a property of the
|
|
108
|
+
# update block, not of a group — so the group identifier is the signal. It is the text
|
|
109
|
+
# Dependabot puts in the branch name and the pull request title.
|
|
110
|
+
groups:
|
|
111
|
+
# --- index-affecting: the stored vectors ------------------------------------------
|
|
112
|
+
# A bump here can change the numbers written into the vector index. `EmbedFingerprint`
|
|
113
|
+
# exists to refuse an index built with something else, and the macOS backend parity job
|
|
114
|
+
# compares MLX against ONNX within a stated tolerance, so a genuinely divergent bump
|
|
115
|
+
# should go red rather than merge — but red is a signal, not a fix. Accepting one of
|
|
116
|
+
# these means re-embedding the corpus.
|
|
117
|
+
#
|
|
118
|
+
# `mlx-embeddings` is the sharp edge: it is at 0.1.0 and binds `last_hidden_state` to
|
|
119
|
+
# different meanings on different architectures, so a patch release can move vectors
|
|
120
|
+
# without changing an API. `tokenizers` is worse than it looks — `tokenizer_id` is an
|
|
121
|
+
# identity field of *both* fingerprints, so a vocabulary change invalidates the chunk
|
|
122
|
+
# boundaries as well as the vectors. `numpy` is here because pooling and normalization
|
|
123
|
+
# are done in manicule's own numpy rather than taken from a backend's convenience
|
|
124
|
+
# output, which puts it in the path that decides what a vector is.
|
|
125
|
+
#
|
|
126
|
+
# The patterns reach past the declared extra on purpose. `mlx` and `mlx-metal` are the
|
|
127
|
+
# array framework and the Metal kernels underneath `mlx-embeddings` — the arithmetic
|
|
128
|
+
# that produces the vectors is theirs, not its. `transformers` loads the model and
|
|
129
|
+
# tokenizer configuration, `sentencepiece` is the tokenizer implementation the bge
|
|
130
|
+
# models actually use, and `safetensors` is the format the executed weights arrive in;
|
|
131
|
+
# a corpus is only portable between backends because those agree.
|
|
132
|
+
#
|
|
133
|
+
# The line is drawn at libraries that decide what a vector *is*. It is not drawn at
|
|
134
|
+
# every transitive beneath them — `regex`, `protobuf` and `flatbuffers` are also in
|
|
135
|
+
# the path, and at that point the group stops distinguishing anything.
|
|
136
|
+
index-affecting-embedding:
|
|
137
|
+
patterns:
|
|
138
|
+
- "mlx"
|
|
139
|
+
- "mlx-*"
|
|
140
|
+
- "onnxruntime"
|
|
141
|
+
- "onnxruntime-*"
|
|
142
|
+
- "tokenizers"
|
|
143
|
+
- "sentencepiece"
|
|
144
|
+
- "transformers"
|
|
145
|
+
- "safetensors"
|
|
146
|
+
- "huggingface-hub"
|
|
147
|
+
- "numpy"
|
|
148
|
+
|
|
149
|
+
# --- index-affecting: where chunks begin and end ----------------------------------
|
|
150
|
+
# `ChunkFingerprint` records grammar versions per language, so a
|
|
151
|
+
# `tree-sitter-language-pack` bump invalidates the code documents in the languages it
|
|
152
|
+
# moved and leaves the rest alone. That selectivity is the whole reason the field is a
|
|
153
|
+
# mapping, and it is why this is a cheaper event than an embedding bump — but it is
|
|
154
|
+
# still a re-chunk and therefore a re-embed of what it touches.
|
|
155
|
+
#
|
|
156
|
+
# `tiktoken` backs the *provisional* token counter, which records its encoding and its
|
|
157
|
+
# installed version — `provisional:x1.5:tiktoken/cl100k_base@0.13.0` — so a bump moves
|
|
158
|
+
# the fingerprint and ingest says so. It is grouped here because that is what a bump
|
|
159
|
+
# costs, not because nothing would notice: provisional chunks are refused by ingest
|
|
160
|
+
# outright, so the practical effect is on dry-run parses and fixture builds.
|
|
161
|
+
#
|
|
162
|
+
# A `tiktoken` bump also touches the offline vocabulary bundle, and does so in a way
|
|
163
|
+
# that is checked rather than assumed. Bundles are *not* refused on a version mismatch,
|
|
164
|
+
# because the `.tiktoken` files have not moved across releases and forcing a rebuild
|
|
165
|
+
# that changes nothing would land on the hosts least able to rebuild anything. What is
|
|
166
|
+
# checked is the thing that would actually break: a release asking for a different URL,
|
|
167
|
+
# or declaring a different digest, fails the offline suite here rather than on an
|
|
168
|
+
# air-gapped host at its first question.
|
|
169
|
+
index-affecting-chunking:
|
|
170
|
+
patterns:
|
|
171
|
+
- "tiktoken"
|
|
172
|
+
- "tree-sitter"
|
|
173
|
+
- "tree-sitter-*"
|
|
174
|
+
|
|
175
|
+
# --- index-affecting: what a document was reduced to -------------------------------
|
|
176
|
+
# These decide the text that ends up in the corpus. `ParseFingerprint` records every
|
|
177
|
+
# one of them, per document, in `documents.parse_fp` — so a bump here no longer passes
|
|
178
|
+
# unnoticed: change detection stops treating the affected documents as unchanged and
|
|
179
|
+
# re-parses them, and `reindex --re-parse` selects exactly that set without waiting for
|
|
180
|
+
# a sync. What a bump costs is therefore a re-parse of the documents that library
|
|
181
|
+
# produced, and nothing else.
|
|
182
|
+
#
|
|
183
|
+
# `tests/parsers/test_versions.py` asserts that every distribution reaching a parse
|
|
184
|
+
# fingerprint is matched by a pattern in this group. A library that decides stored text
|
|
185
|
+
# and lands in a pull request titled "the runtime group" is the failure that check
|
|
186
|
+
# exists for.
|
|
187
|
+
#
|
|
188
|
+
# `lxml` is here rather than in `runtime` because it is what `python-docx` and
|
|
189
|
+
# `python-pptx` read OOXML *with*: the XML parse is the extraction step, and neither
|
|
190
|
+
# library would notice it changing. `ruamel*` is a wildcard because the declared name
|
|
191
|
+
# is `ruamel.yaml` and the resolved name is `ruamel-yaml` — package names normalize
|
|
192
|
+
# under PEP 503, and a literal `ruamel.yaml` pattern would match neither the lockfile
|
|
193
|
+
# entry nor the accelerator `ruamel-yaml-clib` beneath it.
|
|
194
|
+
index-affecting-extraction:
|
|
195
|
+
patterns:
|
|
196
|
+
- "pypdfium2"
|
|
197
|
+
- "selectolax"
|
|
198
|
+
- "lxml"
|
|
199
|
+
- "python-docx"
|
|
200
|
+
- "python-pptx"
|
|
201
|
+
- "python-calamine"
|
|
202
|
+
- "nbformat"
|
|
203
|
+
- "markdown-it-py"
|
|
204
|
+
- "ruamel*"
|
|
205
|
+
|
|
206
|
+
# --- routine ----------------------------------------------------------------------
|
|
207
|
+
# Development tooling. A bump here can fail the build; it cannot change a stored byte.
|
|
208
|
+
# `groups.dependency-type` would have expressed this directly, but it is documented as
|
|
209
|
+
# supported for `bundler`, `composer`, `mix`, `maven`, `npm` and `pip` only — not for
|
|
210
|
+
# `uv` — so the split is by name instead.
|
|
211
|
+
dev-tooling:
|
|
212
|
+
patterns:
|
|
213
|
+
- "pytest"
|
|
214
|
+
- "pytest-*"
|
|
215
|
+
- "ruff"
|
|
216
|
+
- "pyright"
|
|
217
|
+
- "reportlab"
|
|
218
|
+
- "openpyxl"
|
|
219
|
+
|
|
220
|
+
# Everything else, and anything transitive that Dependabot surfaces from uv.lock.
|
|
221
|
+
# Storage, HTTP, config and the reranker live here. `sentence-transformers` — and
|
|
222
|
+
# `torch`, `scikit-learn` and `scipy` under it — is deliberately *not* index-affecting:
|
|
223
|
+
# the cross-encoder runs at query time and reorders results, so a bump changes answers
|
|
224
|
+
# rather than the corpus, and no re-ingest follows from it.
|
|
225
|
+
runtime:
|
|
226
|
+
patterns: ["*"]
|
|
227
|
+
exclude-patterns:
|
|
228
|
+
- "mlx"
|
|
229
|
+
- "mlx-*"
|
|
230
|
+
- "onnxruntime"
|
|
231
|
+
- "onnxruntime-*"
|
|
232
|
+
- "tokenizers"
|
|
233
|
+
- "sentencepiece"
|
|
234
|
+
- "transformers"
|
|
235
|
+
- "safetensors"
|
|
236
|
+
- "huggingface-hub"
|
|
237
|
+
- "numpy"
|
|
238
|
+
- "tiktoken"
|
|
239
|
+
- "tree-sitter"
|
|
240
|
+
- "tree-sitter-*"
|
|
241
|
+
- "pypdfium2"
|
|
242
|
+
- "selectolax"
|
|
243
|
+
- "lxml"
|
|
244
|
+
- "python-docx"
|
|
245
|
+
- "python-pptx"
|
|
246
|
+
- "python-calamine"
|
|
247
|
+
- "nbformat"
|
|
248
|
+
- "markdown-it-py"
|
|
249
|
+
- "ruamel*"
|