attune-ai 2.0.0__py3-none-any.whl
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.
- attune/__init__.py +358 -0
- attune/adaptive/__init__.py +13 -0
- attune/adaptive/task_complexity.py +127 -0
- attune/agent_monitoring.py +414 -0
- attune/cache/__init__.py +117 -0
- attune/cache/base.py +166 -0
- attune/cache/dependency_manager.py +256 -0
- attune/cache/hash_only.py +251 -0
- attune/cache/hybrid.py +457 -0
- attune/cache/storage.py +285 -0
- attune/cache_monitor.py +356 -0
- attune/cache_stats.py +298 -0
- attune/cli/__init__.py +152 -0
- attune/cli/__main__.py +12 -0
- attune/cli/commands/__init__.py +1 -0
- attune/cli/commands/batch.py +264 -0
- attune/cli/commands/cache.py +248 -0
- attune/cli/commands/help.py +331 -0
- attune/cli/commands/info.py +140 -0
- attune/cli/commands/inspect.py +436 -0
- attune/cli/commands/inspection.py +57 -0
- attune/cli/commands/memory.py +48 -0
- attune/cli/commands/metrics.py +92 -0
- attune/cli/commands/orchestrate.py +184 -0
- attune/cli/commands/patterns.py +207 -0
- attune/cli/commands/profiling.py +202 -0
- attune/cli/commands/provider.py +98 -0
- attune/cli/commands/routing.py +285 -0
- attune/cli/commands/setup.py +96 -0
- attune/cli/commands/status.py +235 -0
- attune/cli/commands/sync.py +166 -0
- attune/cli/commands/tier.py +121 -0
- attune/cli/commands/utilities.py +114 -0
- attune/cli/commands/workflow.py +579 -0
- attune/cli/core.py +32 -0
- attune/cli/parsers/__init__.py +68 -0
- attune/cli/parsers/batch.py +118 -0
- attune/cli/parsers/cache.py +65 -0
- attune/cli/parsers/help.py +41 -0
- attune/cli/parsers/info.py +26 -0
- attune/cli/parsers/inspect.py +66 -0
- attune/cli/parsers/metrics.py +42 -0
- attune/cli/parsers/orchestrate.py +61 -0
- attune/cli/parsers/patterns.py +54 -0
- attune/cli/parsers/provider.py +40 -0
- attune/cli/parsers/routing.py +110 -0
- attune/cli/parsers/setup.py +42 -0
- attune/cli/parsers/status.py +47 -0
- attune/cli/parsers/sync.py +31 -0
- attune/cli/parsers/tier.py +33 -0
- attune/cli/parsers/workflow.py +77 -0
- attune/cli/utils/__init__.py +1 -0
- attune/cli/utils/data.py +242 -0
- attune/cli/utils/helpers.py +68 -0
- attune/cli_legacy.py +3957 -0
- attune/cli_minimal.py +1159 -0
- attune/cli_router.py +437 -0
- attune/cli_unified.py +814 -0
- attune/config/__init__.py +66 -0
- attune/config/xml_config.py +286 -0
- attune/config.py +545 -0
- attune/coordination.py +870 -0
- attune/core.py +1511 -0
- attune/core_modules/__init__.py +15 -0
- attune/cost_tracker.py +626 -0
- attune/dashboard/__init__.py +41 -0
- attune/dashboard/app.py +512 -0
- attune/dashboard/simple_server.py +435 -0
- attune/dashboard/standalone_server.py +547 -0
- attune/discovery.py +306 -0
- attune/emergence.py +306 -0
- attune/exceptions.py +123 -0
- attune/feedback_loops.py +373 -0
- attune/hot_reload/README.md +473 -0
- attune/hot_reload/__init__.py +62 -0
- attune/hot_reload/config.py +83 -0
- attune/hot_reload/integration.py +229 -0
- attune/hot_reload/reloader.py +298 -0
- attune/hot_reload/watcher.py +183 -0
- attune/hot_reload/websocket.py +177 -0
- attune/levels.py +577 -0
- attune/leverage_points.py +441 -0
- attune/logging_config.py +261 -0
- attune/mcp/__init__.py +10 -0
- attune/mcp/server.py +506 -0
- attune/memory/__init__.py +237 -0
- attune/memory/claude_memory.py +469 -0
- attune/memory/config.py +224 -0
- attune/memory/control_panel.py +1290 -0
- attune/memory/control_panel_support.py +145 -0
- attune/memory/cross_session.py +845 -0
- attune/memory/edges.py +179 -0
- attune/memory/encryption.py +159 -0
- attune/memory/file_session.py +770 -0
- attune/memory/graph.py +570 -0
- attune/memory/long_term.py +913 -0
- attune/memory/long_term_types.py +99 -0
- attune/memory/mixins/__init__.py +25 -0
- attune/memory/mixins/backend_init_mixin.py +249 -0
- attune/memory/mixins/capabilities_mixin.py +208 -0
- attune/memory/mixins/handoff_mixin.py +208 -0
- attune/memory/mixins/lifecycle_mixin.py +49 -0
- attune/memory/mixins/long_term_mixin.py +352 -0
- attune/memory/mixins/promotion_mixin.py +109 -0
- attune/memory/mixins/short_term_mixin.py +182 -0
- attune/memory/nodes.py +179 -0
- attune/memory/redis_bootstrap.py +540 -0
- attune/memory/security/__init__.py +31 -0
- attune/memory/security/audit_logger.py +932 -0
- attune/memory/security/pii_scrubber.py +640 -0
- attune/memory/security/secrets_detector.py +678 -0
- attune/memory/short_term.py +2192 -0
- attune/memory/simple_storage.py +302 -0
- attune/memory/storage/__init__.py +15 -0
- attune/memory/storage_backend.py +167 -0
- attune/memory/summary_index.py +583 -0
- attune/memory/types.py +446 -0
- attune/memory/unified.py +182 -0
- attune/meta_workflows/__init__.py +74 -0
- attune/meta_workflows/agent_creator.py +248 -0
- attune/meta_workflows/builtin_templates.py +567 -0
- attune/meta_workflows/cli_commands/__init__.py +56 -0
- attune/meta_workflows/cli_commands/agent_commands.py +321 -0
- attune/meta_workflows/cli_commands/analytics_commands.py +442 -0
- attune/meta_workflows/cli_commands/config_commands.py +232 -0
- attune/meta_workflows/cli_commands/memory_commands.py +182 -0
- attune/meta_workflows/cli_commands/template_commands.py +354 -0
- attune/meta_workflows/cli_commands/workflow_commands.py +382 -0
- attune/meta_workflows/cli_meta_workflows.py +59 -0
- attune/meta_workflows/form_engine.py +292 -0
- attune/meta_workflows/intent_detector.py +409 -0
- attune/meta_workflows/models.py +569 -0
- attune/meta_workflows/pattern_learner.py +738 -0
- attune/meta_workflows/plan_generator.py +384 -0
- attune/meta_workflows/session_context.py +397 -0
- attune/meta_workflows/template_registry.py +229 -0
- attune/meta_workflows/workflow.py +984 -0
- attune/metrics/__init__.py +12 -0
- attune/metrics/collector.py +31 -0
- attune/metrics/prompt_metrics.py +194 -0
- attune/models/__init__.py +172 -0
- attune/models/__main__.py +13 -0
- attune/models/adaptive_routing.py +437 -0
- attune/models/auth_cli.py +444 -0
- attune/models/auth_strategy.py +450 -0
- attune/models/cli.py +655 -0
- attune/models/empathy_executor.py +354 -0
- attune/models/executor.py +257 -0
- attune/models/fallback.py +762 -0
- attune/models/provider_config.py +282 -0
- attune/models/registry.py +472 -0
- attune/models/tasks.py +359 -0
- attune/models/telemetry/__init__.py +71 -0
- attune/models/telemetry/analytics.py +594 -0
- attune/models/telemetry/backend.py +196 -0
- attune/models/telemetry/data_models.py +431 -0
- attune/models/telemetry/storage.py +489 -0
- attune/models/token_estimator.py +420 -0
- attune/models/validation.py +280 -0
- attune/monitoring/__init__.py +52 -0
- attune/monitoring/alerts.py +946 -0
- attune/monitoring/alerts_cli.py +448 -0
- attune/monitoring/multi_backend.py +271 -0
- attune/monitoring/otel_backend.py +362 -0
- attune/optimization/__init__.py +19 -0
- attune/optimization/context_optimizer.py +272 -0
- attune/orchestration/__init__.py +67 -0
- attune/orchestration/agent_templates.py +707 -0
- attune/orchestration/config_store.py +499 -0
- attune/orchestration/execution_strategies.py +2111 -0
- attune/orchestration/meta_orchestrator.py +1168 -0
- attune/orchestration/pattern_learner.py +696 -0
- attune/orchestration/real_tools.py +931 -0
- attune/pattern_cache.py +187 -0
- attune/pattern_library.py +542 -0
- attune/patterns/debugging/all_patterns.json +81 -0
- attune/patterns/debugging/workflow_20260107_1770825e.json +77 -0
- attune/patterns/refactoring_memory.json +89 -0
- attune/persistence.py +564 -0
- attune/platform_utils.py +265 -0
- attune/plugins/__init__.py +28 -0
- attune/plugins/base.py +361 -0
- attune/plugins/registry.py +268 -0
- attune/project_index/__init__.py +32 -0
- attune/project_index/cli.py +335 -0
- attune/project_index/index.py +667 -0
- attune/project_index/models.py +504 -0
- attune/project_index/reports.py +474 -0
- attune/project_index/scanner.py +777 -0
- attune/project_index/scanner_parallel.py +291 -0
- attune/prompts/__init__.py +61 -0
- attune/prompts/config.py +77 -0
- attune/prompts/context.py +177 -0
- attune/prompts/parser.py +285 -0
- attune/prompts/registry.py +313 -0
- attune/prompts/templates.py +208 -0
- attune/redis_config.py +302 -0
- attune/redis_memory.py +799 -0
- attune/resilience/__init__.py +56 -0
- attune/resilience/circuit_breaker.py +256 -0
- attune/resilience/fallback.py +179 -0
- attune/resilience/health.py +300 -0
- attune/resilience/retry.py +209 -0
- attune/resilience/timeout.py +135 -0
- attune/routing/__init__.py +43 -0
- attune/routing/chain_executor.py +433 -0
- attune/routing/classifier.py +217 -0
- attune/routing/smart_router.py +234 -0
- attune/routing/workflow_registry.py +343 -0
- attune/scaffolding/README.md +589 -0
- attune/scaffolding/__init__.py +35 -0
- attune/scaffolding/__main__.py +14 -0
- attune/scaffolding/cli.py +240 -0
- attune/scaffolding/templates/base_wizard.py.jinja2 +121 -0
- attune/scaffolding/templates/coach_wizard.py.jinja2 +321 -0
- attune/scaffolding/templates/domain_wizard.py.jinja2 +408 -0
- attune/scaffolding/templates/linear_flow_wizard.py.jinja2 +203 -0
- attune/socratic/__init__.py +256 -0
- attune/socratic/ab_testing.py +958 -0
- attune/socratic/blueprint.py +533 -0
- attune/socratic/cli.py +703 -0
- attune/socratic/collaboration.py +1114 -0
- attune/socratic/domain_templates.py +924 -0
- attune/socratic/embeddings.py +738 -0
- attune/socratic/engine.py +794 -0
- attune/socratic/explainer.py +682 -0
- attune/socratic/feedback.py +772 -0
- attune/socratic/forms.py +629 -0
- attune/socratic/generator.py +732 -0
- attune/socratic/llm_analyzer.py +637 -0
- attune/socratic/mcp_server.py +702 -0
- attune/socratic/session.py +312 -0
- attune/socratic/storage.py +667 -0
- attune/socratic/success.py +730 -0
- attune/socratic/visual_editor.py +860 -0
- attune/socratic/web_ui.py +958 -0
- attune/telemetry/__init__.py +39 -0
- attune/telemetry/agent_coordination.py +475 -0
- attune/telemetry/agent_tracking.py +367 -0
- attune/telemetry/approval_gates.py +545 -0
- attune/telemetry/cli.py +1231 -0
- attune/telemetry/commands/__init__.py +14 -0
- attune/telemetry/commands/dashboard_commands.py +696 -0
- attune/telemetry/event_streaming.py +409 -0
- attune/telemetry/feedback_loop.py +567 -0
- attune/telemetry/usage_tracker.py +591 -0
- attune/templates.py +754 -0
- attune/test_generator/__init__.py +38 -0
- attune/test_generator/__main__.py +14 -0
- attune/test_generator/cli.py +234 -0
- attune/test_generator/generator.py +355 -0
- attune/test_generator/risk_analyzer.py +216 -0
- attune/test_generator/templates/unit_test.py.jinja2 +272 -0
- attune/tier_recommender.py +384 -0
- attune/tools.py +183 -0
- attune/trust/__init__.py +28 -0
- attune/trust/circuit_breaker.py +579 -0
- attune/trust_building.py +527 -0
- attune/validation/__init__.py +19 -0
- attune/validation/xml_validator.py +281 -0
- attune/vscode_bridge.py +173 -0
- attune/workflow_commands.py +780 -0
- attune/workflow_patterns/__init__.py +33 -0
- attune/workflow_patterns/behavior.py +249 -0
- attune/workflow_patterns/core.py +76 -0
- attune/workflow_patterns/output.py +99 -0
- attune/workflow_patterns/registry.py +255 -0
- attune/workflow_patterns/structural.py +288 -0
- attune/workflows/__init__.py +539 -0
- attune/workflows/autonomous_test_gen.py +1268 -0
- attune/workflows/base.py +2667 -0
- attune/workflows/batch_processing.py +342 -0
- attune/workflows/bug_predict.py +1084 -0
- attune/workflows/builder.py +273 -0
- attune/workflows/caching.py +253 -0
- attune/workflows/code_review.py +1048 -0
- attune/workflows/code_review_adapters.py +312 -0
- attune/workflows/code_review_pipeline.py +722 -0
- attune/workflows/config.py +645 -0
- attune/workflows/dependency_check.py +644 -0
- attune/workflows/document_gen/__init__.py +25 -0
- attune/workflows/document_gen/config.py +30 -0
- attune/workflows/document_gen/report_formatter.py +162 -0
- attune/workflows/document_gen/workflow.py +1426 -0
- attune/workflows/document_manager.py +216 -0
- attune/workflows/document_manager_README.md +134 -0
- attune/workflows/documentation_orchestrator.py +1205 -0
- attune/workflows/history.py +510 -0
- attune/workflows/keyboard_shortcuts/__init__.py +39 -0
- attune/workflows/keyboard_shortcuts/generators.py +391 -0
- attune/workflows/keyboard_shortcuts/parsers.py +416 -0
- attune/workflows/keyboard_shortcuts/prompts.py +295 -0
- attune/workflows/keyboard_shortcuts/schema.py +193 -0
- attune/workflows/keyboard_shortcuts/workflow.py +509 -0
- attune/workflows/llm_base.py +363 -0
- attune/workflows/manage_docs.py +87 -0
- attune/workflows/manage_docs_README.md +134 -0
- attune/workflows/manage_documentation.py +821 -0
- attune/workflows/new_sample_workflow1.py +149 -0
- attune/workflows/new_sample_workflow1_README.md +150 -0
- attune/workflows/orchestrated_health_check.py +849 -0
- attune/workflows/orchestrated_release_prep.py +600 -0
- attune/workflows/output.py +413 -0
- attune/workflows/perf_audit.py +863 -0
- attune/workflows/pr_review.py +762 -0
- attune/workflows/progress.py +785 -0
- attune/workflows/progress_server.py +322 -0
- attune/workflows/progressive/README 2.md +454 -0
- attune/workflows/progressive/README.md +454 -0
- attune/workflows/progressive/__init__.py +82 -0
- attune/workflows/progressive/cli.py +219 -0
- attune/workflows/progressive/core.py +488 -0
- attune/workflows/progressive/orchestrator.py +723 -0
- attune/workflows/progressive/reports.py +520 -0
- attune/workflows/progressive/telemetry.py +274 -0
- attune/workflows/progressive/test_gen.py +495 -0
- attune/workflows/progressive/workflow.py +589 -0
- attune/workflows/refactor_plan.py +694 -0
- attune/workflows/release_prep.py +895 -0
- attune/workflows/release_prep_crew.py +969 -0
- attune/workflows/research_synthesis.py +404 -0
- attune/workflows/routing.py +168 -0
- attune/workflows/secure_release.py +593 -0
- attune/workflows/security_adapters.py +297 -0
- attune/workflows/security_audit.py +1329 -0
- attune/workflows/security_audit_phase3.py +355 -0
- attune/workflows/seo_optimization.py +633 -0
- attune/workflows/step_config.py +234 -0
- attune/workflows/telemetry_mixin.py +269 -0
- attune/workflows/test5.py +125 -0
- attune/workflows/test5_README.md +158 -0
- attune/workflows/test_coverage_boost_crew.py +849 -0
- attune/workflows/test_gen/__init__.py +52 -0
- attune/workflows/test_gen/ast_analyzer.py +249 -0
- attune/workflows/test_gen/config.py +88 -0
- attune/workflows/test_gen/data_models.py +38 -0
- attune/workflows/test_gen/report_formatter.py +289 -0
- attune/workflows/test_gen/test_templates.py +381 -0
- attune/workflows/test_gen/workflow.py +655 -0
- attune/workflows/test_gen.py +54 -0
- attune/workflows/test_gen_behavioral.py +477 -0
- attune/workflows/test_gen_parallel.py +341 -0
- attune/workflows/test_lifecycle.py +526 -0
- attune/workflows/test_maintenance.py +627 -0
- attune/workflows/test_maintenance_cli.py +590 -0
- attune/workflows/test_maintenance_crew.py +840 -0
- attune/workflows/test_runner.py +622 -0
- attune/workflows/tier_tracking.py +531 -0
- attune/workflows/xml_enhanced_crew.py +285 -0
- attune_ai-2.0.0.dist-info/METADATA +1026 -0
- attune_ai-2.0.0.dist-info/RECORD +457 -0
- attune_ai-2.0.0.dist-info/WHEEL +5 -0
- attune_ai-2.0.0.dist-info/entry_points.txt +26 -0
- attune_ai-2.0.0.dist-info/licenses/LICENSE +201 -0
- attune_ai-2.0.0.dist-info/licenses/LICENSE_CHANGE_ANNOUNCEMENT.md +101 -0
- attune_ai-2.0.0.dist-info/top_level.txt +5 -0
- attune_healthcare/__init__.py +13 -0
- attune_healthcare/monitors/__init__.py +9 -0
- attune_healthcare/monitors/clinical_protocol_monitor.py +315 -0
- attune_healthcare/monitors/monitoring/__init__.py +44 -0
- attune_healthcare/monitors/monitoring/protocol_checker.py +300 -0
- attune_healthcare/monitors/monitoring/protocol_loader.py +214 -0
- attune_healthcare/monitors/monitoring/sensor_parsers.py +306 -0
- attune_healthcare/monitors/monitoring/trajectory_analyzer.py +389 -0
- attune_llm/README.md +553 -0
- attune_llm/__init__.py +28 -0
- attune_llm/agent_factory/__init__.py +53 -0
- attune_llm/agent_factory/adapters/__init__.py +85 -0
- attune_llm/agent_factory/adapters/autogen_adapter.py +312 -0
- attune_llm/agent_factory/adapters/crewai_adapter.py +483 -0
- attune_llm/agent_factory/adapters/haystack_adapter.py +298 -0
- attune_llm/agent_factory/adapters/langchain_adapter.py +362 -0
- attune_llm/agent_factory/adapters/langgraph_adapter.py +333 -0
- attune_llm/agent_factory/adapters/native.py +228 -0
- attune_llm/agent_factory/adapters/wizard_adapter.py +423 -0
- attune_llm/agent_factory/base.py +305 -0
- attune_llm/agent_factory/crews/__init__.py +67 -0
- attune_llm/agent_factory/crews/code_review.py +1113 -0
- attune_llm/agent_factory/crews/health_check.py +1262 -0
- attune_llm/agent_factory/crews/refactoring.py +1128 -0
- attune_llm/agent_factory/crews/security_audit.py +1018 -0
- attune_llm/agent_factory/decorators.py +287 -0
- attune_llm/agent_factory/factory.py +558 -0
- attune_llm/agent_factory/framework.py +193 -0
- attune_llm/agent_factory/memory_integration.py +328 -0
- attune_llm/agent_factory/resilient.py +320 -0
- attune_llm/agents_md/__init__.py +22 -0
- attune_llm/agents_md/loader.py +218 -0
- attune_llm/agents_md/parser.py +271 -0
- attune_llm/agents_md/registry.py +307 -0
- attune_llm/claude_memory.py +466 -0
- attune_llm/cli/__init__.py +8 -0
- attune_llm/cli/sync_claude.py +487 -0
- attune_llm/code_health.py +1313 -0
- attune_llm/commands/__init__.py +51 -0
- attune_llm/commands/context.py +375 -0
- attune_llm/commands/loader.py +301 -0
- attune_llm/commands/models.py +231 -0
- attune_llm/commands/parser.py +371 -0
- attune_llm/commands/registry.py +429 -0
- attune_llm/config/__init__.py +29 -0
- attune_llm/config/unified.py +291 -0
- attune_llm/context/__init__.py +22 -0
- attune_llm/context/compaction.py +455 -0
- attune_llm/context/manager.py +434 -0
- attune_llm/contextual_patterns.py +361 -0
- attune_llm/core.py +907 -0
- attune_llm/git_pattern_extractor.py +435 -0
- attune_llm/hooks/__init__.py +24 -0
- attune_llm/hooks/config.py +306 -0
- attune_llm/hooks/executor.py +289 -0
- attune_llm/hooks/registry.py +302 -0
- attune_llm/hooks/scripts/__init__.py +39 -0
- attune_llm/hooks/scripts/evaluate_session.py +201 -0
- attune_llm/hooks/scripts/first_time_init.py +285 -0
- attune_llm/hooks/scripts/pre_compact.py +207 -0
- attune_llm/hooks/scripts/session_end.py +183 -0
- attune_llm/hooks/scripts/session_start.py +163 -0
- attune_llm/hooks/scripts/suggest_compact.py +225 -0
- attune_llm/learning/__init__.py +30 -0
- attune_llm/learning/evaluator.py +438 -0
- attune_llm/learning/extractor.py +514 -0
- attune_llm/learning/storage.py +560 -0
- attune_llm/levels.py +227 -0
- attune_llm/pattern_confidence.py +414 -0
- attune_llm/pattern_resolver.py +272 -0
- attune_llm/pattern_summary.py +350 -0
- attune_llm/providers.py +967 -0
- attune_llm/routing/__init__.py +32 -0
- attune_llm/routing/model_router.py +362 -0
- attune_llm/security/IMPLEMENTATION_SUMMARY.md +413 -0
- attune_llm/security/PHASE2_COMPLETE.md +384 -0
- attune_llm/security/PHASE2_SECRETS_DETECTOR_COMPLETE.md +271 -0
- attune_llm/security/QUICK_REFERENCE.md +316 -0
- attune_llm/security/README.md +262 -0
- attune_llm/security/__init__.py +62 -0
- attune_llm/security/audit_logger.py +929 -0
- attune_llm/security/audit_logger_example.py +152 -0
- attune_llm/security/pii_scrubber.py +640 -0
- attune_llm/security/secrets_detector.py +678 -0
- attune_llm/security/secrets_detector_example.py +304 -0
- attune_llm/security/secure_memdocs.py +1192 -0
- attune_llm/security/secure_memdocs_example.py +278 -0
- attune_llm/session_status.py +745 -0
- attune_llm/state.py +246 -0
- attune_llm/utils/__init__.py +5 -0
- attune_llm/utils/tokens.py +349 -0
- attune_software/SOFTWARE_PLUGIN_README.md +57 -0
- attune_software/__init__.py +13 -0
- attune_software/cli/__init__.py +120 -0
- attune_software/cli/inspect.py +362 -0
- attune_software/cli.py +574 -0
- attune_software/plugin.py +188 -0
- workflow_scaffolding/__init__.py +11 -0
- workflow_scaffolding/__main__.py +12 -0
- workflow_scaffolding/cli.py +206 -0
- workflow_scaffolding/generator.py +265 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"""Argument parser for batch processing commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def register_parsers(subparsers):
|
|
9
|
+
"""Register batch command parsers.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
subparsers: Subparser object from main argument parser
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
None: Adds batch subparser with submit, status, results, wait subcommands
|
|
16
|
+
"""
|
|
17
|
+
from ..commands.batch import (
|
|
18
|
+
cmd_batch_results,
|
|
19
|
+
cmd_batch_status,
|
|
20
|
+
cmd_batch_submit,
|
|
21
|
+
cmd_batch_wait,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
# Main batch command
|
|
25
|
+
batch_parser = subparsers.add_parser(
|
|
26
|
+
"batch",
|
|
27
|
+
help="Batch processing via Anthropic Batch API (50% cost savings)",
|
|
28
|
+
description="Submit and manage batch processing jobs for non-urgent tasks",
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
# Batch subcommands
|
|
32
|
+
batch_subparsers = batch_parser.add_subparsers(dest="batch_command", required=True)
|
|
33
|
+
|
|
34
|
+
# batch submit command
|
|
35
|
+
submit_parser = batch_subparsers.add_parser(
|
|
36
|
+
"submit",
|
|
37
|
+
help="Submit a batch processing job from JSON file",
|
|
38
|
+
description="Submit batch requests for asynchronous processing (50% cost savings)",
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
submit_parser.add_argument(
|
|
42
|
+
"input_file",
|
|
43
|
+
help='JSON file with batch requests. Format: [{"task_id": "...", "task_type": "...", "input_data": {...}}]',
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
submit_parser.set_defaults(func=cmd_batch_submit)
|
|
47
|
+
|
|
48
|
+
# batch status command
|
|
49
|
+
status_parser = batch_subparsers.add_parser(
|
|
50
|
+
"status",
|
|
51
|
+
help="Check status of a batch processing job",
|
|
52
|
+
description="Display current status and request counts for a batch",
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
status_parser.add_argument(
|
|
56
|
+
"batch_id",
|
|
57
|
+
help="Batch ID (e.g., msgbatch_abc123)",
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
status_parser.add_argument(
|
|
61
|
+
"--json",
|
|
62
|
+
action="store_true",
|
|
63
|
+
help="Output raw JSON status",
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
status_parser.set_defaults(func=cmd_batch_status)
|
|
67
|
+
|
|
68
|
+
# batch results command
|
|
69
|
+
results_parser = batch_subparsers.add_parser(
|
|
70
|
+
"results",
|
|
71
|
+
help="Retrieve results from completed batch",
|
|
72
|
+
description="Download and save batch results to JSON file",
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
results_parser.add_argument(
|
|
76
|
+
"batch_id",
|
|
77
|
+
help="Batch ID (e.g., msgbatch_abc123)",
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
results_parser.add_argument(
|
|
81
|
+
"output_file",
|
|
82
|
+
help="Path to output JSON file",
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
results_parser.set_defaults(func=cmd_batch_results)
|
|
86
|
+
|
|
87
|
+
# batch wait command
|
|
88
|
+
wait_parser = batch_subparsers.add_parser(
|
|
89
|
+
"wait",
|
|
90
|
+
help="Wait for batch to complete and retrieve results",
|
|
91
|
+
description="Poll batch status until completion, then download results",
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
wait_parser.add_argument(
|
|
95
|
+
"batch_id",
|
|
96
|
+
help="Batch ID (e.g., msgbatch_abc123)",
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
wait_parser.add_argument(
|
|
100
|
+
"output_file",
|
|
101
|
+
help="Path to output JSON file",
|
|
102
|
+
)
|
|
103
|
+
|
|
104
|
+
wait_parser.add_argument(
|
|
105
|
+
"--poll-interval",
|
|
106
|
+
type=int,
|
|
107
|
+
default=300,
|
|
108
|
+
help="Seconds between status checks (default: 300 = 5 minutes)",
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
wait_parser.add_argument(
|
|
112
|
+
"--timeout",
|
|
113
|
+
type=int,
|
|
114
|
+
default=86400,
|
|
115
|
+
help="Maximum wait time in seconds (default: 86400 = 24 hours)",
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
wait_parser.set_defaults(func=cmd_batch_wait)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""Argument parser for cache commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def register_parsers(subparsers):
|
|
9
|
+
"""Register cache command parsers.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
subparsers: Subparser object from main argument parser
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
None: Adds cache subparser with stats and clear subcommands
|
|
16
|
+
"""
|
|
17
|
+
from ..commands.cache import cmd_cache_clear, cmd_cache_stats
|
|
18
|
+
# Main cache command
|
|
19
|
+
cache_parser = subparsers.add_parser(
|
|
20
|
+
"cache",
|
|
21
|
+
help="Cache monitoring and management",
|
|
22
|
+
description="Monitor prompt caching performance and cost savings",
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
# Cache subcommands
|
|
26
|
+
cache_subparsers = cache_parser.add_subparsers(dest="cache_command", required=True)
|
|
27
|
+
|
|
28
|
+
# cache stats command
|
|
29
|
+
stats_parser = cache_subparsers.add_parser(
|
|
30
|
+
"stats",
|
|
31
|
+
help="Show cache performance statistics",
|
|
32
|
+
description="Display prompt caching metrics including hit rate and cost savings",
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
stats_parser.add_argument(
|
|
36
|
+
"--days",
|
|
37
|
+
type=int,
|
|
38
|
+
default=7,
|
|
39
|
+
help="Number of days to analyze (default: 7)",
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
stats_parser.add_argument(
|
|
43
|
+
"--format",
|
|
44
|
+
choices=["table", "json"],
|
|
45
|
+
default="table",
|
|
46
|
+
help="Output format (default: table)",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
stats_parser.add_argument(
|
|
50
|
+
"--verbose",
|
|
51
|
+
"-v",
|
|
52
|
+
action="store_true",
|
|
53
|
+
help="Show detailed token metrics",
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
stats_parser.set_defaults(func=cmd_cache_stats)
|
|
57
|
+
|
|
58
|
+
# cache clear command (placeholder)
|
|
59
|
+
clear_parser = cache_subparsers.add_parser(
|
|
60
|
+
"clear",
|
|
61
|
+
help="Clear cache (note: Anthropic cache is server-side with 5min TTL)",
|
|
62
|
+
description="Information about cache clearing",
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
clear_parser.set_defaults(func=cmd_cache_clear)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"""Parser definitions for help commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import help as help_commands
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register help command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object
|
|
15
|
+
"""
|
|
16
|
+
# version command
|
|
17
|
+
parser_version = subparsers.add_parser("version", help="Display version information")
|
|
18
|
+
parser_version.set_defaults(func=help_commands.cmd_version)
|
|
19
|
+
|
|
20
|
+
# cheatsheet command
|
|
21
|
+
parser_cheatsheet = subparsers.add_parser("cheatsheet", help="Quick reference guide")
|
|
22
|
+
parser_cheatsheet.add_argument("--category", help="Specific category to show")
|
|
23
|
+
parser_cheatsheet.add_argument(
|
|
24
|
+
"--compact", action="store_true", help="Show commands only"
|
|
25
|
+
)
|
|
26
|
+
parser_cheatsheet.set_defaults(func=help_commands.cmd_cheatsheet)
|
|
27
|
+
|
|
28
|
+
# onboard command
|
|
29
|
+
parser_onboard = subparsers.add_parser("onboard", help="Interactive tutorial")
|
|
30
|
+
parser_onboard.add_argument("--step", type=int, help="Jump to specific step")
|
|
31
|
+
parser_onboard.add_argument("--reset", action="store_true", help="Reset progress")
|
|
32
|
+
parser_onboard.set_defaults(func=help_commands.cmd_onboard)
|
|
33
|
+
|
|
34
|
+
# explain command
|
|
35
|
+
parser_explain = subparsers.add_parser("explain", help="Explain a command in detail")
|
|
36
|
+
parser_explain.add_argument("command", help="Command to explain")
|
|
37
|
+
parser_explain.set_defaults(func=help_commands.cmd_explain)
|
|
38
|
+
|
|
39
|
+
# achievements command
|
|
40
|
+
parser_achievements = subparsers.add_parser("achievements", help="Show user progress")
|
|
41
|
+
parser_achievements.set_defaults(func=help_commands.cmd_achievements)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""Parser definitions for info commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import info as info_commands
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register info command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object
|
|
15
|
+
"""
|
|
16
|
+
# info command
|
|
17
|
+
parser_info = subparsers.add_parser("info", help="Display framework information")
|
|
18
|
+
parser_info.add_argument("--config", help="Path to config file")
|
|
19
|
+
parser_info.set_defaults(func=info_commands.cmd_info)
|
|
20
|
+
|
|
21
|
+
# frameworks command
|
|
22
|
+
parser_frameworks = subparsers.add_parser("frameworks", help="List agent frameworks")
|
|
23
|
+
parser_frameworks.add_argument("--all", action="store_true", help="Show all frameworks")
|
|
24
|
+
parser_frameworks.add_argument("--recommend", help="Recommend for use case")
|
|
25
|
+
parser_frameworks.add_argument("--json", action="store_true", help="Output as JSON")
|
|
26
|
+
parser_frameworks.set_defaults(func=info_commands.cmd_frameworks)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Parser definitions for inspect commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import inspect
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register inspect command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object from main parser
|
|
15
|
+
"""
|
|
16
|
+
# Run command - Interactive REPL
|
|
17
|
+
parser_run = subparsers.add_parser("run", help="Interactive REPL mode")
|
|
18
|
+
parser_run.add_argument("--config", "-c", help="Configuration file path")
|
|
19
|
+
parser_run.add_argument("--user-id", help="User ID (default: cli_user)")
|
|
20
|
+
parser_run.add_argument(
|
|
21
|
+
"--level",
|
|
22
|
+
type=int,
|
|
23
|
+
default=4,
|
|
24
|
+
help="Target empathy level (1-5, default: 4)",
|
|
25
|
+
)
|
|
26
|
+
parser_run.set_defaults(func=inspect.cmd_run)
|
|
27
|
+
|
|
28
|
+
# Inspect command - Unified inspection
|
|
29
|
+
parser_inspect = subparsers.add_parser("inspect", help="Inspect patterns, metrics, or state")
|
|
30
|
+
parser_inspect.add_argument(
|
|
31
|
+
"type",
|
|
32
|
+
choices=["patterns", "metrics", "state"],
|
|
33
|
+
help="Type of inspection (patterns, metrics, or state)",
|
|
34
|
+
)
|
|
35
|
+
parser_inspect.add_argument("--user-id", help="User ID to filter by (optional)")
|
|
36
|
+
parser_inspect.add_argument("--db", help="Database path (default: .attune/patterns.db)")
|
|
37
|
+
parser_inspect.add_argument(
|
|
38
|
+
"--state-dir",
|
|
39
|
+
help="State directory path (default: .attune/state)",
|
|
40
|
+
)
|
|
41
|
+
parser_inspect.set_defaults(func=inspect.cmd_inspect)
|
|
42
|
+
|
|
43
|
+
# Export command
|
|
44
|
+
parser_export = subparsers.add_parser(
|
|
45
|
+
"export",
|
|
46
|
+
help="Export patterns to file for sharing/backup",
|
|
47
|
+
)
|
|
48
|
+
parser_export.add_argument("output", help="Output file path")
|
|
49
|
+
parser_export.add_argument(
|
|
50
|
+
"--user-id",
|
|
51
|
+
help="User ID to export (optional, exports all if not specified)",
|
|
52
|
+
)
|
|
53
|
+
parser_export.add_argument("--db", help="Database path (default: .attune/patterns.db)")
|
|
54
|
+
parser_export.add_argument(
|
|
55
|
+
"--format",
|
|
56
|
+
default="json",
|
|
57
|
+
choices=["json"],
|
|
58
|
+
help="Export format (default: json)",
|
|
59
|
+
)
|
|
60
|
+
parser_export.set_defaults(func=inspect.cmd_export)
|
|
61
|
+
|
|
62
|
+
# Import command
|
|
63
|
+
parser_import = subparsers.add_parser("import", help="Import patterns from file")
|
|
64
|
+
parser_import.add_argument("input", help="Input file path")
|
|
65
|
+
parser_import.add_argument("--db", help="Database path (default: .attune/patterns.db)")
|
|
66
|
+
parser_import.set_defaults(func=inspect.cmd_import)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""Parser definitions for metrics commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import metrics
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register metrics command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object from main parser
|
|
15
|
+
"""
|
|
16
|
+
# Metrics command
|
|
17
|
+
parser_metrics = subparsers.add_parser(
|
|
18
|
+
"metrics",
|
|
19
|
+
help="Display user metrics",
|
|
20
|
+
)
|
|
21
|
+
parser_metrics.add_argument(
|
|
22
|
+
"user",
|
|
23
|
+
help="User ID to retrieve metrics for",
|
|
24
|
+
)
|
|
25
|
+
parser_metrics.add_argument(
|
|
26
|
+
"--db",
|
|
27
|
+
default="./metrics.db",
|
|
28
|
+
help="Path to metrics database (default: ./metrics.db)",
|
|
29
|
+
)
|
|
30
|
+
parser_metrics.set_defaults(func=metrics.cmd_metrics_show)
|
|
31
|
+
|
|
32
|
+
# State command
|
|
33
|
+
parser_state = subparsers.add_parser(
|
|
34
|
+
"state",
|
|
35
|
+
help="List saved user states",
|
|
36
|
+
)
|
|
37
|
+
parser_state.add_argument(
|
|
38
|
+
"--state-dir",
|
|
39
|
+
default=".attune/state",
|
|
40
|
+
help="State directory path (default: .attune/state)",
|
|
41
|
+
)
|
|
42
|
+
parser_state.set_defaults(func=metrics.cmd_state_list)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"""Parser definitions for orchestrate commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import orchestrate
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register orchestrate command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object from main parser
|
|
15
|
+
"""
|
|
16
|
+
# Orchestrate command
|
|
17
|
+
parser_orchestrate = subparsers.add_parser(
|
|
18
|
+
"orchestrate",
|
|
19
|
+
help="Run meta-orchestration workflows (release-prep, health-check)",
|
|
20
|
+
)
|
|
21
|
+
parser_orchestrate.add_argument(
|
|
22
|
+
"workflow",
|
|
23
|
+
choices=["release-prep", "health-check", "test-coverage"],
|
|
24
|
+
help="Orchestration workflow to run",
|
|
25
|
+
)
|
|
26
|
+
parser_orchestrate.add_argument(
|
|
27
|
+
"--path",
|
|
28
|
+
default=".",
|
|
29
|
+
help="Project path (for release-prep)",
|
|
30
|
+
)
|
|
31
|
+
parser_orchestrate.add_argument(
|
|
32
|
+
"--mode",
|
|
33
|
+
choices=["daily", "weekly", "release"],
|
|
34
|
+
help="Health check mode (for health-check)",
|
|
35
|
+
)
|
|
36
|
+
parser_orchestrate.add_argument(
|
|
37
|
+
"--project-root",
|
|
38
|
+
default=".",
|
|
39
|
+
help="Project root directory (for health-check)",
|
|
40
|
+
)
|
|
41
|
+
parser_orchestrate.add_argument(
|
|
42
|
+
"--json",
|
|
43
|
+
action="store_true",
|
|
44
|
+
help="Output as JSON",
|
|
45
|
+
)
|
|
46
|
+
parser_orchestrate.add_argument(
|
|
47
|
+
"--min-coverage",
|
|
48
|
+
type=int,
|
|
49
|
+
help="Minimum test coverage percentage (for release-prep)",
|
|
50
|
+
)
|
|
51
|
+
parser_orchestrate.add_argument(
|
|
52
|
+
"--min-quality",
|
|
53
|
+
type=int,
|
|
54
|
+
help="Minimum quality score (for release-prep)",
|
|
55
|
+
)
|
|
56
|
+
parser_orchestrate.add_argument(
|
|
57
|
+
"--max-critical",
|
|
58
|
+
type=int,
|
|
59
|
+
help="Maximum critical issues allowed (for release-prep)",
|
|
60
|
+
)
|
|
61
|
+
parser_orchestrate.set_defaults(func=orchestrate.cmd_orchestrate)
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"""Parser definitions for pattern commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import patterns as patterns_commands
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register pattern command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object
|
|
15
|
+
"""
|
|
16
|
+
# Create patterns subcommand group
|
|
17
|
+
patterns_parser = subparsers.add_parser("patterns", help="Pattern management commands")
|
|
18
|
+
patterns_subparsers = patterns_parser.add_subparsers(dest="patterns_command")
|
|
19
|
+
|
|
20
|
+
# patterns list
|
|
21
|
+
parser_list = patterns_subparsers.add_parser("list", help="List patterns in library")
|
|
22
|
+
parser_list.add_argument("library", help="Path to pattern library")
|
|
23
|
+
parser_list.add_argument(
|
|
24
|
+
"--format", choices=["json", "sqlite"], default="json", help="Library format"
|
|
25
|
+
)
|
|
26
|
+
parser_list.set_defaults(func=patterns_commands.cmd_patterns_list)
|
|
27
|
+
|
|
28
|
+
# patterns export
|
|
29
|
+
parser_export = patterns_subparsers.add_parser("export", help="Export patterns")
|
|
30
|
+
parser_export.add_argument("input", help="Input file path")
|
|
31
|
+
parser_export.add_argument("output", help="Output file path")
|
|
32
|
+
parser_export.add_argument(
|
|
33
|
+
"--input-format", choices=["json", "sqlite"], default="json", help="Input format"
|
|
34
|
+
)
|
|
35
|
+
parser_export.add_argument(
|
|
36
|
+
"--output-format", choices=["json", "sqlite"], default="json", help="Output format"
|
|
37
|
+
)
|
|
38
|
+
parser_export.set_defaults(func=patterns_commands.cmd_patterns_export)
|
|
39
|
+
|
|
40
|
+
# patterns resolve
|
|
41
|
+
parser_resolve = patterns_subparsers.add_parser("resolve", help="Resolve a bug pattern")
|
|
42
|
+
parser_resolve.add_argument("bug_id", nargs="?", help="Bug ID to resolve")
|
|
43
|
+
parser_resolve.add_argument("--root-cause", help="Root cause description")
|
|
44
|
+
parser_resolve.add_argument("--fix", help="Fix description")
|
|
45
|
+
parser_resolve.add_argument("--fix-code", help="Code snippet of the fix")
|
|
46
|
+
parser_resolve.add_argument("--time", type=int, help="Resolution time in minutes")
|
|
47
|
+
parser_resolve.add_argument(
|
|
48
|
+
"--patterns-dir", default="./patterns", help="Patterns directory path"
|
|
49
|
+
)
|
|
50
|
+
parser_resolve.add_argument("--resolved-by", help="Who resolved it")
|
|
51
|
+
parser_resolve.add_argument(
|
|
52
|
+
"--no-regenerate", action="store_true", help="Don't regenerate summary"
|
|
53
|
+
)
|
|
54
|
+
parser_resolve.set_defaults(func=patterns_commands.cmd_patterns_resolve)
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"""Parser definitions for provider commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import provider
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register provider command parsers (Anthropic-only as of v5.0.0).
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object from main parser
|
|
15
|
+
"""
|
|
16
|
+
# Provider parent command
|
|
17
|
+
parser_provider = subparsers.add_parser(
|
|
18
|
+
"provider",
|
|
19
|
+
help="Configure Claude/Anthropic provider",
|
|
20
|
+
)
|
|
21
|
+
provider_sub = parser_provider.add_subparsers(dest="provider_command", required=True)
|
|
22
|
+
|
|
23
|
+
# Provider show command
|
|
24
|
+
p_show = provider_sub.add_parser(
|
|
25
|
+
"show",
|
|
26
|
+
help="Show current provider configuration",
|
|
27
|
+
)
|
|
28
|
+
p_show.set_defaults(func=provider.cmd_provider_show)
|
|
29
|
+
|
|
30
|
+
# Provider set command
|
|
31
|
+
p_set = provider_sub.add_parser(
|
|
32
|
+
"set",
|
|
33
|
+
help="Set default provider (must be 'anthropic')",
|
|
34
|
+
)
|
|
35
|
+
p_set.add_argument(
|
|
36
|
+
"name",
|
|
37
|
+
choices=["anthropic"],
|
|
38
|
+
help="Provider name (anthropic only)",
|
|
39
|
+
)
|
|
40
|
+
p_set.set_defaults(func=provider.cmd_provider_set)
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"""Argument parser for adaptive routing commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def register_parsers(subparsers):
|
|
9
|
+
"""Register routing command parsers.
|
|
10
|
+
|
|
11
|
+
Args:
|
|
12
|
+
subparsers: Subparser object from main argument parser
|
|
13
|
+
|
|
14
|
+
Returns:
|
|
15
|
+
None: Adds routing subparser with stats, check, models subcommands
|
|
16
|
+
"""
|
|
17
|
+
from ..commands.routing import (
|
|
18
|
+
cmd_routing_check,
|
|
19
|
+
cmd_routing_models,
|
|
20
|
+
cmd_routing_stats,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
# Main routing command
|
|
24
|
+
routing_parser = subparsers.add_parser(
|
|
25
|
+
"routing",
|
|
26
|
+
help="Adaptive model routing statistics and recommendations",
|
|
27
|
+
description="Analyze model routing performance based on historical telemetry",
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
# Routing subcommands
|
|
31
|
+
routing_subparsers = routing_parser.add_subparsers(
|
|
32
|
+
dest="routing_command", required=True
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
# routing stats command
|
|
36
|
+
stats_parser = routing_subparsers.add_parser(
|
|
37
|
+
"stats",
|
|
38
|
+
help="Show routing statistics for a workflow",
|
|
39
|
+
description="Display model performance metrics and recommendations",
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
stats_parser.add_argument("workflow", help="Workflow name (e.g., 'code-review')")
|
|
43
|
+
|
|
44
|
+
stats_parser.add_argument(
|
|
45
|
+
"--stage",
|
|
46
|
+
help="Stage name (optional, shows all stages if not specified)",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
stats_parser.add_argument(
|
|
50
|
+
"--days",
|
|
51
|
+
type=int,
|
|
52
|
+
default=7,
|
|
53
|
+
help="Number of days to analyze (default: 7)",
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
stats_parser.set_defaults(func=cmd_routing_stats)
|
|
57
|
+
|
|
58
|
+
# routing check command
|
|
59
|
+
check_parser = routing_subparsers.add_parser(
|
|
60
|
+
"check",
|
|
61
|
+
help="Check for tier upgrade recommendations",
|
|
62
|
+
description="Analyze failure rates and recommend tier upgrades",
|
|
63
|
+
)
|
|
64
|
+
|
|
65
|
+
check_parser.add_argument(
|
|
66
|
+
"--workflow",
|
|
67
|
+
help="Workflow name (required unless --all is used)",
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
check_parser.add_argument(
|
|
71
|
+
"--stage",
|
|
72
|
+
help="Stage name (optional)",
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
check_parser.add_argument(
|
|
76
|
+
"--all",
|
|
77
|
+
action="store_true",
|
|
78
|
+
help="Check all workflows",
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
check_parser.add_argument(
|
|
82
|
+
"--days",
|
|
83
|
+
type=int,
|
|
84
|
+
default=7,
|
|
85
|
+
help="Number of days to analyze (default: 7)",
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
check_parser.set_defaults(func=cmd_routing_check)
|
|
89
|
+
|
|
90
|
+
# routing models command
|
|
91
|
+
models_parser = routing_subparsers.add_parser(
|
|
92
|
+
"models",
|
|
93
|
+
help="Compare model performance",
|
|
94
|
+
description="Show performance metrics for all models from a provider",
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
models_parser.add_argument(
|
|
98
|
+
"--provider",
|
|
99
|
+
default="anthropic",
|
|
100
|
+
help="Provider name (default: anthropic)",
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
models_parser.add_argument(
|
|
104
|
+
"--days",
|
|
105
|
+
type=int,
|
|
106
|
+
default=7,
|
|
107
|
+
help="Number of days to analyze (default: 7)",
|
|
108
|
+
)
|
|
109
|
+
|
|
110
|
+
models_parser.set_defaults(func=cmd_routing_models)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"""Parser definitions for setup commands.
|
|
2
|
+
|
|
3
|
+
Copyright 2025 Smart-AI-Memory
|
|
4
|
+
Licensed under Fair Source License 0.9
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from ..commands import setup
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def register_parsers(subparsers):
|
|
11
|
+
"""Register setup command parsers.
|
|
12
|
+
|
|
13
|
+
Args:
|
|
14
|
+
subparsers: ArgumentParser subparsers object from main parser
|
|
15
|
+
"""
|
|
16
|
+
# Init command
|
|
17
|
+
parser_init = subparsers.add_parser(
|
|
18
|
+
"init",
|
|
19
|
+
help="Initialize a new Empathy Framework project",
|
|
20
|
+
)
|
|
21
|
+
parser_init.add_argument(
|
|
22
|
+
"--format",
|
|
23
|
+
choices=["yaml", "json"],
|
|
24
|
+
default="yaml",
|
|
25
|
+
help="Configuration format (default: yaml)",
|
|
26
|
+
)
|
|
27
|
+
parser_init.add_argument(
|
|
28
|
+
"--output",
|
|
29
|
+
help="Output file path (default: attune.config.{format})",
|
|
30
|
+
)
|
|
31
|
+
parser_init.set_defaults(func=setup.cmd_init)
|
|
32
|
+
|
|
33
|
+
# Validate command
|
|
34
|
+
parser_validate = subparsers.add_parser(
|
|
35
|
+
"validate",
|
|
36
|
+
help="Validate a configuration file",
|
|
37
|
+
)
|
|
38
|
+
parser_validate.add_argument(
|
|
39
|
+
"config",
|
|
40
|
+
help="Path to configuration file to validate",
|
|
41
|
+
)
|
|
42
|
+
parser_validate.set_defaults(func=setup.cmd_validate)
|