blq-cli 1.2.1__tar.gz → 1.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {blq_cli-1.2.1 → blq_cli-1.2.2}/CHANGELOG.md +9 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/PKG-INFO +1 -1
- {blq_cli-1.2.1 → blq_cli-1.2.2}/pyproject.toml +1 -1
- blq_cli-1.2.2/src/blq/__init__.py +32 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/serve.py +2 -2
- blq_cli-1.2.2/tests/test_version.py +37 -0
- blq_cli-1.2.1/src/blq/__init__.py +0 -21
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.claude/hooks/blq-suggest.sh +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.github/workflows/ci.yml +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.github/workflows/docs.yml +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.github/workflows/publish.yml +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.gitignore +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.mcp.json +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/.readthedocs.yml +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/AGENT.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/AGENTS.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/CLAUDE.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/CONTRIBUTING.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/README.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/SKILL.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/api-reference.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/capture.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/ci.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/completions.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/errors.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/exec.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/filter.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/index.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/init.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/maintenance.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/query.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/registry.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/report.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/run.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/sql.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/status.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/sync.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/commands/watch.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-bird-migration.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-commands.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-config-command.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-extensions.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-git-integration.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-hooks-v2.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-live-inspection.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-parameterized-commands.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-run-args.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-sandbox-specs.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-sync.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/design-track-save.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/duck-hunt-v2-migration.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/duck-hunt-v3-migration.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/proposal-bird-v5.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/design/skill-inspect-enrichment.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/getting-started.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/index.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/integration.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/mcp.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plans/explore-bird-sqlite-backend.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plans/explore-nsjail-python-wrapper.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plans/explore-nsjail-spack-package.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plans/patterns-integration-prompt.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plans/roadmap-to-1.0.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/plugin-guide.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/python-api.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/query-guide.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/requirements.txt +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/sandbox.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/schema-stability.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/schema.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-22-extension-system.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-28-bwrap-engine.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-28-command-locks.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-29-annotators-and-tighten.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-29-service-layer-phase1.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/plans/2026-03-29-strace-profiling.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/specs/2026-03-22-extension-system-design.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/specs/2026-03-29-unified-service-layer-design.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/experiments/agent-build-test.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/mkdocs.yml +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/__main__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/bird.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/bird_schema.sql +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/cli.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/README.md +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/ci_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/clean_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/config_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/core.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/events.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/execution.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/hooks_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/hooks_gen.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/init_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/management.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/management_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/mcp_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/migrate.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/query_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/record_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/registry.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/report_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/sandbox_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/serve_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/sync_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/commands/watch_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/config_format.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/ext/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/ext/annotator.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/ext/discovery.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/ext/local_executor.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/ext/pipeline.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/git.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/github.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/locks.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/output.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/query.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/runtime.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/schema.sql +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/services/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/services/execution.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/services/inspect.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/services/query.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/services/refs.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/storage.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/templates/drone.yml.j2 +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/templates/git_hook.sh.j2 +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/templates/github_workflow.yml.j2 +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/templates/gitlab_ci.yml.j2 +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/templates/hook_script.sh.j2 +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq/user_config.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/engines.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/profile.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/source_annotator.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/spec.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/strace_parser.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/tighten.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox/violations.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox_bwrap/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox_bwrap/args.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/src/blq_sandbox_systemd/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/__init__.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/conftest.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/sql/test_duck_hunt_v2_migration.sql +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_annotator.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_attempts_outcomes.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_auto_init.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_autoprune.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_bird.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_bwrap_args.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_bwrap_engine.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ci.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ci_generators.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_command_args.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_command_lock_field.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_config_consumption.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_core.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_execution_locks.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_exit_code_reason.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ext_discovery.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ext_integration.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ext_local_executor.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ext_pipeline.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_ext_types.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_git.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_hooks.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_hooks_gen.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_import_capture_storage.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_inspect.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_json_null_filter.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_locks.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_log_content_persistence.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_mcp_ci_tools.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_mcp_merge.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_mcp_server.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_output_schemas.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_phase1_structured_output.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_phase2_command_registry.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_query_api.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_query_filter.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_record_invocation.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_report.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_runtime_config.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_cmd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_events.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_ext.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_profile.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_register.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_systemd.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_tighten.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_sandbox_violations.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_schema_repair.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_security_containment.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_services_execution.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_services_inspect.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_services_query.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_services_refs.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_source_annotator.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_storage.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_storage_prune.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_strace_parser.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_user_config.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/tests/test_watch.py +0 -0
- {blq_cli-1.2.1 → blq_cli-1.2.2}/uv.lock +0 -0
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v1.2.2
|
|
4
|
+
|
|
5
|
+
### Fixed — Suppress FastMCP banners on stdio transport
|
|
6
|
+
|
|
7
|
+
When starting the MCP server over stdio, FastMCP banner rendering is suppressed
|
|
8
|
+
(`show_banner=False`) so that stdout contains strictly valid JSON-RPC messages
|
|
9
|
+
without terminal box decorations. Also derives `__version__` from installed package
|
|
10
|
+
metadata.
|
|
11
|
+
|
|
3
12
|
## v1.2.1
|
|
4
13
|
|
|
5
14
|
### Fixed — 1.2.0 was broken on Python 3.10 and 3.11
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: blq-cli
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: Build Log Query - capture and query build/test logs with DuckDB
|
|
5
5
|
Project-URL: Homepage, https://blq-cli.readthedocs.io/
|
|
6
6
|
Project-URL: Repository, https://github.com/teaguesterling/blq-cli
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""
|
|
2
|
+
blq - Log Query
|
|
3
|
+
|
|
4
|
+
Capture and query build/test logs with DuckDB.
|
|
5
|
+
|
|
6
|
+
Example usage:
|
|
7
|
+
from blq import LogStore, LogQuery
|
|
8
|
+
|
|
9
|
+
# Query stored events
|
|
10
|
+
store = LogStore.open()
|
|
11
|
+
errors = store.errors().filter(ref_file="%main%").df()
|
|
12
|
+
|
|
13
|
+
# Query a log file directly
|
|
14
|
+
events = LogQuery.from_file("build.log").filter(severity="error").df()
|
|
15
|
+
"""
|
|
16
|
+
|
|
17
|
+
from importlib.metadata import PackageNotFoundError, version as _dist_version
|
|
18
|
+
|
|
19
|
+
# Derived, never written by hand. The literal here read "1.0.1" against a
|
|
20
|
+
# distribution version of 1.2.1 — two releases stale, and immune to
|
|
21
|
+
# --force-reinstall because it was not derived from anything. Nothing consumes
|
|
22
|
+
# it today (the CLI reads importlib.metadata directly), which is exactly why it
|
|
23
|
+
# drifted unnoticed; a version string that lies makes a healthy install look
|
|
24
|
+
# broken, which is the most expensive direction to send a reader.
|
|
25
|
+
try:
|
|
26
|
+
__version__ = _dist_version("blq-cli")
|
|
27
|
+
except PackageNotFoundError: # running from a source tree with no install
|
|
28
|
+
__version__ = "0.0.0.dev0"
|
|
29
|
+
|
|
30
|
+
from blq.query import LogQuery, LogQueryGrouped, LogStore
|
|
31
|
+
|
|
32
|
+
__all__ = ["LogQuery", "LogStore", "LogQueryGrouped", "__version__"]
|
|
@@ -4174,9 +4174,9 @@ def serve(
|
|
|
4174
4174
|
_init_disabled_tools(cli_disabled=disabled_tools, safe_mode=safe_mode)
|
|
4175
4175
|
|
|
4176
4176
|
if transport == "stdio":
|
|
4177
|
-
mcp.run()
|
|
4177
|
+
mcp.run(show_banner=False)
|
|
4178
4178
|
elif transport == "sse":
|
|
4179
|
-
mcp.run(transport="sse", port=port)
|
|
4179
|
+
mcp.run(transport="sse", port=port, show_banner=False)
|
|
4180
4180
|
else:
|
|
4181
4181
|
raise ValueError(f"Unknown transport: {transport}")
|
|
4182
4182
|
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""The exported version must match the installed distribution.
|
|
2
|
+
|
|
3
|
+
`__version__` was a hand-written literal and drifted two releases behind
|
|
4
|
+
pyproject.toml before anyone noticed — nothing consumes it (the CLI reads
|
|
5
|
+
importlib.metadata directly), so nothing failed. The same defect in squackit
|
|
6
|
+
reached four releases of drift.
|
|
7
|
+
|
|
8
|
+
Asserting a hardcoded string here would recreate the problem: the module and
|
|
9
|
+
its test would agree with each other and with nothing else. Assert the
|
|
10
|
+
correspondence instead.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def test_version_matches_the_installed_distribution():
|
|
17
|
+
import blq
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
expected = version("blq-cli")
|
|
21
|
+
except PackageNotFoundError:
|
|
22
|
+
expected = "0.0.0.dev0"
|
|
23
|
+
assert blq.__version__ == expected
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_version_is_not_a_hardcoded_literal():
|
|
27
|
+
"""Guard the mechanism, not just today's value."""
|
|
28
|
+
import pathlib
|
|
29
|
+
|
|
30
|
+
src = pathlib.Path(blq_init()).read_text()
|
|
31
|
+
assert "_dist_version" in src, "version is no longer derived from metadata"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def blq_init():
|
|
35
|
+
import blq
|
|
36
|
+
|
|
37
|
+
return blq.__file__
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
blq - Log Query
|
|
3
|
-
|
|
4
|
-
Capture and query build/test logs with DuckDB.
|
|
5
|
-
|
|
6
|
-
Example usage:
|
|
7
|
-
from blq import LogStore, LogQuery
|
|
8
|
-
|
|
9
|
-
# Query stored events
|
|
10
|
-
store = LogStore.open()
|
|
11
|
-
errors = store.errors().filter(ref_file="%main%").df()
|
|
12
|
-
|
|
13
|
-
# Query a log file directly
|
|
14
|
-
events = LogQuery.from_file("build.log").filter(severity="error").df()
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
__version__ = "1.0.1"
|
|
18
|
-
|
|
19
|
-
from blq.query import LogQuery, LogQueryGrouped, LogStore
|
|
20
|
-
|
|
21
|
-
__all__ = ["LogQuery", "LogStore", "LogQueryGrouped", "__version__"]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/specs/2026-03-22-extension-system-design.md
RENAMED
|
File without changes
|
{blq_cli-1.2.1 → blq_cli-1.2.2}/docs/superpowers/specs/2026-03-29-unified-service-layer-design.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|