rosett-ai 1.3.3 → 1.5.9
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +398 -22
- data/README.md +56 -42
- data/bin/raictl +13 -0
- data/conf/adopt_redactions.yml +2 -0
- data/conf/compliance/cra_rules.yml +2 -0
- data/conf/compliance/license_rules.yml +2 -0
- data/conf/mcp/server_defaults.yml +2 -0
- data/conf/mcp/trust.yml +1 -0
- data/conf/packaging/core.yml +2 -0
- data/conf/packaging/gtk4.yml +2 -0
- data/conf/packaging/qt6.yml +2 -0
- data/conf/policy/default_deny_list.yml +2 -0
- data/conf/review/cli-command-audit.yml +2 -0
- data/conf/review/design-docs.yml +2 -0
- data/conf/review/design-questionnaire.yml +2 -0
- data/conf/review/questionnaire.yml +2 -0
- data/conf/review/rosett-ai-core.yml +2 -0
- data/conf/schemas/ai_config_schema.json +14 -2
- data/conf/schemas/autoqueue.schema.json +153 -0
- data/conf/schemas/behaviour_schema.json +31 -7
- data/conf/schemas/compliance_rule_schema.json +17 -4
- data/conf/schemas/content_pack_manifest_schema.json +23 -4
- data/conf/schemas/design_schema.json +177 -42
- data/conf/schemas/engine_manifest_schema.json +22 -5
- data/conf/schemas/lockfile_schema.json +26 -4
- data/conf/schemas/mcp_server_schema.json +50 -9
- data/conf/schemas/packaging_schema.json +23 -5
- data/conf/schemas/policy_schema.json +35 -9
- data/conf/schemas/provenance_schema.json +33 -5
- data/conf/schemas/rai_config_schema.json +6 -2
- data/conf/schemas/rai_project_schema.json +8 -2
- data/conf/schemas/scope_hierarchy_schema.json +22 -5
- data/conf/schemas/target_schema.json +33 -6
- data/conf/schemas/tooling_schema.json +53 -12
- data/conf/schemas/workflow_schema.json +39 -9
- data/conf/targets/agents_md.yml +1 -0
- data/conf/targets/claude.yml +2 -0
- data/conf/tooling/tools.yml +2 -0
- data/lib/rosett_ai/adopter/local_analysis_collector.rb +5 -0
- data/lib/rosett_ai/adopter/rule_adopter.rb +40 -0
- data/lib/rosett_ai/ai_config/context_window.rb +3 -0
- data/lib/rosett_ai/ai_config/cost_controls.rb +1 -0
- data/lib/rosett_ai/ai_config/fallback_chain.rb +1 -0
- data/lib/rosett_ai/ai_config/model_router.rb +1 -0
- data/lib/rosett_ai/ai_config/validator.rb +2 -0
- data/lib/rosett_ai/authorship/attribution_compiler.rb +1 -0
- data/lib/rosett_ai/authorship/disclosure_policy.rb +2 -0
- data/lib/rosett_ai/authorship/review_validator.rb +1 -0
- data/lib/rosett_ai/authorship/trailer_generator.rb +1 -0
- data/lib/rosett_ai/backup/compressor.rb +3 -0
- data/lib/rosett_ai/backup/destination.rb +1 -0
- data/lib/rosett_ai/behaviour/manager.rb +1 -0
- data/lib/rosett_ai/compiler/backend.rb +3 -0
- data/lib/rosett_ai/compiler/backends/agents_md_backend.rb +1 -0
- data/lib/rosett_ai/compiler/backends/claude_backend.rb +1 -0
- data/lib/rosett_ai/compiler/behaviour_compiler.rb +1 -0
- data/lib/rosett_ai/compiler/compilation_pipeline.rb +1 -7
- data/lib/rosett_ai/compiler/locale_compiler.rb +2 -0
- data/lib/rosett_ai/compiler/target_profile.rb +11 -0
- data/lib/rosett_ai/completion/generator.rb +2 -0
- data/lib/rosett_ai/completion/shells/zsh_generator.rb +1 -0
- data/lib/rosett_ai/comply/checkers/cra_checker.rb +1 -0
- data/lib/rosett_ai/comply/checkers/license_checker.rb +2 -0
- data/lib/rosett_ai/comply/checkers/spdx_header_checker.rb +4 -0
- data/lib/rosett_ai/comply/runner.rb +2 -0
- data/lib/rosett_ai/composition/composer.rb +1 -0
- data/lib/rosett_ai/composition/lockfile.rb +1 -0
- data/lib/rosett_ai/composition/merge_strategy.rb +1 -0
- data/lib/rosett_ai/config/masking_secret_resolver.rb +9 -0
- data/lib/rosett_ai/config/secret_resolver.rb +4 -0
- data/lib/rosett_ai/configuration.rb +4 -0
- data/lib/rosett_ai/content/content_client.rb +15 -0
- data/lib/rosett_ai/content/pack_installer.rb +1 -0
- data/lib/rosett_ai/content/pack_manifest.rb +21 -0
- data/lib/rosett_ai/content_packs/manager.rb +1 -0
- data/lib/rosett_ai/dbus/compositor_detector.rb +2 -0
- data/lib/rosett_ai/dbus/focus_adapters/base.rb +1 -0
- data/lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb +5 -0
- data/lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb +4 -0
- data/lib/rosett_ai/dbus/focus_monitor_interface.rb +1 -0
- data/lib/rosett_ai/dbus/manager_interface.rb +1 -0
- data/lib/rosett_ai/dbus/plugin_manager_interface.rb +2 -0
- data/lib/rosett_ai/dbus/rate_limiter.rb +1 -0
- data/lib/rosett_ai/dbus/service.rb +3 -0
- data/lib/rosett_ai/dbus/status_notifier_interface.rb +14 -0
- data/lib/rosett_ai/desktop/dbus_client.rb +6 -0
- data/lib/rosett_ai/desktop/gtk4_app.rb +3 -0
- data/lib/rosett_ai/desktop/gtk4_preferences.rb +1 -0
- data/lib/rosett_ai/desktop/gui_logger.rb +2 -0
- data/lib/rosett_ai/doctor/check.rb +1 -1
- data/lib/rosett_ai/doctor/checks/cache_health_check.rb +1 -0
- data/lib/rosett_ai/doctor.rb +1 -0
- data/lib/rosett_ai/documentation/reference_compiler.rb +9 -0
- data/lib/rosett_ai/documentation/translator.rb +8 -0
- data/lib/rosett_ai/engines/base_config_compiler.rb +71 -1
- data/lib/rosett_ai/engines/detector.rb +5 -0
- data/lib/rosett_ai/engines/registry.rb +7 -0
- data/lib/rosett_ai/exit_codes.rb +6 -0
- data/lib/rosett_ai/formatting.rb +1 -0
- data/lib/rosett_ai/gem_consistency_checker.rb +6 -0
- data/lib/rosett_ai/git_hooks/chain_detector.rb +1 -0
- data/lib/rosett_ai/git_hooks/installer.rb +4 -0
- data/lib/rosett_ai/git_hooks/script_generator.rb +2 -0
- data/lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb +6 -0
- data/lib/rosett_ai/i18n/utf8_checker.rb +1 -0
- data/lib/rosett_ai/init/config_file_writer.rb +4 -0
- data/lib/rosett_ai/init/directory_builder.rb +15 -0
- data/lib/rosett_ai/init/file_copier.rb +51 -0
- data/lib/rosett_ai/init/mcp_registrar.rb +1 -0
- data/lib/rosett_ai/init/project_initializer.rb +1 -0
- data/lib/rosett_ai/licensing/license_key.rb +4 -0
- data/lib/rosett_ai/licensing/license_store.rb +11 -0
- data/lib/rosett_ai/licensing/tier.rb +9 -0
- data/lib/rosett_ai/mcp/admin/auditor.rb +1 -0
- data/lib/rosett_ai/mcp/admin/health_checker.rb +1 -0
- data/lib/rosett_ai/mcp/admin/registry.rb +1 -0
- data/lib/rosett_ai/mcp/enforcement/hook_generator.rb +27 -4
- data/lib/rosett_ai/mcp/enforcement/validator.rb +24 -3
- data/lib/rosett_ai/mcp/governance.rb +9 -0
- data/lib/rosett_ai/mcp/http_security_config.rb +22 -0
- data/lib/rosett_ai/mcp/key_hasher.rb +4 -2
- data/lib/rosett_ai/mcp/keyfile.rb +4 -0
- data/lib/rosett_ai/mcp/middleware/cors.rb +4 -0
- data/lib/rosett_ai/mcp/middleware/origin_validation.rb +1 -0
- data/lib/rosett_ai/mcp/middleware/rate_limit.rb +3 -0
- data/lib/rosett_ai/mcp/plugins.rb +1 -0
- data/lib/rosett_ai/mcp/prompts/compilation_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/prompts/compliance_prompt.rb +3 -0
- data/lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/prompts/validation_prompt.rb +2 -0
- data/lib/rosett_ai/mcp/resources/behaviour_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/config_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/design_resource.rb +1 -0
- data/lib/rosett_ai/mcp/resources/hooks_resource.rb +3 -0
- data/lib/rosett_ai/mcp/resources/provenance_resource.rb +2 -0
- data/lib/rosett_ai/mcp/resources/rules_resource.rb +1 -0
- data/lib/rosett_ai/mcp/resources/schema_resource.rb +1 -0
- data/lib/rosett_ai/mcp/server.rb +7 -1
- data/lib/rosett_ai/mcp/settings/trust_manager.rb +3 -0
- data/lib/rosett_ai/mcp/tools/adopt_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/backup_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/behaviour_display_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/behaviour_list_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/behaviour_show_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/compile_status_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/compile_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/comply_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/config_compile_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/config_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/content_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/context_query_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/design_list_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/design_show_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/doctor_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/documentation_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/engines_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/hook_install_tool.rb +7 -0
- data/lib/rosett_ai/mcp/tools/hook_preview_tool.rb +33 -8
- data/lib/rosett_ai/mcp/tools/hooks_status_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/init_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/license_status_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/project_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/provenance_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/provenance_write_tool.rb +3 -0
- data/lib/rosett_ai/mcp/tools/retrofit_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/rule_search_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/schema_get_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/tooling_tool.rb +5 -0
- data/lib/rosett_ai/mcp/tools/validate_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/workflow_execute_tool.rb +4 -0
- data/lib/rosett_ai/mcp/tools/workflow_tool.rb +5 -0
- data/lib/rosett_ai/migration/detector.rb +1 -0
- data/lib/rosett_ai/migration/nncc_config_migrator.rb +2 -0
- data/lib/rosett_ai/migration/xdg_migrator.rb +3 -1
- data/lib/rosett_ai/package_manager/apt.rb +5 -0
- data/lib/rosett_ai/package_manager/base.rb +1 -0
- data/lib/rosett_ai/package_manager/gem_backend.rb +1 -0
- data/lib/rosett_ai/packaging/variant_config.rb +12 -0
- data/lib/rosett_ai/plugins/contract.rb +1 -0
- data/lib/rosett_ai/plugins/engine_contract.rb +2 -0
- data/lib/rosett_ai/plugins/gui_contract.rb +2 -0
- data/lib/rosett_ai/plugins/mcp_contract.rb +2 -0
- data/lib/rosett_ai/plugins/registry.rb +10 -0
- data/lib/rosett_ai/policy/auditor.rb +1 -0
- data/lib/rosett_ai/policy/opt_out_scanner.rb +1 -0
- data/lib/rosett_ai/policy/tier_hierarchy.rb +2 -0
- data/lib/rosett_ai/policy/validator.rb +1 -0
- data/lib/rosett_ai/profiler.rb +7 -0
- data/lib/rosett_ai/project/drift_detector.rb +1 -0
- data/lib/rosett_ai/project/manager.rb +1 -0
- data/lib/rosett_ai/project/template_applier.rb +1 -0
- data/lib/rosett_ai/provenance/entry.rb +2 -0
- data/lib/rosett_ai/provenance/source.rb +1 -0
- data/lib/rosett_ai/provenance/store.rb +3 -0
- data/lib/rosett_ai/provenance/validator.rb +1 -0
- data/lib/rosett_ai/quorum/collector.rb +1 -0
- data/lib/rosett_ai/quorum/comparator.rb +2 -0
- data/lib/rosett_ai/quorum/strategies/adopt.rb +1 -0
- data/lib/rosett_ai/rai_config.rb +9 -0
- data/lib/rosett_ai/retrofit/engine.rb +2 -0
- data/lib/rosett_ai/retrofit/parsers/agents_md_parser.rb +8 -0
- data/lib/rosett_ai/retrofit/parsers/claude_parser.rb +10 -0
- data/lib/rosett_ai/retrofit/parsers/cursor_parser.rb +9 -0
- data/lib/rosett_ai/retrofit/secret_detector.rb +3 -0
- data/lib/rosett_ai/secrets_resolver.rb +1 -0
- data/lib/rosett_ai/session_hooks/installer.rb +130 -0
- data/lib/rosett_ai/smart_feedback/suggester.rb +4 -0
- data/lib/rosett_ai/smart_feedback/thor_middleware.rb +7 -0
- data/lib/rosett_ai/structured_logger.rb +1 -0
- data/lib/rosett_ai/telemetry/log_rotator.rb +1 -0
- data/lib/rosett_ai/telemetry.rb +1 -0
- data/lib/rosett_ai/thor/cli.rb +9 -0
- data/lib/rosett_ai/thor/tasks/adopt.rb +2 -0
- data/lib/rosett_ai/thor/tasks/backfill_user_yml.rb +207 -0
- data/lib/rosett_ai/thor/tasks/backup.rb +6 -0
- data/lib/rosett_ai/thor/tasks/behaviour.rb +12 -0
- data/lib/rosett_ai/thor/tasks/build.rb +87 -4
- data/lib/rosett_ai/thor/tasks/compile.rb +76 -32
- data/lib/rosett_ai/thor/tasks/completion.rb +9 -0
- data/lib/rosett_ai/thor/tasks/comply.rb +2 -0
- data/lib/rosett_ai/thor/tasks/config.rb +21 -5
- data/lib/rosett_ai/thor/tasks/content.rb +8 -0
- data/lib/rosett_ai/thor/tasks/dbus.rb +13 -0
- data/lib/rosett_ai/thor/tasks/design.rb +2 -0
- data/lib/rosett_ai/thor/tasks/desktop.rb +4 -0
- data/lib/rosett_ai/thor/tasks/doctor.rb +2 -0
- data/lib/rosett_ai/thor/tasks/documentation.rb +7 -0
- data/lib/rosett_ai/thor/tasks/engines.rb +8 -0
- data/lib/rosett_ai/thor/tasks/hooks.rb +8 -0
- data/lib/rosett_ai/thor/tasks/init.rb +1 -0
- data/lib/rosett_ai/thor/tasks/license.rb +8 -0
- data/lib/rosett_ai/thor/tasks/mcp.rb +40 -0
- data/lib/rosett_ai/thor/tasks/migrate.rb +2 -0
- data/lib/rosett_ai/thor/tasks/plugins.rb +15 -0
- data/lib/rosett_ai/thor/tasks/project.rb +8 -0
- data/lib/rosett_ai/thor/tasks/provenance.rb +8 -0
- data/lib/rosett_ai/thor/tasks/release.rb +8 -0
- data/lib/rosett_ai/thor/tasks/retrofit.rb +4 -0
- data/lib/rosett_ai/thor/tasks/validate.rb +1 -0
- data/lib/rosett_ai/thor/tasks/workflow.rb +14 -0
- data/lib/rosett_ai/tooling/version_checker.rb +1 -0
- data/lib/rosett_ai/ui/accessible_tui.rb +18 -0
- data/lib/rosett_ai/ui/base.rb +3 -0
- data/lib/rosett_ai/ui/gtk4.rb +19 -0
- data/lib/rosett_ai/ui/kde.rb +1 -0
- data/lib/rosett_ai/ui/qt6.rb +1 -0
- data/lib/rosett_ai/ui/registry.rb +15 -0
- data/lib/rosett_ai/ui/tui.rb +22 -0
- data/lib/rosett_ai/validators/behaviour_validator.rb +1 -0
- data/lib/rosett_ai/validators/design_validator.rb +2 -0
- data/lib/rosett_ai/validators/schema_validator.rb +4 -0
- data/lib/rosett_ai/validators/tooling_validator.rb +1 -0
- data/lib/rosett_ai/version.rb +2 -1
- data/lib/rosett_ai/version_consistency_checker.rb +6 -0
- data/lib/rosett_ai/workflow/engine.rb +1 -0
- data/lib/rosett_ai/workflow/manager.rb +1 -0
- data/lib/rosett_ai/workflow/schema_validator.rb +2 -0
- data/lib/rosett_ai/workflow/step_runner.rb +1 -0
- data/lib/rosett_ai/workflow/steps/rai_step.rb +1 -0
- data/lib/rosett_ai/yaml_loader.rb +2 -0
- data/lib/rosett_ai.rb +2 -0
- data/lib/scripts/generated/docker_hub_tags.rb +2 -0
- data/locales/ar.yml +2 -0
- data/locales/en.yml +5 -0
- data/locales/fr.yml +2 -0
- metadata +9 -189
- data/.ai-provenance.yml +0 -119
- data/.debride_whitelist +0 -186
- data/.fasterer.yml +0 -29
- data/.mdl_style.rb +0 -10
- data/.mdlrc +0 -3
- data/.mutant.yml +0 -49
- data/.namespace-allowlist +0 -42
- data/.reek.yml +0 -1040
- data/.rosett-ai/config.yml +0 -3
- data/.rspec +0 -5
- data/.rubocop.yml +0 -380
- data/.ruby-version +0 -1
- data/.yamllint +0 -51
- data/.yardopts +0 -12
- data/AI-DISCLOSURE.md +0 -48
- data/CLAUDE.md +0 -141
- data/CONTRIBUTING.md +0 -734
- data/INSTALL.md +0 -154
- data/LICENSE.md +0 -675
- data/QUICKSTART.md +0 -73
- data/Rakefile +0 -200
- data/SECURITY.md +0 -114
- data/cliff.toml +0 -52
- data/conf/behaviour/.gitkeep +0 -0
- data/conf/design/aaif_alignment.yml +0 -181
- data/conf/design/ab_testing.yml +0 -172
- data/conf/design/accessibility.yml +0 -84
- data/conf/design/ai_authorship.yml +0 -210
- data/conf/design/ai_provenance.yml +0 -224
- data/conf/design/ai_tool_configuration.yml +0 -207
- data/conf/design/architecture.yml +0 -139
- data/conf/design/autocompletion.yml +0 -115
- data/conf/design/backward_compatibility.yml +0 -112
- data/conf/design/behaviour_composition.yml +0 -246
- data/conf/design/build_rake_extraction.yml +0 -57
- data/conf/design/ci_pipeline.yml +0 -100
- data/conf/design/claude_code_configuration.yml +0 -157
- data/conf/design/compiler.yml +0 -128
- data/conf/design/comply.yml +0 -153
- data/conf/design/content_packs.yml +0 -84
- data/conf/design/desktop_integration.yml +0 -289
- data/conf/design/distribution.yml +0 -216
- data/conf/design/doctor.yml +0 -184
- data/conf/design/documentation.yml +0 -152
- data/conf/design/engine_architecture.yml +0 -257
- data/conf/design/error_handling.yml +0 -103
- data/conf/design/feature_flags.yml +0 -142
- data/conf/design/git_hooks.yml +0 -165
- data/conf/design/gui_plugins.yml +0 -475
- data/conf/design/i18n.yml +0 -84
- data/conf/design/integration_testing.yml +0 -56
- data/conf/design/licensing_system.yml +0 -88
- data/conf/design/lifecycle_management.yml +0 -208
- data/conf/design/mcp_integration.yml +0 -207
- data/conf/design/mcp_settings.yml +0 -126
- data/conf/design/migration.yml +0 -56
- data/conf/design/monitoring_observability.yml +0 -194
- data/conf/design/namespace_cleanup.yml +0 -145
- data/conf/design/plugin_test_segregation.yml +0 -145
- data/conf/design/policy_management.yml +0 -229
- data/conf/design/project_management.yml +0 -183
- data/conf/design/rai_mcp_asset_discovery.yml +0 -164
- data/conf/design/rai_mcp_server.yml +0 -605
- data/conf/design/release_management.yml +0 -117
- data/conf/design/retrofit.yml +0 -199
- data/conf/design/retrospective_analyzer.yml +0 -79
- data/conf/design/scope_hierarchy.yml +0 -352
- data/conf/design/security.yml +0 -115
- data/conf/design/session_retrospective.yml +0 -85
- data/conf/design/smart_ui_feedback.yml +0 -89
- data/conf/design/structured_logging.yml +0 -148
- data/conf/design/styles.yml +0 -123
- data/conf/design/test_peer_review.yml +0 -89
- data/conf/design/testing.yml +0 -136
- data/conf/design/threat_model.yml +0 -108
- data/conf/design/ui_framework.yml +0 -111
- data/conf/design/usage_optimization.yml +0 -122
- data/conf/design/version_management.yml +0 -60
- data/conf/design/workflow.yml +0 -227
- data/doc/AAIF_POSITIONING.md +0 -58
- data/doc/ADOPT.md +0 -224
- data/doc/AI_PROVENANCE.md +0 -139
- data/doc/ARCHITECTURE.md +0 -920
- data/doc/BEHAVIOUR.md +0 -409
- data/doc/BUILD.md +0 -138
- data/doc/CI_CD_RECIPES.md +0 -171
- data/doc/CLAUDE_SESSIONS_MOVED.md +0 -16
- data/doc/COMMAND_ANALYSIS.md +0 -229
- data/doc/CONFIGURATION.md +0 -281
- data/doc/DESIGN_AUDIT.md +0 -235
- data/doc/DESIGN_PEER_REVIEW.md +0 -771
- data/doc/DESKTOP.md +0 -447
- data/doc/ENGINES.md +0 -567
- data/doc/ENGINE_DEVELOPMENT_GUIDE.md +0 -417
- data/doc/FEATURE_AUDIT.md +0 -218
- data/doc/IMPLEMENTATION_PLAN.md +0 -669
- data/doc/INCIDENT_REPORT_2026-02-02.md +0 -251
- data/doc/MIGRATION_GUIDE.md +0 -88
- data/doc/PACKAGING.md +0 -232
- data/doc/PROJECT_DASHBOARD.md +0 -153
- data/doc/PULP_DEPLOYMENT.md +0 -164
- data/doc/QUALITY_FIX_SUMMARY.md +0 -110
- data/doc/QUICK_START.md +0 -162
- data/doc/REEK_CONFIGURATION.md +0 -166
- data/doc/REFERENCE.md +0 -253
- data/doc/REFERENCES.md +0 -324
- data/doc/SECURITY_REVIEW_CHECKLIST.md +0 -72
- data/doc/SESSION_2026-02-28_GTK4_HARDENING.md +0 -359
- data/doc/SETUP.md +0 -202
- data/doc/TEST_PEER_REVIEW.md +0 -152
- data/doc/THREAT_MODEL.md +0 -230
- data/doc/USAGE.md +0 -545
- data/doc/USER_MANUAL.md +0 -585
- data/doc/ai_test_review_checklist.md +0 -110
- data/doc/changes/2026-02-18-packaging-fpm.md +0 -155
- data/doc/changes/2026-02-19-testing-infrastructure.md +0 -221
- data/doc/changes/2026-02-20-security-implementation.md +0 -281
- data/doc/changes/2026-02-20-styles-implementation.md +0 -220
- data/doc/changes/2026-02-21-architecture-completion.md +0 -95
- data/doc/changes/2026-02-21-architecture-ui-layer.md +0 -253
- data/doc/changes/2026-02-21-cc-config-implementation.md +0 -108
- data/doc/changes/2026-02-21-ci-pipeline-implementation.md +0 -214
- data/doc/changes/2026-02-21-compiler-multi-target-pipeline.md +0 -241
- data/doc/changes/2026-02-21-config-design-show-commands.md +0 -61
- data/doc/changes/2026-02-21-design-implementation-overview.md +0 -455
- data/doc/changes/2026-02-21-lifecycle-management.md +0 -196
- data/doc/changes/2026-02-21-path-resolver.md +0 -128
- data/doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md +0 -45
- data/doc/changes/2026-03-01-ci-bundler-strategy.md +0 -120
- data/doc/changes/2026-03-20-security-hardening-phase2.md +0 -163
- data/doc/context/SESSION-HANDOFF.md +0 -69
- data/doc/context/ai-engine-usage-trends-2026.md +0 -80
- data/doc/context/plan-pluggable-engines.md +0 -590
- data/doc/decisions/001-flog-deferred.md +0 -32
- data/doc/decisions/002-path-resolution-strategy.md +0 -158
- data/doc/decisions/003-ui-adapter-selection.md +0 -193
- data/doc/decisions/004-design-document-validation.md +0 -179
- data/doc/decisions/005-package-splitting-strategy.md +0 -200
- data/doc/decisions/006-multi-engine-architecture.md +0 -147
- data/doc/decisions/007-engine-agnostic-pivot.md +0 -219
- data/doc/decisions/008-ci-bundler-strategy.md +0 -129
- data/doc/decisions/009-core-only-v1-release.md +0 -60
- data/doc/decisions/010-engine-debian-packaging.md +0 -66
- data/doc/decisions/011-context-aware-cli.md +0 -71
- data/doc/dependency_decisions.yml +0 -247
- data/doc/issues/001-wrapper-missing-environment-variables.md +0 -197
- data/doc/issues/002-embedded-ruby-wrong-prefix.md +0 -217
- data/doc/issues/003-smoke-test-false-positive.md +0 -127
- data/doc/issues/004-market-research-design-updates.md +0 -109
- data/doc/issues/005-compile-scope-coexistence.md +0 -161
- data/doc/locales/.gitkeep +0 -0
- data/doc/man/rai.1.ronn +0 -505
- data/doc/operations/packaging.md +0 -133
- data/doc/operations/rosett-ai-release.md +0 -65
- data/doc/reference/error-catalog.md +0 -107
- data/doc/reference/rosett-ai-technical-reference.pdf +0 -0
- data/doc/reference/src/Pictures/cover.jpg +0 -0
- data/doc/reference/src/Pictures/head1.jpg +0 -0
- data/doc/reference/src/Pictures/head2.jpg +0 -0
- data/doc/reference/src/Pictures/head3.jpg +0 -0
- data/doc/reference/src/Pictures/head4.jpg +0 -0
- data/doc/reference/src/Pictures/head5.jpg +0 -0
- data/doc/reference/src/Pictures/head6.jpg +0 -0
- data/doc/reference/src/Pictures/head7.jpg +0 -0
- data/doc/reference/src/Pictures/head8.jpg +0 -0
- data/doc/reference/src/StyleInd.ist +0 -4
- data/doc/reference/src/bibliography.bib +0 -79
- data/doc/reference/src/main.tex +0 -1288
- data/doc/reference/src/structure.tex +0 -303
- data/doc/rosett-ai-bookmarks.html +0 -301
- data/kitchen.yml +0 -46
- data/lib/rosett_ai/mcp/enforcement/.gitkeep +0 -0
- data/locales/.gitkeep +0 -0
- data/packaging/build-engine-deb.sh +0 -81
- data/packaging/scripts/postinst +0 -17
- data/packaging/scripts/postrm +0 -19
- data/packaging/scripts/prerm +0 -10
- data/packaging/wrapper.sh.template +0 -38
- data/rosett-ai.gemspec +0 -63
- data/rules/.gitkeep +0 -0
- data/scripts/publish/pulp_upload.sh +0 -123
- data/settings.json +0 -29
data/lib/rosett_ai/ui/tui.rb
CHANGED
|
@@ -20,15 +20,29 @@ module RosettAi
|
|
|
20
20
|
Rainbow.enabled = false if ENV.key?('NO_COLOR')
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
# Render content in the UI backend.
|
|
24
|
+
#
|
|
25
|
+
# @param content [Object] the content
|
|
26
|
+
# @return [void]
|
|
23
27
|
def render(content)
|
|
24
28
|
$stdout.puts(content)
|
|
25
29
|
end
|
|
26
30
|
|
|
31
|
+
# Render a table in the UI backend.
|
|
32
|
+
#
|
|
33
|
+
# @param headers [Object] the headers
|
|
34
|
+
# @param rows [Object] the rows
|
|
35
|
+
# @return [void]
|
|
27
36
|
def display_table(headers, rows)
|
|
28
37
|
table = ::Terminal::Table.new(headings: headers, rows: rows)
|
|
29
38
|
$stdout.puts(table)
|
|
30
39
|
end
|
|
31
40
|
|
|
41
|
+
# Prompt the user for interactive input.
|
|
42
|
+
#
|
|
43
|
+
# @param question [Object] the question
|
|
44
|
+
# @param choices [Object] the choices
|
|
45
|
+
# @return [String]
|
|
32
46
|
def prompt_user(question, choices: nil)
|
|
33
47
|
prompt = TTY::Prompt.new
|
|
34
48
|
if choices
|
|
@@ -38,6 +52,10 @@ module RosettAi
|
|
|
38
52
|
end
|
|
39
53
|
end
|
|
40
54
|
|
|
55
|
+
# Display a spinner during a long-running operation.
|
|
56
|
+
#
|
|
57
|
+
# @param message [Object] the message
|
|
58
|
+
# @return [void]
|
|
41
59
|
def show_spinner(message)
|
|
42
60
|
spinner = TTY::Spinner.new("[:spinner] #{message}", format: :dots)
|
|
43
61
|
spinner.auto_spin
|
|
@@ -49,6 +67,10 @@ module RosettAi
|
|
|
49
67
|
raise e
|
|
50
68
|
end
|
|
51
69
|
|
|
70
|
+
# Announce a message to the user via the UI backend.
|
|
71
|
+
#
|
|
72
|
+
# @param message [Object] the message
|
|
73
|
+
# @return [void]
|
|
52
74
|
def announce(message)
|
|
53
75
|
warn(message)
|
|
54
76
|
end
|
|
@@ -10,6 +10,7 @@ module RosettAi
|
|
|
10
10
|
# Thin wrapper around SchemaValidator. The SCHEMA_PATH constant is preserved
|
|
11
11
|
# for backward compatibility with existing specs and code that references it.
|
|
12
12
|
class BehaviourValidator < SchemaValidator
|
|
13
|
+
# @return [String] Path to the JSON Schema file used for validation.
|
|
13
14
|
SCHEMA_PATH = 'conf/schemas/behaviour_schema.json'
|
|
14
15
|
|
|
15
16
|
def initialize
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
# Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds
|
|
5
5
|
|
|
6
6
|
module RosettAi
|
|
7
|
+
# Schema-based YAML validators for behaviours, designs, tooling.
|
|
7
8
|
module Validators
|
|
8
9
|
# Validates design documents against the design JSON Schema.
|
|
9
10
|
class DesignValidator < SchemaValidator
|
|
11
|
+
# @return [String] Path to the JSON Schema file used for validation.
|
|
10
12
|
SCHEMA_PATH = 'conf/schemas/design_schema.json'
|
|
11
13
|
|
|
12
14
|
def initialize
|
|
@@ -7,6 +7,7 @@ module RosettAi
|
|
|
7
7
|
module Validators
|
|
8
8
|
# Validates tooling configuration files against the tooling JSON Schema.
|
|
9
9
|
class ToolingValidator < SchemaValidator
|
|
10
|
+
# @return [String] Path to the JSON Schema file used for validation.
|
|
10
11
|
SCHEMA_PATH = 'conf/schemas/tooling_schema.json'
|
|
11
12
|
|
|
12
13
|
def initialize
|
data/lib/rosett_ai/version.rb
CHANGED
|
@@ -12,12 +12,16 @@ module RosettAi
|
|
|
12
12
|
# Scans non-binary project files for version strings matching the MAJOR.MINOR
|
|
13
13
|
# series (e.g. 3.3.x) and reports any that don't match the expected PATCH level.
|
|
14
14
|
class VersionConsistencyChecker
|
|
15
|
+
# @return [Array] Directory names excluded from consistency checking.
|
|
15
16
|
EXCLUDED_DIRS = ['vendor', 'tmp', 'coverage', '.git', '.bundle'].freeze
|
|
17
|
+
# @return [Array] Filenames excluded from consistency checking.
|
|
16
18
|
EXCLUDED_FILES = ['.ruby-version', 'CHANGELOG.md', 'Gemfile.lock',
|
|
17
19
|
'Gemfile.integration.lock',
|
|
18
20
|
'spec/rosett_ai/version_consistency_checker_spec.rb'].freeze
|
|
21
|
+
# @return [Array] Filename prefixes excluded from consistency checking.
|
|
19
22
|
EXCLUDED_PREFIXES = ['doc/changes/', 'doc/claude-sessions/', 'doc/INCIDENT_REPORT',
|
|
20
23
|
'doc/PACKAGING', 'doc/issues/', 'doc/context/', 'conf/design/'].freeze
|
|
24
|
+
# @return [Array] File extensions excluded from consistency checking.
|
|
21
25
|
EXCLUDED_EXTENSIONS = ['.aux', '.toc', '.out', '.ptc', '.log', '.idx', '.ind',
|
|
22
26
|
'.ilg', '.bbl', '.blg', '.bcf', '.fls', '.fdb_latexmk',
|
|
23
27
|
'.run.xml', '.synctex.gz'].freeze
|
|
@@ -29,6 +33,8 @@ module RosettAi
|
|
|
29
33
|
@results = { expected_version: nil, references: [], mismatches: [], consistent: true }
|
|
30
34
|
end
|
|
31
35
|
|
|
36
|
+
# Run the check and return results.
|
|
37
|
+
# @return [Hash]
|
|
32
38
|
def check
|
|
33
39
|
version = read_ruby_version
|
|
34
40
|
@results = { expected_version: version, references: [], mismatches: [], consistent: true }
|
|
@@ -15,7 +15,9 @@ module RosettAi
|
|
|
15
15
|
# @author hugo
|
|
16
16
|
# @author claude
|
|
17
17
|
class SchemaValidator
|
|
18
|
+
# @return [Integer] Maximum number of steps allowed in a workflow.
|
|
18
19
|
MAX_STEPS = 50
|
|
20
|
+
# @return [Object] Path to the JSON Schema file used for validation.
|
|
19
21
|
SCHEMA_PATH = File.expand_path('../../../conf/schemas/workflow_schema.json', __dir__)
|
|
20
22
|
|
|
21
23
|
# @param data [Hash] parsed workflow YAML
|
|
@@ -12,7 +12,9 @@ module RosettAi
|
|
|
12
12
|
# denial-of-service via maliciously crafted YAML payloads.
|
|
13
13
|
module YamlLoader
|
|
14
14
|
MAX_FILE_SIZE = 1_048_576 # 1 MB
|
|
15
|
+
# @return [Integer] Maximum nesting depth for YAML loading.
|
|
15
16
|
MAX_DEPTH = 10
|
|
17
|
+
# @return [Integer] Maximum number of keys allowed in loaded YAML.
|
|
16
18
|
MAX_KEY_COUNT = 1000
|
|
17
19
|
|
|
18
20
|
# Loads and validates a YAML file with bounds checking.
|
data/lib/rosett_ai.rb
CHANGED
|
@@ -75,6 +75,8 @@ module RosettAi
|
|
|
75
75
|
class GitHooksError < Error; end
|
|
76
76
|
# Raised when MCP server or admin operations fail.
|
|
77
77
|
class McpError < Error; end
|
|
78
|
+
# Raised when Claude Code session hook installation fails.
|
|
79
|
+
class SessionHooksError < Error; end
|
|
78
80
|
|
|
79
81
|
# @!endgroup
|
|
80
82
|
|
|
@@ -23,7 +23,9 @@ require 'optparse'
|
|
|
23
23
|
|
|
24
24
|
# Queries Docker Hub Registry API v2 for official image tags.
|
|
25
25
|
module DockerHub
|
|
26
|
+
# Base URL for the Docker Hub Registry API v2.
|
|
26
27
|
REGISTRY_API = 'https://registry.hub.docker.com/v2'
|
|
28
|
+
# Number of tags to request per paginated API call.
|
|
27
29
|
PAGE_SIZE = 100
|
|
28
30
|
|
|
29
31
|
# Fetch tags for a library (official) image from Docker Hub.
|
data/locales/ar.yml
CHANGED
data/locales/en.yml
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
+
# SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be>
|
|
3
|
+
# SPDX-License-Identifier: GPL-3.0-only
|
|
2
4
|
en:
|
|
3
5
|
rosett_ai:
|
|
4
6
|
meta:
|
|
@@ -29,6 +31,9 @@ en:
|
|
|
29
31
|
target_deprecated: "[DEPRECATED] --target is deprecated, use --engine instead"
|
|
30
32
|
target_deprecated_strict: "--target is deprecated. Use --engine instead (--strict mode)"
|
|
31
33
|
engine_and_target_conflict: "Cannot use both --engine and --target. Use --engine only."
|
|
34
|
+
deduplicated: "Deduplicated"
|
|
35
|
+
deduplicated_detail: "Deduplicated: %{filename} (identical to global)"
|
|
36
|
+
scope_project_no_project: "Cannot use --scope project: no project detected (no .rosett-ai/ directory found)"
|
|
32
37
|
config:
|
|
33
38
|
scope_not_found: "Scope file not found: %{path}. Valid scopes: %{scopes}"
|
|
34
39
|
no_scopes: "No scope files found in conf/claude_code/"
|
data/locales/fr.yml
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rosett-ai
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Hugo Antonio Sepulveda Manriquez
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: ed25519
|
|
@@ -254,95 +253,18 @@ email:
|
|
|
254
253
|
- query@neatnerds.be
|
|
255
254
|
executables:
|
|
256
255
|
- rai
|
|
256
|
+
- raictl
|
|
257
257
|
extensions: []
|
|
258
258
|
extra_rdoc_files: []
|
|
259
259
|
files:
|
|
260
|
-
- ".ai-provenance.yml"
|
|
261
|
-
- ".debride_whitelist"
|
|
262
|
-
- ".fasterer.yml"
|
|
263
|
-
- ".mdl_style.rb"
|
|
264
|
-
- ".mdlrc"
|
|
265
|
-
- ".mutant.yml"
|
|
266
|
-
- ".namespace-allowlist"
|
|
267
|
-
- ".reek.yml"
|
|
268
|
-
- ".rosett-ai/config.yml"
|
|
269
|
-
- ".rspec"
|
|
270
|
-
- ".rubocop.yml"
|
|
271
|
-
- ".ruby-version"
|
|
272
|
-
- ".yamllint"
|
|
273
|
-
- ".yardopts"
|
|
274
|
-
- AI-DISCLOSURE.md
|
|
275
260
|
- CHANGELOG.md
|
|
276
|
-
- CLAUDE.md
|
|
277
|
-
- CONTRIBUTING.md
|
|
278
|
-
- INSTALL.md
|
|
279
261
|
- LICENSE
|
|
280
|
-
- LICENSE.md
|
|
281
|
-
- QUICKSTART.md
|
|
282
262
|
- README.md
|
|
283
|
-
- Rakefile
|
|
284
|
-
- SECURITY.md
|
|
285
263
|
- bin/rai
|
|
286
|
-
-
|
|
264
|
+
- bin/raictl
|
|
287
265
|
- conf/adopt_redactions.yml
|
|
288
|
-
- conf/behaviour/.gitkeep
|
|
289
266
|
- conf/compliance/cra_rules.yml
|
|
290
267
|
- conf/compliance/license_rules.yml
|
|
291
|
-
- conf/design/aaif_alignment.yml
|
|
292
|
-
- conf/design/ab_testing.yml
|
|
293
|
-
- conf/design/accessibility.yml
|
|
294
|
-
- conf/design/ai_authorship.yml
|
|
295
|
-
- conf/design/ai_provenance.yml
|
|
296
|
-
- conf/design/ai_tool_configuration.yml
|
|
297
|
-
- conf/design/architecture.yml
|
|
298
|
-
- conf/design/autocompletion.yml
|
|
299
|
-
- conf/design/backward_compatibility.yml
|
|
300
|
-
- conf/design/behaviour_composition.yml
|
|
301
|
-
- conf/design/build_rake_extraction.yml
|
|
302
|
-
- conf/design/ci_pipeline.yml
|
|
303
|
-
- conf/design/claude_code_configuration.yml
|
|
304
|
-
- conf/design/compiler.yml
|
|
305
|
-
- conf/design/comply.yml
|
|
306
|
-
- conf/design/content_packs.yml
|
|
307
|
-
- conf/design/desktop_integration.yml
|
|
308
|
-
- conf/design/distribution.yml
|
|
309
|
-
- conf/design/doctor.yml
|
|
310
|
-
- conf/design/documentation.yml
|
|
311
|
-
- conf/design/engine_architecture.yml
|
|
312
|
-
- conf/design/error_handling.yml
|
|
313
|
-
- conf/design/feature_flags.yml
|
|
314
|
-
- conf/design/git_hooks.yml
|
|
315
|
-
- conf/design/gui_plugins.yml
|
|
316
|
-
- conf/design/i18n.yml
|
|
317
|
-
- conf/design/integration_testing.yml
|
|
318
|
-
- conf/design/licensing_system.yml
|
|
319
|
-
- conf/design/lifecycle_management.yml
|
|
320
|
-
- conf/design/mcp_integration.yml
|
|
321
|
-
- conf/design/mcp_settings.yml
|
|
322
|
-
- conf/design/migration.yml
|
|
323
|
-
- conf/design/monitoring_observability.yml
|
|
324
|
-
- conf/design/namespace_cleanup.yml
|
|
325
|
-
- conf/design/plugin_test_segregation.yml
|
|
326
|
-
- conf/design/policy_management.yml
|
|
327
|
-
- conf/design/project_management.yml
|
|
328
|
-
- conf/design/rai_mcp_asset_discovery.yml
|
|
329
|
-
- conf/design/rai_mcp_server.yml
|
|
330
|
-
- conf/design/release_management.yml
|
|
331
|
-
- conf/design/retrofit.yml
|
|
332
|
-
- conf/design/retrospective_analyzer.yml
|
|
333
|
-
- conf/design/scope_hierarchy.yml
|
|
334
|
-
- conf/design/security.yml
|
|
335
|
-
- conf/design/session_retrospective.yml
|
|
336
|
-
- conf/design/smart_ui_feedback.yml
|
|
337
|
-
- conf/design/structured_logging.yml
|
|
338
|
-
- conf/design/styles.yml
|
|
339
|
-
- conf/design/test_peer_review.yml
|
|
340
|
-
- conf/design/testing.yml
|
|
341
|
-
- conf/design/threat_model.yml
|
|
342
|
-
- conf/design/ui_framework.yml
|
|
343
|
-
- conf/design/usage_optimization.yml
|
|
344
|
-
- conf/design/version_management.yml
|
|
345
|
-
- conf/design/workflow.yml
|
|
346
268
|
- conf/mcp/server_defaults.yml
|
|
347
269
|
- conf/mcp/trust.yml
|
|
348
270
|
- conf/packaging/core.yml
|
|
@@ -355,6 +277,7 @@ files:
|
|
|
355
277
|
- conf/review/questionnaire.yml
|
|
356
278
|
- conf/review/rosett-ai-core.yml
|
|
357
279
|
- conf/schemas/ai_config_schema.json
|
|
280
|
+
- conf/schemas/autoqueue.schema.json
|
|
358
281
|
- conf/schemas/behaviour_schema.json
|
|
359
282
|
- conf/schemas/compliance_rule_schema.json
|
|
360
283
|
- conf/schemas/content_pack_manifest_schema.json
|
|
@@ -376,98 +299,6 @@ files:
|
|
|
376
299
|
- conf/tooling/tools.yml
|
|
377
300
|
- dist/rosett-ai-mcp.service
|
|
378
301
|
- dist/rosett-ai-mcp.yml.default
|
|
379
|
-
- doc/AAIF_POSITIONING.md
|
|
380
|
-
- doc/ADOPT.md
|
|
381
|
-
- doc/AI_PROVENANCE.md
|
|
382
|
-
- doc/ARCHITECTURE.md
|
|
383
|
-
- doc/BEHAVIOUR.md
|
|
384
|
-
- doc/BUILD.md
|
|
385
|
-
- doc/CI_CD_RECIPES.md
|
|
386
|
-
- doc/CLAUDE_SESSIONS_MOVED.md
|
|
387
|
-
- doc/COMMAND_ANALYSIS.md
|
|
388
|
-
- doc/CONFIGURATION.md
|
|
389
|
-
- doc/DESIGN_AUDIT.md
|
|
390
|
-
- doc/DESIGN_PEER_REVIEW.md
|
|
391
|
-
- doc/DESKTOP.md
|
|
392
|
-
- doc/ENGINES.md
|
|
393
|
-
- doc/ENGINE_DEVELOPMENT_GUIDE.md
|
|
394
|
-
- doc/FEATURE_AUDIT.md
|
|
395
|
-
- doc/IMPLEMENTATION_PLAN.md
|
|
396
|
-
- doc/INCIDENT_REPORT_2026-02-02.md
|
|
397
|
-
- doc/MIGRATION_GUIDE.md
|
|
398
|
-
- doc/PACKAGING.md
|
|
399
|
-
- doc/PROJECT_DASHBOARD.md
|
|
400
|
-
- doc/PULP_DEPLOYMENT.md
|
|
401
|
-
- doc/QUALITY_FIX_SUMMARY.md
|
|
402
|
-
- doc/QUICK_START.md
|
|
403
|
-
- doc/REEK_CONFIGURATION.md
|
|
404
|
-
- doc/REFERENCE.md
|
|
405
|
-
- doc/REFERENCES.md
|
|
406
|
-
- doc/SECURITY_REVIEW_CHECKLIST.md
|
|
407
|
-
- doc/SESSION_2026-02-28_GTK4_HARDENING.md
|
|
408
|
-
- doc/SETUP.md
|
|
409
|
-
- doc/TEST_PEER_REVIEW.md
|
|
410
|
-
- doc/THREAT_MODEL.md
|
|
411
|
-
- doc/USAGE.md
|
|
412
|
-
- doc/USER_MANUAL.md
|
|
413
|
-
- doc/ai_test_review_checklist.md
|
|
414
|
-
- doc/changes/2026-02-18-packaging-fpm.md
|
|
415
|
-
- doc/changes/2026-02-19-testing-infrastructure.md
|
|
416
|
-
- doc/changes/2026-02-20-security-implementation.md
|
|
417
|
-
- doc/changes/2026-02-20-styles-implementation.md
|
|
418
|
-
- doc/changes/2026-02-21-architecture-completion.md
|
|
419
|
-
- doc/changes/2026-02-21-architecture-ui-layer.md
|
|
420
|
-
- doc/changes/2026-02-21-cc-config-implementation.md
|
|
421
|
-
- doc/changes/2026-02-21-ci-pipeline-implementation.md
|
|
422
|
-
- doc/changes/2026-02-21-compiler-multi-target-pipeline.md
|
|
423
|
-
- doc/changes/2026-02-21-config-design-show-commands.md
|
|
424
|
-
- doc/changes/2026-02-21-design-implementation-overview.md
|
|
425
|
-
- doc/changes/2026-02-21-lifecycle-management.md
|
|
426
|
-
- doc/changes/2026-02-21-path-resolver.md
|
|
427
|
-
- doc/changes/2026-02-24-ci-tmpdir-mutant-fetch.md
|
|
428
|
-
- doc/changes/2026-03-01-ci-bundler-strategy.md
|
|
429
|
-
- doc/changes/2026-03-20-security-hardening-phase2.md
|
|
430
|
-
- doc/context/SESSION-HANDOFF.md
|
|
431
|
-
- doc/context/ai-engine-usage-trends-2026.md
|
|
432
|
-
- doc/context/plan-pluggable-engines.md
|
|
433
|
-
- doc/decisions/001-flog-deferred.md
|
|
434
|
-
- doc/decisions/002-path-resolution-strategy.md
|
|
435
|
-
- doc/decisions/003-ui-adapter-selection.md
|
|
436
|
-
- doc/decisions/004-design-document-validation.md
|
|
437
|
-
- doc/decisions/005-package-splitting-strategy.md
|
|
438
|
-
- doc/decisions/006-multi-engine-architecture.md
|
|
439
|
-
- doc/decisions/007-engine-agnostic-pivot.md
|
|
440
|
-
- doc/decisions/008-ci-bundler-strategy.md
|
|
441
|
-
- doc/decisions/009-core-only-v1-release.md
|
|
442
|
-
- doc/decisions/010-engine-debian-packaging.md
|
|
443
|
-
- doc/decisions/011-context-aware-cli.md
|
|
444
|
-
- doc/dependency_decisions.yml
|
|
445
|
-
- doc/issues/001-wrapper-missing-environment-variables.md
|
|
446
|
-
- doc/issues/002-embedded-ruby-wrong-prefix.md
|
|
447
|
-
- doc/issues/003-smoke-test-false-positive.md
|
|
448
|
-
- doc/issues/004-market-research-design-updates.md
|
|
449
|
-
- doc/issues/005-compile-scope-coexistence.md
|
|
450
|
-
- doc/locales/.gitkeep
|
|
451
|
-
- doc/man/rai.1.ronn
|
|
452
|
-
- doc/operations/packaging.md
|
|
453
|
-
- doc/operations/rosett-ai-release.md
|
|
454
|
-
- doc/reference/error-catalog.md
|
|
455
|
-
- doc/reference/rosett-ai-technical-reference.pdf
|
|
456
|
-
- doc/reference/src/Pictures/cover.jpg
|
|
457
|
-
- doc/reference/src/Pictures/head1.jpg
|
|
458
|
-
- doc/reference/src/Pictures/head2.jpg
|
|
459
|
-
- doc/reference/src/Pictures/head3.jpg
|
|
460
|
-
- doc/reference/src/Pictures/head4.jpg
|
|
461
|
-
- doc/reference/src/Pictures/head5.jpg
|
|
462
|
-
- doc/reference/src/Pictures/head6.jpg
|
|
463
|
-
- doc/reference/src/Pictures/head7.jpg
|
|
464
|
-
- doc/reference/src/Pictures/head8.jpg
|
|
465
|
-
- doc/reference/src/StyleInd.ist
|
|
466
|
-
- doc/reference/src/bibliography.bib
|
|
467
|
-
- doc/reference/src/main.tex
|
|
468
|
-
- doc/reference/src/structure.tex
|
|
469
|
-
- doc/rosett-ai-bookmarks.html
|
|
470
|
-
- kitchen.yml
|
|
471
302
|
- lib/rosett_ai.rb
|
|
472
303
|
- lib/rosett_ai/adopter/executor_resolver.rb
|
|
473
304
|
- lib/rosett_ai/adopter/local_analysis_collector.rb
|
|
@@ -584,7 +415,6 @@ files:
|
|
|
584
415
|
- lib/rosett_ai/mcp/admin/health_checker.rb
|
|
585
416
|
- lib/rosett_ai/mcp/admin/registry.rb
|
|
586
417
|
- lib/rosett_ai/mcp/admin/schema_validator.rb
|
|
587
|
-
- lib/rosett_ai/mcp/enforcement/.gitkeep
|
|
588
418
|
- lib/rosett_ai/mcp/enforcement/hook_generator.rb
|
|
589
419
|
- lib/rosett_ai/mcp/enforcement/validator.rb
|
|
590
420
|
- lib/rosett_ai/mcp/governance.rb
|
|
@@ -696,6 +526,7 @@ files:
|
|
|
696
526
|
- lib/rosett_ai/retrofit/scanner.rb
|
|
697
527
|
- lib/rosett_ai/retrofit/secret_detector.rb
|
|
698
528
|
- lib/rosett_ai/secrets_resolver.rb
|
|
529
|
+
- lib/rosett_ai/session_hooks/installer.rb
|
|
699
530
|
- lib/rosett_ai/smart_feedback/suggester.rb
|
|
700
531
|
- lib/rosett_ai/smart_feedback/thor_middleware.rb
|
|
701
532
|
- lib/rosett_ai/structured_logger.rb
|
|
@@ -707,6 +538,7 @@ files:
|
|
|
707
538
|
- lib/rosett_ai/text_sanitizer.rb
|
|
708
539
|
- lib/rosett_ai/thor/cli.rb
|
|
709
540
|
- lib/rosett_ai/thor/tasks/adopt.rb
|
|
541
|
+
- lib/rosett_ai/thor/tasks/backfill_user_yml.rb
|
|
710
542
|
- lib/rosett_ai/thor/tasks/backup.rb
|
|
711
543
|
- lib/rosett_ai/thor/tasks/behaviour.rb
|
|
712
544
|
- lib/rosett_ai/thor/tasks/build.rb
|
|
@@ -765,19 +597,9 @@ files:
|
|
|
765
597
|
- lib/rubocop/cop/rosett_ai/unsafe_yaml_load.rb
|
|
766
598
|
- lib/rubocop/rosett_ai.rb
|
|
767
599
|
- lib/scripts/generated/docker_hub_tags.rb
|
|
768
|
-
- locales/.gitkeep
|
|
769
600
|
- locales/ar.yml
|
|
770
601
|
- locales/en.yml
|
|
771
602
|
- locales/fr.yml
|
|
772
|
-
- packaging/build-engine-deb.sh
|
|
773
|
-
- packaging/scripts/postinst
|
|
774
|
-
- packaging/scripts/postrm
|
|
775
|
-
- packaging/scripts/prerm
|
|
776
|
-
- packaging/wrapper.sh.template
|
|
777
|
-
- rosett-ai.gemspec
|
|
778
|
-
- rules/.gitkeep
|
|
779
|
-
- scripts/publish/pulp_upload.sh
|
|
780
|
-
- settings.json
|
|
781
603
|
- share/applications/be.neatnerds.rosettai.desktop
|
|
782
604
|
- share/dbus-1/interfaces/be.neatnerds.rosettai.xml
|
|
783
605
|
- share/dbus-1/services/be.neatnerds.rosettai.service
|
|
@@ -788,7 +610,6 @@ licenses:
|
|
|
788
610
|
metadata:
|
|
789
611
|
homepage_uri: https://gitlab.neatnerds.be/foss/rosett-ai/rosett-ai
|
|
790
612
|
source_code_uri: https://gitlab.neatnerds.be/foss/rosett-ai/rosett-ai
|
|
791
|
-
post_install_message:
|
|
792
613
|
rdoc_options: []
|
|
793
614
|
require_paths:
|
|
794
615
|
- lib
|
|
@@ -796,15 +617,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
796
617
|
requirements:
|
|
797
618
|
- - ">="
|
|
798
619
|
- !ruby/object:Gem::Version
|
|
799
|
-
version: 3.
|
|
620
|
+
version: '3.4'
|
|
800
621
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
801
622
|
requirements:
|
|
802
623
|
- - ">="
|
|
803
624
|
- !ruby/object:Gem::Version
|
|
804
625
|
version: '0'
|
|
805
626
|
requirements: []
|
|
806
|
-
rubygems_version: 3.
|
|
807
|
-
signing_key:
|
|
627
|
+
rubygems_version: 3.6.9
|
|
808
628
|
specification_version: 4
|
|
809
629
|
summary: Rosett-AI — author AI assistant rules once, compile to many
|
|
810
630
|
test_files: []
|
data/.ai-provenance.yml
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
provenance_version: 1
|
|
3
|
-
entries:
|
|
4
|
-
- commit: pending
|
|
5
|
-
timestamp: '2026-04-14T20:00:00Z'
|
|
6
|
-
session_id: W3-RELEASE-PREP
|
|
7
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
8
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
9
|
-
ai_role: AI-Co-Author
|
|
10
|
-
files:
|
|
11
|
-
- path: Rakefile
|
|
12
|
-
source_type: modified_code
|
|
13
|
-
- path: README.md
|
|
14
|
-
source_type: documentation
|
|
15
|
-
- path: CLAUDE.md
|
|
16
|
-
source_type: documentation
|
|
17
|
-
- path: doc/USER_MANUAL.md
|
|
18
|
-
source_type: documentation
|
|
19
|
-
- path: lib/rosett_ai/thor/cli.rb
|
|
20
|
-
source_type: modified_code
|
|
21
|
-
- path: spec/rosett_ai/thor/cli_spec.rb
|
|
22
|
-
source_type: test_code
|
|
23
|
-
- path: LICENSE
|
|
24
|
-
source_type: documentation
|
|
25
|
-
scope: Release preparation for v1.2.0 — Rakefile extraction, README automation, honest-label diagrams
|
|
26
|
-
review_status: human-reviewed
|
|
27
|
-
- commit: ac855641b940e6ebc1daa94e13e8e5e2e8ae7beb
|
|
28
|
-
timestamp: '2026-04-15T08:30:00Z'
|
|
29
|
-
session_id: W3-SHIP-V120
|
|
30
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
31
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
32
|
-
ai_role: AI-Co-Author
|
|
33
|
-
files:
|
|
34
|
-
- path: spec/integration/engine_circular_require_spec.rb
|
|
35
|
-
source_type: test_code
|
|
36
|
-
scope: Integration test for engine circular require prevention
|
|
37
|
-
review_status: human-reviewed
|
|
38
|
-
- commit: c14da8f016166d1d283b2c921f89a726d080055e
|
|
39
|
-
timestamp: '2026-04-15T09:00:00Z'
|
|
40
|
-
session_id: W3-SHIP-V120
|
|
41
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
42
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
43
|
-
ai_role: AI-Co-Author
|
|
44
|
-
files:
|
|
45
|
-
- path: README.md
|
|
46
|
-
source_type: documentation
|
|
47
|
-
scope: Update README test count to 4672
|
|
48
|
-
review_status: human-reviewed
|
|
49
|
-
- commit: 7f8735e566e841e5d369712f385cbbf245c5ab40
|
|
50
|
-
timestamp: '2026-04-15T09:10:00Z'
|
|
51
|
-
session_id: W3-SHIP-V120
|
|
52
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
53
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
54
|
-
ai_role: AI-Co-Author
|
|
55
|
-
files:
|
|
56
|
-
- path: spec/integration/compile_end_to_end_spec.rb
|
|
57
|
-
source_type: test_code
|
|
58
|
-
scope: Fix agents_md e2e test expectation to match title-cased output
|
|
59
|
-
review_status: human-reviewed
|
|
60
|
-
- commit: 9d41be667f3a868aa2cd3c8c09c370a8d626977b
|
|
61
|
-
timestamp: '2026-04-15T09:15:00Z'
|
|
62
|
-
session_id: W3-SHIP-V120
|
|
63
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
64
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
65
|
-
ai_role: AI-Co-Author
|
|
66
|
-
files:
|
|
67
|
-
- path: spec/integration/engine_registration_spec.rb
|
|
68
|
-
source_type: test_code
|
|
69
|
-
- path: spec/rosett_ai/compiler/backend_spec.rb
|
|
70
|
-
source_type: test_code
|
|
71
|
-
scope: Fix title-case expectation and skip backend routing test
|
|
72
|
-
review_status: human-reviewed
|
|
73
|
-
- commit: f488dbfad8528d321c35f73b99a0fc0be6f24706
|
|
74
|
-
timestamp: '2026-04-15T09:30:00Z'
|
|
75
|
-
session_id: W3-SHIP-V120
|
|
76
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
77
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
78
|
-
ai_role: AI-Co-Author
|
|
79
|
-
files:
|
|
80
|
-
- path: lib/rosett_ai/path_resolver.rb
|
|
81
|
-
source_type: modified_code
|
|
82
|
-
- path: lib/rosett_ai/behaviour/manager.rb
|
|
83
|
-
source_type: modified_code
|
|
84
|
-
- path: lib/rosett_ai/thor/tasks/behaviour.rb
|
|
85
|
-
source_type: modified_code
|
|
86
|
-
- path: .reek.yml
|
|
87
|
-
source_type: configuration
|
|
88
|
-
- path: spec/rosett_ai/behaviour/manager_spec.rb
|
|
89
|
-
source_type: test_code
|
|
90
|
-
- path: spec/rosett_ai/thor/tasks/behaviour_spec.rb
|
|
91
|
-
source_type: test_code
|
|
92
|
-
scope: 3-tier behaviour lookup chain (project > XDG user > packaged) and XDG-compliant Manager
|
|
93
|
-
review_status: human-reviewed
|
|
94
|
-
- commit: c80a5313acd423d17e460afab29784d053c3927c
|
|
95
|
-
timestamp: '2026-04-15T09:45:00Z'
|
|
96
|
-
session_id: W3-SHIP-V120
|
|
97
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
98
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
99
|
-
ai_role: AI-Co-Author
|
|
100
|
-
files:
|
|
101
|
-
- path: lib/rosett_ai/thor/tasks/compile.rb
|
|
102
|
-
source_type: modified_code
|
|
103
|
-
- path: .reek.yml
|
|
104
|
-
source_type: configuration
|
|
105
|
-
scope: Fix compile pipeline 3-tier source lookup with correct precedence ordering
|
|
106
|
-
review_status: human-reviewed
|
|
107
|
-
- commit: 6c570e60a4c25cf6bf9ddf0e3669645c90343ef0
|
|
108
|
-
timestamp: '2026-04-15T10:00:00Z'
|
|
109
|
-
session_id: W3-SHIP-V120
|
|
110
|
-
contributor: Hugo Antonio Sepulveda Manriquez <hugo@neatnerds.be>
|
|
111
|
-
ai_tool: Claude Opus 4.6 (Anthropic)
|
|
112
|
-
ai_role: AI-Co-Author
|
|
113
|
-
files:
|
|
114
|
-
- path: spec/integration/xdg_behaviour_lookup_spec.rb
|
|
115
|
-
source_type: test_code
|
|
116
|
-
- path: spec/rosett_ai/path_resolver_spec.rb
|
|
117
|
-
source_type: test_code
|
|
118
|
-
scope: Regression tests for XDG 3-tier behaviour lookup, precedence, and compile
|
|
119
|
-
review_status: human-reviewed
|