rosett-ai 1.3.3 → 1.5.10
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 +413 -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 +106 -21
- 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
|
@@ -3,7 +3,14 @@
|
|
|
3
3
|
"title": "NeatNerds Content Pack Manifest",
|
|
4
4
|
"description": "Schema for premium content pack manifest files",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
6
|
+
"required": [
|
|
7
|
+
"name",
|
|
8
|
+
"version",
|
|
9
|
+
"tier_required",
|
|
10
|
+
"description",
|
|
11
|
+
"author",
|
|
12
|
+
"contents"
|
|
13
|
+
],
|
|
7
14
|
"additionalProperties": false,
|
|
8
15
|
"properties": {
|
|
9
16
|
"name": {
|
|
@@ -18,7 +25,11 @@
|
|
|
18
25
|
},
|
|
19
26
|
"tier_required": {
|
|
20
27
|
"type": "string",
|
|
21
|
-
"enum": [
|
|
28
|
+
"enum": [
|
|
29
|
+
"supporter",
|
|
30
|
+
"subscriber",
|
|
31
|
+
"enterprise"
|
|
32
|
+
],
|
|
22
33
|
"description": "Minimum tier required to access this pack"
|
|
23
34
|
},
|
|
24
35
|
"description": {
|
|
@@ -37,15 +48,23 @@
|
|
|
37
48
|
"properties": {
|
|
38
49
|
"behaviours": {
|
|
39
50
|
"type": "array",
|
|
40
|
-
"items": {
|
|
51
|
+
"items": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
41
54
|
"description": "List of behaviour YAML filenames"
|
|
42
55
|
},
|
|
43
56
|
"designs": {
|
|
44
57
|
"type": "array",
|
|
45
|
-
"items": {
|
|
58
|
+
"items": {
|
|
59
|
+
"type": "string"
|
|
60
|
+
},
|
|
46
61
|
"description": "List of design YAML filenames"
|
|
47
62
|
}
|
|
48
63
|
}
|
|
49
64
|
}
|
|
65
|
+
},
|
|
66
|
+
"$comment": {
|
|
67
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only",
|
|
68
|
+
"note": null
|
|
50
69
|
}
|
|
51
70
|
}
|
|
@@ -7,10 +7,21 @@
|
|
|
7
7
|
"date": "2026-02-22",
|
|
8
8
|
"version": "1.2.0",
|
|
9
9
|
"source": "rosett-ai",
|
|
10
|
-
"compatible_claude_code_versions": [
|
|
10
|
+
"compatible_claude_code_versions": [
|
|
11
|
+
">=0.1.0"
|
|
12
|
+
],
|
|
13
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only"
|
|
11
14
|
},
|
|
12
15
|
"type": "object",
|
|
13
|
-
"required": [
|
|
16
|
+
"required": [
|
|
17
|
+
"name",
|
|
18
|
+
"domain",
|
|
19
|
+
"version",
|
|
20
|
+
"status",
|
|
21
|
+
"intent",
|
|
22
|
+
"constraints",
|
|
23
|
+
"acceptance_criteria"
|
|
24
|
+
],
|
|
14
25
|
"additionalProperties": false,
|
|
15
26
|
"properties": {
|
|
16
27
|
"name": {
|
|
@@ -22,7 +33,22 @@
|
|
|
22
33
|
},
|
|
23
34
|
"domain": {
|
|
24
35
|
"type": "string",
|
|
25
|
-
"enum": [
|
|
36
|
+
"enum": [
|
|
37
|
+
"core",
|
|
38
|
+
"ui",
|
|
39
|
+
"security",
|
|
40
|
+
"testing",
|
|
41
|
+
"styles",
|
|
42
|
+
"i18n",
|
|
43
|
+
"accessibility",
|
|
44
|
+
"licensing",
|
|
45
|
+
"ci",
|
|
46
|
+
"compiler",
|
|
47
|
+
"release",
|
|
48
|
+
"documentation",
|
|
49
|
+
"operations",
|
|
50
|
+
"forge"
|
|
51
|
+
],
|
|
26
52
|
"description": "Domain category grouping related specs"
|
|
27
53
|
},
|
|
28
54
|
"version": {
|
|
@@ -32,7 +58,11 @@
|
|
|
32
58
|
},
|
|
33
59
|
"status": {
|
|
34
60
|
"type": "string",
|
|
35
|
-
"enum": [
|
|
61
|
+
"enum": [
|
|
62
|
+
"draft",
|
|
63
|
+
"approved",
|
|
64
|
+
"implemented"
|
|
65
|
+
],
|
|
36
66
|
"description": "Draft allows AI deviation; approved means follow strictly; implemented means code exists"
|
|
37
67
|
},
|
|
38
68
|
"priority": {
|
|
@@ -61,7 +91,9 @@
|
|
|
61
91
|
},
|
|
62
92
|
"depends_on": {
|
|
63
93
|
"type": "array",
|
|
64
|
-
"items": {
|
|
94
|
+
"items": {
|
|
95
|
+
"type": "string"
|
|
96
|
+
},
|
|
65
97
|
"description": "List of design document names this document depends on"
|
|
66
98
|
},
|
|
67
99
|
"intent": {
|
|
@@ -72,40 +104,72 @@
|
|
|
72
104
|
"constraints": {
|
|
73
105
|
"type": "array",
|
|
74
106
|
"minItems": 1,
|
|
75
|
-
"items": {
|
|
107
|
+
"items": {
|
|
108
|
+
"type": "string"
|
|
109
|
+
},
|
|
76
110
|
"description": "Hard boundaries that must not be crossed"
|
|
77
111
|
},
|
|
78
112
|
"acceptance_criteria": {
|
|
79
113
|
"type": "array",
|
|
80
114
|
"minItems": 1,
|
|
81
|
-
"items": {
|
|
115
|
+
"items": {
|
|
116
|
+
"type": "string"
|
|
117
|
+
},
|
|
82
118
|
"description": "Testable statements defining done"
|
|
83
119
|
},
|
|
84
120
|
"examples": {
|
|
85
121
|
"type": "array",
|
|
86
122
|
"items": {
|
|
87
123
|
"type": "object",
|
|
88
|
-
"required": [
|
|
124
|
+
"required": [
|
|
125
|
+
"scenario",
|
|
126
|
+
"expected"
|
|
127
|
+
],
|
|
89
128
|
"properties": {
|
|
90
|
-
"scenario": {
|
|
91
|
-
|
|
92
|
-
|
|
129
|
+
"scenario": {
|
|
130
|
+
"type": "string",
|
|
131
|
+
"description": "Description of the situation"
|
|
132
|
+
},
|
|
133
|
+
"expected": {
|
|
134
|
+
"type": "string",
|
|
135
|
+
"description": "What should happen"
|
|
136
|
+
},
|
|
137
|
+
"not": {
|
|
138
|
+
"type": "string",
|
|
139
|
+
"description": "What should NOT happen"
|
|
140
|
+
}
|
|
93
141
|
}
|
|
94
142
|
},
|
|
95
143
|
"description": "Concrete examples of expected behaviour"
|
|
96
144
|
},
|
|
97
145
|
"anti_patterns": {
|
|
98
146
|
"type": "array",
|
|
99
|
-
"items": {
|
|
147
|
+
"items": {
|
|
148
|
+
"type": "string"
|
|
149
|
+
},
|
|
100
150
|
"description": "What NOT to do — common wrong approaches to avoid"
|
|
101
151
|
},
|
|
102
152
|
"preferences": {
|
|
103
153
|
"type": "object",
|
|
104
154
|
"properties": {
|
|
105
|
-
"language": {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
"
|
|
155
|
+
"language": {
|
|
156
|
+
"type": "string"
|
|
157
|
+
},
|
|
158
|
+
"patterns": {
|
|
159
|
+
"type": "array",
|
|
160
|
+
"items": {
|
|
161
|
+
"type": "string"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"testing": {
|
|
165
|
+
"type": "string"
|
|
166
|
+
},
|
|
167
|
+
"gems": {
|
|
168
|
+
"type": "array",
|
|
169
|
+
"items": {
|
|
170
|
+
"type": "string"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
109
173
|
},
|
|
110
174
|
"additionalProperties": true,
|
|
111
175
|
"description": "Technical preferences (only when it matters)"
|
|
@@ -114,11 +178,27 @@
|
|
|
114
178
|
"type": "array",
|
|
115
179
|
"items": {
|
|
116
180
|
"type": "object",
|
|
117
|
-
"required": [
|
|
181
|
+
"required": [
|
|
182
|
+
"path",
|
|
183
|
+
"type",
|
|
184
|
+
"description"
|
|
185
|
+
],
|
|
118
186
|
"properties": {
|
|
119
|
-
"path": {
|
|
120
|
-
|
|
121
|
-
|
|
187
|
+
"path": {
|
|
188
|
+
"type": "string",
|
|
189
|
+
"description": "Relative path to asset file"
|
|
190
|
+
},
|
|
191
|
+
"type": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"enum": [
|
|
194
|
+
"mockup",
|
|
195
|
+
"reference",
|
|
196
|
+
"diagram"
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
"description": {
|
|
200
|
+
"type": "string"
|
|
201
|
+
}
|
|
122
202
|
}
|
|
123
203
|
},
|
|
124
204
|
"description": "Visual assets (images) AI can process directly"
|
|
@@ -139,12 +219,22 @@
|
|
|
139
219
|
"type": "array",
|
|
140
220
|
"items": {
|
|
141
221
|
"type": "object",
|
|
142
|
-
"required": [
|
|
222
|
+
"required": [
|
|
223
|
+
"action"
|
|
224
|
+
],
|
|
143
225
|
"properties": {
|
|
144
|
-
"action": {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
"
|
|
226
|
+
"action": {
|
|
227
|
+
"type": "string"
|
|
228
|
+
},
|
|
229
|
+
"tui": {
|
|
230
|
+
"type": "string"
|
|
231
|
+
},
|
|
232
|
+
"gtk4": {
|
|
233
|
+
"type": "string"
|
|
234
|
+
},
|
|
235
|
+
"qt6": {
|
|
236
|
+
"type": "string"
|
|
237
|
+
}
|
|
148
238
|
}
|
|
149
239
|
},
|
|
150
240
|
"description": "Cross-platform interaction definitions"
|
|
@@ -156,12 +246,24 @@
|
|
|
156
246
|
"type": "array",
|
|
157
247
|
"items": {
|
|
158
248
|
"type": "object",
|
|
159
|
-
"required": [
|
|
249
|
+
"required": [
|
|
250
|
+
"element",
|
|
251
|
+
"role",
|
|
252
|
+
"label"
|
|
253
|
+
],
|
|
160
254
|
"properties": {
|
|
161
|
-
"element": {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"
|
|
255
|
+
"element": {
|
|
256
|
+
"type": "string"
|
|
257
|
+
},
|
|
258
|
+
"role": {
|
|
259
|
+
"type": "string"
|
|
260
|
+
},
|
|
261
|
+
"label": {
|
|
262
|
+
"type": "string"
|
|
263
|
+
},
|
|
264
|
+
"description": {
|
|
265
|
+
"type": "string"
|
|
266
|
+
}
|
|
165
267
|
}
|
|
166
268
|
}
|
|
167
269
|
},
|
|
@@ -169,38 +271,71 @@
|
|
|
169
271
|
"type": "array",
|
|
170
272
|
"items": {
|
|
171
273
|
"type": "object",
|
|
172
|
-
"required": [
|
|
274
|
+
"required": [
|
|
275
|
+
"key",
|
|
276
|
+
"action"
|
|
277
|
+
],
|
|
173
278
|
"properties": {
|
|
174
|
-
"key": {
|
|
175
|
-
|
|
279
|
+
"key": {
|
|
280
|
+
"type": "string"
|
|
281
|
+
},
|
|
282
|
+
"action": {
|
|
283
|
+
"type": "string"
|
|
284
|
+
}
|
|
176
285
|
}
|
|
177
286
|
}
|
|
178
287
|
},
|
|
179
|
-
"focus_order": {
|
|
288
|
+
"focus_order": {
|
|
289
|
+
"type": "array",
|
|
290
|
+
"items": {
|
|
291
|
+
"type": "string"
|
|
292
|
+
}
|
|
293
|
+
},
|
|
180
294
|
"announcements": {
|
|
181
295
|
"type": "array",
|
|
182
296
|
"items": {
|
|
183
297
|
"type": "object",
|
|
184
|
-
"required": [
|
|
298
|
+
"required": [
|
|
299
|
+
"event",
|
|
300
|
+
"announce"
|
|
301
|
+
],
|
|
185
302
|
"properties": {
|
|
186
|
-
"event": {
|
|
187
|
-
|
|
188
|
-
|
|
303
|
+
"event": {
|
|
304
|
+
"type": "string"
|
|
305
|
+
},
|
|
306
|
+
"announce": {
|
|
307
|
+
"type": "string"
|
|
308
|
+
},
|
|
309
|
+
"priority": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"enum": [
|
|
312
|
+
"polite",
|
|
313
|
+
"assertive"
|
|
314
|
+
]
|
|
315
|
+
}
|
|
189
316
|
}
|
|
190
317
|
}
|
|
191
318
|
},
|
|
192
319
|
"target_sizes": {
|
|
193
320
|
"type": "object",
|
|
194
321
|
"properties": {
|
|
195
|
-
"minimum": {
|
|
196
|
-
|
|
322
|
+
"minimum": {
|
|
323
|
+
"type": "string"
|
|
324
|
+
},
|
|
325
|
+
"recommended": {
|
|
326
|
+
"type": "string"
|
|
327
|
+
}
|
|
197
328
|
}
|
|
198
329
|
},
|
|
199
330
|
"timing": {
|
|
200
331
|
"type": "object",
|
|
201
332
|
"properties": {
|
|
202
|
-
"no_time_limits": {
|
|
203
|
-
|
|
333
|
+
"no_time_limits": {
|
|
334
|
+
"type": "boolean"
|
|
335
|
+
},
|
|
336
|
+
"animations_respect_prefers_reduced_motion": {
|
|
337
|
+
"type": "boolean"
|
|
338
|
+
}
|
|
204
339
|
}
|
|
205
340
|
}
|
|
206
341
|
},
|
|
@@ -6,10 +6,17 @@
|
|
|
6
6
|
"$comment": {
|
|
7
7
|
"date": "2026-02-26",
|
|
8
8
|
"version": "1.2.0",
|
|
9
|
-
"source": "rosett-ai"
|
|
9
|
+
"source": "rosett-ai",
|
|
10
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only"
|
|
10
11
|
},
|
|
11
12
|
"type": "object",
|
|
12
|
-
"required": [
|
|
13
|
+
"required": [
|
|
14
|
+
"name",
|
|
15
|
+
"display_name",
|
|
16
|
+
"version",
|
|
17
|
+
"components",
|
|
18
|
+
"capabilities"
|
|
19
|
+
],
|
|
13
20
|
"additionalProperties": false,
|
|
14
21
|
"properties": {
|
|
15
22
|
"name": {
|
|
@@ -30,7 +37,9 @@
|
|
|
30
37
|
},
|
|
31
38
|
"components": {
|
|
32
39
|
"type": "object",
|
|
33
|
-
"required": [
|
|
40
|
+
"required": [
|
|
41
|
+
"backend"
|
|
42
|
+
],
|
|
34
43
|
"additionalProperties": false,
|
|
35
44
|
"properties": {
|
|
36
45
|
"backend": {
|
|
@@ -87,7 +96,13 @@
|
|
|
87
96
|
},
|
|
88
97
|
"api_type": {
|
|
89
98
|
"type": "string",
|
|
90
|
-
"enum": [
|
|
99
|
+
"enum": [
|
|
100
|
+
"cli",
|
|
101
|
+
"http",
|
|
102
|
+
"grpc",
|
|
103
|
+
"sdk",
|
|
104
|
+
"openai_compatible"
|
|
105
|
+
],
|
|
91
106
|
"description": "Type of API interface used by the engine"
|
|
92
107
|
},
|
|
93
108
|
"default_endpoint": {
|
|
@@ -107,7 +122,9 @@
|
|
|
107
122
|
},
|
|
108
123
|
"capabilities": {
|
|
109
124
|
"type": "object",
|
|
110
|
-
"required": [
|
|
125
|
+
"required": [
|
|
126
|
+
"compile"
|
|
127
|
+
],
|
|
111
128
|
"additionalProperties": false,
|
|
112
129
|
"properties": {
|
|
113
130
|
"compile": {
|
|
@@ -4,7 +4,15 @@
|
|
|
4
4
|
"title": "rosett-ai Lockfile Schema",
|
|
5
5
|
"description": "Schema for .rosett-ai-lock.yml behaviour composition lockfile",
|
|
6
6
|
"type": "object",
|
|
7
|
-
"required": [
|
|
7
|
+
"required": [
|
|
8
|
+
"lockfile_version",
|
|
9
|
+
"generated_at",
|
|
10
|
+
"generator",
|
|
11
|
+
"generator_version",
|
|
12
|
+
"rule_count",
|
|
13
|
+
"behaviours",
|
|
14
|
+
"composition"
|
|
15
|
+
],
|
|
8
16
|
"properties": {
|
|
9
17
|
"lockfile_version": {
|
|
10
18
|
"type": "integer",
|
|
@@ -44,7 +52,12 @@
|
|
|
44
52
|
"description": "Ordered list of composed rules",
|
|
45
53
|
"items": {
|
|
46
54
|
"type": "object",
|
|
47
|
-
"required": [
|
|
55
|
+
"required": [
|
|
56
|
+
"id",
|
|
57
|
+
"behaviour",
|
|
58
|
+
"scope",
|
|
59
|
+
"priority"
|
|
60
|
+
],
|
|
48
61
|
"properties": {
|
|
49
62
|
"id": {
|
|
50
63
|
"type": "string",
|
|
@@ -56,7 +69,12 @@
|
|
|
56
69
|
},
|
|
57
70
|
"scope": {
|
|
58
71
|
"type": "string",
|
|
59
|
-
"enum": [
|
|
72
|
+
"enum": [
|
|
73
|
+
"global",
|
|
74
|
+
"organisation",
|
|
75
|
+
"project",
|
|
76
|
+
"local"
|
|
77
|
+
],
|
|
60
78
|
"description": "Scope in which this rule was defined"
|
|
61
79
|
},
|
|
62
80
|
"priority": {
|
|
@@ -70,5 +88,9 @@
|
|
|
70
88
|
}
|
|
71
89
|
}
|
|
72
90
|
},
|
|
73
|
-
"additionalProperties": false
|
|
91
|
+
"additionalProperties": false,
|
|
92
|
+
"$comment": {
|
|
93
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only",
|
|
94
|
+
"note": null
|
|
95
|
+
}
|
|
74
96
|
}
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
"title": "MCP Server Configuration",
|
|
4
4
|
"description": "Schema for Rosett-AI MCP server configuration files",
|
|
5
5
|
"type": "object",
|
|
6
|
-
"required": [
|
|
6
|
+
"required": [
|
|
7
|
+
"name",
|
|
8
|
+
"transport"
|
|
9
|
+
],
|
|
7
10
|
"properties": {
|
|
8
11
|
"name": {
|
|
9
12
|
"type": "string",
|
|
@@ -12,11 +15,18 @@
|
|
|
12
15
|
},
|
|
13
16
|
"transport": {
|
|
14
17
|
"type": "string",
|
|
15
|
-
"enum": [
|
|
18
|
+
"enum": [
|
|
19
|
+
"stdio",
|
|
20
|
+
"http",
|
|
21
|
+
"streamable-http"
|
|
22
|
+
],
|
|
16
23
|
"description": "Transport protocol"
|
|
17
24
|
},
|
|
18
25
|
"command": {
|
|
19
|
-
"type": [
|
|
26
|
+
"type": [
|
|
27
|
+
"string",
|
|
28
|
+
"array"
|
|
29
|
+
],
|
|
20
30
|
"description": "Command to launch stdio server"
|
|
21
31
|
},
|
|
22
32
|
"url": {
|
|
@@ -26,12 +36,16 @@
|
|
|
26
36
|
},
|
|
27
37
|
"args": {
|
|
28
38
|
"type": "array",
|
|
29
|
-
"items": {
|
|
39
|
+
"items": {
|
|
40
|
+
"type": "string"
|
|
41
|
+
},
|
|
30
42
|
"description": "Additional command arguments"
|
|
31
43
|
},
|
|
32
44
|
"env": {
|
|
33
45
|
"type": "object",
|
|
34
|
-
"additionalProperties": {
|
|
46
|
+
"additionalProperties": {
|
|
47
|
+
"type": "string"
|
|
48
|
+
},
|
|
35
49
|
"description": "Environment variables"
|
|
36
50
|
},
|
|
37
51
|
"source_file": {
|
|
@@ -39,10 +53,37 @@
|
|
|
39
53
|
"description": "Path to source configuration file"
|
|
40
54
|
}
|
|
41
55
|
},
|
|
42
|
-
"if": {
|
|
43
|
-
|
|
56
|
+
"if": {
|
|
57
|
+
"properties": {
|
|
58
|
+
"transport": {
|
|
59
|
+
"const": "stdio"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"then": {
|
|
64
|
+
"required": [
|
|
65
|
+
"command"
|
|
66
|
+
]
|
|
67
|
+
},
|
|
44
68
|
"else": {
|
|
45
|
-
"if": {
|
|
46
|
-
|
|
69
|
+
"if": {
|
|
70
|
+
"properties": {
|
|
71
|
+
"transport": {
|
|
72
|
+
"enum": [
|
|
73
|
+
"http",
|
|
74
|
+
"streamable-http"
|
|
75
|
+
]
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"then": {
|
|
80
|
+
"required": [
|
|
81
|
+
"url"
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"$comment": {
|
|
86
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only",
|
|
87
|
+
"note": null
|
|
47
88
|
}
|
|
48
89
|
}
|
|
@@ -6,10 +6,15 @@
|
|
|
6
6
|
"$comment": {
|
|
7
7
|
"date": "2026-02-21",
|
|
8
8
|
"version": "1.0.0",
|
|
9
|
-
"source": "rosett-ai"
|
|
9
|
+
"source": "rosett-ai",
|
|
10
|
+
"spdx": "SPDX-FileCopyrightText: 2025-2026 Hugo Antonio Sepulveda Manriquez <query@neatnerds.be> | SPDX-License-Identifier: GPL-3.0-only"
|
|
10
11
|
},
|
|
11
12
|
"type": "object",
|
|
12
|
-
"required": [
|
|
13
|
+
"required": [
|
|
14
|
+
"name",
|
|
15
|
+
"variant",
|
|
16
|
+
"description"
|
|
17
|
+
],
|
|
13
18
|
"additionalProperties": false,
|
|
14
19
|
"properties": {
|
|
15
20
|
"name": {
|
|
@@ -21,7 +26,12 @@
|
|
|
21
26
|
},
|
|
22
27
|
"variant": {
|
|
23
28
|
"type": "string",
|
|
24
|
-
"enum": [
|
|
29
|
+
"enum": [
|
|
30
|
+
"core",
|
|
31
|
+
"gtk4",
|
|
32
|
+
"qt6",
|
|
33
|
+
"kde"
|
|
34
|
+
],
|
|
25
35
|
"description": "Package variant identifier"
|
|
26
36
|
},
|
|
27
37
|
"description": {
|
|
@@ -31,7 +41,12 @@
|
|
|
31
41
|
},
|
|
32
42
|
"ui_adapter": {
|
|
33
43
|
"type": "string",
|
|
34
|
-
"enum": [
|
|
44
|
+
"enum": [
|
|
45
|
+
"tui",
|
|
46
|
+
"gtk4",
|
|
47
|
+
"qt6",
|
|
48
|
+
"kde"
|
|
49
|
+
],
|
|
35
50
|
"description": "UI adapter this variant provides"
|
|
36
51
|
},
|
|
37
52
|
"system_dependencies": {
|
|
@@ -47,7 +62,10 @@
|
|
|
47
62
|
"type": "array",
|
|
48
63
|
"items": {
|
|
49
64
|
"type": "object",
|
|
50
|
-
"required": [
|
|
65
|
+
"required": [
|
|
66
|
+
"name",
|
|
67
|
+
"version"
|
|
68
|
+
],
|
|
51
69
|
"additionalProperties": false,
|
|
52
70
|
"properties": {
|
|
53
71
|
"name": {
|