core-runtime 0.1.1__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.
- api/__init__.py +4 -0
- api/cli/__init__.py +10 -0
- api/cli/audit_client.py +92 -0
- api/cli/census_client.py +77 -0
- api/cli/client.py +508 -0
- api/cli/coverage_client.py +121 -0
- api/cli/daemon_client.py +42 -0
- api/cli/fix_client.py +101 -0
- api/cli/inspect_client.py +143 -0
- api/cli/integration_client.py +42 -0
- api/cli/integrity_client.py +45 -0
- api/cli/proposals_client.py +101 -0
- api/cli/quality_client.py +83 -0
- api/cli/refactor_client.py +82 -0
- api/cli/sync_client.py +106 -0
- api/dependencies.py +37 -0
- api/errors.py +74 -0
- api/main.py +88 -0
- api/v1/__init__.py +4 -0
- api/v1/audit_routes.py +302 -0
- api/v1/census_routes.py +207 -0
- api/v1/coverage_routes.py +352 -0
- api/v1/daemon_routes.py +86 -0
- api/v1/development_routes.py +70 -0
- api/v1/fix_routes.py +428 -0
- api/v1/inspect_routes.py +220 -0
- api/v1/integration_routes.py +56 -0
- api/v1/integrity_routes.py +72 -0
- api/v1/knowledge_routes.py +36 -0
- api/v1/lint_routes.py +40 -0
- api/v1/proposals_routes.py +267 -0
- api/v1/quality_routes.py +272 -0
- api/v1/refactor_routes.py +225 -0
- api/v1/sync_routes.py +261 -0
- body/__init__.py +4 -0
- body/analyzers/__init__.py +25 -0
- body/analyzers/base_analyzer.py +28 -0
- body/analyzers/constitutional_path_analyzer.py +63 -0
- body/analyzers/file_analyzer.py +211 -0
- body/analyzers/knowledge_graph_analyzer.py +86 -0
- body/analyzers/prompt_analyzer.py +155 -0
- body/analyzers/symbol_extractor.py +280 -0
- body/atomic/__init__.py +74 -0
- body/atomic/build_tests_action.py +354 -0
- body/atomic/check_actions.py +142 -0
- body/atomic/crate_ops.py +59 -0
- body/atomic/executor.py +470 -0
- body/atomic/file_ops.py +153 -0
- body/atomic/fix_actions.py +1142 -0
- body/atomic/import_resolver.py +200 -0
- body/atomic/metadata_ops.py +161 -0
- body/atomic/modularity_fix.py +839 -0
- body/atomic/modularity_splitter.py +521 -0
- body/atomic/proposal_lifecycle_actions.py +171 -0
- body/atomic/registry.py +326 -0
- body/atomic/remediate_cognitive_role.py +104 -0
- body/atomic/sandbox_lifecycle.py +252 -0
- body/atomic/split_plan.py +155 -0
- body/atomic/sync_actions/__init__.py +22 -0
- body/atomic/sync_actions/chunking_helpers.py +218 -0
- body/atomic/sync_actions/sync_actions.py +431 -0
- body/atomic/test_actions.py +47 -0
- body/autonomy/__init__.py +16 -0
- body/autonomy/audit_analyzer.py +343 -0
- body/autonomy/micro_proposal_executor.py +316 -0
- body/crate_processing/canary_executor.py +144 -0
- body/evaluators/__init__.py +27 -0
- body/evaluators/atomic_actions_evaluator.py +162 -0
- body/evaluators/atomic_actions_format.py +45 -0
- body/evaluators/atomic_actions_rules.py +278 -0
- body/evaluators/base_evaluator.py +67 -0
- body/evaluators/clarity_evaluator.py +83 -0
- body/evaluators/constitutional_evaluator.py +227 -0
- body/evaluators/failure_evaluator.py +136 -0
- body/evaluators/performance_evaluator.py +341 -0
- body/evaluators/security_evaluator.py +393 -0
- body/flows/__init__.py +33 -0
- body/flows/executor.py +275 -0
- body/flows/registry.py +272 -0
- body/flows/result.py +113 -0
- body/governance/__init__.py +29 -0
- body/governance/body_contracts_service.py +317 -0
- body/governance/code_validator.py +118 -0
- body/governance/engine_dispatcher.py +128 -0
- body/governance/intent_guard.py +592 -0
- body/governance/intent_pattern_validators.py +197 -0
- body/governance/key_management_service.py +100 -0
- body/governance/path_validator.py +187 -0
- body/governance/remediation_service.py +263 -0
- body/governance/runtime_validator.py +184 -0
- body/infrastructure/bootstrap.py +135 -0
- body/infrastructure/lifespan.py +85 -0
- body/infrastructure/repositories/__init__.py +1 -0
- body/infrastructure/repositories/decision_trace_repository.py +210 -0
- body/infrastructure/repositories/refusal_repository.py +294 -0
- body/introspection/__init__.py +4 -0
- body/introspection/capability_discovery_service.py +107 -0
- body/introspection/discovery/from_kgb.py +33 -0
- body/introspection/discovery/from_source_scan.py +40 -0
- body/introspection/discovery/loader.py +62 -0
- body/introspection/discovery/registry.py +22 -0
- body/introspection/discovery/semantics.py +21 -0
- body/introspection/discovery/sync.py +47 -0
- body/introspection/drift_detector.py +81 -0
- body/introspection/drift_service.py +48 -0
- body/introspection/export_vectors.py +133 -0
- body/introspection/generate_capability_docs.py +130 -0
- body/introspection/generate_correction_map.py +98 -0
- body/introspection/graph_analysis_service.py +66 -0
- body/introspection/knowledge_graph_service.py +170 -0
- body/introspection/semantic_clusterer.py +128 -0
- body/introspection/symbol_index_builder.py +244 -0
- body/introspection/sync/engine.py +92 -0
- body/introspection/sync/scanner.py +56 -0
- body/introspection/sync/visitor.py +83 -0
- body/introspection/sync_service.py +62 -0
- body/invokers/__init__.py +4 -0
- body/invokers/capability_invoker.py +4 -0
- body/maintenance/command_sync_service.py +73 -0
- body/maintenance/dotenv_sync_service.py +99 -0
- body/maintenance/idempotency_harness.py +70 -0
- body/maintenance/maintenance_service.py +123 -0
- body/maintenance/memory_cleanup_service.py +131 -0
- body/maintenance/refactor_settings_access.py +274 -0
- body/maintenance/scripts/__init__.py +5 -0
- body/maintenance/scripts/context_export.py +278 -0
- body/maintenance/scripts/vector_verify.py +73 -0
- body/maintenance/sync_vectors.py +338 -0
- body/models/__init__.py +4 -0
- body/project_lifecycle/__init__.py +4 -0
- body/project_lifecycle/bootstrap_service.py +157 -0
- body/project_lifecycle/definition_service.py +264 -0
- body/project_lifecycle/integration_service.py +113 -0
- body/project_lifecycle/scaffolding_service.py +187 -0
- body/quality/coverage_analyzer.py +177 -0
- body/repositories/__init__.py +4 -0
- body/self_healing/atomic_actions_fixer.py +113 -0
- body/self_healing/body_ui_fixer.py +193 -0
- body/self_healing/capability_parser.py +65 -0
- body/self_healing/code_style_service.py +51 -0
- body/self_healing/complexity_filter.py +70 -0
- body/self_healing/docstring_service.py +345 -0
- body/self_healing/duplicate_id_service.py +407 -0
- body/self_healing/duplicates_service.py +165 -0
- body/self_healing/handlers/__init__.py +1 -0
- body/self_healing/handlers/id_assignment_handler.py +201 -0
- body/self_healing/handlers/import_sorting_handler.py +181 -0
- body/self_healing/header_service.py +308 -0
- body/self_healing/id_tagging_service.py +227 -0
- body/self_healing/knowledge_consolidation_service.py +80 -0
- body/self_healing/logging_service.py +292 -0
- body/self_healing/owner_tagging_service.py +5 -0
- body/self_healing/placeholder_fixer_service.py +27 -0
- body/self_healing/prune_private_capabilities.py +144 -0
- body/self_healing/purge_legacy_tags_service.py +146 -0
- body/self_healing/remediation_models.py +238 -0
- body/self_healing/test_context/__init__.py +10 -0
- body/self_healing/test_context/detectors.py +74 -0
- body/self_healing/test_context/examples.py +53 -0
- body/self_healing/test_context/formatter.py +65 -0
- body/self_healing/test_context/metrics.py +62 -0
- body/self_healing/test_context/models.py +83 -0
- body/self_healing/test_context/parsers.py +70 -0
- body/self_healing/test_context_analyzer.py +79 -0
- body/self_healing/test_failure_analyzer.py +259 -0
- body/self_healing/test_target_analyzer.py +118 -0
- body/self_healing/vulture_healer.py +161 -0
- body/services/__init__.py +4 -0
- body/services/artifact_service.py +155 -0
- body/services/blackboard_service/__init__.py +22 -0
- body/services/blackboard_service/blackboard_claim_service.py +216 -0
- body/services/blackboard_service/blackboard_proposal_service.py +305 -0
- body/services/blackboard_service/blackboard_query_service.py +333 -0
- body/services/blackboard_service/blackboard_service.py +602 -0
- body/services/capabilities.py +51 -0
- body/services/cim/__init__.py +22 -0
- body/services/cim/baselines.py +102 -0
- body/services/cim/census_service.py +190 -0
- body/services/cim/cim_constants.py +116 -0
- body/services/cim/cim_path_utils.py +123 -0
- body/services/cim/diff.py +152 -0
- body/services/cim/history.py +94 -0
- body/services/cim/models.py +319 -0
- body/services/cim/policy.py +149 -0
- body/services/cim/scanners.py +332 -0
- body/services/coherence_service.py +552 -0
- body/services/consequence_log_service.py +189 -0
- body/services/constitutional_rule_loader.py +141 -0
- body/services/constitutional_validator.py +366 -0
- body/services/crate_creation_service.py +217 -0
- body/services/crate_processing_service.py +279 -0
- body/services/crawl_service/__init__.py +10 -0
- body/services/crawl_service/main_module.py +531 -0
- body/services/crawl_service/orchestrator.py +452 -0
- body/services/crawl_service/symbol_processing.py +279 -0
- body/services/database_service.py +242 -0
- body/services/doc_service.py +57 -0
- body/services/file_service.py +260 -0
- body/services/governance_claims_service.py +240 -0
- body/services/governance_init.py +41 -0
- body/services/health_log_service.py +167 -0
- body/services/intent_schema_validator.py +211 -0
- body/services/llm_client.py +87 -0
- body/services/mind_state_service.py +129 -0
- body/services/policy_expression_evaluator.py +154 -0
- body/services/proposal_supervision_service.py +187 -0
- body/services/representation_coherence_service.py +209 -0
- body/services/service_registry.py +431 -0
- body/services/session_attached_service.py +51 -0
- body/services/symbol_query_service.py +218 -0
- body/services/symbol_service.py +94 -0
- body/services/validation/__init__.py +14 -0
- body/services/validation/python_validator.py +89 -0
- body/services/validation/validation_policies.py +121 -0
- body/services/worker_registry_service.py +184 -0
- body/validators/__init__.py +1 -0
- body/validators/logic_conservation_validator.py +201 -0
- body/workers/call_site_rewriter.py +527 -0
- body/workers/prompt_artifact_writer.py +323 -0
- cli/__init__.py +4 -0
- cli/admin_cli.py +98 -0
- cli/cli_user.py +121 -0
- cli/commands/__init__.py +4 -0
- cli/commands/audit_reporter.py +272 -0
- cli/commands/check/__init__.py +115 -0
- cli/commands/check/audit.py +130 -0
- cli/commands/check/converters.py +129 -0
- cli/commands/check/diagnostics_commands.py +70 -0
- cli/commands/check/formatters.py +310 -0
- cli/commands/check/imports.py +73 -0
- cli/commands/check/quality.py +71 -0
- cli/commands/check/quality_gates.py +107 -0
- cli/commands/check/rule.py +136 -0
- cli/commands/check/utils.py +28 -0
- cli/commands/check_atomic_actions.py +167 -0
- cli/commands/components.py +66 -0
- cli/commands/coverage/__init__.py +22 -0
- cli/commands/coverage/analysis_commands.py +87 -0
- cli/commands/coverage/check_commands.py +173 -0
- cli/commands/coverage/generation_commands.py +155 -0
- cli/commands/coverage/services/__init__.py +15 -0
- cli/commands/coverage/services/coverage_checker.py +50 -0
- cli/commands/coverage/services/coverage_reporter.py +81 -0
- cli/commands/coverage/services/gaps_analyzer.py +114 -0
- cli/commands/daemon.py +908 -0
- cli/commands/develop.py +127 -0
- cli/commands/diagnostics.py +32 -0
- cli/commands/fix/__init__.py +84 -0
- cli/commands/fix/all_commands.py +94 -0
- cli/commands/fix/atomic_actions.py +48 -0
- cli/commands/fix/audit.py +146 -0
- cli/commands/fix/body_ui.py +93 -0
- cli/commands/fix/code_style.py +52 -0
- cli/commands/fix/db_tools.py +90 -0
- cli/commands/fix/fix_ir.py +79 -0
- cli/commands/fix/handler_discovery.py +54 -0
- cli/commands/fix/imports.py +55 -0
- cli/commands/fix/list_commands.py +54 -0
- cli/commands/fix/metadata.py +160 -0
- cli/commands/fix/modularity.py +88 -0
- cli/commands/fix/settings_access.py +65 -0
- cli/commands/fix_governed.py +103 -0
- cli/commands/fix_logging.py +24 -0
- cli/commands/governance.py +294 -0
- cli/commands/guard.py +125 -0
- cli/commands/inspect/__init__.py +79 -0
- cli/commands/inspect/_helpers.py +226 -0
- cli/commands/inspect/analysis.py +158 -0
- cli/commands/inspect/decisions.py +140 -0
- cli/commands/inspect/diagnostics.py +126 -0
- cli/commands/inspect/drift.py +100 -0
- cli/commands/inspect/patterns.py +102 -0
- cli/commands/inspect/refusals.py +211 -0
- cli/commands/inspect/repo_census.py +175 -0
- cli/commands/inspect/status.py +48 -0
- cli/commands/interactive_test.py +85 -0
- cli/commands/mind.py +49 -0
- cli/commands/refactor.py +234 -0
- cli/commands/refactor_support/__init__.py +7 -0
- cli/commands/refactor_support/analyzer.py +107 -0
- cli/commands/refactor_support/config.py +67 -0
- cli/commands/refactor_support/display.py +170 -0
- cli/commands/refactor_support/recommendations.py +55 -0
- cli/commands/run.py +60 -0
- cli/commands/search.py +103 -0
- cli/commands/status.py +86 -0
- cli/commands/submit.py +23 -0
- cli/interactive.py +177 -0
- cli/logic/__init__.py +7 -0
- cli/logic/agent.py +110 -0
- cli/logic/audit_capability_domains.py +106 -0
- cli/logic/audit_renderer.py +150 -0
- cli/logic/autonomy/actions.py +36 -0
- cli/logic/autonomy/views.py +116 -0
- cli/logic/body_contracts_checker.py +23 -0
- cli/logic/build.py +27 -0
- cli/logic/byor.py +148 -0
- cli/logic/capability.py +27 -0
- cli/logic/cli_utils.py +210 -0
- cli/logic/context.py +7 -0
- cli/logic/db.py +154 -0
- cli/logic/db_manage.py +22 -0
- cli/logic/decision_inspect_logic.py +62 -0
- cli/logic/diagnostics.py +148 -0
- cli/logic/diagnostics_policy.py +100 -0
- cli/logic/diagnostics_registry.py +165 -0
- cli/logic/duplicates.py +19 -0
- cli/logic/embeddings_cli.py +43 -0
- cli/logic/governance/__init__.py +16 -0
- cli/logic/governance/engine.py +216 -0
- cli/logic/governance/forensics_service.py +67 -0
- cli/logic/governance/limb_status_service.py +83 -0
- cli/logic/governance/renderer.py +115 -0
- cli/logic/governance/traceability_service.py +78 -0
- cli/logic/governance_logic.py +33 -0
- cli/logic/hub/__init__.py +14 -0
- cli/logic/hub/app.py +107 -0
- cli/logic/hub/formatter.py +29 -0
- cli/logic/hub/introspection.py +20 -0
- cli/logic/hub/repository.py +17 -0
- cli/logic/init.py +22 -0
- cli/logic/interactive_test/__init__.py +21 -0
- cli/logic/interactive_test/session.py +102 -0
- cli/logic/interactive_test/steps/__init__.py +23 -0
- cli/logic/interactive_test/steps/execution.py +53 -0
- cli/logic/interactive_test/steps/generation.py +88 -0
- cli/logic/interactive_test/steps/healing.py +79 -0
- cli/logic/interactive_test/steps/utils.py +31 -0
- cli/logic/interactive_test/steps/verification.py +71 -0
- cli/logic/interactive_test/ui.py +203 -0
- cli/logic/interactive_test/workflow.py +168 -0
- cli/logic/interactive_test_logic.py +41 -0
- cli/logic/knowledge.py +47 -0
- cli/logic/legacy_scan_logic.py +306 -0
- cli/logic/list_audits.py +49 -0
- cli/logic/log_audit.py +53 -0
- cli/logic/new.py +8 -0
- cli/logic/project_docs.py +28 -0
- cli/logic/reconcile.py +127 -0
- cli/logic/refusal_inspect_logic.py +208 -0
- cli/logic/report.py +47 -0
- cli/logic/status.py +47 -0
- cli/logic/symbol_drift.py +77 -0
- cli/logic/sync.py +48 -0
- cli/logic/sync_domains.py +72 -0
- cli/logic/sync_manifest.py +31 -0
- cli/logic/tools.py +133 -0
- cli/logic/utils_migration.py +43 -0
- cli/logic/validate.py +107 -0
- cli/logic/vector_drift.py +109 -0
- cli/logic/yaml_processor.py +5 -0
- cli/renderers/audit_detail.py +37 -0
- cli/renderers/audit_overview.py +39 -0
- cli/resources/__init__.py +27 -0
- cli/resources/admin/__init__.py +23 -0
- cli/resources/admin/coverage.py +63 -0
- cli/resources/admin/debt_scan.py +195 -0
- cli/resources/admin/forensics.py +97 -0
- cli/resources/admin/health.py +66 -0
- cli/resources/admin/hub.py +9 -0
- cli/resources/admin/meta.py +47 -0
- cli/resources/admin/patterns.py +28 -0
- cli/resources/admin/refusals.py +31 -0
- cli/resources/admin/self_check.py +175 -0
- cli/resources/admin/status.py +66 -0
- cli/resources/admin/summary.py +67 -0
- cli/resources/admin/traces.py +46 -0
- cli/resources/admin/validate_env.py +56 -0
- cli/resources/code/__init__.py +31 -0
- cli/resources/code/actions.py +48 -0
- cli/resources/code/audit.py +416 -0
- cli/resources/code/audit_duplicates.py +22 -0
- cli/resources/code/check_imports.py +75 -0
- cli/resources/code/check_ui.py +62 -0
- cli/resources/code/clarity.py +51 -0
- cli/resources/code/complexity.py +55 -0
- cli/resources/code/docstrings.py +51 -0
- cli/resources/code/fix_atomic.py +51 -0
- cli/resources/code/format.py +62 -0
- cli/resources/code/hub.py +10 -0
- cli/resources/code/integrity.py +75 -0
- cli/resources/code/lint.py +37 -0
- cli/resources/code/logging.py +49 -0
- cli/resources/code/refactor.py +32 -0
- cli/resources/code/test.py +30 -0
- cli/resources/coherence/__init__.py +13 -0
- cli/resources/coherence/check.py +111 -0
- cli/resources/coherence/hub.py +13 -0
- cli/resources/coherence/repair_counts.py +73 -0
- cli/resources/coherence/report.py +144 -0
- cli/resources/coherence/seed.py +297 -0
- cli/resources/coherence/supersede.py +124 -0
- cli/resources/coherence/triage.py +81 -0
- cli/resources/constitution/__init__.py +19 -0
- cli/resources/constitution/audit.py +49 -0
- cli/resources/constitution/query.py +45 -0
- cli/resources/constitution/status.py +34 -0
- cli/resources/constitution/validate.py +36 -0
- cli/resources/context/__init__.py +21 -0
- cli/resources/context/build.py +374 -0
- cli/resources/context/cache.py +156 -0
- cli/resources/context/explain.py +140 -0
- cli/resources/context/hub.py +11 -0
- cli/resources/context/search.py +114 -0
- cli/resources/database/__init__.py +13 -0
- cli/resources/database/cleanup.py +107 -0
- cli/resources/database/export.py +61 -0
- cli/resources/database/hub.py +11 -0
- cli/resources/database/migrate.py +57 -0
- cli/resources/database/status.py +101 -0
- cli/resources/database/sync.py +84 -0
- cli/resources/database/sync_env.py +76 -0
- cli/resources/database/sync_registry.py +48 -0
- cli/resources/dev/__init__.py +14 -0
- cli/resources/dev/hub.py +11 -0
- cli/resources/dev/refactor.py +92 -0
- cli/resources/dev/stability.py +60 -0
- cli/resources/dev/strategic_audit.py +113 -0
- cli/resources/dev/sync.py +51 -0
- cli/resources/dev/test.py +34 -0
- cli/resources/intent/__init__.py +11 -0
- cli/resources/intent/hub.py +9 -0
- cli/resources/intent/sync_vocabulary.py +396 -0
- cli/resources/project/__init__.py +19 -0
- cli/resources/project/docs.py +41 -0
- cli/resources/project/new.py +40 -0
- cli/resources/project/onboard.py +31 -0
- cli/resources/proposals/__init__.py +28 -0
- cli/resources/proposals/create.py +82 -0
- cli/resources/proposals/integrate.py +49 -0
- cli/resources/proposals/list.py +76 -0
- cli/resources/proposals/manage.py +117 -0
- cli/resources/runtime/__init__.py +9 -0
- cli/resources/runtime/health.py +925 -0
- cli/resources/secrets/__init__.py +10 -0
- cli/resources/secrets/hub.py +9 -0
- cli/resources/secrets/manage.py +309 -0
- cli/resources/symbols/__init__.py +13 -0
- cli/resources/symbols/audit.py +46 -0
- cli/resources/symbols/fix_ids.py +43 -0
- cli/resources/symbols/hub.py +11 -0
- cli/resources/symbols/resolve_duplicates.py +30 -0
- cli/resources/symbols/sync.py +39 -0
- cli/resources/symbols/tag.py +47 -0
- cli/resources/vectors/__init__.py +11 -0
- cli/resources/vectors/cleanup.py +95 -0
- cli/resources/vectors/hub.py +9 -0
- cli/resources/vectors/query.py +105 -0
- cli/resources/vectors/status.py +30 -0
- cli/resources/vectors/sync.py +57 -0
- cli/resources/vectors/sync_code.py +67 -0
- cli/resources/workers/__init__.py +13 -0
- cli/resources/workers/blackboard.py +253 -0
- cli/resources/workers/remediate.py +337 -0
- cli/resources/workers/run.py +140 -0
- cli/utils/__init__.py +32 -0
- cli/utils/annotation_formatter.py +154 -0
- cli/utils/decorators.py +184 -0
- cli/utils/display.py +79 -0
- cli/utils/exit_codes.py +59 -0
- cli/utils/helpers.py +34 -0
- cli/utils/prompts.py +21 -0
- core_runtime-0.1.1.dist-info/LICENSE +21 -0
- core_runtime-0.1.1.dist-info/METADATA +346 -0
- core_runtime-0.1.1.dist-info/RECORD +962 -0
- core_runtime-0.1.1.dist-info/WHEEL +4 -0
- core_runtime-0.1.1.dist-info/entry_points.txt +4 -0
- mind/__init__.py +4 -0
- mind/coherence/__init__.py +1 -0
- mind/coherence/checker.py +314 -0
- mind/coherence/checks/__init__.py +4 -0
- mind/coherence/checks/base.py +34 -0
- mind/coherence/checks/r1_scoped.py +228 -0
- mind/coherence/checks/row2_grounding.py +69 -0
- mind/coherence/checks/row3_citation.py +119 -0
- mind/coherence/checks/row4_naming.py +126 -0
- mind/coherence/checks/sameconcern.py +136 -0
- mind/coherence/checks/specgap.py +233 -0
- mind/coherence/checks/vocabulary.py +112 -0
- mind/coherence/llm_judge.py +207 -0
- mind/enforcement/audit.py +78 -0
- mind/governance/__init__.py +22 -0
- mind/governance/assumption_extractor.py +326 -0
- mind/governance/audit_context.py +520 -0
- mind/governance/audit_postprocessor.py +36 -0
- mind/governance/audit_report_writer.py +46 -0
- mind/governance/audit_types.py +98 -0
- mind/governance/auditor.py +179 -0
- mind/governance/authority_package_builder.py +502 -0
- mind/governance/constitutional_auditor_dynamic.py +362 -0
- mind/governance/enforcement/__init__.py +24 -0
- mind/governance/enforcement_loader.py +245 -0
- mind/governance/enforcement_methods.py +28 -0
- mind/governance/entry_point_policy.py +62 -0
- mind/governance/executable_rule.py +127 -0
- mind/governance/filtered_audit.py +272 -0
- mind/governance/finding_processor.py +76 -0
- mind/governance/meta_validator.py +259 -0
- mind/governance/micro_proposal_validator.py +169 -0
- mind/governance/policy_coverage_service.py +183 -0
- mind/governance/policy_rule.py +94 -0
- mind/governance/rule_conflict_detector.py +127 -0
- mind/governance/rule_executor.py +306 -0
- mind/governance/rule_extractor.py +376 -0
- mind/governance/stateless_audit.py +206 -0
- mind/governance/violation_report.py +136 -0
- mind/logic/engines/_knowledge_gate_duplication.py +117 -0
- mind/logic/engines/action_gate.py +76 -0
- mind/logic/engines/artifact_gate.py +1168 -0
- mind/logic/engines/ast_gate/__init__.py +9 -0
- mind/logic/engines/ast_gate/base.py +263 -0
- mind/logic/engines/ast_gate/checks/__init__.py +35 -0
- mind/logic/engines/ast_gate/checks/async_checks.py +276 -0
- mind/logic/engines/ast_gate/checks/capability_checks.py +197 -0
- mind/logic/engines/ast_gate/checks/conservation_checks.py +126 -0
- mind/logic/engines/ast_gate/checks/generic_checks.py +244 -0
- mind/logic/engines/ast_gate/checks/import_checks.py +164 -0
- mind/logic/engines/ast_gate/checks/knowledge_source_check.py +88 -0
- mind/logic/engines/ast_gate/checks/logging_checks.py +133 -0
- mind/logic/engines/ast_gate/checks/metadata_checks.py +242 -0
- mind/logic/engines/ast_gate/checks/modularity_checks.py +436 -0
- mind/logic/engines/ast_gate/checks/naming_checks.py +120 -0
- mind/logic/engines/ast_gate/checks/prompt_model_checks.py +83 -0
- mind/logic/engines/ast_gate/checks/protected_namespace_access_check.py +298 -0
- mind/logic/engines/ast_gate/checks/purity_checks.py +421 -0
- mind/logic/engines/ast_gate/checks/purity_enforcement_check.py +56 -0
- mind/logic/engines/ast_gate/checks/runtime_import_boundary.py +198 -0
- mind/logic/engines/ast_gate/checks/schema_conformance_checks.py +130 -0
- mind/logic/engines/ast_gate/engine.py +317 -0
- mind/logic/engines/ast_gate.py +19 -0
- mind/logic/engines/base.py +106 -0
- mind/logic/engines/cli_gate/__init__.py +25 -0
- mind/logic/engines/cli_gate/base_check.py +45 -0
- mind/logic/engines/cli_gate/checks/__init__.py +31 -0
- mind/logic/engines/cli_gate/checks/async_execution.py +65 -0
- mind/logic/engines/cli_gate/checks/dangerous_explicit.py +60 -0
- mind/logic/engines/cli_gate/checks/discovery_strict.py +167 -0
- mind/logic/engines/cli_gate/checks/help_required.py +43 -0
- mind/logic/engines/cli_gate/checks/no_duplicates.py +57 -0
- mind/logic/engines/cli_gate/checks/no_layer_exposure.py +48 -0
- mind/logic/engines/cli_gate/checks/resource_first.py +58 -0
- mind/logic/engines/cli_gate/checks/standard_verbs.py +50 -0
- mind/logic/engines/cli_gate/engine.py +211 -0
- mind/logic/engines/glob_gate.py +214 -0
- mind/logic/engines/knowledge_gate.py +410 -0
- mind/logic/engines/llm_gate.py +407 -0
- mind/logic/engines/llm_gate_stub.py +67 -0
- mind/logic/engines/passive_gate.py +45 -0
- mind/logic/engines/regex_gate.py +97 -0
- mind/logic/engines/registry.py +134 -0
- mind/logic/engines/runtime_gate.py +265 -0
- mind/logic/engines/taxonomy_gate.py +229 -0
- mind/logic/engines/workflow_gate/__init__.py +22 -0
- mind/logic/engines/workflow_gate/base_check.py +42 -0
- mind/logic/engines/workflow_gate/checks/__init__.py +32 -0
- mind/logic/engines/workflow_gate/checks/alignment.py +93 -0
- mind/logic/engines/workflow_gate/checks/audit.py +80 -0
- mind/logic/engines/workflow_gate/checks/canary.py +47 -0
- mind/logic/engines/workflow_gate/checks/coverage.py +74 -0
- mind/logic/engines/workflow_gate/checks/dead_code.py +53 -0
- mind/logic/engines/workflow_gate/checks/import_resolution.py +97 -0
- mind/logic/engines/workflow_gate/checks/linter.py +104 -0
- mind/logic/engines/workflow_gate/checks/quality.py +49 -0
- mind/logic/engines/workflow_gate/checks/ruff_format.py +99 -0
- mind/logic/engines/workflow_gate/checks/tests.py +81 -0
- mind/logic/engines/workflow_gate/engine.py +207 -0
- shared/__init__.py +32 -0
- shared/action_logger.py +61 -0
- shared/action_types.py +199 -0
- shared/activity_logging.py +149 -0
- shared/ai/constitutional_envelope.py +341 -0
- shared/ai/prompt_model.py +585 -0
- shared/ai/response_parser.py +191 -0
- shared/ast_utility.py +279 -0
- shared/atomic_action.py +117 -0
- shared/cli/__init__.py +6 -0
- shared/cli/app_introspection.py +134 -0
- shared/cli/command_meta.py +224 -0
- shared/cli_types.py +92 -0
- shared/component_primitive.py +216 -0
- shared/config.py +216 -0
- shared/config_loader.py +54 -0
- shared/context.py +113 -0
- shared/exceptions.py +100 -0
- shared/governance/__init__.py +9 -0
- shared/governance/coherence_harvester.py +258 -0
- shared/governance_token.py +77 -0
- shared/infrastructure/__init__.py +5 -0
- shared/infrastructure/adapters/__init__.py +5 -0
- shared/infrastructure/adapters/embedding_provider.py +66 -0
- shared/infrastructure/bootstrap_registry.py +57 -0
- shared/infrastructure/clients/__init__.py +5 -0
- shared/infrastructure/clients/qdrant_client.py +455 -0
- shared/infrastructure/config_service.py +382 -0
- shared/infrastructure/config_validator.py +70 -0
- shared/infrastructure/context/__init__.py +45 -0
- shared/infrastructure/context/builder.py +804 -0
- shared/infrastructure/context/cache.py +101 -0
- shared/infrastructure/context/database.py +205 -0
- shared/infrastructure/context/limb_workspace.py +134 -0
- shared/infrastructure/context/models.py +65 -0
- shared/infrastructure/context/providers/__init__.py +18 -0
- shared/infrastructure/context/providers/ast.py +211 -0
- shared/infrastructure/context/providers/db.py +165 -0
- shared/infrastructure/context/providers/vectors.py +195 -0
- shared/infrastructure/context/redactor.py +109 -0
- shared/infrastructure/context/serializers.py +144 -0
- shared/infrastructure/context/service.py +271 -0
- shared/infrastructure/context/validator.py +247 -0
- shared/infrastructure/database/models/__init__.py +80 -0
- shared/infrastructure/database/models/autonomous_proposals.py +83 -0
- shared/infrastructure/database/models/decision_traces.py +129 -0
- shared/infrastructure/database/models/governance.py +183 -0
- shared/infrastructure/database/models/knowledge.py +205 -0
- shared/infrastructure/database/models/learning.py +99 -0
- shared/infrastructure/database/models/llm_config.py +274 -0
- shared/infrastructure/database/models/operations.py +152 -0
- shared/infrastructure/database/models/refusals.py +147 -0
- shared/infrastructure/database/models/system.py +124 -0
- shared/infrastructure/database/models/vectors.py +113 -0
- shared/infrastructure/database/models/workers.py +96 -0
- shared/infrastructure/database/session_manager.py +166 -0
- shared/infrastructure/diagnostic_service.py +103 -0
- shared/infrastructure/events/__init__.py +5 -0
- shared/infrastructure/events/base.py +44 -0
- shared/infrastructure/events/bus.py +76 -0
- shared/infrastructure/git_service.py +385 -0
- shared/infrastructure/intent/action_risk.py +135 -0
- shared/infrastructure/intent/audit_verdict.py +131 -0
- shared/infrastructure/intent/autonomy_dirty_tree.py +104 -0
- shared/infrastructure/intent/canonical_enums.py +116 -0
- shared/infrastructure/intent/cognitive_roles.py +96 -0
- shared/infrastructure/intent/errors.py +13 -0
- shared/infrastructure/intent/filesystem_operations.py +359 -0
- shared/infrastructure/intent/intent_connector.py +157 -0
- shared/infrastructure/intent/intent_repository.py +707 -0
- shared/infrastructure/intent/intent_validator.py +248 -0
- shared/infrastructure/intent/operational_capabilities.py +470 -0
- shared/infrastructure/intent/operational_config.py +1343 -0
- shared/infrastructure/intent/operational_mode.py +66 -0
- shared/infrastructure/intent/task_type_phases.py +180 -0
- shared/infrastructure/intent/test_coverage_paths.py +181 -0
- shared/infrastructure/intent/vocabulary_projection.py +241 -0
- shared/infrastructure/knowledge/knowledge_service.py +155 -0
- shared/infrastructure/knowledge_graph_service.py +214 -0
- shared/infrastructure/llm/client.py +448 -0
- shared/infrastructure/llm/client_registry.py +153 -0
- shared/infrastructure/llm/fallback_client.py +144 -0
- shared/infrastructure/llm/providers/anthropic.py +113 -0
- shared/infrastructure/llm/providers/base.py +130 -0
- shared/infrastructure/llm/providers/ollama.py +265 -0
- shared/infrastructure/llm/providers/openai.py +168 -0
- shared/infrastructure/repositories/__init__.py +5 -0
- shared/infrastructure/repositories/db/__init__.py +5 -0
- shared/infrastructure/repositories/db/common.py +138 -0
- shared/infrastructure/repositories/db/engine.py +26 -0
- shared/infrastructure/repositories/db/migration_service.py +75 -0
- shared/infrastructure/repositories/db/status_service.py +61 -0
- shared/infrastructure/repositories/memory_repository.py +134 -0
- shared/infrastructure/repositories/symbol_definition_repository.py +170 -0
- shared/infrastructure/repositories/task_repository.py +59 -0
- shared/infrastructure/repositories/vector_link_repository.py +83 -0
- shared/infrastructure/rooted_repository.py +50 -0
- shared/infrastructure/secrets_service.py +317 -0
- shared/infrastructure/specs/__init__.py +9 -0
- shared/infrastructure/specs/specs_repository.py +100 -0
- shared/infrastructure/storage/file_classifier.py +32 -0
- shared/infrastructure/storage/file_handler.py +330 -0
- shared/infrastructure/storage/file_provider.py +233 -0
- shared/infrastructure/storage/integrity_service.py +108 -0
- shared/infrastructure/validation/black_formatter.py +41 -0
- shared/infrastructure/validation/quality.py +46 -0
- shared/infrastructure/validation/ruff_linter.py +104 -0
- shared/infrastructure/validation/syntax_checker.py +45 -0
- shared/infrastructure/validation/test_runner.py +167 -0
- shared/infrastructure/validation/yaml_validator.py +45 -0
- shared/infrastructure/vector/__init__.py +15 -0
- shared/infrastructure/vector/adapters/__init__.py +20 -0
- shared/infrastructure/vector/adapters/constitutional/__init__.py +26 -0
- shared/infrastructure/vector/adapters/constitutional/chunker.py +246 -0
- shared/infrastructure/vector/adapters/constitutional/doc_key_resolver.py +109 -0
- shared/infrastructure/vector/adapters/constitutional/item_builder.py +158 -0
- shared/infrastructure/vector/adapters/constitutional/utils.py +39 -0
- shared/infrastructure/vector/adapters/constitutional_adapter.py +309 -0
- shared/infrastructure/vector/adapters/specs_adapter.py +171 -0
- shared/infrastructure/vector/cognitive_adapter.py +119 -0
- shared/infrastructure/vector/vector_index_service.py +230 -0
- shared/logger.py +195 -0
- shared/models/__init__.py +47 -0
- shared/models/action_result.py +77 -0
- shared/models/audit_models.py +106 -0
- shared/models/audit_rendering.py +30 -0
- shared/models/capability_models.py +22 -0
- shared/models/constitutional_validation.py +185 -0
- shared/models/drift_models.py +24 -0
- shared/models/embedding_payload.py +45 -0
- shared/models/execution_models.py +71 -0
- shared/models/pattern_graph.py +62 -0
- shared/models/prompt_model.py +244 -0
- shared/models/refusal_result.py +294 -0
- shared/models/remediation.py +35 -0
- shared/models/validation_result.py +34 -0
- shared/models/vector_models.py +62 -0
- shared/models/workflow_models.py +242 -0
- shared/path_resolver.py +408 -0
- shared/path_utils.py +60 -0
- shared/processors/base_processor.py +171 -0
- shared/processors/yaml_processor.py +72 -0
- shared/protocols/__init__.py +21 -0
- shared/protocols/brain_services.py +35 -0
- shared/protocols/cognitive.py +35 -0
- shared/protocols/executor.py +47 -0
- shared/protocols/interpreter.py +24 -0
- shared/protocols/knowledge.py +21 -0
- shared/protocols/llm.py +25 -0
- shared/protocols/typer_protocols.py +37 -0
- shared/time.py +18 -0
- shared/universal.py +43 -0
- shared/utils/__init__.py +81 -0
- shared/utils/audit_grouping.py +50 -0
- shared/utils/common_knowledge.py +82 -0
- shared/utils/domain_mapper.py +61 -0
- shared/utils/embedding_utils.py +182 -0
- shared/utils/glob_match.py +93 -0
- shared/utils/header_tools.py +177 -0
- shared/utils/parallel_processor.py +60 -0
- shared/utils/parsing.py +189 -0
- shared/utils/path_utils.py +268 -0
- shared/utils/subprocess_utils.py +87 -0
- shared/workers/__init__.py +19 -0
- shared/workers/base.py +533 -0
- shared/workers/declaration_validator.py +124 -0
- shared/workers/loop_hold_telemetry.py +210 -0
- shared/workers/schedule.py +123 -0
- will/__init__.py +4 -0
- will/agents/__init__.py +4 -0
- will/agents/base_planner.py +133 -0
- will/agents/code_generation/__init__.py +15 -0
- will/agents/code_generation/code_generator.py +247 -0
- will/agents/code_generation/context_formatters.py +99 -0
- will/agents/code_generation/correction_engine.py +157 -0
- will/agents/code_generation/extraction.py +165 -0
- will/agents/code_generation/pattern_validator.py +264 -0
- will/agents/code_generation/prompt_builders.py +209 -0
- will/agents/coder_agent.py +229 -0
- will/agents/coder_agent_refusal_handler.py +168 -0
- will/agents/cognitive_orchestrator.py +152 -0
- will/agents/conversational/__init__.py +13 -0
- will/agents/conversational/agent.py +271 -0
- will/agents/conversational/factory.py +72 -0
- will/agents/conversational/helpers.py +116 -0
- will/agents/execution_agent.py +294 -0
- will/agents/governance_mixin.py +132 -0
- will/agents/planner_agent.py +261 -0
- will/agents/resource_selector.py +228 -0
- will/agents/strategic_auditor/__init__.py +15 -0
- will/agents/strategic_auditor/agent.py +199 -0
- will/agents/strategic_auditor/context_gatherer.py +586 -0
- will/agents/strategic_auditor/effects.py +136 -0
- will/agents/strategic_auditor/models.py +61 -0
- will/agents/strategic_auditor/reasoning.py +169 -0
- will/agents/tagger_agent.py +294 -0
- will/agents/traced_agent_mixin.py +33 -0
- will/autonomy/__init__.py +20 -0
- will/autonomy/autonomous_developer.py +127 -0
- will/autonomy/proposal.py +585 -0
- will/autonomy/proposal_execution_pipeline.py +264 -0
- will/autonomy/proposal_executor.py +410 -0
- will/autonomy/proposal_mapper.py +187 -0
- will/autonomy/proposal_repository.py +118 -0
- will/autonomy/proposal_service.py +251 -0
- will/autonomy/proposal_state_manager.py +239 -0
- will/deciders/__init__.py +9 -0
- will/deciders/governance_decider.py +207 -0
- will/governance/__init__.py +13 -0
- will/governance/audit_remediation_runner.py +197 -0
- will/governance/audit_runner.py +368 -0
- will/governance/census_runner.py +278 -0
- will/governance/coverage_runner.py +489 -0
- will/governance/daemon_runner.py +164 -0
- will/governance/fix_runner.py +693 -0
- will/governance/inspect_runner.py +521 -0
- will/governance/integrity_runner.py +66 -0
- will/governance/lint_runner.py +93 -0
- will/governance/refactor_runner.py +372 -0
- will/governance/sync_runner.py +186 -0
- will/interpreters/__init__.py +44 -0
- will/interpreters/cli_args_interpreter.py +106 -0
- will/interpreters/natural_language_interpreter.py +276 -0
- will/interpreters/request_interpreter.py +126 -0
- will/lifecycle/__init__.py +12 -0
- will/lifecycle/integration_runner.py +54 -0
- will/maintenance/metadata_scribe_service.py +64 -0
- will/orchestration/__init__.py +4 -0
- will/orchestration/cognitive_service.py +185 -0
- will/orchestration/decision_tracer.py +257 -0
- will/orchestration/intent_alignment.py +59 -0
- will/orchestration/intent_guard.py +20 -0
- will/orchestration/phase_registry.py +92 -0
- will/orchestration/process_orchestrator.py +270 -0
- will/orchestration/prompt_pipeline.py +174 -0
- will/orchestration/remediation_orchestrator.py +292 -0
- will/orchestration/self_correction_engine.py +154 -0
- will/orchestration/validation_pipeline.py +45 -0
- will/orchestration/workflow_orchestrator.py +277 -0
- will/phases/__init__.py +24 -0
- will/phases/audit_phase.py +152 -0
- will/phases/canary/pytest_runner.py +156 -0
- will/phases/canary/result_builder.py +130 -0
- will/phases/canary/test_discovery.py +104 -0
- will/phases/canary_validation_phase.py +188 -0
- will/phases/code_generation/artifact_saver.py +175 -0
- will/phases/code_generation/code_sensor.py +117 -0
- will/phases/code_generation/file_path_extractor.py +53 -0
- will/phases/code_generation/work_directory_manager.py +83 -0
- will/phases/code_generation_phase.py +480 -0
- will/phases/execution_phase.py +179 -0
- will/phases/interpret_phase.py +266 -0
- will/phases/load_phase.py +102 -0
- will/phases/parse_phase.py +117 -0
- will/phases/planning_phase.py +182 -0
- will/phases/runtime_phase.py +112 -0
- will/phases/sandbox_validation_phase.py +130 -0
- will/phases/style_check_phase.py +209 -0
- will/phases/test_generation_phase.py +159 -0
- will/self_healing/alignment/persistence.py +53 -0
- will/self_healing/alignment/sandbox.py +51 -0
- will/self_healing/alignment/specialists.py +165 -0
- will/self_healing/alignment_orchestrator.py +140 -0
- will/self_healing/audit_remediation_service.py +199 -0
- will/self_healing/batch_remediation_service.py +280 -0
- will/self_healing/capability_reconciliation_service.py +96 -0
- will/self_healing/capability_tagging_service.py +224 -0
- will/self_healing/clarity_service.py +204 -0
- will/self_healing/complexity_service.py +260 -0
- will/self_healing/context_aware_test_generator.py +298 -0
- will/self_healing/coverage_remediation_service.py +97 -0
- will/self_healing/coverage_watcher.py +192 -0
- will/self_healing/enrichment_service.py +211 -0
- will/self_healing/linelength_service.py +168 -0
- will/self_healing/modularity_remediation_service.py +203 -0
- will/self_healing/remediation_evidence_writer.py +144 -0
- will/self_healing/remediation_executor.py +113 -0
- will/self_healing/remediation_interpretation/__init__.py +1 -0
- will/self_healing/remediation_interpretation/file_context_assembler.py +383 -0
- will/self_healing/remediation_interpretation/file_role_detector.py +599 -0
- will/self_healing/remediation_interpretation/finding_normalizer.py +221 -0
- will/self_healing/remediation_interpretation/models.py +198 -0
- will/self_healing/remediation_interpretation/reasoning_brief_builder.py +235 -0
- will/self_healing/remediation_interpretation/responsibility_extractor.py +421 -0
- will/self_healing/remediation_interpretation/service.py +202 -0
- will/self_healing/remediation_interpretation/strategy_catalog.py +252 -0
- will/self_healing/remediation_interpretation/strategy_selector.py +395 -0
- will/self_healing/remediation_pattern_matcher.py +126 -0
- will/self_healing/simple_test_generator.py +252 -0
- will/self_healing/single_file_remediation.py +137 -0
- will/self_healing/test_generation/automatic_repair.py +377 -0
- will/self_healing/test_generation/code_extractor.py +238 -0
- will/self_healing/test_generation/context_builder.py +140 -0
- will/self_healing/test_generation/executor.py +64 -0
- will/self_healing/test_generation/failure_parser.py +37 -0
- will/self_healing/test_generation/generation_workflow.py +140 -0
- will/self_healing/test_generation/generator.py +283 -0
- will/self_healing/test_generation/llm_correction.py +160 -0
- will/self_healing/test_generation/repair_workflow.py +128 -0
- will/self_healing/test_generation/single_test_fixer.py +77 -0
- will/self_healing/test_generation/test_extractor.py +50 -0
- will/self_healing/test_generation/test_scorer.py +53 -0
- will/self_healing/test_generation/test_validator.py +64 -0
- will/self_healing/test_generator.py +12 -0
- will/strategists/__init__.py +46 -0
- will/strategists/base_strategist.py +29 -0
- will/strategists/clarity_strategist.py +55 -0
- will/strategists/complexity_strategist.py +55 -0
- will/strategists/fix_strategist.py +467 -0
- will/strategists/sync_strategist.py +369 -0
- will/strategists/test_strategist.py +140 -0
- will/strategists/validation_strategist.py +315 -0
- will/test_generation/__init__.py +46 -0
- will/test_generation/adaptive_test_generator.py +123 -0
- will/test_generation/artifacts.py +102 -0
- will/test_generation/harness_detection.py +103 -0
- will/test_generation/helpers/__init__.py +14 -0
- will/test_generation/helpers/context_extractor.py +100 -0
- will/test_generation/helpers/test_executor.py +230 -0
- will/test_generation/llm_output.py +62 -0
- will/test_generation/models.py +25 -0
- will/test_generation/persistence.py +248 -0
- will/test_generation/phases/__init__.py +16 -0
- will/test_generation/phases/generation_phase.py +150 -0
- will/test_generation/phases/load_phase.py +53 -0
- will/test_generation/phases/parse_phase.py +50 -0
- will/test_generation/prompt_engine.py +123 -0
- will/test_generation/result_aggregator.py +73 -0
- will/test_generation/sandbox.py +203 -0
- will/test_generation/strategy_link.py +56 -0
- will/test_generation/test_extractor.py +140 -0
- will/test_generation/validation.py +89 -0
- will/tools/__init__.py +13 -0
- will/tools/anchor_builder.py +111 -0
- will/tools/anchor_search.py +73 -0
- will/tools/anchors/discovery.py +55 -0
- will/tools/anchors/storage.py +32 -0
- will/tools/architectural_context_builder.py +94 -0
- will/tools/cognitive_toolbox.py +47 -0
- will/tools/context/code_snippet_extractor.py +83 -0
- will/tools/context/embedding_search.py +76 -0
- will/tools/context/formatter.py +87 -0
- will/tools/context/models.py +38 -0
- will/tools/context/query_builder.py +42 -0
- will/tools/context/retriever.py +182 -0
- will/tools/context/standards.py +53 -0
- will/tools/file_navigator.py +180 -0
- will/tools/layers.py +31 -0
- will/tools/module_anchor_generator.py +137 -0
- will/tools/module_descriptor.py +154 -0
- will/tools/policy_vectorizer.py +184 -0
- will/tools/symbol_finder.py +188 -0
- will/tools/tool_generator.py +103 -0
- will/workers/audit_ingest_worker.py +207 -0
- will/workers/audit_violation_filter.py +108 -0
- will/workers/audit_violation_normalizer.py +108 -0
- will/workers/audit_violation_sensor.py +370 -0
- will/workers/blackboard_shop_manager.py +280 -0
- will/workers/capability_tagger.py +153 -0
- will/workers/circuit_breaker.py +335 -0
- will/workers/coherence_sensor.py +212 -0
- will/workers/commit_reachability_auditor.py +135 -0
- will/workers/db_sync_worker.py +96 -0
- will/workers/governance_embedding/__init__.py +9 -0
- will/workers/governance_embedding/governance_embedder_worker.py +189 -0
- will/workers/intent_inspector.py +599 -0
- will/workers/observer_worker.py +158 -0
- will/workers/prompt_extractor_worker.py +241 -0
- will/workers/proposal_consumer_effects.py +216 -0
- will/workers/proposal_consumer_revival.py +131 -0
- will/workers/proposal_consumer_worker.py +271 -0
- will/workers/proposal_pipeline_shop_manager.py +273 -0
- will/workers/repo_crawler.py +171 -0
- will/workers/repo_embedding/__init__.py +18 -0
- will/workers/repo_embedding/helpers.py +245 -0
- will/workers/repo_embedding/repo_embedder_workers.py +163 -0
- will/workers/test_coverage_sensor.py +208 -0
- will/workers/test_remediator/__init__.py +12 -0
- will/workers/test_remediator/_operations.py +295 -0
- will/workers/test_remediator/worker.py +187 -0
- will/workers/test_runner_sensor.py +430 -0
- will/workers/violation_executor.py +496 -0
- will/workers/violation_remediator.py +394 -0
- will/workers/violation_remediator_blackboard.py +225 -0
- will/workers/violation_remediator_body/__init__.py +12 -0
- will/workers/violation_remediator_body/blackboard.py +139 -0
- will/workers/violation_remediator_body/ceremony.py +154 -0
- will/workers/violation_remediator_body/context.py +70 -0
- will/workers/violation_remediator_body/llm.py +112 -0
- will/workers/violation_remediator_body/models.py +35 -0
- will/workers/violation_remediator_body/worker.py +518 -0
- will/workers/violation_remediator_proposal.py +328 -0
- will/workers/worker_shop_manager.py +244 -0
- will/workflows/__init__.py +23 -0
- will/workflows/dev_sync_reporter.py +274 -0
- will/workflows/dev_sync_workflow.py +118 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# src/cli/resources/admin/forensics.py
|
|
2
|
+
"""
|
|
3
|
+
Admin Forensics Command - A2 Chain of Legality Evidence.
|
|
4
|
+
Links Agent reasoning to Body execution for constitutional auditing.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import typer
|
|
10
|
+
from rich.console import Console
|
|
11
|
+
from rich.panel import Panel
|
|
12
|
+
from rich.table import Table
|
|
13
|
+
|
|
14
|
+
from cli.logic.governance.forensics_service import GovernanceForensicsService
|
|
15
|
+
from cli.utils import core_command
|
|
16
|
+
from shared.cli.command_meta import CommandBehavior, CommandLayer, command_meta
|
|
17
|
+
|
|
18
|
+
from .hub import app
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
console = Console()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@app.command("forensics")
|
|
25
|
+
@command_meta(
|
|
26
|
+
canonical_name="admin.forensics",
|
|
27
|
+
behavior=CommandBehavior.READ,
|
|
28
|
+
layer=CommandLayer.MIND,
|
|
29
|
+
summary="Investigate the Chain of Legality for a specific session.",
|
|
30
|
+
)
|
|
31
|
+
@core_command(dangerous=False, requires_context=False)
|
|
32
|
+
# ID: d8a39a36-cf22-4ceb-b301-08a28fb5a124
|
|
33
|
+
async def admin_forensics_cmd(
|
|
34
|
+
session_id: str = typer.Argument(
|
|
35
|
+
..., help="The UUID of the session to investigate."
|
|
36
|
+
),
|
|
37
|
+
) -> None:
|
|
38
|
+
"""
|
|
39
|
+
Reconstructs the history of an autonomous operation.
|
|
40
|
+
Shows exactly what the AI thought vs what the System physically did.
|
|
41
|
+
"""
|
|
42
|
+
service = GovernanceForensicsService()
|
|
43
|
+
console.print(
|
|
44
|
+
f"\n[bold cyan]🔎 Forensics: Reconstructing Session {session_id[:8]}...[/bold cyan]\n"
|
|
45
|
+
)
|
|
46
|
+
trail = await service.get_audit_trail(session_id)
|
|
47
|
+
if trail["intent"]:
|
|
48
|
+
intent = trail["intent"]
|
|
49
|
+
thought_process = f"[bold]Agent:[/bold] {intent['agent_name']}\n[bold]Goal :[/bold] {intent['goal']}\n[bold]Patterns Used:[/bold] {intent['pattern_stats']}"
|
|
50
|
+
console.print(
|
|
51
|
+
Panel(
|
|
52
|
+
thought_process,
|
|
53
|
+
title="[blue]Phase A: Intent & Reasoning[/blue]",
|
|
54
|
+
expand=False,
|
|
55
|
+
)
|
|
56
|
+
)
|
|
57
|
+
else:
|
|
58
|
+
console.print("[yellow]⚠️ No decision trace found for this session.[/yellow]")
|
|
59
|
+
if trail["actions"]:
|
|
60
|
+
console.print("\n[blue]Phase B: Executed Actions & Governance Verdicts[/blue]")
|
|
61
|
+
action_table = Table(show_header=True, header_style="bold magenta")
|
|
62
|
+
action_table.add_column("Time", style="dim")
|
|
63
|
+
action_table.add_column("Action", style="cyan")
|
|
64
|
+
action_table.add_column("Result")
|
|
65
|
+
action_table.add_column("Metadata", style="dim")
|
|
66
|
+
for action in trail["actions"]:
|
|
67
|
+
status = (
|
|
68
|
+
"[green]PASS[/green]"
|
|
69
|
+
if action["ok"]
|
|
70
|
+
else f"[red]FAIL: {action['error_message']}[/red]"
|
|
71
|
+
)
|
|
72
|
+
action_table.add_row(
|
|
73
|
+
str(action["created_at"])[:19],
|
|
74
|
+
action["action_type"],
|
|
75
|
+
status,
|
|
76
|
+
str(action["action_metadata"]),
|
|
77
|
+
)
|
|
78
|
+
console.print(action_table)
|
|
79
|
+
else:
|
|
80
|
+
console.print(
|
|
81
|
+
"[yellow]⚠️ No physical actions recorded for this session.[/yellow]"
|
|
82
|
+
)
|
|
83
|
+
if trail["legality_verified"]:
|
|
84
|
+
console.print(
|
|
85
|
+
"\n[bold green]⚖️ VERDICT: CHAIN OF LEGALITY VERIFIED[/bold green]"
|
|
86
|
+
)
|
|
87
|
+
console.print(
|
|
88
|
+
"[dim]Every action in this session is backed by a recorded reasoning trace.[/dim]\n"
|
|
89
|
+
)
|
|
90
|
+
else:
|
|
91
|
+
console.print(
|
|
92
|
+
"\n[bold red]⚖️ VERDICT: ILLEGITIMATE SESSION DETECTED[/bold red]"
|
|
93
|
+
)
|
|
94
|
+
console.print(
|
|
95
|
+
"[red]Critical Error: This session contains actions that lack recorded intent.[/red]\n"
|
|
96
|
+
)
|
|
97
|
+
raise typer.Exit(code=1)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# src/cli/resources/admin/health.py
|
|
2
|
+
import typer
|
|
3
|
+
from rich.console import Console
|
|
4
|
+
from rich.table import Table
|
|
5
|
+
from sqlalchemy import text
|
|
6
|
+
|
|
7
|
+
from cli.utils import core_command
|
|
8
|
+
from shared.cli.command_meta import CommandBehavior, CommandLayer, command_meta
|
|
9
|
+
from shared.infrastructure.database.session_manager import get_session
|
|
10
|
+
|
|
11
|
+
from .hub import app
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
console = Console()
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@app.command("health")
|
|
18
|
+
@command_meta(
|
|
19
|
+
canonical_name="admin.health",
|
|
20
|
+
behavior=CommandBehavior.READ,
|
|
21
|
+
layer=CommandLayer.BODY,
|
|
22
|
+
summary="View the continuous system health log trend from background observers.",
|
|
23
|
+
)
|
|
24
|
+
@core_command(dangerous=False, requires_context=False)
|
|
25
|
+
# ID: f03440ee-7fa3-4496-921d-77255394464d
|
|
26
|
+
async def admin_health_cmd(
|
|
27
|
+
limit: int = typer.Option(
|
|
28
|
+
10, "--limit", "-n", help="Number of recent health snapshots to show."
|
|
29
|
+
),
|
|
30
|
+
) -> None:
|
|
31
|
+
"""
|
|
32
|
+
Reads the system_health_log populated by the continuous ObserverWorker.
|
|
33
|
+
Replaces the legacy 'check audit' active scan with a passive, instant ledger read.
|
|
34
|
+
"""
|
|
35
|
+
console.print("\n[bold cyan]🏥 Continuous System Health Trend[/bold cyan]\n")
|
|
36
|
+
query = text(
|
|
37
|
+
"\n SELECT observed_at, open_findings, stale_entries, silent_workers, orphaned_symbols\n FROM core.system_health_log\n ORDER BY observed_at DESC\n LIMIT :limit\n "
|
|
38
|
+
)
|
|
39
|
+
async with get_session() as session:
|
|
40
|
+
result = await session.execute(query, {"limit": limit})
|
|
41
|
+
rows = result.fetchall()
|
|
42
|
+
if not rows:
|
|
43
|
+
console.print("[yellow]No health logs found. Is the daemon running?[/yellow]")
|
|
44
|
+
return
|
|
45
|
+
table = Table(show_header=True, header_style="bold magenta")
|
|
46
|
+
table.add_column("Observed At", style="dim")
|
|
47
|
+
table.add_column("Open Findings", justify="right")
|
|
48
|
+
table.add_column("Stale Entries", justify="right")
|
|
49
|
+
table.add_column("Silent Workers", justify="right")
|
|
50
|
+
table.add_column("Orphaned Symbols", justify="right")
|
|
51
|
+
for row in rows:
|
|
52
|
+
f_color = "red" if row.open_findings > 0 else "green"
|
|
53
|
+
s_color = "yellow" if row.stale_entries > 0 else "green"
|
|
54
|
+
w_color = "red" if row.silent_workers > 0 else "green"
|
|
55
|
+
o_color = "yellow" if row.orphaned_symbols > 0 else "green"
|
|
56
|
+
table.add_row(
|
|
57
|
+
row.observed_at.strftime("%Y-%m-%d %H:%M:%S"),
|
|
58
|
+
f"[{f_color}]{row.open_findings}[/{f_color}]",
|
|
59
|
+
f"[{s_color}]{row.stale_entries}[/{s_color}]",
|
|
60
|
+
f"[{w_color}]{row.silent_workers}[/{w_color}]",
|
|
61
|
+
f"[{o_color}]{row.orphaned_symbols}[/{o_color}]",
|
|
62
|
+
)
|
|
63
|
+
console.print(table)
|
|
64
|
+
console.print(
|
|
65
|
+
"\n[dim]Run `core-admin workers blackboard` to investigate specific findings.[/dim]\n"
|
|
66
|
+
)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# src/cli/resources/admin/meta.py
|
|
2
|
+
import typer
|
|
3
|
+
from rich.console import Console
|
|
4
|
+
|
|
5
|
+
from body.analyzers.constitutional_path_analyzer import ConstitutionalPathAnalyzer
|
|
6
|
+
from cli.utils import core_command
|
|
7
|
+
from shared.action_types import ActionImpact, ActionResult
|
|
8
|
+
from shared.atomic_action import atomic_action
|
|
9
|
+
|
|
10
|
+
from .hub import app
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
console = Console()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@app.command("meta")
|
|
17
|
+
@atomic_action(
|
|
18
|
+
action_id="admin.meta",
|
|
19
|
+
intent="List all indexed constitutional files.",
|
|
20
|
+
impact=ActionImpact.READ_ONLY,
|
|
21
|
+
policies=["governance.audit_context"],
|
|
22
|
+
)
|
|
23
|
+
@core_command(dangerous=False, requires_context=False)
|
|
24
|
+
# ID: 05ee1736-8480-40f6-94d9-f0e813eb5e0c
|
|
25
|
+
async def admin_meta_cmd(
|
|
26
|
+
ctx: typer.Context,
|
|
27
|
+
format: str = typer.Option("list", "--format", help="Output format (list|json)"),
|
|
28
|
+
**kwargs,
|
|
29
|
+
) -> ActionResult:
|
|
30
|
+
"""
|
|
31
|
+
Explore the System Mind: Prints all authoritative constitutional files.
|
|
32
|
+
"""
|
|
33
|
+
analyzer = ConstitutionalPathAnalyzer()
|
|
34
|
+
result = await analyzer.execute()
|
|
35
|
+
paths = result.data["paths"]
|
|
36
|
+
if format == "json":
|
|
37
|
+
import json
|
|
38
|
+
|
|
39
|
+
console.print(json.dumps(paths, indent=2))
|
|
40
|
+
else:
|
|
41
|
+
console.print(
|
|
42
|
+
f"\n[bold cyan]🏛️ Authoritative Mind Artifacts ({len(paths)}):[/bold cyan]"
|
|
43
|
+
)
|
|
44
|
+
for p in paths:
|
|
45
|
+
console.print(f" [dim]•[/dim] {p}")
|
|
46
|
+
console.print()
|
|
47
|
+
return ActionResult(action_id="admin.meta", ok=True, data=result.data)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# src/cli/resources/admin/patterns.py
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
|
|
5
|
+
from cli.utils import core_command
|
|
6
|
+
|
|
7
|
+
from .hub import app
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@app.command("patterns")
|
|
11
|
+
@core_command(dangerous=False, requires_context=True)
|
|
12
|
+
# ID: 2763bdbf-a6d8-44f5-bf47-5972d4dee390
|
|
13
|
+
async def admin_patterns_cmd(
|
|
14
|
+
ctx: typer.Context,
|
|
15
|
+
last: int = typer.Option(
|
|
16
|
+
10, "--last", "-l", help="Number of recent traces to analyze."
|
|
17
|
+
),
|
|
18
|
+
):
|
|
19
|
+
"""
|
|
20
|
+
Analyze architectural pattern usage and classification accuracy.
|
|
21
|
+
|
|
22
|
+
Helps identify if certain code patterns (like 'action_pattern')
|
|
23
|
+
are frequently misidentified or failing validation.
|
|
24
|
+
"""
|
|
25
|
+
from cli.commands.inspect.patterns import patterns_cmd as logic_func
|
|
26
|
+
|
|
27
|
+
# We forward to the existing logic which analyzes JSON traces in reports/
|
|
28
|
+
await logic_func(ctx, last=last)
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# src/cli/resources/admin/refusals.py
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
|
|
5
|
+
from cli.utils import core_command
|
|
6
|
+
from shared.infrastructure.intent.operational_config import load_operational_config
|
|
7
|
+
|
|
8
|
+
from .hub import app
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
_CFG = load_operational_config().misc
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.command("refusals")
|
|
15
|
+
@core_command(dangerous=False, requires_context=False)
|
|
16
|
+
# ID: 89bbb5fe-04e4-48b9-9841-3afa714906a2
|
|
17
|
+
async def admin_refusals_cmd(
|
|
18
|
+
limit: int = typer.Option(_CFG.refusal_inspect_default_limit, "--limit", "-n"),
|
|
19
|
+
refusal_type: str = typer.Option(
|
|
20
|
+
None, "--type", "-t", help="Filter by type (e.g. boundary, extraction)"
|
|
21
|
+
),
|
|
22
|
+
):
|
|
23
|
+
"""
|
|
24
|
+
Audit constitutional refusal outcomes.
|
|
25
|
+
|
|
26
|
+
Refusals are first-class outcomes where CORE chose to stop because
|
|
27
|
+
an operation was unsafe or lacked sufficient context.
|
|
28
|
+
"""
|
|
29
|
+
from cli.logic.refusal_inspect_logic import show_recent_refusals
|
|
30
|
+
|
|
31
|
+
await show_recent_refusals(limit=limit, refusal_type=refusal_type, details=True)
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
# src/cli/resources/admin/self_check.py
|
|
2
|
+
|
|
3
|
+
"""``core-admin admin self-check`` — manual preflight against the same
|
|
4
|
+
``cli_gate`` engine the autonomous audit uses.
|
|
5
|
+
|
|
6
|
+
The command audits the live Typer command registry against the eight
|
|
7
|
+
``cli.*`` rules wired to ``engine: cli_gate`` in
|
|
8
|
+
``.intent/enforcement/mappings/cli/interface_design.yaml`` (plus
|
|
9
|
+
``cli.command.no_duplicates`` in ``infrastructure/cli_commands.yaml``).
|
|
10
|
+
Findings are produced by the canonical ``CliCheck`` implementations and
|
|
11
|
+
match what ``core-admin code audit`` produces for the same rules.
|
|
12
|
+
|
|
13
|
+
``--write`` invokes ``MetadataScribeService`` to autonomously assign
|
|
14
|
+
``@command_meta`` decorators to commands that lack explicit metadata.
|
|
15
|
+
That branch is independent of the audit and uses ``walk_typer_app``
|
|
16
|
+
directly for command discovery.
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
from typing import Any
|
|
23
|
+
|
|
24
|
+
import typer
|
|
25
|
+
from rich.console import Console
|
|
26
|
+
|
|
27
|
+
from body.atomic.executor import ActionExecutor
|
|
28
|
+
from cli.utils import core_command
|
|
29
|
+
from shared.cli.command_meta import CommandBehavior, CommandLayer, command_meta
|
|
30
|
+
from shared.models import AuditFinding
|
|
31
|
+
|
|
32
|
+
from .hub import app
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
console = Console()
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
_CLI_GATE_RULE_IDS: tuple[str, ...] = (
|
|
39
|
+
"cli.resource_first",
|
|
40
|
+
"cli.no_layer_exposure",
|
|
41
|
+
"cli.standard_verbs",
|
|
42
|
+
"cli.dangerous_explicit",
|
|
43
|
+
"cli.async_execution",
|
|
44
|
+
"cli.discovery_strict",
|
|
45
|
+
"cli.help_required",
|
|
46
|
+
"cli.command.no_duplicates",
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@app.command("self-check")
|
|
51
|
+
@command_meta(
|
|
52
|
+
canonical_name="admin.self-check",
|
|
53
|
+
behavior=CommandBehavior.VALIDATE,
|
|
54
|
+
layer=CommandLayer.BODY,
|
|
55
|
+
summary="Validate CLI command registration and constitutional alignment",
|
|
56
|
+
)
|
|
57
|
+
@core_command(dangerous=True, requires_context=True)
|
|
58
|
+
# ID: 6fa9d0bd-63d7-4d93-a326-d0ee95793423
|
|
59
|
+
async def self_check_cmd(
|
|
60
|
+
ctx: typer.Context,
|
|
61
|
+
verbose: bool = typer.Option(
|
|
62
|
+
False, "--verbose", "-v", help="Show full command listing."
|
|
63
|
+
),
|
|
64
|
+
write: bool = typer.Option(
|
|
65
|
+
False, "--write", help="Autonomously repair missing metadata using AI."
|
|
66
|
+
),
|
|
67
|
+
) -> None:
|
|
68
|
+
"""
|
|
69
|
+
Validate CLI registry against structural and constitutional rules.
|
|
70
|
+
Use --write to automatically assign missing @command_meta decorators.
|
|
71
|
+
"""
|
|
72
|
+
from cli.admin_cli import app as main_app
|
|
73
|
+
from mind.governance.enforcement_loader import EnforcementMappingLoader
|
|
74
|
+
from mind.logic.engines.registry import EngineRegistry
|
|
75
|
+
from shared.cli.app_introspection import walk_typer_app
|
|
76
|
+
from shared.infrastructure.intent.intent_repository import get_intent_repository
|
|
77
|
+
from will.maintenance.metadata_scribe_service import MetadataScribeService
|
|
78
|
+
|
|
79
|
+
core_context = ctx.obj
|
|
80
|
+
|
|
81
|
+
commands = walk_typer_app(main_app, include_missing_handlers=True)
|
|
82
|
+
unassigned = [c for c in commands if not c.get("has_explicit_meta")]
|
|
83
|
+
|
|
84
|
+
if write:
|
|
85
|
+
scribe = MetadataScribeService(core_context.cognitive_service)
|
|
86
|
+
executor = ActionExecutor(core_context)
|
|
87
|
+
if not unassigned:
|
|
88
|
+
console.print(
|
|
89
|
+
"[green]✅ All commands have explicit metadata. Nothing to scribe.[/green]"
|
|
90
|
+
)
|
|
91
|
+
return
|
|
92
|
+
console.print(
|
|
93
|
+
f"[bold cyan]🖋️ Metascribe: Analyzing {len(unassigned)} unassigned commands...[/bold cyan]\n"
|
|
94
|
+
)
|
|
95
|
+
for cmd in unassigned:
|
|
96
|
+
f_path = Path(cmd["file_path"])
|
|
97
|
+
if not f_path.exists():
|
|
98
|
+
continue
|
|
99
|
+
source = f_path.read_text(encoding="utf-8")
|
|
100
|
+
meta_draft = await scribe.draft_metadata(
|
|
101
|
+
function_name=cmd["entrypoint"],
|
|
102
|
+
docstring=cmd["summary"] or "",
|
|
103
|
+
file_path=cmd["file_path"],
|
|
104
|
+
source_code=source,
|
|
105
|
+
)
|
|
106
|
+
if meta_draft:
|
|
107
|
+
console.print(
|
|
108
|
+
f" → Proposed for [yellow]{cmd['name']}[/yellow]: {meta_draft['canonical_name']}"
|
|
109
|
+
)
|
|
110
|
+
decorator = (
|
|
111
|
+
f'@command_meta(\n canonical_name="{meta_draft["canonical_name"]}",\n'
|
|
112
|
+
f" behavior=CommandBehavior.{meta_draft['behavior'].upper()},\n"
|
|
113
|
+
f" layer=CommandLayer.{meta_draft['layer'].upper()},\n"
|
|
114
|
+
f' summary="{meta_draft["summary"]}",\n'
|
|
115
|
+
f" dangerous={meta_draft['dangerous']}\n)\n"
|
|
116
|
+
)
|
|
117
|
+
target_def = f"def {cmd['entrypoint']}"
|
|
118
|
+
if f"async def {cmd['entrypoint']}" in source:
|
|
119
|
+
target_def = f"async def {cmd['entrypoint']}"
|
|
120
|
+
new_source = source.replace(target_def, f"{decorator}{target_def}")
|
|
121
|
+
rel_path = str(f_path.relative_to(core_context.git_service.repo_path))
|
|
122
|
+
await executor.execute(
|
|
123
|
+
"file.edit", write=True, file_path=rel_path, code=new_source
|
|
124
|
+
)
|
|
125
|
+
return
|
|
126
|
+
|
|
127
|
+
repo = get_intent_repository()
|
|
128
|
+
repo.initialize()
|
|
129
|
+
loader = EnforcementMappingLoader(intent_root=repo.root)
|
|
130
|
+
cli_gate_engine = EngineRegistry.get("cli_gate")
|
|
131
|
+
|
|
132
|
+
findings_by_rule: dict[str, list[AuditFinding]] = {}
|
|
133
|
+
skipped: list[str] = []
|
|
134
|
+
for rule_id in _CLI_GATE_RULE_IDS:
|
|
135
|
+
strategy = loader.get_enforcement_strategy(rule_id)
|
|
136
|
+
if not strategy or strategy.get("engine") != "cli_gate":
|
|
137
|
+
skipped.append(rule_id)
|
|
138
|
+
continue
|
|
139
|
+
params: dict[str, Any] = dict(strategy.get("params", {}))
|
|
140
|
+
findings = await cli_gate_engine.verify_context(
|
|
141
|
+
core_context.auditor_context, params
|
|
142
|
+
)
|
|
143
|
+
if findings:
|
|
144
|
+
findings_by_rule[rule_id] = findings
|
|
145
|
+
|
|
146
|
+
total_findings = sum(len(v) for v in findings_by_rule.values())
|
|
147
|
+
|
|
148
|
+
console.print("\n[bold cyan]🔍 CLI Registry Audit Results[/bold cyan]\n")
|
|
149
|
+
|
|
150
|
+
if findings_by_rule:
|
|
151
|
+
console.print("[bold red]❌ CONSTITUTIONAL VIOLATIONS:[/bold red]")
|
|
152
|
+
for rule_id, findings in findings_by_rule.items():
|
|
153
|
+
console.print(f" [bold]{rule_id}[/bold] — {len(findings)} finding(s)")
|
|
154
|
+
for finding in findings:
|
|
155
|
+
item = finding.context.get("command_name") or finding.file_path or "?"
|
|
156
|
+
console.print(f" • {finding.message} ([dim]{item}[/dim])")
|
|
157
|
+
console.print("")
|
|
158
|
+
|
|
159
|
+
if skipped:
|
|
160
|
+
console.print(f"[yellow]⚠️ Unmapped (skipped): {', '.join(skipped)}[/yellow]\n")
|
|
161
|
+
|
|
162
|
+
console.print(f" Total commands: [bold]{len(commands)}[/bold]")
|
|
163
|
+
console.print(f" Total findings: [bold]{total_findings}[/bold]")
|
|
164
|
+
console.print(
|
|
165
|
+
f" Missing explicit @meta: [bold yellow]{len(unassigned)}[/bold yellow]"
|
|
166
|
+
)
|
|
167
|
+
if unassigned:
|
|
168
|
+
console.print(
|
|
169
|
+
"\n[yellow]💡 Run with --write to autonomously assign metadata via AI.[/yellow]"
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
if not findings_by_rule and not skipped:
|
|
173
|
+
console.print(
|
|
174
|
+
"\n[bold green]✅ CLI Registry is healthy and aligned.[/bold green]"
|
|
175
|
+
)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# src/cli/resources/admin/status.py
|
|
2
|
+
"""
|
|
3
|
+
Admin Status Command - Infrastructure Health Sensation.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
from __future__ import annotations
|
|
7
|
+
|
|
8
|
+
import typer
|
|
9
|
+
from rich.console import Console
|
|
10
|
+
from rich.table import Table
|
|
11
|
+
|
|
12
|
+
from cli.utils import core_command
|
|
13
|
+
from shared.cli.command_meta import CommandBehavior, CommandLayer, command_meta
|
|
14
|
+
from shared.infrastructure.diagnostic_service import DiagnosticService
|
|
15
|
+
|
|
16
|
+
from .hub import app
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
console = Console()
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@app.command("status")
|
|
23
|
+
@command_meta(
|
|
24
|
+
canonical_name="admin.status",
|
|
25
|
+
behavior=CommandBehavior.READ,
|
|
26
|
+
layer=CommandLayer.BODY,
|
|
27
|
+
summary="Sensory check of system infrastructure and connectivity.",
|
|
28
|
+
)
|
|
29
|
+
@core_command(dangerous=False, requires_context=True)
|
|
30
|
+
# ID: 142e8bb4-c0cf-4913-890d-0eaa49913ec0
|
|
31
|
+
async def admin_status_cmd(ctx: typer.Context) -> None:
|
|
32
|
+
"""
|
|
33
|
+
Perform a sensory check of the Body's physical connections.
|
|
34
|
+
Validates Database, Vector store, and Environment coordinates.
|
|
35
|
+
"""
|
|
36
|
+
core_context = ctx.obj
|
|
37
|
+
service = DiagnosticService(core_context.git_service.repo_path)
|
|
38
|
+
console.print(
|
|
39
|
+
"\n[bold cyan]📡 Sensation: Probing System Infrastructure...[/bold cyan]\n"
|
|
40
|
+
)
|
|
41
|
+
connectivity = await service.check_connectivity()
|
|
42
|
+
table = Table(
|
|
43
|
+
title="Infrastructure Connectivity",
|
|
44
|
+
show_header=True,
|
|
45
|
+
header_style="bold magenta",
|
|
46
|
+
)
|
|
47
|
+
table.add_column("Component", style="cyan")
|
|
48
|
+
table.add_column("Status", justify="center")
|
|
49
|
+
table.add_column("Detail", style="dim")
|
|
50
|
+
for name, result in connectivity.items():
|
|
51
|
+
status_icon = "[green]OK[/green]" if result["ok"] else "[red]FAIL[/red]"
|
|
52
|
+
table.add_row(name.capitalize(), status_icon, result["detail"])
|
|
53
|
+
console.print(table)
|
|
54
|
+
fs_errors = service.check_file_system()
|
|
55
|
+
if not fs_errors:
|
|
56
|
+
console.print("\n[green]✅ All mandatory constitutional roots found.[/green]")
|
|
57
|
+
else:
|
|
58
|
+
console.print("\n[bold red]❌ File System Gaps Detected:[/bold red]")
|
|
59
|
+
for err in fs_errors:
|
|
60
|
+
console.print(f" [yellow]•[/yellow] {err}")
|
|
61
|
+
all_ok = all(r["ok"] for r in connectivity.values()) and (not fs_errors)
|
|
62
|
+
if all_ok:
|
|
63
|
+
console.print("\n[bold green]🛡️ Body Health: OPTIMAL[/bold green]\n")
|
|
64
|
+
else:
|
|
65
|
+
console.print("\n[bold red]⚠️ Body Health: DEGRADED[/bold red]\n")
|
|
66
|
+
raise typer.Exit(code=1)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# src/cli/resources/admin/summary.py
|
|
2
|
+
"""
|
|
3
|
+
Admin Summary Command - Operational Health Visualization.
|
|
4
|
+
Provides a high-level overview of recent Body actions and failures.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
import typer
|
|
10
|
+
from rich.console import Console
|
|
11
|
+
from rich.panel import Panel
|
|
12
|
+
from rich.table import Table
|
|
13
|
+
|
|
14
|
+
from cli.logic.governance.limb_status_service import LimbStatusService
|
|
15
|
+
from cli.utils import core_command
|
|
16
|
+
from shared.cli.command_meta import CommandBehavior, CommandLayer, command_meta
|
|
17
|
+
|
|
18
|
+
from .hub import app
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
console = Console()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@app.command("summary")
|
|
25
|
+
@command_meta(
|
|
26
|
+
canonical_name="admin.summary",
|
|
27
|
+
behavior=CommandBehavior.READ,
|
|
28
|
+
layer=CommandLayer.BODY,
|
|
29
|
+
summary="Display a summary of recent operational health and failures.",
|
|
30
|
+
)
|
|
31
|
+
@core_command(dangerous=False, requires_context=True)
|
|
32
|
+
# ID: 12f53c63-d4f9-42ab-8d12-ba027ee84eea
|
|
33
|
+
async def admin_summary_cmd(
|
|
34
|
+
ctx: typer.Context,
|
|
35
|
+
limit: int = typer.Option(
|
|
36
|
+
15, "--limit", "-n", help="Number of recent actions to analyze."
|
|
37
|
+
),
|
|
38
|
+
) -> None:
|
|
39
|
+
"""
|
|
40
|
+
Summarizes the most recent actions in the Body's ledger.
|
|
41
|
+
Explicitly highlights 'Pain Signals' (errors) for human review.
|
|
42
|
+
"""
|
|
43
|
+
core_context = ctx.obj
|
|
44
|
+
service = LimbStatusService(session_factory=core_context.registry.session)
|
|
45
|
+
console.print(
|
|
46
|
+
"\n[bold cyan]🧬 Sensation: Aggregating Limb Health Summary...[/bold cyan]\n"
|
|
47
|
+
)
|
|
48
|
+
health = await service.get_recent_limb_health(limit=limit)
|
|
49
|
+
status_color = "green" if health["status"] == "OPTIMAL" else "yellow"
|
|
50
|
+
status_text = f"Limb State : [bold {status_color}]{health['status']}[/bold {status_color}]\nScan Depth : {health['total_checked']} actions\nPain Signals: {health['failure_count']} detected"
|
|
51
|
+
console.print(Panel(status_text, title="Operational Sensation", expand=False))
|
|
52
|
+
if health["issues"]:
|
|
53
|
+
console.print(
|
|
54
|
+
"\n[bold red]🚨 Detected Pain Signals (Recent Failures):[/bold red]"
|
|
55
|
+
)
|
|
56
|
+
table = Table(show_header=True, header_style="bold red")
|
|
57
|
+
table.add_column("Action / Neuron", style="cyan")
|
|
58
|
+
table.add_column("Error Message", style="yellow")
|
|
59
|
+
table.add_column("Time", style="dim", justify="right")
|
|
60
|
+
for issue in health["issues"]:
|
|
61
|
+
table.add_row(issue["action"], issue["error"], str(issue["time"])[:19])
|
|
62
|
+
console.print(table)
|
|
63
|
+
else:
|
|
64
|
+
console.print(
|
|
65
|
+
"\n[bold green]✅ System Harmony: No recent pain signals detected in the ledger.[/bold green]"
|
|
66
|
+
)
|
|
67
|
+
console.print()
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# src/cli/resources/admin/traces.py
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
|
|
5
|
+
from body.infrastructure.repositories.decision_trace_repository import (
|
|
6
|
+
DecisionTraceRepository,
|
|
7
|
+
)
|
|
8
|
+
from cli.utils import core_command
|
|
9
|
+
from shared.infrastructure.database.session_manager import get_session
|
|
10
|
+
|
|
11
|
+
from .hub import app
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.command("traces")
|
|
15
|
+
@core_command(dangerous=False, requires_context=False)
|
|
16
|
+
# ID: 63d5864d-b16c-474e-8c44-0d28083c9999
|
|
17
|
+
async def admin_traces_cmd(
|
|
18
|
+
limit: int = typer.Option(
|
|
19
|
+
10, "--limit", "-n", help="Number of recent traces to show."
|
|
20
|
+
),
|
|
21
|
+
session_id: str = typer.Option(
|
|
22
|
+
None, "--session", "-s", help="Show specific session details."
|
|
23
|
+
),
|
|
24
|
+
failures_only: bool = typer.Option(
|
|
25
|
+
False, "--failures", help="Show only traces with violations."
|
|
26
|
+
),
|
|
27
|
+
):
|
|
28
|
+
"""
|
|
29
|
+
Inspect autonomous decision traces.
|
|
30
|
+
|
|
31
|
+
Provides forensics on why AI agents chose specific implementations
|
|
32
|
+
or strategy pivots.
|
|
33
|
+
"""
|
|
34
|
+
from cli.logic.decision_inspect_logic import (
|
|
35
|
+
list_recent_traces_logic,
|
|
36
|
+
show_session_trace_logic,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
async with get_session() as session:
|
|
40
|
+
repo = DecisionTraceRepository(session)
|
|
41
|
+
if session_id:
|
|
42
|
+
await show_session_trace_logic(repo, session_id, details=True)
|
|
43
|
+
else:
|
|
44
|
+
await list_recent_traces_logic(
|
|
45
|
+
repo, limit, agent=None, failures_only=failures_only
|
|
46
|
+
)
|