celltype-cli 0.1.0__tar.gz → 0.1.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.
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/settings.local.json +2 -1
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/PKG-INFO +1 -1
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/pyproject.toml +1 -1
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/cli.py +26 -31
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/apply.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/archive.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/bulk-archive.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/continue.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/explore.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/ff.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/new.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/onboard.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/sync.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/commands/opsx/verify.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-apply-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-archive-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-bulk-archive-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-continue-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-explore/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-ff-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-new-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-onboard/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-sync-specs/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-verify-change/SKILL.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.dockerignore +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.github/workflows/ci.yml +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/.gitignore +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/CLAUDE.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/Dockerfile +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/Dockerfile.api +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/LICENSE +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/README.md +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/assets/bixbench_benchmark.png +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/assets/ct2.gif +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/docker-compose.yml +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/install.sh +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/openspec/config.yaml +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/scripts/prepare_datasets.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/scripts/prepare_l1000.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/settings.json +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/case_studies.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/config.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/doctor.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/knowledge.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/loop.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/mcp_server.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/orchestrator.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/runner.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/sandbox.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/session.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/system_prompt.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/trace_store.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/trajectory.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/types.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/agent/workflows.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/api/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/api/app.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/api/config.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/api/engine.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/data/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/data/compute_providers.json +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/data/cro_database.json +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/data/downloader.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/data/loaders.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/benchmarks.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/governance.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/ingest.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/reasoning.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/schema_monitor.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/kb/substrate.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/models/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/models/llm.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/_compound_resolver.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/biomarker.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/cellxgene.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/chemistry.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/claude.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/clinical.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/clue.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/code.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/combination.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/compute.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/cro.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/data_api.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/design.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/dna.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/experiment.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/expression.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/files.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/genomics.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/http_client.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/imaging.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/intel.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/literature.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/network.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/notification.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/omics.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/ops.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/parity.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/pk.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/protein.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/regulatory.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/remote_data.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/report.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/repurposing.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/safety.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/shell.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/singlecell.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/statistics.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/structure.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/target.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/translational.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/tools/viability.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/markdown.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/status.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/suggestions.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/terminal.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/src/ct/ui/traces.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/__init__.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/conftest.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/fixtures/plan_snapshot.txt +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/fixtures/trace_snapshot.txt +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_api_smoke.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_cellxgene.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_chemistry_new.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_claude.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_cli.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_clue.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_code.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_compute.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_config.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_cro.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_data_api.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_data_api_service.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_design.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_dna.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_doctor.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_downloader.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_engine.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_experiment.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_files.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_future_backends_todo.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_html_report.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_http_client.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_imaging.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_benchmarks.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_governance.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_ingest.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_reasoning.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_schema_monitor.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_kb_substrate.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_knowledge.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_llm.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_mention_completer.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_network.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_notebook.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_notification.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_omics.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_ops.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_parity_tools.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_parkinsons_toolchain_smoke.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_patent_search.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_plan_display.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_protein.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_registry.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_remote_data.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_repurposing.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_sandbox.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_sdk_streaming.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_session.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_shell.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_singlecell.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_status.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_structure.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_target.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_terminal.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_terminal_integration.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_tools.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_trace_store.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_traces.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_trajectory.py +0 -0
- {celltype_cli-0.1.0 → celltype_cli-0.1.2}/tests/test_workflows.py +0 -0
|
@@ -1110,14 +1110,15 @@ def case_study_run(
|
|
|
1110
1110
|
|
|
1111
1111
|
llm_issue = cfg.llm_preflight_issue()
|
|
1112
1112
|
if llm_issue:
|
|
1113
|
-
console.print(
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1113
|
+
console.print("\n [yellow]First-time setup required.[/yellow]\n")
|
|
1114
|
+
setup_cmd(api_key=None)
|
|
1115
|
+
cfg = Config.load()
|
|
1116
|
+
if model:
|
|
1117
|
+
cfg.set("llm.model", model)
|
|
1118
|
+
llm_issue = cfg.llm_preflight_issue()
|
|
1119
|
+
if llm_issue:
|
|
1120
|
+
console.print(f"\n [red]Setup incomplete:[/red] {llm_issue}")
|
|
1121
|
+
raise typer.Exit(code=2)
|
|
1121
1122
|
|
|
1122
1123
|
session = Session(config=cfg, verbose=verbose)
|
|
1123
1124
|
case = CASE_STUDIES[case_id]
|
|
@@ -1204,17 +1205,15 @@ def run_query(query: str, context: dict, output: Optional[Path],
|
|
|
1204
1205
|
|
|
1205
1206
|
llm_issue = cfg.llm_preflight_issue()
|
|
1206
1207
|
if llm_issue:
|
|
1207
|
-
console.print(
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
)
|
|
1216
|
-
)
|
|
1217
|
-
raise typer.Exit(code=2)
|
|
1208
|
+
console.print("\n [yellow]First-time setup required.[/yellow]\n")
|
|
1209
|
+
setup_cmd(api_key=None)
|
|
1210
|
+
cfg = Config.load()
|
|
1211
|
+
if model:
|
|
1212
|
+
cfg.set("llm.model", model)
|
|
1213
|
+
llm_issue = cfg.llm_preflight_issue()
|
|
1214
|
+
if llm_issue:
|
|
1215
|
+
console.print(f"\n [red]Setup incomplete:[/red] {llm_issue}")
|
|
1216
|
+
raise typer.Exit(code=2)
|
|
1218
1217
|
|
|
1219
1218
|
session = Session(config=cfg, verbose=verbose)
|
|
1220
1219
|
|
|
@@ -1387,18 +1386,14 @@ def run_interactive(context: dict, output: Optional[Path],
|
|
|
1387
1386
|
|
|
1388
1387
|
llm_issue = cfg.llm_preflight_issue()
|
|
1389
1388
|
if llm_issue:
|
|
1390
|
-
console.print(
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
border_style="red",
|
|
1399
|
-
)
|
|
1400
|
-
)
|
|
1401
|
-
return
|
|
1389
|
+
console.print("\n [yellow]First-time setup required.[/yellow]\n")
|
|
1390
|
+
setup_cmd(api_key=None)
|
|
1391
|
+
# Reload config after setup
|
|
1392
|
+
cfg = Config.load()
|
|
1393
|
+
llm_issue = cfg.llm_preflight_issue()
|
|
1394
|
+
if llm_issue:
|
|
1395
|
+
console.print(f"\n [red]Setup incomplete:[/red] {llm_issue}")
|
|
1396
|
+
return
|
|
1402
1397
|
|
|
1403
1398
|
print_banner()
|
|
1404
1399
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{celltype_cli-0.1.0 → celltype_cli-0.1.2}/.claude/skills/openspec-bulk-archive-change/SKILL.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|