Module: RosettAi

Defined in:
lib/rosett_ai.rb,
lib/rosett_ai/doctor.rb,
lib/rosett_ai/ui/kde.rb,
lib/rosett_ai/ui/qt6.rb,
lib/rosett_ai/ui/tui.rb,
lib/rosett_ai/ui/base.rb,
lib/rosett_ai/ui/gtk4.rb,
lib/rosett_ai/version.rb,
lib/rosett_ai/profiler.rb,
lib/rosett_ai/thor/cli.rb,
lib/rosett_ai/telemetry.rb,
lib/rosett_ai/exit_codes.rb,
lib/rosett_ai/formatting.rb,
lib/rosett_ai/mcp/server.rb,
lib/rosett_ai/rai_config.rb,
lib/rosett_ai/deprecation.rb,
lib/rosett_ai/mcp/keyfile.rb,
lib/rosett_ai/mcp/plugins.rb,
lib/rosett_ai/ui/registry.rb,
lib/rosett_ai/yaml_loader.rb,
lib/rosett_ai/dbus/service.rb,
lib/rosett_ai/doctor/check.rb,
lib/rosett_ai/comply/runner.rb,
lib/rosett_ai/configuration.rb,
lib/rosett_ai/error_handler.rb,
lib/rosett_ai/feature_flags.rb,
lib/rosett_ai/path_resolver.rb,
lib/rosett_ai/ui/tty_helper.rb,
lib/rosett_ai/config/key_map.rb,
lib/rosett_ai/licensing/tier.rb,
lib/rosett_ai/mcp/governance.rb,
lib/rosett_ai/mcp/key_hasher.rb,
lib/rosett_ai/policy/auditor.rb,
lib/rosett_ai/text_sanitizer.rb,
lib/rosett_ai/thor/tasks/mcp.rb,
lib/rosett_ai/comply/reporter.rb,
lib/rosett_ai/config/compiler.rb,
lib/rosett_ai/project/manager.rb,
lib/rosett_ai/project_context.rb,
lib/rosett_ai/retrofit/engine.rb,
lib/rosett_ai/thor/tasks/dbus.rb,
lib/rosett_ai/thor/tasks/init.rb,
lib/rosett_ai/workflow/engine.rb,
lib/rosett_ai/compiler/backend.rb,
lib/rosett_ai/desktop/gtk4_app.rb,
lib/rosett_ai/engines/detector.rb,
lib/rosett_ai/engines/registry.rb,
lib/rosett_ai/init/file_copier.rb,
lib/rosett_ai/plugins/contract.rb,
lib/rosett_ai/plugins/registry.rb,
lib/rosett_ai/policy/deny_list.rb,
lib/rosett_ai/policy/validator.rb,
lib/rosett_ai/provenance/entry.rb,
lib/rosett_ai/provenance/store.rb,
lib/rosett_ai/quorum/collector.rb,
lib/rosett_ai/retrofit/scanner.rb,
lib/rosett_ai/secrets_resolver.rb,
lib/rosett_ai/thor/tasks/adopt.rb,
lib/rosett_ai/thor/tasks/build.rb,
lib/rosett_ai/thor/tasks/hooks.rb,
lib/rosett_ai/workflow/manager.rb,
lib/rosett_ai/backup/compressor.rb,
lib/rosett_ai/behaviour/manager.rb,
lib/rosett_ai/dbus/rate_limiter.rb,
lib/rosett_ai/i18n/utf8_checker.rb,
lib/rosett_ai/mcp/admin/auditor.rb,
lib/rosett_ai/provenance/source.rb,
lib/rosett_ai/quorum/comparator.rb,
lib/rosett_ai/quorum/dispatcher.rb,
lib/rosett_ai/structured_logger.rb,
lib/rosett_ai/thor/tasks/backup.rb,
lib/rosett_ai/thor/tasks/comply.rb,
lib/rosett_ai/thor/tasks/config.rb,
lib/rosett_ai/thor/tasks/design.rb,
lib/rosett_ai/thor/tasks/doctor.rb,
lib/rosett_ai/ui/accessible_tui.rb,
lib/rosett_ai/backup/destination.rb,
lib/rosett_ai/desktop/gui_logger.rb,
lib/rosett_ai/mcp/admin/registry.rb,
lib/rosett_ai/migration/detector.rb,
lib/rosett_ai/provenance/tracker.rb,
lib/rosett_ai/telemetry/provider.rb,
lib/rosett_ai/telemetry/reporter.rb,
lib/rosett_ai/thor/tasks/compile.rb,
lib/rosett_ai/thor/tasks/content.rb,
lib/rosett_ai/thor/tasks/desktop.rb,
lib/rosett_ai/thor/tasks/engines.rb,
lib/rosett_ai/thor/tasks/license.rb,
lib/rosett_ai/thor/tasks/migrate.rb,
lib/rosett_ai/thor/tasks/plugins.rb,
lib/rosett_ai/thor/tasks/project.rb,
lib/rosett_ai/thor/tasks/release.rb,
lib/rosett_ai/thor/tasks/tooling.rb,
lib/rosett_ai/workflow/audit_log.rb,
lib/rosett_ai/ai_config/validator.rb,
lib/rosett_ai/config/scope_router.rb,
lib/rosett_ai/desktop/dbus_client.rb,
lib/rosett_ai/git_hooks/installer.rb,
lib/rosett_ai/mcp/middleware/cors.rb,
lib/rosett_ai/mcp/response_helper.rb,
lib/rosett_ai/mcp/security_logger.rb,
lib/rosett_ai/mcp/tools/init_tool.rb,
lib/rosett_ai/package_manager/apt.rb,
lib/rosett_ai/thor/tasks/retrofit.rb,
lib/rosett_ai/thor/tasks/validate.rb,
lib/rosett_ai/thor/tasks/workflow.rb,
lib/rosett_ai/adopter/rule_adopter.rb,
lib/rosett_ai/completion/generator.rb,
lib/rosett_ai/composition/composer.rb,
lib/rosett_ai/composition/lockfile.rb,
lib/rosett_ai/i18n/locale_resolver.rb,
lib/rosett_ai/mcp/tools/adopt_tool.rb,
lib/rosett_ai/package_manager/base.rb,
lib/rosett_ai/plugins/gui_contract.rb,
lib/rosett_ai/plugins/mcp_contract.rb,
lib/rosett_ai/project/sync_manager.rb,
lib/rosett_ai/provenance/validator.rb,
lib/rosett_ai/retrofit/base_parser.rb,
lib/rosett_ai/thor/tasks/behaviour.rb,
lib/rosett_ai/workflow/step_runner.rb,
lib/rosett_ai/config/compile_result.rb,
lib/rosett_ai/content/pack_manifest.rb,
lib/rosett_ai/content/pack_registry.rb,
lib/rosett_ai/content_packs/manager.rb,
lib/rosett_ai/licensing/license_key.rb,
lib/rosett_ai/mcp/tools/backup_tool.rb,
lib/rosett_ai/mcp/tools/comply_tool.rb,
lib/rosett_ai/mcp/tools/doctor_tool.rb,
lib/rosett_ai/policy/tier_hierarchy.rb,
lib/rosett_ai/telemetry/log_rotator.rb,
lib/rosett_ai/thor/tasks/completion.rb,
lib/rosett_ai/thor/tasks/provenance.rb,
lib/rosett_ai/ai_config/model_router.rb,
lib/rosett_ai/config/secret_resolver.rb,
lib/rosett_ai/content/content_client.rb,
lib/rosett_ai/content/pack_installer.rb,
lib/rosett_ai/dbus/manager_interface.rb,
lib/rosett_ai/init/directory_builder.rb,
lib/rosett_ai/init/local_initializer.rb,
lib/rosett_ai/mcp/tools/compile_tool.rb,
lib/rosett_ai/mcp/tools/content_tool.rb,
lib/rosett_ai/mcp/tools/engines_tool.rb,
lib/rosett_ai/mcp/tools/project_tool.rb,
lib/rosett_ai/mcp/tools/tooling_tool.rb,
lib/rosett_ai/migration/xdg_migrator.rb,
lib/rosett_ai/policy/opt_out_scanner.rb,
lib/rosett_ai/policy/policy_compiler.rb,
lib/rosett_ai/policy/protected_files.rb,
lib/rosett_ai/project/drift_detector.rb,
lib/rosett_ai/provenance/file_source.rb,
lib/rosett_ai/ai_config/cost_controls.rb,
lib/rosett_ai/compiler/target_profile.rb,
lib/rosett_ai/gem_consistency_checker.rb,
lib/rosett_ai/init/config_file_writer.rb,
lib/rosett_ai/init/global_initializer.rb,
lib/rosett_ai/licensing/license_store.rb,
lib/rosett_ai/mcp/tools/retrofit_tool.rb,
lib/rosett_ai/mcp/tools/validate_tool.rb,
lib/rosett_ai/mcp/tools/workflow_tool.rb,
lib/rosett_ai/plugins/engine_contract.rb,
lib/rosett_ai/quorum/strategies/adopt.rb,
lib/rosett_ai/tooling/version_checker.rb,
lib/rosett_ai/workflow/steps/rai_step.rb,
lib/rosett_ai/ai_config/context_window.rb,
lib/rosett_ai/ai_config/fallback_chain.rb,
lib/rosett_ai/compiler/compiled_output.rb,
lib/rosett_ai/compiler/locale_compiler.rb,
lib/rosett_ai/dbus/compositor_detector.rb,
lib/rosett_ai/dbus/focus_adapters/base.rb,
lib/rosett_ai/desktop/gtk4_preferences.rb,
lib/rosett_ai/documentation/translator.rb,
lib/rosett_ai/git_hooks/chain_detector.rb,
lib/rosett_ai/init/project_initializer.rb,
lib/rosett_ai/mcp/admin/health_checker.rb,
lib/rosett_ai/mcp/http_security_config.rb,
lib/rosett_ai/packaging/variant_config.rb,
lib/rosett_ai/project/template_applier.rb,
lib/rosett_ai/retrofit/secret_detector.rb,
lib/rosett_ai/smart_feedback/suggester.rb,
lib/rosett_ai/thor/tasks/documentation.rb,
lib/rosett_ai/adopter/executor_resolver.rb,
lib/rosett_ai/ai_config/config_compiler.rb,
lib/rosett_ai/config/domain_transformer.rb,
lib/rosett_ai/mcp/middleware/rate_limit.rb,
lib/rosett_ai/mcp/tools/provenance_tool.rb,
lib/rosett_ai/tooling/ci_yaml_validator.rb,
lib/rosett_ai/workflow/schema_validator.rb,
lib/rosett_ai/workflow/steps/shell_step.rb,
lib/rosett_ai/composition/merge_strategy.rb,
lib/rosett_ai/composition/scope_resolver.rb,
lib/rosett_ai/git_hooks/script_generator.rb,
lib/rosett_ai/mcp/admin/schema_validator.rb,
lib/rosett_ai/mcp/settings/trust_manager.rb,
lib/rosett_ai/mcp/tools/design_list_tool.rb,
lib/rosett_ai/mcp/tools/design_show_tool.rb,
lib/rosett_ai/workflow/steps/prompt_step.rb,
lib/rosett_ai/authorship/review_validator.rb,
lib/rosett_ai/compiler/behaviour_compiler.rb,
lib/rosett_ai/compiler/capability_checker.rb,
lib/rosett_ai/comply/checkers/cra_checker.rb,
lib/rosett_ai/composition/priority_sorter.rb,
lib/rosett_ai/licensing/license_validator.rb,
lib/rosett_ai/mcp/middleware/content_type.rb,
lib/rosett_ai/mcp/middleware/request_size.rb,
lib/rosett_ai/mcp/tools/hooks_status_tool.rb,
lib/rosett_ai/package_manager/gem_backend.rb,
lib/rosett_ai/telemetry/json_lines_writer.rb,
lib/rosett_ai/validators/design_validator.rb,
lib/rosett_ai/validators/schema_validator.rb,
lib/rosett_ai/version_consistency_checker.rb,
lib/rosett_ai/authorship/disclosure_policy.rb,
lib/rosett_ai/authorship/trailer_generator.rb,
lib/rosett_ai/dbus/focus_monitor_interface.rb,
lib/rosett_ai/engines/base_config_compiler.rb,
lib/rosett_ai/mcp/tools/config_status_tool.rb,
lib/rosett_ai/provenance/trailer_generator.rb,
lib/rosett_ai/validators/tooling_validator.rb,
lib/rosett_ai/compiler/compilation_pipeline.rb,
lib/rosett_ai/composition/conflict_detector.rb,
lib/rosett_ai/dbus/plugin_manager_interface.rb,
lib/rosett_ai/mcp/middleware/authentication.rb,
lib/rosett_ai/mcp/prompts/compliance_prompt.rb,
lib/rosett_ai/mcp/prompts/validation_prompt.rb,
lib/rosett_ai/mcp/resources/config_resource.rb,
lib/rosett_ai/mcp/resources/design_resource.rb,
lib/rosett_ai/mcp/settings/server_installer.rb,
lib/rosett_ai/mcp/tools/behaviour_list_tool.rb,
lib/rosett_ai/mcp/tools/behaviour_show_tool.rb,
lib/rosett_ai/mcp/tools/config_compile_tool.rb,
lib/rosett_ai/mcp/tools/license_status_tool.rb,
lib/rosett_ai/retrofit/round_trip_validator.rb,
lib/rosett_ai/composition/composition_result.rb,
lib/rosett_ai/config/masking_secret_resolver.rb,
lib/rosett_ai/dbus/focus_adapters/i3_adapter.rb,
lib/rosett_ai/dbus/status_notifier_interface.rb,
lib/rosett_ai/mcp/prompts/compilation_prompt.rb,
lib/rosett_ai/mcp/prompts/diagnostics_prompt.rb,
lib/rosett_ai/migration/nncc_config_migrator.rb,
lib/rosett_ai/retrofit/parsers/claude_parser.rb,
lib/rosett_ai/retrofit/parsers/cursor_parser.rb,
lib/rosett_ai/smart_feedback/thor_middleware.rb,
lib/rosett_ai/validators/behaviour_validator.rb,
lib/rosett_ai/authorship/attribution_compiler.rb,
lib/rosett_ai/completion/shells/zsh_generator.rb,
lib/rosett_ai/comply/checkers/license_checker.rb,
lib/rosett_ai/dbus/focus_adapters/x11_adapter.rb,
lib/rosett_ai/mcp/tools/behaviour_manage_tool.rb,
lib/rosett_ai/mcp/tools/provenance_write_tool.rb,
lib/rosett_ai/mcp/tools/workflow_execute_tool.rb,
lib/rosett_ai/migration/nncc_project_migrator.rb,
lib/rosett_ai/adopter/local_analysis_collector.rb,
lib/rosett_ai/compiler/backends/claude_backend.rb,
lib/rosett_ai/completion/shells/bash_generator.rb,
lib/rosett_ai/completion/shells/fish_generator.rb,
lib/rosett_ai/dbus/focus_adapters/kwin_adapter.rb,
lib/rosett_ai/doctor/checks/cache_health_check.rb,
lib/rosett_ai/doctor/checks/ruby_version_check.rb,
lib/rosett_ai/documentation/reference_compiler.rb,
lib/rosett_ai/mcp/middleware/origin_validation.rb,
lib/rosett_ai/mcp/resources/behaviour_resource.rb,
lib/rosett_ai/mcp/tools/behaviour_display_tool.rb,
lib/rosett_ai/compiler/backends/generic_backend.rb,
lib/rosett_ai/dbus/focus_adapters/gnome_adapter.rb,
lib/rosett_ai/mcp/resources/provenance_resource.rb,
lib/rosett_ai/retrofit/parsers/agents_md_parser.rb,
lib/rosett_ai/doctor/checks/gem_dependency_check.rb,
lib/rosett_ai/compiler/backends/agents_md_backend.rb,
lib/rosett_ai/comply/checkers/spdx_header_checker.rb,
lib/rosett_ai/doctor/checks/file_permission_check.rb,
lib/rosett_ai/doctor/checks/stale_home_nncc_check.rb,
lib/rosett_ai/mcp/tools/documentation_status_tool.rb,
lib/rosett_ai/dbus/focus_adapters/hyprland_adapter.rb,
lib/rosett_ai/doctor/checks/engine_detection_check.rb,
lib/rosett_ai/doctor/checks/dbus_availability_check.rb,
lib/rosett_ai/doctor/checks/stale_config_nncc_check.rb,
lib/rosett_ai/composition/circular_dependency_detector.rb,
lib/rosett_ai/gitlab/validators/supplementary_gitlab_ci_yaml_validator.rb

Overview

SPDX-License-Identifier: GPL-3.0-only Copyright (C) 2026 Hugo Antonio Sepulveda Manriquez / NeatNerds

Defined Under Namespace

Modules: Adopter, AiConfig, Authorship, Backup, Behaviour, Compiler, Completion, Comply, Composition, Config, Content, ContentPacks, DBus, Deprecation, Desktop, Doctor, Documentation, Engines, ExitCodes, FeatureFlags, Formatting, GitHooks, Gitlab, I18n, Init, Licensing, Mcp, Migration, PackageManager, Packaging, Plugins, Policy, Project, Provenance, Quorum, Retrofit, SecretsResolver, SmartFeedback, Telemetry, TextSanitizer, Thor, Tooling, Ui, Validators, Workflow, YamlLoader Classes: AdoptError, AiConfigError, AuthorshipError, BackupError, BehaviourError, BuildError, CompileError, ComplianceError, CompositionError, Configuration, ConfigurationError, ContentError, DesignError, DoctorError, DocumentationError, Error, ErrorHandler, FeatureFlagError, GemConsistencyChecker, GitHooksError, InitError, LicenseError, McpError, PathResolver, PolicyError, Profiler, ProjectContext, ProjectError, ProvenanceError, RaiConfig, ReleaseError, RetrofitError, StructuredLogger, ToolingError, ValidationError, VersionConsistencyChecker, WorkflowError

Constant Summary collapse

VERSION =
'1.2.0'

Error hierarchy collapse

Class Method Details

.conf_rootPathname

Configuration root directory, scoped to the active project if present.

Returns:

  • (Pathname)


126
127
128
# File 'lib/rosett_ai.rb', line 126

def conf_root
  context.conf_root
end

.configRosettAi::Configuration

Global Configuration instance (settings.json hierarchy).



133
134
135
# File 'lib/rosett_ai.rb', line 133

def config
  @config ||= Configuration.new
end

.contextRosettAi::ProjectContext

Active project context (detects +.rosett-ai/+ marker).



119
120
121
# File 'lib/rosett_ai.rb', line 119

def context
  @context ||= ProjectContext.new
end

.loaderZeitwerk::Loader

Zeitwerk autoloader instance. Sets up inflections, ignores deprecated stubs and optional gems, then calls +setup+.

Returns:

  • (Zeitwerk::Loader)


93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/rosett_ai.rb', line 93

def loader
  @loader ||= begin
    loader = Zeitwerk::Loader.for_gem
    loader.inflector.inflect('cli' => 'CLI', 'dbus' => 'DBus')
    loader.ignore("#{__dir__}/rubocop")
    loader.ignore("#{__dir__}/scripts")
    unless gem_available?('ruby-dbus')
      # Ignore D-Bus interface/service files that require ruby-dbus,
      # but keep pure-Ruby utilities (e.g. RateLimiter) available.
      ['service', 'compositor_detector', 'focus_monitor_interface', 'manager_interface',
       'plugin_manager_interface', 'status_notifier_interface'].each do |f|
        loader.ignore("#{__dir__}/rosett-ai/dbus/#{f}.rb")
      end
      loader.ignore("#{__dir__}/rosett-ai/dbus/focus_adapters/gnome_adapter.rb")
      loader.ignore("#{__dir__}/rosett-ai/dbus/focus_adapters/kwin_adapter.rb")
      loader.ignore("#{__dir__}/rosett-ai/desktop")
    end
    ignore_deprecated_stubs(loader)
    loader.setup
    loader
  end
end

.loggerRosettAi::StructuredLogger

Structured logger with correlation IDs and JSON/text output. Level controlled by +RAI_LOG_LEVEL+, format by +RAI_LOG_FORMAT+.



172
173
174
# File 'lib/rosett_ai.rb', line 172

def logger
  @logger ||= StructuredLogger.new
end

.pathsRosettAi::PathResolver

Global PathResolver instance for filesystem path lookups.



140
141
142
# File 'lib/rosett_ai.rb', line 140

def paths
  @paths ||= PathResolver.new
end

.rai_configRosettAi::RaiConfig

Loaded +~/.config/rosett-ai/config.yml+ settings.

Returns:



147
148
149
# File 'lib/rosett_ai.rb', line 147

def rai_config
  @rai_config ||= RaiConfig.load
end

.reset_config!

This method returns an undefined value.

Resets all memoized singletons. Intended for test isolation.



179
180
181
182
183
184
185
# File 'lib/rosett_ai.rb', line 179

def reset_config!
  @config = nil
  @paths = nil
  @rai_config = nil
  @logger = nil
  @context = nil
end

.rootPathname

Project root directory (where the gemspec lives).

Returns:

  • (Pathname)


85
86
87
# File 'lib/rosett_ai.rb', line 85

def root
  @root ||= Pathname.new(File.expand_path('..', __dir__))
end

.setup_i18n(locale: nil)

This method returns an undefined value.

Initializes I18n with rosett-ai locale files, resolves the active locale, and configures fallback chains (e.g. nl_BE -> nl -> en).

Parameters:

  • locale (String, nil) (defaults to: nil)

    explicit locale override (e.g. +"fr"+)



156
157
158
159
160
161
162
163
164
165
166
# File 'lib/rosett_ai.rb', line 156

def setup_i18n(locale: nil)
  require 'i18n/backend/fallbacks'
  ::I18n::Backend::Simple.include(::I18n::Backend::Fallbacks)

  ::I18n.load_path += Dir[root.join('locales', '*.yml')]
  ::I18n.default_locale = :en
  ::I18n.enforce_available_locales = false

  resolved_locale = resolve_locale(locale)
  ::I18n.locale = resolved_locale.to_sym
end